open-multi-agent-kit 0.97.0 → 0.98.1
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/CHANGELOG.md +36 -1
- package/README.md +41 -9
- package/dist/cli/args.d.ts +2 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +13 -189
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/help.d.ts +3 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +194 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js +2 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/resource-paths.d.ts +4 -0
- package/dist/cli/resource-paths.d.ts.map +1 -0
- package/dist/cli/resource-paths.js +59 -0
- package/dist/cli/resource-paths.js.map +1 -0
- package/dist/commands/adaptorch-doctor-cli.d.ts +13 -0
- package/dist/commands/adaptorch-doctor-cli.d.ts.map +1 -0
- package/dist/commands/adaptorch-doctor-cli.js +115 -0
- package/dist/commands/adaptorch-doctor-cli.js.map +1 -0
- package/dist/commands/resource-doctor-cli.d.ts +4 -0
- package/dist/commands/resource-doctor-cli.d.ts.map +1 -1
- package/dist/commands/resource-doctor-cli.js +35 -5
- package/dist/commands/resource-doctor-cli.js.map +1 -1
- package/dist/core/adaptorch-bridge.d.ts +11 -13
- package/dist/core/adaptorch-bridge.d.ts.map +1 -1
- package/dist/core/adaptorch-bridge.js +11 -13
- package/dist/core/adaptorch-bridge.js.map +1 -1
- package/dist/core/agent-session-snapshot.d.ts +16 -0
- package/dist/core/agent-session-snapshot.d.ts.map +1 -0
- package/dist/core/agent-session-snapshot.js +111 -0
- package/dist/core/agent-session-snapshot.js.map +1 -0
- package/dist/core/agent-session.d.ts +5 -9
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +27 -219
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agent-tool-settings.d.ts +10 -0
- package/dist/core/agent-tool-settings.d.ts.map +1 -1
- package/dist/core/agent-tool-settings.js +10 -1
- package/dist/core/agent-tool-settings.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +7 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +25 -61
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts +1 -0
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js +1 -0
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/knowledge-triage-format.d.ts +9 -0
- package/dist/core/compaction/knowledge-triage-format.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage-format.js +71 -0
- package/dist/core/compaction/knowledge-triage-format.js.map +1 -0
- package/dist/core/compaction/knowledge-triage-types.d.ts +7 -0
- package/dist/core/compaction/knowledge-triage-types.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage-types.js +2 -0
- package/dist/core/compaction/knowledge-triage-types.js.map +1 -0
- package/dist/core/compaction/knowledge-triage.d.ts +29 -0
- package/dist/core/compaction/knowledge-triage.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage.js +189 -0
- package/dist/core/compaction/knowledge-triage.js.map +1 -0
- package/dist/core/compaction/transaction.d.ts.map +1 -1
- package/dist/core/compaction/transaction.js +1 -1
- package/dist/core/compaction/transaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +4 -0
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +37 -0
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/completion-sound-io.d.ts +14 -0
- package/dist/core/completion-sound-io.d.ts.map +1 -0
- package/dist/core/completion-sound-io.js +64 -0
- package/dist/core/completion-sound-io.js.map +1 -0
- package/dist/core/completion-sound.d.ts +4 -10
- package/dist/core/completion-sound.d.ts.map +1 -1
- package/dist/core/completion-sound.js +28 -58
- package/dist/core/completion-sound.js.map +1 -1
- package/dist/core/context-budget-relevance.d.ts +15 -2
- package/dist/core/context-budget-relevance.d.ts.map +1 -1
- package/dist/core/context-budget-relevance.js +21 -9
- package/dist/core/context-budget-relevance.js.map +1 -1
- package/dist/core/context-budget-system-prompt-items.d.ts +1 -1
- package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -1
- package/dist/core/context-budget-system-prompt-items.js.map +1 -1
- package/dist/core/context-budget-system-prompt.d.ts +1 -1
- package/dist/core/context-budget-system-prompt.d.ts.map +1 -1
- package/dist/core/context-budget-system-prompt.js.map +1 -1
- package/dist/core/context-file.d.ts +23 -0
- package/dist/core/context-file.d.ts.map +1 -0
- package/dist/core/context-file.js +17 -0
- package/dist/core/context-file.js.map +1 -0
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +6 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-prompt-policy.d.ts +1 -1
- package/dist/core/model-prompt-policy.d.ts.map +1 -1
- package/dist/core/model-prompt-policy.js.map +1 -1
- package/dist/core/prompt-settlement.d.ts +6 -3
- package/dist/core/prompt-settlement.d.ts.map +1 -1
- package/dist/core/prompt-settlement.js +10 -14
- package/dist/core/prompt-settlement.js.map +1 -1
- package/dist/core/reasoning-router-promotion.d.ts +41 -1
- package/dist/core/reasoning-router-promotion.d.ts.map +1 -1
- package/dist/core/reasoning-router-promotion.js +31 -2
- package/dist/core/reasoning-router-promotion.js.map +1 -1
- package/dist/core/reasoning-router-replay-stability.d.ts +65 -0
- package/dist/core/reasoning-router-replay-stability.d.ts.map +1 -0
- package/dist/core/reasoning-router-replay-stability.js +67 -0
- package/dist/core/reasoning-router-replay-stability.js.map +1 -0
- package/dist/core/reasoning-router-v4-weights.d.ts +6 -6
- package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -1
- package/dist/core/reasoning-router-v4-weights.js +3 -3
- package/dist/core/reasoning-router-v4-weights.js.map +1 -1
- package/dist/core/reasoning-router-v4.d.ts.map +1 -1
- package/dist/core/reasoning-router-v4.js +6 -6
- package/dist/core/reasoning-router-v4.js.map +1 -1
- package/dist/core/redaction.d.ts.map +1 -1
- package/dist/core/redaction.js +1 -1
- package/dist/core/redaction.js.map +1 -1
- package/dist/core/resource-admission.d.ts +2 -1
- package/dist/core/resource-admission.d.ts.map +1 -1
- package/dist/core/resource-admission.js +11 -0
- package/dist/core/resource-admission.js.map +1 -1
- package/dist/core/resource-governor-format.d.ts +1 -1
- package/dist/core/resource-governor-format.d.ts.map +1 -1
- package/dist/core/resource-governor-format.js.map +1 -1
- package/dist/core/resource-governor-settings.d.ts +6 -12
- package/dist/core/resource-governor-settings.d.ts.map +1 -1
- package/dist/core/resource-governor-settings.js.map +1 -1
- package/dist/core/resource-governor-types.d.ts +24 -0
- package/dist/core/resource-governor-types.d.ts.map +1 -0
- package/dist/core/resource-governor-types.js +15 -0
- package/dist/core/resource-governor-types.js.map +1 -0
- package/dist/core/resource-loader.d.ts +1 -7
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/resource-observation-journal.d.ts +2 -1
- package/dist/core/resource-observation-journal.d.ts.map +1 -1
- package/dist/core/resource-observation-journal.js +4 -3
- package/dist/core/resource-observation-journal.js.map +1 -1
- package/dist/core/resource-observation-report-reader.d.ts +7 -0
- package/dist/core/resource-observation-report-reader.d.ts.map +1 -0
- package/dist/core/resource-observation-report-reader.js +157 -0
- package/dist/core/resource-observation-report-reader.js.map +1 -0
- package/dist/core/resource-observation-report.d.ts +24 -0
- package/dist/core/resource-observation-report.d.ts.map +1 -0
- package/dist/core/resource-observation-report.js +101 -0
- package/dist/core/resource-observation-report.js.map +1 -0
- package/dist/core/router-feedback-collector.d.ts +1 -1
- package/dist/core/router-feedback-collector.d.ts.map +1 -1
- package/dist/core/router-feedback-collector.js.map +1 -1
- package/dist/core/session-failure-cause.d.ts +33 -0
- package/dist/core/session-failure-cause.d.ts.map +1 -0
- package/dist/core/session-failure-cause.js +141 -0
- package/dist/core/session-failure-cause.js.map +1 -0
- package/dist/core/session-system-prompt.d.ts +1 -1
- package/dist/core/session-system-prompt.d.ts.map +1 -1
- package/dist/core/session-system-prompt.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +7 -7
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/workload-classifier.d.ts +2 -10
- package/dist/core/workload-classifier.d.ts.map +1 -1
- package/dist/core/workload-classifier.js +17 -0
- package/dist/core/workload-classifier.js.map +1 -1
- package/dist/core/workload-family-matcher.d.ts +1 -1
- package/dist/core/workload-family-matcher.d.ts.map +1 -1
- package/dist/core/workload-family-matcher.js.map +1 -1
- package/dist/core/workload-shard-execution-types.d.ts +40 -0
- package/dist/core/workload-shard-execution-types.d.ts.map +1 -0
- package/dist/core/workload-shard-execution-types.js +14 -0
- package/dist/core/workload-shard-execution-types.js.map +1 -0
- package/dist/core/workload-shard-executor.d.ts +3 -27
- package/dist/core/workload-shard-executor.d.ts.map +1 -1
- package/dist/core/workload-shard-executor.js.map +1 -1
- package/dist/core/workload-shard-runner.d.ts +1 -1
- package/dist/core/workload-shard-runner.d.ts.map +1 -1
- package/dist/core/workload-shard-runner.js.map +1 -1
- package/dist/core/workload-types.d.ts +24 -0
- package/dist/core/workload-types.d.ts.map +1 -0
- package/dist/core/workload-types.js +15 -0
- package/dist/core/workload-types.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +27 -47
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/theme/omk-control-panel.json +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +42 -33
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +14 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/docs/adaptorch-preview-spec.md +20 -18
- package/docs/adaptorch-preview.md +9 -9
- package/docs/compaction.md +24 -3
- package/docs/correctness-wall.md +10 -10
- package/docs/docs.json +12 -0
- package/docs/environment-variables.md +9 -2
- package/docs/index.md +3 -0
- package/docs/runtime-algorithms.md +359 -0
- package/docs/sdk.md +2 -2
- package/docs/settings.md +11 -10
- package/docs/usage.md +18 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +18 -18
- package/package.json +6 -6
- package/dist/core/context-budget-governor.d.ts +0 -67
- package/dist/core/context-budget-governor.d.ts.map +0 -1
- package/dist/core/context-budget-governor.js +0 -224
- package/dist/core/context-budget-governor.js.map +0 -1
- package/dist/core/lean-ctx.d.ts +0 -99
- package/dist/core/lean-ctx.d.ts.map +0 -1
- package/dist/core/lean-ctx.js +0 -225
- package/dist/core/lean-ctx.js.map +0 -1
- package/dist/core/read-anchors.d.ts +0 -110
- package/dist/core/read-anchors.d.ts.map +0 -1
- package/dist/core/read-anchors.js +0 -193
- package/dist/core/read-anchors.js.map +0 -1
- package/dist/core/recovery-checkpoint.d.ts +0 -196
- package/dist/core/recovery-checkpoint.d.ts.map +0 -1
- package/dist/core/recovery-checkpoint.js +0 -382
- package/dist/core/recovery-checkpoint.js.map +0 -1
- package/dist/core/sandbox-policy-v2.d.ts +0 -49
- package/dist/core/sandbox-policy-v2.d.ts.map +0 -1
- package/dist/core/sandbox-policy-v2.js +0 -368
- package/dist/core/sandbox-policy-v2.js.map +0 -1
- package/dist/guardrails/audit-logger.d.ts +0 -4
- package/dist/guardrails/audit-logger.d.ts.map +0 -1
- package/dist/guardrails/audit-logger.js +0 -28
- package/dist/guardrails/audit-logger.js.map +0 -1
- package/dist/guardrails/freedomd-adapter.d.ts +0 -16
- package/dist/guardrails/freedomd-adapter.d.ts.map +0 -1
- package/dist/guardrails/freedomd-adapter.js +0 -87
- package/dist/guardrails/freedomd-adapter.js.map +0 -1
- package/dist/orchestration/lane-grant-auditor.d.ts +0 -4
- package/dist/orchestration/lane-grant-auditor.d.ts.map +0 -1
- package/dist/orchestration/lane-grant-auditor.js +0 -87
- package/dist/orchestration/lane-grant-auditor.js.map +0 -1
- package/dist/types/guardrails.d.ts +0 -61
- package/dist/types/guardrails.d.ts.map +0 -1
- package/dist/types/guardrails.js +0 -9
- package/dist/types/guardrails.js.map +0 -1
- package/dist/types/lane-grant.d.ts +0 -58
- package/dist/types/lane-grant.d.ts.map +0 -1
- package/dist/types/lane-grant.js +0 -9
- package/dist/types/lane-grant.js.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finalized-message snapshot contract.
|
|
3
|
+
*
|
|
4
|
+
* `SessionManager` persists replaced messages as JSON, so a replacement must be
|
|
5
|
+
* a plain value that survives a JSON round-trip and cannot mutate afterwards.
|
|
6
|
+
* Rather than letting a `Date`, a class instance, or a getter be silently
|
|
7
|
+
* flattened at write time, this module rejects it at replacement time and
|
|
8
|
+
* returns a deep-frozen deep clone.
|
|
9
|
+
*/
|
|
10
|
+
function snapshotContractError(reason) {
|
|
11
|
+
return new Error(`Finalized message replacement must be a plain serializable snapshot: ${reason}`);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Clone a finalized message replacement into the JSON-compatible snapshot
|
|
15
|
+
* persisted by SessionManager. Undefined remains allowed as ordinary optional
|
|
16
|
+
* message data: JSON omits object properties with undefined values and writes
|
|
17
|
+
* undefined array elements as null.
|
|
18
|
+
*/
|
|
19
|
+
function clonePlainSnapshot(value, ancestors = new WeakSet(), copies = new WeakMap()) {
|
|
20
|
+
if (value === null)
|
|
21
|
+
return value;
|
|
22
|
+
switch (typeof value) {
|
|
23
|
+
case "string":
|
|
24
|
+
case "boolean":
|
|
25
|
+
case "undefined":
|
|
26
|
+
return value;
|
|
27
|
+
case "number":
|
|
28
|
+
if (!Number.isFinite(value)) {
|
|
29
|
+
throw snapshotContractError("non-finite number values are not allowed");
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
case "bigint":
|
|
33
|
+
throw snapshotContractError("bigint values are not allowed");
|
|
34
|
+
case "function":
|
|
35
|
+
case "symbol":
|
|
36
|
+
throw snapshotContractError(`${typeof value} values are not allowed`);
|
|
37
|
+
case "object":
|
|
38
|
+
break;
|
|
39
|
+
default:
|
|
40
|
+
throw snapshotContractError(`${typeof value} values are not allowed`);
|
|
41
|
+
}
|
|
42
|
+
if (ancestors.has(value)) {
|
|
43
|
+
throw snapshotContractError("cyclic values are not allowed");
|
|
44
|
+
}
|
|
45
|
+
if (copies.has(value)) {
|
|
46
|
+
return copies.get(value);
|
|
47
|
+
}
|
|
48
|
+
ancestors.add(value);
|
|
49
|
+
try {
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
const copy = [];
|
|
52
|
+
copy.length = value.length;
|
|
53
|
+
copies.set(value, copy);
|
|
54
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
55
|
+
if (key === "length")
|
|
56
|
+
continue;
|
|
57
|
+
if (typeof key !== "string" || !/^(0|[1-9]\d*)$/.test(key) || Number(key) >= value.length) {
|
|
58
|
+
throw snapshotContractError("arrays may only contain indexed values");
|
|
59
|
+
}
|
|
60
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
61
|
+
if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) {
|
|
62
|
+
throw snapshotContractError("accessor or non-enumerable properties are not allowed");
|
|
63
|
+
}
|
|
64
|
+
copy[Number(key)] = clonePlainSnapshot(descriptor.value, ancestors, copies);
|
|
65
|
+
}
|
|
66
|
+
return copy;
|
|
67
|
+
}
|
|
68
|
+
const prototype = Object.getPrototypeOf(value);
|
|
69
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
70
|
+
throw snapshotContractError("non-plain objects are not allowed");
|
|
71
|
+
}
|
|
72
|
+
const copy = Object.create(prototype);
|
|
73
|
+
copies.set(value, copy);
|
|
74
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
75
|
+
if (typeof key !== "string") {
|
|
76
|
+
throw snapshotContractError("symbol-keyed properties are not allowed");
|
|
77
|
+
}
|
|
78
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
79
|
+
if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) {
|
|
80
|
+
throw snapshotContractError("accessor or non-enumerable properties are not allowed");
|
|
81
|
+
}
|
|
82
|
+
Object.defineProperty(copy, key, {
|
|
83
|
+
value: clonePlainSnapshot(descriptor.value, ancestors, copies),
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return copy;
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
ancestors.delete(value);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function freezeSnapshot(value, seen = new WeakSet()) {
|
|
96
|
+
if (value === null || typeof value !== "object" || seen.has(value))
|
|
97
|
+
return value;
|
|
98
|
+
seen.add(value);
|
|
99
|
+
for (const child of Object.values(value)) {
|
|
100
|
+
freezeSnapshot(child, seen);
|
|
101
|
+
}
|
|
102
|
+
return Object.freeze(value);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Deep-clone and deep-freeze a finalized message, throwing when the value does
|
|
106
|
+
* not satisfy the persistable-snapshot contract.
|
|
107
|
+
*/
|
|
108
|
+
export function createImmutableMessageSnapshot(message) {
|
|
109
|
+
return freezeSnapshot(clonePlainSnapshot(message));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=agent-session-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-snapshot.js","sourceRoot":"","sources":["../../src/core/agent-session-snapshot.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Finalized-message snapshot contract.\n *\n * `SessionManager` persists replaced messages as JSON, so a replacement must be\n * a plain value that survives a JSON round-trip and cannot mutate afterwards.\n * Rather than letting a `Date`, a class instance, or a getter be silently\n * flattened at write time, this module rejects it at replacement time and\n * returns a deep-frozen deep clone.\n */\n\nimport type { AgentMessage } from \"omk-agent-core\";\n\nfunction snapshotContractError(reason: string): Error {\n\treturn new Error(`Finalized message replacement must be a plain serializable snapshot: ${reason}`);\n}\n\n/**\n * Clone a finalized message replacement into the JSON-compatible snapshot\n * persisted by SessionManager. Undefined remains allowed as ordinary optional\n * message data: JSON omits object properties with undefined values and writes\n * undefined array elements as null.\n */\nfunction clonePlainSnapshot(\n\tvalue: unknown,\n\tancestors = new WeakSet<object>(),\n\tcopies = new WeakMap<object, unknown>(),\n): unknown {\n\tif (value === null) return value;\n\n\tswitch (typeof value) {\n\t\tcase \"string\":\n\t\tcase \"boolean\":\n\t\tcase \"undefined\":\n\t\t\treturn value;\n\t\tcase \"number\":\n\t\t\tif (!Number.isFinite(value)) {\n\t\t\t\tthrow snapshotContractError(\"non-finite number values are not allowed\");\n\t\t\t}\n\t\t\treturn value;\n\t\tcase \"bigint\":\n\t\t\tthrow snapshotContractError(\"bigint values are not allowed\");\n\t\tcase \"function\":\n\t\tcase \"symbol\":\n\t\t\tthrow snapshotContractError(`${typeof value} values are not allowed`);\n\t\tcase \"object\":\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow snapshotContractError(`${typeof value} values are not allowed`);\n\t}\n\n\tif (ancestors.has(value)) {\n\t\tthrow snapshotContractError(\"cyclic values are not allowed\");\n\t}\n\tif (copies.has(value)) {\n\t\treturn copies.get(value);\n\t}\n\tancestors.add(value);\n\n\ttry {\n\t\tif (Array.isArray(value)) {\n\t\t\tconst copy: unknown[] = [];\n\t\t\tcopy.length = value.length;\n\t\t\tcopies.set(value, copy);\n\t\t\tfor (const key of Reflect.ownKeys(value)) {\n\t\t\t\tif (key === \"length\") continue;\n\t\t\t\tif (typeof key !== \"string\" || !/^(0|[1-9]\\d*)$/.test(key) || Number(key) >= value.length) {\n\t\t\t\t\tthrow snapshotContractError(\"arrays may only contain indexed values\");\n\t\t\t\t}\n\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(value, key);\n\t\t\t\tif (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) {\n\t\t\t\t\tthrow snapshotContractError(\"accessor or non-enumerable properties are not allowed\");\n\t\t\t\t}\n\t\t\t\tcopy[Number(key)] = clonePlainSnapshot(descriptor.value, ancestors, copies);\n\t\t\t}\n\t\t\treturn copy;\n\t\t}\n\n\t\tconst prototype = Object.getPrototypeOf(value);\n\t\tif (prototype !== Object.prototype && prototype !== null) {\n\t\t\tthrow snapshotContractError(\"non-plain objects are not allowed\");\n\t\t}\n\n\t\tconst copy = Object.create(prototype) as Record<string, unknown>;\n\t\tcopies.set(value, copy);\n\t\tfor (const key of Reflect.ownKeys(value)) {\n\t\t\tif (typeof key !== \"string\") {\n\t\t\t\tthrow snapshotContractError(\"symbol-keyed properties are not allowed\");\n\t\t\t}\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(value, key);\n\t\t\tif (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) {\n\t\t\t\tthrow snapshotContractError(\"accessor or non-enumerable properties are not allowed\");\n\t\t\t}\n\t\t\tObject.defineProperty(copy, key, {\n\t\t\t\tvalue: clonePlainSnapshot(descriptor.value, ancestors, copies),\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t});\n\t\t}\n\t\treturn copy;\n\t} finally {\n\t\tancestors.delete(value);\n\t}\n}\n\nfunction freezeSnapshot<T>(value: T, seen = new WeakSet<object>()): T {\n\tif (value === null || typeof value !== \"object\" || seen.has(value)) return value;\n\tseen.add(value);\n\tfor (const child of Object.values(value as Record<string, unknown>)) {\n\t\tfreezeSnapshot(child, seen);\n\t}\n\treturn Object.freeze(value);\n}\n\n/**\n * Deep-clone and deep-freeze a finalized message, throwing when the value does\n * not satisfy the persistable-snapshot contract.\n */\nexport function createImmutableMessageSnapshot(message: AgentMessage): AgentMessage {\n\treturn freezeSnapshot(clonePlainSnapshot(message) as AgentMessage);\n}\n"]}
|
|
@@ -24,7 +24,7 @@ import { type LoadoutAccessPolicy } from "./loadout-access-policy.ts";
|
|
|
24
24
|
import { type McpServerConfig, type McpServerStatus } from "./mcp/manager.ts";
|
|
25
25
|
import type { CustomMessage } from "./messages.ts";
|
|
26
26
|
import type { ModelRegistry } from "./model-registry.ts";
|
|
27
|
-
import
|
|
27
|
+
import * as promptSettlement from "./prompt-settlement.ts";
|
|
28
28
|
import { type PromptTemplate } from "./prompt-templates.ts";
|
|
29
29
|
import { type ResourceAdmissionDecision } from "./resource-admission.ts";
|
|
30
30
|
import type { ResourceLoader } from "./resource-loader.ts";
|
|
@@ -60,7 +60,7 @@ export type AgentSessionEvent = Exclude<AgentEvent, {
|
|
|
60
60
|
type: "agent_end";
|
|
61
61
|
messages: AgentMessage[];
|
|
62
62
|
willRetry: boolean;
|
|
63
|
-
} | PromptSettledEvent | {
|
|
63
|
+
} | promptSettlement.PromptSettledEvent | {
|
|
64
64
|
type: "queue_update";
|
|
65
65
|
steering: readonly string[];
|
|
66
66
|
followUp: readonly string[];
|
|
@@ -356,7 +356,7 @@ export declare class AgentSession {
|
|
|
356
356
|
private _sessionRiskLevel;
|
|
357
357
|
private _workspaceMutationCount;
|
|
358
358
|
private _modelRegistry;
|
|
359
|
-
/** Lazy
|
|
359
|
+
/** Lazy provider: representations persist per workspace by default; plans stay session-memory-only. */
|
|
360
360
|
private _contextBudgetCacheProvider;
|
|
361
361
|
private _contextCacheInvalidationSnapshot;
|
|
362
362
|
private _toolRegistry;
|
|
@@ -397,12 +397,8 @@ export declare class AgentSession {
|
|
|
397
397
|
private _getVerifiedEvidenceExecutor;
|
|
398
398
|
/** Append one required durable audit record. Persistence failures propagate. */
|
|
399
399
|
private _appendRunJournalAudit;
|
|
400
|
-
private _terminationMessage;
|
|
401
|
-
private _providerFailureCause;
|
|
402
|
-
private _classifyPreflightCause;
|
|
403
400
|
private _classifyRunTermination;
|
|
404
401
|
private _publishTermination;
|
|
405
|
-
private _runtimeFailureCause;
|
|
406
402
|
private _publishRuntimeFailure;
|
|
407
403
|
private _handleRunLifecycleEvent;
|
|
408
404
|
/**
|
|
@@ -749,8 +745,8 @@ export declare class AgentSession {
|
|
|
749
745
|
/**
|
|
750
746
|
* Context-pressure band 0..3 from the projected token estimate over the
|
|
751
747
|
* model context window (reuses estimateProjectedContextTokens). 0..<0.5,
|
|
752
|
-
* 1..<0.75, 2..<0.9, 3..>=0.9.
|
|
753
|
-
*
|
|
748
|
+
* 1..<0.75, 2..<0.9, 3..>=0.9. The released default pressure coefficient
|
|
749
|
+
* is 1 and participates only after the classifier has prompt evidence.
|
|
754
750
|
*/
|
|
755
751
|
private _computePressureBucket;
|
|
756
752
|
/**
|