p-spore 0.1.4 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +242 -67
- package/dist/agents/agent-manager.d.ts +3 -3
- package/dist/agents/agent-manager.d.ts.map +1 -1
- package/dist/agents/agent-manager.js +3 -2
- package/dist/agents/agent-manager.js.map +1 -1
- package/dist/application/agent-application.d.ts +29 -5
- package/dist/application/agent-application.d.ts.map +1 -1
- package/dist/application/agent-application.js +444 -14
- package/dist/application/agent-application.js.map +1 -1
- package/dist/articles/diff.d.ts +70 -0
- package/dist/articles/diff.d.ts.map +1 -0
- package/dist/articles/diff.js +330 -0
- package/dist/articles/diff.js.map +1 -0
- package/dist/articles/docx.d.ts +10 -0
- package/dist/articles/docx.d.ts.map +1 -0
- package/dist/articles/docx.js +219 -0
- package/dist/articles/docx.js.map +1 -0
- package/dist/articles/draft.d.ts +18 -0
- package/dist/articles/draft.d.ts.map +1 -0
- package/dist/articles/draft.js +88 -0
- package/dist/articles/draft.js.map +1 -0
- package/dist/articles/edits.d.ts +24 -0
- package/dist/articles/edits.d.ts.map +1 -0
- package/dist/articles/edits.js +54 -0
- package/dist/articles/edits.js.map +1 -0
- package/dist/articles/html.d.ts +10 -0
- package/dist/articles/html.d.ts.map +1 -0
- package/dist/articles/html.js +122 -0
- package/dist/articles/html.js.map +1 -0
- package/dist/articles/plain.d.ts +8 -0
- package/dist/articles/plain.d.ts.map +1 -0
- package/dist/articles/plain.js +69 -0
- package/dist/articles/plain.js.map +1 -0
- package/dist/articles/preview.d.ts +43 -0
- package/dist/articles/preview.d.ts.map +1 -0
- package/dist/articles/preview.js +90 -0
- package/dist/articles/preview.js.map +1 -0
- package/dist/articles/publish.d.ts +10 -0
- package/dist/articles/publish.d.ts.map +1 -0
- package/dist/articles/publish.js +54 -0
- package/dist/articles/publish.js.map +1 -0
- package/dist/articles/receipt.d.ts +16 -0
- package/dist/articles/receipt.d.ts.map +1 -0
- package/dist/articles/receipt.js +27 -0
- package/dist/articles/receipt.js.map +1 -0
- package/dist/articles/store.d.ts +78 -0
- package/dist/articles/store.d.ts.map +1 -0
- package/dist/articles/store.js +308 -0
- package/dist/articles/store.js.map +1 -0
- package/dist/articles/tool.d.ts +14 -0
- package/dist/articles/tool.d.ts.map +1 -0
- package/dist/articles/tool.js +175 -0
- package/dist/articles/tool.js.map +1 -0
- package/dist/articles/writer-context.d.ts +5 -0
- package/dist/articles/writer-context.d.ts.map +1 -0
- package/dist/articles/writer-context.js +56 -0
- package/dist/articles/writer-context.js.map +1 -0
- package/dist/articles/writer.d.ts +18 -0
- package/dist/articles/writer.d.ts.map +1 -0
- package/dist/articles/writer.js +79 -0
- package/dist/articles/writer.js.map +1 -0
- package/dist/articles/zip-write.d.ts +11 -0
- package/dist/articles/zip-write.d.ts.map +1 -0
- package/dist/articles/zip-write.js +63 -0
- package/dist/articles/zip-write.js.map +1 -0
- package/dist/bundled-skills/README.md +17 -0
- package/dist/bundled-skills/aegis-search/SKILL.md +59 -0
- package/dist/bundled-skills/aegis-search/bin/.gitkeep +0 -0
- package/dist/bundled-skills/article-canvas/SKILL.md +28 -0
- package/dist/bundled-skills/binaries.json +23 -0
- package/dist/bundled-skills/doc-extract/SKILL.md +56 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +407 -54
- package/dist/cli/main.js.map +1 -1
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +150 -6
- package/dist/config/config.js.map +1 -1
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +80 -11
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/desktop/application.d.ts +4 -0
- package/dist/desktop/application.d.ts.map +1 -0
- package/dist/desktop/application.js +1688 -0
- package/dist/desktop/application.js.map +1 -0
- package/dist/desktop/article-export.d.ts +12 -0
- package/dist/desktop/article-export.d.ts.map +1 -0
- package/dist/desktop/article-export.js +87 -0
- package/dist/desktop/article-export.js.map +1 -0
- package/dist/desktop/assets/pspore.png +0 -0
- package/dist/desktop/assets/pspore.svg +24 -0
- package/dist/desktop/conversation-smoke.d.ts +5 -0
- package/dist/desktop/conversation-smoke.d.ts.map +1 -0
- package/dist/desktop/conversation-smoke.js +107 -0
- package/dist/desktop/conversation-smoke.js.map +1 -0
- package/dist/desktop/daemon-bridge.d.ts.map +1 -1
- package/dist/desktop/daemon-bridge.js +62 -17
- package/dist/desktop/daemon-bridge.js.map +1 -1
- package/dist/desktop/ipc-contract.d.ts +124 -0
- package/dist/desktop/ipc-contract.d.ts.map +1 -1
- package/dist/desktop/ipc-contract.js +191 -12
- package/dist/desktop/ipc-contract.js.map +1 -1
- package/dist/desktop/local-path.d.ts +15 -0
- package/dist/desktop/local-path.d.ts.map +1 -0
- package/dist/desktop/local-path.js +59 -0
- package/dist/desktop/local-path.js.map +1 -0
- package/dist/desktop/main.d.ts +10 -1
- package/dist/desktop/main.d.ts.map +1 -1
- package/dist/desktop/main.js +122 -530
- package/dist/desktop/main.js.map +1 -1
- package/dist/desktop/native-startup.d.ts +4 -0
- package/dist/desktop/native-startup.d.ts.map +1 -0
- package/dist/desktop/native-startup.js +57 -0
- package/dist/desktop/native-startup.js.map +1 -0
- package/dist/desktop/preload.cjs +28 -1
- package/dist/desktop/renderer/article-panel.d.ts +45 -0
- package/dist/desktop/renderer/article-panel.d.ts.map +1 -0
- package/dist/desktop/renderer/article-panel.js +1126 -0
- package/dist/desktop/renderer/article-panel.js.map +1 -0
- package/dist/desktop/renderer/article-split.d.ts +32 -0
- package/dist/desktop/renderer/article-split.d.ts.map +1 -0
- package/dist/desktop/renderer/article-split.js +48 -0
- package/dist/desktop/renderer/article-split.js.map +1 -0
- package/dist/desktop/renderer/composer-file-references.d.ts +23 -0
- package/dist/desktop/renderer/composer-file-references.d.ts.map +1 -0
- package/dist/desktop/renderer/composer-file-references.js +51 -0
- package/dist/desktop/renderer/composer-file-references.js.map +1 -0
- package/dist/desktop/renderer/conversation.d.ts +23 -0
- package/dist/desktop/renderer/conversation.d.ts.map +1 -0
- package/dist/desktop/renderer/conversation.js +66 -0
- package/dist/desktop/renderer/conversation.js.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts +15 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.js +33 -0
- package/dist/desktop/renderer/dom-reconcile.js.map +1 -0
- package/dist/desktop/renderer/index.html +211 -34
- package/dist/desktop/renderer/indexing-view.d.ts +22 -0
- package/dist/desktop/renderer/indexing-view.d.ts.map +1 -0
- package/dist/desktop/renderer/indexing-view.js +115 -0
- package/dist/desktop/renderer/indexing-view.js.map +1 -0
- package/dist/desktop/renderer/markdown-view.d.ts +23 -0
- package/dist/desktop/renderer/markdown-view.d.ts.map +1 -0
- package/dist/desktop/renderer/markdown-view.js +436 -0
- package/dist/desktop/renderer/markdown-view.js.map +1 -0
- package/dist/desktop/renderer/motion.d.ts +67 -0
- package/dist/desktop/renderer/motion.d.ts.map +1 -0
- package/dist/desktop/renderer/motion.js +296 -0
- package/dist/desktop/renderer/motion.js.map +1 -0
- package/dist/desktop/renderer/renderer.js +1799 -152
- package/dist/desktop/renderer/renderer.js.map +1 -1
- package/dist/desktop/renderer/session-find.d.ts +18 -0
- package/dist/desktop/renderer/session-find.d.ts.map +1 -0
- package/dist/desktop/renderer/session-find.js +29 -0
- package/dist/desktop/renderer/session-find.js.map +1 -0
- package/dist/desktop/renderer/session-search.d.ts +30 -0
- package/dist/desktop/renderer/session-search.d.ts.map +1 -0
- package/dist/desktop/renderer/session-search.js +296 -0
- package/dist/desktop/renderer/session-search.js.map +1 -0
- package/dist/desktop/renderer/store.d.ts +33 -0
- package/dist/desktop/renderer/store.d.ts.map +1 -1
- package/dist/desktop/renderer/store.js +92 -19
- package/dist/desktop/renderer/store.js.map +1 -1
- package/dist/desktop/renderer/styles.css +928 -268
- package/dist/desktop/renderer/vendor/gsap.min.js +11 -0
- package/dist/desktop/renderer-diagnostics.d.ts +5 -0
- package/dist/desktop/renderer-diagnostics.d.ts.map +1 -0
- package/dist/desktop/renderer-diagnostics.js +47 -0
- package/dist/desktop/renderer-diagnostics.js.map +1 -0
- package/dist/desktop/security.d.ts +26 -1
- package/dist/desktop/security.d.ts.map +1 -1
- package/dist/desktop/security.js +26 -6
- package/dist/desktop/security.js.map +1 -1
- package/dist/desktop/smoke-fixture.d.ts.map +1 -1
- package/dist/desktop/smoke-fixture.js +77 -3
- package/dist/desktop/smoke-fixture.js.map +1 -1
- package/dist/desktop/splash/index.html +25 -0
- package/dist/desktop/splash/splash.d.ts +2 -0
- package/dist/desktop/splash/splash.d.ts.map +1 -0
- package/dist/desktop/splash/splash.js +8 -0
- package/dist/desktop/splash/splash.js.map +1 -0
- package/dist/desktop/splash/styles.css +24 -0
- package/dist/desktop/system-open.d.ts +16 -0
- package/dist/desktop/system-open.d.ts.map +1 -0
- package/dist/desktop/system-open.js +90 -0
- package/dist/desktop/system-open.js.map +1 -0
- package/dist/desktop/validation.d.ts.map +1 -1
- package/dist/desktop/validation.js +99 -21
- package/dist/desktop/validation.js.map +1 -1
- package/dist/desktop/window-security.d.ts +4 -0
- package/dist/desktop/window-security.d.ts.map +1 -0
- package/dist/desktop/window-security.js +26 -0
- package/dist/desktop/window-security.js.map +1 -0
- package/dist/documents/errors.d.ts +12 -0
- package/dist/documents/errors.d.ts.map +1 -0
- package/dist/documents/errors.js +12 -0
- package/dist/documents/errors.js.map +1 -0
- package/dist/documents/extract.d.ts +37 -0
- package/dist/documents/extract.d.ts.map +1 -0
- package/dist/documents/extract.js +90 -0
- package/dist/documents/extract.js.map +1 -0
- package/dist/documents/legacy-office.d.ts +23 -0
- package/dist/documents/legacy-office.d.ts.map +1 -0
- package/dist/documents/legacy-office.js +439 -0
- package/dist/documents/legacy-office.js.map +1 -0
- package/dist/documents/ole.d.ts +20 -0
- package/dist/documents/ole.d.ts.map +1 -0
- package/dist/documents/ole.js +189 -0
- package/dist/documents/ole.js.map +1 -0
- package/dist/documents/ooxml.d.ts +23 -0
- package/dist/documents/ooxml.d.ts.map +1 -0
- package/dist/documents/ooxml.js +197 -0
- package/dist/documents/ooxml.js.map +1 -0
- package/dist/documents/pdf.d.ts +20 -0
- package/dist/documents/pdf.d.ts.map +1 -0
- package/dist/documents/pdf.js +95 -0
- package/dist/documents/pdf.js.map +1 -0
- package/dist/documents/plain-text.d.ts +22 -0
- package/dist/documents/plain-text.d.ts.map +1 -0
- package/dist/documents/plain-text.js +57 -0
- package/dist/documents/plain-text.js.map +1 -0
- package/dist/documents/zip.d.ts +15 -0
- package/dist/documents/zip.d.ts.map +1 -0
- package/dist/documents/zip.js +137 -0
- package/dist/documents/zip.js.map +1 -0
- package/dist/domain/indexing.d.ts +60 -0
- package/dist/domain/indexing.d.ts.map +1 -0
- package/dist/domain/indexing.js +13 -0
- package/dist/domain/indexing.js.map +1 -0
- package/dist/domain/runtime.d.ts +133 -5
- package/dist/domain/runtime.d.ts.map +1 -1
- package/dist/gateway/local-gateway.d.ts +8 -0
- package/dist/gateway/local-gateway.d.ts.map +1 -1
- package/dist/gateway/local-gateway.js +105 -21
- package/dist/gateway/local-gateway.js.map +1 -1
- package/dist/indexing/index-service.d.ts +56 -0
- package/dist/indexing/index-service.d.ts.map +1 -0
- package/dist/indexing/index-service.js +262 -0
- package/dist/indexing/index-service.js.map +1 -0
- package/dist/kernel/loop.d.ts +10 -0
- package/dist/kernel/loop.d.ts.map +1 -1
- package/dist/kernel/loop.js +6 -2
- package/dist/kernel/loop.js.map +1 -1
- package/dist/kernel/reducer.d.ts.map +1 -1
- package/dist/kernel/reducer.js +17 -1
- package/dist/kernel/reducer.js.map +1 -1
- package/dist/kernel/state.d.ts +17 -4
- package/dist/kernel/state.d.ts.map +1 -1
- package/dist/kernel/state.js +2 -0
- package/dist/kernel/state.js.map +1 -1
- package/dist/pi/context-budget.d.ts +8 -0
- package/dist/pi/context-budget.d.ts.map +1 -0
- package/dist/pi/context-budget.js +62 -0
- package/dist/pi/context-budget.js.map +1 -0
- package/dist/pi/pi-runtime-adapter.d.ts +38 -3
- package/dist/pi/pi-runtime-adapter.d.ts.map +1 -1
- package/dist/pi/pi-runtime-adapter.js +551 -56
- package/dist/pi/pi-runtime-adapter.js.map +1 -1
- package/dist/plugins/bundled-skills.d.ts +56 -0
- package/dist/plugins/bundled-skills.d.ts.map +1 -0
- package/dist/plugins/bundled-skills.js +243 -0
- package/dist/plugins/bundled-skills.js.map +1 -0
- package/dist/plugins/extension-manager.d.ts +23 -1
- package/dist/plugins/extension-manager.d.ts.map +1 -1
- package/dist/plugins/extension-manager.js +117 -0
- package/dist/plugins/extension-manager.js.map +1 -1
- package/dist/plugins/types.d.ts +29 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/workspace-skills.d.ts +36 -0
- package/dist/plugins/workspace-skills.d.ts.map +1 -0
- package/dist/plugins/workspace-skills.js +309 -0
- package/dist/plugins/workspace-skills.js.map +1 -0
- package/dist/policy/policy.d.ts.map +1 -1
- package/dist/policy/policy.js +22 -3
- package/dist/policy/policy.js.map +1 -1
- package/dist/protocol/client.d.ts +1 -0
- package/dist/protocol/client.d.ts.map +1 -1
- package/dist/protocol/client.js +49 -24
- package/dist/protocol/client.js.map +1 -1
- package/dist/protocol/limits.d.ts +69 -0
- package/dist/protocol/limits.d.ts.map +1 -0
- package/dist/protocol/limits.js +166 -0
- package/dist/protocol/limits.js.map +1 -0
- package/dist/protocol/schema.d.ts +6 -0
- package/dist/protocol/schema.d.ts.map +1 -1
- package/dist/protocol/schema.js.map +1 -1
- package/dist/protocol/server-frame-codec.d.ts +18 -0
- package/dist/protocol/server-frame-codec.d.ts.map +1 -0
- package/dist/protocol/server-frame-codec.js +211 -0
- package/dist/protocol/server-frame-codec.js.map +1 -0
- package/dist/service/legacy-daemon.d.ts +6 -0
- package/dist/service/legacy-daemon.d.ts.map +1 -0
- package/dist/service/legacy-daemon.js +42 -0
- package/dist/service/legacy-daemon.js.map +1 -0
- package/dist/service/service-launch.d.ts +10 -0
- package/dist/service/service-launch.d.ts.map +1 -0
- package/dist/service/service-launch.js +56 -0
- package/dist/service/service-launch.js.map +1 -0
- package/dist/service/system-service.d.ts +57 -0
- package/dist/service/system-service.d.ts.map +1 -0
- package/dist/service/system-service.js +263 -0
- package/dist/service/system-service.js.map +1 -0
- package/dist/sessions/session-catalog.d.ts +45 -0
- package/dist/sessions/session-catalog.d.ts.map +1 -0
- package/dist/sessions/session-catalog.js +270 -0
- package/dist/sessions/session-catalog.js.map +1 -0
- package/dist/sessions/session-file.d.ts +12 -0
- package/dist/sessions/session-file.d.ts.map +1 -0
- package/dist/sessions/session-file.js +47 -0
- package/dist/sessions/session-file.js.map +1 -0
- package/dist/settings/compaction-settings.d.ts +10 -0
- package/dist/settings/compaction-settings.d.ts.map +1 -0
- package/dist/settings/compaction-settings.js +8 -0
- package/dist/settings/compaction-settings.js.map +1 -0
- package/dist/settings/indexing-settings-service.d.ts +16 -0
- package/dist/settings/indexing-settings-service.d.ts.map +1 -0
- package/dist/settings/indexing-settings-service.js +57 -0
- package/dist/settings/indexing-settings-service.js.map +1 -0
- package/dist/settings/indexing-settings.d.ts +30 -0
- package/dist/settings/indexing-settings.d.ts.map +1 -0
- package/dist/settings/indexing-settings.js +58 -0
- package/dist/settings/indexing-settings.js.map +1 -0
- package/dist/settings/llm-settings-service.d.ts +6 -0
- package/dist/settings/llm-settings-service.d.ts.map +1 -1
- package/dist/settings/llm-settings-service.js +137 -12
- package/dist/settings/llm-settings-service.js.map +1 -1
- package/dist/settings/llm-settings.d.ts +68 -2
- package/dist/settings/llm-settings.d.ts.map +1 -1
- package/dist/settings/llm-settings.js +119 -17
- package/dist/settings/llm-settings.js.map +1 -1
- package/dist/settings/model-api.d.ts +10 -0
- package/dist/settings/model-api.d.ts.map +1 -0
- package/dist/settings/model-api.js +10 -0
- package/dist/settings/model-api.js.map +1 -0
- package/dist/storage/home.d.ts +1 -0
- package/dist/storage/home.d.ts.map +1 -1
- package/dist/storage/home.js +37 -2
- package/dist/storage/home.js.map +1 -1
- package/dist/tools/core-tools.d.ts +2 -0
- package/dist/tools/core-tools.d.ts.map +1 -1
- package/dist/tools/core-tools.js +91 -1
- package/dist/tools/core-tools.js.map +1 -1
- package/dist/ui/shared/activity.d.ts +2 -0
- package/dist/ui/shared/activity.d.ts.map +1 -1
- package/dist/ui/shared/activity.js +18 -4
- package/dist/ui/shared/activity.js.map +1 -1
- package/dist/ui/shared/full-message.d.ts +22 -0
- package/dist/ui/shared/full-message.d.ts.map +1 -0
- package/dist/ui/shared/full-message.js +40 -0
- package/dist/ui/shared/full-message.js.map +1 -0
- package/dist/ui/shared/local-links.d.ts +7 -0
- package/dist/ui/shared/local-links.d.ts.map +1 -0
- package/dist/ui/shared/local-links.js +24 -0
- package/dist/ui/shared/local-links.js.map +1 -0
- package/dist/ui/shared/markdown-stream.d.ts +25 -0
- package/dist/ui/shared/markdown-stream.d.ts.map +1 -0
- package/dist/ui/shared/markdown-stream.js +35 -0
- package/dist/ui/shared/markdown-stream.js.map +1 -0
- package/dist/ui/shared/markdown.d.ts +70 -0
- package/dist/ui/shared/markdown.d.ts.map +1 -0
- package/dist/ui/shared/markdown.js +434 -0
- package/dist/ui/shared/markdown.js.map +1 -0
- package/dist/ui/shared/presentation.d.ts +10 -2
- package/dist/ui/shared/presentation.d.ts.map +1 -1
- package/dist/ui/shared/presentation.js +83 -22
- package/dist/ui/shared/presentation.js.map +1 -1
- package/dist/ui/shared/protocol-state.d.ts +19 -0
- package/dist/ui/shared/protocol-state.d.ts.map +1 -1
- package/dist/ui/shared/protocol-state.js +188 -26
- package/dist/ui/shared/protocol-state.js.map +1 -1
- package/dist/ui/shared/virtual-list.d.ts +34 -0
- package/dist/ui/shared/virtual-list.d.ts.map +1 -0
- package/dist/ui/shared/virtual-list.js +143 -0
- package/dist/ui/shared/virtual-list.js.map +1 -0
- package/dist/ui/tui/commands.d.ts +1 -1
- package/dist/ui/tui/commands.d.ts.map +1 -1
- package/dist/ui/tui/commands.js +8 -3
- package/dist/ui/tui/commands.js.map +1 -1
- package/dist/ui/tui/store.d.ts +22 -1
- package/dist/ui/tui/store.d.ts.map +1 -1
- package/dist/ui/tui/store.js +50 -3
- package/dist/ui/tui/store.js.map +1 -1
- package/dist/ui/tui/tui-app.d.ts.map +1 -1
- package/dist/ui/tui/tui-app.js +231 -31
- package/dist/ui/tui/tui-app.js.map +1 -1
- package/dist/ui/tui/view.d.ts +7 -0
- package/dist/ui/tui/view.d.ts.map +1 -1
- package/dist/ui/tui/view.js +161 -57
- package/dist/ui/tui/view.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +13 -2
|
@@ -4,7 +4,7 @@ import { ModelRuntime } from "@earendil-works/pi-coding-agent";
|
|
|
4
4
|
import { parseConfig } from "../config/config.js";
|
|
5
5
|
import { atomicWriteFile, atomicWriteJson } from "../storage/atomic.js";
|
|
6
6
|
import { loadConfig } from "../storage/home.js";
|
|
7
|
-
import { decodeLlmSettingsUpdate, PROVIDER_OPTIONS, } from "./llm-settings.js";
|
|
7
|
+
import { decodeLlmSettingsUpdate, PROVIDER_OPTIONS, RESERVED_HEADER_NAMES, } from "./llm-settings.js";
|
|
8
8
|
const DEFAULT_PROVIDER = "deepseek";
|
|
9
9
|
const DEFAULT_MODEL = "deepseek-v4-flash";
|
|
10
10
|
const MAX_MODELS_FILE_BYTES = 1_048_576;
|
|
@@ -29,33 +29,75 @@ export class LlmSettingsService {
|
|
|
29
29
|
const config = await loadConfig(this.#home);
|
|
30
30
|
return config.model !== null;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* `config.json` is authoritative for every field the settings panel edits.
|
|
34
|
+
* `state/pi/models.json` is a derived catalog for the Pi runtime, so it is only
|
|
35
|
+
* consulted to recover endpoint values written by a pre-0.1.15 build that had
|
|
36
|
+
* nowhere else to store them.
|
|
37
|
+
*/
|
|
32
38
|
async get() {
|
|
33
39
|
const config = await loadConfig(this.#home);
|
|
34
40
|
const provider = providerOption(config.model?.provider ?? DEFAULT_PROVIDER);
|
|
35
41
|
const model = config.model?.model ?? DEFAULT_MODEL;
|
|
36
42
|
const models = await this.#readModels();
|
|
37
43
|
const providerConfig = record(models.providers[provider]);
|
|
38
|
-
const
|
|
39
|
-
const customModel = Array.isArray(providerConfig?.["models"])
|
|
44
|
+
const legacyCustomModel = Array.isArray(providerConfig?.["models"])
|
|
40
45
|
&& providerConfig["models"].some((candidate) => record(candidate)?.["id"] === model);
|
|
46
|
+
const baseUrl = config.model?.baseUrl
|
|
47
|
+
?? (typeof providerConfig?.["baseUrl"] === "string" ? providerConfig["baseUrl"] : "");
|
|
48
|
+
const api = config.model?.api ?? modelApi(providerConfig?.["api"]);
|
|
49
|
+
const apiKeyPath = config.model?.apiKeyFile ?? this.#credentialPath(provider);
|
|
50
|
+
const cookiePath = config.model?.cookieFile ?? this.#cookiePath(provider);
|
|
41
51
|
return {
|
|
42
52
|
version: 1,
|
|
43
53
|
provider,
|
|
44
54
|
model,
|
|
45
|
-
baseUrl
|
|
55
|
+
baseUrl,
|
|
46
56
|
api,
|
|
47
57
|
thinking: config.model?.thinking ?? "off",
|
|
48
|
-
customModel,
|
|
49
|
-
|
|
58
|
+
customModel: config.model?.customModel ?? legacyCustomModel,
|
|
59
|
+
permissionMode: config.permissions.mode,
|
|
60
|
+
autoCompactionEnabled: config.context.autoCompaction.enabled,
|
|
61
|
+
autoCompactionTriggerTokens: config.context.autoCompaction.triggerTokens,
|
|
62
|
+
autoCompactionReserveTokens: config.context.autoCompaction.reserveTokens,
|
|
63
|
+
autoCompactionKeepRecentTokens: config.context.autoCompaction.keepRecentTokens,
|
|
64
|
+
hasApiKey: await this.#hasApiKey(apiKeyPath, providerConfig),
|
|
65
|
+
hasCookie: await this.#hasCookie(cookiePath, providerConfig),
|
|
66
|
+
configPath: this.#paths.config,
|
|
67
|
+
apiKeyPath,
|
|
68
|
+
cookiePath,
|
|
69
|
+
customHeaders: await this.#customHeaders(provider, providerConfig),
|
|
70
|
+
modelsPath: this.#modelsPath(),
|
|
50
71
|
};
|
|
51
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* The header names live in the Pi catalog, which is what actually sends them;
|
|
75
|
+
* the values live one file each, so what comes back says a value exists
|
|
76
|
+
* without carrying it.
|
|
77
|
+
*/
|
|
78
|
+
async #customHeaders(provider, providerConfig) {
|
|
79
|
+
const headers = record(providerConfig?.["headers"]) ?? {};
|
|
80
|
+
const settings = [];
|
|
81
|
+
for (const name of Object.keys(headers)) {
|
|
82
|
+
if (RESERVED_HEADER_NAMES.includes(name.toLowerCase()))
|
|
83
|
+
continue;
|
|
84
|
+
const path = this.#headerPath(provider, name);
|
|
85
|
+
settings.push({ name, hasValue: await exists(path), path });
|
|
86
|
+
}
|
|
87
|
+
return settings;
|
|
88
|
+
}
|
|
89
|
+
#headerPath(provider, name) {
|
|
90
|
+
return join(this.#paths.credentials, `${provider}.header-${name.toLowerCase()}`);
|
|
91
|
+
}
|
|
52
92
|
async save(update) {
|
|
53
93
|
update = decodeLlmSettingsUpdate(update);
|
|
54
94
|
const currentConfig = await loadConfig(this.#home);
|
|
55
95
|
const models = await this.#readModels();
|
|
56
96
|
const providerConfig = { ...(record(models.providers[update.provider]) ?? {}) };
|
|
57
97
|
const credentialPath = this.#credentialPath(update.provider);
|
|
98
|
+
const cookiePath = this.#cookiePath(update.provider);
|
|
58
99
|
const credentialExists = await exists(credentialPath);
|
|
100
|
+
const cookieExists = await exists(cookiePath);
|
|
59
101
|
if (update.baseUrl)
|
|
60
102
|
providerConfig["baseUrl"] = update.baseUrl;
|
|
61
103
|
else
|
|
@@ -81,6 +123,46 @@ export class LlmSettingsService {
|
|
|
81
123
|
else if (update.clearApiKey && isManagedCredentialCommand(providerConfig["apiKey"], credentialPath)) {
|
|
82
124
|
delete providerConfig["apiKey"];
|
|
83
125
|
}
|
|
126
|
+
const headers = { ...(record(providerConfig["headers"]) ?? {}) };
|
|
127
|
+
if (update.cookie || (cookieExists && !update.clearCookie)) {
|
|
128
|
+
headers["Cookie"] = credentialCommand(cookiePath);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
delete headers["Cookie"];
|
|
132
|
+
}
|
|
133
|
+
// A client that predates custom headers omits the field and keeps whatever
|
|
134
|
+
// is stored; one that sends it is describing the complete set.
|
|
135
|
+
const headerWrites = [];
|
|
136
|
+
const headerRemovals = [];
|
|
137
|
+
if (update.customHeaders) {
|
|
138
|
+
const kept = new Set(update.customHeaders.map((header) => header.name.toLowerCase()));
|
|
139
|
+
for (const name of Object.keys(headers)) {
|
|
140
|
+
if (RESERVED_HEADER_NAMES.includes(name.toLowerCase()))
|
|
141
|
+
continue;
|
|
142
|
+
if (kept.has(name.toLowerCase()))
|
|
143
|
+
continue;
|
|
144
|
+
headerRemovals.push(this.#headerPath(update.provider, name));
|
|
145
|
+
delete headers[name];
|
|
146
|
+
}
|
|
147
|
+
for (const header of update.customHeaders) {
|
|
148
|
+
const path = this.#headerPath(update.provider, header.name);
|
|
149
|
+
if (header.value === undefined && !(await exists(path))) {
|
|
150
|
+
throw new Error(`Header ${header.name} has no stored value; send one with it.`);
|
|
151
|
+
}
|
|
152
|
+
if (header.value !== undefined)
|
|
153
|
+
headerWrites.push({ path, value: header.value });
|
|
154
|
+
// Re-keying by the name as typed keeps a rename from leaving both behind.
|
|
155
|
+
for (const existing of Object.keys(headers)) {
|
|
156
|
+
if (existing !== header.name && existing.toLowerCase() === header.name.toLowerCase())
|
|
157
|
+
delete headers[existing];
|
|
158
|
+
}
|
|
159
|
+
headers[header.name] = credentialCommand(path);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (Object.keys(headers).length > 0)
|
|
163
|
+
providerConfig["headers"] = headers;
|
|
164
|
+
else
|
|
165
|
+
delete providerConfig["headers"];
|
|
84
166
|
const nextModels = { ...models, providers: { ...models.providers } };
|
|
85
167
|
if (Object.keys(providerConfig).length > 0)
|
|
86
168
|
nextModels.providers[update.provider] = providerConfig;
|
|
@@ -88,21 +170,52 @@ export class LlmSettingsService {
|
|
|
88
170
|
delete nextModels.providers[update.provider];
|
|
89
171
|
const nextConfig = parseConfig({
|
|
90
172
|
...currentConfig,
|
|
91
|
-
model: {
|
|
173
|
+
model: {
|
|
174
|
+
provider: update.provider,
|
|
175
|
+
model: update.model,
|
|
176
|
+
thinking: update.thinking,
|
|
177
|
+
...(update.baseUrl ? { baseUrl: update.baseUrl } : {}),
|
|
178
|
+
api: update.api,
|
|
179
|
+
customModel: update.customModel,
|
|
180
|
+
// Record where the secrets live, never the secrets themselves.
|
|
181
|
+
apiKeyFile: credentialPath,
|
|
182
|
+
cookieFile: cookiePath,
|
|
183
|
+
},
|
|
184
|
+
permissions: { ...currentConfig.permissions, mode: update.permissionMode },
|
|
185
|
+
context: {
|
|
186
|
+
...currentConfig.context,
|
|
187
|
+
autoCompaction: {
|
|
188
|
+
enabled: update.autoCompactionEnabled ?? currentConfig.context.autoCompaction.enabled,
|
|
189
|
+
triggerTokens: update.autoCompactionTriggerTokens ?? currentConfig.context.autoCompaction.triggerTokens,
|
|
190
|
+
reserveTokens: update.autoCompactionReserveTokens ?? currentConfig.context.autoCompaction.reserveTokens,
|
|
191
|
+
keepRecentTokens: update.autoCompactionKeepRecentTokens ?? currentConfig.context.autoCompaction.keepRecentTokens,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
92
194
|
}, this.#home);
|
|
93
195
|
await this.#validateModel(nextModels, update.provider, update.model);
|
|
94
|
-
if (update.apiKey) {
|
|
196
|
+
if (update.apiKey || update.cookie || headerWrites.length > 0) {
|
|
95
197
|
await mkdir(this.#paths.credentials, { recursive: true, mode: 0o700 });
|
|
198
|
+
}
|
|
199
|
+
for (const write of headerWrites)
|
|
200
|
+
await atomicWriteFile(write.path, write.value, 0o600);
|
|
201
|
+
if (update.apiKey) {
|
|
96
202
|
await atomicWriteFile(credentialPath, update.apiKey, 0o600);
|
|
97
203
|
}
|
|
98
|
-
|
|
204
|
+
if (update.cookie) {
|
|
205
|
+
await atomicWriteFile(cookiePath, update.cookie, 0o600);
|
|
206
|
+
}
|
|
207
|
+
await atomicWriteJson(this.#modelsPath(), nextModels, 0o600);
|
|
99
208
|
await atomicWriteJson(this.#paths.config, nextConfig, 0o600);
|
|
100
209
|
if (update.clearApiKey)
|
|
101
210
|
await unlink(credentialPath).catch(ignoreMissingFile);
|
|
211
|
+
if (update.clearCookie)
|
|
212
|
+
await unlink(cookiePath).catch(ignoreMissingFile);
|
|
213
|
+
for (const path of headerRemovals)
|
|
214
|
+
await unlink(path).catch(ignoreMissingFile);
|
|
102
215
|
return this.get();
|
|
103
216
|
}
|
|
104
217
|
async #readModels() {
|
|
105
|
-
const path =
|
|
218
|
+
const path = this.#modelsPath();
|
|
106
219
|
let source;
|
|
107
220
|
try {
|
|
108
221
|
source = await readFile(path, "utf8");
|
|
@@ -141,14 +254,26 @@ export class LlmSettingsService {
|
|
|
141
254
|
await rm(temporaryDirectory, { recursive: true, force: true });
|
|
142
255
|
}
|
|
143
256
|
}
|
|
144
|
-
async #hasApiKey(
|
|
145
|
-
if (await exists(
|
|
257
|
+
async #hasApiKey(path, providerConfig) {
|
|
258
|
+
if (await exists(path))
|
|
146
259
|
return true;
|
|
147
260
|
return typeof providerConfig?.["apiKey"] === "string" && providerConfig["apiKey"].length > 0;
|
|
148
261
|
}
|
|
262
|
+
async #hasCookie(path, providerConfig) {
|
|
263
|
+
if (await exists(path))
|
|
264
|
+
return true;
|
|
265
|
+
const headers = record(providerConfig?.["headers"]);
|
|
266
|
+
return typeof headers?.["Cookie"] === "string" && headers["Cookie"].length > 0;
|
|
267
|
+
}
|
|
149
268
|
#credentialPath(provider) {
|
|
150
269
|
return join(this.#paths.credentials, `${provider}.api-key`);
|
|
151
270
|
}
|
|
271
|
+
#cookiePath(provider) {
|
|
272
|
+
return join(this.#paths.credentials, `${provider}.cookie`);
|
|
273
|
+
}
|
|
274
|
+
#modelsPath() {
|
|
275
|
+
return join(this.#paths.agentDir, "models.json");
|
|
276
|
+
}
|
|
152
277
|
}
|
|
153
278
|
function upsertCustomModel(value, model) {
|
|
154
279
|
const models = Array.isArray(value) ? [...value] : [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-settings-service.js","sourceRoot":"","sources":["../../src/settings/llm-settings-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-settings-service.js","sourceRoot":"","sources":["../../src/settings/llm-settings-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PermissionMode } from "../config/config.js";
|
|
2
|
+
import { type ModelApi } from "./model-api.js";
|
|
3
|
+
export { MODEL_APIS } from "./model-api.js";
|
|
4
|
+
export type { ModelApi } from "./model-api.js";
|
|
2
5
|
export type ThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
3
6
|
export type ProviderOption = "deepseek" | "openai" | "custom-openai";
|
|
7
|
+
/**
|
|
8
|
+
* One header added to every request to the model endpoint.
|
|
9
|
+
*
|
|
10
|
+
* The value is kept in its own file next to the API key and the cookie, and
|
|
11
|
+
* referenced from the Pi model catalog the same way, so it never sits in a
|
|
12
|
+
* config file and never travels back to a client.
|
|
13
|
+
*/
|
|
14
|
+
export interface CustomHeaderSetting {
|
|
15
|
+
name: string;
|
|
16
|
+
hasValue: boolean;
|
|
17
|
+
/** Absolute file the value is read from. Shown in clients; never the value itself. */
|
|
18
|
+
path: string;
|
|
19
|
+
}
|
|
20
|
+
/** A header to keep, set or replace. Omitting `value` keeps whatever is stored. */
|
|
21
|
+
export interface CustomHeaderUpdate {
|
|
22
|
+
name: string;
|
|
23
|
+
value?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Header names reserved for settings that have their own field. */
|
|
26
|
+
export declare const RESERVED_HEADER_NAMES: readonly string[];
|
|
27
|
+
export declare const MAX_CUSTOM_HEADERS = 16;
|
|
28
|
+
export declare const MAX_HEADER_VALUE_CHARS = 4096;
|
|
4
29
|
export interface LlmSettings {
|
|
5
30
|
version: 1;
|
|
6
31
|
provider: ProviderOption;
|
|
@@ -9,7 +34,24 @@ export interface LlmSettings {
|
|
|
9
34
|
api: ModelApi;
|
|
10
35
|
thinking: ThinkingLevel;
|
|
11
36
|
customModel: boolean;
|
|
37
|
+
/** Daemon-wide approval policy; `allow_all` bypasses every approval prompt. */
|
|
38
|
+
permissionMode: PermissionMode;
|
|
39
|
+
autoCompactionEnabled: boolean;
|
|
40
|
+
autoCompactionTriggerTokens: number;
|
|
41
|
+
autoCompactionReserveTokens: number;
|
|
42
|
+
autoCompactionKeepRecentTokens: number;
|
|
12
43
|
hasApiKey: boolean;
|
|
44
|
+
hasCookie: boolean;
|
|
45
|
+
/** Absolute path of `config.json`, the authoritative store for every field above. */
|
|
46
|
+
configPath: string;
|
|
47
|
+
/** Absolute file the API key is read from. Shown in clients; never the secret itself. */
|
|
48
|
+
apiKeyPath: string;
|
|
49
|
+
/** Absolute file the `Cookie` header value is read from. */
|
|
50
|
+
cookiePath: string;
|
|
51
|
+
/** Extra headers sent with every model request, newest configuration first. */
|
|
52
|
+
customHeaders: CustomHeaderSetting[];
|
|
53
|
+
/** Absolute path of the derived Pi model catalog written from `config.json`. */
|
|
54
|
+
modelsPath: string;
|
|
13
55
|
}
|
|
14
56
|
export interface LlmSettingsUpdate {
|
|
15
57
|
provider: ProviderOption;
|
|
@@ -18,12 +60,36 @@ export interface LlmSettingsUpdate {
|
|
|
18
60
|
api: ModelApi;
|
|
19
61
|
thinking: ThinkingLevel;
|
|
20
62
|
customModel: boolean;
|
|
63
|
+
permissionMode: PermissionMode;
|
|
64
|
+
/** Optional so a pre-upgrade GUI/TUI can save another setting without resetting compact values. */
|
|
65
|
+
autoCompactionEnabled?: boolean;
|
|
66
|
+
autoCompactionTriggerTokens?: number;
|
|
67
|
+
autoCompactionReserveTokens?: number;
|
|
68
|
+
autoCompactionKeepRecentTokens?: number;
|
|
21
69
|
apiKey?: string;
|
|
70
|
+
cookie?: string;
|
|
71
|
+
/**
|
|
72
|
+
* The complete set of extra headers. Present means "make it look like this":
|
|
73
|
+
* a name that is absent is removed along with its stored value. Omitting the
|
|
74
|
+
* field entirely leaves the stored headers alone, so a client that predates
|
|
75
|
+
* them can still save every other setting.
|
|
76
|
+
*/
|
|
77
|
+
customHeaders?: CustomHeaderUpdate[];
|
|
22
78
|
clearApiKey: boolean;
|
|
79
|
+
clearCookie: boolean;
|
|
23
80
|
}
|
|
24
|
-
export declare const MODEL_APIS: readonly ModelApi[];
|
|
25
81
|
export declare const THINKING_LEVELS: readonly ThinkingLevel[];
|
|
26
82
|
export declare const PROVIDER_OPTIONS: readonly ProviderOption[];
|
|
83
|
+
export declare const PERMISSION_MODES: readonly PermissionMode[];
|
|
84
|
+
/** `allow_all` runs every tool with the daemon user's own privileges and no confirmation. */
|
|
85
|
+
export declare const BYPASS_PERMISSION_MODE: PermissionMode;
|
|
86
|
+
export declare function permissionModeSummary(mode: PermissionMode): string;
|
|
27
87
|
export declare function defaultModelFor(provider: ProviderOption): string;
|
|
28
88
|
export declare function decodeLlmSettingsUpdate(value: unknown, label?: string): LlmSettingsUpdate;
|
|
89
|
+
/**
|
|
90
|
+
* A header name that is not a token, or a value carrying CR/LF, would let a
|
|
91
|
+
* pasted string add headers of its own to every request. Both are rejected
|
|
92
|
+
* here rather than sanitised, so the setting a client saved is the one sent.
|
|
93
|
+
*/
|
|
94
|
+
export declare function decodeCustomHeaders(value: unknown, label: string): CustomHeaderUpdate[];
|
|
29
95
|
//# sourceMappingURL=llm-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-settings.d.ts","sourceRoot":"","sources":["../../src/settings/llm-settings.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"llm-settings.d.ts","sourceRoot":"","sources":["../../src/settings/llm-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { MAX_COMPACTION_TOKENS } from "./compaction-settings.js";
|
|
2
|
+
import { MODEL_APIS } from "./model-api.js";
|
|
3
|
+
export { MODEL_APIS } from "./model-api.js";
|
|
4
|
+
/** Header names reserved for settings that have their own field. */
|
|
5
|
+
export const RESERVED_HEADER_NAMES = ["cookie"];
|
|
6
|
+
export const MAX_CUSTOM_HEADERS = 16;
|
|
7
|
+
export const MAX_HEADER_VALUE_CHARS = 4_096;
|
|
8
|
+
/** RFC 7230 token characters, minus the ones that would make an awkward file name. */
|
|
9
|
+
const HEADER_NAME = /^[A-Za-z0-9][A-Za-z0-9_-]{0,62}$/;
|
|
8
10
|
export const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
9
11
|
export const PROVIDER_OPTIONS = ["deepseek", "openai", "custom-openai"];
|
|
12
|
+
export const PERMISSION_MODES = ["ask_risky", "ask_all", "allow_all", "deny"];
|
|
13
|
+
/** `allow_all` runs every tool with the daemon user's own privileges and no confirmation. */
|
|
14
|
+
export const BYPASS_PERMISSION_MODE = "allow_all";
|
|
15
|
+
export function permissionModeSummary(mode) {
|
|
16
|
+
switch (mode) {
|
|
17
|
+
case "ask_risky":
|
|
18
|
+
return "ask before risky operations (default)";
|
|
19
|
+
case "ask_all":
|
|
20
|
+
return "ask before every mutating operation";
|
|
21
|
+
case "allow_all":
|
|
22
|
+
return "bypass all approvals — every tool runs unconfirmed";
|
|
23
|
+
case "deny":
|
|
24
|
+
return "deny every gated operation";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
10
27
|
export function defaultModelFor(provider) {
|
|
11
28
|
if (provider === "deepseek")
|
|
12
29
|
return "deepseek-v4-flash";
|
|
@@ -16,7 +33,13 @@ export function defaultModelFor(provider) {
|
|
|
16
33
|
}
|
|
17
34
|
export function decodeLlmSettingsUpdate(value, label = "LLM settings") {
|
|
18
35
|
const input = object(value, label);
|
|
19
|
-
exactShape(input, [
|
|
36
|
+
exactShape(input, [
|
|
37
|
+
"provider", "model", "baseUrl", "api", "thinking", "customModel", "permissionMode",
|
|
38
|
+
"clearApiKey", "clearCookie",
|
|
39
|
+
], [
|
|
40
|
+
"apiKey", "cookie", "customHeaders", "autoCompactionEnabled", "autoCompactionTriggerTokens",
|
|
41
|
+
"autoCompactionReserveTokens", "autoCompactionKeepRecentTokens",
|
|
42
|
+
], label);
|
|
20
43
|
const provider = enumeration(input["provider"], PROVIDER_OPTIONS, `${label}.provider`);
|
|
21
44
|
const model = modelIdentifier(input["model"], `${label}.model`, true);
|
|
22
45
|
const baseUrl = optionalString(input["baseUrl"], `${label}.baseUrl`, 2_048);
|
|
@@ -38,18 +61,19 @@ export function decodeLlmSettingsUpdate(value, label = "LLM settings") {
|
|
|
38
61
|
throw new Error(`${label}.baseUrl is required for a custom model`);
|
|
39
62
|
if (customModel && api === "provider-default")
|
|
40
63
|
throw new Error(`${label}.api must be selected for a custom model`);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
if (apiKeyValue !== undefined) {
|
|
44
|
-
apiKey = optionalString(apiKeyValue, `${label}.apiKey`, 16_384);
|
|
45
|
-
if (!apiKey)
|
|
46
|
-
apiKey = undefined;
|
|
47
|
-
if (apiKey && /[\r\n\u0000]/.test(apiKey))
|
|
48
|
-
throw new Error(`${label}.apiKey cannot contain line breaks`);
|
|
49
|
-
}
|
|
64
|
+
const apiKey = optionalSecret(input["apiKey"], `${label}.apiKey`);
|
|
65
|
+
const cookie = optionalSecret(input["cookie"], `${label}.cookie`);
|
|
50
66
|
const clearApiKey = booleanValue(input["clearApiKey"], `${label}.clearApiKey`);
|
|
67
|
+
const clearCookie = booleanValue(input["clearCookie"], `${label}.clearCookie`);
|
|
51
68
|
if (apiKey && clearApiKey)
|
|
52
69
|
throw new Error(`${label} cannot set and clear the API key together`);
|
|
70
|
+
if (cookie && clearCookie)
|
|
71
|
+
throw new Error(`${label} cannot set and clear the cookie together`);
|
|
72
|
+
const customHeaders = optionalCustomHeaders(input["customHeaders"], `${label}.customHeaders`);
|
|
73
|
+
const autoCompactionEnabled = optionalBooleanValue(input["autoCompactionEnabled"], `${label}.autoCompactionEnabled`);
|
|
74
|
+
const autoCompactionTriggerTokens = optionalBoundedPositiveInteger(input["autoCompactionTriggerTokens"], `${label}.autoCompactionTriggerTokens`, MAX_COMPACTION_TOKENS);
|
|
75
|
+
const autoCompactionReserveTokens = optionalBoundedPositiveInteger(input["autoCompactionReserveTokens"], `${label}.autoCompactionReserveTokens`, MAX_COMPACTION_TOKENS);
|
|
76
|
+
const autoCompactionKeepRecentTokens = optionalBoundedPositiveInteger(input["autoCompactionKeepRecentTokens"], `${label}.autoCompactionKeepRecentTokens`, MAX_COMPACTION_TOKENS);
|
|
53
77
|
return {
|
|
54
78
|
provider,
|
|
55
79
|
model,
|
|
@@ -57,10 +81,66 @@ export function decodeLlmSettingsUpdate(value, label = "LLM settings") {
|
|
|
57
81
|
api,
|
|
58
82
|
thinking: enumeration(input["thinking"], THINKING_LEVELS, `${label}.thinking`),
|
|
59
83
|
customModel,
|
|
84
|
+
permissionMode: enumeration(input["permissionMode"], PERMISSION_MODES, `${label}.permissionMode`),
|
|
85
|
+
...(autoCompactionEnabled === undefined ? {} : { autoCompactionEnabled }),
|
|
86
|
+
...(autoCompactionTriggerTokens === undefined ? {} : { autoCompactionTriggerTokens }),
|
|
87
|
+
...(autoCompactionReserveTokens === undefined ? {} : { autoCompactionReserveTokens }),
|
|
88
|
+
...(autoCompactionKeepRecentTokens === undefined ? {} : { autoCompactionKeepRecentTokens }),
|
|
60
89
|
...(apiKey ? { apiKey } : {}),
|
|
90
|
+
...(cookie ? { cookie } : {}),
|
|
91
|
+
...(customHeaders === undefined ? {} : { customHeaders }),
|
|
61
92
|
clearApiKey,
|
|
93
|
+
clearCookie,
|
|
62
94
|
};
|
|
63
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* A header name that is not a token, or a value carrying CR/LF, would let a
|
|
98
|
+
* pasted string add headers of its own to every request. Both are rejected
|
|
99
|
+
* here rather than sanitised, so the setting a client saved is the one sent.
|
|
100
|
+
*/
|
|
101
|
+
export function decodeCustomHeaders(value, label) {
|
|
102
|
+
if (!Array.isArray(value))
|
|
103
|
+
throw new Error(`${label} must be an array`);
|
|
104
|
+
if (value.length > MAX_CUSTOM_HEADERS)
|
|
105
|
+
throw new Error(`${label} allows at most ${MAX_CUSTOM_HEADERS} headers`);
|
|
106
|
+
const headers = [];
|
|
107
|
+
const seen = new Set();
|
|
108
|
+
for (const [index, entry] of value.entries()) {
|
|
109
|
+
const path = `${label}[${index}]`;
|
|
110
|
+
const header = object(entry, path);
|
|
111
|
+
exactShape(header, ["name"], ["value"], path);
|
|
112
|
+
const name = header["name"];
|
|
113
|
+
if (typeof name !== "string" || !HEADER_NAME.test(name)) {
|
|
114
|
+
throw new Error(`${path}.name must be a header token of at most 63 characters`);
|
|
115
|
+
}
|
|
116
|
+
const lowered = name.toLowerCase();
|
|
117
|
+
if (RESERVED_HEADER_NAMES.includes(lowered))
|
|
118
|
+
throw new Error(`${path}.name is configured by its own setting`);
|
|
119
|
+
if (seen.has(lowered))
|
|
120
|
+
throw new Error(`${path}.name is listed twice`);
|
|
121
|
+
seen.add(lowered);
|
|
122
|
+
const raw = header["value"];
|
|
123
|
+
if (raw === undefined) {
|
|
124
|
+
headers.push({ name });
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (typeof raw !== "string")
|
|
128
|
+
throw new Error(`${path}.value must be a string`);
|
|
129
|
+
if (raw.length > MAX_HEADER_VALUE_CHARS)
|
|
130
|
+
throw new Error(`${path}.value is longer than ${MAX_HEADER_VALUE_CHARS} characters`);
|
|
131
|
+
if (/[\u0000-\u001f\u007f]/.test(raw))
|
|
132
|
+
throw new Error(`${path}.value cannot contain control characters`);
|
|
133
|
+
if (raw.trim() === "")
|
|
134
|
+
throw new Error(`${path}.value cannot be blank`);
|
|
135
|
+
headers.push({ name, value: raw });
|
|
136
|
+
}
|
|
137
|
+
return headers;
|
|
138
|
+
}
|
|
139
|
+
function optionalCustomHeaders(value, label) {
|
|
140
|
+
if (value === undefined)
|
|
141
|
+
return undefined;
|
|
142
|
+
return decodeCustomHeaders(value, label);
|
|
143
|
+
}
|
|
64
144
|
function object(value, path) {
|
|
65
145
|
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
66
146
|
throw new Error(`${path} must be an object`);
|
|
@@ -81,11 +161,33 @@ function optionalString(value, path, maximum) {
|
|
|
81
161
|
}
|
|
82
162
|
return value.trim();
|
|
83
163
|
}
|
|
164
|
+
function optionalSecret(value, path) {
|
|
165
|
+
if (value === undefined)
|
|
166
|
+
return undefined;
|
|
167
|
+
const secret = optionalString(value, path, 16_384);
|
|
168
|
+
if (!secret)
|
|
169
|
+
return undefined;
|
|
170
|
+
if (/[\r\n\u0000]/.test(secret))
|
|
171
|
+
throw new Error(`${path} cannot contain line breaks`);
|
|
172
|
+
return secret;
|
|
173
|
+
}
|
|
84
174
|
function booleanValue(value, path) {
|
|
85
175
|
if (typeof value !== "boolean")
|
|
86
176
|
throw new Error(`${path} must be boolean`);
|
|
87
177
|
return value;
|
|
88
178
|
}
|
|
179
|
+
function optionalBooleanValue(value, path) {
|
|
180
|
+
return value === undefined ? undefined : booleanValue(value, path);
|
|
181
|
+
}
|
|
182
|
+
function boundedPositiveInteger(value, path, maximum) {
|
|
183
|
+
if (!Number.isSafeInteger(value) || Number(value) <= 0 || Number(value) > maximum) {
|
|
184
|
+
throw new Error(`${path} must be a positive integer no greater than ${maximum}`);
|
|
185
|
+
}
|
|
186
|
+
return Number(value);
|
|
187
|
+
}
|
|
188
|
+
function optionalBoundedPositiveInteger(value, path, maximum) {
|
|
189
|
+
return value === undefined ? undefined : boundedPositiveInteger(value, path, maximum);
|
|
190
|
+
}
|
|
89
191
|
function modelIdentifier(value, path, allowSlash) {
|
|
90
192
|
const identifier = optionalString(value, path, 128);
|
|
91
193
|
const expression = allowSlash ? /^[A-Za-z0-9][A-Za-z0-9._:/-]*$/ : /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-settings.js","sourceRoot":"","sources":["../../src/settings/llm-settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm-settings.js","sourceRoot":"","sources":["../../src/settings/llm-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model endpoint shape shared by `config.json`, the settings service and every
|
|
3
|
+
* client. It lives in its own module so `src/config/config.ts` can validate the
|
|
4
|
+
* persisted value without importing the settings surface that depends on it.
|
|
5
|
+
*/
|
|
6
|
+
export type ModelApi = "provider-default" | "openai-completions" | "openai-responses" | "anthropic-messages" | "google-generative-ai";
|
|
7
|
+
export declare const MODEL_APIS: readonly ModelApi[];
|
|
8
|
+
/** Endpoint overrides only make sense for the OpenAI-compatible custom provider. */
|
|
9
|
+
export declare const CUSTOM_MODEL_APIS: readonly ModelApi[];
|
|
10
|
+
//# sourceMappingURL=model-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-api.d.ts","sourceRoot":"","sources":["../../src/settings/model-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,GAClB,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAMzC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,EAAE,SAAS,QAAQ,EAA+C,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const MODEL_APIS = [
|
|
2
|
+
"provider-default",
|
|
3
|
+
"openai-completions",
|
|
4
|
+
"openai-responses",
|
|
5
|
+
"anthropic-messages",
|
|
6
|
+
"google-generative-ai",
|
|
7
|
+
];
|
|
8
|
+
/** Endpoint overrides only make sense for the OpenAI-compatible custom provider. */
|
|
9
|
+
export const CUSTOM_MODEL_APIS = ["openai-completions", "openai-responses"];
|
|
10
|
+
//# sourceMappingURL=model-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-api.js","sourceRoot":"","sources":["../../src/settings/model-api.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAwB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC"}
|