kiokuko-dsh 0.2.34 → 0.2.37
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 +22 -7
- package/README.ja.md +56 -23
- package/README.ko.md +55 -24
- package/README.md +54 -23
- package/README.zh-CN.md +55 -24
- package/dist/deep-thinker/abortable-stream.d.ts.map +1 -1
- package/dist/deep-thinker/abortable-stream.js +2 -0
- package/dist/deep-thinker/abortable-stream.js.map +1 -1
- package/dist/deep-thinker/core/contracts.d.ts +5 -5
- package/dist/deep-thinker/memory-finalizer.d.ts +1 -1
- package/dist/deep-thinker/store.d.ts +1 -1
- package/dist/dsh/agenticreplay-security.d.ts +1 -0
- package/dist/dsh/agenticreplay-security.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-security.js +1 -1
- package/dist/dsh/agenticreplay-security.js.map +1 -1
- package/dist/dsh/auxiliary-recovery.d.ts +68 -0
- package/dist/dsh/auxiliary-recovery.d.ts.map +1 -0
- package/dist/dsh/auxiliary-recovery.js +218 -0
- package/dist/dsh/auxiliary-recovery.js.map +1 -0
- package/dist/dsh/boundary-worker.js +1 -0
- package/dist/dsh/boundary-worker.js.map +1 -1
- package/dist/dsh/coding-workflow/intent.d.ts.map +1 -1
- package/dist/dsh/coding-workflow/intent.js +2 -0
- package/dist/dsh/coding-workflow/intent.js.map +1 -1
- package/dist/dsh/config.d.ts +16 -2
- package/dist/dsh/config.d.ts.map +1 -1
- package/dist/dsh/core/host.d.ts +14 -0
- package/dist/dsh/core/host.d.ts.map +1 -1
- package/dist/dsh/core/host.js +20 -6
- package/dist/dsh/core/host.js.map +1 -1
- package/dist/dsh/core/index.d.ts +56 -2
- package/dist/dsh/core/index.d.ts.map +1 -1
- package/dist/dsh/core/tasks.d.ts +4 -0
- package/dist/dsh/core/tasks.d.ts.map +1 -1
- package/dist/dsh/core/tasks.js +9 -0
- package/dist/dsh/core/tasks.js.map +1 -1
- package/dist/dsh/core-runtime.d.ts +2 -0
- package/dist/dsh/core-runtime.d.ts.map +1 -1
- package/dist/dsh/core-runtime.js +4 -0
- package/dist/dsh/core-runtime.js.map +1 -1
- package/dist/dsh/decisions/config.d.ts +29 -0
- package/dist/dsh/decisions/config.d.ts.map +1 -1
- package/dist/dsh/decisions/config.js +13 -2
- package/dist/dsh/decisions/config.js.map +1 -1
- package/dist/dsh/decisions/diagnostics.d.ts +30 -8
- package/dist/dsh/decisions/diagnostics.d.ts.map +1 -1
- package/dist/dsh/decisions/diagnostics.js +2 -1
- package/dist/dsh/decisions/diagnostics.js.map +1 -1
- package/dist/dsh/decisions/host.d.ts.map +1 -1
- package/dist/dsh/decisions/host.js +25 -6
- package/dist/dsh/decisions/host.js.map +1 -1
- package/dist/dsh/decisions/intent-assessment.d.ts +3 -1
- package/dist/dsh/decisions/intent-assessment.d.ts.map +1 -1
- package/dist/dsh/decisions/intent-assessment.js +1 -1
- package/dist/dsh/decisions/intent-assessment.js.map +1 -1
- package/dist/dsh/decisions/openai.d.ts +27 -0
- package/dist/dsh/decisions/openai.d.ts.map +1 -0
- package/dist/dsh/decisions/openai.js +107 -0
- package/dist/dsh/decisions/openai.js.map +1 -0
- package/dist/dsh/decisions/providers.d.ts +10 -1
- package/dist/dsh/decisions/providers.d.ts.map +1 -1
- package/dist/dsh/decisions/providers.js +2 -2
- package/dist/dsh/decisions/providers.js.map +1 -1
- package/dist/dsh/decisions/request-intent.d.ts +1 -1
- package/dist/dsh/decisions/service.d.ts +12 -1
- package/dist/dsh/decisions/service.d.ts.map +1 -1
- package/dist/dsh/decisions/service.js +63 -14
- package/dist/dsh/decisions/service.js.map +1 -1
- package/dist/dsh/execution-selection.d.ts +5 -5
- package/dist/dsh/host-adapter/routing.d.ts.map +1 -1
- package/dist/dsh/host-adapter/routing.js +8 -3
- package/dist/dsh/host-adapter/routing.js.map +1 -1
- package/dist/dsh/host-adapter/session-access.d.ts +2 -0
- package/dist/dsh/host-adapter/session-access.d.ts.map +1 -1
- package/dist/dsh/host-adapter/session-access.js +2 -0
- package/dist/dsh/host-adapter/session-access.js.map +1 -1
- package/dist/dsh/host-adapter.d.ts.map +1 -1
- package/dist/dsh/host-adapter.js +11 -3
- package/dist/dsh/host-adapter.js.map +1 -1
- package/dist/dsh/index.d.ts +32 -6
- package/dist/dsh/index.d.ts.map +1 -1
- package/dist/dsh/lisp/code-intelligence-contracts.js +2 -2
- package/dist/dsh/lisp/coding-choice.d.ts +7 -0
- package/dist/dsh/lisp/coding-choice.d.ts.map +1 -1
- package/dist/dsh/lisp/coding-choice.js +2 -0
- package/dist/dsh/lisp/coding-choice.js.map +1 -1
- package/dist/dsh/lisp/coding-preparation.d.ts +6 -1
- package/dist/dsh/lisp/coding-preparation.d.ts.map +1 -1
- package/dist/dsh/lisp/coding-preparation.js +40 -3
- package/dist/dsh/lisp/coding-preparation.js.map +1 -1
- package/dist/dsh/lisp/manager.d.ts +2 -0
- package/dist/dsh/lisp/manager.d.ts.map +1 -1
- package/dist/dsh/lisp/manager.js +74 -14
- package/dist/dsh/lisp/manager.js.map +1 -1
- package/dist/dsh/lisp/store.d.ts.map +1 -1
- package/dist/dsh/lisp/store.js +6 -10
- package/dist/dsh/lisp/store.js.map +1 -1
- package/dist/dsh/lisp/surface.d.ts.map +1 -1
- package/dist/dsh/lisp/surface.js +3 -2
- package/dist/dsh/lisp/surface.js.map +1 -1
- package/dist/dsh/lisp/worker.d.ts +4 -1
- package/dist/dsh/lisp/worker.d.ts.map +1 -1
- package/dist/dsh/lisp/worker.js +56 -6
- package/dist/dsh/lisp/worker.js.map +1 -1
- package/dist/dsh/lisp-config.js +1 -1
- package/dist/dsh/lisp-config.js.map +1 -1
- package/dist/dsh/managed-file-deployment.d.ts.map +1 -1
- package/dist/dsh/managed-file-deployment.js +3 -1
- package/dist/dsh/managed-file-deployment.js.map +1 -1
- package/dist/dsh/model-auto/coordinator.js +1 -1
- package/dist/dsh/model-auto/coordinator.js.map +1 -1
- package/dist/dsh/model-configuration.d.ts +6 -6
- package/dist/dsh/modules/enno.d.ts +1 -1
- package/dist/dsh/on-demand-intake.d.ts +15 -2
- package/dist/dsh/on-demand-intake.d.ts.map +1 -1
- package/dist/dsh/on-demand-intake.js +130 -9
- package/dist/dsh/on-demand-intake.js.map +1 -1
- package/dist/dsh/session-export-analysis.d.ts +20 -0
- package/dist/dsh/session-export-analysis.d.ts.map +1 -0
- package/dist/dsh/session-export-analysis.js +90 -0
- package/dist/dsh/session-export-analysis.js.map +1 -0
- package/dist/dsh/session-log-export.d.ts +1 -0
- package/dist/dsh/session-log-export.d.ts.map +1 -1
- package/dist/dsh/session-log-export.js +19 -3
- package/dist/dsh/session-log-export.js.map +1 -1
- package/dist/dsh/session-log-mirror.d.ts +1 -1
- package/dist/dsh/session-log-mirror.d.ts.map +1 -1
- package/dist/dsh/session-log-mirror.js +5 -2
- package/dist/dsh/session-log-mirror.js.map +1 -1
- package/dist/dsh/setup.d.ts +22 -0
- package/dist/dsh/setup.d.ts.map +1 -1
- package/dist/dsh/setup.js +50 -4
- package/dist/dsh/setup.js.map +1 -1
- package/dist/dsh/skill-prompts.json +1 -1
- package/dist/dsh/standard-skill-deployment.d.ts +12 -1
- package/dist/dsh/standard-skill-deployment.d.ts.map +1 -1
- package/dist/dsh/standard-skill-deployment.js +76 -4
- package/dist/dsh/standard-skill-deployment.js.map +1 -1
- package/dist/dsh/task-startup.d.ts +24 -0
- package/dist/dsh/task-startup.d.ts.map +1 -0
- package/dist/dsh/task-startup.js +126 -0
- package/dist/dsh/task-startup.js.map +1 -0
- package/dist/dsh/tool-exposure-config.d.ts +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/lifecycle.d.ts +1 -1
- package/docs/README.ja.md +1 -0
- package/docs/README.md +1 -0
- package/docs/dsh-plugin.md +42 -14
- package/docs/getting-started.ja.md +2 -0
- package/docs/getting-started.md +2 -0
- package/docs/lisp-hot-tools.md +7 -4
- package/docs/lisp.md +19 -5
- package/docs/model-selection.ja.md +2 -2
- package/docs/model-selection.md +2 -2
- package/docs/store-evidence.md +6 -0
- package/docs/typed-decisions.md +103 -2
- package/docs/typesafe.md +8 -3
- package/docs/verification.md +28 -3
- package/lisp/process-identity.d.mts +2 -0
- package/lisp/process-identity.mjs +34 -0
- package/lisp/repository-owner.d.mts +1 -0
- package/lisp/repository-owner.mjs +58 -0
- package/lisp/supervisor.mjs +19 -2
- package/lisp/tools.lisp +17 -5
- package/migrations/050_auxiliary_recovery.sql +11 -0
- package/package.json +6 -4
- package/scripts/prepare-build.mjs +13 -0
- package/scripts/setup-dsh.mjs +8 -3
- package/skills/kiokuko-lisp/SKILL.md +5 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { link, lstat, mkdir, mkdtemp, rename, rm, writeFile } from 'node:fs/promises';
|
|
1
|
+
import { chmod, link, lstat, mkdir, mkdtemp, rename, rm, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { readRegularFile } from '../config/read-regular-file.js';
|
|
4
4
|
import { KiokukoError } from '../errors.js';
|
|
@@ -43,6 +43,8 @@ export async function publishFile(home, file) {
|
|
|
43
43
|
try {
|
|
44
44
|
const staged = path.join(temporary, 'content');
|
|
45
45
|
await writeFile(staged, file.content, { flag: 'wx', mode: file.previous?.mode ?? 0o600 });
|
|
46
|
+
if (file.previous)
|
|
47
|
+
await chmod(staged, file.previous.mode);
|
|
46
48
|
await deploymentParent(home, file.target, false);
|
|
47
49
|
const current = await readRegularFile(file.target, { containmentRoot: home });
|
|
48
50
|
if (current?.content === file.content)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-file-deployment.js","sourceRoot":"","sources":["../../src/dsh/managed-file-deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"managed-file-deployment.js","sourceRoot":"","sources":["../../src/dsh/managed-file-deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export class ModelAutoCoordinator {
|
|
|
25
25
|
const session = await this.store.session(sessionId);
|
|
26
26
|
const decision = this.decisions.status();
|
|
27
27
|
const effective = session.mode === 'off' ? 'disabled' : session.pin ? 'manual_pin'
|
|
28
|
-
: decision.mode !== 'auto' || !['typesafe', 'laya-coreml'].includes(decision.provider ?? '') ? 'decision_off'
|
|
28
|
+
: decision.mode !== 'auto' || !['typesafe', 'laya-coreml', 'openai'].includes(decision.provider ?? '') ? 'decision_off'
|
|
29
29
|
: decision.readiness?.state === 'ready' ? 'ready' : 'unverified';
|
|
30
30
|
return { configured: this.config.mode, mode: session.mode, revision: session.revision,
|
|
31
31
|
effective, preset: this.config.preset, budgetMs: this.config.budgetMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/dsh/model-auto/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAGtE,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,iBAAiB,EACrB,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAInD,MAAM,MAAM,GAAG,CAAC,MAAuB,EAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;AAC5F,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,eAAuB,EAAE,IAAoC,EAAsB,EAAE,CAC1H,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,IAAI,IAAI,KAAK,MAAM;IAC1G,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAE1F,4FAA4F;AAC5F,MAAM,OAAO,oBAAoB;IAGV;IAAwC;IAC1C;IAHV,MAAM,CAAwB;IACtB,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAA;IACzE,YAAqB,KAAqB,EAAmB,SAA0B,EACpE,OAAoC,EAAE,SAA0C,EAAE;QADhF,UAAK,GAAL,KAAK,CAAgB;QAAmB,cAAS,GAAT,SAAS,CAAiB;QACpE,YAAO,GAAP,OAAO,CAA6B;QACrD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAAoC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IACrH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAsB,IAAmB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA,CAAC,CAAC;IACzI,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAsB,IAAmB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA,CAAC,CAAC;IACnH,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAA0E,CAAA;QAChH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;YAChF,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/dsh/model-auto/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export declare const ROLE_LABELS: Record<ModelRole, string>;
|
|
|
5
5
|
export declare const ModelRouteSchema: z.ZodObject<{
|
|
6
6
|
provider: z.ZodString;
|
|
7
7
|
family: z.ZodEnum<{
|
|
8
|
-
other: "other";
|
|
9
8
|
openai: "openai";
|
|
10
9
|
deepseek: "deepseek";
|
|
11
10
|
"opencode-go": "opencode-go";
|
|
@@ -13,6 +12,7 @@ export declare const ModelRouteSchema: z.ZodObject<{
|
|
|
13
12
|
openrouter: "openrouter";
|
|
14
13
|
orcarouter: "orcarouter";
|
|
15
14
|
ollama: "ollama";
|
|
15
|
+
other: "other";
|
|
16
16
|
}>;
|
|
17
17
|
connection: z.ZodDefault<z.ZodEnum<{
|
|
18
18
|
api: "api";
|
|
@@ -41,7 +41,6 @@ export declare const LegacyModelRouteSchema: z.ZodObject<{
|
|
|
41
41
|
messages: "messages";
|
|
42
42
|
}>>;
|
|
43
43
|
family: z.ZodEnum<{
|
|
44
|
-
other: "other";
|
|
45
44
|
openai: "openai";
|
|
46
45
|
deepseek: "deepseek";
|
|
47
46
|
"opencode-go": "opencode-go";
|
|
@@ -49,6 +48,7 @@ export declare const LegacyModelRouteSchema: z.ZodObject<{
|
|
|
49
48
|
openrouter: "openrouter";
|
|
50
49
|
orcarouter: "orcarouter";
|
|
51
50
|
ollama: "ollama";
|
|
51
|
+
other: "other";
|
|
52
52
|
}>;
|
|
53
53
|
}, z.core.$strict>;
|
|
54
54
|
export type ModelRoute = z.infer<typeof LegacyModelRouteSchema>;
|
|
@@ -62,7 +62,6 @@ export declare const ModelConfigurationSchema: z.ZodObject<{
|
|
|
62
62
|
routeBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
63
63
|
provider: z.ZodString;
|
|
64
64
|
family: z.ZodEnum<{
|
|
65
|
-
other: "other";
|
|
66
65
|
openai: "openai";
|
|
67
66
|
deepseek: "deepseek";
|
|
68
67
|
"opencode-go": "opencode-go";
|
|
@@ -70,6 +69,7 @@ export declare const ModelConfigurationSchema: z.ZodObject<{
|
|
|
70
69
|
openrouter: "openrouter";
|
|
71
70
|
orcarouter: "orcarouter";
|
|
72
71
|
ollama: "ollama";
|
|
72
|
+
other: "other";
|
|
73
73
|
}>;
|
|
74
74
|
connection: z.ZodDefault<z.ZodEnum<{
|
|
75
75
|
api: "api";
|
|
@@ -165,7 +165,6 @@ export declare const LegacyModelConfigurationSchema: z.ZodObject<{
|
|
|
165
165
|
messages: "messages";
|
|
166
166
|
}>>;
|
|
167
167
|
family: z.ZodEnum<{
|
|
168
|
-
other: "other";
|
|
169
168
|
openai: "openai";
|
|
170
169
|
deepseek: "deepseek";
|
|
171
170
|
"opencode-go": "opencode-go";
|
|
@@ -173,6 +172,7 @@ export declare const LegacyModelConfigurationSchema: z.ZodObject<{
|
|
|
173
172
|
openrouter: "openrouter";
|
|
174
173
|
orcarouter: "orcarouter";
|
|
175
174
|
ollama: "ollama";
|
|
175
|
+
other: "other";
|
|
176
176
|
}>;
|
|
177
177
|
}, z.core.$strict>>>;
|
|
178
178
|
}, z.core.$strict>;
|
|
@@ -181,7 +181,6 @@ export declare const ModelConfigurationDraftSchema: z.ZodObject<{
|
|
|
181
181
|
routeBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
182
182
|
provider: z.ZodString;
|
|
183
183
|
family: z.ZodEnum<{
|
|
184
|
-
other: "other";
|
|
185
184
|
openai: "openai";
|
|
186
185
|
deepseek: "deepseek";
|
|
187
186
|
"opencode-go": "opencode-go";
|
|
@@ -189,6 +188,7 @@ export declare const ModelConfigurationDraftSchema: z.ZodObject<{
|
|
|
189
188
|
openrouter: "openrouter";
|
|
190
189
|
orcarouter: "orcarouter";
|
|
191
190
|
ollama: "ollama";
|
|
191
|
+
other: "other";
|
|
192
192
|
}>;
|
|
193
193
|
connection: z.ZodDefault<z.ZodEnum<{
|
|
194
194
|
api: "api";
|
|
@@ -284,7 +284,6 @@ export declare const LegacyModelConfigurationDraftSchema: z.ZodObject<{
|
|
|
284
284
|
messages: "messages";
|
|
285
285
|
}>>;
|
|
286
286
|
family: z.ZodEnum<{
|
|
287
|
-
other: "other";
|
|
288
287
|
openai: "openai";
|
|
289
288
|
deepseek: "deepseek";
|
|
290
289
|
"opencode-go": "opencode-go";
|
|
@@ -292,6 +291,7 @@ export declare const LegacyModelConfigurationDraftSchema: z.ZodObject<{
|
|
|
292
291
|
openrouter: "openrouter";
|
|
293
292
|
orcarouter: "orcarouter";
|
|
294
293
|
ollama: "ollama";
|
|
294
|
+
other: "other";
|
|
295
295
|
}>;
|
|
296
296
|
}, z.core.$strict>>>;
|
|
297
297
|
}, z.core.$strict>;
|
|
@@ -15,7 +15,6 @@ export declare const EnnoModuleConfig: import("zod").ZodObject<{
|
|
|
15
15
|
modelRoutes: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
16
16
|
provider: import("zod").ZodString;
|
|
17
17
|
family: import("zod").ZodEnum<{
|
|
18
|
-
other: "other";
|
|
19
18
|
openai: "openai";
|
|
20
19
|
deepseek: "deepseek";
|
|
21
20
|
"opencode-go": "opencode-go";
|
|
@@ -23,6 +22,7 @@ export declare const EnnoModuleConfig: import("zod").ZodObject<{
|
|
|
23
22
|
openrouter: "openrouter";
|
|
24
23
|
orcarouter: "orcarouter";
|
|
25
24
|
ollama: "ollama";
|
|
25
|
+
other: "other";
|
|
26
26
|
}>;
|
|
27
27
|
connection: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
28
28
|
api: "api";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AuxiliaryRecovery } from './auxiliary-recovery.js';
|
|
1
2
|
import type { DshUserQuestions } from './intake-questions.js';
|
|
2
3
|
import type { DshAnswerContext } from './answer-context.js';
|
|
3
4
|
import type { DshLogEvent } from './session-memory-finalizer.js';
|
|
@@ -95,10 +96,11 @@ interface NativeTools {
|
|
|
95
96
|
guard(callback: (execution: Execution) => string | undefined): () => void;
|
|
96
97
|
}
|
|
97
98
|
interface Dependencies {
|
|
98
|
-
readonly assess?: (input: DemandInput, context: RequestIntentContext, decision: RequestIntentDecision) => Promise<IntentAssessment | undefined>;
|
|
99
|
+
readonly assess?: (input: DemandInput, context: RequestIntentContext, decision: RequestIntentDecision, recoveryAttempt?: number) => Promise<IntentAssessment | undefined>;
|
|
99
100
|
readonly diagnostic?: (input: DemandInput, observation: IntakeDiagnosticObservation) => Promise<void>;
|
|
100
101
|
readonly questions?: DshUserQuestions;
|
|
101
102
|
readonly answerContext?: DshAnswerContext | undefined;
|
|
103
|
+
readonly recovery?: AuxiliaryRecovery;
|
|
102
104
|
readonly nativeChild?: (agent: DemandAgent) => boolean;
|
|
103
105
|
readonly validate: (input: DemandInput) => Promise<void>;
|
|
104
106
|
/** Positive host authority lookup; unavailable storage must reject, never mean absent. */
|
|
@@ -119,6 +121,8 @@ interface Dependencies {
|
|
|
119
121
|
}
|
|
120
122
|
interface Turn {
|
|
121
123
|
readonly input: DemandInput;
|
|
124
|
+
readonly session: NonNullable<DemandAgent['session']>;
|
|
125
|
+
readonly nativeSignal: AbortSignal;
|
|
122
126
|
readonly task: string;
|
|
123
127
|
readonly humanContents: ReadonlyMap<string, string>;
|
|
124
128
|
status: 'capturing' | 'answer' | 'preparing' | 'prepared' | 'closed' | 'stale';
|
|
@@ -146,6 +150,9 @@ interface Turn {
|
|
|
146
150
|
nativeUnowned?: boolean;
|
|
147
151
|
/** Only project context actually produced for this exact captured turn. */
|
|
148
152
|
answerContextReady?: boolean;
|
|
153
|
+
memoryDeferred?: boolean;
|
|
154
|
+
auxiliaryReceipt?: unknown;
|
|
155
|
+
recoveryAfterFinish?: boolean;
|
|
149
156
|
readonly preparationCalls: Set<string>;
|
|
150
157
|
readonly controller: AbortController;
|
|
151
158
|
}
|
|
@@ -160,6 +167,10 @@ export declare class OnDemandIntake {
|
|
|
160
167
|
constructor(host: Dependencies, options?: {
|
|
161
168
|
onlyWhenDeferred?: boolean;
|
|
162
169
|
});
|
|
170
|
+
private recoveryCurrent;
|
|
171
|
+
private memoryCheck;
|
|
172
|
+
private deferMemory;
|
|
173
|
+
private deferAssessment;
|
|
163
174
|
/** Exact host-owned implementations, never a name-only execution bypass. */
|
|
164
175
|
registerControlTool(definition: Definition): () => void;
|
|
165
176
|
isControl(execution: Execution): boolean;
|
|
@@ -203,6 +214,7 @@ export declare class OnDemandIntake {
|
|
|
203
214
|
turn: number;
|
|
204
215
|
requestIntent?: RequestIntentDecision;
|
|
205
216
|
memoryOwner: MemoryOwnerKind;
|
|
217
|
+
auxiliary?: readonly unknown[];
|
|
206
218
|
} | undefined;
|
|
207
219
|
/** Refresh only authority facts after a committed control operation; retain the exact human request. */
|
|
208
220
|
taskStateChanged(task: TaskSnapshot): void;
|
|
@@ -234,7 +246,8 @@ export declare class OnDemandIntake {
|
|
|
234
246
|
mount(context: {
|
|
235
247
|
get?(name: string, required?: boolean): any;
|
|
236
248
|
on(name: string, listener: (...args: any[]) => any, options?: {
|
|
237
|
-
prepend
|
|
249
|
+
prepend?: boolean;
|
|
250
|
+
global?: boolean;
|
|
238
251
|
}): () => void;
|
|
239
252
|
}, tools: NativeTools, systemPrompt?: {
|
|
240
253
|
section(section: any): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-demand-intake.d.ts","sourceRoot":"","sources":["../../src/dsh/on-demand-intake.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"on-demand-intake.d.ts","sourceRoot":"","sources":["../../src/dsh/on-demand-intake.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { symbols } from '@deepseek-ai/cordis';
|
|
|
3
3
|
import { requestInterpretationError, requestInterpretationRecovery, } from './request-interpretation-guidance.js';
|
|
4
4
|
import { collectClarificationContext, clarificationReply, reusableClarificationAnswer, } from './clarification-context.js';
|
|
5
5
|
import { abortable } from './boundary-worker.js';
|
|
6
|
+
import { filterRequestMemory } from './request-memory.js';
|
|
7
|
+
import { MemorySnapshotStale } from './memory-request-fence.js';
|
|
6
8
|
import { isLispImplementation, isLispNativeCommand, withRootLispAdmission, rememberLispConversation, } from './lisp-tool-identity.js';
|
|
7
9
|
import { ExecutionSelectionPending } from './execution-pending.js';
|
|
8
10
|
import { executionClarification } from './intake-clarification.js';
|
|
@@ -78,6 +80,9 @@ function automaticPreparationType(intent, requestIntent, name) {
|
|
|
78
80
|
'grep',
|
|
79
81
|
'web_search',
|
|
80
82
|
'web_fetch',
|
|
83
|
+
'cordis_inspect_list',
|
|
84
|
+
'cordis_inspect_query',
|
|
85
|
+
'kioku_read',
|
|
81
86
|
'job_output',
|
|
82
87
|
'job_list',
|
|
83
88
|
'list_subagent_models',
|
|
@@ -99,6 +104,9 @@ function automaticPreparationType(intent, requestIntent, name) {
|
|
|
99
104
|
'grep',
|
|
100
105
|
'web_search',
|
|
101
106
|
'web_fetch',
|
|
107
|
+
'cordis_inspect_list',
|
|
108
|
+
'cordis_inspect_query',
|
|
109
|
+
'kioku_read',
|
|
102
110
|
'job_output',
|
|
103
111
|
'job_list',
|
|
104
112
|
'list_subagent_models',
|
|
@@ -108,6 +116,9 @@ function automaticPreparationType(intent, requestIntent, name) {
|
|
|
108
116
|
}
|
|
109
117
|
// Native inspection and session-local planning carry no project mutation authority.
|
|
110
118
|
const NATIVE_EVIDENCE_READS = new Set([
|
|
119
|
+
'cordis_inspect_list',
|
|
120
|
+
'cordis_inspect_query',
|
|
121
|
+
'kioku_read',
|
|
111
122
|
'read',
|
|
112
123
|
'read_image',
|
|
113
124
|
'glob',
|
|
@@ -120,6 +131,9 @@ const NATIVE_EVIDENCE_READS = new Set([
|
|
|
120
131
|
'todo_write',
|
|
121
132
|
]);
|
|
122
133
|
const UNOWNED_NATIVE_TOOLS = new Set([
|
|
134
|
+
'cordis_inspect_list',
|
|
135
|
+
'cordis_inspect_query',
|
|
136
|
+
'kioku_read',
|
|
123
137
|
'bash',
|
|
124
138
|
'read',
|
|
125
139
|
'read_image',
|
|
@@ -201,6 +215,59 @@ export class OnDemandIntake {
|
|
|
201
215
|
this.host = host;
|
|
202
216
|
this.options = options;
|
|
203
217
|
}
|
|
218
|
+
recoveryCurrent(state) {
|
|
219
|
+
return !this.#stopped && !state.nativeSignal.aborted && state.input.agent.session === state.session
|
|
220
|
+
&& (!state.input.signal.aborted || state.recoveryAfterFinish === true)
|
|
221
|
+
&& this.#turns.get(state.input.agent.session?.id ?? '') === state && state.status !== 'stale'
|
|
222
|
+
&& (state.status !== 'closed' || state.recoveryAfterFinish === true);
|
|
223
|
+
}
|
|
224
|
+
memoryCheck(state, operation) {
|
|
225
|
+
const signal = AbortSignal.any([state.input.signal, AbortSignal.timeout(1000)]);
|
|
226
|
+
return abortable(operation({ ...state.input, signal }), signal);
|
|
227
|
+
}
|
|
228
|
+
async deferMemory(state) {
|
|
229
|
+
this.assertCurrent(state);
|
|
230
|
+
await this.host.validate(state.input);
|
|
231
|
+
state.memoryDeferred = true;
|
|
232
|
+
state.answerContextReady = false;
|
|
233
|
+
this.host.answerContext?.retire(state.input.agent);
|
|
234
|
+
const source = { sessionId: state.input.agent.session.id, turn: state.input.turn, origin: 'answer-context',
|
|
235
|
+
sourceDigest: canonicalContentHash(state.task), contextDigest: canonicalContentHash(state.input.messages) };
|
|
236
|
+
state.auxiliaryReceipt = await this.host.recovery?.defer({ source, current: () => this.recoveryCurrent(state),
|
|
237
|
+
check: async (signal) => {
|
|
238
|
+
await this.host.validate({ ...state.input, signal });
|
|
239
|
+
await this.host.answerContext?.prepare({ ...state.input, signal }, state.task, state.intent.taskType ?? null, state.memoryOwner);
|
|
240
|
+
signal.throwIfAborted();
|
|
241
|
+
return { state: 'verified', reason: 'memory_rechecked' };
|
|
242
|
+
}, verified: () => { if (this.recoveryCurrent(state)) {
|
|
243
|
+
state.memoryDeferred = false;
|
|
244
|
+
state.answerContextReady = this.host.answerContext !== undefined;
|
|
245
|
+
} }
|
|
246
|
+
}, 'memory_unavailable') ?? { storage: 'unavailable', state: 'pending', workMayContinue: true, memoryAdopted: false };
|
|
247
|
+
}
|
|
248
|
+
async deferAssessment(state, context, decision, digest) {
|
|
249
|
+
let verified;
|
|
250
|
+
state.auxiliaryReceipt = await this.host.recovery?.defer({ source: { sessionId: state.input.agent.session.id, turn: state.input.turn,
|
|
251
|
+
origin: 'intent-assessment', sourceDigest: canonicalContentHash(state.task), contextDigest: digest },
|
|
252
|
+
current: () => this.recoveryCurrent(state) && state.assessment?.digest === digest && canonicalContentHash([state.requestIntentContext, decision]) === digest,
|
|
253
|
+
check: async (signal, attempt) => {
|
|
254
|
+
await this.host.validate({ ...state.input, signal });
|
|
255
|
+
const result = await this.host.assess?.({ ...state.input, signal }, context, decision, attempt);
|
|
256
|
+
signal.throwIfAborted();
|
|
257
|
+
if (!result)
|
|
258
|
+
return { state: 'rejected', reason: 'assessment_disabled' };
|
|
259
|
+
if (result.outcome === 'consistent') {
|
|
260
|
+
verified = result;
|
|
261
|
+
return { state: 'verified', reason: 'semantic_rechecked' };
|
|
262
|
+
}
|
|
263
|
+
return { state: result.semantic === 'contradicted' ? 'rejected' : 'retry_wait', reason: result.semantic === 'contradicted' ? 'semantic_contradicted' : 'assessment_unresolved' };
|
|
264
|
+
}, verified: async () => {
|
|
265
|
+
if (verified && this.recoveryCurrent(state) && state.assessment?.digest === digest && canonicalContentHash([state.requestIntentContext, decision]) === digest) {
|
|
266
|
+
state.assessment = { digest, result: verified };
|
|
267
|
+
await this.diagnose(state, { kind: 'assessment', assessment: verified });
|
|
268
|
+
}
|
|
269
|
+
} }, 'assessment_unresolved') ?? { storage: 'unavailable', state: 'pending', workMayContinue: true, memoryAdopted: false };
|
|
270
|
+
}
|
|
204
271
|
/** Exact host-owned implementations, never a name-only execution bypass. */
|
|
205
272
|
registerControlTool(definition) {
|
|
206
273
|
this.#controlTools.set(definition.name, definition.execute);
|
|
@@ -311,7 +378,7 @@ export class OnDemandIntake {
|
|
|
311
378
|
}
|
|
312
379
|
/** Availability only: never capture a turn or publish execution intent before turn/start. */
|
|
313
380
|
async prepareNativeCapabilities(input) {
|
|
314
|
-
if (
|
|
381
|
+
if (!this.host.prepareNativeCoding)
|
|
315
382
|
return;
|
|
316
383
|
input = {
|
|
317
384
|
...input,
|
|
@@ -353,6 +420,7 @@ export class OnDemandIntake {
|
|
|
353
420
|
signal: AbortSignal.any([input.signal, this.#lifecycle.signal]),
|
|
354
421
|
};
|
|
355
422
|
const sessionId = input.agent.session.id;
|
|
423
|
+
this.host.recovery?.active(sessionId);
|
|
356
424
|
const previous = this.#turns.get(sessionId);
|
|
357
425
|
if (previous) {
|
|
358
426
|
if (previous.input.agent !== input.agent ||
|
|
@@ -411,6 +479,7 @@ export class OnDemandIntake {
|
|
|
411
479
|
// Install the pending state synchronously, before any host or classifier awaits.
|
|
412
480
|
const controller = new AbortController();
|
|
413
481
|
const state = {
|
|
482
|
+
session: input.agent.session, nativeSignal: input.signal,
|
|
414
483
|
input: {
|
|
415
484
|
...input,
|
|
416
485
|
signal: AbortSignal.any([input.signal, controller.signal]),
|
|
@@ -473,6 +542,13 @@ export class OnDemandIntake {
|
|
|
473
542
|
await this.diagnose(state, { kind: 'resume' });
|
|
474
543
|
return true;
|
|
475
544
|
}
|
|
545
|
+
if (this.host.prepareNativeCoding) {
|
|
546
|
+
const context = await this.host.requestContext?.(state.input, state.task)
|
|
547
|
+
?? createRequestIntentContext({ task: state.task, messageRefs: requestIntentMessageRefs(state.input.messages, state.task) });
|
|
548
|
+
this.assertCurrent(state);
|
|
549
|
+
await this.host.prepareNativeCoding(state.input, state.task, context);
|
|
550
|
+
this.assertCurrent(state);
|
|
551
|
+
}
|
|
476
552
|
try {
|
|
477
553
|
state.intent = await this.host.classify(input, state.task);
|
|
478
554
|
}
|
|
@@ -583,8 +659,14 @@ export class OnDemandIntake {
|
|
|
583
659
|
// The current request is on the conversational path until actual admission.
|
|
584
660
|
// Provisional intent cannot select a different run's memory validator.
|
|
585
661
|
state.memoryOwner = 'conversation';
|
|
586
|
-
|
|
587
|
-
|
|
662
|
+
try {
|
|
663
|
+
await this.memoryCheck(state, input => this.host.answerContext?.prepare(input, state.task, state.intent.taskType ?? null, state.memoryOwner) ?? Promise.resolve());
|
|
664
|
+
state.answerContextReady = this.host.answerContext !== undefined;
|
|
665
|
+
}
|
|
666
|
+
catch {
|
|
667
|
+
state.input.signal.throwIfAborted();
|
|
668
|
+
await this.deferMemory(state);
|
|
669
|
+
}
|
|
588
670
|
this.assertCurrent(state);
|
|
589
671
|
state.status = 'answer';
|
|
590
672
|
return true;
|
|
@@ -706,8 +788,18 @@ export class OnDemandIntake {
|
|
|
706
788
|
throw new RequestClarification('The source or candidate is unresolved', true);
|
|
707
789
|
const context = state.requestIntentContext, digest = canonicalContentHash([context, decision]);
|
|
708
790
|
if (state.assessment?.digest !== digest ||
|
|
709
|
-
state.assessment.result.outcome === 'unavailable') {
|
|
710
|
-
|
|
791
|
+
(state.assessment.result.outcome === 'unavailable' && !this.host.recovery)) {
|
|
792
|
+
let result;
|
|
793
|
+
const started = performance.now(), deadline = AbortSignal.timeout(1500);
|
|
794
|
+
const signal = AbortSignal.any([state.input.signal, deadline]);
|
|
795
|
+
try {
|
|
796
|
+
result = await abortable(this.host.assess({ ...state.input, signal }, context, decision), signal);
|
|
797
|
+
}
|
|
798
|
+
catch {
|
|
799
|
+
state.input.signal.throwIfAborted();
|
|
800
|
+
result = { semantic: 'unavailable', semanticInputDigest: canonicalContentHash([context, decision]),
|
|
801
|
+
detector: { state: 'unavailable', reason: deadline.aborted ? 'timeout' : 'process_failed', elapsedMs: Math.ceil(performance.now() - started) }, outcome: 'unavailable' };
|
|
802
|
+
}
|
|
711
803
|
this.assertCurrent(state);
|
|
712
804
|
if (!result) {
|
|
713
805
|
await this.diagnose(state, { kind: 'assessment_disabled' });
|
|
@@ -717,6 +809,8 @@ export class OnDemandIntake {
|
|
|
717
809
|
throw new Error('Assessment source changed');
|
|
718
810
|
state.assessment = { digest, result };
|
|
719
811
|
await this.diagnose(state, { kind: 'assessment', assessment: result });
|
|
812
|
+
if (result.outcome !== 'consistent')
|
|
813
|
+
await this.deferAssessment(state, context, decision, digest);
|
|
720
814
|
}
|
|
721
815
|
return state.assessment.result.outcome === 'consistent';
|
|
722
816
|
}
|
|
@@ -1254,13 +1348,15 @@ export class OnDemandIntake {
|
|
|
1254
1348
|
// Project the immutable human batch captured before that waterfall.
|
|
1255
1349
|
if (state?.input.turn === input.turn && state.input.agent !== input.agent)
|
|
1256
1350
|
throw new Error('Answer projection native agent changed');
|
|
1257
|
-
|
|
1351
|
+
let projected = state?.input.turn === input.turn &&
|
|
1258
1352
|
!state.nativeUnowned &&
|
|
1259
1353
|
state.answerContextReady &&
|
|
1260
1354
|
!state.confirmationResume &&
|
|
1261
1355
|
this.host.answerContext
|
|
1262
|
-
? await this.host.answerContext.project(
|
|
1356
|
+
? await this.memoryCheck(state, input => this.host.answerContext.project(input, messages, this.ownerIdentity(state))).catch(async () => { state.input.signal.throwIfAborted(); await this.deferMemory(state); return filterRequestMemory(messages, new Map()); })
|
|
1263
1357
|
: messages;
|
|
1358
|
+
if (state?.memoryDeferred)
|
|
1359
|
+
projected = filterRequestMemory(projected, new Map());
|
|
1264
1360
|
return this.guidance(projected, state?.input.turn === input.turn ? state : undefined);
|
|
1265
1361
|
}
|
|
1266
1362
|
async beforeRequest(agent) {
|
|
@@ -1271,18 +1367,32 @@ export class OnDemandIntake {
|
|
|
1271
1367
|
state.input.agent === agent &&
|
|
1272
1368
|
state.status === 'answer' &&
|
|
1273
1369
|
this.pending(agent)) {
|
|
1274
|
-
await this.host.answerContext?.beforeRequest(
|
|
1370
|
+
await this.memoryCheck(state, input => this.host.answerContext?.beforeRequest(input, this.ownerIdentity(state)) ?? Promise.resolve()).catch(async () => { state.input.signal.throwIfAborted(); await this.deferMemory(state); });
|
|
1275
1371
|
}
|
|
1276
1372
|
}
|
|
1277
1373
|
async fence(agent, request) {
|
|
1278
1374
|
const state = agent.session && this.#turns.get(agent.session.id);
|
|
1375
|
+
const requireRebuild = () => {
|
|
1376
|
+
if (Array.isArray(request.messages) && filterRequestMemory(request.messages, new Map()).length !== request.messages.length)
|
|
1377
|
+
throw new MemorySnapshotStale();
|
|
1378
|
+
};
|
|
1379
|
+
// Native requests are immutable after assembly. Rebuild before dispatch;
|
|
1380
|
+
// never edit the provider request or let quarantined memory pass through.
|
|
1381
|
+
if (state?.input.agent === agent && state.memoryDeferred)
|
|
1382
|
+
requireRebuild();
|
|
1279
1383
|
if (state &&
|
|
1280
1384
|
!state.nativeUnowned &&
|
|
1281
1385
|
state.answerContextReady &&
|
|
1282
1386
|
state.input.agent === agent &&
|
|
1283
1387
|
state.status === 'answer' &&
|
|
1284
1388
|
this.pending(agent)) {
|
|
1285
|
-
await this.host.answerContext?.fence(
|
|
1389
|
+
await this.memoryCheck(state, input => this.host.answerContext?.fence(input, request, this.ownerIdentity(state)) ?? Promise.resolve()).catch(async (error) => {
|
|
1390
|
+
state.input.signal.throwIfAborted();
|
|
1391
|
+
if (error instanceof MemorySnapshotStale)
|
|
1392
|
+
throw error;
|
|
1393
|
+
await this.deferMemory(state);
|
|
1394
|
+
requireRebuild();
|
|
1395
|
+
});
|
|
1286
1396
|
}
|
|
1287
1397
|
}
|
|
1288
1398
|
guidance(messages, state) {
|
|
@@ -1315,6 +1425,7 @@ export class OnDemandIntake {
|
|
|
1315
1425
|
: '';
|
|
1316
1426
|
const text = ON_DEMAND_GUIDANCE +
|
|
1317
1427
|
intentText +
|
|
1428
|
+
(state?.memoryDeferred ? `\nOptional memory is quarantined and excluded from this request. Native permissions still apply. Deferred checks: ${JSON.stringify(this.host.recovery?.status(state.session.id) ?? [state.auxiliaryReceipt])}` : '') +
|
|
1318
1429
|
(context && !context.activeGoal && !context.activeTask
|
|
1319
1430
|
? `\n${NO_ACTIVE_GOAL_GUIDANCE}`
|
|
1320
1431
|
: '');
|
|
@@ -1362,6 +1473,7 @@ export class OnDemandIntake {
|
|
|
1362
1473
|
? { requestIntent: structuredClone(state.requestIntent) }
|
|
1363
1474
|
: {}),
|
|
1364
1475
|
memoryOwner: state.memoryOwner,
|
|
1476
|
+
...(state.auxiliaryReceipt ? { auxiliary: this.host.recovery?.status(sessionId) ?? [state.auxiliaryReceipt] } : {}),
|
|
1365
1477
|
});
|
|
1366
1478
|
}
|
|
1367
1479
|
/** Refresh only authority facts after a committed control operation; retain the exact human request. */
|
|
@@ -1526,6 +1638,8 @@ export class OnDemandIntake {
|
|
|
1526
1638
|
finish(session, turn) {
|
|
1527
1639
|
const state = this.#turns.get(session.id);
|
|
1528
1640
|
if (state?.input.agent.session === session && state.input.turn === turn) {
|
|
1641
|
+
const boundary = [...(state.input.agent.session.snapshotEvents?.() ?? [])].reverse().find(e => e.type === 'turn/end' && e.data?.turn === turn);
|
|
1642
|
+
state.recoveryAfterFinish = boundary?.data?.reason?.kind === 'completed';
|
|
1529
1643
|
state.status = 'closed';
|
|
1530
1644
|
state.controller.abort(new Error('Native turn ended'));
|
|
1531
1645
|
this.host.answerContext?.retire(state.input.agent);
|
|
@@ -1535,6 +1649,13 @@ export class OnDemandIntake {
|
|
|
1535
1649
|
if (!tools.get || !tools.guard || !tools.register)
|
|
1536
1650
|
throw new Error('On-demand intake requires native tool identity and monotonic guards');
|
|
1537
1651
|
this.#tools = tools;
|
|
1652
|
+
if (this.host.recovery)
|
|
1653
|
+
this.#disposers.push(context.on('agent/idle', (payload) => {
|
|
1654
|
+
const agent = 'agent' in payload ? payload.agent : payload;
|
|
1655
|
+
const state = agent.session && this.#turns.get(agent.session.id);
|
|
1656
|
+
if (state?.input.agent === agent && state.session === agent.session)
|
|
1657
|
+
void this.host.recovery.idle(agent.session.id);
|
|
1658
|
+
}, { global: true }));
|
|
1538
1659
|
// Preserve an already installed reader across replacement before capture.
|
|
1539
1660
|
// When absent, capture binds the validated agent's installed preset reader.
|
|
1540
1661
|
this.#startupSkillReader = tools.get('skill')?.execute;
|