@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
@@ -1,19 +1,23 @@
1
1
  import { resolveMemoryRecallSteeringVersion } from "../../long-term-memory/recall-binding.js";
2
2
  import { canOfferMemoryRecall } from "../../long-term-memory/recall-policy.js";
3
- import { invokeStructuredModelStep, StructuredModelInvalidOutputError, } from "../../model/invoke-structured-step.js";
4
3
  import { createModelStepCompactionController } from "../../context/model-step-compaction.js";
5
4
  import { superCompactionFailureOwner } from "../../context/super-compaction-failure-owner.js";
6
5
  import { createSessionMemoryAwareCompactionController } from "../../context/session-memory/index.js";
7
6
  import { resolveRequestSteeringInbox, } from "../../request/request-steering.js";
8
7
  import { SUPERVISOR_DECISION_MODEL_STEP, } from "./contracts.js";
9
- import { traceSupervisorDecisionPhaseSuperseded, traceSupervisorModelCompleted, traceSupervisorModelFailed, traceSupervisorModelStarted, traceSupervisorWorkingDirectoryModelStarted, } from "./diagnostics.js";
10
8
  import { buildSupervisorDecisionInput } from "./input.js";
11
9
  import { buildSupervisorCapabilityBriefOptions } from "./capability-brief.js";
12
10
  import { createSupervisorCapabilityBriefReadmissionController } from "./capability-brief-readmission.js";
13
- import { parseSupervisorDecisionOutput } from "./parser.js";
14
- import { buildSupervisorWorkingDirectoryInput, mergeSupervisorWorkingDirectory, parseSupervisorWorkingDirectoryOutput, } from "./working-directory.js";
11
+ import { createSupervisorArtifactPathsReadmissionController } from "./artifact-paths.js";
12
+ import { buildSupervisorWorkingDirectoryInput, mergeSupervisorWorkingDirectory, } from "./working-directory.js";
15
13
  import { SUPERVISOR_RESPONSE_MODEL_STEP } from "../supervisor-response/contracts.js";
16
14
  import { resolveCanonicalReviewerCompletionTargetText } from "../reviewer-decision/contracts.js";
