From 658f89be3e86307d0e29ca3cc91ee39d9b7a7026 Mon Sep 17 00:00:00 2001 From: sss Date: Wed, 13 Aug 2025 19:46:35 -0700 Subject: [PATCH 1/6] Create CNAME --- docs/CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..05d0ce0 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +sune.planetrenox.com \ No newline at end of file From e24ea17ef07d9989960fecbdde6ff77db928bd2b Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 Aug 2025 02:46:50 +0000 Subject: [PATCH 2/6] Action Commit --- docs/CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 05d0ce0..0000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -sune.planetrenox.com \ No newline at end of file From beac322c888c2a50f5cd5a9c181d90b27ec873b2 Mon Sep 17 00:00:00 2001 From: sss Date: Wed, 13 Aug 2025 19:57:28 -0700 Subject: [PATCH 3/6] Create CNAME --- docs/CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..05d0ce0 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +sune.planetrenox.com \ No newline at end of file From bb6b74acf4a93454a66169ab213214e6a45d6ff0 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 Aug 2025 02:57:44 +0000 Subject: [PATCH 4/6] Action Commit --- docs/CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 05d0ce0..0000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -sune.planetrenox.com \ No newline at end of file From 5d79d8ac49b05ea1eccedd55c1bddda5b60428e8 Mon Sep 17 00:00:00 2001 From: sss Date: Wed, 13 Aug 2025 20:37:01 -0700 Subject: [PATCH 5/6] Update index.html --- index.html | 145 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 100 insertions(+), 45 deletions(-) diff --git a/index.html b/index.html index 466f67f..d0d599d 100644 --- a/index.html +++ b/index.html @@ -79,55 +79,75 @@ + +
+ +
+ + +
+ + +
+
+ +
- + +
- - -
-
- - -

Variety. Lower = predictable.

-
-
- - -

Nucleus sampling.

-
-
- - -

Token shortlist size.

-
-
- - -

Discourage repeats by count.

-
-
- - -

Discourage seen tokens.

-
-
- - -

Reduce verbatim echoes.

-
-
- - -

Minimum token prob vs best.

-
-
- - -

Adaptive nucleus filter.

+ + +

Variety. Lower = predictable.

+
+
+ + +

Nucleus sampling.

+
+
+ + +

Token shortlist size.

+
+
+ + +

Discourage repeats by count.

+
+
+ + +

Discourage seen tokens.

+
+
+ + +

Reduce verbatim echoes.

+
+
+ + +

Minimum token prob vs best.

+
+
+ + +

Adaptive nucleus filter.

+
-
+ + + +
@@ -158,6 +178,12 @@ settingsForm: document.getElementById('settingsForm'), closeSettings: document.getElementById('closeSettings'), cancelSettings: document.getElementById('cancelSettings'), + // tab buttons & panels + tabModel: document.getElementById('tabModel'), + tabPrompt: document.getElementById('tabPrompt'), + panelModel: document.getElementById('panelModel'), + panelPrompt: document.getElementById('panelPrompt'), + // inputs set_model: document.getElementById('set_model'), set_temperature: document.getElementById('set_temperature'), set_top_p: document.getElementById('set_top_p'), @@ -167,6 +193,7 @@ set_repetition_penalty: document.getElementById('set_repetition_penalty'), set_min_p: document.getElementById('set_min_p'), set_top_a: document.getElementById('set_top_a'), + set_system_prompt: document.getElementById('set_system_prompt'), }; // === Local storage === @@ -176,6 +203,9 @@ set apiKey(v) { localStorage.setItem('openrouter_api_key', v || ''); updateStatus(); }, get model() { return localStorage.getItem('openrouter_model') || DEFAULT_MODEL; }, set model(v) { localStorage.setItem('openrouter_model', v || DEFAULT_MODEL); }, + // system prompt + get system_prompt() { return localStorage.getItem('openrouter_system_prompt') || ''; }, + set system_prompt(v) { localStorage.setItem('openrouter_system_prompt', v || ''); }, // sampling params get temperature() { return num(localStorage.getItem('openrouter_temperature'), 1.0); }, @@ -317,9 +347,14 @@ } try { state.controller = new AbortController(); + // Build messages with optional system prompt + const msgs = []; + if (store.system_prompt) msgs.push({ role: 'system', content: store.system_prompt }); + msgs.push(...state.messages.filter(m => m.role !== 'system')); + const body = payloadWithSampling({ model, - messages: state.messages.filter(m => m.role !== 'system'), + messages: msgs, stream: true, }); const res = await fetch('https://openrouter.ai/api/v1/chat/completions', { @@ -409,18 +444,37 @@ el.set_repetition_penalty.value = store.repetition_penalty; el.set_min_p.value = store.min_p; el.set_top_a.value = store.top_a; + el.set_system_prompt.value = store.system_prompt; + showModelTab(); el.settingsModal.classList.remove('hidden'); } function closeSettings() { el.settingsModal.classList.add('hidden'); } + // Tab toggling + function showModelTab() { + el.tabModel.classList.add('border-black'); + el.tabPrompt.classList.remove('border-black'); + el.panelModel.classList.remove('hidden'); + el.panelPrompt.classList.add('hidden'); + } + function showPromptTab() { + el.tabPrompt.classList.add('border-black'); + el.tabModel.classList.remove('border-black'); + el.panelPrompt.classList.remove('hidden'); + el.panelModel.classList.add('hidden'); + } + el.closeSettings.addEventListener('click', closeSettings); el.cancelSettings.addEventListener('click', closeSettings); el.settingsModal.addEventListener('click', (e) => { if (e.target === el.settingsModal || e.target.classList.contains('bg-black/30')) closeSettings(); }); + el.tabModel.addEventListener('click', showModelTab); + el.tabPrompt.addEventListener('click', showPromptTab); + el.settingsForm.addEventListener('submit', (e) => { e.preventDefault(); // collect + clamp @@ -444,6 +498,7 @@ store.repetition_penalty = repetition_penalty; store.min_p = min_p; store.top_a = top_a; + store.system_prompt = el.set_system_prompt.value.trim(); closeSettings(); }); From 53e83e76a21f4ffc8c74a8c70eb2469568c8cbc7 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 Aug 2025 03:37:16 +0000 Subject: [PATCH 6/6] Action Commit --- docs/index.html | 145 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 100 insertions(+), 45 deletions(-) diff --git a/docs/index.html b/docs/index.html index 466f67f..d0d599d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -79,55 +79,75 @@ +
+ + +
+ + +
+ + +
+
+ +
- + +
- - -
-
- - -

