@abot-ai/runtime 1.0.0 → 1.1.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 (549) hide show
  1. package/README.md +17 -3
  2. package/dist/scripts/add-runtime-model.js +4 -0
  3. package/dist/scripts/configure-long-term-memory.d.ts +6 -0
  4. package/dist/scripts/configure-long-term-memory.js +139 -0
  5. package/dist/scripts/init-runtime.js +11 -1
  6. package/dist/scripts/runtime-setup-files.d.ts +1 -0
  7. package/dist/scripts/runtime-setup-files.js +4 -0
  8. package/dist/src/capabilities/normal-invocation/contracts.d.ts +1 -0
  9. package/dist/src/capabilities/normal-invocation/validator.d.ts +5 -0
  10. package/dist/src/capabilities/normal-invocation/validator.js +35 -2
  11. package/dist/src/capabilities/tool-definition-validator/definition-fields.d.ts +7 -0
  12. package/dist/src/capabilities/tool-definition-validator/definition-fields.js +156 -0
  13. package/dist/src/capabilities/tool-definition-validator/definition-parser.d.ts +2 -0
  14. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +76 -0
  15. package/dist/src/capabilities/tool-definition-validator/definition-shape.d.ts +7 -0
  16. package/dist/src/capabilities/tool-definition-validator/definition-shape.js +34 -0
  17. package/dist/src/capabilities/tool-definition-validator/event-presentation.d.ts +2 -0
  18. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +97 -0
  19. package/dist/src/capabilities/tool-definition-validator/module-registry.d.ts +3 -0
  20. package/dist/src/capabilities/tool-definition-validator/module-registry.js +99 -0
  21. package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.d.ts +2 -0
  22. package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.js +190 -0
  23. package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.d.ts +11 -0
  24. package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.js +155 -0
  25. package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.d.ts +24 -0
  26. package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.js +193 -0
  27. package/dist/src/capabilities/tool-definition-validator.d.ts +2 -4
  28. package/dist/src/capabilities/tool-definition-validator.js +2 -776
  29. package/dist/src/cli/abot.js +11 -2
  30. package/dist/src/model-gateway/client/embeddings.d.ts +3 -0
  31. package/dist/src/model-gateway/client/embeddings.js +48 -0
  32. package/dist/src/model-gateway/client.d.ts +3 -1
  33. package/dist/src/model-gateway/client.js +5 -0
  34. package/dist/src/model-gateway/embeddings/constants.d.ts +1 -0
  35. package/dist/src/model-gateway/embeddings/constants.js +1 -0
  36. package/dist/src/model-gateway/embeddings/discovery.d.ts +10 -0
  37. package/dist/src/model-gateway/embeddings/discovery.js +39 -0
  38. package/dist/src/model-gateway/embeddings/execution.d.ts +16 -0
  39. package/dist/src/model-gateway/embeddings/execution.js +64 -0
  40. package/dist/src/model-gateway/embeddings/fingerprint.d.ts +3 -0
  41. package/dist/src/model-gateway/embeddings/fingerprint.js +36 -0
  42. package/dist/src/model-gateway/embeddings/profile.d.ts +11 -0
  43. package/dist/src/model-gateway/embeddings/profile.js +37 -0
  44. package/dist/src/model-gateway/embeddings/server-handler.d.ts +3 -0
  45. package/dist/src/model-gateway/embeddings/server-handler.js +89 -0
  46. package/dist/src/model-gateway/embeddings/validation.d.ts +7 -0
  47. package/dist/src/model-gateway/embeddings/validation.js +69 -0
  48. package/dist/src/model-gateway/index.d.ts +5 -3
  49. package/dist/src/model-gateway/index.js +3 -1
  50. package/dist/src/model-gateway/providers/contracts.d.ts +27 -1
  51. package/dist/src/model-gateway/providers/ollama/adapter.js +4 -0
  52. package/dist/src/model-gateway/providers/ollama/base-url.d.ts +1 -0
  53. package/dist/src/model-gateway/providers/ollama/base-url.js +4 -0
  54. package/dist/src/model-gateway/providers/ollama/embedding-models.d.ts +2 -0
  55. package/dist/src/model-gateway/providers/ollama/embedding-models.js +31 -0
  56. package/dist/src/model-gateway/providers/ollama/embeddings.d.ts +2 -0
  57. package/dist/src/model-gateway/providers/ollama/embeddings.js +43 -0
  58. package/dist/src/model-gateway/providers/ollama/request-diagnostics.js +2 -1
  59. package/dist/src/model-gateway/providers/openai/adapter.js +2 -0
  60. package/dist/src/model-gateway/providers/openai/embeddings.d.ts +2 -0
  61. package/dist/src/model-gateway/providers/openai/embeddings.js +87 -0
  62. package/dist/src/model-gateway/providers/openai/payload.js +5 -8
  63. package/dist/src/model-gateway/server/contracts.d.ts +5 -3
  64. package/dist/src/model-gateway/server/create-server.js +9 -0
  65. package/dist/src/model-gateway/server/errors.js +34 -0
  66. package/dist/src/model-gateway/server/index.d.ts +2 -0
  67. package/dist/src/model-gateway/server/index.js +2 -0
  68. package/dist/src/model-gateway/server/provider-fetch.d.ts +5 -3
  69. package/dist/src/model-gateway/server/provider-fetch.js +3 -1
  70. package/dist/src/model-gateway/server/request-body.d.ts +1 -1
  71. package/dist/src/model-gateway/types.d.ts +39 -0
  72. package/dist/src/plugin-contract/manifest.d.ts +1 -0
  73. package/dist/src/runtime/adapters/index.d.ts +4 -0
  74. package/dist/src/runtime/adapters/index.js +4 -0
  75. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.d.ts +2 -0
  76. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +77 -0
  77. package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.d.ts +4 -0
  78. package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.js +52 -0
  79. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +31 -0
  80. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.js +17 -0
  81. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -0
  82. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +36 -0
  83. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.d.ts +2 -0
  84. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +114 -0
  85. package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.d.ts +2 -0
  86. package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +103 -0
  87. package/dist/src/runtime/adapters/long-term-memory/file-lock.d.ts +2 -0
  88. package/dist/src/runtime/adapters/long-term-memory/file-lock.js +10 -0
  89. package/dist/src/runtime/adapters/long-term-memory/file-repository.d.ts +2 -0
  90. package/dist/src/runtime/adapters/long-term-memory/file-repository.js +57 -0
  91. package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.d.ts +2 -0
  92. package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.js +21 -0
  93. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.d.ts +5 -0
  94. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +60 -0
  95. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +8 -0
  96. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +34 -0
  97. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.d.ts +7 -1
  98. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +54 -25
  99. package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +18 -4
  100. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.d.ts +6 -1
  101. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +25 -12
  102. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +22 -0
  103. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +65 -0
  104. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +44 -0
  105. package/dist/src/runtime/adapters/registered-tool-normal-invocations.d.ts +1 -1
  106. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +14 -4
  107. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +218 -87
  108. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.d.ts +7 -0
  109. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.js +84 -0
  110. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +5 -4
  111. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +7 -1
  112. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.d.ts +35 -0
  113. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +32 -0
  114. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +3 -3
  115. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +13 -8
  116. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +5 -4
  117. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +4 -2
  118. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +12 -4
  119. package/dist/src/runtime/composition.d.ts +3 -0
  120. package/dist/src/runtime/composition.js +5 -2
  121. package/dist/src/runtime/config/builders.js +34 -1
  122. package/dist/src/runtime/config/effective-model-config-validation.js +9 -0
  123. package/dist/src/runtime/config/embedding-profiles.d.ts +5 -0
  124. package/dist/src/runtime/config/embedding-profiles.js +66 -0
  125. package/dist/src/runtime/config/fields.js +22 -0
  126. package/dist/src/runtime/config/long-term-memory.d.ts +9 -0
  127. package/dist/src/runtime/config/long-term-memory.js +71 -0
  128. package/dist/src/runtime/config/runner/config-normalization.d.ts +16 -0
  129. package/dist/src/runtime/config/runner/config-normalization.js +109 -0
  130. package/dist/src/runtime/config/runner/loader.d.ts +1 -1
  131. package/dist/src/runtime/config/runner/loader.js +2 -69
  132. package/dist/src/runtime/config/runner/model-policy.js +3 -0
  133. package/dist/src/runtime/config/runner/schema-version.d.ts +14 -0
  134. package/dist/src/runtime/config/runner/schema-version.js +35 -0
  135. package/dist/src/runtime/config/runner/versioned-config.d.ts +2 -0
  136. package/dist/src/runtime/config/runner/versioned-config.js +51 -0
  137. package/dist/src/runtime/config/schema.js +36 -0
  138. package/dist/src/runtime/config/types.d.ts +1 -0
  139. package/dist/src/runtime/config/validation/environment-config-validation.d.ts +1 -0
  140. package/dist/src/runtime/config/validation/environment-config-validation.js +41 -0
  141. package/dist/src/runtime/config/validation/model-invocation-config-validation.d.ts +2 -0
  142. package/dist/src/runtime/config/validation/model-invocation-config-validation.js +64 -0
  143. package/dist/src/runtime/config/validation/model-invocation-override-validation.d.ts +2 -0
  144. package/dist/src/runtime/config/validation/model-invocation-override-validation.js +72 -0
  145. package/dist/src/runtime/config/validation/model-profile-validation.d.ts +4 -0
  146. package/dist/src/runtime/config/validation/model-profile-validation.js +87 -0
  147. package/dist/src/runtime/config/validation/model-registry-validation.d.ts +2 -0
  148. package/dist/src/runtime/config/validation/model-registry-validation.js +118 -0
  149. package/dist/src/runtime/config/validation/path-config-validation.d.ts +1 -0
  150. package/dist/src/runtime/config/validation/path-config-validation.js +7 -0
  151. package/dist/src/runtime/config/validation/runtime-config-field-validation.d.ts +12 -0
  152. package/dist/src/runtime/config/validation/runtime-config-field-validation.js +158 -0
  153. package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +9 -0
  154. package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +13 -0
  155. package/dist/src/runtime/config/validation/runtime-root-section-validation.d.ts +6 -0
  156. package/dist/src/runtime/config/validation/runtime-root-section-validation.js +82 -0
  157. package/dist/src/runtime/config/validation/web-ui-config-validation.d.ts +3 -0
  158. package/dist/src/runtime/config/validation/web-ui-config-validation.js +26 -0
  159. package/dist/src/runtime/config/validation.d.ts +4 -15
  160. package/dist/src/runtime/config/validation.js +27 -499
  161. package/dist/src/runtime/config.js +3 -0
  162. package/dist/src/runtime/context/accepted-capability-action.d.ts +11 -0
  163. package/dist/src/runtime/context/accepted-capability-action.js +29 -0
  164. package/dist/src/runtime/context/model-step-compaction.js +6 -0
  165. package/dist/src/runtime/context/operation-supervision-evidence.d.ts +37 -0
  166. package/dist/src/runtime/context/operation-supervision-evidence.js +90 -0
  167. package/dist/src/runtime/context/request-tool-results.d.ts +3 -0
  168. package/dist/src/runtime/context/request-tool-results.js +11 -2
  169. package/dist/src/runtime/default-adapters.d.ts +3 -0
  170. package/dist/src/runtime/default-adapters.js +64 -3
  171. package/dist/src/runtime/index.d.ts +1 -0
  172. package/dist/src/runtime/index.js +1 -0
  173. package/dist/src/runtime/lifecycle/request-finalizer.d.ts +3 -0
  174. package/dist/src/runtime/lifecycle/request-finalizer.js +8 -0
  175. package/dist/src/runtime/long-term-memory/background-save-queue.d.ts +17 -0
  176. package/dist/src/runtime/long-term-memory/background-save-queue.js +66 -0
  177. package/dist/src/runtime/long-term-memory/candidate-persistence.d.ts +16 -0
  178. package/dist/src/runtime/long-term-memory/candidate-persistence.js +109 -0
  179. package/dist/src/runtime/long-term-memory/candidate-preparation.d.ts +8 -0
  180. package/dist/src/runtime/long-term-memory/candidate-preparation.js +36 -0
  181. package/dist/src/runtime/long-term-memory/candidate-processing.d.ts +9 -0
  182. package/dist/src/runtime/long-term-memory/candidate-processing.js +79 -0
  183. package/dist/src/runtime/long-term-memory/contracts.d.ts +108 -0
  184. package/dist/src/runtime/long-term-memory/contracts.js +1 -0
  185. package/dist/src/runtime/long-term-memory/diagnostics.d.ts +9 -0
  186. package/dist/src/runtime/long-term-memory/diagnostics.js +42 -0
  187. package/dist/src/runtime/long-term-memory/embedding-batches.d.ts +13 -0
  188. package/dist/src/runtime/long-term-memory/embedding-batches.js +87 -0
  189. package/dist/src/runtime/long-term-memory/events.d.ts +13 -0
  190. package/dist/src/runtime/long-term-memory/events.js +15 -0
  191. package/dist/src/runtime/long-term-memory/finalization.d.ts +8 -0
  192. package/dist/src/runtime/long-term-memory/finalization.js +24 -0
  193. package/dist/src/runtime/long-term-memory/index.d.ts +6 -0
  194. package/dist/src/runtime/long-term-memory/index.js +6 -0
  195. package/dist/src/runtime/long-term-memory/management/contracts.d.ts +54 -0
  196. package/dist/src/runtime/long-term-memory/management/contracts.js +1 -0
  197. package/dist/src/runtime/long-term-memory/management/errors.d.ts +10 -0
  198. package/dist/src/runtime/long-term-memory/management/errors.js +13 -0
  199. package/dist/src/runtime/long-term-memory/management/mutations.d.ts +17 -0
  200. package/dist/src/runtime/long-term-memory/management/mutations.js +178 -0
  201. package/dist/src/runtime/long-term-memory/management/queries.d.ts +8 -0
  202. package/dist/src/runtime/long-term-memory/management/queries.js +46 -0
  203. package/dist/src/runtime/long-term-memory/management/search.d.ts +7 -0
  204. package/dist/src/runtime/long-term-memory/management/search.js +18 -0
  205. package/dist/src/runtime/long-term-memory/management/service.d.ts +13 -0
  206. package/dist/src/runtime/long-term-memory/management/service.js +61 -0
  207. package/dist/src/runtime/long-term-memory/management/validation.d.ts +24 -0
  208. package/dist/src/runtime/long-term-memory/management/validation.js +77 -0
  209. package/dist/src/runtime/long-term-memory/onboarding/configuration.d.ts +14 -0
  210. package/dist/src/runtime/long-term-memory/onboarding/configuration.js +92 -0
  211. package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +52 -0
  212. package/dist/src/runtime/long-term-memory/onboarding/contracts.js +1 -0
  213. package/dist/src/runtime/long-term-memory/onboarding/service.d.ts +21 -0
  214. package/dist/src/runtime/long-term-memory/onboarding/service.js +88 -0
  215. package/dist/src/runtime/long-term-memory/policies/normalization.d.ts +10 -0
  216. package/dist/src/runtime/long-term-memory/policies/normalization.js +45 -0
  217. package/dist/src/runtime/long-term-memory/policies/reconciliation.d.ts +20 -0
  218. package/dist/src/runtime/long-term-memory/policies/reconciliation.js +21 -0
  219. package/dist/src/runtime/long-term-memory/policies/scoring.d.ts +13 -0
  220. package/dist/src/runtime/long-term-memory/policies/scoring.js +55 -0
  221. package/dist/src/runtime/long-term-memory/policies/sensitive-data.d.ts +5 -0
  222. package/dist/src/runtime/long-term-memory/policies/sensitive-data.js +12 -0
  223. package/dist/src/runtime/long-term-memory/projection.d.ts +4 -0
  224. package/dist/src/runtime/long-term-memory/projection.js +39 -0
  225. package/dist/src/runtime/long-term-memory/ranked-search.d.ts +11 -0
  226. package/dist/src/runtime/long-term-memory/ranked-search.js +111 -0
  227. package/dist/src/runtime/long-term-memory/repository-state.d.ts +4 -0
  228. package/dist/src/runtime/long-term-memory/repository-state.js +131 -0
  229. package/dist/src/runtime/long-term-memory/response-context.d.ts +5 -0
  230. package/dist/src/runtime/long-term-memory/response-context.js +21 -0
  231. package/dist/src/runtime/long-term-memory/retrieval.d.ts +8 -0
  232. package/dist/src/runtime/long-term-memory/retrieval.js +73 -0
  233. package/dist/src/runtime/long-term-memory/service.d.ts +10 -0
  234. package/dist/src/runtime/long-term-memory/service.js +83 -0
  235. package/dist/src/runtime/orchestration/capability-adapters/index.d.ts +2 -0
  236. package/dist/src/runtime/orchestration/capability-adapters/index.js +2 -0
  237. package/dist/src/runtime/orchestration/final-response/authoring-contract.d.ts +10 -0
  238. package/dist/src/runtime/orchestration/final-response/authoring-contract.js +94 -0
  239. package/dist/src/runtime/orchestration/final-response/finalization.d.ts +1 -0
  240. package/dist/src/runtime/orchestration/final-response/finalization.js +1 -0
  241. package/dist/src/runtime/orchestration/final-response/format.d.ts +2 -0
  242. package/dist/src/runtime/orchestration/final-response/format.js +49 -0
  243. package/dist/src/runtime/orchestration/final-response/invoke.d.ts +16 -0
  244. package/dist/src/runtime/orchestration/final-response/invoke.js +24 -0
  245. package/dist/src/runtime/orchestration/role-calls/activation-budget.d.ts +14 -0
  246. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +52 -0
  247. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +154 -0
  248. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +1 -8
  249. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.d.ts +17 -0
  250. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.js +155 -0
  251. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.d.ts +78 -0
  252. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.js +339 -0
  253. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +35 -10
  254. package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.d.ts +6 -0
  255. package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.js +15 -0
  256. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.d.ts +3 -0
  257. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.js +6 -0
  258. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.d.ts +3 -0
  259. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.js +86 -0
  260. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.d.ts +3 -0
  261. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.js +172 -0
  262. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.d.ts +9 -0
  263. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.js +28 -0
  264. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.d.ts +3 -0
  265. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.js +117 -0
  266. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.d.ts +4 -0
  267. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.js +16 -0
  268. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.d.ts +2 -0
  269. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.js +114 -0
  270. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.d.ts +6 -0
  271. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.js +54 -0
  272. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +3 -0
  273. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +206 -0
  274. package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.d.ts +13 -0
  275. package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.js +25 -0
  276. package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.d.ts +3 -0
  277. package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.js +70 -0
  278. package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
  279. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +6 -580
  280. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +45 -5
  281. package/dist/src/runtime/orchestration/role-calls/contracts.js +2 -2
  282. package/dist/src/runtime/orchestration/role-calls/diagnostics.d.ts +4 -0
  283. package/dist/src/runtime/orchestration/role-calls/diagnostics.js +152 -1
  284. package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -0
  285. package/dist/src/runtime/orchestration/role-calls/index.js +6 -0
  286. package/dist/src/runtime/orchestration/role-calls/ledger.js +131 -7
  287. package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.d.ts +11 -0
  288. package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.js +66 -0
  289. package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.d.ts +16 -0
  290. package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.js +52 -0
  291. package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.d.ts +3 -0
  292. package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.js +151 -0
  293. package/dist/src/runtime/orchestration/role-calls/operation-supervision.d.ts +112 -0
  294. package/dist/src/runtime/orchestration/role-calls/operation-supervision.js +197 -0
  295. package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.d.ts +26 -0
  296. package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.js +127 -0
  297. package/dist/src/runtime/orchestration/role-calls/reducer-primitives.d.ts +1 -2
  298. package/dist/src/runtime/orchestration/role-calls/reducer-primitives.js +2 -12
  299. package/dist/src/runtime/orchestration/role-calls/reducer.js +19 -2
  300. package/dist/src/runtime/orchestration/role-calls/transactions.js +62 -5
  301. package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.d.ts +15 -0
  302. package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.js +73 -0
  303. package/dist/src/runtime/orchestration/role-executors/activation/loop.d.ts +0 -1
  304. package/dist/src/runtime/orchestration/role-executors/activation/loop.js +16 -54
  305. package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +14 -0
  306. package/dist/src/runtime/orchestration/role-executors/activation/state-validation.d.ts +13 -1
  307. package/dist/src/runtime/orchestration/role-executors/activation/state-validation.js +137 -1
  308. package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +7 -3
  309. package/dist/src/runtime/orchestration/role-executors/diagnostics.d.ts +2 -0
  310. package/dist/src/runtime/orchestration/role-executors/diagnostics.js +1 -6
  311. package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.d.ts +10 -0
  312. package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.js +8 -0
  313. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.d.ts +14 -0
  314. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.js +76 -0
  315. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.d.ts +10 -0
  316. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.js +160 -0
  317. package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.d.ts +2 -0
  318. package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.js +8 -0
  319. package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.d.ts +24 -0
  320. package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.js +100 -0
  321. package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.d.ts +29 -0
  322. package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.js +193 -0
  323. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.d.ts +11 -0
  324. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +109 -0
  325. package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.d.ts +2 -0
  326. package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.js +34 -0
  327. package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.d.ts +21 -0
  328. package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +167 -0
  329. package/dist/src/runtime/orchestration/worker-capabilities/binding.d.ts +1 -13
  330. package/dist/src/runtime/orchestration/worker-capabilities/binding.js +1 -625
  331. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +57 -14
  332. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +3 -1
  333. package/dist/src/runtime/orchestration/worker-capabilities/controls.d.ts +7 -0
  334. package/dist/src/runtime/orchestration/worker-capabilities/controls.js +50 -0
  335. package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.d.ts +5 -0
  336. package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.js +119 -0
  337. package/dist/src/runtime/orchestration/worker-capabilities/errors.d.ts +6 -0
  338. package/dist/src/runtime/orchestration/worker-capabilities/errors.js +11 -0
  339. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.d.ts +7 -0
  340. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.js +35 -0
  341. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.d.ts +9 -0
  342. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.js +28 -0
  343. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.d.ts +18 -0
  344. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.js +197 -0
  345. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.d.ts +2 -0
  346. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.js +44 -0
  347. package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.d.ts +12 -0
  348. package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +51 -0
  349. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +25 -0
  350. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +111 -0
  351. package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.d.ts +20 -0
  352. package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.js +142 -0
  353. package/dist/src/runtime/orchestration/worker-capabilities/execution.d.ts +10 -14
  354. package/dist/src/runtime/orchestration/worker-capabilities/execution.js +84 -357
  355. package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +3 -0
  356. package/dist/src/runtime/orchestration/worker-capabilities/index.js +3 -0
  357. package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.d.ts +8 -0
  358. package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.js +21 -0
  359. package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +31 -9
  360. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +15 -6
  361. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.js +2 -0
  362. package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +4 -4
  363. package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.d.ts +23 -0
  364. package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.js +109 -0
  365. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  366. package/dist/src/runtime/plugins/manifest-validator.js +20 -0
  367. package/dist/src/runtime/ports.d.ts +10 -1
  368. package/dist/src/runtime/request/contracts.d.ts +7 -0
  369. package/dist/src/runtime/request/dependencies.d.ts +1 -0
  370. package/dist/src/runtime/request/dependencies.js +10 -1
  371. package/dist/src/runtime/request/execution-agent-root-execution.js +5 -4
  372. package/dist/src/runtime/request/execution-facets.d.ts +2 -1
  373. package/dist/src/runtime/request/execution-facets.js +6 -0
  374. package/dist/src/runtime/request/execution-scope-surfaces.js +6 -0
  375. package/dist/src/runtime/request/execution-scope.d.ts +3 -2
  376. package/dist/src/runtime/request/handler.js +4 -1
  377. package/dist/src/runtime/request/result.d.ts +2 -0
  378. package/dist/src/runtime/request/root-contract.d.ts +4 -2
  379. package/dist/src/runtime/request/root-execution-kernel.js +100 -31
  380. package/dist/src/runtime/request/supervisor-root-execution.js +4 -2
  381. package/dist/src/runtime/request/worker-capability-payload-prompts.js +1 -1
  382. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +24 -0
  383. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +52 -0
  384. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +5 -2
  385. package/dist/src/runtime/steps/execution-agent/format.js +19 -6
  386. package/dist/src/runtime/steps/execution-agent/input.js +8 -12
  387. package/dist/src/runtime/steps/execution-agent/parser.js +25 -19
  388. package/dist/src/runtime/steps/execution-agent/prompt.js +3 -2
  389. package/dist/src/runtime/steps/execution-agent/reconsideration-context.d.ts +3 -0
  390. package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +76 -0
  391. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -4
  392. package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.d.ts +3 -0
  393. package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.js +25 -0
  394. package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -7
  395. package/dist/src/runtime/steps/execution-agent/refinement.js +24 -35
  396. package/dist/src/runtime/steps/execution-agent/response-input.d.ts +2 -0
  397. package/dist/src/runtime/steps/execution-agent/response-input.js +22 -6
  398. package/dist/src/runtime/steps/execution-agent/response-prompt.d.ts +1 -1
  399. package/dist/src/runtime/steps/execution-agent/response-prompt.js +8 -3
  400. package/dist/src/runtime/steps/execution-agent/response-run.d.ts +6 -0
  401. package/dist/src/runtime/steps/execution-agent/response-run.js +40 -10
  402. package/dist/src/runtime/steps/execution-agent/run.js +6 -6
  403. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +4 -1
  404. package/dist/src/runtime/steps/execution-agent/state-context.js +40 -23
  405. package/dist/src/runtime/steps/supervisor-response/index.d.ts +1 -1
  406. package/dist/src/runtime/steps/supervisor-response/index.js +1 -1
  407. package/dist/src/runtime/steps/supervisor-response/input.d.ts +13 -5
  408. package/dist/src/runtime/steps/supervisor-response/input.js +27 -8
  409. package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +10 -0
  410. package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +125 -0
  411. package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +4 -0
  412. package/dist/src/runtime/steps/supervisor-response/prompt.js +19 -0
  413. package/dist/src/runtime/steps/supervisor-response/run.d.ts +8 -0
  414. package/dist/src/runtime/steps/supervisor-response/run.js +46 -17
  415. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +8 -1
  416. package/dist/src/runtime/steps/worker-decision/contracts.js +3 -0
  417. package/dist/src/runtime/steps/worker-decision/format.d.ts +4 -0
  418. package/dist/src/runtime/steps/worker-decision/format.js +97 -22
  419. package/dist/src/runtime/steps/worker-decision/input/action-policy.d.ts +9 -0
  420. package/dist/src/runtime/steps/worker-decision/input/action-policy.js +15 -0
  421. package/dist/src/runtime/steps/worker-decision/input/canonical-state.d.ts +2 -2
  422. package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +19 -7
  423. package/dist/src/runtime/steps/worker-decision/input/capability-selection.js +44 -3
  424. package/dist/src/runtime/steps/worker-decision/input/contract.d.ts +1 -0
  425. package/dist/src/runtime/steps/worker-decision/input/contract.js +12 -6
  426. package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +14 -5
  427. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +9 -6
  428. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +21 -3
  429. package/dist/src/runtime/steps/worker-decision/input/session.js +2 -1
  430. package/dist/src/runtime/steps/worker-decision/input/types.d.ts +6 -1
  431. package/dist/src/runtime/steps/worker-decision/input.d.ts +2 -2
  432. package/dist/src/runtime/steps/worker-decision/input.js +1 -2
  433. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -0
  434. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +70 -0
  435. package/dist/src/runtime/steps/worker-decision/parser/action-validation.d.ts +4 -0
  436. package/dist/src/runtime/steps/worker-decision/parser/action-validation.js +55 -0
  437. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +3 -0
  438. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +135 -0
  439. package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.d.ts +6 -0
  440. package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.js +132 -0
  441. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.d.ts +4 -0
  442. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +104 -0
  443. package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.d.ts +4 -0
  444. package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.js +28 -0
  445. package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.d.ts +4 -0
  446. package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.js +105 -0
  447. package/dist/src/runtime/steps/worker-decision/parser/validation-contract.d.ts +50 -0
  448. package/dist/src/runtime/steps/worker-decision/parser/validation-contract.js +19 -0
  449. package/dist/src/runtime/steps/worker-decision/parser.d.ts +5 -1
  450. package/dist/src/runtime/steps/worker-decision/parser.js +32 -426
  451. package/dist/src/runtime/steps/worker-decision/prompt.d.ts +3 -0
  452. package/dist/src/runtime/steps/worker-decision/prompt.js +57 -20
  453. package/dist/src/runtime/steps/worker-decision/result-author.js +11 -1
  454. package/dist/src/runtime/steps/worker-decision/run.js +97 -19
  455. package/dist/src/runtime/validation/strict-record.d.ts +2 -0
  456. package/dist/src/runtime/validation/strict-record.js +12 -0
  457. package/dist/src/shared/model-step-registry-data.json +9 -0
  458. package/dist/src/shared/model-step-registry.d.ts +9 -0
  459. package/dist/src/shared/model-step-registry.generated.d.ts +9 -0
  460. package/dist/src/shared/model-step-registry.generated.js +9 -0
  461. package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
  462. package/dist/src/web-ui/app/app.js +56 -11
  463. package/dist/src/web-ui/app/components/config-workspace/config-model.js +320 -0
  464. package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +155 -0
  465. package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +278 -0
  466. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +251 -0
  467. package/dist/src/web-ui/app/components/config-workspace/step-rendering.js +145 -0
  468. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +271 -0
  469. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +195 -0
  470. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +247 -0
  471. package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +299 -0
  472. package/dist/src/web-ui/app/components/config-workspace.js +179 -866
  473. package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -1
  474. package/dist/src/web-ui/app/components/long-term-memory/icons.js +16 -0
  475. package/dist/src/web-ui/app/components/long-term-memory/manager.js +192 -0
  476. package/dist/src/web-ui/app/components/long-term-memory/record-editor.d.ts +9 -0
  477. package/dist/src/web-ui/app/components/long-term-memory/record-editor.js +62 -0
  478. package/dist/src/web-ui/app/components/long-term-memory/record-list.d.ts +5 -0
  479. package/dist/src/web-ui/app/components/long-term-memory/record-list.js +97 -0
  480. package/dist/src/web-ui/app/components/long-term-memory/view-model.d.ts +29 -0
  481. package/dist/src/web-ui/app/components/long-term-memory/view-model.js +69 -0
  482. package/dist/src/web-ui/app/components/long-term-memory-setup.js +334 -0
  483. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +39 -0
  484. package/dist/src/web-ui/app/components/tool-approval-card.d.ts +18 -0
  485. package/dist/src/web-ui/app/components/workspace-shell.js +48 -7
  486. package/dist/src/web-ui/app/controllers/app-event-bindings.js +43 -6
  487. package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +92 -0
  488. package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +109 -0
  489. package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +77 -0
  490. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +149 -0
  491. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +43 -3
  492. package/dist/src/web-ui/app/controllers/long-term-memory/controller.d.ts +87 -0
  493. package/dist/src/web-ui/app/controllers/long-term-memory/controller.js +302 -0
  494. package/dist/src/web-ui/app/controllers/long-term-memory/policy.d.ts +14 -0
  495. package/dist/src/web-ui/app/controllers/long-term-memory/policy.js +61 -0
  496. package/dist/src/web-ui/app/controllers/long-term-memory/state.js +85 -0
  497. package/dist/src/web-ui/app/controllers/operations-controller.d.ts +25 -0
  498. package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +57 -0
  499. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +32 -0
  500. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +177 -0
  501. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +78 -11
  502. package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +28 -0
  503. package/dist/src/web-ui/app/index.html +13 -15
  504. package/dist/src/web-ui/app/services/runtime-web-client/memory.js +127 -0
  505. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +84 -0
  506. package/dist/src/web-ui/app/services/runtime-web-client.js +27 -1
  507. package/dist/src/web-ui/app/styles/30-inspector-config.css +151 -1423
  508. package/dist/src/web-ui/app/styles/35-memory-onboarding.css +153 -0
  509. package/dist/src/web-ui/app/styles/36-memory-management.css +419 -0
  510. package/dist/src/web-ui/app/styles/40-config-workspace.css +992 -0
  511. package/dist/src/web-ui/app/styles/90-responsive.css +187 -26
  512. package/dist/src/web-ui/app/styles.css +3 -0
  513. package/dist/src/web-ui/config-dashboard-backend.js +9 -1
  514. package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -2
  515. package/dist/src/web-ui/local-runtime/api-router.js +33 -0
  516. package/dist/src/web-ui/local-runtime/contracts.d.ts +5 -0
  517. package/dist/src/web-ui/local-runtime/memory-management-input.d.ts +12 -0
  518. package/dist/src/web-ui/local-runtime/memory-management-input.js +68 -0
  519. package/dist/src/web-ui/local-runtime/memory-management-response.d.ts +17 -0
  520. package/dist/src/web-ui/local-runtime/memory-management-response.js +47 -0
  521. package/dist/src/web-ui/local-runtime/memory-management-routes.d.ts +24 -0
  522. package/dist/src/web-ui/local-runtime/memory-management-routes.js +128 -0
  523. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +17 -0
  524. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +81 -0
  525. package/dist/src/web-ui/local-runtime/request-abort.d.ts +7 -0
  526. package/dist/src/web-ui/local-runtime/request-abort.js +19 -0
  527. package/dist/src/web-ui/local-runtime-backend.js +10 -3
  528. package/dist/src/web-ui/server.d.ts +2 -0
  529. package/dist/src/web-ui/server.js +3 -0
  530. package/docs/configuration.md +128 -45
  531. package/docs/installation.md +21 -0
  532. package/docs/known-limitations.md +11 -0
  533. package/docs/long-term-memory.md +181 -0
  534. package/docs/publishing.md +52 -25
  535. package/docs/runtime-invariant-coverage.md +1 -1
  536. package/docs/runtime-library.md +16 -1
  537. package/docs/runtime-prompt-policy-contracts.md +12 -2
  538. package/docs/troubleshooting.md +21 -0
  539. package/examples/models/default.config.json +1 -0
  540. package/examples/request-runner.config.example.json +16 -22
  541. package/examples/runtime.config.example.json +4 -0
  542. package/methodologies/memory-informed-response.md +15 -0
  543. package/methodologies/response-ux.md +17 -0
  544. package/package.json +8 -2
  545. package/plugins/exec/source/handlers.ts +65 -5
  546. package/plugins/exec/src/index.cjs +39 -3
  547. package/plugins/filesystem/plugin.json +1 -0
  548. package/runtime.config.schema.json +30 -0
  549. package/src/runtime/README.md +77 -38
