open-multi-agent-kit 0.97.0 → 0.98.0

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.
Files changed (261) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +41 -9
  3. package/dist/cli/args.d.ts +2 -3
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +13 -189
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/help.d.ts +3 -0
  8. package/dist/cli/help.d.ts.map +1 -0
  9. package/dist/cli/help.js +194 -0
  10. package/dist/cli/help.js.map +1 -0
  11. package/dist/cli/initial-message.d.ts.map +1 -1
  12. package/dist/cli/initial-message.js +2 -1
  13. package/dist/cli/initial-message.js.map +1 -1
  14. package/dist/cli/resource-paths.d.ts +4 -0
  15. package/dist/cli/resource-paths.d.ts.map +1 -0
  16. package/dist/cli/resource-paths.js +59 -0
  17. package/dist/cli/resource-paths.js.map +1 -0
  18. package/dist/commands/adaptorch-doctor-cli.d.ts +13 -0
  19. package/dist/commands/adaptorch-doctor-cli.d.ts.map +1 -0
  20. package/dist/commands/adaptorch-doctor-cli.js +115 -0
  21. package/dist/commands/adaptorch-doctor-cli.js.map +1 -0
  22. package/dist/commands/resource-doctor-cli.d.ts +4 -0
  23. package/dist/commands/resource-doctor-cli.d.ts.map +1 -1
  24. package/dist/commands/resource-doctor-cli.js +35 -5
  25. package/dist/commands/resource-doctor-cli.js.map +1 -1
  26. package/dist/core/adaptorch-bridge.d.ts +11 -13
  27. package/dist/core/adaptorch-bridge.d.ts.map +1 -1
  28. package/dist/core/adaptorch-bridge.js +11 -13
  29. package/dist/core/adaptorch-bridge.js.map +1 -1
  30. package/dist/core/agent-session-snapshot.d.ts +16 -0
  31. package/dist/core/agent-session-snapshot.d.ts.map +1 -0
  32. package/dist/core/agent-session-snapshot.js +111 -0
  33. package/dist/core/agent-session-snapshot.js.map +1 -0
  34. package/dist/core/agent-session.d.ts +5 -9
  35. package/dist/core/agent-session.d.ts.map +1 -1
  36. package/dist/core/agent-session.js +27 -219
  37. package/dist/core/agent-session.js.map +1 -1
  38. package/dist/core/agent-tool-settings.d.ts +10 -0
  39. package/dist/core/agent-tool-settings.d.ts.map +1 -1
  40. package/dist/core/agent-tool-settings.js +10 -1
  41. package/dist/core/agent-tool-settings.js.map +1 -1
  42. package/dist/core/compaction/compaction.d.ts +7 -0
  43. package/dist/core/compaction/compaction.d.ts.map +1 -1
  44. package/dist/core/compaction/compaction.js +25 -61
  45. package/dist/core/compaction/compaction.js.map +1 -1
  46. package/dist/core/compaction/index.d.ts +1 -0
  47. package/dist/core/compaction/index.d.ts.map +1 -1
  48. package/dist/core/compaction/index.js +1 -0
  49. package/dist/core/compaction/index.js.map +1 -1
  50. package/dist/core/compaction/knowledge-triage-format.d.ts +9 -0
  51. package/dist/core/compaction/knowledge-triage-format.d.ts.map +1 -0
  52. package/dist/core/compaction/knowledge-triage-format.js +71 -0
  53. package/dist/core/compaction/knowledge-triage-format.js.map +1 -0
  54. package/dist/core/compaction/knowledge-triage-types.d.ts +7 -0
  55. package/dist/core/compaction/knowledge-triage-types.d.ts.map +1 -0
  56. package/dist/core/compaction/knowledge-triage-types.js +2 -0
  57. package/dist/core/compaction/knowledge-triage-types.js.map +1 -0
  58. package/dist/core/compaction/knowledge-triage.d.ts +29 -0
  59. package/dist/core/compaction/knowledge-triage.d.ts.map +1 -0
  60. package/dist/core/compaction/knowledge-triage.js +189 -0
  61. package/dist/core/compaction/knowledge-triage.js.map +1 -0
  62. package/dist/core/compaction/transaction.d.ts.map +1 -1
  63. package/dist/core/compaction/transaction.js +1 -1
  64. package/dist/core/compaction/transaction.js.map +1 -1
  65. package/dist/core/compaction/utils.d.ts +4 -0
  66. package/dist/core/compaction/utils.d.ts.map +1 -1
  67. package/dist/core/compaction/utils.js +37 -0
  68. package/dist/core/compaction/utils.js.map +1 -1
  69. package/dist/core/completion-sound-io.d.ts +14 -0
  70. package/dist/core/completion-sound-io.d.ts.map +1 -0
  71. package/dist/core/completion-sound-io.js +64 -0
  72. package/dist/core/completion-sound-io.js.map +1 -0
  73. package/dist/core/completion-sound.d.ts +4 -10
  74. package/dist/core/completion-sound.d.ts.map +1 -1
  75. package/dist/core/completion-sound.js +28 -58
  76. package/dist/core/completion-sound.js.map +1 -1
  77. package/dist/core/context-budget-relevance.d.ts +15 -2
  78. package/dist/core/context-budget-relevance.d.ts.map +1 -1
  79. package/dist/core/context-budget-relevance.js +21 -9
  80. package/dist/core/context-budget-relevance.js.map +1 -1
  81. package/dist/core/context-budget-system-prompt-items.d.ts +1 -1
  82. package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -1
  83. package/dist/core/context-budget-system-prompt-items.js.map +1 -1
  84. package/dist/core/context-budget-system-prompt.d.ts +1 -1
  85. package/dist/core/context-budget-system-prompt.d.ts.map +1 -1
  86. package/dist/core/context-budget-system-prompt.js.map +1 -1
  87. package/dist/core/context-file.d.ts +23 -0
  88. package/dist/core/context-file.d.ts.map +1 -0
  89. package/dist/core/context-file.js +17 -0
  90. package/dist/core/context-file.js.map +1 -0
  91. package/dist/core/keybindings.d.ts +1 -1
  92. package/dist/core/keybindings.d.ts.map +1 -1
  93. package/dist/core/keybindings.js +6 -1
  94. package/dist/core/keybindings.js.map +1 -1
  95. package/dist/core/model-prompt-policy.d.ts +1 -1
  96. package/dist/core/model-prompt-policy.d.ts.map +1 -1
  97. package/dist/core/model-prompt-policy.js.map +1 -1
  98. package/dist/core/prompt-settlement.d.ts +6 -3
  99. package/dist/core/prompt-settlement.d.ts.map +1 -1
  100. package/dist/core/prompt-settlement.js +10 -14
  101. package/dist/core/prompt-settlement.js.map +1 -1
  102. package/dist/core/reasoning-router-promotion.d.ts +41 -1
  103. package/dist/core/reasoning-router-promotion.d.ts.map +1 -1
  104. package/dist/core/reasoning-router-promotion.js +31 -2
  105. package/dist/core/reasoning-router-promotion.js.map +1 -1
  106. package/dist/core/reasoning-router-replay-stability.d.ts +65 -0
  107. package/dist/core/reasoning-router-replay-stability.d.ts.map +1 -0
  108. package/dist/core/reasoning-router-replay-stability.js +67 -0
  109. package/dist/core/reasoning-router-replay-stability.js.map +1 -0
  110. package/dist/core/reasoning-router-v4-weights.d.ts +6 -6
  111. package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -1
  112. package/dist/core/reasoning-router-v4-weights.js +3 -3
  113. package/dist/core/reasoning-router-v4-weights.js.map +1 -1
  114. package/dist/core/reasoning-router-v4.d.ts.map +1 -1
  115. package/dist/core/reasoning-router-v4.js +6 -6
  116. package/dist/core/reasoning-router-v4.js.map +1 -1
  117. package/dist/core/redaction.d.ts.map +1 -1
  118. package/dist/core/redaction.js +1 -1
  119. package/dist/core/redaction.js.map +1 -1
  120. package/dist/core/resource-admission.d.ts +2 -1
  121. package/dist/core/resource-admission.d.ts.map +1 -1
  122. package/dist/core/resource-admission.js +11 -0
  123. package/dist/core/resource-admission.js.map +1 -1
  124. package/dist/core/resource-governor-format.d.ts +1 -1
  125. package/dist/core/resource-governor-format.d.ts.map +1 -1
  126. package/dist/core/resource-governor-format.js.map +1 -1
  127. package/dist/core/resource-governor-settings.d.ts +6 -12
  128. package/dist/core/resource-governor-settings.d.ts.map +1 -1
  129. package/dist/core/resource-governor-settings.js.map +1 -1
  130. package/dist/core/resource-governor-types.d.ts +24 -0
  131. package/dist/core/resource-governor-types.d.ts.map +1 -0
  132. package/dist/core/resource-governor-types.js +15 -0
  133. package/dist/core/resource-governor-types.js.map +1 -0
  134. package/dist/core/resource-loader.d.ts +1 -7
  135. package/dist/core/resource-loader.d.ts.map +1 -1
  136. package/dist/core/resource-loader.js.map +1 -1
  137. package/dist/core/resource-observation-journal.d.ts +2 -1
  138. package/dist/core/resource-observation-journal.d.ts.map +1 -1
  139. package/dist/core/resource-observation-journal.js +4 -3
  140. package/dist/core/resource-observation-journal.js.map +1 -1
  141. package/dist/core/resource-observation-report-reader.d.ts +7 -0
  142. package/dist/core/resource-observation-report-reader.d.ts.map +1 -0
  143. package/dist/core/resource-observation-report-reader.js +157 -0
  144. package/dist/core/resource-observation-report-reader.js.map +1 -0
  145. package/dist/core/resource-observation-report.d.ts +24 -0
  146. package/dist/core/resource-observation-report.d.ts.map +1 -0
  147. package/dist/core/resource-observation-report.js +101 -0
  148. package/dist/core/resource-observation-report.js.map +1 -0
  149. package/dist/core/router-feedback-collector.d.ts +1 -1
  150. package/dist/core/router-feedback-collector.d.ts.map +1 -1
  151. package/dist/core/router-feedback-collector.js.map +1 -1
  152. package/dist/core/session-failure-cause.d.ts +33 -0
  153. package/dist/core/session-failure-cause.d.ts.map +1 -0
  154. package/dist/core/session-failure-cause.js +141 -0
  155. package/dist/core/session-failure-cause.js.map +1 -0
  156. package/dist/core/session-system-prompt.d.ts +1 -1
  157. package/dist/core/session-system-prompt.d.ts.map +1 -1
  158. package/dist/core/session-system-prompt.js.map +1 -1
  159. package/dist/core/settings-manager.d.ts +1 -1
  160. package/dist/core/settings-manager.d.ts.map +1 -1
  161. package/dist/core/settings-manager.js.map +1 -1
  162. package/dist/core/system-prompt.d.ts +1 -1
  163. package/dist/core/system-prompt.d.ts.map +1 -1
  164. package/dist/core/system-prompt.js.map +1 -1
  165. package/dist/core/tools/bash.d.ts.map +1 -1
  166. package/dist/core/tools/bash.js +7 -7
  167. package/dist/core/tools/bash.js.map +1 -1
  168. package/dist/core/workload-classifier.d.ts +2 -10
  169. package/dist/core/workload-classifier.d.ts.map +1 -1
  170. package/dist/core/workload-classifier.js +17 -0
  171. package/dist/core/workload-classifier.js.map +1 -1
  172. package/dist/core/workload-family-matcher.d.ts +1 -1
  173. package/dist/core/workload-family-matcher.d.ts.map +1 -1
  174. package/dist/core/workload-family-matcher.js.map +1 -1
  175. package/dist/core/workload-shard-execution-types.d.ts +40 -0
  176. package/dist/core/workload-shard-execution-types.d.ts.map +1 -0
  177. package/dist/core/workload-shard-execution-types.js +14 -0
  178. package/dist/core/workload-shard-execution-types.js.map +1 -0
  179. package/dist/core/workload-shard-executor.d.ts +3 -27
  180. package/dist/core/workload-shard-executor.d.ts.map +1 -1
  181. package/dist/core/workload-shard-executor.js.map +1 -1
  182. package/dist/core/workload-shard-runner.d.ts +1 -1
  183. package/dist/core/workload-shard-runner.d.ts.map +1 -1
  184. package/dist/core/workload-shard-runner.js.map +1 -1
  185. package/dist/core/workload-types.d.ts +24 -0
  186. package/dist/core/workload-types.d.ts.map +1 -0
  187. package/dist/core/workload-types.js +15 -0
  188. package/dist/core/workload-types.js.map +1 -0
  189. package/dist/main.d.ts +2 -0
  190. package/dist/main.d.ts.map +1 -1
  191. package/dist/main.js +27 -47
  192. package/dist/main.js.map +1 -1
  193. package/dist/modes/interactive/theme/omk-control-panel.json +1 -1
  194. package/dist/utils/clipboard-image.d.ts.map +1 -1
  195. package/dist/utils/clipboard-image.js +42 -33
  196. package/dist/utils/clipboard-image.js.map +1 -1
  197. package/dist/utils/clipboard.d.ts.map +1 -1
  198. package/dist/utils/clipboard.js +14 -2
  199. package/dist/utils/clipboard.js.map +1 -1
  200. package/docs/adaptorch-preview-spec.md +20 -18
  201. package/docs/adaptorch-preview.md +9 -9
  202. package/docs/compaction.md +24 -3
  203. package/docs/correctness-wall.md +10 -10
  204. package/docs/docs.json +12 -0
  205. package/docs/environment-variables.md +9 -2
  206. package/docs/index.md +3 -0
  207. package/docs/runtime-algorithms.md +359 -0
  208. package/docs/sdk.md +2 -2
  209. package/docs/settings.md +11 -10
  210. package/docs/usage.md +18 -2
  211. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  212. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  213. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  214. package/examples/extensions/gondolin/package-lock.json +2 -2
  215. package/examples/extensions/gondolin/package.json +1 -1
  216. package/examples/extensions/sandbox/package-lock.json +2 -2
  217. package/examples/extensions/sandbox/package.json +1 -1
  218. package/examples/extensions/with-deps/package-lock.json +2 -2
  219. package/examples/extensions/with-deps/package.json +1 -1
  220. package/npm-shrinkwrap.json +18 -18
  221. package/package.json +6 -6
  222. package/dist/core/context-budget-governor.d.ts +0 -67
  223. package/dist/core/context-budget-governor.d.ts.map +0 -1
  224. package/dist/core/context-budget-governor.js +0 -224
  225. package/dist/core/context-budget-governor.js.map +0 -1
  226. package/dist/core/lean-ctx.d.ts +0 -99
  227. package/dist/core/lean-ctx.d.ts.map +0 -1
  228. package/dist/core/lean-ctx.js +0 -225
  229. package/dist/core/lean-ctx.js.map +0 -1
  230. package/dist/core/read-anchors.d.ts +0 -110
  231. package/dist/core/read-anchors.d.ts.map +0 -1
  232. package/dist/core/read-anchors.js +0 -193
  233. package/dist/core/read-anchors.js.map +0 -1
  234. package/dist/core/recovery-checkpoint.d.ts +0 -196
  235. package/dist/core/recovery-checkpoint.d.ts.map +0 -1
  236. package/dist/core/recovery-checkpoint.js +0 -382
  237. package/dist/core/recovery-checkpoint.js.map +0 -1
  238. package/dist/core/sandbox-policy-v2.d.ts +0 -49
  239. package/dist/core/sandbox-policy-v2.d.ts.map +0 -1
  240. package/dist/core/sandbox-policy-v2.js +0 -368
  241. package/dist/core/sandbox-policy-v2.js.map +0 -1
  242. package/dist/guardrails/audit-logger.d.ts +0 -4
  243. package/dist/guardrails/audit-logger.d.ts.map +0 -1
  244. package/dist/guardrails/audit-logger.js +0 -28
  245. package/dist/guardrails/audit-logger.js.map +0 -1
  246. package/dist/guardrails/freedomd-adapter.d.ts +0 -16
  247. package/dist/guardrails/freedomd-adapter.d.ts.map +0 -1
  248. package/dist/guardrails/freedomd-adapter.js +0 -87
  249. package/dist/guardrails/freedomd-adapter.js.map +0 -1
  250. package/dist/orchestration/lane-grant-auditor.d.ts +0 -4
  251. package/dist/orchestration/lane-grant-auditor.d.ts.map +0 -1
  252. package/dist/orchestration/lane-grant-auditor.js +0 -87
  253. package/dist/orchestration/lane-grant-auditor.js.map +0 -1
  254. package/dist/types/guardrails.d.ts +0 -61
  255. package/dist/types/guardrails.d.ts.map +0 -1
  256. package/dist/types/guardrails.js +0 -9
  257. package/dist/types/guardrails.js.map +0 -1
  258. package/dist/types/lane-grant.d.ts +0 -58
  259. package/dist/types/lane-grant.d.ts.map +0 -1
  260. package/dist/types/lane-grant.js +0 -9
  261. 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 { type PromptSettledEvent } from "./prompt-settlement.ts";
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, in-memory only; never shared across sessions or persisted. */
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. Inert under DEFAULT_WEIGHTS (no pressure
753
- * coefficient); computed for future calibrated weight presets.
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
  /**