@abot-ai/runtime 1.8.0 → 1.9.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 (423) hide show
  1. package/README.md +216 -222
  2. package/dist/scripts/runtime-setup-files.js +46 -2
  3. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +8 -0
  4. package/dist/src/capabilities/tool-types.d.ts +4 -0
  5. package/dist/src/model-gateway/client/chat.js +9 -5
  6. package/dist/src/model-gateway/client/invocation-error.d.ts +9 -0
  7. package/dist/src/model-gateway/client/invocation-error.js +30 -0
  8. package/dist/src/model-gateway/client/stream-consumer.js +9 -2
  9. package/dist/src/model-gateway/client/stream-parser.js +2 -1
  10. package/dist/src/model-gateway/protocol/message-contract.d.ts +1 -0
  11. package/dist/src/model-gateway/protocol/message-contract.js +1 -1
  12. package/dist/src/model-gateway/server/chat-handler.js +5 -7
  13. package/dist/src/model-gateway/server/chat-stream-response.d.ts +7 -0
  14. package/dist/src/model-gateway/server/chat-stream-response.js +25 -0
  15. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +5 -1
  16. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +15 -1
  17. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +7 -5
  18. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-snapshot.js +9 -2
  19. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +2 -2
  20. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +2 -2
  21. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +17 -11
  22. package/dist/src/runtime/automations/service.d.ts +1 -1
  23. package/dist/src/runtime/capabilities/automation-builder/tool-module.js +4 -4
  24. package/dist/src/runtime/capabilities/automations/draft-index.d.ts +1 -1
  25. package/dist/src/runtime/capabilities/automations/tool-module.js +4 -4
  26. package/dist/src/runtime/capabilities/core-tool-contracts.d.ts +29 -0
  27. package/dist/src/runtime/capabilities/core-tool-contracts.js +38 -0
  28. package/dist/src/runtime/capabilities/knowledge-skills/read-many.d.ts +4 -0
  29. package/dist/src/runtime/capabilities/knowledge-skills/read-many.js +21 -0
  30. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.d.ts +13 -0
  31. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.js +44 -0
  32. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.d.ts +141 -0
  33. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.js +58 -0
  34. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.d.ts +4 -0
  35. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.js +78 -0
  36. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.d.ts +12 -0
  37. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.js +21 -0
  38. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.d.ts +77 -0
  39. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.js +28 -0
  40. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.d.ts +3 -0
  41. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.js +34 -0
  42. package/dist/src/runtime/capabilities/scheduling/tool-module.js +3 -3
  43. package/dist/src/runtime/capabilities/tool-availability.js +6 -0
  44. package/dist/src/runtime/composition.d.ts +5 -0
  45. package/dist/src/runtime/context/capability-brief.d.ts +2 -2
  46. package/dist/src/runtime/context/capability-brief.js +3 -3
  47. package/dist/src/runtime/context/capability-descriptions.d.ts +3 -2
  48. package/dist/src/runtime/context/capability-descriptions.js +57 -20
  49. package/dist/src/runtime/context/capability-result-compaction-source.d.ts +3 -1
  50. package/dist/src/runtime/context/capability-result-compaction-source.js +13 -1
  51. package/dist/src/runtime/context/core-skill-read-context.d.ts +16 -0
  52. package/dist/src/runtime/context/core-skill-read-context.js +76 -0
  53. package/dist/src/runtime/context/exact-evidence-match.d.ts +3 -0
  54. package/dist/src/runtime/context/exact-evidence-match.js +34 -0
  55. package/dist/src/runtime/context/model-step-compaction.js +20 -6
  56. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.d.ts +9 -0
  57. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.js +38 -0
  58. package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +2 -0
  59. package/dist/src/runtime/context/semantic-compaction/prompt.js +7 -7
  60. package/dist/src/runtime/context/semantic-compaction/run.js +10 -3
  61. package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +33 -3
  62. package/dist/src/runtime/context/session-artifact-paths.d.ts +2 -1
  63. package/dist/src/runtime/context/session-artifact-paths.js +2 -1
  64. package/dist/src/runtime/context/session-memory/model-step-controller.d.ts +2 -2
  65. package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +1 -1
  66. package/dist/src/runtime/context/super-worker-compaction-failure.js +2 -1
  67. package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +2 -1
  68. package/dist/src/runtime/context/super-worker-compaction-sidecar.js +9 -3
  69. package/dist/src/runtime/default-environment-adapters.d.ts +2 -1
  70. package/dist/src/runtime/default-environment-adapters.js +5 -1
  71. package/dist/src/runtime/knowledge-skills/available-skills-projection.d.ts +17 -0
  72. package/dist/src/runtime/knowledge-skills/available-skills-projection.js +66 -0
  73. package/dist/src/runtime/knowledge-skills/available-skills.d.ts +7 -0
  74. package/dist/src/runtime/knowledge-skills/available-skills.js +17 -0
  75. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.d.ts +2 -0
  76. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.js +27 -0
  77. package/dist/src/runtime/knowledge-skills/builtins/computer-use.d.ts +2 -0
  78. package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +34 -0
  79. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.d.ts +2 -0
  80. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.js +29 -0
  81. package/dist/src/runtime/knowledge-skills/builtins/technical-work.d.ts +2 -0
  82. package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +27 -0
  83. package/dist/src/runtime/knowledge-skills/catalog.d.ts +2 -0
  84. package/dist/src/runtime/knowledge-skills/catalog.js +12 -0
  85. package/dist/src/runtime/knowledge-skills/personal-contracts.d.ts +48 -0
  86. package/dist/src/runtime/knowledge-skills/personal-contracts.js +29 -0
  87. package/dist/src/runtime/knowledge-skills/personal-documents.d.ts +6 -0
  88. package/dist/src/runtime/knowledge-skills/personal-documents.js +56 -0
  89. package/dist/src/runtime/knowledge-skills/personal-management.d.ts +9 -0
  90. package/dist/src/runtime/knowledge-skills/personal-management.js +64 -0
  91. package/dist/src/runtime/knowledge-skills/personal-repository.d.ts +6 -0
  92. package/dist/src/runtime/knowledge-skills/personal-repository.js +76 -0
  93. package/dist/src/runtime/knowledge-skills/personal-store.d.ts +4 -0
  94. package/dist/src/runtime/knowledge-skills/personal-store.js +33 -0
  95. package/dist/src/runtime/knowledge-skills/read-evidence.d.ts +3 -0
  96. package/dist/src/runtime/knowledge-skills/read-evidence.js +13 -0
  97. package/dist/src/runtime/knowledge-skills/store.d.ts +19 -0
  98. package/dist/src/runtime/knowledge-skills/store.js +41 -0
  99. package/dist/src/runtime/local-application.d.ts +2 -1
  100. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
  101. package/dist/src/runtime/local-host/app-service-dispatch.js +5 -0
  102. package/dist/src/runtime/local-host/client-services.d.ts +3 -1
  103. package/dist/src/runtime/local-host/client-services.js +3 -2
  104. package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +7 -1
  105. package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +51 -25
  106. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.d.ts +5 -0
  107. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.js +28 -0
  108. package/dist/src/runtime/long-term-memory/initial-context.d.ts +18 -0
  109. package/dist/src/runtime/long-term-memory/initial-context.js +57 -0
  110. package/dist/src/runtime/long-term-memory/projection.js +1 -1
  111. package/dist/src/runtime/model/context-compaction-admission.d.ts +1 -0
  112. package/dist/src/runtime/model/context-compaction-admission.js +35 -1
  113. package/dist/src/runtime/model/context-compaction-contracts.d.ts +9 -1
  114. package/dist/src/runtime/model/invoke-step.js +6 -2
  115. package/dist/src/runtime/model/provider-failure.d.ts +13 -0
  116. package/dist/src/runtime/model/provider-failure.js +37 -0
  117. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
  118. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +4 -1
  119. package/dist/src/runtime/orchestration/role-calls/checkpoint-state.d.ts +1 -1
  120. package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +7 -3
  121. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
  122. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.d.ts +4 -0
  123. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.js +48 -0
  124. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
  125. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
  126. package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
  127. package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +2 -1
  128. package/dist/src/runtime/orchestration/role-calls/ledger.js +2 -2
  129. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +7 -0
  130. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +2 -0
  131. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +88 -0
  132. package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
  133. package/dist/src/runtime/orchestration/role-calls/reducer.js +2 -1
  134. package/dist/src/runtime/orchestration/role-calls/skill-read.d.ts +47 -0
  135. package/dist/src/runtime/orchestration/role-calls/skill-read.js +196 -0
  136. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.d.ts +1 -1
  137. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.js +4 -2
  138. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +4 -1
  139. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +4 -2
  140. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +2 -2
  141. package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +10 -4
  142. package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.d.ts +5 -0
  143. package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.js +31 -0
  144. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +2 -0
  145. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +7 -2
  146. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.d.ts +19 -0
  147. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.js +43 -0
  148. package/dist/src/runtime/plugins/loader.js +7 -6
  149. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  150. package/dist/src/runtime/request/approval-wait/preflight.js +1 -0
  151. package/dist/src/runtime/request/bound-runtime-handler.js +1 -0
  152. package/dist/src/runtime/request/capability-execution-freshness.js +6 -1
  153. package/dist/src/runtime/request/contracts.d.ts +2 -0
  154. package/dist/src/runtime/request/execution-agent-root-execution.js +11 -1
  155. package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +2 -2
  156. package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
  157. package/dist/src/runtime/request/execution-scope-surfaces.js +7 -0
  158. package/dist/src/runtime/request/execution-scope.d.ts +6 -2
  159. package/dist/src/runtime/request/execution-scope.js +11 -0
  160. package/dist/src/runtime/request/payload-settled-evidence.d.ts +11 -0
  161. package/dist/src/runtime/request/payload-settled-evidence.js +29 -0
  162. package/dist/src/runtime/request/prepared-execution.js +2 -0
  163. package/dist/src/runtime/request/role-call-delegation-events.d.ts +19 -0
  164. package/dist/src/runtime/request/role-call-delegation-events.js +52 -0
  165. package/dist/src/runtime/request/role-call-return-events.d.ts +19 -0
  166. package/dist/src/runtime/request/role-call-return-events.js +63 -0
  167. package/dist/src/runtime/request/role-executor-composition.js +2 -2
  168. package/dist/src/runtime/request/root-capability-binding.d.ts +24 -0
  169. package/dist/src/runtime/request/root-capability-binding.js +57 -0
  170. package/dist/src/runtime/request/root-capability-catalog.d.ts +16 -0
  171. package/dist/src/runtime/request/root-capability-catalog.js +20 -0
  172. package/dist/src/runtime/request/root-contract.d.ts +13 -1
  173. package/dist/src/runtime/request/root-execution-kernel.js +36 -68
  174. package/dist/src/runtime/request/root-reference-action.d.ts +15 -0
  175. package/dist/src/runtime/request/root-reference-action.js +48 -0
  176. package/dist/src/runtime/request/root-skill-read.d.ts +13 -0
  177. package/dist/src/runtime/request/root-skill-read.js +102 -0
  178. package/dist/src/runtime/request/runner.js +19 -3
  179. package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
  180. package/dist/src/runtime/request/supervisor-root-execution.js +54 -1
  181. package/dist/src/runtime/request/supervisor-skill-edit-target.d.ts +9 -0
  182. package/dist/src/runtime/request/supervisor-skill-edit-target.js +25 -0
  183. package/dist/src/runtime/request/supervisor-skill-payload-context.d.ts +21 -0
  184. package/dist/src/runtime/request/supervisor-skill-payload-context.js +91 -0
  185. package/dist/src/runtime/request/supervisor-skill-write-preparation.d.ts +25 -0
  186. package/dist/src/runtime/request/supervisor-skill-write-preparation.js +71 -0
  187. package/dist/src/runtime/request/worker-capability-composition.d.ts +4 -1
  188. package/dist/src/runtime/request/worker-capability-composition.js +4 -1
  189. package/dist/src/runtime/request/worker-capability-payload.d.ts +1 -1
  190. package/dist/src/runtime/request/worker-capability-payload.js +44 -37
  191. package/dist/src/runtime/runtime-environment.d.ts +2 -0
  192. package/dist/src/runtime/runtime-environment.js +12 -1
  193. package/dist/src/runtime/scheduler/contracts.d.ts +4 -0
  194. package/dist/src/runtime/scheduler/run-list-filter.d.ts +11 -0
  195. package/dist/src/runtime/scheduler/run-list-filter.js +56 -0
  196. package/dist/src/runtime/scheduler/run-list-query.d.ts +2 -2
  197. package/dist/src/runtime/scheduler/run-list-query.js +4 -1
  198. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +2 -0
  199. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +2 -2
  200. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +2 -34
  201. package/dist/src/runtime/steps/auditor-decision/input.js +21 -3
  202. package/dist/src/runtime/steps/auditor-decision/projection.js +5 -0
  203. package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
  204. package/dist/src/runtime/steps/auditor-decision/prompt.js +14 -3
  205. package/dist/src/runtime/steps/capability-execution-guidance.d.ts +7 -0
  206. package/dist/src/runtime/steps/capability-execution-guidance.js +28 -0
  207. package/dist/src/runtime/steps/capability-execution-instructions.d.ts +0 -2
  208. package/dist/src/runtime/steps/capability-execution-instructions.js +0 -2
  209. package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +5 -2
  210. package/dist/src/runtime/steps/execution-agent/capability-result-context.js +22 -3
  211. package/dist/src/runtime/steps/execution-agent/compaction.d.ts +3 -2
  212. package/dist/src/runtime/steps/execution-agent/compaction.js +9 -1
  213. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +10 -0
  214. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +13 -1
  215. package/dist/src/runtime/steps/execution-agent/direct-response-configuration.d.ts +3 -0
  216. package/dist/src/runtime/steps/execution-agent/direct-response-configuration.js +64 -0
  217. package/dist/src/runtime/steps/execution-agent/direct-response-contract.d.ts +7 -0
  218. package/dist/src/runtime/steps/execution-agent/direct-response-contract.js +56 -0
  219. package/dist/src/runtime/steps/execution-agent/direct-response-policy.d.ts +9 -0
  220. package/dist/src/runtime/steps/execution-agent/direct-response-policy.js +30 -0
  221. package/dist/src/runtime/steps/execution-agent/direct-response-prompt.d.ts +7 -0
  222. package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +43 -0
  223. package/dist/src/runtime/steps/execution-agent/format.js +2 -0
  224. package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -0
  225. package/dist/src/runtime/steps/execution-agent/input.js +35 -2
  226. package/dist/src/runtime/steps/execution-agent/plugin-catalog.d.ts +4 -0
  227. package/dist/src/runtime/steps/execution-agent/plugin-catalog.js +8 -0
  228. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
  229. package/dist/src/runtime/steps/execution-agent/prompt.js +42 -41
  230. package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +1 -0
  231. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -1
  232. package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
  233. package/dist/src/runtime/steps/execution-agent/response-run.js +6 -12
  234. package/dist/src/runtime/steps/execution-agent/run.js +5 -2
  235. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -3
  236. package/dist/src/runtime/steps/execution-agent/state-context.js +3 -40
  237. package/dist/src/runtime/steps/knowledge-skill-instructions.d.ts +3 -0
  238. package/dist/src/runtime/steps/knowledge-skill-instructions.js +3 -0
  239. package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +4 -2
  240. package/dist/src/runtime/steps/planner-decision/capability-brief.js +5 -1
  241. package/dist/src/runtime/steps/planner-decision/input.d.ts +2 -2
  242. package/dist/src/runtime/steps/planner-decision/input.js +7 -1
  243. package/dist/src/runtime/steps/planner-decision/prompt.js +29 -49
  244. package/dist/src/runtime/steps/planner-graph/input.d.ts +2 -2
  245. package/dist/src/runtime/steps/planner-graph/input.js +9 -8
  246. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -2
  247. package/dist/src/runtime/steps/planner-graph/run.d.ts +2 -2
  248. package/dist/src/runtime/steps/planner-graph/run.js +5 -5
  249. package/dist/src/runtime/steps/planner-graph/skill-guidance.d.ts +5 -0
  250. package/dist/src/runtime/steps/planner-graph/skill-guidance.js +62 -0
  251. package/dist/src/runtime/steps/reviewer-decision/final-evidence.d.ts +1 -0
  252. package/dist/src/runtime/steps/reviewer-decision/final-evidence.js +3 -1
  253. package/dist/src/runtime/steps/reviewer-decision/input.d.ts +3 -1
  254. package/dist/src/runtime/steps/reviewer-decision/input.js +2 -22
  255. package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +21 -0
  256. package/dist/src/runtime/steps/reviewer-decision/model-context.js +32 -1
  257. package/dist/src/runtime/steps/reviewer-decision/projection.js +4 -0
  258. package/dist/src/runtime/steps/reviewer-decision/prompt.d.ts +1 -1
  259. package/dist/src/runtime/steps/reviewer-decision/prompt.js +15 -4
  260. package/dist/src/runtime/steps/reviewer-decision/run.d.ts +2 -0
  261. package/dist/src/runtime/steps/reviewer-decision/run.js +6 -0
  262. package/dist/src/runtime/steps/skill-read-decision.d.ts +34 -0
  263. package/dist/src/runtime/steps/skill-read-decision.js +91 -0
  264. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +22 -0
  265. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +132 -0
  266. package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +2 -0
  267. package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +9 -2
  268. package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +12 -3
  269. package/dist/src/runtime/steps/supervisor-decision/contracts.js +3 -0
  270. package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +37 -0
  271. package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +124 -0
  272. package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +5 -1
  273. package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +4 -0
  274. package/dist/src/runtime/steps/supervisor-decision/format.d.ts +1 -0
  275. package/dist/src/runtime/steps/supervisor-decision/format.js +2 -0
  276. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +8 -1
  277. package/dist/src/runtime/steps/supervisor-decision/input.js +35 -11
  278. package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +1 -0
  279. package/dist/src/runtime/steps/supervisor-decision/parser.js +11 -0
  280. package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +26 -0
  281. package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +39 -0
  282. package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +17 -0
  283. package/dist/src/runtime/steps/supervisor-decision/preparation.js +65 -0
  284. package/dist/src/runtime/steps/supervisor-decision/presentation.d.ts +13 -0
  285. package/dist/src/runtime/steps/supervisor-decision/presentation.js +47 -0
  286. package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +5 -0
  287. package/dist/src/runtime/steps/supervisor-decision/prompt.js +97 -106
  288. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +2 -0
  289. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -0
  290. package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +3 -0
  291. package/dist/src/runtime/steps/supervisor-decision/resume.js +20 -0
  292. package/dist/src/runtime/steps/supervisor-decision/run.d.ts +7 -0
  293. package/dist/src/runtime/steps/supervisor-decision/run.js +76 -158
  294. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.d.ts +21 -0
  295. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +29 -0
  296. package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +16 -0
  297. package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +44 -0
  298. package/dist/src/runtime/steps/supervisor-response/input.d.ts +3 -0
  299. package/dist/src/runtime/steps/supervisor-response/input.js +5 -0
  300. package/dist/src/runtime/steps/supervisor-response/prompt.js +2 -0
  301. package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +3 -0
  302. package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +24 -4
  303. package/dist/src/runtime/steps/supervisor-response/run.d.ts +7 -0
  304. package/dist/src/runtime/steps/supervisor-response/run.js +3 -6
  305. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.d.ts +43 -0
  306. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.js +85 -0
  307. package/dist/src/runtime/steps/supervisor-skill-authoring/input.d.ts +35 -0
  308. package/dist/src/runtime/steps/supervisor-skill-authoring/input.js +87 -0
  309. package/dist/src/runtime/steps/supervisor-skill-authoring/run.d.ts +10 -0
  310. package/dist/src/runtime/steps/supervisor-skill-authoring/run.js +35 -0
  311. package/dist/src/runtime/steps/supervisor-skill-instructions.d.ts +4 -0
  312. package/dist/src/runtime/steps/supervisor-skill-instructions.js +4 -0
  313. package/dist/src/runtime/steps/worker-capability-scope-decision.js +14 -1
  314. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +1 -0
  315. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.d.ts +5 -0
  316. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.js +31 -0
  317. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +2 -25
  318. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +4 -0
  319. package/dist/src/runtime/steps/worker-decision/prompt.js +6 -2
  320. package/dist/src/runtime/steps/worker-decision/result-author.js +6 -0
  321. package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
  322. package/dist/src/web-ui/app/app-bootstrap.js +3 -0
  323. package/dist/src/web-ui/app/app.js +7 -1
  324. package/dist/src/web-ui/app/components/automations/run-history-controls.js +77 -0
  325. package/dist/src/web-ui/app/components/automations/run-history.js +55 -0
  326. package/dist/src/web-ui/app/components/automations/run.js +3 -8
  327. package/dist/src/web-ui/app/components/automations/timeline.js +3 -2
  328. package/dist/src/web-ui/app/components/automations/workspace.js +11 -2
  329. package/dist/src/web-ui/app/components/conversation-role-cards.js +27 -0
  330. package/dist/src/web-ui/app/components/conversation-role-delegations.d.ts +12 -0
  331. package/dist/src/web-ui/app/components/conversation-role-delegations.js +24 -0
  332. package/dist/src/web-ui/app/components/conversation-role-history.d.ts +13 -0
  333. package/dist/src/web-ui/app/components/conversation-role-history.js +81 -0
  334. package/dist/src/web-ui/app/components/conversation-role-returns.d.ts +12 -0
  335. package/dist/src/web-ui/app/components/conversation-role-returns.js +23 -0
  336. package/dist/src/web-ui/app/components/dashboard/compact-layout.js +137 -0
  337. package/dist/src/web-ui/app/components/dashboard/icons.js +5 -0
  338. package/dist/src/web-ui/app/components/dashboard/widget-card.js +85 -0
  339. package/dist/src/web-ui/app/components/dashboard/widget-dialog.js +83 -0
  340. package/dist/src/web-ui/app/components/dashboard/widget-summaries.js +155 -0
  341. package/dist/src/web-ui/app/components/dashboard/workspace.js +28 -4
  342. package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
  343. package/dist/src/web-ui/app/components/operations-summary.js +2 -1
  344. package/dist/src/web-ui/app/components/passive-learning/home-widget-preview.js +32 -0
  345. package/dist/src/web-ui/app/components/passive-learning/home.js +4 -1
  346. package/dist/src/web-ui/app/components/schedules/details.js +3 -2
  347. package/dist/src/web-ui/app/components/skills/workspace.js +119 -0
  348. package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -1
  349. package/dist/src/web-ui/app/components/spark-chat/settings.js +1 -1
  350. package/dist/src/web-ui/app/components/system-host/home-widget-permission-preview.js +75 -0
  351. package/dist/src/web-ui/app/components/system-host/home-widget-summary.js +93 -0
  352. package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +2 -2
  353. package/dist/src/web-ui/app/components/system-host/native-windows-access.js +1 -1
  354. package/dist/src/web-ui/app/components/system-host/rendering.js +3 -3
  355. package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +2 -2
  356. package/dist/src/web-ui/app/components/workspace-shell.js +11 -1
  357. package/dist/src/web-ui/app/computer-access-feature.js +13 -1
  358. package/dist/src/web-ui/app/configuration-feature.js +2 -0
  359. package/dist/src/web-ui/app/controllers/automation-read-projection.js +8 -4
  360. package/dist/src/web-ui/app/controllers/automation-run-actions.js +3 -1
  361. package/dist/src/web-ui/app/controllers/automation-run-history.js +159 -0
  362. package/dist/src/web-ui/app/controllers/automations-controller.js +27 -11
  363. package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +6 -2
  364. package/dist/src/web-ui/app/controllers/operations-controller.js +2 -1
  365. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +22 -1
  366. package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +1 -1
  367. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +7 -1
  368. package/dist/src/web-ui/app/controllers/skills-controller.js +237 -0
  369. package/dist/src/web-ui/app/dashboard-feature.js +9 -0
  370. package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +5 -0
  371. package/dist/src/web-ui/app/lib/conversation-role-model.js +63 -5
  372. package/dist/src/web-ui/app/lib/event-presentation.js +34 -0
  373. package/dist/src/web-ui/app/lib/reasoning-controls.js +6 -1
  374. package/dist/src/web-ui/app/lib/role-delegation-event.d.ts +18 -0
  375. package/dist/src/web-ui/app/lib/role-delegation-event.js +47 -0
  376. package/dist/src/web-ui/app/lib/role-return-event.d.ts +19 -0
  377. package/dist/src/web-ui/app/lib/role-return-event.js +36 -0
  378. package/dist/src/web-ui/app/lib/tool-activity-event.js +8 -6
  379. package/dist/src/web-ui/app/lib/tool-skill-activity-fields.js +50 -0
  380. package/dist/src/web-ui/app/lib/workspace-route.js +1 -0
  381. package/dist/src/web-ui/app/passive-learning-feature.js +2 -2
  382. package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +9 -1
  383. package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
  384. package/dist/src/web-ui/app/services/runtime-web-client/skills.js +23 -0
  385. package/dist/src/web-ui/app/services/runtime-web-client.js +2 -0
  386. package/dist/src/web-ui/app/skills-feature.js +36 -0
  387. package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +58 -0
  388. package/dist/src/web-ui/app/styles/40-skills.css +34 -0
  389. package/dist/src/web-ui/app/styles/50-automations.css +24 -3
  390. package/dist/src/web-ui/app/styles/95-home-widgets.css +110 -0
  391. package/dist/src/web-ui/app/styles.css +2 -0
  392. package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
  393. package/dist/src/web-ui/app/ui-behavior.js +1 -0
  394. package/dist/src/web-ui/client-state/store.js +3 -2
  395. package/dist/src/web-ui/client-state/transaction-order.d.ts +2 -0
  396. package/dist/src/web-ui/client-state/transaction-order.js +18 -0
  397. package/dist/src/web-ui/local-runtime/api-router.d.ts +1 -0
  398. package/dist/src/web-ui/local-runtime/api-router.js +7 -0
  399. package/dist/src/web-ui/local-runtime/automation-routes.js +2 -1
  400. package/dist/src/web-ui/local-runtime/automation-run-page.d.ts +5 -0
  401. package/dist/src/web-ui/local-runtime/automation-run-page.js +26 -0
  402. package/dist/src/web-ui/local-runtime/skill-management-routes.d.ts +18 -0
  403. package/dist/src/web-ui/local-runtime/skill-management-routes.js +118 -0
  404. package/docs/configuration.md +8 -0
  405. package/docs/plugins.md +37 -32
  406. package/docs/runtime-public-contracts.md +37 -0
  407. package/examples/request-runner.config.example.json +3 -0
  408. package/package.json +1 -1
  409. package/plugins/capability-brief/plugin.json +1 -1
  410. package/plugins/code-outline/plugin.json +1 -1
  411. package/plugins/document-reader/plugin.json +1 -1
  412. package/plugins/exec/plugin.json +1 -1
  413. package/plugins/filesystem/plugin.json +1 -1
  414. package/plugins/json-inspector/plugin.json +1 -1
  415. package/plugins/local-search/plugin.json +1 -1
  416. package/plugins/memory/plugin.json +1 -1
  417. package/plugins/project-orientation/plugin.json +1 -1
  418. package/plugins/system/plugin.json +1 -1
  419. package/plugins/system-probe/plugin.json +1 -1
  420. package/plugins/web/plugin.json +1 -1
  421. package/plugins/web/skills/web_fetch_skill/SKILL.md +1 -2
  422. package/plugins/web/skills/web_search_skill/SKILL.md +3 -7
  423. package/src/runtime/README.md +96 -1