@@ -2,12 +2,17 @@ import { projectRequestToolResults } from "../context/request-tool-results.js";
2
2
  import { emitRuntimeStatus } from "../events/runtime-status.js";
3
3
  import { resolveRoleCallTransactions, } from "../orchestration/role-calls/index.js";
4
4
  import { RUNTIME_ROOT_ROLE_ID } from "../orchestration/roles.js";
5
- import { createRoleCapabilityBinding, projectWorkerCapabilityCatalogGroups, } from "../orchestration/worker-capabilities/index.js";
5
+ import { createRoleCapabilityBinding, isWorkerCapabilityOperationSupervisionLimitError, projectWorkerCapabilityCatalogGroups, } from "../orchestration/worker-capabilities/index.js";
6
+ import { runDegradedFinalization } from "../steps/degraded-finalization/run.js";
6
7
  import { projectRequestSteeringSnapshot, resolveRequestSteeringInbox, } from "./request-steering.js";
7
8
  import { traceSupervisorRootAcknowledgementPublished, traceSupervisorRootActivationFailed, traceSupervisorRootActivationStarted, traceSupervisorRootObservationHandoffBound, traceSupervisorRootInvocationSuperseded, traceSupervisorRootResponseSuperseded, } from "./supervisor-root-execution-diagnostics.js";