15
+ import { createDecisionOutcome, runRoutingPhase, runWorkingDirectoryPhase, requiresWorkingDirectory, tracePhaseSuperseded } from "./decision-phases.js";
16
+ import { prepareSupervisorDecision } from "./preparation.js";
17
+ import { isSupervisorSkillLookup } from "./skill-selection.js";
18
+ import { assertBoundModelStepSteeringCurrent } from "../../model/model-step-steering.js";
19
+ import { canOfferSupervisorSkillAuthoring } from "../supervisor-skill-authoring/input.js";
20
+ import { runSupervisorSkillAuthoring } from "../supervisor-skill-authoring/run.js";
17
21
  export async function runSupervisorDecision(request, options) {
18
22
  const boundSteeringVersion = resolveMemoryRecallSteeringVersion(options.memoryRecallMessage, request.requestId, options.call.callId);
19
23
  const baseDiagnostic = {
@@ -32,37 +36,9 @@ export async function runSupervisorDecision(request, options) {
32
36
  const memoryRecallMessage = request.longTermMemory?.enabled
33
37
  ? options.memoryRecallMessage
34
38
  : undefined;
35
- const input = buildSupervisorDecisionInput(request, {
36
- allowMemoryRecall: canOfferMemoryRecall({
37
- enabled: request.longTermMemory?.enabled === true,
38
- recallCount: options.memoryRecallCount ?? 0,
39
- maxRecallCallsPerRequest: request.memoryRecallLimit,
40
- }),
41
- ...(memoryRecallMessage ? { memoryRecallMessage } : {}),
42
- ...buildSupervisorCapabilityBriefOptions(request, options),
43
- toolResults: options.toolResults,
44
- ...(options.includeAcknowledgement === undefined
45
- ? {}
46
- : { includeAcknowledgement: options.includeAcknowledgement }),
47
- ...(options.includeTitle === undefined
48
- ? {}
49
- : { includeTitle: options.includeTitle }),
50
- ...(options.allowedRoleIds === undefined
51
- ? {}
52
- : { allowedRoleIds: options.allowedRoleIds }),
53
- ...(options.resume === undefined ? {} : { resume: options.resume }),
54
- ...(options.workerCapabilityAffordances === undefined
55
- ? {}
56
- : {
57
- workerCapabilityAffordances: options.workerCapabilityAffordances,
58
- }),
59
- ...(options.availableWorkerCapabilityCatalog === undefined
60
- ? {}
61
- : {
62
- availableWorkerCapabilityCatalog: options.availableWorkerCapabilityCatalog,
63
- }),
64
- diagnostic: routingDiagnostic,
65
- });
39
+ const initialMemoryMessage = request.longTermMemory?.enabled
40
+ ? options.initialMemoryMessage
41
+ : undefined;
66
42
  const requestSteering = resolveRequestSteeringInbox(request.requestSteering);
67
43
  const contextCompaction = createSessionMemoryAwareCompactionController(request, createModelStepCompactionController(request, {
68
44
  consumer: SUPERVISOR_DECISION_MODEL_STEP,
@@ -89,23 +65,78 @@ export async function runSupervisorDecision(request, options) {
89
65
  ]),
90
66
  }));
91
67
  for (;;) {
68
+ const preparation = await prepareSupervisorDecision(request, {
69
+ diagnostic: baseDiagnostic,
70
+ includeAcknowledgement: options.resume === undefined && options.includeAcknowledgement === true,
71
+ includeTitle: options.resume === undefined && (options.includeTitle ?? request.shouldGenerateSessionTitle ?? false),
72
+ allowSkillReads: request.knowledgeSkillStore !== undefined && options.allowSkillReads !== false,
73
+ skillReadHead: options.skillReadHead,
74
+ boundSteeringVersion,
75
+ });
76
+ assertBoundModelStepSteeringCurrent(requestSteering, preparation.steeringVersion);
77
+ if (isSupervisorSkillLookup(preparation.selection)) {
78
+ return createDecisionOutcome({ ...preparation.selection, ...preparation.presentation }, preparation.steeringVersion);
79
+ }
80
+ const input = buildSupervisorDecisionInput(request, {
81
+ allowSkillAuthoring: canOfferSupervisorSkillAuthoring(request, options),
82
+ allowMemoryRecall: canOfferMemoryRecall({
83
+ enabled: request.longTermMemory?.enabled === true,
84
+ recallCount: options.memoryRecallCount ?? 0,
85
+ maxRecallCallsPerRequest: request.memoryRecallLimit,
86
+ }),
87
+ ...(memoryRecallMessage ? { memoryRecallMessage } : {}),
88
+ ...(initialMemoryMessage ? { initialMemoryMessage } : {}),
89
+ ...buildSupervisorCapabilityBriefOptions(request, options),
90
+ toolResults: options.toolResults,
91
+ ...(options.skillReadHead ? { skillReadHead: options.skillReadHead } : {}),
92
+ includeAcknowledgement: false,
93
+ includeTitle: false,
94
+ ...(options.allowedRoleIds === undefined
95
+ ? {}
96
+ : { allowedRoleIds: options.allowedRoleIds }),
97
+ ...(options.resume === undefined ? {} : { resume: options.resume }),
98
+ ...(options.workerCapabilityAffordances === undefined
99
+ ? {}
100
+ : {
101
+ workerCapabilityAffordances: options.workerCapabilityAffordances,
102
+ }),
103
+ ...(options.availableWorkerCapabilityCatalog === undefined
104
+ ? {}
105
+ : {
106
+ availableWorkerCapabilityCatalog: options.availableWorkerCapabilityCatalog,
107
+ }),
108
+ diagnostic: routingDiagnostic,
109
+ });
92
110
  const routing = await runRoutingPhase({
93
111
  request,
94
112
  requestSteering,
95
- boundSteeringVersion,
113
+ boundSteeringVersion: preparation.steeringVersion,
96
114
  input,
97
115
  diagnostic: routingDiagnostic,
98
- contextCompaction: createSupervisorCapabilityBriefReadmissionController(request, { input, controller: contextCompaction }),
116
+ contextCompaction: createSupervisorArtifactPathsReadmissionController(request, {
117
+ projection: input.artifactPathsProjection,
118
+ format: input.format,
119
+ includeInstructions: true,
120
+ controller: createSupervisorCapabilityBriefReadmissionController(request, { input, controller: contextCompaction }),
121
+ }),
99
122
  });
123
+ if (routing.decision.action === "author_skill") {
124
+ const authored = await runSupervisorSkillAuthoring(request, {
125
+ ...options, diagnostic: baseDiagnostic,
126
+ boundSteeringVersion: routing.steeringVersion, contextCompaction,
127
+ });
128
+ return createDecisionOutcome({ ...authored.decision, ...preparation.presentation }, authored.steeringVersion);
129
+ }
100
130
  if (routing.decision.action === "invoke_role" &&
101
131
  routing.decision.roleId === "reviewer") {
102
132
  return createDecisionOutcome(Object.freeze({
103
133
  ...routing.decision,
134
+ ...preparation.presentation,
104
135
  objective: resolveCanonicalReviewerCompletionTargetText(request.prompt),
105
136
  }), routing.steeringVersion);
106
137
  }
107
138
  if (!requiresWorkingDirectory(routing.decision)) {
108
- return createDecisionOutcome(routing.decision, routing.steeringVersion);
139
+ return createDecisionOutcome({ ...routing.decision, ...preparation.presentation }, routing.steeringVersion);
109
140
  }
110
141
  if (!requestSteering.isCurrent(routing.steeringVersion)) {
111
142
  tracePhaseSuperseded({
@@ -128,7 +159,12 @@ export async function runSupervisorDecision(request, options) {
128
159
  boundSteeringVersion,
129
160
  frozenDecision: routing.decision,
130
161
  diagnostic: workingDirectoryDiagnostic,
131
- contextCompaction,
162
+ contextCompaction: createSupervisorArtifactPathsReadmissionController(request, {
163
+ projection: input.artifactPathsProjection,
164
+ format: workingDirectoryInput.format,
165
+ includeInstructions: false,
166
+ controller: contextCompaction,
167
+ }),
132
168
  });
133
169
  const merged = mergeSupervisorWorkingDirectory(routing.decision, workingDirectory.decision);
134
170
  if (workingDirectory.steeringVersion !== routing.steeringVersion ||
@@ -142,124 +178,6 @@ export async function runSupervisorDecision(request, options) {
142
178
  });
143
179
  continue;
144
180
  }
145
- return createDecisionOutcome(merged, workingDirectory.steeringVersion);
181
+ return createDecisionOutcome({ ...merged, ...preparation.presentation }, workingDirectory.steeringVersion);
146
182
  }
147
183
  }
148
- function createDecisionOutcome(decision, steeringVersion) {
149
- return Object.freeze({ decision, steeringVersion });
150
- }
151
- async function runRoutingPhase(params) {
152
- const startedAt = Date.now();
153
- traceSupervisorModelStarted({
154
- diagnostic: params.diagnostic,
155
- allowMemoryRecall: params.input.allowMemoryRecall,
156
- messageCount: params.input.context.messages.length,
157
- messageCharacterCount: params.input.context.messages.reduce((total, message) => total + message.content.length, 0),
158
- includeAcknowledgement: params.input.includeAcknowledgement,
159
- includeTitle: params.input.includeTitle,
160
- allowedRoleIds: params.input.allowedRoleIds,
161
- availableWorkerCapabilityCatalog: params.input.availableWorkerCapabilityCatalog,
162
- });
163
- try {
164
- const accepted = await invokeStructuredModelStep({
165
- request: params.request,
166
- boundSteeringVersion: params.boundSteeringVersion,
167
- modelStep: params.input.modelStep,
168
- format: params.input.format,
169
- messages: params.input.context.messages,
170
- contextCompaction: params.contextCompaction,
171
- timeoutReason: "supervisor_decision_timeout",
172
- invalidOutputReason: "invalid_supervisor_decision",
173
- parse: (text) => captureAcceptedPhase(parseSupervisorDecisionOutput(text, {
174
- includeAcknowledgement: params.input.includeAcknowledgement,
175
- includeTitle: params.input.includeTitle,
176
- includeResponseRecommendation: params.input.includeResponseRecommendation,
177
- allowMemoryRecall: params.input.allowMemoryRecall,
178
- allowedRoleIds: params.input.allowedRoleIds,
179
- availableWorkerCapabilityCatalog: params.input.availableWorkerCapabilityCatalog,
180
- diagnostic: params.diagnostic,
181
- }), params.requestSteering),
182
- });
183
- traceSupervisorModelCompleted({
184
- diagnostic: params.diagnostic,
185
- decision: accepted.decision,
186
- durationMs: Date.now() - startedAt,
187
- });
188
- return accepted;
189
- }
190
- catch (error) {
191
- tracePhaseFailure(params.diagnostic, startedAt, error);
192
- throw error;
193
- }
194
- }
195
- async function runWorkingDirectoryPhase(params) {
196
- const startedAt = Date.now();
197
- traceSupervisorWorkingDirectoryModelStarted({
198
- diagnostic: params.diagnostic,
199
- messageCount: params.input.messages.length,
200
- messageCharacterCount: params.input.messages.reduce((total, message) => total + message.content.length, 0),
201
- frozenDecision: params.frozenDecision,
202
- });
203
- try {
204
- const accepted = await invokeStructuredModelStep({
205
- request: params.request,
206
- boundSteeringVersion: params.boundSteeringVersion,
207
- modelStep: params.input.modelStep,
208
- format: params.input.format,
209
- messages: params.input.messages,
210
- contextCompaction: params.contextCompaction,
211
- timeoutReason: "supervisor_decision_timeout",
212
- invalidOutputReason: "invalid_supervisor_decision",
213
- parse: (text) => captureAcceptedPhase(parseSupervisorWorkingDirectoryOutput(text, {
214
- diagnostic: params.diagnostic,
215
- }), params.requestSteering),
216
- });
217
- traceSupervisorModelCompleted({
218
- diagnostic: params.diagnostic,
219
- decision: mergeSupervisorWorkingDirectory(params.frozenDecision, accepted.decision),
220
- durationMs: Date.now() - startedAt,
221
- });
222
- return accepted;
223
- }
224
- catch (error) {
225
- tracePhaseFailure(params.diagnostic, startedAt, error);
226
- throw error;
227
- }
228
- }
229
- function captureAcceptedPhase(parsed, requestSteering) {
230
- if (!parsed.ok) {
231
- return parsed;
232
- }
233
- return Object.freeze({
234
- ok: true,
235
- decision: Object.freeze({
236
- decision: parsed.decision,
237
- steeringVersion: requestSteering.snapshot().version,
238
- }),
239
- });
240
- }
241
- function requiresWorkingDirectory(decision) {
242
- return (decision.action === "invoke_role" &&
243
- (decision.roleId === "planner" || decision.roleId === "worker"));
244
- }
245
- function tracePhaseFailure(diagnostic, startedAt, error) {
246
- traceSupervisorModelFailed({
247
- diagnostic,
248
- durationMs: Date.now() - startedAt,
249
- errorType: error instanceof Error && error.name ? error.name : typeof error,
250
- invalidStructuredOutput: error instanceof StructuredModelInvalidOutputError,
251
- });
252
- }
253
- function tracePhaseSuperseded(params) {
254
- traceSupervisorDecisionPhaseSuperseded({
255
- diagnostic: params.diagnostic,
256
- routingSteeringVersion: params.routingSteeringVersion,
257
- currentSteeringVersion: params.requestSteering.snapshot().version,
258
- ...(params.workingDirectorySteeringVersion === undefined
259
- ? {}
260
- : {
261
- workingDirectorySteeringVersion: params.workingDirectorySteeringVersion,
262
- }),
263
- checkpoint: params.checkpoint,
264
- });
265
- }
@@ -0,0 +1,21 @@
1
+ import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
2
+ import type { RequestExecutionScope } from "../../request/execution-scope.js";
3
+ import { type SupervisorDecisionDiagnosticContext } from "./contracts.js";
4
+ export declare function buildSupervisorSkillSelectionInput(request: RequestExecutionScope, options?: {
5
+ skillReadHead?: RoleCallLedgerHead;
6
+ diagnostic?: SupervisorDecisionDiagnosticContext;
7
+ }): {
8
+ format: import("../../../model-gateway/types.js").ModelGatewayJsonSchemaFormat;
9
+ context: Readonly<{
10
+ messages: import("../../../model-gateway/types.js").ChatMessage[];
11
+ selectedHistoryMessageIds: string[];
12
+ omittedHistoryMessageIds: string[];
13
+ budget: import("../../context/request-context-contracts.js").RequestContextBudgetEstimate & {
14
+ parts: import("../../context/request-context-contracts.js").RequestContextBudgetParts;
15
+ };
16
+ compaction: Readonly<{
17
+ applied: boolean;
18
+ compactedSourceRefs: readonly string[];
19
+ }>;
20
+ }>;
21
+ };
@@ -0,0 +1,29 @@
1
+ import { isKnowledgeSkillStorageFailure } from "../../knowledge-skills/personal-contracts.js";
2
+ import { SUPERVISOR_DECISION_MODEL_STEP } from "./contracts.js";
3
+ import { buildSupervisorPreparationInput } from "./preparation-input.js";
4
+ import { createSupervisorSkillSelectionFormat, SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS } from "./skill-selection.js";
5
+ export function buildSupervisorSkillSelectionInput(request, options = {}) {
6
+ const reads = options.skillReadHead?.state.skillReads ?? [];
7
+ const loadedIds = new Set(reads.flatMap((read) => read.operation === "read_skills" && read.result.outcome === "completed"
8
+ ? read.result.skills.map((skill) => skill.skillId) : []));
9
+ const lastList = [...reads].reverse().find((read) => read.operation === "list_skills" && read.result.outcome === "completed");
10
+ const metadata = lastList?.result.outcome === "completed"
11
+ ? lastList.result.skills : readCandidateMetadata(request);
12
+ return buildSupervisorPreparationInput(request, {
13
+ instructions: SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS,
14
+ format: createSupervisorSkillSelectionFormat(),
15
+ diagnostic: options.diagnostic ?? { requestId: request.requestId, modelStep: SUPERVISOR_DECISION_MODEL_STEP, decisionPhase: "skill_selection" },
16
+ availableSkills: metadata.filter((skill) => !loadedIds.has(skill.skillId)),
17
+ expandedCatalog: lastList !== undefined,
18
+ });
19
+ }
20
+ function readCandidateMetadata(request) {
21
+ try {
22
+ return request.knowledgeSkillStore?.list() ?? [];
23
+ }
24
+ catch (error) {
25
+ if (isKnowledgeSkillStorageFailure(error))
26
+ return [];
27
+ throw error;
28
+ }
29
+ }
@@ -0,0 +1,16 @@
1
+ import type { ModelGatewayJsonSchemaFormat } from "../../../model-gateway/types.js";
2
+ import type { StructuredModelParseResult } from "../../model/invoke-structured-step.js";
3
+ import { type SkillReadDecision } from "../skill-read-decision.js";
4
+ type SupervisorSkillRead = Extract<SkillReadDecision, {
5
+ action: "read_skills";
6
+ }>;
7
+ export type SupervisorSkillSelection = SupervisorSkillRead | Readonly<{
8
+ action: "continue";
9
+ }>;
10
+ export declare function isSupervisorSkillLookup(selection: SkillReadDecision | Readonly<{
11
+ action: "continue";
12
+ }>): selection is SupervisorSkillRead;
13
+ export declare function createSupervisorSkillSelectionFormat(): ModelGatewayJsonSchemaFormat;
14
+ export declare const SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS: string;
15
+ export declare function parseSupervisorSkillSelectionOutput(text: string): StructuredModelParseResult<SupervisorSkillSelection>;
16
+ export {};
@@ -0,0 +1,44 @@
1
+ import { createStructuredDecisionEnvelopeSchema, readStructuredDecisionEnvelope } from "../../model/structured-decision-envelope.js";
2
+ import { createSkillReadDecisionSchemas, parseSkillReadDecision } from "../skill-read-decision.js";
3
+ const READ_OPTIONS = Object.freeze({ acknowledgementMaxLength: 0, titleMaxLength: 0, allowSkillReads: true });
4
+ export function isSupervisorSkillLookup(selection) {
5
+ return selection.action === "read_skills";
6
+ }
7
+ export function createSupervisorSkillSelectionFormat() {
8
+ const [, readSchema] = createSkillReadDecisionSchemas(READ_OPTIONS);
9
+ return {
10
+ type: "json_schema", name: "supervisor_skill_selection", strict: true,
11
+ schema: createStructuredDecisionEnvelopeSchema([
12
+ { type: "object", properties: { action: { type: "string", enum: ["continue"] } }, required: ["action"], additionalProperties: false },
13
+ readSchema,
14
+ ]),
15
+ postValidatedSchemaConstraints: [{ keyword: "maxLength", path: "/properties/decision/anyOf/1/properties/skillIds/items/maxLength" }],
16
+ };
17
+ }
18
+ export const SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS = [
19
+ "Match the user's request to Available Skills. Your only task is selecting relevant guidance; return only the supplied JSON shape.",
20
+ "Select a Skill only when its description is relevant to the requested task, resources, workflow or answer style. Do not select Skills merely because they exist. No relevant match: choose continue. Greetings and standalone factual questions normally need no Skill.",
21
+ "For a relevant match, choose read_skills with up to eight exact IDs or full names in skillIds. Percent-decode displayed IDs. A user request to create or edit a Skill matches Skill Creator.",
22
+ "Skills already read successfully for this request are omitted; do not request them again. Metadata is not document content and grants no authority or completion evidence.",
23
+ "The available catalog is already supplied. Choose read_skills from the displayed metadata or continue. Reading is optional; do not invent a match.",
24
+ ].join("\n");
25
+ export function parseSupervisorSkillSelectionOutput(text) {
26
+ let record;
27
+ try {
28
+ record = readStructuredDecisionEnvelope(JSON.parse(text));
29
+ }
30
+ catch { /* Rejected below. */ }
31
+ if (!record)
32
+ return { ok: false, stage: "json_envelope", issues: [{ code: "skill_selection_envelope_invalid", path: "decision", message: "Return one decision object." }] };
33
+ if (isContinueSelection(record))
34
+ return { ok: true, decision: Object.freeze({ action: "continue" }) };
35
+ const parsed = parseSkillReadDecision(record, READ_OPTIONS);
36
+ if (!parsed.ok)
37
+ return parsed;
38
+ if (!isSupervisorSkillLookup(parsed.decision))
39
+ return { ok: false, stage: "domain_parser", issues: [{ code: "skill_selection_action_invalid", path: "decision.action", message: "Choose read_skills or continue." }] };
40
+ return { ok: true, decision: parsed.decision };
41
+ }
42
+ function isContinueSelection(record) {
43
+ return record.action === "continue" && Object.keys(record).length === 1;
44
+ }
@@ -3,6 +3,7 @@ import type { ChatMessage } from "../../../model-gateway/types.js";
3
3
  import { type RequestToolResultsView } from "../../context/request-tool-results.js";
4
4
  import type { RequestExecutionSeed } from "../../request/contracts.js";
5
5
  import { SUPERVISOR_RESPONSE_MODEL_STEP, type SupervisorResponseCallIdentity, type SupervisorResponseResumeContext } from "./contracts.js";
6
+ import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
6
7
  export type SupervisorResponseInputRequest = Pick<RequestExecutionSeed, "requestId" | "prompt" | "historyMessages" | "sessionKind" | "runnerConfig" | "attachments" | "agentMode" | "modelPreference" | "modelPolicy" | "scheduledExecution" | "automationOutputContract"> & Partial<Pick<RequestExecutionSeed, "onEvent" | "sessionMemory">>;
7
8
  export declare function buildSupervisorResponseInput(request: SupervisorResponseInputRequest, options: SupervisorResponseInputOptions): {
8
9
  context: RequestContextProjection;
@@ -14,8 +15,10 @@ export declare function buildSupervisorMemoryAuthoringInput(request: SupervisorR
14
15
  };
15
16
  type SupervisorResponseInputOptions = Readonly<{
16
17
  responseRecommendation?: string;
18
+ responseRecommendationOrigin?: "skill_authoring_no_save";
17
19
  call: SupervisorResponseCallIdentity;
18
20
  toolResults: RequestToolResultsView;
21
+ skillReadHead?: RoleCallLedgerHead;
19
22
  resume?: SupervisorResponseResumeContext;
20
23
  longTermMemoryMessage?: ChatMessage;
21
24
  memoryAuthoringMessage?: ChatMessage;
@@ -11,6 +11,7 @@ import { createSupervisorMemoryCandidatesFormat } from "./memory-authoring.js";
11
11
  import { buildSupervisorResponseRecommendationMessage } from "./response-recommendation.js";
12
12
  import { buildSupervisorMemoryAuthoringInstructions, buildSupervisorResponseInstructions, } from "./prompt.js";
13
13
  import { automationResponseFormat } from "../../request/automation-output-contract.js";
14
+ import { buildCoreSkillReadContextMessages } from "../../context/core-skill-read-context.js";
14
15
  export function buildSupervisorResponseInput(request, options) {
15
16
  const responseRecommendationMessage = buildSupervisorResponseRecommendationMessage(options);
16
17
  const scheduledExecution = projectScheduledExecutionContext(request, [buildSupervisorResponseInstructions({
@@ -24,6 +25,10 @@ export function buildSupervisorResponseInput(request, options) {
24
25
  : [])].join("\n"), "response");
25
26
  return buildSupervisorInput(request, options, {
26
27
  ...scheduledExecution,
28
+ referenceMessages: [
29
+ ...(scheduledExecution.referenceMessages ?? []),
30
+ ...buildCoreSkillReadContextMessages(options.skillReadHead),
31
+ ],
27
32
  ...(request.automationOutputContract
28
33
  ? { format: automationResponseFormat(request.automationOutputContract) }
29
34
  : {}),
@@ -1,3 +1,4 @@
1
+ import { SUPER_SKILL_GUIDANCE_INSTRUCTION } from "../supervisor-skill-instructions.js";
1
2
  import { CONVERSATION_MEMORY_AUTHORING_INSTRUCTIONS } from "../../long-term-memory/conversation-authoring/prompt.js";
2
3
  export function buildSupervisorResponseInstructions(params) {
3
4
  return [
@@ -31,6 +32,7 @@ export function buildSupervisorResponseInstructions(params) {
31
32
  "Use each capsule result only for its exact reported outcome, observed effect, and summary. It does not by itself prove completion of the delegated work or of the user request.",
32
33
  ]
33
34
  : []),
35
+ SUPER_SKILL_GUIDANCE_INSTRUCTION,
34
36
  "Do not mention internal role names, call identifiers, runtime contracts, or orchestration unless the user explicitly asks about them.",
35
37
  ].join("\n");
36
38
  }
@@ -1,3 +1,4 @@
1
+ import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
1
2
  import type { ChatMessage } from "../../../model-gateway/types.js";
2
3
  import type { RequestToolResultsView } from "../../context/request-tool-results.js";
3
4
  import type { SupervisorResponseCallIdentity, SupervisorResponseResumeContext } from "./contracts.js";
@@ -5,6 +6,8 @@ export declare const SUPERVISOR_RESPONSE_RECOMMENDATION_KIND = "runtime_supervis
5
6
  export declare function buildSupervisorResponseRecommendationMessage(options: Readonly<{
6
7
  call: SupervisorResponseCallIdentity;
7
8
  responseRecommendation?: string;
9
+ responseRecommendationOrigin?: "skill_authoring_no_save";
8
10
  resume?: SupervisorResponseResumeContext;
9
11
  toolResults: RequestToolResultsView;
12
+ skillReadHead?: RoleCallLedgerHead;
10
13
  }>): ChatMessage | undefined;
@@ -6,20 +6,40 @@ export function buildSupervisorResponseRecommendationMessage(options) {
6
6
  if (!isSupervisorResponseRecommendation(options.responseRecommendation)) {
7
7
  throw new Error("supervisor_response_recommendation_invalid");
8
8
  }
9
- if (!canRecommendDirectSupervisorResponse(options)) {
9
+ if (!canProjectSupervisorResponseRecommendation(options)) {
10
10
  throw new Error("supervisor_response_recommendation_scope_invalid");
11
11
  }
12
+ const { limitations, ...semantics } = supervisorResponseRecommendationSemantics(options.responseRecommendationOrigin);
12
13
  return Object.freeze({
13
14
  role: "system",
14
15
  content: JSON.stringify({
15
16
  kind: SUPERVISOR_RESPONSE_RECOMMENDATION_KIND,
16
17
  authority: "accepted_supervisor_decision",
17
- purpose: "guide_direct_response_content",
18
- applicability: "current_direct_response_only",
18
+ ...semantics,
19
19
  callId: options.call.callId,
20
20
  invocationAttempt: options.call.invocationAttempt,
21
21
  responseRecommendation: options.responseRecommendation,
22
- limitations: "Internal answer-content recommendation from the accepted Supervisor decision, not new user intent, execution authority, or completion evidence. Use its relevant substance to compose the answer, subject to the current request and supplied facts. Do not expose the recommendation's internal framing.",
22
+ limitations,
23
23
  }),
24
24
  });
25
25
  }
26
+ function canProjectSupervisorResponseRecommendation(options) {
27
+ if (options.responseRecommendationOrigin === "skill_authoring_no_save")
28
+ return true;
29
+ return canRecommendDirectSupervisorResponse(options);
30
+ }
31
+ function supervisorResponseRecommendationSemantics(origin) {
32
+ if (origin === "skill_authoring_no_save") {
33
+ return {
34
+ purpose: "explain_skill_authoring_no_save",
35
+ applicability: "current_response_after_skill_authoring_no_save",
36
+ outcome: "no_save",
37
+ limitations: "The accepted Skill authoring flow did not produce a save. Use the supplied reason to explain why, subject to the current request and supplied facts. It adds no user intent, execution authority, or completion evidence. This decision does not establish a save; report any earlier save only from its confirmed write result. Do not expose internal routing details.",
38
+ };
39
+ }
40
+ return {
41
+ purpose: "guide_direct_response_content",
42
+ applicability: "current_direct_response_only",
43
+ limitations: "Internal answer-content recommendation from the accepted Supervisor decision, not new user intent, execution authority, or completion evidence. Use its relevant substance to compose the answer, subject to the current request and supplied facts. Do not expose the recommendation's internal framing.",
44
+ };
45
+ }
@@ -1,4 +1,5 @@
1
1
  import type { ChatMessage } from "../../../model-gateway/types.js";
2
+ import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
2
3
  import type { RequestToolResultsView } from "../../context/request-tool-results.js";
3
4
  import type { RequestExecutionScope } from "../../request/execution-scope.js";
4
5
  import { type SupervisorResponseCallIdentity, type SupervisorResponseResumeContext } from "./contracts.js";
@@ -6,16 +7,22 @@ import { type RequestSteeringSnapshot } from "../../request/request-steering.js"
6
7
  import type { RootAuthoredResponse } from "../../long-term-memory/contracts.js";
7
8
  export declare function runSupervisorResponse(request: RequestExecutionScope, options: Readonly<{
8
9
  responseRecommendation?: string;
10
+ responseRecommendationOrigin?: "skill_authoring_no_save";
9
11
  memoryRecallMessage?: ChatMessage;
12
+ initialMemoryMessage?: ChatMessage;
10
13
  call: SupervisorResponseCallIdentity;
11
14
  toolResults: RequestToolResultsView;
15
+ skillReadHead?: RoleCallLedgerHead;
12
16
  resume?: SupervisorResponseResumeContext;
13
17
  }>): Promise<string>;
14
18
  export declare function runSupervisorAuthoredResponse(request: RequestExecutionScope, options: Readonly<{
15
19
  responseRecommendation?: string;
20
+ responseRecommendationOrigin?: "skill_authoring_no_save";
16
21
  memoryRecallMessage?: ChatMessage;
22
+ initialMemoryMessage?: ChatMessage;
17
23
  call: SupervisorResponseCallIdentity;
18
24
  toolResults: RequestToolResultsView;
25
+ skillReadHead?: RoleCallLedgerHead;
19
26
  resume?: SupervisorResponseResumeContext;
20
27
  steeringSnapshot?: RequestSteeringSnapshot;
21
28
  }>): Promise<RootAuthoredResponse>;
@@ -9,7 +9,6 @@ import { buildSupervisorMemoryAuthoringInput, buildSupervisorResponseInput, } fr
9
9
  import { buildSupervisorResponseRepairHint } from "./prompt.js";
10
10
  import { SUPERVISOR_DECISION_MODEL_STEP } from "../supervisor-decision/contracts.js";
11
11
  import { resolveRequestSteeringInbox, } from "../../request/request-steering.js";
12
- import { retrieveResponseLongTermMemory } from "../../long-term-memory/response-context.js";
13
12
  import { authorSupervisorMemoryCandidates } from "./memory-authoring.js";
14
13
  import { canAuthorConversationMemory, prepareConversationMemoryAuthoring, } from "../../long-term-memory/conversation-authoring/context.js";
15
14
  import { assertBoundModelStepSteeringCurrent, isModelStepSteeringSuperseded, } from "../../model/model-step-steering.js";
@@ -32,11 +31,9 @@ export async function runSupervisorAuthoredResponse(request, options) {
32
31
  ? options.steeringSnapshot?.version
33
32
  : undefined);
34
33
  assertBoundModelStepSteeringCurrent(requestSteering, boundSteeringVersion);
35
- const memoryMessage = options.memoryRecallMessage ??
36
- (memoryEnabled && options.steeringSnapshot
37
- ? await retrieveResponseLongTermMemory(request, options.steeringSnapshot)
38
- : undefined);
39
- assertBoundModelStepSteeringCurrent(requestSteering, boundSteeringVersion);
34
+ const memoryMessage = memoryEnabled
35
+ ? options.memoryRecallMessage ?? options.initialMemoryMessage
36
+ : undefined;
40
37
  const inputOptions = {
41
38
  ...options,
42
39
  ...(memoryMessage ? { longTermMemoryMessage: memoryMessage } : {}),
@@ -0,0 +1,43 @@
1
+ import type { ModelGatewayJsonSchemaFormat } from "../../../model-gateway/types.js";
2
+ import type { KnowledgeSkillMetadata } from "../../knowledge-skills/store.js";
3
+ import type { StructuredModelParseResult } from "../../model/invoke-structured-step.js";
4
+ export type SupervisorSkillAuthoringSelection = Readonly<{
5
+ action: "create_skill";
6
+ name: string;
7
+ description: string;
8
+ }> | Readonly<{
9
+ action: "update_skill";
10
+ skillId: string;
11
+ name?: string;
12
+ description?: string;
13
+ }> | Readonly<{
14
+ action: "no_save";
15
+ reason: string;
16
+ }>;
17
+ export type SupervisorSkillWriteSelection = Exclude<SupervisorSkillAuthoringSelection, {
18
+ action: "no_save";
19
+ }>;
20
+ export type SupervisorSkillAuthoringOptions = Readonly<{
21
+ writeOperationIds: readonly string[];
22
+ personalSkills: readonly KnowledgeSkillMetadata[];
23
+ }>;
24
+ export declare const SUPERVISOR_SKILL_NO_SAVE_REASON_MAX_LENGTH = 300;
25
+ export declare const SUPERVISOR_SKILL_AUTHORING_ROUTE_SCHEMA: {
26
+ type: string;
27
+ properties: {
28
+ action: {
29
+ type: string;
30
+ enum: string[];
31
+ };
32
+ };
33
+ required: string[];
34
+ additionalProperties: boolean;
35
+ };
36
+ export declare function isSupervisorSkillWriteSelection(decision: Readonly<{
37
+ action: string;
38
+ }>): decision is SupervisorSkillWriteSelection;
39
+ export declare function parseSupervisorSkillAuthoringRoute(record: Readonly<Record<string, unknown>>, allowed: boolean): StructuredModelParseResult<Readonly<{
40
+ action: "author_skill";
41
+ }>>;
42
+ export declare function createSupervisorSkillAuthoringFormat(options: SupervisorSkillAuthoringOptions): ModelGatewayJsonSchemaFormat;
43
+ export declare function parseSupervisorSkillAuthoringOutput(text: string, options: SupervisorSkillAuthoringOptions): StructuredModelParseResult<SupervisorSkillAuthoringSelection>;