@@ -7,6 +7,7 @@ import { appendRequestSteeringContext } from "../request/request-steering-contex
7
7
  import { createModelStepAbort } from "../steps/model-step-timeout.js";
8
8
  import { acceptModelStepOutput } from "./model-step-acceptance.js";
9
9
  import { createModelContextAssessment } from "./model-context-assessment.js";
10
+ import { invokeModelProvider, projectModelProviderFailureDiagnostics, } from "./provider-failure.js";
10
11
  import { isModelStepCompactionEligible, resolveModelContextAdmission, } from "./model-context-budget.js";
11
12
  import { resolveModelStepTimeout, } from "./model-step-timeout-policy.js";
12
13
  import { assertBoundModelStepSteeringCurrent, isModelStepSteeringSuperseded, assertModelStepAdmissionCurrent, ModelStepAdmissionSuperseded, } from "./model-step-steering.js";
@@ -191,6 +192,8 @@ class ModelStepInvocation {
191
192
  controller: contextCompaction,
192
193
  assess,
193
194
  assertCurrent,
195
+ boundSteeringVersion: params.boundSteeringVersion ??
196
+ (this.input.ownsRequestSteering ? steeringSnapshot.version : undefined),
194
197
  abortSignal: request.abortSignal,
195
198
  identity: {
196
199
  requestId: request.requestId,
@@ -361,6 +364,7 @@ class ModelStepInvocation {
361
364
  modelStep: params.modelStep,
362
365
  status,
363
366
  errorType: classifyRuntimeErrorType(error),
367
+ ...projectModelProviderFailureDiagnostics(error, params.messages),
364
368
  responseReceived: outputDiagnostics !== undefined,
365
369
  steeringVersion: attempt.steeringSnapshot.version,
366
370
  supersededAttemptCount: this.supersededAttemptCount,
@@ -381,7 +385,7 @@ class ModelStepAttempt {
381
385
  }
382
386
  invokeProvider() {
383
387
  const { request, params } = this.input;
384
- return request.modelGatewayClient.invoke({
388
+ return invokeModelProvider(params.modelStep, () => request.modelGatewayClient.invoke({
385
389
  messages: this.input.messages,
386
390
  agentMode: request.agentMode,
387
391
  modelStep: params.modelStep,
@@ -393,7 +397,7 @@ class ModelStepAttempt {
393
397
  debugRequestId: request.requestId,
394
398
  ...(params.format === undefined ? {} : { format: params.format }),
395
399
  onThinking: this.input.onThinking,
396
- });
400
+ }));
397
401
  }
398
402
  recordOutputReceived(outputDiagnostics) {
399
403
  traceDebug("runtime.model", "step.output_received", {
@@ -0,0 +1,13 @@
1
+ import { ModelGatewayInvocationError } from "../../model-gateway/client/invocation-error.js";
2
+ import type { ModelStep } from "../../shared/model-steps.js";
3
+ /** A transport/provider failure bound to the model step that actually invoked it. */
4
+ export declare class ModelProviderFailure extends Error {
5
+ readonly modelStep: ModelStep;
6
+ readonly code = "model_provider_failure";
7
+ readonly stage: string;
8
+ constructor(modelStep: ModelStep, cause: ModelGatewayInvocationError);
9
+ }
10
+ /** Unrecognized local faults retain their identity and existing failure path. */
11
+ export declare function invokeModelProvider<T>(modelStep: ModelStep, invoke: () => Promise<T>): Promise<T>;
12
+ /** Retains bounded diagnostics when the failed child no longer escapes the request. */
13
+ export declare function projectModelProviderFailureDiagnostics(error: unknown, messages: unknown): Record<string, unknown>;
@@ -0,0 +1,37 @@
1
+ import { ModelGatewayInvocationError } from "../../model-gateway/client/invocation-error.js";
2
+ import { permitsModelContentTrace } from "../../model-gateway/observability/content-trace-policy.js";
3
+ /** A transport/provider failure bound to the model step that actually invoked it. */
4
+ export class ModelProviderFailure extends Error {
5
+ modelStep;
6
+ code = "model_provider_failure";
7
+ stage;
8
+ constructor(modelStep, cause) {
9
+ super(cause.message, { cause });
10
+ this.modelStep = modelStep;
11
+ this.name = "ModelProviderFailure";
12
+ this.stage = `model_provider_${cause.kind}`;
13
+ }
14
+ }
15
+ /** Unrecognized local faults retain their identity and existing failure path. */
16
+ export async function invokeModelProvider(modelStep, invoke) {
17
+ try {
18
+ return await invoke();
19
+ }
20
+ catch (error) {
21
+ if (!(error instanceof ModelGatewayInvocationError))
22
+ throw error;
23
+ throw new ModelProviderFailure(modelStep, error);
24
+ }
25
+ }
26
+ /** Retains bounded diagnostics when the failed child no longer escapes the request. */
27
+ export function projectModelProviderFailureDiagnostics(error, messages) {
28
+ if (!(error instanceof ModelProviderFailure))
29
+ return {};
30
+ return {
31
+ providerFailureCode: error.code,
32
+ providerFailureStage: error.stage,
33
+ ...(permitsModelContentTrace(error.modelStep, messages)
34
+ ? { providerErrorPreview: error.message.slice(0, 400) }
35
+ : { contentOmitted: true }),
36
+ };
37
+ }
@@ -46,6 +46,7 @@ function resolveActivationReservationCallId(command) {
46
46
  case "update_capability_scope":
47
47
  case "reconsider_capability_selection":
48
48
  case "begin_memory_recall":
49
+ case "record_skill_read":
49
50
  return command.callId;
50
51
  default:
51
52
  return undefined;
@@ -2,8 +2,9 @@ import { isRuntimeDelegateRoleId, RUNTIME_ROOT_ROLE_ID, RUNTIME_ROLE_IDS, } from
2
2
  import { createRoleCapabilitySelectionFingerprint, normalizeRoleCapabilitySelectionProjection, } from "./capability-selection-reconsideration.js";
3
3
  import { isRoleCapabilitySelectionSupervisionState, } from "./capability-selection-supervision.js";
4
4
  import { isValidRoleCapabilitySelectionSupervision } from "./capability-selection-supervision-validation.js";
5
- import { validateRoleMemoryRecalls } from "./memory-recall-state-validation.js";
5
+ import { hasInitialMemoryContext, validateRoleMemoryRecalls } from "./memory-recall-state-validation.js";
6
6
  import { isValidAdoptedModelWorkPlan } from "./work-plan-validation.js";
7
+ import { validateRoleSkillReads } from "./skill-read.js";
7
8
  import { isRoleOperationFingerprint, isRoleOperationOutcomeFingerprintForOutcome, isSameRoleOperationIdentity, replayRoleOperationSupervisionEvidence, } from "./operation-supervision.js";
8
9
  import { isIssuedRoleOperationSupervisionInterventionForRequest } from "./operation-supervision-issuance.js";
9
10
  import { isRoleOperationSupervisionSettlementHistoryValid, isRoleOperationSupervisionState, } from "./operation-supervision-state-validation.js";
@@ -48,6 +49,7 @@ export function validateRoleCallState(state, policy) {
48
49
  !Array.isArray(state?.plans) ||
49
50
  !Array.isArray(state?.capabilityExecutions) ||
50
51
  !Array.isArray(state?.memoryRecalls) ||
52
+ !hasInitialMemoryContext(state?.initialMemory, policy.authority.id) ||
51
53
  !isRoleOperationSupervisionState(state?.operationSupervision) ||
52
54
  !isRoleCapabilitySelectionSupervisionState(state?.capabilitySelectionSupervision) ||
53
55
  !Number.isInteger(state?.callSequence) ||
@@ -178,6 +180,7 @@ export function validateRoleCallState(state, policy) {
178
180
  issues.push(...validateRoleCallPlans(state, policy));
179
181
  validateCapabilityExecutions(state, policy, issues);
180
182
  issues.push(...validateRoleMemoryRecalls(state));
183
+ issues.push(...validateRoleSkillReads(state, policy));
181
184
  if (!isValidRoleOperationSupervision(state, policy)) {
182
185
  issues.push(issue("invalid_role_operation_supervision", "state.operationSupervision"));
183
186
  }
@@ -1,4 +1,4 @@
1
1
  import type { RoleCallLedgerCheckpoint } from "./checkpoint-contract.js";
2
2
  import type { RoleCallPolicy, RoleCallState } from "./contracts.js";
3
3
  /** Hydrate only an admitted, parked capability; no model or reducer command replay. */
4
- export declare function restoreCheckpointState(checkpoint: RoleCallLedgerCheckpoint, requestId: string, policy: RoleCallPolicy): RoleCallState;
4
+ export declare function restoreCheckpointState(checkpoint: RoleCallLedgerCheckpoint, requestId: string, policy: RoleCallPolicy, initialMemory?: RoleCallState["initialMemory"]): RoleCallState;
@@ -4,14 +4,17 @@ import { validateRoleCallCandidate } from "./reducer.js";
4
4
  import { issueInitialRoleCapabilitySelectionSupervisionState } from "./capability-selection-supervision-issuance.js";
5
5
  import { restoreRoleOperationSupervisionIssuance } from "./operation-supervision-issuance.js";
6
6
  /** Hydrate only an admitted, parked capability; no model or reducer command replay. */
7
- export function restoreCheckpointState(checkpoint, requestId, policy) {
7
+ export function restoreCheckpointState(checkpoint, requestId, policy, initialMemory) {
8
8
  if (!isCheckpointEnvelope(checkpoint))
9
9
  throw new Error("role_call_checkpoint_invalid");
10
10
  if (!hasCheckpointRequestIdentity(checkpoint, requestId))
11
11
  throw new Error("role_call_checkpoint_request_mismatch");
12
12
  if (!hasCheckpointPolicy(checkpoint, policy))
13
13
  throw new Error("role_call_checkpoint_policy_mismatch");
14
- const state = seal(structuredClone(checkpoint.state));
14
+ const state = seal(structuredClone({ ...checkpoint.state,
15
+ ...(checkpoint.state.initialMemory === undefined && initialMemory !== undefined
16
+ ? { initialMemory } : {}),
17
+ }));
15
18
  if (!isParkedCapabilityState(state))
16
19
  throw new Error("role_call_checkpoint_not_parked");
17
20
  if (!issueInitialRoleCapabilitySelectionSupervisionState(state))
@@ -69,7 +72,8 @@ function hasConsistentCheckpointRevision(revision, state) {
69
72
  const settlements = new Set(state.capabilityExecutions
70
73
  .filter((entry) => entry.status === "settled")
71
74
  .map(executionActivationIdentity));
72
- const minimumCommits = state.calls.length + state.results.length + begins.size + settlements.size;
75
+ const minimumCommits = state.calls.length + state.results.length + begins.size + settlements.size +
76
+ (state.skillReads?.length ?? 0);
73
77
  if (revision < minimumCommits)
74
78
  return false;
75
79
  return state.results.every((result) => result.receipt === undefined || result.receipt.sourceRevision < revision);
@@ -6,6 +6,7 @@ import { isRoleCapabilityId, } from "./contracts.js";
6
6
  import { parseRoleCallPlanBinding } from "./plan.js";
7
7
  import { normalizeRoleCallResultReceipt } from "./result-receipt.js";
8
8
  import { decodeMemoryRecallCommand } from "./memory-recall-decoder.js";
9
+ import { decodeSkillReadCommand } from "./skill-read.js";
9
10
  import { decodeModelWorkPlanCommand } from "./work-plan-validation.js";
10
11
  import { parseRoleCallWorkerCapabilityScope } from "./worker-capability-scope.js";
11
12
  import { isRoleCallWorkingDirectoryRoleId, normalizeEstablishedRoleCallWorkingDirectory, normalizeRoleCallWorkingDirectory, } from "./working-directory.js";
@@ -15,6 +16,8 @@ export function decodeRoleCallCommand(input) {
15
16
  return { ok: false, code: "invalid_command" };
16
17
  }
17
18
  switch (input.type) {
19
+ case "record_skill_read":
20
+ return decodeSkillReadCommand(input);
18
21
  case "update_model_work_plan":
19
22
  return decodeModelWorkPlanCommand(input);
20
23
  case "begin_memory_recall":
@@ -0,0 +1,4 @@
1
+ import type { RoleCallPolicy, RoleCallState, RoleCallTransitionResult } from "../contracts.js";
2
+ import type { RecordRoleSkillReadCommand } from "../skill-read.js";
3
+ /** A synchronous core lookup returns in one commit without a child or waiting state. */
4
+ export declare function recordSkillRead(state: RoleCallState, command: RecordRoleSkillReadCommand, policy: RoleCallPolicy): RoleCallTransitionResult;
@@ -0,0 +1,48 @@
1
+ import { commit, reject } from "../reducer-primitives.js";
2
+ import { replaceCall } from "./call-frame-state.js";
3
+ /** A synchronous core lookup returns in one commit without a child or waiting state. */
4
+ export function recordSkillRead(state, command, policy) {
5
+ const call = state.calls.find((candidate) => candidate.callId === command.callId);
6
+ if (!call)
7
+ return reject(state, "skill_read_caller_invalid");
8
+ const usesSupervisorContract = policy.authority.rootContractId === "supervisor";
9
+ if (!usesSupervisorContract)
10
+ return reject(state, "skill_read_caller_invalid");
11
+ const ownsActiveRequest = state.phase === "running" &&
12
+ state.activeCallId === command.callId &&
13
+ state.rootCallId === command.callId;
14
+ if (!ownsActiveRequest)
15
+ return reject(state, "skill_read_caller_invalid");
16
+ const isActiveSupervisorRoot = call.parentCallId === null &&
17
+ call.roleId === "supervisor" &&
18
+ call.status === "active";
19
+ if (!isActiveSupervisorRoot)
20
+ return reject(state, "skill_read_caller_invalid");
21
+ const previousReads = state.skillReads ?? [];
22
+ const matchesCurrentActivation = call.activationCount === command.invocationAttempt;
23
+ if (!matchesCurrentActivation)
24
+ return reject(state, "skill_read_invocation_mismatch");
25
+ const preservesSteeringOrder = command.steeringVersion >= (previousReads.at(-1)?.steeringVersion ?? 0);
26
+ if (!preservesSteeringOrder)
27
+ return reject(state, "skill_read_invocation_mismatch");
28
+ const { authority: _authority, type: _type, ...payload } = command;
29
+ const read = {
30
+ ...payload,
31
+ readId: `skill-read-${previousReads.length + 1}`,
32
+ };
33
+ return commit({
34
+ ...state,
35
+ calls: replaceCall(state.calls, {
36
+ ...call,
37
+ activationCount: call.activationCount + 1,
38
+ }),
39
+ skillReads: [...previousReads, read],
40
+ }, {
41
+ type: "skill_read_recorded",
42
+ callId: call.callId,
43
+ readId: read.readId,
44
+ invocationAttempt: read.invocationAttempt,
45
+ steeringVersion: read.steeringVersion,
46
+ operation: read.operation,
47
+ });
48
+ }
@@ -3,11 +3,14 @@ import { beginCapabilityExecution, settleCapabilityExecution, } from "./command-
3
3
  import { reconsiderCapabilitySelection } from "./command-dispatch/capability-selection-transition.js";
4
4
  import { updateModelWorkPlan } from "./command-dispatch/work-plan-transition.js";
5
5
  import { beginMemoryRecall, settleMemoryRecall } from "./command-dispatch/memory-recall-transitions.js";
6
+ import { recordSkillRead } from "./command-dispatch/skill-read-transition.js";
6
7
  import { establishWorkingDirectory, updateCapabilityScope, } from "./command-dispatch/call-scope-transitions.js";
7
8
  import { openChild, returnChild, } from "./command-dispatch/child-transitions.js";
8
9
  import { completeRootResponse, createRoot, } from "./command-dispatch/root-transitions.js";
9
10
  export function dispatchRoleCallCommand(state, command, policy, admittedHeadRevision) {
10
11
  switch (command.type) {
12
+ case "record_skill_read":
13
+ return recordSkillRead(state, command, policy);
11
14
  case "update_model_work_plan":
12
15
  return updateModelWorkPlan(state, command, policy);
13
16
  case "begin_memory_recall":
@@ -5,8 +5,9 @@ import type { RoleOperationFingerprint, RoleOperationOutcomeFingerprint, RoleOpe
5
5
  import type { RoleCapabilitySelectionSupervisionStage, RoleCapabilitySelectionSupervisionState, RoleCapabilitySelectionSupervisionTrigger } from "./capability-selection-supervision.js";
6
6
  import type { RoleCapabilitySelectionReconsiderationCause } from "./reconsideration-cause.js";
7
7
  import type { RoleCallResultReceipt } from "./result-receipt.js";
8
- import type { RoleMemoryRecall, RoleMemoryRecallCommand, RoleMemoryRecallCommitEffect, RoleMemoryRecallTransactions } from "./memory-recall-contract.js";
8
+ import type { RoleInitialMemory, RoleMemoryRecall, RoleMemoryRecallCommand, RoleMemoryRecallCommitEffect, RoleMemoryRecallTransactions } from "./memory-recall-contract.js";
9
9
  import type { AdoptedModelWorkPlan, UpdateModelWorkPlanCommand, ModelWorkPlanCommitEffect, ModelWorkPlanTransactions } from "./work-plan-contracts.js";
10
+ import type { RecordRoleSkillReadCommand, RoleSkillRead, RoleSkillReadCommitEffect } from "./skill-read.js";
10
11
  export declare const ROLE_CALL_LEDGER_CONTRACT_VERSION = 18;
11
12
  export declare const ROLE_CALL_LEDGER_HEAD_KIND: "runtime_role_call_ledger_v18";
12
13
  export declare const ROLE_CALL_OBJECTIVE_MAX_LENGTH = 8192;
@@ -191,6 +192,9 @@ export type RoleCallState = Readonly<{
191
192
  plans: readonly RoleCallPlanState[];
192
193
  capabilityExecutions: readonly RoleCapabilityExecution[];
193
194
  memoryRecalls: readonly RoleMemoryRecall[];
195
+ /** Immutable core reference reads; omitted on older checkpoints. */
196
+ skillReads?: readonly RoleSkillRead[];
197
+ initialMemory?: RoleInitialMemory;
194
198
  operationSupervision: RoleOperationSupervisionState;
195
199
  capabilitySelectionSupervision: RoleCapabilitySelectionSupervisionState;
196
200
  rootResponse: string | null;
@@ -304,8 +308,8 @@ export type ReconsiderRoleCapabilitySelectionCommand = Readonly<{
304
308
  selection: RoleCapabilitySelectionProjection;
305
309
  cause: RoleCapabilitySelectionReconsiderationCause;
306
310
  }>;
307
- export type RoleCallLedgerCommand = UpdateModelWorkPlanCommand | RoleMemoryRecallCommand | CreateRootRoleCallCommand | CompleteRootResponseCommand | OpenChildRoleCallCommand | ReturnChildRoleCallCommand | BeginRoleCapabilityExecutionCommand | SettleRoleCapabilityExecutionCommand | BeginRoleCapabilityBatchCommand | SettleRoleCapabilityBatchCommand | UpdateRoleCapabilityScopeCommand | EstablishRoleCallWorkingDirectoryCommand | ReconsiderRoleCapabilitySelectionCommand;
308
- export type RoleCallCommitEffect = ModelWorkPlanCommitEffect | RoleMemoryRecallCommitEffect | Readonly<{
311
+ export type RoleCallLedgerCommand = RecordRoleSkillReadCommand | UpdateModelWorkPlanCommand | RoleMemoryRecallCommand | CreateRootRoleCallCommand | CompleteRootResponseCommand | OpenChildRoleCallCommand | ReturnChildRoleCallCommand | BeginRoleCapabilityExecutionCommand | SettleRoleCapabilityExecutionCommand | BeginRoleCapabilityBatchCommand | SettleRoleCapabilityBatchCommand | UpdateRoleCapabilityScopeCommand | EstablishRoleCallWorkingDirectoryCommand | ReconsiderRoleCapabilitySelectionCommand;
312
+ export type RoleCallCommitEffect = RoleSkillReadCommitEffect | ModelWorkPlanCommitEffect | RoleMemoryRecallCommitEffect | Readonly<{
309
313
  type: "root_created";
310
314
  callId: string;
311
315
  }> | Readonly<{
@@ -372,7 +376,7 @@ export type RoleCallValidationIssue = Readonly<{
372
376
  code: string;
373
377
  path: string;
374
378
  }>;
375
- export type RoleCallTransitionRejectionCode = "invalid_current_state" | "invalid_policy" | "invalid_command" | "root_already_created" | "root_missing" | "caller_not_active" | "root_response_not_allowed" | "supervisor_child_forbidden" | "child_role_not_authorized" | "child_dependency_invalid" | "planner_plan_binding_invalid" | "planner_plan_already_declared" | "planner_plan_missing" | "planner_plan_item_unavailable" | "planner_plan_incomplete" | "depth_limit_exceeded" | "call_limit_exceeded" | "child_return_mismatch" | "capability_caller_invalid" | "capability_invocation_mismatch" | "capability_execution_limit_exceeded" | "capability_execution_mismatch" | "capability_scope_update_invalid" | "working_directory_establishment_invalid" | "model_work_plan_update_invalid" | "capability_selection_reconsideration_invalid" | "capability_selection_supervision_limit_exceeded" | "operation_supervision_limit_exceeded" | "memory_recall_caller_invalid" | "memory_recall_invocation_mismatch" | "memory_recall_settlement_mismatch" | "role_activation_limit_exceeded";
379
+ export type RoleCallTransitionRejectionCode = "invalid_current_state" | "invalid_policy" | "invalid_command" | "root_already_created" | "root_missing" | "caller_not_active" | "root_response_not_allowed" | "supervisor_child_forbidden" | "child_role_not_authorized" | "child_dependency_invalid" | "planner_plan_binding_invalid" | "planner_plan_already_declared" | "planner_plan_missing" | "planner_plan_item_unavailable" | "planner_plan_incomplete" | "depth_limit_exceeded" | "call_limit_exceeded" | "child_return_mismatch" | "capability_caller_invalid" | "capability_invocation_mismatch" | "capability_execution_limit_exceeded" | "capability_execution_mismatch" | "capability_scope_update_invalid" | "working_directory_establishment_invalid" | "model_work_plan_update_invalid" | "capability_selection_reconsideration_invalid" | "capability_selection_supervision_limit_exceeded" | "operation_supervision_limit_exceeded" | "skill_read_caller_invalid" | "skill_read_invocation_mismatch" | "memory_recall_caller_invalid" | "memory_recall_invocation_mismatch" | "memory_recall_settlement_mismatch" | "role_activation_limit_exceeded";
376
380
  export type RoleCallTransitionResult = Readonly<{
377
381
  ok: true;
378
382
  state: RoleCallState;
@@ -25,13 +25,13 @@ export function isRoleCapabilityId(input) {
25
25
  }
26
26
  export const SUPERVISOR_WORKER_V1_AUTHORITY_SNAPSHOT = Object.freeze({
27
27
  id: "supervisor-worker-v1",
28
- version: 2,
29
- definitionHash: "sha256:2ee79cee6dbb27ffaeb59f84c4c838cf9d16a965ca4f07e7d638e8589868e036",
28
+ version: 3,
29
+ definitionHash: "sha256:f4283b1d3f8f86bba0177475d9368137f39eca54d452a06668c844f4173791c5",
30
30
  rootContractId: "supervisor",
31
31
  availableSubordinateContractIds: Object.freeze([
32
32
  "planner",
33
33
  "worker",
34
34
  "reviewer",
35
35
  ]),
36
- capabilityAuthorities: Object.freeze(["worker"]),
36
+ capabilityAuthorities: Object.freeze(["root", "worker"]),
37
37
  });
@@ -1,9 +1,10 @@
1
1
  import type { RoleCallLedgerCheckpoint } from "./checkpoint-contract.js";
2
- import { type RoleCallLedger, type RoleCallLedgerHead, type RoleCallPolicyInput } from "./contracts.js";
2
+ import { type RoleCallLedger, type RoleCallLedgerHead, type RoleCallPolicyInput, type RoleCallState } from "./contracts.js";
3
3
  export declare function createRoleCallLedger(params: {
4
4
  requestId: string;
5
5
  policy: RoleCallPolicyInput;
6
6
  checkpoint?: RoleCallLedgerCheckpoint;
7
+ initialMemory?: RoleCallState["initialMemory"];
7
8
  }): RoleCallLedger;
8
9
  /** Confirms exact current-head ownership without trusting structural ledgers. */
9
10
  export declare function isCurrentRoleCallLedgerHead(ledger: RoleCallLedger, head: RoleCallLedgerHead): boolean;
@@ -15,8 +15,8 @@ const issuedRoleCallLedgerHeads = new WeakMap();
15
15
  export function createRoleCallLedger(params) {
16
16
  const policy = sealRoleCallPolicy(params.policy);
17
17
  const initialState = params.checkpoint
18
- ? restoreCheckpointState(params.checkpoint, params.requestId, policy)
19
- : createInitialRoleCallState(params.requestId);
18
+ ? restoreCheckpointState(params.checkpoint, params.requestId, policy, params.initialMemory)
19
+ : createInitialRoleCallState(params.requestId, params.initialMemory);
20
20
  const capabilitySelectionSupervisionIssuanceAuthority = resolveRoleCapabilitySelectionSupervisionIssuanceAuthority(initialState);
21
21
  if (!capabilitySelectionSupervisionIssuanceAuthority) {
22
22
  throw new Error("role_call_capability_selection_supervision_issuance_authority_missing");
@@ -1,3 +1,5 @@
1
+ import type { ChatMessage } from "../../../model-gateway/types.js";
2
+ import type { LearningKnowledgeContext } from "../../long-term-memory/maturation/contracts.js";
1
3
  import type { LongTermMemoryRecord } from "../../long-term-memory/contracts.js";
2
4
  import type { RoleCallTransactionInput, RoleCallTransactionResult } from "./contracts.js";
3
5
  export declare const ROLE_MEMORY_RECALL_QUERY_MAX_LENGTH = 1024;
@@ -49,3 +51,8 @@ export type RoleMemoryRecallTransactions = Readonly<{
49
51
  beginMemoryRecall(input: RoleCallTransactionInput<BeginRoleMemoryRecallCommand>): Promise<RoleCallTransactionResult<"memory_recall_begun", "memory_recall_transition_invalid">>;
50
52
  settleMemoryRecall(input: RoleCallTransactionInput<SettleRoleMemoryRecallCommand>): Promise<RoleCallTransactionResult<"memory_recall_settled", "memory_recall_transition_invalid">>;
51
53
  }>;
54
+ /** Initial automatic reference; never a model recall or an activation. */
55
+ export type RoleInitialMemory = Readonly<{
56
+ message?: ChatMessage;
57
+ knowledge?: LearningKnowledgeContext;
58
+ }>;
@@ -1,3 +1,5 @@
1
1
  import type { RoleCallState, RoleCallValidationIssue } from "./contracts.js";
2
2
  export declare function validateRoleMemoryRecalls(state: RoleCallState): RoleCallValidationIssue[];
3
3
  export declare function hasSettledMemoryRecallActivationRange(state: RoleCallState, callId: string, fromActivation: number, toActivation: number): boolean;
4
+ /** The existing checkpoint carries this passive startup field, never a model action. */
5
+ export declare function hasInitialMemoryContext(value: unknown, policyId: string): boolean;
@@ -1,3 +1,4 @@
1
+ import { isAssistantToolCallMessage, isStrictTextChatMessage, isToolResultMessage, } from "../../../model-gateway/message-contract.js";
1
2
  import { RUNTIME_ROOT_ROLE_ID } from "../roles.js";
2
3
  import { hasMemoryRecallIdentity, isBoundedMemoryRecallQuery, normalizeRoleMemoryRecallResult, } from "./memory-recall-decoder.js";
3
4
  import { exactKeys, isRecord } from "../../validation/strict-record.js";
@@ -119,3 +120,90 @@ function hasUnboundMemoryWait(state, pendingCount) {
119
120
  return true;
120
121
  return waitingCalls.some((call) => call.callId !== state.rootCallId);
121
122
  }
123
+ /** The existing checkpoint carries this passive startup field, never a model action. */
124
+ export function hasInitialMemoryContext(value, policyId) {
125
+ if (value === undefined)
126
+ return true;
127
+ if (policyId !== "execution-agent-v1" && policyId !== "supervisor-worker-v1")
128
+ return false;
129
+ if (!isRecord(value) || !exactKeys(value, [], ["message", "knowledge"]))
130
+ return false;
131
+ if (value.message !== undefined && !isInitialMemoryMessage(value.message))
132
+ return false;
133
+ if (value.knowledge === undefined)
134
+ return true;
135
+ return isInitialMemoryKnowledge(value.knowledge);
136
+ }
137
+ function isInitialMemoryMessage(value) {
138
+ if (isStrictTextChatMessage(value))
139
+ return true;
140
+ if (isAssistantToolCallMessage(value))
141
+ return true;
142
+ return isToolResultMessage(value);
143
+ }
144
+ function isInitialMemoryKnowledge(value) {
145
+ if (!isRecord(value))
146
+ return false;
147
+ if (value.kind !== "learning_knowledge_reference_v1")
148
+ return false;
149
+ if (value.authority !== "passive_reference")
150
+ return false;
151
+ if (value.presenceEffect !== "does_not_authorize_actions_or_add_user_intent")
152
+ return false;
153
+ if (!isMemoryRevision(value.repositoryRevision))
154
+ return false;
155
+ if (!isMemoryRevision(value.knowledgeRevision))
156
+ return false;
157
+ if (!isMemoryRevision(value.omitted))
158
+ return false;
159
+ if (typeof value.referenceTime !== "string" || !Number.isFinite(Date.parse(value.referenceTime)))
160
+ return false;
161
+ if (!Array.isArray(value.entries) || value.entries.length > 12)
162
+ return false;
163
+ if (!value.entries.every(isInitialMemoryKnowledgeEntry))
164
+ return false;
165
+ const identities = value.entries.map(entry => JSON.stringify([entry.kind, entry.id]));
166
+ return new Set(identities).size === identities.length;
167
+ }
168
+ function isMemoryRevision(value) {
169
+ if (typeof value !== "number" || !Number.isSafeInteger(value))
170
+ return false;
171
+ return value >= 0;
172
+ }
173
+ function isInitialMemoryKnowledgeEntry(value) {
174
+ if (!isRecord(value))
175
+ return false;
176
+ if (value.kind !== "candidate" && value.kind !== "memory")
177
+ return false;
178
+ if (typeof value.id !== "string" || value.id.length === 0)
179
+ return false;
180
+ if (typeof value.version !== "string" || value.version.length === 0)
181
+ return false;
182
+ if (typeof value.content !== "string")
183
+ return false;
184
+ if (!Array.isArray(value.tags) || !value.tags.every(tag => typeof tag === "string"))
185
+ return false;
186
+ if (typeof value.mutable !== "boolean")
187
+ return false;
188
+ if (value.score !== null && !isMemoryScore(value.score))
189
+ return false;
190
+ if (value.reason !== null && typeof value.reason !== "string")
191
+ return false;
192
+ if (!["observed", "inferred", "unspecified"].includes(value.certainty))
193
+ return false;
194
+ if (!isOptionalMemoryTime(value.lastReinforcedAt))
195
+ return false;
196
+ return isOptionalMemoryTime(value.reconsiderAt);
197
+ }
198
+ function isMemoryScore(value) {
199
+ if (typeof value !== "number" || !Number.isFinite(value))
200
+ return false;
201
+ return value >= 0 && value <= 100;
202
+ }
203
+ function isOptionalMemoryTime(value) {
204
+ if (value === null)
205
+ return true;
206
+ if (typeof value !== "string")
207
+ return false;
208
+ return Number.isFinite(Date.parse(value));
209
+ }
@@ -1,6 +1,6 @@
1
1
  import { type RoleCallPolicy, type RoleCallPolicyInput, type RoleCallState, type RoleCallTransitionResult, type RoleCallValidationIssue } from "./contracts.js";
2
2
  export { hasRoleCallCapabilityAuthority } from "./candidate-validation.js";
3
- export declare function createInitialRoleCallState(requestId: string): RoleCallState;
3
+ export declare function createInitialRoleCallState(requestId: string, initialMemory?: RoleCallState["initialMemory"]): RoleCallState;
4
4
  export declare function applyRoleCallCommand(state: RoleCallState, commandInput: unknown, policy: RoleCallPolicy, admittedHeadRevision?: number): RoleCallTransitionResult;
5
5
  export declare function validateRoleCallCandidate(params: {
6
6
  state: RoleCallState;
@@ -8,7 +8,7 @@ import { issueInitialRoleCapabilitySelectionSupervisionState } from "./capabilit
8
8
  import { createInitialRoleOperationSupervisionState } from "./operation-supervision.js";
9
9
  import { reject, seal } from "./reducer-primitives.js";
10
10
  export { hasRoleCallCapabilityAuthority } from "./candidate-validation.js";
11
- export function createInitialRoleCallState(requestId) {
11
+ export function createInitialRoleCallState(requestId, initialMemory) {
12
12
  const state = seal({
13
13
  contractVersion: ROLE_CALL_LEDGER_CONTRACT_VERSION,
14
14
  requestId,
@@ -23,6 +23,7 @@ export function createInitialRoleCallState(requestId) {
23
23
  plans: [],
24
24
  capabilityExecutions: [],
25
25
  memoryRecalls: [],
26
+ ...(initialMemory !== undefined ? { initialMemory } : {}),
26
27
  operationSupervision: createInitialRoleOperationSupervisionState(),
27
28
  capabilitySelectionSupervision: createInitialRoleCapabilitySelectionSupervisionState(),
28
29
  rootResponse: null,
@@ -0,0 +1,47 @@
1
+ import { type KnowledgeSkillDocument, type KnowledgeSkillMetadata } from "../../knowledge-skills/store.js";
2
+ import type { RoleCallPolicy, RoleCallState, RoleCallValidationIssue } from "./contracts.js";
3
+ export type RoleSkillReadResult<T> = Readonly<{
4
+ outcome: "completed";
5
+ skills: readonly T[];
6
+ }> | Readonly<{
7
+ outcome: "failed";
8
+ errorCode: string;
9
+ skills: readonly [];
10
+ }>;
11
+ export type RoleSkillReadPayload = Readonly<{
12
+ operation: "list_skills";
13
+ selectors: readonly [];
14
+ result: RoleSkillReadResult<KnowledgeSkillMetadata>;
15
+ }> | Readonly<{
16
+ operation: "read_skills";
17
+ selectors: readonly string[];
18
+ result: RoleSkillReadResult<KnowledgeSkillDocument>;
19
+ }>;
20
+ type RoleSkillReadBinding = Readonly<{
21
+ callId: string;
22
+ invocationAttempt: number;
23
+ steeringVersion: number;
24
+ }>;
25
+ export type RoleSkillRead = RoleSkillReadBinding & RoleSkillReadPayload & Readonly<{
26
+ readId: string;
27
+ }>;
28
+ export type RecordRoleSkillReadCommand = RoleSkillReadBinding & RoleSkillReadPayload & Readonly<{
29
+ authority: "runtime";
30
+ type: "record_skill_read";
31
+ }>;
32
+ export type RoleSkillReadCommitEffect = RoleSkillReadBinding & Readonly<{
33
+ type: "skill_read_recorded";
34
+ readId: string;
35
+ operation: RoleSkillReadPayload["operation"];
36
+ }>;
37
+ /** Decode the exact Store snapshots supplied by the runtime read boundary. */
38
+ export declare function decodeSkillReadCommand(input: Record<string, unknown>): Readonly<{
39
+ ok: true;
40
+ value: RecordRoleSkillReadCommand;
41
+ }> | Readonly<{
42
+ ok: false;
43
+ code: "invalid_command";
44
+ }>;
45
+ /** Omission preserves heads and parked requests created before core Skill reads. */
46
+ export declare function validateRoleSkillReads(state: RoleCallState, policy: RoleCallPolicy): readonly RoleCallValidationIssue[];
47
+ export {};