9
+ import { createPlainRootAuthoredResponse } from "../orchestration/final-response/authoring-contract.js";
8
10
  const CONTINUE_ROOT_EXECUTION = Object.freeze({
9
11
  kind: "continue",
10
12
  });
13
+ function isTerminalRootDecision(decision) {
14
+ return decision.action === "respond" || decision.action === "blocked";
15
+ }
11
16
  export async function runRootExecutionKernel(params) {
12
17
  return new RootExecutionSession(params).run();
13
18
  }
@@ -113,14 +118,13 @@ class RootExecutionSession {
113
118
  ...(this.resume ? { resume: this.resume } : {}),
114
119
  });
115
120
  const requiresFreshPresentation = this.policy.rootContract.deferRespondPresentation === true;
121
+ const isTerminalDecision = isTerminalRootDecision(decisionOutcome.decision);
116
122
  return Object.freeze({
117
123
  ...activation,
118
124
  decision: decisionOutcome.decision,
119
125
  decisionSteeringVersion: decisionOutcome.steeringVersion,
120
126
  requiresFreshPresentation,
121
- deferPresentation: requiresFreshPresentation &&
122
- (decisionOutcome.decision.action === "respond" ||
123
- decisionOutcome.decision.action === "blocked"),
127
+ deferPresentation: requiresFreshPresentation && isTerminalDecision,
124
128
  });
