kiokuko-dsh 0.2.1 → 0.2.3
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/PERMISSIONS.md +21 -28
- package/README.ja.md +8 -6
- package/README.md +12 -6
- package/THIRD_PARTY_NOTICES.md +8 -0
- package/dist/client.cjs +2248 -1383
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/context/continuity-view.d.ts +1 -1
- package/dist/deep-thinker/configuration.d.ts.map +1 -1
- package/dist/deep-thinker/configuration.js +8 -5
- package/dist/deep-thinker/configuration.js.map +1 -1
- package/dist/deep-thinker/core/contracts.d.ts +107 -13
- package/dist/deep-thinker/core/contracts.d.ts.map +1 -1
- package/dist/deep-thinker/core/contracts.js +4 -2
- package/dist/deep-thinker/core/contracts.js.map +1 -1
- package/dist/deep-thinker/memory-finalizer.d.ts +10 -10
- package/dist/deep-thinker/memory-finalizer.js +2 -2
- package/dist/deep-thinker/memory-finalizer.js.map +1 -1
- package/dist/deep-thinker/report.d.ts +1 -1
- package/dist/deep-thinker/store.d.ts +10 -10
- package/dist/deep-thinker/store.d.ts.map +1 -1
- package/dist/deep-thinker/store.js +2 -2
- package/dist/deep-thinker/store.js.map +1 -1
- package/dist/dsh/coding-workflow/contracts.d.ts +120 -0
- package/dist/dsh/coding-workflow/contracts.d.ts.map +1 -0
- package/dist/dsh/coding-workflow/contracts.js +77 -0
- package/dist/dsh/coding-workflow/contracts.js.map +1 -0
- package/dist/dsh/coding-workflow/host.d.ts +41 -0
- package/dist/dsh/coding-workflow/host.d.ts.map +1 -0
- package/dist/dsh/coding-workflow/host.js +235 -0
- package/dist/dsh/coding-workflow/host.js.map +1 -0
- package/dist/dsh/coding-workflow/intent.d.ts +15 -0
- package/dist/dsh/coding-workflow/intent.d.ts.map +1 -0
- package/dist/dsh/coding-workflow/intent.js +86 -0
- package/dist/dsh/coding-workflow/intent.js.map +1 -0
- package/dist/dsh/coding-workflow/service.d.ts +155 -0
- package/dist/dsh/coding-workflow/service.d.ts.map +1 -0
- package/dist/dsh/coding-workflow/service.js +282 -0
- package/dist/dsh/coding-workflow/service.js.map +1 -0
- package/dist/dsh/coding-workflow/store.d.ts +17 -0
- package/dist/dsh/coding-workflow/store.d.ts.map +1 -0
- package/dist/dsh/coding-workflow/store.js +77 -0
- package/dist/dsh/coding-workflow/store.js.map +1 -0
- package/dist/dsh/completion-verifiers.d.ts +39 -0
- package/dist/dsh/completion-verifiers.d.ts.map +1 -0
- package/dist/dsh/completion-verifiers.js +9 -0
- package/dist/dsh/completion-verifiers.js.map +1 -0
- package/dist/dsh/config.d.ts +5 -1
- package/dist/dsh/config.d.ts.map +1 -1
- package/dist/dsh/core/host.d.ts +1 -1
- package/dist/dsh/core/host.d.ts.map +1 -1
- package/dist/dsh/core/host.js +97 -11
- package/dist/dsh/core/host.js.map +1 -1
- package/dist/dsh/core/index.d.ts +4 -4
- package/dist/dsh/core/index.js +2 -2
- package/dist/dsh/core/index.js.map +1 -1
- package/dist/dsh/core/tasks.d.ts +2 -0
- package/dist/dsh/core/tasks.d.ts.map +1 -1
- package/dist/dsh/core/tasks.js +43 -1
- package/dist/dsh/core/tasks.js.map +1 -1
- package/dist/dsh/core-runtime.d.ts +1 -0
- package/dist/dsh/core-runtime.d.ts.map +1 -1
- package/dist/dsh/core-runtime.js +4 -1
- package/dist/dsh/core-runtime.js.map +1 -1
- package/dist/dsh/decisions/config.d.ts +2 -2
- package/dist/dsh/enno-delegation.js +2 -2
- package/dist/dsh/enno-delegation.js.map +1 -1
- package/dist/dsh/execution-command.d.ts +4 -0
- package/dist/dsh/execution-command.d.ts.map +1 -0
- package/dist/dsh/execution-command.js +52 -0
- package/dist/dsh/execution-command.js.map +1 -0
- package/dist/dsh/execution-journal.d.ts +17 -0
- package/dist/dsh/execution-journal.d.ts.map +1 -0
- package/dist/dsh/execution-journal.js +69 -0
- package/dist/dsh/execution-journal.js.map +1 -0
- package/dist/dsh/execution-result.d.ts +20 -0
- package/dist/dsh/execution-result.d.ts.map +1 -0
- package/dist/dsh/execution-result.js +7 -0
- package/dist/dsh/execution-result.js.map +1 -0
- package/dist/dsh/execution-selection.d.ts +150 -23
- package/dist/dsh/execution-selection.d.ts.map +1 -1
- package/dist/dsh/execution-selection.js +18 -6
- package/dist/dsh/execution-selection.js.map +1 -1
- package/dist/dsh/host-adapter/admission.d.ts.map +1 -1
- package/dist/dsh/host-adapter/admission.js +33 -22
- package/dist/dsh/host-adapter/admission.js.map +1 -1
- package/dist/dsh/host-adapter/boundaries.d.ts.map +1 -1
- package/dist/dsh/host-adapter/boundaries.js +2 -0
- package/dist/dsh/host-adapter/boundaries.js.map +1 -1
- package/dist/dsh/host-adapter/context.d.ts.map +1 -1
- package/dist/dsh/host-adapter/context.js +18 -13
- package/dist/dsh/host-adapter/context.js.map +1 -1
- package/dist/dsh/host-adapter/lifecycle.d.ts.map +1 -1
- package/dist/dsh/host-adapter/lifecycle.js +12 -0
- package/dist/dsh/host-adapter/lifecycle.js.map +1 -1
- package/dist/dsh/host-adapter/routing.js +1 -1
- package/dist/dsh/host-adapter/routing.js.map +1 -1
- package/dist/dsh/host-adapter/turn-state.js +1 -1
- package/dist/dsh/host-adapter/turn-state.js.map +1 -1
- package/dist/dsh/host-adapter.d.ts.map +1 -1
- package/dist/dsh/host-adapter.js +61 -18
- package/dist/dsh/host-adapter.js.map +1 -1
- package/dist/dsh/index.d.ts +4 -2
- package/dist/dsh/index.d.ts.map +1 -1
- package/dist/dsh/index.js +7 -0
- package/dist/dsh/index.js.map +1 -1
- package/dist/dsh/intake-gate.d.ts +1 -0
- package/dist/dsh/intake-gate.d.ts.map +1 -1
- package/dist/dsh/intake-gate.js +9 -1
- package/dist/dsh/intake-gate.js.map +1 -1
- package/dist/dsh/lisp/approval.d.ts +2 -1
- package/dist/dsh/lisp/approval.d.ts.map +1 -1
- package/dist/dsh/lisp/approval.js +4 -3
- package/dist/dsh/lisp/approval.js.map +1 -1
- package/dist/dsh/lisp/candidate.d.ts +1 -1
- package/dist/dsh/lisp/code-intelligence-contracts.d.ts +78 -0
- package/dist/dsh/lisp/code-intelligence-contracts.d.ts.map +1 -0
- package/dist/dsh/lisp/code-intelligence-contracts.js +54 -0
- package/dist/dsh/lisp/code-intelligence-contracts.js.map +1 -0
- package/dist/dsh/lisp/code-intelligence-provider.d.ts +116 -0
- package/dist/dsh/lisp/code-intelligence.d.ts +13 -0
- package/dist/dsh/lisp/code-intelligence.d.ts.map +1 -0
- package/dist/dsh/lisp/code-intelligence.js +181 -0
- package/dist/dsh/lisp/code-intelligence.js.map +1 -0
- package/dist/dsh/lisp/coding-choice.d.ts +4 -1
- package/dist/dsh/lisp/coding-choice.d.ts.map +1 -1
- package/dist/dsh/lisp/coding-choice.js +26 -10
- package/dist/dsh/lisp/coding-choice.js.map +1 -1
- package/dist/dsh/lisp/compiled-cache.d.ts.map +1 -1
- package/dist/dsh/lisp/compiled-cache.js +3 -2
- package/dist/dsh/lisp/compiled-cache.js.map +1 -1
- package/dist/dsh/lisp/contracts.d.ts +4 -0
- package/dist/dsh/lisp/contracts.d.ts.map +1 -1
- package/dist/dsh/lisp/contracts.js +1 -0
- package/dist/dsh/lisp/contracts.js.map +1 -1
- package/dist/dsh/lisp/manager.d.ts +9 -1
- package/dist/dsh/lisp/manager.d.ts.map +1 -1
- package/dist/dsh/lisp/manager.js +91 -24
- package/dist/dsh/lisp/manager.js.map +1 -1
- package/dist/dsh/lisp/model-result.d.ts.map +1 -1
- package/dist/dsh/lisp/model-result.js +35 -1
- package/dist/dsh/lisp/model-result.js.map +1 -1
- package/dist/dsh/lisp/proposal-batch.d.ts +2 -0
- package/dist/dsh/lisp/proposal-batch.d.ts.map +1 -1
- package/dist/dsh/lisp/proposal-batch.js +32 -2
- package/dist/dsh/lisp/proposal-batch.js.map +1 -1
- package/dist/dsh/lisp/request-surface.d.ts +12 -2
- package/dist/dsh/lisp/request-surface.d.ts.map +1 -1
- package/dist/dsh/lisp/request-surface.js +1 -1
- package/dist/dsh/lisp/request-surface.js.map +1 -1
- package/dist/dsh/lisp/sandbox.d.ts +3 -0
- package/dist/dsh/lisp/sandbox.d.ts.map +1 -1
- package/dist/dsh/lisp/sandbox.js +13 -6
- package/dist/dsh/lisp/sandbox.js.map +1 -1
- package/dist/dsh/lisp/surface.d.ts +1 -1
- package/dist/dsh/lisp/surface.d.ts.map +1 -1
- package/dist/dsh/lisp/surface.js +118 -23
- package/dist/dsh/lisp/surface.js.map +1 -1
- package/dist/dsh/lisp/worker.d.ts +2 -0
- package/dist/dsh/lisp/worker.d.ts.map +1 -1
- package/dist/dsh/lisp/worker.js +7 -5
- package/dist/dsh/lisp/worker.js.map +1 -1
- package/dist/dsh/lisp-service-key.d.ts +9 -0
- package/dist/dsh/lisp-service-key.d.ts.map +1 -1
- package/dist/dsh/lisp-service-key.js +11 -0
- package/dist/dsh/lisp-service-key.js.map +1 -1
- package/dist/dsh/memory-application.d.ts +1 -1
- package/dist/dsh/memory-application.d.ts.map +1 -1
- package/dist/dsh/memory-application.js +4 -3
- package/dist/dsh/memory-application.js.map +1 -1
- package/dist/dsh/model-auto/candidates.d.ts.map +1 -1
- package/dist/dsh/model-auto/candidates.js +31 -22
- package/dist/dsh/model-auto/candidates.js.map +1 -1
- package/dist/dsh/model-configuration.d.ts +145 -2
- package/dist/dsh/model-configuration.d.ts.map +1 -1
- package/dist/dsh/model-configuration.js +10 -3
- package/dist/dsh/model-configuration.js.map +1 -1
- package/dist/dsh/model-selection-ui.d.ts.map +1 -1
- package/dist/dsh/model-selection-ui.js +7 -2
- package/dist/dsh/model-selection-ui.js.map +1 -1
- package/dist/dsh/models/config-store.d.ts +8 -0
- package/dist/dsh/models/config-store.d.ts.map +1 -0
- package/dist/dsh/models/config-store.js +49 -0
- package/dist/dsh/models/config-store.js.map +1 -0
- package/dist/dsh/models/contracts.d.ts +107 -0
- package/dist/dsh/models/contracts.d.ts.map +1 -0
- package/dist/dsh/models/contracts.js +104 -0
- package/dist/dsh/models/contracts.js.map +1 -0
- package/dist/dsh/models/metadata.d.ts +7 -0
- package/dist/dsh/models/metadata.d.ts.map +1 -0
- package/dist/dsh/models/metadata.js +13 -0
- package/dist/dsh/models/metadata.js.map +1 -0
- package/dist/dsh/models/profiles.d.ts +10 -0
- package/dist/dsh/models/profiles.d.ts.map +1 -0
- package/dist/dsh/models/profiles.js +176 -0
- package/dist/dsh/models/profiles.js.map +1 -0
- package/dist/dsh/models/service.d.ts +97 -0
- package/dist/dsh/models/service.d.ts.map +1 -0
- package/dist/dsh/models/service.js +518 -0
- package/dist/dsh/models/service.js.map +1 -0
- package/dist/dsh/models/surface.d.ts +8 -0
- package/dist/dsh/models/surface.d.ts.map +1 -0
- package/dist/dsh/models/surface.js +162 -0
- package/dist/dsh/models/surface.js.map +1 -0
- package/dist/dsh/models/vendor/THIRD_PARTY_NOTICES.txt +134 -0
- package/dist/dsh/models/vendor/abortable.d.ts +3 -0
- package/dist/dsh/models/vendor/abortable.d.ts.map +1 -0
- package/dist/dsh/models/vendor/abortable.js +10 -0
- package/dist/dsh/models/vendor/abortable.js.map +1 -0
- package/dist/dsh/models/vendor/auth-contract.d.ts +67 -0
- package/dist/dsh/models/vendor/auth-contract.d.ts.map +1 -0
- package/dist/dsh/models/vendor/auth-contract.js +2 -0
- package/dist/dsh/models/vendor/auth-contract.js.map +1 -0
- package/dist/dsh/models/vendor/credentials.d.ts +58 -0
- package/dist/dsh/models/vendor/credentials.d.ts.map +1 -0
- package/dist/dsh/models/vendor/credentials.js +205 -0
- package/dist/dsh/models/vendor/credentials.js.map +1 -0
- package/dist/dsh/models/vendor/nous-oauth.d.ts +6 -0
- package/dist/dsh/models/vendor/nous-oauth.d.ts.map +1 -0
- package/dist/dsh/models/vendor/nous-oauth.js +113 -0
- package/dist/dsh/models/vendor/nous-oauth.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-adapter.d.ts +38 -0
- package/dist/dsh/models/vendor/opencode-adapter.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-adapter.js +207 -0
- package/dist/dsh/models/vendor/opencode-adapter.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-catalog.d.ts +73 -0
- package/dist/dsh/models/vendor/opencode-catalog.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-catalog.js +253 -0
- package/dist/dsh/models/vendor/opencode-catalog.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-codec.d.ts +7 -0
- package/dist/dsh/models/vendor/opencode-codec.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-codec.js +107 -0
- package/dist/dsh/models/vendor/opencode-codec.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-owned.generated.d.ts +114 -0
- package/dist/dsh/models/vendor/opencode-owned.generated.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-owned.generated.js +2867 -0
- package/dist/dsh/models/vendor/opencode-owned.generated.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-replay.d.ts +17 -0
- package/dist/dsh/models/vendor/opencode-replay.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-replay.js +147 -0
- package/dist/dsh/models/vendor/opencode-replay.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-sdk.d.ts +6 -0
- package/dist/dsh/models/vendor/opencode-sdk.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-sdk.js +49915 -0
- package/dist/dsh/models/vendor/opencode-sdk.js.map +7 -0
- package/dist/dsh/models/vendor/opencode-transport.d.ts +6 -0
- package/dist/dsh/models/vendor/opencode-transport.d.ts.map +1 -0
- package/dist/dsh/models/vendor/opencode-transport.js +70 -0
- package/dist/dsh/models/vendor/opencode-transport.js.map +1 -0
- package/dist/dsh/models/vendor/pi-ai.d.ts +23 -0
- package/dist/dsh/models/vendor/pi-ai.d.ts.map +1 -0
- package/dist/dsh/models/vendor/pi-ai.js +27 -0
- package/dist/dsh/models/vendor/pi-ai.js.map +1 -0
- package/dist/dsh/modules/lisp.d.ts +1 -1
- package/dist/dsh/modules/lisp.d.ts.map +1 -1
- package/dist/dsh/modules/lisp.js +2 -13
- package/dist/dsh/modules/lisp.js.map +1 -1
- package/dist/dsh/modules/resources.d.ts +3 -1
- package/dist/dsh/modules/resources.d.ts.map +1 -1
- package/dist/dsh/modules/resources.js +4 -0
- package/dist/dsh/modules/resources.js.map +1 -1
- package/dist/dsh/native-model-catalog.d.ts.map +1 -1
- package/dist/dsh/native-model-catalog.js +4 -3
- package/dist/dsh/native-model-catalog.js.map +1 -1
- package/dist/dsh/node-tap-summary.d.ts +8 -1
- package/dist/dsh/node-tap-summary.d.ts.map +1 -1
- package/dist/dsh/node-tap-summary.js +33 -3
- package/dist/dsh/node-tap-summary.js.map +1 -1
- package/dist/dsh/on-demand-intake.d.ts +1 -1
- package/dist/dsh/on-demand-intake.d.ts.map +1 -1
- package/dist/dsh/on-demand-intake.js +35 -14
- package/dist/dsh/on-demand-intake.js.map +1 -1
- package/dist/dsh/owned-evidence.d.ts +49 -0
- package/dist/dsh/owned-evidence.d.ts.map +1 -0
- package/dist/dsh/owned-evidence.js +69 -0
- package/dist/dsh/owned-evidence.js.map +1 -0
- package/dist/dsh/owned-execution.d.ts +99 -0
- package/dist/dsh/owned-execution.d.ts.map +1 -0
- package/dist/dsh/owned-execution.js +558 -0
- package/dist/dsh/owned-execution.js.map +1 -0
- package/dist/dsh/plan-transition.d.ts +5 -0
- package/dist/dsh/plan-transition.d.ts.map +1 -0
- package/dist/dsh/plan-transition.js +34 -0
- package/dist/dsh/plan-transition.js.map +1 -0
- package/dist/dsh/session-memory-finalizer.d.ts.map +1 -1
- package/dist/dsh/session-memory-finalizer.js +46 -3
- package/dist/dsh/session-memory-finalizer.js.map +1 -1
- package/dist/dsh/setup.d.ts +1 -1
- package/dist/dsh/setup.d.ts.map +1 -1
- package/dist/dsh/setup.js +2 -0
- package/dist/dsh/setup.js.map +1 -1
- package/dist/dsh/skill-prompts.json +1 -1
- package/dist/dsh/task-completion-host.js +3 -3
- package/dist/dsh/task-completion-host.js.map +1 -1
- package/dist/dsh/task-completion.d.ts +17 -0
- package/dist/dsh/task-completion.d.ts.map +1 -1
- package/dist/dsh/task-completion.js +144 -38
- package/dist/dsh/task-completion.js.map +1 -1
- package/dist/dsh/task-intake.d.ts.map +1 -1
- package/dist/dsh/task-intake.js +7 -0
- package/dist/dsh/task-intake.js.map +1 -1
- package/dist/enno-oduno/coding-workflow.d.ts +39 -0
- package/dist/enno-oduno/coding-workflow.d.ts.map +1 -0
- package/dist/enno-oduno/coding-workflow.js +33 -0
- package/dist/enno-oduno/coding-workflow.js.map +1 -0
- package/dist/enno-oduno/schemas.d.ts +10 -10
- package/dist/enno-oduno/store.d.ts.map +1 -1
- package/dist/enno-oduno/store.js +56 -1
- package/dist/enno-oduno/store.js.map +1 -1
- package/dist/enno-oduno/types.d.ts +1 -0
- package/dist/enno-oduno/types.d.ts.map +1 -1
- package/dist/enno-oduno/verifier.d.ts.map +1 -1
- package/dist/enno-oduno/verifier.js +4 -1
- package/dist/enno-oduno/verifier.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/ja.json +1 -1
- package/dist/locale/ko.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/memory/application.d.ts +2 -1
- package/dist/memory/application.d.ts.map +1 -1
- package/dist/memory/application.js +26 -12
- package/dist/memory/application.js.map +1 -1
- package/dist/memory/evidence.d.ts +2 -0
- package/dist/memory/evidence.d.ts.map +1 -1
- package/dist/memory/evidence.js +3 -1
- package/dist/memory/evidence.js.map +1 -1
- package/dist/model-tools/contracts.d.ts +4 -4
- package/dist/models-client.cjs +635 -0
- package/dist/models-client.d.ts +26 -0
- package/dist/models-client.d.ts.map +1 -0
- package/dist/models-client.js +642 -0
- package/dist/models-client.js.map +1 -0
- package/docs/code-intelligence.md +149 -0
- package/docs/coding-workflow.md +45 -0
- package/docs/dsh-auth-LICENSE.txt +22 -0
- package/docs/dsh-auth-provenance.md +25 -0
- package/docs/dsh-plugin.md +19 -0
- package/docs/execution-support.md +4 -0
- package/docs/kiokuko-models.md +66 -0
- package/docs/lisp-hot-tools.md +2 -2
- package/docs/lisp.md +112 -63
- package/docs/model-selection.ja.md +7 -9
- package/docs/model-selection.md +14 -12
- package/docs/owned-execution.md +99 -0
- package/lisp/supervisor.mjs +8 -2
- package/lisp/tools.lisp +31 -3
- package/migrations/035_owned_execution.sql +19 -0
- package/migrations/036_coding_workflow.sql +26 -0
- package/package.json +47 -12
- package/skills/coding-ideal-routine-skill/SKILL.md +6 -0
- package/skills/kiokuko-lisp/SKILL.md +53 -67
- package/skills/kiokuko-soul/SKILL.md +7 -28
- package/skills/one-shot-software-completion/SKILL.md +5 -6
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Protocol SDKs serialize the wire; the owned descriptor controls model settings. */
|
|
2
|
+
import type { GenerateOptions } from '@deepseek-ai/dsh-llm';
|
|
3
|
+
import type { LanguageModelV4, LanguageModelV4Prompt } from '@ai-sdk/provider';
|
|
4
|
+
import { type OpenCodeModel } from './opencode-catalog.js';
|
|
5
|
+
export declare function createTransport(descriptor: OpenCodeModel, options: GenerateOptions, apiKey: string, headers: Record<string, string>, prompt: LanguageModelV4Prompt, fetcher?: typeof fetch): LanguageModelV4;
|
|
6
|
+
//# sourceMappingURL=opencode-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-transport.d.ts","sourceRoot":"","sources":["../../../../src/dsh/models/vendor/opencode-transport.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAAkB,KAAK,aAAa,EAAsB,MAAM,uBAAuB,CAAA;AAC9F,wBAAgB,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,eAAe,CAsDnN"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { createAnthropic, createOpenAI, createGoogleGenerativeAI, createOpenAICompatible } from './opencode-sdk.js';
|
|
2
|
+
import { OPEN_CODE_URLS } from './opencode-catalog.js';
|
|
3
|
+
export function createTransport(descriptor, options, apiKey, headers, prompt, fetcher = fetch) {
|
|
4
|
+
const baseURL = OPEN_CODE_URLS[options.provider];
|
|
5
|
+
if (!baseURL)
|
|
6
|
+
throw new Error('Unknown OpenCode route');
|
|
7
|
+
const fixedFetch = async (input, init) => {
|
|
8
|
+
const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
|
|
9
|
+
if (!new URL(url).href.startsWith(`${baseURL}/`))
|
|
10
|
+
throw new Error('OpenCode SDK attempted to leave its fixed route');
|
|
11
|
+
// SDK serializers keep their protocol codecs; all model settings come
|
|
12
|
+
// from our descriptor, overriding any SDK id-based limits or enums.
|
|
13
|
+
if (typeof init?.body === 'string') {
|
|
14
|
+
const body = JSON.parse(init.body);
|
|
15
|
+
const effort = descriptor.reasoning ? options.reasoningEffort : undefined;
|
|
16
|
+
const maxTokens = options.maxTokens ?? descriptor.maxTokens;
|
|
17
|
+
const sampling = descriptor.protocol === 'google' ? (body.generationConfig ??= {}) : body;
|
|
18
|
+
if (descriptor.temperature && options.temperature !== undefined)
|
|
19
|
+
sampling.temperature = options.temperature;
|
|
20
|
+
else
|
|
21
|
+
delete sampling.temperature;
|
|
22
|
+
switch (descriptor.protocol) {
|
|
23
|
+
case 'messages':
|
|
24
|
+
body.max_tokens = maxTokens;
|
|
25
|
+
// Effort works independently of thinking. Do not invent an
|
|
26
|
+
// adaptive mode or budget for models advertising only effort.
|
|
27
|
+
// https://platform.claude.com/docs/en/build-with-claude/effort
|
|
28
|
+
if (effort)
|
|
29
|
+
body.output_config = { ...body.output_config, effort };
|
|
30
|
+
break;
|
|
31
|
+
case 'responses': {
|
|
32
|
+
body.store = false;
|
|
33
|
+
const ids = new Map(prompt.flatMap(message => message.role === 'assistant' ? message.content.flatMap(part => part.type === 'tool-call' && typeof part.providerOptions?.openai?.itemId === 'string' ? [[part.toolCallId, part.providerOptions.openai.itemId]] : []) : []));
|
|
34
|
+
for (const item of body.input ?? [])
|
|
35
|
+
if (item.type === 'function_call' && ids.has(item.call_id))
|
|
36
|
+
item.id = ids.get(item.call_id);
|
|
37
|
+
body.max_output_tokens = maxTokens;
|
|
38
|
+
if (descriptor.reasoning) {
|
|
39
|
+
body.include = [...new Set([...(body.include ?? []), 'reasoning.encrypted_content'])];
|
|
40
|
+
if (effort)
|
|
41
|
+
body.reasoning = { effort };
|
|
42
|
+
}
|
|
43
|
+
else
|
|
44
|
+
delete body.reasoning;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'chat':
|
|
48
|
+
body.max_tokens = maxTokens;
|
|
49
|
+
if (effort)
|
|
50
|
+
body.reasoning_effort = effort;
|
|
51
|
+
break;
|
|
52
|
+
case 'google':
|
|
53
|
+
sampling.maxOutputTokens = maxTokens;
|
|
54
|
+
if (effort)
|
|
55
|
+
sampling.thinkingConfig = { ...sampling.thinkingConfig, thinkingLevel: effort, includeThoughts: true };
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
init = { ...init, body: JSON.stringify(body) };
|
|
59
|
+
}
|
|
60
|
+
return fetcher(input, { ...init, redirect: 'error' });
|
|
61
|
+
};
|
|
62
|
+
const settings = { baseURL, apiKey, headers, fetch: fixedFetch };
|
|
63
|
+
switch (descriptor.protocol) {
|
|
64
|
+
case 'messages': return createAnthropic(settings)(descriptor.id);
|
|
65
|
+
case 'responses': return createOpenAI(settings).responses(descriptor.id);
|
|
66
|
+
case 'google': return createGoogleGenerativeAI(settings)(descriptor.id);
|
|
67
|
+
case 'chat': return createOpenAICompatible({ ...settings, name: 'opencode' })(descriptor.id);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=opencode-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-transport.js","sourceRoot":"","sources":["../../../../src/dsh/models/vendor/opencode-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pi-ai instance owned by the installed dsh-llm-pi-ai adapter.
|
|
3
|
+
*
|
|
4
|
+
* Loading a second catalog from dsh-auth and handing its Provider objects to
|
|
5
|
+
* the adapter crosses package instances and is neither type- nor runtime-safe.
|
|
6
|
+
* Resolve the adapter's own dependency instead, and derive every public type
|
|
7
|
+
* from the adapter contract so this package owns no pi-ai version.
|
|
8
|
+
*/
|
|
9
|
+
import type { PiAiAdapterOptions, ResolvedPiAiProviderProfile } from '@deepseek-ai/dsh-llm-pi-ai';
|
|
10
|
+
export type PiAiProvider = NonNullable<ResolvedPiAiProviderProfile['piProvider']>;
|
|
11
|
+
type PiAiAuth = PiAiAdapterOptions['auth'];
|
|
12
|
+
export type PiAiAuthContext = PiAiAuth['authContext'];
|
|
13
|
+
export type PiAiCredentialStore = PiAiAuth['credentials'];
|
|
14
|
+
export type PiAiCredential = NonNullable<Awaited<ReturnType<PiAiCredentialStore['read']>>>;
|
|
15
|
+
export type PiAiCredentialInfo = Awaited<ReturnType<PiAiCredentialStore['list']>>[number];
|
|
16
|
+
type PiAiOAuth = NonNullable<PiAiProvider['auth']['oauth']>;
|
|
17
|
+
export type PiAiAuthInteraction = Parameters<PiAiOAuth['login']>[0];
|
|
18
|
+
export type PiAiAuthPrompt = Parameters<PiAiAuthInteraction['prompt']>[0];
|
|
19
|
+
export type PiAiAuthEvent = Parameters<PiAiAuthInteraction['notify']>[0];
|
|
20
|
+
/** Fresh Provider objects from the exact pi-ai module used by dsh-llm-pi-ai. */
|
|
21
|
+
export declare const adapterBuiltinProviders: () => readonly PiAiProvider[];
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=pi-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-ai.d.ts","sourceRoot":"","sources":["../../../../src/dsh/models/vendor/pi-ai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAGjG,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC,CAAA;AAEjF,KAAK,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;AACrD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1F,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzF,KAAK,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3D,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAmBxE,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,QAjBd,SAAS,YAAY,EAiBoB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pi-ai instance owned by the installed dsh-llm-pi-ai adapter.
|
|
3
|
+
*
|
|
4
|
+
* Loading a second catalog from dsh-auth and handing its Provider objects to
|
|
5
|
+
* the adapter crosses package instances and is neither type- nor runtime-safe.
|
|
6
|
+
* Resolve the adapter's own dependency instead, and derive every public type
|
|
7
|
+
* from the adapter contract so this package owns no pi-ai version.
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { createRequire } from 'node:module';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { pathToFileURL } from 'node:url';
|
|
13
|
+
/** Locate the first pi-ai catalog Node would resolve from dsh-llm-pi-ai. */
|
|
14
|
+
function adapterCatalogUrl() {
|
|
15
|
+
const adapterManifest = import.meta.resolve('@deepseek-ai/dsh-llm-pi-ai/package.json');
|
|
16
|
+
const require = createRequire(adapterManifest);
|
|
17
|
+
for (const root of require.resolve.paths('@earendil-works/pi-ai') ?? []) {
|
|
18
|
+
const catalog = join(root, '@earendil-works', 'pi-ai', 'dist', 'providers', 'all.js');
|
|
19
|
+
if (existsSync(catalog))
|
|
20
|
+
return pathToFileURL(catalog).href;
|
|
21
|
+
}
|
|
22
|
+
throw new Error('dsh-auth: dsh-llm-pi-ai has no resolvable pi-ai provider catalog');
|
|
23
|
+
}
|
|
24
|
+
const catalog = await import(adapterCatalogUrl());
|
|
25
|
+
/** Fresh Provider objects from the exact pi-ai module used by dsh-llm-pi-ai. */
|
|
26
|
+
export const adapterBuiltinProviders = catalog.builtinProviders;
|
|
27
|
+
//# sourceMappingURL=pi-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-ai.js","sourceRoot":"","sources":["../../../../src/dsh/models/vendor/pi-ai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAqBxC,4EAA4E;AAC5E,SAAS,iBAAiB;IACxB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAA;IACtF,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACrF,IAAI,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,CAA0B,CAAA;AAE1E,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DshModule } from '../core/modules.js';
|
|
2
2
|
import type { CoreModuleHost } from '../core/host.js';
|
|
3
|
-
/**
|
|
3
|
+
/** Lisp uses the shared development executor; explicit protected mode retains its root fence. */
|
|
4
4
|
export declare const lispModule: DshModule<CoreModuleHost>;
|
|
5
5
|
//# sourceMappingURL=lisp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisp.d.ts","sourceRoot":"","sources":["../../../src/dsh/modules/lisp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lisp.d.ts","sourceRoot":"","sources":["../../../src/dsh/modules/lisp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGrD,iGAAiG;AACjG,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,cAAc,CAShD,CAAA"}
|
package/dist/dsh/modules/lisp.js
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import { LispConfig } from '../lisp/contracts.js';
|
|
2
2
|
import { mountLispSurface } from '../lisp/surface.js';
|
|
3
|
-
import { LISP_CODING_SERVICE } from '../lisp/coding-choice.js';
|
|
4
|
-
import { resolveGroundedIntakeProfile } from '../intake-profile-resolver.js';
|
|
5
3
|
import { bundledResources } from './resources.js';
|
|
6
|
-
/**
|
|
4
|
+
/** Lisp uses the shared development executor; explicit protected mode retains its root fence. */
|
|
7
5
|
export const lispModule = {
|
|
8
6
|
id: 'lisp', coreVersion: 1, requires: ['tools', 'sessions', 'agents', 'commands'], conflicts: ['enno'],
|
|
9
7
|
resources: bundledResources(['kiokuko-lisp']),
|
|
10
8
|
configure: value => LispConfig.parse(value ?? {}),
|
|
11
9
|
async mount({ host, defer }, configuration) {
|
|
12
10
|
const surface = await mountLispSurface(host.context, host.runtime, LispConfig.parse(configuration), host.prompts, host.decisions, host.semanticCompaction);
|
|
13
|
-
const unregister = host.beforeTask(async (input) => {
|
|
14
|
-
const coding = host.context.get(LISP_CODING_SERVICE, false);
|
|
15
|
-
if (!coding || !input.agent)
|
|
16
|
-
return;
|
|
17
|
-
const profile = resolveGroundedIntakeProfile({ task: input.task, cwd: input.cwd, deferTaskTypeInference: input.deferTaskTypeInference === true, ...(input.profileHints ? { profileHints: input.profileHints } : {}) });
|
|
18
|
-
const selected = await coding.prepare({ agent: input.agent, task: input.task, taskType: profile.profileHints.taskType, turn: input.turn, signal: input.signal });
|
|
19
|
-
return { taskType: selected.taskType, ...(selected.clarification ? { constraints: selected.clarification } : {}) };
|
|
20
|
-
});
|
|
21
|
-
defer(unregister);
|
|
22
11
|
let drained;
|
|
23
|
-
return { stopIngress() {
|
|
12
|
+
return { stopIngress() { surface.stop(); }, drain() { return drained ??= surface.dispose(); }, async dispose() { } };
|
|
24
13
|
},
|
|
25
14
|
};
|
|
26
15
|
//# sourceMappingURL=lisp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisp.js","sourceRoot":"","sources":["../../../src/dsh/modules/lisp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"lisp.js","sourceRoot":"","sources":["../../../src/dsh/modules/lisp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,iGAAiG;AACjG,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC;IACtG,SAAS,EAAE,gBAAgB,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7C,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IACjD,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa;QACxC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC1J,IAAI,OAAkC,CAAA;QACtC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,KAAI,CAAC,EAAE,CAAA;IACnH,CAAC;CACF,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { DshModule, ModuleResource } from '../core/modules.js';
|
|
1
|
+
import type { DshModule, ModuleResource, ModuleRegistration } from '../core/modules.js';
|
|
2
2
|
/** Explicit trusted build inventory. Resource names never originate in user input. */
|
|
3
3
|
export declare function bundledResources(names: readonly string[]): readonly ModuleResource[];
|
|
4
4
|
export declare function skillModule<Host>(id: string, names: readonly string[]): DshModule<Host>;
|
|
5
5
|
export declare const coreSkills: DshModule<unknown>;
|
|
6
6
|
export declare const codingSkills: DshModule<unknown>;
|
|
7
|
+
/** Coding is a core workflow, including compositions without optional modules. */
|
|
8
|
+
export declare function withCoreSkills<Host>(registrations: readonly ModuleRegistration<Host>[]): readonly ModuleRegistration<Host>[];
|
|
7
9
|
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/dsh/modules/resources.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/dsh/modules/resources.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGvF,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,cAAc,EAAE,CAKpF;AACD,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAEvF;AACD,eAAO,MAAM,UAAU,oBAA8F,CAAA;AACrH,eAAO,MAAM,YAAY,oBAAsX,CAAA;AAC/Y,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAE5H"}
|
|
@@ -13,4 +13,8 @@ export function skillModule(id, names) {
|
|
|
13
13
|
}
|
|
14
14
|
export const coreSkills = skillModule('core-skills', ['kiokuko-soul', 'memory-reasoning', 'natural-japanese-output']);
|
|
15
15
|
export const codingSkills = skillModule('coding-skills', ['coding-ideal-routine-skill', 'kiokuko-single-purpose-functions', 'one-shot-software-completion', 'kiokuko-simple-work', 'kiokuko-ui-design-soul', 'veteran-programmer-skill', 'kiokuko-investigate', 'kiokuko-architecture', 'kiokuko-review', 'kiokuko-benchmark', 'kiokuko-verification', 'kiokuko-skill-authoring', 'kiokuko-technical-writing']);
|
|
16
|
+
/** Coding is a core workflow, including compositions without optional modules. */
|
|
17
|
+
export function withCoreSkills(registrations) {
|
|
18
|
+
return [{ module: coreSkills }, ...(registrations.some(entry => entry.module.id === codingSkills.id) ? [] : [{ module: codingSkills }]), ...registrations];
|
|
19
|
+
}
|
|
16
20
|
//# sourceMappingURL=resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/dsh/modules/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA;QACtG,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,mBAAmB,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5O,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,MAAM,UAAU,WAAW,CAAO,EAAU,EAAE,KAAwB;IACpE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,CAAA,CAAC,CAAC,EAAE,CAAA;AACnN,CAAC;AACD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC,CAAA;AACrH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,4BAA4B,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/dsh/modules/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA;QACtG,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,mBAAmB,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5O,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,MAAM,UAAU,WAAW,CAAO,EAAU,EAAE,KAAwB;IACpE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,CAAA,CAAC,CAAC,EAAE,CAAA;AACnN,CAAC;AACD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC,CAAA;AACrH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,4BAA4B,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC,CAAA;AAC/Y,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAO,aAAkD;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,CAAA;AAC5J,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-model-catalog.d.ts","sourceRoot":"","sources":["../../src/dsh/native-model-catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-model-catalog.d.ts","sourceRoot":"","sources":["../../src/dsh/native-model-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,eAAe,EAAc,MAAM,0BAA0B,CAAA;AAE/F,UAAU,sBAAsB;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE;AAC9H,UAAU,aAAc,SAAQ,eAAe;IAAG,yBAAyB,CAAC,IAAI,SAAS,sBAAsB,EAAE,CAAA;CAAE;AACnH,UAAU,cAAc;IAAG,QAAQ,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE;AAClH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;CAAG;AA+B9D,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAqB5H"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { ownedModelRoute } from './models/metadata.js';
|
|
1
2
|
const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
2
3
|
const families = {
|
|
3
4
|
openai: 'openai', 'openai-codex': 'openai', deepseek: 'deepseek', 'deepseek-official': 'deepseek',
|
|
4
5
|
'opencode-go': 'opencode-go', opencode: 'opencode-zen', 'opencode-zen': 'opencode-zen',
|
|
5
|
-
openrouter: 'openrouter',
|
|
6
|
+
openrouter: 'openrouter', ollama: 'ollama',
|
|
6
7
|
};
|
|
7
8
|
/** Read only connection metadata; never copy credentials, headers or whole profiles. */
|
|
8
9
|
function providerRoute(provider, entry, descriptions) {
|
|
@@ -26,7 +27,7 @@ function providerRoute(provider, entry, descriptions) {
|
|
|
26
27
|
const isPath = (path) => endpoint?.pathname === path || endpoint?.pathname.startsWith(`${path}/`);
|
|
27
28
|
const family = host === 'opencode.ai' && isPath('/zen/go') ? 'opencode-go'
|
|
28
29
|
: host === 'opencode.ai' && isPath('/zen') ? 'opencode-zen'
|
|
29
|
-
: host === 'openrouter.ai' ? 'openrouter'
|
|
30
|
+
: host === 'openrouter.ai' ? 'openrouter'
|
|
30
31
|
: host === 'api.deepseek.com' ? 'deepseek' : host === 'api.openai.com' ? 'openai'
|
|
31
32
|
: entry.declared === false ? families[provider] ?? 'other' : 'other';
|
|
32
33
|
const local = family === 'ollama' || host === 'localhost' || host === '127.0.0.1' || host === '[::1]';
|
|
@@ -52,7 +53,7 @@ export function nativeModelCatalog(llm, settings) {
|
|
|
52
53
|
catch { /* Optional metadata must not prevent model discovery. */ }
|
|
53
54
|
}
|
|
54
55
|
return providers.map((provider) => {
|
|
55
|
-
const route = providerRoute(provider.id, directory.find(entry => entry.provider === provider.id), descriptions);
|
|
56
|
+
const route = ownedModelRoute(llm, provider.id) ?? providerRoute(provider.id, directory.find(entry => entry.provider === provider.id), descriptions);
|
|
56
57
|
return { ...provider, ...(route ? { route } : {}) };
|
|
57
58
|
});
|
|
58
59
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-model-catalog.js","sourceRoot":"","sources":["../../src/dsh/native-model-catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-model-catalog.js","sourceRoot":"","sources":["../../src/dsh/native-model-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,15 @@ export interface TapSummary {
|
|
|
5
5
|
cancelled: number;
|
|
6
6
|
skipped: number;
|
|
7
7
|
todo: number;
|
|
8
|
+
filtered?: number;
|
|
9
|
+
measured?: number;
|
|
8
10
|
}
|
|
9
11
|
/** Accept only a complete final Node TAP trailer, never a previewed progress line. */
|
|
10
|
-
export declare function parseNodeTapSummary(output: string): TapSummary | undefined;
|
|
12
|
+
export declare function parseNodeTapSummary(output: string, completeHostOutput?: boolean): TapSummary | undefined;
|
|
13
|
+
/** Cargo emits one terminal summary for each harness, including doc tests. */
|
|
14
|
+
export declare function parseCargoSummary(output: string): TapSummary | undefined;
|
|
15
|
+
export declare function parseTestSummary(output: string, completeHostOutput?: boolean): TapSummary | undefined;
|
|
16
|
+
/** Node counts an assertion-free test file as a passing implicit file test. */
|
|
17
|
+
export declare function hasExplicitTestCases(output: string): boolean;
|
|
11
18
|
export declare function selectedNodeTestCommand(command: string): boolean;
|
|
12
19
|
//# sourceMappingURL=node-tap-summary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tap-summary.d.ts","sourceRoot":"","sources":["../../src/dsh/node-tap-summary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;
|
|
1
|
+
{"version":3,"file":"node-tap-summary.d.ts","sourceRoot":"","sources":["../../src/dsh/node-tap-summary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAE;AAG/J,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,GAAG,SAAS,CAStG;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAcxE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,GAAG,SAAS,CAEnG;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQhE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const TAP_KEYS = ['tests', 'pass', 'fail', 'cancelled', 'skipped', 'todo'];
|
|
2
2
|
/** Accept only a complete final Node TAP trailer, never a previewed progress line. */
|
|
3
|
-
export function parseNodeTapSummary(output) {
|
|
4
|
-
if (Buffer.byteLength(output) > 64_000 || /(?:truncated|Output capped|middle pruned)/iu.test(output))
|
|
3
|
+
export function parseNodeTapSummary(output, completeHostOutput = false) {
|
|
4
|
+
if (!completeHostOutput && (Buffer.byteLength(output) > 64_000 || /(?:truncated|Output capped|middle pruned)/iu.test(output)))
|
|
5
5
|
return undefined;
|
|
6
6
|
const values = new Map();
|
|
7
7
|
for (const match of output.matchAll(/^# (tests|pass|fail|cancelled|skipped|todo) (\d+)\s*$/gmu)) {
|
|
@@ -12,6 +12,36 @@ export function parseNodeTapSummary(output) {
|
|
|
12
12
|
const summary = Object.fromEntries(TAP_KEYS.map(key => [key, values.get(key)]));
|
|
13
13
|
return summary.tests === summary.pass + summary.fail + summary.cancelled + summary.skipped + summary.todo ? summary : undefined;
|
|
14
14
|
}
|
|
15
|
+
/** Cargo emits one terminal summary for each harness, including doc tests. */
|
|
16
|
+
export function parseCargoSummary(output) {
|
|
17
|
+
const starts = [...output.matchAll(/^running (\d+) tests?\s*$/gmu)];
|
|
18
|
+
const ends = [...output.matchAll(/^test result: (ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; (\d+) measured; (\d+) filtered out; finished in .+$/gmu)];
|
|
19
|
+
if (!starts.length || starts.length !== ends.length)
|
|
20
|
+
return undefined;
|
|
21
|
+
const total = { tests: 0, pass: 0, fail: 0, cancelled: 0, skipped: 0, todo: 0 };
|
|
22
|
+
for (let i = 0; i < ends.length; i++) {
|
|
23
|
+
const end = ends[i], start = starts[i];
|
|
24
|
+
const pass = Number(end[2]), fail = Number(end[3]), skipped = Number(end[4]) + Number(end[5]);
|
|
25
|
+
if (start.index >= end.index || (i > 0 && start.index <= ends[i - 1].index)
|
|
26
|
+
|| Number(start[1]) !== pass + fail + skipped || end[1] === 'FAILED' && fail === 0)
|
|
27
|
+
return undefined;
|
|
28
|
+
total.tests += Number(start[1]);
|
|
29
|
+
total.pass += pass;
|
|
30
|
+
total.fail += fail;
|
|
31
|
+
total.skipped += skipped;
|
|
32
|
+
total.filtered = (total.filtered ?? 0) + Number(end[6]);
|
|
33
|
+
total.measured = (total.measured ?? 0) + Number(end[5]);
|
|
34
|
+
}
|
|
35
|
+
return total.tests > 0 ? total : undefined;
|
|
36
|
+
}
|
|
37
|
+
export function parseTestSummary(output, completeHostOutput = false) {
|
|
38
|
+
return parseNodeTapSummary(output, completeHostOutput) ?? parseCargoSummary(output);
|
|
39
|
+
}
|
|
40
|
+
/** Node counts an assertion-free test file as a passing implicit file test. */
|
|
41
|
+
export function hasExplicitTestCases(output) {
|
|
42
|
+
return parseCargoSummary(output) !== undefined || [...output.matchAll(/^\s*# Subtest: (.+)\s*$/gmu)]
|
|
43
|
+
.some(match => !/(?:^|[/\\])[^/\\]*\.(?:ts|[cm]?js)$/u.test(match[1].trim()));
|
|
44
|
+
}
|
|
15
45
|
export function selectedNodeTestCommand(command) {
|
|
16
46
|
if (/[;&|><`$()\\'"\n\r]/u.test(command))
|
|
17
47
|
return false;
|
|
@@ -21,7 +51,7 @@ export function selectedNodeTestCommand(command) {
|
|
|
21
51
|
if (!args.includes('--test') || !args.includes('--test-reporter=tap')
|
|
22
52
|
|| args.some(arg => ['--eval', '-e', '--print', '-p'].includes(arg)))
|
|
23
53
|
return false;
|
|
24
|
-
return args.some(arg => /\.
|
|
54
|
+
return args.some(arg => /\.(?:ts|[cm]?js)$/u.test(arg)
|
|
25
55
|
&& !pathIsUnsafe(arg));
|
|
26
56
|
}
|
|
27
57
|
function pathIsUnsafe(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tap-summary.js","sourceRoot":"","sources":["../../src/dsh/node-tap-summary.ts"],"names":[],"mappings":"AACA,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAEnF,sFAAsF;AACtF,MAAM,UAAU,mBAAmB,CAAC,MAAc;
|
|
1
|
+
{"version":3,"file":"node-tap-summary.js","sourceRoot":"","sources":["../../src/dsh/node-tap-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { type TaskType } from '../akinator/types.js';
|
|
|
4
4
|
import type { AkinatorTaskClassification } from './decisions/akinator-classification.js';
|
|
5
5
|
export type { IntakeMode } from './intake-mode.js';
|
|
6
6
|
export declare const TASK_PREPARE_TOOL = "prepare_requested_work";
|
|
7
|
-
export declare const ON_DEMAND_GUIDANCE = "The original user request may be answered now without selecting a task category. No execution task has been prepared yet. Preserve all requested actions, negations, alternatives and target uncertainty. Native read, glob, grep, web_search and web_fetch demands automatically prepare the original request with research advice when no non-chat action type is resolved. Use these tools directly to gather requested evidence; do not call prepare_requested_work merely to read a plan or inspect files.
|
|
7
|
+
export declare const ON_DEMAND_GUIDANCE = "The original user request may be answered now without selecting a task category. No execution task has been prepared yet. Preserve all requested actions, negations, alternatives and target uncertainty. Native read, glob, grep, web_search and web_fetch demands automatically prepare the original request with research advice when no non-chat action type is resolved. Use these tools directly to gather requested evidence; do not call prepare_requested_work merely to read a plan or inspect files. An explicit development request is prepared automatically on its first tool demand. prepare_requested_work(taskType) remains an advisory control operation. Do not silently replace a requested action with a text-only answer or claim work was done. Ask a concrete clarification in ordinary conversation when the actual target or requested action is unclear. Installed Skill reads need no preparation and do not activate execution. Do not prepare work merely to load a skill. Owned development tools use their own authorization; Plan, goal, cancellation and execution ownership still apply. If only run_code is exposed and the request is ambiguous, prepare with exactly return await tools.prepare_requested_work({\"taskType\":\"research\"}) using the appropriate advisory type; the host intercepts that preparation-only carrier without evaluating code. For an explicit development request, its first run_code demand prepares automatically before evaluating the program.";
|
|
8
8
|
export interface DemandAgent {
|
|
9
9
|
readonly ctx?: unknown;
|
|
10
10
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-demand-intake.d.ts","sourceRoot":"","sources":["../../src/dsh/on-demand-intake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"on-demand-intake.d.ts","sourceRoot":"","sources":["../../src/dsh/on-demand-intake.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,10 @@ import { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { TASK_TYPES } from '../akinator/types.js';
|
|
4
4
|
import { canonicalContentHash } from '../serialization/validate.js';
|
|
5
5
|
import { KIOKUKO_DSH_SOURCE_KIND } from './plugin-source.js';
|
|
6
|
+
import { deriveProfile } from '../akinator/domain.js';
|
|
7
|
+
import { codingIntent } from './coding-workflow/intent.js';
|
|
6
8
|
export const TASK_PREPARE_TOOL = 'prepare_requested_work';
|
|
7
|
-
export const ON_DEMAND_GUIDANCE = 'The original user request may be answered now without selecting a task category. No execution task has been prepared yet. Preserve all requested actions, negations, alternatives and target uncertainty. Native read, glob, grep, web_search and web_fetch demands automatically prepare the original request with research advice when no non-chat action type is resolved. Use these tools directly to gather requested evidence; do not call prepare_requested_work merely to read a plan or inspect files.
|
|
9
|
+
export const ON_DEMAND_GUIDANCE = 'The original user request may be answered now without selecting a task category. No execution task has been prepared yet. Preserve all requested actions, negations, alternatives and target uncertainty. Native read, glob, grep, web_search and web_fetch demands automatically prepare the original request with research advice when no non-chat action type is resolved. Use these tools directly to gather requested evidence; do not call prepare_requested_work merely to read a plan or inspect files. An explicit development request is prepared automatically on its first tool demand. prepare_requested_work(taskType) remains an advisory control operation. Do not silently replace a requested action with a text-only answer or claim work was done. Ask a concrete clarification in ordinary conversation when the actual target or requested action is unclear. Installed Skill reads need no preparation and do not activate execution. Do not prepare work merely to load a skill. Owned development tools use their own authorization; Plan, goal, cancellation and execution ownership still apply. If only run_code is exposed and the request is ambiguous, prepare with exactly return await tools.prepare_requested_work({"taskType":"research"}) using the appropriate advisory type; the host intercepts that preparation-only carrier without evaluating code. For an explicit development request, its first run_code demand prepares automatically before evaluating the program.';
|
|
8
10
|
const ACTION_TYPES = TASK_TYPES.filter(type => type !== 'chat');
|
|
9
11
|
function humanMessages(messages) {
|
|
10
12
|
return messages.filter((value) => value?.role === 'user' && (!value.source || value.source.kind === 'user'));
|
|
@@ -19,7 +21,9 @@ function eventTurn(event) {
|
|
|
19
21
|
return Number.isSafeInteger(data?.turn) ? data.turn : undefined;
|
|
20
22
|
}
|
|
21
23
|
/** Tool names select advice only; admission and native permissions remain authoritative. */
|
|
22
|
-
function automaticPreparationType(intent, name) {
|
|
24
|
+
function automaticPreparationType(intent, name, task) {
|
|
25
|
+
if (codingIntent(task))
|
|
26
|
+
return 'build';
|
|
23
27
|
if (intent.taskType && intent.taskType !== 'chat')
|
|
24
28
|
return intent.taskType;
|
|
25
29
|
return ['read', 'glob', 'grep', 'web_search', 'web_fetch'].includes(name) ? 'research' : undefined;
|
|
@@ -91,15 +95,21 @@ export class OnDemandIntake {
|
|
|
91
95
|
if (previous.status === 'closed')
|
|
92
96
|
throw new Error('On-demand turn is closed');
|
|
93
97
|
const fresh = humanMessages(input.messages).filter(message => previous.humanContents.get(humanId(message)) !== canonicalContentHash(message));
|
|
94
|
-
if (fresh.length) {
|
|
95
|
-
previous.
|
|
96
|
-
|
|
98
|
+
if (!fresh.length) {
|
|
99
|
+
if (previous.capture && !await previous.capture)
|
|
100
|
+
return false;
|
|
101
|
+
return previous.status !== 'prepared';
|
|
97
102
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
previous.status = 'stale';
|
|
104
|
+
previous.controller.abort(new Error('Human instructions changed'));
|
|
105
|
+
// A new native batch can contain only the steering message. Preserve
|
|
106
|
+
// the original request while replacing changed messages by identity.
|
|
107
|
+
const merged = new Map(previous.input.messages.map(message => [humanId(message), message]));
|
|
108
|
+
for (const message of input.messages)
|
|
109
|
+
merged.set(humanId(message), message);
|
|
110
|
+
input = { ...input, messages: [...merged.values()] };
|
|
101
111
|
}
|
|
102
|
-
if (!['closed', 'prepared'].includes(previous.status))
|
|
112
|
+
if (previous.input.turn !== input.turn && !['closed', 'prepared'].includes(previous.status))
|
|
103
113
|
throw new Error('Previous on-demand turn has not ended');
|
|
104
114
|
previous.controller.abort(new Error('A newer native turn superseded this request'));
|
|
105
115
|
}
|
|
@@ -116,7 +126,7 @@ export class OnDemandIntake {
|
|
|
116
126
|
// validated owner's first reader once, including absence; never rebind it.
|
|
117
127
|
if (!this.#skillReaders.has(input.agent))
|
|
118
128
|
this.#skillReaders.set(input.agent, this.#startupSkillReader ?? this.#tools?.get('skill', input.agent)?.execute);
|
|
119
|
-
if (await this.host.existing(input)) {
|
|
129
|
+
if (previous?.input.turn !== input.turn && await this.host.existing(input)) {
|
|
120
130
|
this.assertCurrent(state);
|
|
121
131
|
// Retain the exact resumed request for the public preparation receipt.
|
|
122
132
|
// Existing ownership alone grants nothing: readiness is rechecked at dispatch.
|
|
@@ -130,7 +140,18 @@ export class OnDemandIntake {
|
|
|
130
140
|
}
|
|
131
141
|
if (!humanMessages(input.messages).length)
|
|
132
142
|
throw new Error('Original human input is required before on-demand intake');
|
|
133
|
-
|
|
143
|
+
try {
|
|
144
|
+
state.intent = await this.host.classify(input, state.task);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
input.signal.throwIfAborted();
|
|
148
|
+
state.intent = { deferInference: true };
|
|
149
|
+
}
|
|
150
|
+
if (!state.intent.taskType && !state.intent.deferInference && !executionClarification(state.task)) {
|
|
151
|
+
const type = deriveProfile(state.task).taskType;
|
|
152
|
+
if (type === 'build' || type === 'debug' || type === 'devops')
|
|
153
|
+
state.intent = { ...state.intent, taskType: type };
|
|
154
|
+
}
|
|
134
155
|
this.assertCurrent(state);
|
|
135
156
|
// Eager mode still binds known work before generation. Classifier uncertainty
|
|
136
157
|
// instead reaches ordinary reasoning, with no execution grant or purpose UI.
|
|
@@ -325,8 +346,8 @@ export class OnDemandIntake {
|
|
|
325
346
|
const skillReader = this.#skillReaders.get(state.input.agent);
|
|
326
347
|
const skillRead = execution.name === 'skill' && skillReader !== undefined && actual.execute === skillReader && state.status === 'answer';
|
|
327
348
|
const carrier = execution.name === 'run_code' && state.status !== 'prepared' ? preparationCarrier(execution.arguments) : undefined;
|
|
328
|
-
if (execution.name === 'run_code' && state.status !== 'prepared' && !carrier)
|
|
329
|
-
return denied('
|
|
349
|
+
if (execution.name === 'run_code' && state.status !== 'prepared' && !carrier && !automaticPreparationType(state.intent, execution.name, state.task))
|
|
350
|
+
return denied('Clarify the requested work before code execution.');
|
|
330
351
|
if (carrier) {
|
|
331
352
|
if (state.status !== 'answer' || state.preparationCalls.has(execution.callId))
|
|
332
353
|
return denied('Preparation carrier is not current');
|
|
@@ -337,7 +358,7 @@ export class OnDemandIntake {
|
|
|
337
358
|
}
|
|
338
359
|
else if (!skillRead) {
|
|
339
360
|
if (state.status !== 'prepared') {
|
|
340
|
-
const type = automaticPreparationType(state.intent, execution.name);
|
|
361
|
+
const type = automaticPreparationType(state.intent, execution.name, state.task);
|
|
341
362
|
if (!type)
|
|
342
363
|
return denied('Before tool-backed work, call prepare_requested_work with its advisory taskType. Clarify unknown actions or targets first; the original request is preserved.');
|
|
343
364
|
await this.prepare(state, type, execution.signal);
|