kiokuko-dsh 0.2.0 → 0.2.2
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 +5 -2
- package/README.md +8 -2
- 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/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/agenticreplay-read-service.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-read-service.js +2 -1
- package/dist/dsh/agenticreplay-read-service.js.map +1 -1
- package/dist/dsh/agenticreplay-security.d.ts +2 -0
- package/dist/dsh/agenticreplay-security.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-security.js +67 -0
- package/dist/dsh/agenticreplay-security.js.map +1 -1
- package/dist/dsh/completion-verifiers.d.ts +26 -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 +49 -4
- package/dist/dsh/core/host.js.map +1 -1
- package/dist/dsh/core/index.d.ts +4 -4
- package/dist/dsh/core/tasks.d.ts.map +1 -1
- package/dist/dsh/core/tasks.js +7 -0
- 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 +149 -22
- 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 +20 -0
- package/dist/dsh/host-adapter/admission.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 +26 -13
- 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 +3 -3
- 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 +1 -0
- package/dist/dsh/lisp/coding-choice.d.ts.map +1 -1
- package/dist/dsh/lisp/coding-choice.js +17 -6
- 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 +8 -1
- package/dist/dsh/lisp/manager.d.ts.map +1 -1
- package/dist/dsh/lisp/manager.js +78 -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/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 +74 -20
- 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/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 +1 -1
- package/dist/dsh/modules/lisp.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 +6 -1
- package/dist/dsh/node-tap-summary.d.ts.map +1 -1
- package/dist/dsh/node-tap-summary.js +27 -2
- 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 +24 -12
- 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 +98 -0
- package/dist/dsh/owned-execution.d.ts.map +1 -0
- package/dist/dsh/owned-execution.js +523 -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.d.ts +1 -0
- package/dist/dsh/task-completion.d.ts.map +1 -1
- package/dist/dsh/task-completion.js +19 -19
- package/dist/dsh/task-completion.js.map +1 -1
- package/dist/enno-oduno/schemas.d.ts +9 -9
- package/dist/enno-oduno/store.d.ts.map +1 -1
- package/dist/enno-oduno/store.js +12 -0
- package/dist/enno-oduno/store.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/agenticreplay-recording.md +14 -0
- package/docs/code-intelligence.md +149 -0
- package/docs/dsh-auth-LICENSE.txt +22 -0
- package/docs/dsh-auth-provenance.md +25 -0
- package/docs/dsh-plugin.md +21 -0
- package/docs/kiokuko-models.md +66 -0
- package/docs/lisp.md +107 -56
- 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/package.json +46 -11
- package/skills/kiokuko-lisp/SKILL.md +49 -67
- package/skills/kiokuko-soul/SKILL.md +7 -26
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SqliteDatabase } from '../db/adapter.js';
|
|
2
|
+
import type { ReviewEvidence } from '../memory/review/contracts.js';
|
|
3
|
+
import type { ExecutionReceipt } from './owned-execution.js';
|
|
4
|
+
export declare function ownedRunEvidence(db: SqliteDatabase, runId: string, sessionId: string): ExecutionReceipt[];
|
|
5
|
+
/** Delivery is bounded; durable receipt rows are never discarded or shortened. */
|
|
6
|
+
export declare function boundedOwnedEvidence(receipts: ExecutionReceipt[], maxBytes?: number): {
|
|
7
|
+
items: ExecutionReceipt[];
|
|
8
|
+
omitted: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function ownedReviewEvidence(receipts: ExecutionReceipt[], events: readonly {
|
|
11
|
+
seq: number;
|
|
12
|
+
type: string;
|
|
13
|
+
data?: unknown;
|
|
14
|
+
}[]): ReviewEvidence[];
|
|
15
|
+
export declare function linkOwnedMemoryEvidence(db: SqliteDatabase, entry: {
|
|
16
|
+
id: string;
|
|
17
|
+
revision: number;
|
|
18
|
+
}, receipts: ExecutionReceipt[], ids: readonly string[], owner: {
|
|
19
|
+
runId: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
workspace: string;
|
|
22
|
+
}): void;
|
|
23
|
+
export declare function memoryExecutionEvidence(db: SqliteDatabase, entryId: string, revision: number): {
|
|
24
|
+
evidenceRef: string;
|
|
25
|
+
runId: string;
|
|
26
|
+
sessionId: string;
|
|
27
|
+
generation: string;
|
|
28
|
+
repositoryRoot: string;
|
|
29
|
+
cwd: string;
|
|
30
|
+
command: string | undefined;
|
|
31
|
+
targets: {
|
|
32
|
+
path: string;
|
|
33
|
+
before: string | null;
|
|
34
|
+
after: string | null;
|
|
35
|
+
}[];
|
|
36
|
+
checks: {
|
|
37
|
+
state: string;
|
|
38
|
+
sourcePaths: string[];
|
|
39
|
+
sourceDigest: string;
|
|
40
|
+
postSourceDigest?: string;
|
|
41
|
+
outcome: string;
|
|
42
|
+
assertion: string;
|
|
43
|
+
}[];
|
|
44
|
+
state: "unknown" | "completed" | "started";
|
|
45
|
+
verification: "unknown" | "passed" | "failed" | undefined;
|
|
46
|
+
currentTaskVerification: boolean;
|
|
47
|
+
semanticLessonVerified: boolean;
|
|
48
|
+
}[];
|
|
49
|
+
//# sourceMappingURL=owned-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owned-evidence.d.ts","sourceRoot":"","sources":["../../src/dsh/owned-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,wBAAgB,gBAAgB,CAAC,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAE,gBAAgB,EAAE,CAOnG;AACD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAC,gBAAgB,EAAE,EAAC,QAAQ,SAAQ;;;EAQhF;AACD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAC,gBAAgB,EAAE,EAAC,MAAM,EAAC,SAAS;IAAC,GAAG,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,CAAC,EAAC,OAAO,CAAA;CAAC,EAAE,GAAE,cAAc,EAAE,CAQzI;AACD,wBAAgB,uBAAuB,CAAC,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAA;CAAC,EAAC,QAAQ,EAAC,gBAAgB,EAAE,EAAC,GAAG,EAAC,SAAS,MAAM,EAAE,EAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAA;CAAC,GAAE,IAAI,CAUzM;AACD,wBAAgB,uBAAuB,CAAC,EAAE,EAAC,cAAc,EAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;IAevF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { applicationSourceDigest } from '../memory/application.js';
|
|
2
|
+
import { canonicalContentHash } from '../serialization/validate.js';
|
|
3
|
+
export function ownedRunEvidence(db, runId, sessionId) {
|
|
4
|
+
if (!db.prepare("SELECT 1 FROM sqlite_master WHERE name='dsh_owned_operations'").get())
|
|
5
|
+
return [];
|
|
6
|
+
return db.prepare('SELECT operation_id,generation,receipt_json FROM dsh_owned_operations WHERE run_id=? AND session_id=? ORDER BY rowid DESC LIMIT 256')
|
|
7
|
+
.all(runId, sessionId).reverse().flatMap(row => {
|
|
8
|
+
const receipt = JSON.parse(row.receipt_json);
|
|
9
|
+
return receipt.runId === runId && receipt.sessionId === sessionId && receipt.operationId === row.operation_id && receipt.generation === row.generation ? [receipt] : [];
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
/** Delivery is bounded; durable receipt rows are never discarded or shortened. */
|
|
13
|
+
export function boundedOwnedEvidence(receipts, maxBytes = 64 * 1024) {
|
|
14
|
+
const items = [];
|
|
15
|
+
let bytes = 0;
|
|
16
|
+
for (const receipt of [...receipts].reverse()) {
|
|
17
|
+
const size = Buffer.byteLength(JSON.stringify(receipt));
|
|
18
|
+
if (bytes + size > maxBytes)
|
|
19
|
+
continue;
|
|
20
|
+
bytes += size;
|
|
21
|
+
items.unshift(receipt);
|
|
22
|
+
}
|
|
23
|
+
return { items, omitted: receipts.length - items.length };
|
|
24
|
+
}
|
|
25
|
+
export function ownedReviewEvidence(receipts, events) {
|
|
26
|
+
return receipts.flatMap(receipt => {
|
|
27
|
+
const event = events.find(event => event.type === 'tool/result' && JSON.stringify(event.data).includes(receipt.operationId));
|
|
28
|
+
if (!event)
|
|
29
|
+
return [];
|
|
30
|
+
const text = JSON.stringify({ hostObserved: true, receipt, semanticLessonVerified: false });
|
|
31
|
+
const basis = { role: 'tool_observation', sourceSeqs: [event.seq], text };
|
|
32
|
+
return [{ id: receipt.evidenceRef, ...basis, normalizedSourceHash: canonicalContentHash(basis), eligibleForNewMemory: receipt.state === 'completed' }];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export function linkOwnedMemoryEvidence(db, entry, receipts, ids, owner) {
|
|
36
|
+
const revision = db.prepare('SELECT 1 FROM entry_revisions WHERE entry_id=? AND revision=? AND workspace=?').get(entry.id, entry.revision, owner.workspace);
|
|
37
|
+
if (!revision)
|
|
38
|
+
throw new Error('Owned memory evidence entry scope mismatch');
|
|
39
|
+
for (const id of ids.filter(id => id.startsWith('owned:'))) {
|
|
40
|
+
const receipt = receipts.find(receipt => receipt.evidenceRef === id);
|
|
41
|
+
if (!receipt || receipt.runId !== owner.runId || receipt.sessionId !== owner.sessionId)
|
|
42
|
+
throw new Error('Owned memory evidence is missing or belongs to another run');
|
|
43
|
+
const observed = db.prepare('SELECT receipt_json FROM dsh_owned_operations WHERE operation_id=? AND run_id=? AND session_id=?').get(receipt.operationId, owner.runId, owner.sessionId);
|
|
44
|
+
if (!observed || canonicalContentHash(JSON.parse(observed.receipt_json)) !== canonicalContentHash(receipt))
|
|
45
|
+
throw new Error('Owned memory evidence differs from stored host observation');
|
|
46
|
+
db.prepare('INSERT OR IGNORE INTO memory_execution_links VALUES(?,?,?)').run(entry.id, entry.revision, receipt.operationId);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function memoryExecutionEvidence(db, entryId, revision) {
|
|
50
|
+
if (!db.prepare("SELECT 1 FROM sqlite_master WHERE name='memory_execution_links'").get())
|
|
51
|
+
return [];
|
|
52
|
+
return db.prepare(`SELECT o.receipt_json FROM memory_execution_links l JOIN dsh_owned_operations o ON o.operation_id=l.operation_id
|
|
53
|
+
WHERE l.entry_id=? AND l.revision=?`).all(entryId, revision).map(row => {
|
|
54
|
+
const receipt = JSON.parse(row.receipt_json);
|
|
55
|
+
const checks = (receipt.checks ?? []).map(check => {
|
|
56
|
+
const observed = db.prepare('SELECT outcome FROM dsh_completion_executions WHERE run_id=? AND call_id=?').get(receipt.runId, receipt.operationId);
|
|
57
|
+
let current;
|
|
58
|
+
try {
|
|
59
|
+
current = applicationSourceDigest(receipt.repositoryRoot, check.sourcePaths);
|
|
60
|
+
}
|
|
61
|
+
catch { /* missing sources remain unknown */ }
|
|
62
|
+
return { ...check, state: current === undefined ? 'unknown' : current !== check.sourceDigest ? 'stale' : observed?.outcome ?? check.outcome };
|
|
63
|
+
});
|
|
64
|
+
return { evidenceRef: receipt.evidenceRef, runId: receipt.runId, sessionId: receipt.sessionId, generation: receipt.generation,
|
|
65
|
+
repositoryRoot: receipt.repositoryRoot, cwd: receipt.cwd, command: receipt.command, targets: receipt.targets, checks,
|
|
66
|
+
state: receipt.state, verification: receipt.verification, currentTaskVerification: false, semanticLessonVerified: false };
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=owned-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owned-evidence.js","sourceRoot":"","sources":["../../src/dsh/owned-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import type { DshCoreRuntime } from './core-runtime.js';
|
|
3
|
+
import { type MemoryApplicationIdentity } from '../memory/application.js';
|
|
4
|
+
import { type TapSummary } from './node-tap-summary.js';
|
|
5
|
+
export interface ExecutionIdentity extends MemoryApplicationIdentity {
|
|
6
|
+
generation: string;
|
|
7
|
+
agent: any;
|
|
8
|
+
}
|
|
9
|
+
export interface ExecutionReceipt {
|
|
10
|
+
version: 1;
|
|
11
|
+
operationId: string;
|
|
12
|
+
runId: string;
|
|
13
|
+
sessionId: string;
|
|
14
|
+
generation: string;
|
|
15
|
+
kind: string;
|
|
16
|
+
repositoryRoot: string;
|
|
17
|
+
cwd: string;
|
|
18
|
+
command?: string;
|
|
19
|
+
commandDigest?: string;
|
|
20
|
+
targets: {
|
|
21
|
+
path: string;
|
|
22
|
+
before: string | null;
|
|
23
|
+
after: string | null;
|
|
24
|
+
}[];
|
|
25
|
+
state: 'started' | 'completed' | 'unknown';
|
|
26
|
+
exitCode?: number | null;
|
|
27
|
+
signal?: string | null;
|
|
28
|
+
processStarted?: boolean;
|
|
29
|
+
cancelled?: boolean;
|
|
30
|
+
timedOut?: boolean;
|
|
31
|
+
outputComplete?: boolean;
|
|
32
|
+
observedBytes?: number;
|
|
33
|
+
displayedBytes?: number;
|
|
34
|
+
outputDigest?: string;
|
|
35
|
+
summary?: TapSummary | undefined;
|
|
36
|
+
verification?: 'passed' | 'failed' | 'unknown';
|
|
37
|
+
evidenceRef: string;
|
|
38
|
+
persistence: 'saved' | 'pending';
|
|
39
|
+
persistenceError?: string;
|
|
40
|
+
error?: string;
|
|
41
|
+
checks?: {
|
|
42
|
+
sourcePaths: string[];
|
|
43
|
+
sourceDigest: string;
|
|
44
|
+
postSourceDigest?: string;
|
|
45
|
+
outcome: string;
|
|
46
|
+
assertion: string;
|
|
47
|
+
}[];
|
|
48
|
+
}
|
|
49
|
+
interface NativeExecution {
|
|
50
|
+
agent?: any;
|
|
51
|
+
callId: string;
|
|
52
|
+
signal: AbortSignal;
|
|
53
|
+
name: string;
|
|
54
|
+
arguments?: any;
|
|
55
|
+
}
|
|
56
|
+
export interface OwnedHost {
|
|
57
|
+
runtime: DshCoreRuntime;
|
|
58
|
+
resolve(execution: NativeExecution): ExecutionIdentity | undefined;
|
|
59
|
+
planActive?(agent: any): boolean;
|
|
60
|
+
confirm?(identity: ExecutionIdentity, detail: string, signal: AbortSignal): Promise<boolean>;
|
|
61
|
+
}
|
|
62
|
+
export declare const isOwnedExecutionCall: (execution: object) => boolean;
|
|
63
|
+
declare const resultInput: z.ZodObject<{
|
|
64
|
+
operationId: z.ZodString;
|
|
65
|
+
cancel: z.ZodDefault<z.ZodBoolean>;
|
|
66
|
+
}, z.core.$strict>;
|
|
67
|
+
/** One owner for effects and observed evidence. Saved-result reads never execute an effect. */
|
|
68
|
+
export declare class OwnedExecutionService {
|
|
69
|
+
#private;
|
|
70
|
+
private readonly host;
|
|
71
|
+
constructor(host: OwnedHost);
|
|
72
|
+
private current;
|
|
73
|
+
private persist;
|
|
74
|
+
private journal;
|
|
75
|
+
private snapshot;
|
|
76
|
+
unknownEffects(execution: NativeExecution): Promise<void>;
|
|
77
|
+
private evidence;
|
|
78
|
+
private approve;
|
|
79
|
+
private reply;
|
|
80
|
+
execute(name: string, raw: unknown, execution: NativeExecution): Promise<unknown>;
|
|
81
|
+
private file;
|
|
82
|
+
private disposable;
|
|
83
|
+
private command;
|
|
84
|
+
result(identity: ExecutionIdentity, input: z.infer<typeof resultInput>): Promise<unknown>;
|
|
85
|
+
close(): Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
/** Normal user environment, process group cancellation, bounded complete output. */
|
|
88
|
+
export declare function runOwnedProcess(command: string, cwd: string, shell: 'bash' | 'zsh', signal: AbortSignal, timeoutMs: number, onStarted?: () => void): Promise<import("./execution-result.js").HostProcessResult>;
|
|
89
|
+
export declare function mountOwnedExecution(ctx: {
|
|
90
|
+
tools: {
|
|
91
|
+
register(tool: any): () => void;
|
|
92
|
+
get?(name: string, agent?: any): any;
|
|
93
|
+
presentAs?(mode: 'native'): () => void;
|
|
94
|
+
};
|
|
95
|
+
on?(name: string, listener: (...args: any[]) => unknown, options?: any): () => void;
|
|
96
|
+
}, host: OwnedHost): () => Promise<void>;
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=owned-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owned-execution.d.ts","sourceRoot":"","sources":["../../src/dsh/owned-execution.ts"],"names":[],"mappings":"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"}
|