Variety. Lower = predictable.

-
-
- - -

Nucleus sampling.

-
-
- - -

Token shortlist size.

-
-
- - -

Discourage repeats by count.

-
-
- - -

Discourage seen tokens.

-
-
- - -

Reduce verbatim echoes.

-
-
- - -

Minimum token prob vs best.

-
-
- - -

Adaptive nucleus filter.

+ + +

Variety. Lower = predictable.

+
+
+ + +

Nucleus sampling.

+
+
+ + +

Token shortlist size.

+
+
+ + +

Discourage repeats by count.

+
+
+ + +

Discourage seen tokens.

+
+
+ + +

Reduce verbatim echoes.

+
+
+ + +

Minimum token prob vs best.

+
+
+ + +

Adaptive nucleus filter.

+
-
+ + + +
@@ -158,6 +178,12 @@ settingsForm: document.getElementById('settingsForm'), closeSettings: document.getElementById('closeSettings'), cancelSettings: document.getElementById('cancelSettings'), + // tab buttons & panels + tabModel: document.getElementById('tabModel'), + tabPrompt: document.getElementById('tabPrompt'), + panelModel: document.getElementById('panelModel'), + panelPrompt: document.getElementById('panelPrompt'), + // inputs set_model: document.getElementById('set_model'), set_temperature: document.getElementById('set_temperature'), set_top_p: document.getElementById('set_top_p'), @@ -167,6 +193,7 @@ set_repetition_penalty: document.getElementById('set_repetition_penalty'), set_min_p: document.getElementById('set_min_p'), set_top_a: document.getElementById('set_top_a'), + set_system_prompt: document.getElementById('set_system_prompt'), }; // === Local storage === @@ -176,6 +203,9 @@ set apiKey(v) { localStorage.setItem('openrouter_api_key', v || ''); updateStatus(); }, get model() { return localStorage.getItem('openrouter_model') || DEFAULT_MODEL; }, set model(v) { localStorage.setItem('openrouter_model', v || DEFAULT_MODEL); }, + // system prompt + get system_prompt() { return localStorage.getItem('openrouter_system_prompt') || ''; }, + set system_prompt(v) { localStorage.setItem('openrouter_system_prompt', v || ''); }, // sampling params get temperature() { return num(localStorage.getItem('openrouter_temperature'), 1.0); }, @@ -317,9 +347,14 @@ } try { state.controller = new AbortController(); + // Build messages with optional system prompt + const msgs = []; + if (store.system_prompt) msgs.push({ role: 'system', content: store.system_prompt }); + msgs.push(...state.messages.filter(m => m.role !== 'system')); + const body = payloadWithSampling({ model, - messages: state.messages.filter(m => m.role !== 'system'), + messages: msgs, stream: true, }); const res = await fetch('https://openrouter.ai/api/v1/chat/completions', { @@ -409,18 +444,37 @@ el.set_repetition_penalty.value = store.repetition_penalty; el.set_min_p.value = store.min_p; el.set_top_a.value = store.top_a; + el.set_system_prompt.value = store.system_prompt; + showModelTab(); el.settingsModal.classList.remove('hidden'); } function closeSettings() { el.settingsModal.classList.add('hidden'); } + // Tab toggling + function showModelTab() { + el.tabModel.classList.add('border-black'); + el.tabPrompt.classList.remove('border-black'); + el.panelModel.classList.remove('hidden'); + el.panelPrompt.classList.add('hidden'); + } + function showPromptTab() { + el.tabPrompt.classList.add('border-black'); + el.tabModel.classList.remove('border-black'); + el.panelPrompt.classList.remove('hidden'); + el.panelModel.classList.add('hidden'); + } + el.closeSettings.addEventListener('click', closeSettings); el.cancelSettings.addEventListener('click', closeSettings); el.settingsModal.addEventListener('click', (e) => { if (e.target === el.settingsModal || e.target.classList.contains('bg-black/30')) closeSettings(); }); + el.tabModel.addEventListener('click', showModelTab); + el.tabPrompt.addEventListener('click', showPromptTab); + el.settingsForm.addEventListener('submit', (e) => { e.preventDefault(); // collect + clamp @@ -444,6 +498,7 @@ store.repetition_penalty = repetition_penalty; store.min_p = min_p; store.top_a = top_a; + store.system_prompt = el.set_system_prompt.value.trim(); closeSettings(); });