125
129
  }
126
130
  async publishImmediatePresentation(activation, attempt) {
@@ -137,19 +141,22 @@ class RootExecutionSession {
137
141
  await this.request.onSessionTitle(decision.title);
138
142
  this.titlePublished = true;
139
143
  }
140
- if (decision.acknowledgement !== undefined) {
144
+ const acknowledgement = isTerminalRootDecision(decision)
145
+ ? undefined
146
+ : decision.acknowledgement;
147
+ if (acknowledgement !== undefined) {
141
148
  if (activation.requiresFreshPresentation &&
142
149
  !this.isInvocationCurrent(activation.decisionSteeringVersion)) {
143
150
  return false;
144
151
  }
145
152
  attempt.failureStage = "publish_acknowledgement";
146
- this.request.onAcknowledgement(decision.acknowledgement);
153
+ this.request.onAcknowledgement(acknowledgement);
147
154
  this.acknowledgementPublished = true;
148
155
  traceSupervisorRootAcknowledgementPublished({
149
156
  diagnostic: this.diagnostic,
150
157
  head: activation.head,
151
158
  call: activation.call,
152
- acknowledgementLength: decision.acknowledgement.length,
159
+ acknowledgementLength: acknowledgement.length,
153
160
  });
154
161
  }
155
162
  return true;
@@ -217,8 +224,23 @@ class RootExecutionSession {
217
224
  invocationAttempt: activation.call.activationCount,
218
225
  steeringVersion: activation.decisionSteeringVersion,
219
226
  selection: decision.selection,
227
+ cause: decision.cause,
220
228
  });
221
229
  if (!reconsidered.ok) {
230
+ if (reconsidered.issueCode ===
231
+ "capability_selection_supervision_limit_exceeded" ||
232
+ reconsidered.issueCode === "role_activation_limit_exceeded") {
233
+ return this.completeSupervisionLimit({
234
+ head: activation.head,
235
+ call: activation.call,
236
+ decisionSteeringVersion: activation.decisionSteeringVersion,
237
+ attempt,
238
+ problem: Object.freeze({
239
+ stage: "capability_selection_supervision",
240
+ code: reconsidered.issueCode,
241
+ }),
242
+ });
243
+ }
222
244
  throw new Error(`role_call_ledger_rejected:${reconsidered.issueCode}`);
223
245
  }
224
246
  return CONTINUE_ROOT_EXECUTION;
@@ -277,19 +299,74 @@ class RootExecutionSession {
277
299
  }
278
300
  : {}),
279
301
  });
280
- if (decision.action === "invoke_capability") {
281
- await binding.execute({
282
- capabilityId: decision.capabilityId,
283
- intent: decision.intent,
284
- controls: decision.controls,
285
- });
302
+ try {
303
+ if (decision.action === "invoke_capability") {
304
+ await binding.execute({
305
+ capabilityId: decision.capabilityId,
306
+ intent: decision.intent,
307
+ controls: decision.controls,
308
+ });
309
+ }
310
+ else {
311
+ await binding.executeBatch({ invocations: decision.invocations });
312
+ }
286
313
  }
287
- else {
288
- await binding.executeBatch({ invocations: decision.invocations });
314
+ catch (error) {
315
+ if (!isWorkerCapabilityOperationSupervisionLimitError(error)) {
316
+ throw error;
317
+ }
318
+ return this.completeSupervisionLimit({
319
+ head,
320
+ call,
321
+ decisionSteeringVersion: activation.decisionSteeringVersion,
322
+ attempt,
323
+ problem: Object.freeze({
324
+ stage: "operation_supervision",
325
+ code: "operation_supervision_limit_exceeded",
326
+ }),
327
+ });
289
328
  }
290
329
  this.resume = undefined;
291
330
  return CONTINUE_ROOT_EXECUTION;
292
331
  }
332
+ async completeSupervisionLimit(params) {
333
+ if (!this.isResponseCurrent(params.decisionSteeringVersion, "before_response")) {
334
+ return CONTINUE_ROOT_EXECUTION;
335
+ }
336
+ params.attempt.failureStage = "compose_response";
337
+ const response = await runDegradedFinalization({
338
+ request: this.request,
339
+ input: Object.freeze({
340
+ problem: params.problem,
341
+ progress: null,
342
+ }),
343
+ });
344
+ if (!this.isResponseCurrent(params.decisionSteeringVersion, "after_response")) {
345
+ return CONTINUE_ROOT_EXECUTION;
346
+ }
347
+ params.attempt.failureStage = "seal_response";
348
+ this.request.abortSignal.throwIfAborted();
349
+ if (!this.requestSteering.seal(params.decisionSteeringVersion)) {
350
+ this.traceResponseSuperseded(params.decisionSteeringVersion, "seal");
351
+ return CONTINUE_ROOT_EXECUTION;
352
+ }
353
+ params.attempt.failureStage = "commit_response";
354
+ const output = await commitSupervisorResponse({
355
+ transactions: this.transactions,
356
+ expectedHead: params.head,
357
+ callId: params.call.callId,
358
+ response,
359
+ });
360
+ return Object.freeze({
361
+ kind: "complete",
362
+ result: Object.freeze({
363
+ output,
364
+ ...(this.policy.authority.terminalTextMode === "exact"
365
+ ? { outputTextMode: "exact" }
366
+ : {}),
367
+ }),
368
+ });
369
+ }
293
370
  async completeResponse(activation, decision, attempt) {
294
371
  if (!this.isResponseCurrent(activation.decisionSteeringVersion, "before_response")) {
295
372
  return CONTINUE_ROOT_EXECUTION;
@@ -299,8 +376,8 @@ class RootExecutionSession {
299
376
  ? projectSupervisorFinalObservation(this.observationHandoff, this.resume)
300
377
  : undefined;
301
378
  attempt.failureStage = "compose_response";
302
- const response = decision.action === "blocked"
303
- ? decision.response
379
+ const authoredResponse = decision.action === "blocked"
380
+ ? createPlainRootAuthoredResponse(decision.response)
304
381
  : await this.policy.rootContract.authorResponse(this.request, {
305
382
  head: activation.head,
306
383
  callFrame: activation.call,
@@ -323,13 +400,13 @@ class RootExecutionSession {
323
400
  this.traceResponseSuperseded(activation.decisionSteeringVersion, "seal");
324
401
  return CONTINUE_ROOT_EXECUTION;
325
402
  }
326
- await this.publishDeferredPresentation(activation, attempt);
403
+ await this.publishDeferredTitle(activation, attempt);
327
404
  attempt.failureStage = "commit_response";
328
405
  const output = await commitSupervisorResponse({
329
406
  transactions: this.transactions,
330
407
  expectedHead: activation.head,
331
408
  callId: activation.call.callId,
332
- response,
409
+ response: authoredResponse.finalResponse,
333
410
  });
334
411
  return Object.freeze({
335
412
  kind: "complete",
@@ -339,10 +416,13 @@ class RootExecutionSession {
339
416
  ? { outputTextMode: "exact" }
340
417
  : {}),
341
418
  ...(finalObservation ? { finalObservation } : {}),
419
+ ...(authoredResponse.memoryCandidates.length > 0
420
+ ? { memoryCandidates: authoredResponse.memoryCandidates }
421
+ : {}),
342
422
  }),
343
423
  });
344
424
  }
345
- async publishDeferredPresentation(activation, attempt) {
425
+ async publishDeferredTitle(activation, attempt) {
346
426
  if (!activation.deferPresentation) {
347
427
  return;
348
428
  }
@@ -351,17 +431,6 @@ class RootExecutionSession {
351
431
  await this.request.onSessionTitle(activation.decision.title);
352
432
  this.titlePublished = true;
353
433
  }
354
- if (activation.decision.acknowledgement !== undefined) {
355
- attempt.failureStage = "publish_acknowledgement";
356
- this.request.onAcknowledgement(activation.decision.acknowledgement);
357
- this.acknowledgementPublished = true;
358
- traceSupervisorRootAcknowledgementPublished({
359
- diagnostic: this.diagnostic,
360
- head: activation.head,
361
- call: activation.call,
362
- acknowledgementLength: activation.decision.acknowledgement.length,
363
- });
364
- }
365
434
  }
366
435
  isInvocationCurrent(decisionSteeringVersion) {
367
436
  if (this.requestSteering.isCurrent(decisionSteeringVersion)) {
@@ -1,6 +1,7 @@
1
1
  import { projectSupervisorCallIdentity, projectSupervisorResumeContext, runSupervisorDecision, SUPERVISOR_DECISION_MODEL_STEP, } from "../steps/supervisor-decision/index.js";
2
- import { runSupervisorResponse, SUPERVISOR_RESPONSE_MODEL_STEP, } from "../steps/supervisor-response/index.js";
2
+ import { runSupervisorAuthoredResponse, SUPERVISOR_RESPONSE_MODEL_STEP, } from "../steps/supervisor-response/index.js";
3
3
  import { runRootExecutionKernel, } from "./root-execution-kernel.js";
4
+ import { projectRequestSteeringSnapshot } from "./request-steering.js";
4
5
  export const SUPERVISOR_ROOT_CONTRACT = Object.freeze({
5
6
  contractId: "supervisor",
6
7
  decisionModelStep: SUPERVISOR_DECISION_MODEL_STEP,
@@ -19,9 +20,10 @@ export const SUPERVISOR_ROOT_CONTRACT = Object.freeze({
19
20
  });
20
21
  },
21
22
  async authorResponse(request, options) {
22
- return runSupervisorResponse(request, {
23
+ return runSupervisorAuthoredResponse(request, {
23
24
  call: options.call,
24
25
  toolResults: options.toolResults,
26
+ steeringSnapshot: projectRequestSteeringSnapshot(request.requestSteering, options.steeringVersion),
25
27
  ...(options.resume ? { resume: options.resume } : {}),
26
28
  });
27
29
  },
@@ -2,7 +2,7 @@ export function buildWorkerCapabilityPayloadRepairHint(input) {
2
2
  const issue = input.issues[0];
3
3
  return [
4
4
  "Your previous payload was rejected before it reached a tool, file mutation, or user response.",
5
- "Correct the same immutable payload assignment; do not change its capability, target, controls, or intent.",
5
+ "Correct the same immutable payload assignment; do not change its assignment objective, capability, target, or controls.",
6
6
  `Repair attempt: ${input.repairAttempt}.`,
7
7
  `Validation issue: ${issue?.message ?? "Return the complete required payload."} (${issue?.code ?? "payload_output_invalid"}).`,
8
8
  issue?.code === "payload_model_output_invalid"
@@ -0,0 +1,24 @@
1
+ import type { CapabilityControlsPartition, CapabilityControlsSchema } from "../../orchestration/capability-adapters/index.js";
2
+ import type { ExecutionAgentDecisionValidationIssue } from "./contracts.js";
3
+ export declare const EXECUTION_AGENT_OPERATION_OBJECTIVE_MAX_LENGTH = 4096;
4
+ type ParsedExecutionOperationObjective = Readonly<{
5
+ ok: true;
6
+ value?: string;
7
+ }> | Readonly<{
8
+ ok: false;
9
+ }>;
10
+ export declare function requiresExecutionOperationObjective(partition: CapabilityControlsPartition): boolean;
11
+ export declare function executionOperationObjectiveSchema(): Record<string, unknown>;
12
+ export declare function parseExecutionOperationObjective(params: Readonly<{
13
+ value: unknown;
14
+ required: boolean;
15
+ path: string;
16
+ issues: ExecutionAgentDecisionValidationIssue[];
17
+ }>): ParsedExecutionOperationObjective;
18
+ export declare function normalizeGeneratedExecutionCapabilityControls(value: unknown, schema: CapabilityControlsSchema): unknown;
19
+ export declare function executionCapabilityControlsIssue(params: Readonly<{
20
+ issueCode: string;
21
+ controlId?: string;
22
+ path: string;
23
+ }>): ExecutionAgentDecisionValidationIssue;
24
+ export {};
@@ -0,0 +1,52 @@
1
+ export const EXECUTION_AGENT_OPERATION_OBJECTIVE_MAX_LENGTH = 4_096;
2
+ const EXECUTION_AGENT_OPERATION_OBJECTIVE_DESCRIPTION = "Complete bounded operation for this invocation. This is internal execution input for controls refinement, not client-facing status, and cannot add unrelated request outcomes.";
3
+ export function requiresExecutionOperationObjective(partition) {
4
+ return Object.keys(partition.remainingSchema.properties).length > 0;
5
+ }
6
+ export function executionOperationObjectiveSchema() {
7
+ return {
8
+ type: "string",
9
+ minLength: 1,
10
+ maxLength: EXECUTION_AGENT_OPERATION_OBJECTIVE_MAX_LENGTH,
11
+ description: EXECUTION_AGENT_OPERATION_OBJECTIVE_DESCRIPTION,
12
+ };
13
+ }
14
+ export function parseExecutionOperationObjective(params) {
15
+ if (!params.required)
16
+ return Object.freeze({ ok: true });
17
+ const normalized = typeof params.value === "string" ? params.value.trim() : "";
18
+ if (typeof params.value !== "string" ||
19
+ normalized.length === 0 ||
20
+ params.value.length > EXECUTION_AGENT_OPERATION_OBJECTIVE_MAX_LENGTH) {
21
+ params.issues.push({
22
+ code: "execution_agent_operation_objective_invalid",
23
+ path: params.path,
24
+ message: `Operation objective must be text of 1-${EXECUTION_AGENT_OPERATION_OBJECTIVE_MAX_LENGTH} characters.`,
25
+ });
26
+ return Object.freeze({ ok: false });
27
+ }
28
+ return Object.freeze({ ok: true, value: normalized });
29
+ }
30
+ export function normalizeGeneratedExecutionCapabilityControls(value, schema) {
31
+ const record = asRecord(value);
32
+ if (!record)
33
+ return value;
34
+ const required = new Set(schema.required);
35
+ return Object.fromEntries(Object.entries(record).filter(([controlId, controlValue]) => controlValue !== null ||
36
+ required.has(controlId) ||
37
+ !Object.hasOwn(schema.properties, controlId)));
38
+ }
39
+ export function executionCapabilityControlsIssue(params) {
40
+ return {
41
+ code: `execution_agent_capability_${params.issueCode}`,
42
+ path: params.path,
43
+ message: params.controlId
44
+ ? `Capability control ${JSON.stringify(params.controlId)} failed ${params.issueCode}.`
45
+ : `Capability controls failed ${params.issueCode}.`,
46
+ };
47
+ }
48
+ function asRecord(value) {
49
+ return value !== null && typeof value === "object" && !Array.isArray(value)
50
+ ? value
51
+ : undefined;
52
+ }
@@ -1,4 +1,4 @@
1
- import type { RoleCapabilitySelectionProjection } from "../../orchestration/role-calls/index.js";
1
+ import type { RoleCapabilitySelectionProjection, RoleCapabilitySelectionReconsiderationCause } from "../../orchestration/role-calls/index.js";
2
2
  import { type CapabilityControls, type CapabilityDescriptor } from "../../orchestration/capability-adapters/index.js";
3
3
  export declare const EXECUTION_AGENT_DECISION_MODEL_STEP: "execution.decision";
4
4
  export declare const EXECUTION_DECISION_MODEL_STEP: "execution.decision";
@@ -35,6 +35,8 @@ export type ExecutionAgentCapabilityInvocation = Readonly<{
35
35
  capabilityId: string;
36
36
  /** Client-facing presentation metadata; never execution input. */
37
37
  intent: string;
38
+ /** Request-local execution input consumed only while refining controls. */
39
+ operationObjective?: string;
38
40
  selectionControls?: CapabilityControls;
39
41
  /** Present only when selection mechanically satisfies the full schema. */
40
42
  controls?: CapabilityControls;
@@ -57,10 +59,11 @@ export type ExecutionAgentInvokeAuditorDecision = Readonly<ExecutionAgentDecisio
57
59
  criterionIds: readonly string[];
58
60
  }>;
59
61
  export type ExecutionAgentDecision = ExecutionAgentOpenCapabilityScopeDecision | ExecutionAgentExtendCapabilityScopeDecision | ExecutionAgentRespondDecision | ExecutionAgentBlockedDecision | ExecutionAgentInvokeCapabilityDecision | ExecutionAgentInvokeCapabilitiesDecision | ExecutionAgentInvokePlannerDecision | ExecutionAgentInvokeAuditorDecision;
60
- /** Runtime-only transition emitted when refinement declines an accepted selection. */
62
+ /** Runtime-only transition emitted when controls refinement exhausts validation. */
61
63
  export type ExecutionAgentReconsiderCapabilitySelectionDecision = Readonly<{
62
64
  action: "reconsider_capability_selection";
63
65
  selection: RoleCapabilitySelectionProjection;
66
+ cause: RoleCapabilitySelectionReconsiderationCause;
64
67
  acknowledgement?: undefined;
65
68
  title?: undefined;
66
69
  }>;
@@ -1,14 +1,18 @@
1
1
  import { isToolCatalogGroupId } from "../../../capabilities/tool-types.js";
2
2
  import { createStructuredDecisionEnvelopeSchema } from "../../model/structured-decision-envelope.js";
3
- import { CAPABILITY_COUNT_MAX, CAPABILITY_INTENT_MAX_LENGTH, EXECUTION_WORKING_DIRECTORY_MAX_LENGTH, EXECUTION_WORKING_DIRECTORY_PATTERN, normalizeCapabilityDescriptor, normalizeCapabilityControlsSchema, partitionCapabilityControlsSchema, } from "../../orchestration/capability-adapters/index.js";
3
+ import { CAPABILITY_COUNT_MAX, CAPABILITY_INTENT_MAX_LENGTH, EXECUTION_WORKING_DIRECTORY_MAX_LENGTH, EXECUTION_WORKING_DIRECTORY_PATTERN, canOfferCapabilityBatchSelection, normalizeCapabilityDescriptor, normalizeCapabilityControlsSchema, partitionCapabilityControlsSchema, } from "../../orchestration/capability-adapters/index.js";
4
4
  import { EXECUTION_AGENT_ACKNOWLEDGEMENT_MAX_LENGTH, EXECUTION_AGENT_AUDIT_CRITERION_COUNT_MAX, EXECUTION_AGENT_AUDIT_CRITERION_ID_MAX_LENGTH, EXECUTION_AGENT_CAPABILITY_SCOPE_GROUP_COUNT_MAX, EXECUTION_AGENT_OBJECTIVE_MAX_LENGTH, EXECUTION_AGENT_RESPONSE_MAX_LENGTH, EXECUTION_AGENT_TITLE_MAX_LENGTH, } from "./contracts.js";
5
+ import { executionOperationObjectiveSchema, requiresExecutionOperationObjective, } from "./capability-invocation-contract.js";
5
6
  export function createExecutionAgentDecisionFormat(options = {}) {
6
7
  const contract = prepareExecutionAgentDecisionContract(options);
7
8
  const presentation = presentationSchemas(contract);
8
- const capabilityGroups = groupCapabilitiesBySelectionSchema(contract.capabilities);
9
- const observationGroups = groupCapabilitiesBySelectionSchema(contract.observationCapabilities);
9
+ const capabilityGroups = groupCapabilitiesByDecisionShape(contract.capabilities);
10
+ const observationGroups = groupCapabilitiesByDecisionShape(contract.observationCapabilities);
10
11
  const batchEnabled = contract.maxBatchCapabilityExecutions >= 2 &&
11
- contract.observationCapabilities.length > 0;
12
+ canOfferCapabilityBatchSelection(contract.observationCapabilities.map((capability) => ({
13
+ capabilityId: capability.capabilityId,
14
+ selectionSchema: capability.partition.selectionSchema,
15
+ })));
12
16
  const variants = [
13
17
  ...(contract.activeCapabilityCatalogGroupIds === null &&
14
18
  contract.capabilityCatalogGroupIds.length > 0
@@ -37,6 +41,9 @@ export function createExecutionAgentDecisionFormat(options = {}) {
37
41
  action: literal("invoke_capability"),
38
42
  capabilityId: enumeration(group.capabilities.map(({ capabilityId }) => capabilityId)),
39
43
  intent: boundedText(CAPABILITY_INTENT_MAX_LENGTH),
44
+ ...(requiresExecutionOperationObjective(group.partition)
45
+ ? { operationObjective: executionOperationObjectiveSchema() }
46
+ : {}),
40
47
  ...(group.partition.selectionControlIds.length > 0
41
48
  ? {
42
49
  selectionControls: projectControlsSchema(group.partition.selectionSchema),
@@ -233,10 +240,13 @@ function presentationSchemas(contract) {
233
240
  : {}),
234
241
  };
235
242
  }
236
- function groupCapabilitiesBySelectionSchema(capabilities) {
243
+ function groupCapabilitiesByDecisionShape(capabilities) {
237
244
  const groups = new Map();
238
245
  for (const capability of capabilities) {
239
- const signature = JSON.stringify(capability.partition.selectionSchema);
246
+ const signature = JSON.stringify([
247
+ capability.partition.selectionSchema,
248
+ requiresExecutionOperationObjective(capability.partition),
249
+ ]);
240
250
  const group = groups.get(signature) ?? {
241
251
  capabilities: [],
242
252
  partition: capability.partition,
@@ -253,6 +263,9 @@ function projectCapabilitySelectionItemSchema(groups) {
253
263
  const variants = groups.map((group) => exactObject({
254
264
  capabilityId: enumeration(group.capabilities.map(({ capabilityId }) => capabilityId)),
255
265
  intent: boundedText(CAPABILITY_INTENT_MAX_LENGTH),
266
+ ...(requiresExecutionOperationObjective(group.partition)
267
+ ? { operationObjective: executionOperationObjectiveSchema() }
268
+ : {}),
256
269
  ...(group.partition.selectionControlIds.length > 0
257
270
  ? {
258
271
  selectionControls: projectControlsSchema(group.partition.selectionSchema),
@@ -1,16 +1,16 @@
1
1
  import { projectRequestContext } from "../../context/request-context.js";
2
2
  import { projectRootSessionMemory } from "../../context/session-memory/root-projection.js";
3
3
  import { buildRequestTemporalContextMessage } from "../../context/request-temporal-context.js";
4
+ import { buildImmediateOperationSupervisionEvidenceMessage } from "../../context/operation-supervision-evidence.js";
4
5
  import { resolveModelContextBudget } from "../../model/model-context-budget.js";
5
6
  import { CAPABILITY_COUNT_MAX, projectCapabilityCatalogGroups, projectCapabilityScope, } from "../../orchestration/capability-adapters/index.js";
6
7
  import { resolveRequestWorkerCapabilities, } from "../../request/execution-scope.js";
7
8
  import { appendRequestSteeringContext } from "../../request/request-steering-context.js";
8
9
  import { EXECUTION_AGENT_ROOT_AUDIT_CRITERION_ID } from "../auditor-decision/index.js";
9
- import { projectEffectiveWorkerSelectionControlIds } from "../worker-decision/runtime-path-refinement.js";
10
10
  import { EXECUTION_AGENT_DECISION_MODEL_STEP, } from "./contracts.js";
11
11
  import { createExecutionAgentDecisionFormat } from "./format.js";
12
12
  import { buildExecutionAgentInstructions } from "./prompt.js";
13
- import { buildExecutionCapabilityCatalogMessage, buildExecutionCapabilityGroupCatalogMessage, buildExecutionContinuationMessages, buildExecutionStateMessage, } from "./state-context.js";
13
+ import { buildExecutionCapabilityCatalogMessage, buildExecutionCapabilityGroupCatalogMessage, buildExecutionContinuationMessages, buildExecutionDecisionStateMessage, } from "./state-context.js";
14
14
  export function buildExecutionAgentInput(request, options) {
15
15
  assertCanonicalSource(request, options.head, options.call);
16
16
  const allCapabilities = resolveRequestWorkerCapabilities(request).provider.getDescriptors();
@@ -26,15 +26,7 @@ export function buildExecutionAgentInput(request, options) {
26
26
  descriptorOf: (entry) => entry,
27
27
  }).entries
28
28
  : Object.freeze([]);
29
- const capabilities = Object.freeze(scopedCapabilities.map((descriptor) => {
30
- const selectionControlIds = projectEffectiveWorkerSelectionControlIds(descriptor, eligibleSessionArtifactPaths.length > 0);
31
- const configuredSelectionControlIds = descriptor.selectionControlIds ?? Object.freeze([]);
32
- return selectionControlIds.length ===
33
- configuredSelectionControlIds.length &&
34
- selectionControlIds.every((controlId, index) => controlId === configuredSelectionControlIds[index])
35
- ? descriptor
36
- : Object.freeze({ ...descriptor, selectionControlIds });
37
- }));
29
+ const capabilities = scopedCapabilities;
38
30
  const knownGroupIds = Object.freeze(capabilityCatalogGroups.map(({ groupId }) => groupId));
39
31
  const hasInactiveGroup = activeCapabilityCatalogGroupIds !== null &&
40
32
  knownGroupIds.some((groupId) => !activeCapabilityCatalogGroupIds.includes(groupId));
@@ -88,11 +80,15 @@ export function buildExecutionAgentInput(request, options) {
88
80
  : {}),
89
81
  ...(request.modelPolicy ? { modelPolicy: request.modelPolicy } : {}),
90
82
  });
83
+ const operationSupervisionEvidenceMessage = buildImmediateOperationSupervisionEvidenceMessage(options.head, options.call);
91
84
  const referenceMessages = [
92
85
  ...(request.temporalContext
93
86
  ? [buildRequestTemporalContextMessage(request.temporalContext)]
94
87
  : []),
95
- buildExecutionStateMessage(options.head, options.call),
88
+ buildExecutionDecisionStateMessage(options.head, options.call, options.steeringSnapshot.version),
89
+ ...(operationSupervisionEvidenceMessage
90
+ ? [operationSupervisionEvidenceMessage]
91
+ : []),
96
92
  buildExecutionCapabilityGroupCatalogMessage(capabilityCatalogGroups),
97
93
  ...(capabilities.length > 0
98
94
  ? [buildExecutionCapabilityCatalogMessage(capabilities)]
@@ -1,6 +1,7 @@
1
1
  import { readStructuredDecisionEnvelope } from "../../model/structured-decision-envelope.js";
2
2
  import { CAPABILITY_INTENT_MAX_LENGTH, materializeCapabilityControlsIfComplete, validateCapabilitySelectionControls, } from "../../orchestration/capability-adapters/index.js";
3
3
  import { normalizeExecutionWorkingDirectory } from "../../orchestration/capability-adapters/working-directory.js";
4
+ import { executionCapabilityControlsIssue, normalizeGeneratedExecutionCapabilityControls, parseExecutionOperationObjective, requiresExecutionOperationObjective, } from "./capability-invocation-contract.js";
4
5
  import { EXECUTION_AGENT_ACKNOWLEDGEMENT_MAX_LENGTH, EXECUTION_AGENT_AUDIT_CRITERION_COUNT_MAX, EXECUTION_AGENT_AUDIT_CRITERION_ID_MAX_LENGTH, EXECUTION_AGENT_CAPABILITY_SCOPE_GROUP_COUNT_MAX, EXECUTION_AGENT_DECISION_ACTIONS, EXECUTION_AGENT_OBJECTIVE_MAX_LENGTH, EXECUTION_AGENT_RESPONSE_MAX_LENGTH, EXECUTION_AGENT_TITLE_MAX_LENGTH, } from "./contracts.js";
5
6
  import { prepareExecutionAgentDecisionContract, } from "./format.js";
6
7
  export function parseExecutionAgentDecisionOutput(text, options = {}) {
@@ -208,6 +209,7 @@ function parseCapabilityBatch(value, contract, issues) {
208
209
  return undefined;
209
210
  }
210
211
  const accepted = [];
212
+ const issueCountBeforeInvocations = issues.length;
211
213
  value.forEach((invocation, index) => {
212
214
  const parsed = parseCapabilityInvocation({
213
215
  value: invocation,
@@ -220,7 +222,11 @@ function parseCapabilityBatch(value, contract, issues) {
220
222
  if (parsed.value)
221
223
  accepted.push(parsed.value);
222
224
  });
223
- return accepted.length === value.length ? Object.freeze(accepted) : undefined;
225
+ const invocationValidationFailed = accepted.length !== value.length ||
226
+ issues.length !== issueCountBeforeInvocations;
227
+ if (invocationValidationFailed)
228
+ return undefined;
229
+ return Object.freeze(accepted);
224
230
  }
225
231
  function parseCapabilityInvocation(params) {
226
232
  const record = asRecord(params.value);
@@ -248,6 +254,9 @@ function parseCapabilityInvocation(params) {
248
254
  }
249
255
  const expectedKeys = [
250
256
  ...baseExpectedKeys,
257
+ ...(capability && requiresExecutionOperationObjective(capability.partition)
258
+ ? ["operationObjective"]
259
+ : []),
251
260
  ...(capability?.partition.selectionControlIds.length
252
261
  ? ["selectionControls"]
253
262
  : []),
@@ -263,15 +272,22 @@ function parseCapabilityInvocation(params) {
263
272
  label: "Capability intent",
264
273
  issues: params.issues,
265
274
  });
275
+ const operationObjective = parseExecutionOperationObjective({
276
+ value: record.operationObjective,
277
+ required: capability !== undefined &&
278
+ requiresExecutionOperationObjective(capability.partition),
279
+ path: `${params.path}.operationObjective`,
280
+ issues: params.issues,
281
+ });
266
282
  let selectionControls;
267
283
  let controls;
268
284
  if (capability) {
269
285
  const normalizedSelectionControls = capability.partition.selectionControlIds.length > 0
270
- ? normalizeGeneratedCapabilityControls(record.selectionControls, capability.partition.selectionSchema)
286
+ ? normalizeGeneratedExecutionCapabilityControls(record.selectionControls, capability.partition.selectionSchema)
271
287
  : {};
272
288
  const selection = validateCapabilitySelectionControls(capability.partition, normalizedSelectionControls);
273
289
  if (!selection.ok) {
274
- params.issues.push(capabilityControlsIssue({
290
+ params.issues.push(executionCapabilityControlsIssue({
275
291
  issueCode: selection.issueCode,
276
292
  controlId: selection.controlId,
277
293
  path: selection.controlId
@@ -285,7 +301,7 @@ function parseCapabilityInvocation(params) {
285
301
  }
286
302
  const materialized = materializeCapabilityControlsIfComplete(capability.partition, selection.value);
287
303
  if (materialized && !materialized.ok) {
288
- params.issues.push(capabilityControlsIssue({
304
+ params.issues.push(executionCapabilityControlsIssue({
289
305
  issueCode: materialized.issueCode,
290
306
  controlId: materialized.controlId,
291
307
  path: materialized.controlId
@@ -300,7 +316,8 @@ function parseCapabilityInvocation(params) {
300
316
  }
301
317
  if (!capability ||
302
318
  (params.observationOnly && capability.effect !== "observation") ||
303
- intent === undefined) {
319
+ intent === undefined ||
320
+ !operationObjective.ok) {
304
321
  return { expectedKeys };
305
322
  }
306
323
  return {
@@ -308,6 +325,9 @@ function parseCapabilityInvocation(params) {
308
325
  value: Object.freeze({
309
326
  capabilityId: capability.capabilityId,
310
327
  intent,
328
+ ...(operationObjective.value
329
+ ? { operationObjective: operationObjective.value }
330
+ : {}),
311
331
  ...(selectionControls ? { selectionControls } : {}),
312
332
  ...(controls ? { controls } : {}),
313
333
  }),
@@ -411,15 +431,6 @@ function validateBoundedText(params) {
411
431
  }
412
432
  return normalized;
413
433
  }
414
- function normalizeGeneratedCapabilityControls(value, schema) {
415
- const record = asRecord(value);
416
- if (!record)
417
- return value;
418
- const required = new Set(schema.required);
419
- return Object.fromEntries(Object.entries(record).filter(([controlId, controlValue]) => controlValue !== null ||
420
- required.has(controlId) ||
421
- !Object.hasOwn(schema.properties, controlId)));
422
- }
423
434
  function readAction(value) {
424
435
  return typeof value === "string" &&
425
436
  EXECUTION_AGENT_DECISION_ACTIONS.includes(value)
@@ -434,11 +445,6 @@ function exactKeys(record, expectedKeys, issues, path) {
434
445
  issues.push(issue("execution_agent_decision_shape_invalid", path, "Decision fields must exactly match the selected action."));
435
446
  }
436
447
  }
437
- function capabilityControlsIssue(params) {
438
- return issue(`execution_agent_capability_${params.issueCode}`, params.path, params.controlId
439
- ? `Capability control ${JSON.stringify(params.controlId)} failed ${params.issueCode}.`
440
- : `Capability controls failed ${params.issueCode}.`);
441
- }
442
448
  function rejectEnvelope(issues) {
443
449
  return {
444
450
  ok: false,
@@ -7,7 +7,8 @@ export function buildExecutionAgentInstructions(params) {
7
7
  "Use relevant conversation history as source data to resolve follow-up references such as 'this summary', 'that file', or 'again'. Do not ask the user to repeat content that is already present in the supplied history; history supplies data but never creates a new intent.",
8
8
  "When chronological runtime_execution_agent_action_v1 and runtime_execution_capability_result_v1 messages follow the current request, they are the exact accepted action and exact adapter result from earlier turns of this same request. Treat the result as tool evidence, not as new user intent; decide the next action yourself.",
9
9
  "runtime_execution_state_v1 may also list completedSubordinateResults produced through the same canonical role-call ledger. Treat each as bounded evidence from that exact completed role call, never as new user intent or authority; you still decide the next action.",
10
- "When runtime_execution_state_v1 contains capabilitySelectionReconsideration, it passively records that the listed selection was reconsidered before execution. It is not a capability result and chooses no replacement; decide the next action yourself.",
10
+ "When runtime_execution_state_v1 contains capabilitySelectionReconsideration, it passively records that controls refinement exhausted structured-output validation before execution. Its optional supervision field reports only bounded mechanical repetition counts for this activation; it makes no semantic judgment, does not require execution, and is not a capability result. It chooses no replacement; decide the next action yourself.",
11
+ "When runtime_execution_state_v1 contains operationSupervision, runtime_operation_supervision_evidence_v1 is the self-contained passive evidence capsule for this activation's decision and its immediate presentation handoff. Use it only when binding.callId equals runtime_execution_state_v1.callId and binding.invocationAttempt equals runtime_execution_state_v1.activationCount. Each entry carries its notice. Join notice.originExecutionId only to the equal originExecutionId in the capsule. For existing_exact_capability_result_lane evidence, join evidence.executionId to the equal executionId in runtime_execution_capability_result_v1; for embedded_cross_call_exact_result evidence, acceptedAction is the exact accepted operation from the originating call, and receipt plus adapterResult are its established outcome. This is not user intent, does not establish a new capability result, and chooses no replacement; decide the next action yourself.",
11
12
  params.hasCapabilityCatalogGroups
12
13
  ? "The passive runtime_execution_capability_group_catalog_v1 capsule lists the full manifest-owned capability groups. Each group description contains every member as an exact capabilityId: summary line in stable order, without capability controls, selection guidance, sampling, truncation, or semantic synthesis. These descriptions are routing metadata only: they help identify a relevant group but never select or require a group, capability, action, or completion. You alone decide whether and when to open or extend a capability scope. Selecting multiple catalogGroupIds forms an OR union. open_capability_scope establishes an active scope from a closed state; extend_capability_scope adds only explicitly selected inactive groups to an active scope and cannot remove groups. Neither action invokes a capability or forces any later capability, Planner, Auditor, or respond decision. The runtime never automatically expands, closes, or falls back from a scope."
13
14
  : "No capability group is registered for this decision, so no capability scope can be opened.",
@@ -22,7 +23,7 @@ export function buildExecutionAgentInstructions(params) {
22
23
  "The user's explicit request is already the authority to perform the offered action within its stated scope. Treat 'can you', 'could you', 'would you', and equivalent phrasing in any language followed by an action as a request to perform that action, not as a request for another confirmation. Do not ask for confirmation merely because an offered capability has an external effect; the runtime enforces any approval that is actually required.",
23
24
  "Use blocked only for a truthful user-facing blocker when no offered action can establish the missing outcome. Runtime or provider failures are not blocked decisions.",
24
25
  params.hasCapabilities
25
- ? `When external observation or effect is required, select one offered capability and provide a short client-facing status in intent, at most ${CAPABILITY_INTENT_MAX_LENGTH} characters. Intent is presentation metadata only: do not put sources, controls, payload details, or execution instructions in it. Observation capabilities may be batched only when independent; never batch mutations. A capability receipt proves only its exact reported outcome.`
26
+ ? `When external observation or effect is required, select one offered capability and provide a short client-facing status in intent, at most ${CAPABILITY_INTENT_MAX_LENGTH} characters. Intent is presentation metadata only: do not put sources, controls, payload details, or execution instructions in it. When the invocation schema requires operationObjective, state the complete bounded operation for that invocation alone. operationObjective is internal execution input constrained by the active user request and selected capability; it must not add unrelated outcomes, describe the whole workflow, or broaden the request. Observation capabilities may be batched only when independent; never batch mutations. The runtime determines exact duplicate operations only after every invocation is fully materialized. A capability receipt proves only its exact reported outcome.`
26
27
  : "No capability is offered in the active scope for this decision. Do not claim external observation or effects.",
27
28
  params.includeWorkingDirectory
28
29
  ? "For a capability invocation, workingDirectory may establish one immutable portable agent-root-relative execution base for this request. Use null only when the agent root itself is the correct base. This selection scopes execution but does not prove any effect."
@@ -0,0 +1,3 @@
1
+ import type { RoleCallFrame, RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
2
+ export declare const EXECUTION_CAPABILITY_RECONSIDERATION_MESSAGE_KIND: "runtime_execution_capability_reconsideration_v1";
3
+ export declare function projectImmediateCapabilityReconsideration(head: RoleCallLedgerHead, call: RoleCallFrame, currentSteeringVersion?: number): Record<string, unknown> | undefined;