@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
@@ -1,8 +1,9 @@
1
1
  import { deriveRegisteredToolPayloadContextPlan, deriveRegisteredToolStagedPayloadPlan, } from "../registered-tool-payload-plan.js";
2
2
  import { captureNormalInvocationRegistrations } from "./catalog/registrations.js";
3
3
  import { projectRuntimePathBindings } from "./catalog/runtime-path-bindings.js";
4
- import { executeNormalInvocation } from "./execution/run.js";
4
+ import { executeNormalInvocation, prepareNormalInvocation, } from "./execution/run.js";
5
5
  import { emitNormalInvocationPayloadLifecycle } from "./payload/lifecycle.js";
6
+ import { prepareNormalInvocationPayloadLifecycle } from "./payload/lifecycle.js";
6
7
  /**
7
8
  * Captures one selected ToolRegistry snapshot and executes its ordinary
8
9
  * invocation contracts. Normalization may only resolve another operation from
@@ -21,9 +22,7 @@ export function createRegisteredToolNormalInvocationExecutor(params) {
21
22
  operationByHandle.set(handle, Object.freeze({
22
23
  registration,
23
24
  operation,
24
- ...(runtimePathBindings.length > 0
25
- ? { runtimePathBindings }
26
- : {}),
25
+ ...(runtimePathBindings.length > 0 ? { runtimePathBindings } : {}),
27
26
  ...(payloadContextPlan ? { payloadContextPlan } : {}),
28
27
  ...(stagedPayloadPlan ? { stagedPayloadPlan } : {}),
29
28
  }));
@@ -44,6 +43,21 @@ export function createRegisteredToolNormalInvocationExecutor(params) {
44
43
  ...(params.onEvent ? { onEvent: params.onEvent } : {}),
45
44
  });
46
45
  },
46
+ preparePayloadLifecycle(input) {
47
+ return prepareNormalInvocationPayloadLifecycle({
48
+ operationByHandle,
49
+ input,
50
+ ...(params.onEvent ? { onEvent: params.onEvent } : {}),
51
+ });
52
+ },
53
+ prepare(input) {
54
+ return prepareNormalInvocation({
55
+ executor: params,
56
+ registrations,
57
+ operationByHandle,
58
+ input,
59
+ });
60
+ },
47
61
  execute(input) {
48
62
  return executeNormalInvocation({
49
63
  executor: params,
@@ -1,6 +1,11 @@
1
- import type { BoundOperation, RegisteredToolNormalInvocationPayloadLifecycleInput, RegisteredToolNormalInvocationPayloadLifecycleResult } from "../shared/contracts.js";
1
+ import type { BoundOperation, RegisteredToolNormalInvocationPayloadLifecycleInput, RegisteredToolNormalInvocationPayloadLifecyclePreparation, RegisteredToolNormalInvocationPayloadLifecycleResult } from "../shared/contracts.js";
2
2
  export declare function emitNormalInvocationPayloadLifecycle(params: {
3
3
  operationByHandle: WeakMap<object, BoundOperation>;
4
4
  input: RegisteredToolNormalInvocationPayloadLifecycleInput;
5
5
  onEvent?(name: string, payload: Record<string, unknown>): void;
6
6
  }): RegisteredToolNormalInvocationPayloadLifecycleResult;
7
+ export declare function prepareNormalInvocationPayloadLifecycle(params: {
8
+ operationByHandle: WeakMap<object, BoundOperation>;
9
+ input: RegisteredToolNormalInvocationPayloadLifecycleInput;
10
+ onEvent?(name: string, payload: Record<string, unknown>): void;
11
+ }): RegisteredToolNormalInvocationPayloadLifecyclePreparation;
@@ -3,6 +3,10 @@ import { buildToolIntentEventMetadata } from "../shared/event-metadata.js";
3
3
  import { rejectNormalInvocation } from "../shared/rejection.js";
4
4
  import { validatePublicInput } from "./input-preparation.js";
5
5
  export function emitNormalInvocationPayloadLifecycle(params) {
6
+ const prepared = prepareNormalInvocationPayloadLifecycle(params);
7
+ return prepared.status === "prepared" ? prepared.emit() : prepared;
8
+ }
9
+ export function prepareNormalInvocationPayloadLifecycle(params) {
6
10
  const source = params.operationByHandle.get(params.input.handle);
7
11
  if (!source) {
8
12
  return rejectNormalInvocation("normal_invocation_handle_invalid", "The selected ordinary capability is not registered for this request.");
@@ -28,24 +32,33 @@ export function emitNormalInvocationPayloadLifecycle(params) {
28
32
  payloadStageCount: lifecycleStage.stage.count,
29
33
  ...(eventMeta ? { meta: eventMeta } : {}),
30
34
  };
31
- switch (params.input.phase) {
35
+ const event = materializePayloadLifecycleEvent(params.input, base);
36
+ return Object.freeze({
37
+ status: "prepared",
38
+ emit: () => {
39
+ params.onEvent?.(event.name, event.payload);
40
+ return Object.freeze({ status: "emitted" });
41
+ },
42
+ });
43
+ }
44
+ function materializePayloadLifecycleEvent(input, base) {
45
+ switch (input.phase) {
32
46
  case "started":
33
- params.onEvent?.("tool.payload.started", base);
34
- break;
47
+ return Object.freeze({ name: "tool.payload.started", payload: base });
35
48
  case "completed":
36
- params.onEvent?.("tool.payload.completed", {
37
- ...base,
38
- ok: true,
49
+ return Object.freeze({
50
+ name: "tool.payload.completed",
51
+ payload: { ...base, ok: true },
39
52
  });
40
- break;
41
53
  case "failed":
42
- params.onEvent?.("tool.payload.failed", {
43
- ...base,
44
- ...(params.input.errorCode ? { error: params.input.errorCode } : {}),
54
+ return Object.freeze({
55
+ name: "tool.payload.failed",
56
+ payload: {
57
+ ...base,
58
+ ...(input.errorCode ? { error: input.errorCode } : {}),
59
+ },
45
60
  });
46
- break;
47
61
  }
48
- return Object.freeze({ status: "emitted" });
49
62
  }
50
63
  function resolvePayloadLifecycleStage(source, input) {
51
64
  const plan = source.stagedPayloadPlan;
@@ -0,0 +1,22 @@
1
+ import type { ToolCall } from "../../../../capabilities/tool-types.js";
2
+ /**
3
+ * Hashes the exact normalized tool call. The runtime core receives only this
4
+ * opaque identity and remains independent of tools, controls, and payloads.
5
+ */
6
+ export declare function createRegisteredToolActionFingerprint(input: {
7
+ contractVersion: number;
8
+ operationId: string;
9
+ call: ToolCall;
10
+ }): string;
11
+ /**
12
+ * Identifies a fully bounded preparation attempt that could not become a
13
+ * normalized tool call. The stable rejection code keeps it disjoint from a
14
+ * later successful materialization of the same public controls.
15
+ */
16
+ export declare function createRegisteredToolPreparationAttemptFingerprint(input: {
17
+ operationId: string;
18
+ controls: Readonly<Record<string, unknown>>;
19
+ rejectionCode: string;
20
+ payload?: string;
21
+ materializedParams?: Readonly<Record<string, string>>;
22
+ }): string;
@@ -0,0 +1,65 @@
1
+ import { createHash } from "node:crypto";
2
+ /**
3
+ * Hashes the exact normalized tool call. The runtime core receives only this
4
+ * opaque identity and remains independent of tools, controls, and payloads.
5
+ */
6
+ export function createRegisteredToolActionFingerprint(input) {
7
+ const canonical = JSON.stringify([
8
+ "registered_tool_normal_invocation_v1",
9
+ input.contractVersion,
10
+ input.operationId,
11
+ input.call.tool,
12
+ canonicalEntries(input.call.params),
13
+ ]);
14
+ return `sha256:${createHash("sha256").update(canonical).digest("hex")}`;
15
+ }
16
+ /**
17
+ * Identifies a fully bounded preparation attempt that could not become a
18
+ * normalized tool call. The stable rejection code keeps it disjoint from a
19
+ * later successful materialization of the same public controls.
20
+ */
21
+ export function createRegisteredToolPreparationAttemptFingerprint(input) {
22
+ const canonical = JSON.stringify([
23
+ "operation_preparation_attempt_v1",
24
+ input.operationId,
25
+ canonicalEntries(input.controls),
26
+ input.rejectionCode,
27
+ input.payload === undefined ? null : digestText(input.payload),
28
+ input.materializedParams === undefined
29
+ ? null
30
+ : Object.freeze(Object.entries(input.materializedParams)
31
+ .sort(([left], [right]) => compareText(left, right))
32
+ .map(([key, value]) => Object.freeze([key, digestText(value)]))),
33
+ ]);
34
+ return `sha256:${createHash("sha256").update(canonical).digest("hex")}`;
35
+ }
36
+ function digestText(value) {
37
+ return `sha256:${createHash("sha256").update(value).digest("hex")}`;
38
+ }
39
+ function canonicalEntries(input) {
40
+ return Object.freeze(Object.entries(input)
41
+ .sort(([left], [right]) => compareText(left, right))
42
+ .map(([key, value]) => Object.freeze([key, canonicalValue(value)])));
43
+ }
44
+ function canonicalValue(value) {
45
+ if (Array.isArray(value)) {
46
+ return Object.freeze(value.map((entry) => canonicalValue(entry)));
47
+ }
48
+ if (isPlainRecord(value))
49
+ return canonicalEntries(value);
50
+ return value;
51
+ }
52
+ function isPlainRecord(value) {
53
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
54
+ return false;
55
+ }
56
+ const prototype = Object.getPrototypeOf(value);
57
+ return prototype === Object.prototype || prototype === null;
58
+ }
59
+ function compareText(left, right) {
60
+ if (left < right)
61
+ return -1;
62
+ if (left > right)
63
+ return 1;
64
+ return 0;
65
+ }
@@ -31,10 +31,26 @@ export type RegisteredToolNormalInvocationExecution = Readonly<{
31
31
  completionActions: readonly ToolActionSummary[];
32
32
  }>;
33
33
  export type RegisteredToolNormalInvocationResult = RegisteredToolNormalInvocationExecution | RegisteredToolNormalInvocationRejection;
34
+ export type RegisteredToolPreparedNormalInvocation = Readonly<{
35
+ status: "prepared";
36
+ /** Opaque identity of the exact normalized call that would be executed. */
37
+ actionFingerprint: string;
38
+ /** Exact validated non-payload controls accepted for this invocation. */
39
+ acceptedControls: Readonly<Record<string, unknown>>;
40
+ execute(): Promise<RegisteredToolNormalInvocationResult>;
41
+ }>;
42
+ export type RegisteredToolNormalInvocationPreparation = RegisteredToolPreparedNormalInvocation | RegisteredToolNormalInvocationRejection;
34
43
  export type RegisteredToolNormalInvocationPayloadLifecyclePhase = "started" | "completed" | "failed";
35
44
  export type RegisteredToolNormalInvocationPayloadLifecycleResult = Readonly<{
36
45
  status: "emitted";
37
46
  }> | RegisteredToolNormalInvocationRejection;
47
+ export type RegisteredToolPreparedNormalInvocationPayloadLifecycle = Readonly<{
48
+ status: "prepared";
49
+ emit(): Readonly<{
50
+ status: "emitted";
51
+ }>;
52
+ }>;
53
+ export type RegisteredToolNormalInvocationPayloadLifecyclePreparation = RegisteredToolPreparedNormalInvocationPayloadLifecycle | RegisteredToolNormalInvocationRejection;
38
54
  export type RegisteredToolNormalInvocationExecutor = Readonly<{
39
55
  operations: readonly RegisteredToolNormalInvocationProjection[];
40
56
  /**
@@ -52,6 +68,33 @@ export type RegisteredToolNormalInvocationExecutor = Readonly<{
52
68
  payloadStageCount?: number;
53
69
  outputParam?: string;
54
70
  }>): RegisteredToolNormalInvocationPayloadLifecycleResult;
71
+ /**
72
+ * Validates and materializes one payload lifecycle event without publishing
73
+ * it. The prepared event can be released only after canonical admission.
74
+ */
75
+ preparePayloadLifecycle(input: Readonly<{
76
+ handle: RegisteredToolNormalInvocationHandle;
77
+ controls: Readonly<Record<string, unknown>>;
78
+ /** Client-facing lifecycle metadata; never part of tool parameters. */
79
+ intent?: string;
80
+ phase: RegisteredToolNormalInvocationPayloadLifecyclePhase;
81
+ errorCode?: string;
82
+ payloadStage?: number;
83
+ payloadStageCount?: number;
84
+ outputParam?: string;
85
+ }>): RegisteredToolNormalInvocationPayloadLifecyclePreparation;
86
+ /**
87
+ * Fully validates and normalizes an invocation without approval or tool
88
+ * execution. The returned action fingerprint is safe for generic admission.
89
+ */
90
+ prepare(input: Readonly<{
91
+ handle: RegisteredToolNormalInvocationHandle;
92
+ controls: Readonly<Record<string, unknown>>;
93
+ payload?: string;
94
+ materializedParams?: Readonly<Record<string, string>>;
95
+ /** Client-facing lifecycle metadata; never part of tool parameters. */
96
+ intent?: string;
97
+ }>): RegisteredToolNormalInvocationPreparation;
55
98
  execute(input: Readonly<{
56
99
  handle: RegisteredToolNormalInvocationHandle;
57
100
  controls: Readonly<Record<string, unknown>>;
@@ -84,3 +127,4 @@ export type RegisteredToolNormalInvocationExecutorParams = Readonly<{
84
127
  }>;
85
128
  export type RegisteredToolNormalInvocationPayloadLifecycleInput = Parameters<RegisteredToolNormalInvocationExecutor["emitPayloadLifecycle"]>[0];
86
129
  export type RegisteredToolNormalInvocationExecutionInput = Parameters<RegisteredToolNormalInvocationExecutor["execute"]>[0];
130
+ export type RegisteredToolNormalInvocationPreparationInput = Parameters<RegisteredToolNormalInvocationExecutor["prepare"]>[0];
@@ -1,3 +1,3 @@
1
1
  export { createRegisteredToolNormalInvocationExecutor } from "./registered-tool-normal-invocations/executor.js";
2
2
  export { projectRuntimePathBindings } from "./registered-tool-normal-invocations/catalog/runtime-path-bindings.js";
3
- export type { RegisteredToolNormalInvocationExecution, RegisteredToolNormalInvocationExecutor, RegisteredToolNormalInvocationHandle, RegisteredToolNormalInvocationPayloadLifecyclePhase, RegisteredToolNormalInvocationPayloadLifecycleResult, RegisteredToolNormalInvocationProjection, RegisteredToolNormalInvocationRejection, RegisteredToolNormalInvocationResult, } from "./registered-tool-normal-invocations/shared/contracts.js";
3
+ export type { RegisteredToolNormalInvocationExecution, RegisteredToolNormalInvocationExecutor, RegisteredToolNormalInvocationHandle, RegisteredToolNormalInvocationPayloadLifecyclePhase, RegisteredToolNormalInvocationPayloadLifecyclePreparation, RegisteredToolNormalInvocationPayloadLifecycleResult, RegisteredToolNormalInvocationPreparation, RegisteredToolNormalInvocationProjection, RegisteredToolPreparedNormalInvocation, RegisteredToolPreparedNormalInvocationPayloadLifecycle, RegisteredToolNormalInvocationRejection, RegisteredToolNormalInvocationResult, } from "./registered-tool-normal-invocations/shared/contracts.js";
@@ -71,11 +71,18 @@ function projectWorkerDescriptor(definition, operation, stagedPayloadPlan) {
71
71
  if (!controls.ok) {
72
72
  throw new RegisteredToolWorkerCapabilityCompositionError("operation_controls_unsupported", operation.operationId);
73
73
  }
74
- const selectionControlIds = definition.payloadChannelSpec?.targetRole === "operation_target"
74
+ const payloadTargetControlId = definition.payloadChannelSpec?.targetRole === "operation_target"
75
75
  ? definition.payloadChannelSpec.targetParam
76
- ? [definition.payloadChannelSpec.targetParam]
77
- : undefined
78
- : [];
76
+ : undefined;
77
+ const selectionControlIds = definition.payloadChannelSpec?.targetRole === "operation_target" &&
78
+ !payloadTargetControlId
79
+ ? undefined
80
+ : Object.freeze([
81
+ ...new Set([
82
+ ...(operation.selectionControlIds ?? []),
83
+ ...(payloadTargetControlId ? [payloadTargetControlId] : []),
84
+ ]),
85
+ ]);
79
86
  const controlsPartition = partitionWorkerCapabilityControlsSchema(controls.value, selectionControlIds);
80
87
  if (!controlsPartition.ok || selectionControlIds === undefined) {
81
88
  throw new RegisteredToolWorkerCapabilityCompositionError("operation_target_control_invalid", operation.operationId);
@@ -101,6 +108,9 @@ function projectWorkerDescriptor(definition, operation, stagedPayloadPlan) {
101
108
  ...(definition.controlsRefinement
102
109
  ? { controlsRefinement: definition.controlsRefinement }
103
110
  : {}),
111
+ ...(operation.payload
112
+ ? { requiresPayloadAuthoringObjective: true }
113
+ : {}),
104
114
  catalogGroups,
105
115
  });
106
116
  }
@@ -1,9 +1,12 @@
1
1
  import { assertWorkerCapabilityWithinScope, projectWorkerCapabilityScope, WorkerCapabilityScopeError, } from "../../orchestration/worker-capabilities/index.js";
2
2
  import { traceRegisteredToolWorkerCapabilityExecutionCompleted, traceRegisteredToolWorkerCapabilityExecutionFailed, traceRegisteredToolWorkerCapabilityExecutionStarted, } from "../registered-tool-worker-capability-diagnostics.js";
3
3
  import { RegisteredToolWorkerCapabilityCompositionError, RegisteredToolWorkerCapabilityExecutionError, } from "./errors.js";
4
- import { executionFreshnessRejection, prepareOperationPayload, } from "./payload-lifecycle.js";
4
+ import { executionFreshnessRejection, payloadRejection, prepareOperationPayload, } from "./payload-lifecycle.js";
5
5
  import { attachTargetReferences, observeExternalResult, projectSelectedTargetReferences, } from "./result-observer.js";
6
6
  import { resolveEffectiveOperationTargetControls } from "./runtime-path-controls.js";
7
+ import { createRegisteredToolPreparationAttemptFingerprint } from "../registered-tool-normal-invocations/shared/action-fingerprint.js";
8
+ import { createWorkerCapabilityPreparationFailureFingerprint } from "../../orchestration/worker-capabilities/preparation-fingerprint.js";
9
+ import { createDeferredPayloadObservability } from "./payload-observability.js";
7
10
  export function projectWorkerAdapters(params) {
8
11
  const projections = new Map();
9
12
  for (const projection of params.executor.operations) {
@@ -37,97 +40,159 @@ export function projectWorkerAdapters(params) {
37
40
  }));
38
41
  }
39
42
  function createWorkerAdapter(params) {
40
- const operationId = params.projection.operation.operationId;
41
- const operationEffect = params.projection.operation.effect;
42
43
  return Object.freeze({
43
44
  descriptor: params.descriptor,
45
+ async prepare(input) {
46
+ return prepareRegisteredToolWorkerAdapter(params, input);
47
+ },
44
48
  async execute(input) {
45
- try {
46
- const capabilityScope = projectWorkerCapabilityScope({
47
- entries: params.scopeDescriptors,
48
- scope: input.call.workerCapabilityScope,
49
- descriptorOf: (descriptor) => descriptor,
50
- });
51
- assertWorkerCapabilityWithinScope(capabilityScope, params.descriptor);
52
- }
53
- catch (error) {
54
- const scopedError = error instanceof WorkerCapabilityScopeError
55
- ? new RegisteredToolWorkerCapabilityCompositionError(error.issueCode, operationId)
56
- : error;
57
- traceRegisteredToolWorkerCapabilityExecutionFailed(params.diagnostic, operationId, input.call, input.executionId, scopedError, error instanceof WorkerCapabilityScopeError
58
- ? error.issueCode
59
- : "capability_scope_validation_failed");
60
- throw scopedError;
61
- }
62
- traceRegisteredToolWorkerCapabilityExecutionStarted(params.diagnostic, operationId, input.call, input.executionId, input.intent.length, Object.keys(input.controls).length);
63
- try {
64
- const effectiveControls = resolveEffectiveOperationTargetControls({
65
- descriptor: params.descriptor,
66
- controls: input.controls,
67
- runtimePathBindings: params.projection.runtimePathBindings ?? Object.freeze([]),
68
- workingDirectory: input.call.workingDirectory,
69
- sharedState: params.sharedState,
70
- });
71
- const selectedTargetReferences = projectSelectedTargetReferences(params.projection, effectiveControls, input.call.parentCallId === null
72
- ? params.descriptor.selectionControlIds
73
- : undefined);
74
- const preparedPayload = await prepareOperationPayload({
75
- projection: params.projection,
76
- executor: params.executor,
77
- sharedState: params.sharedState,
78
- ...(params.payloadAuthor
79
- ? { payloadAuthor: params.payloadAuthor }
80
- : {}),
81
- call: input.call,
82
- executionId: input.executionId,
83
- descriptor: params.descriptor,
84
- intent: input.intent,
85
- controls: effectiveControls,
86
- ...(input.dependencyResults
87
- ? { dependencyResults: input.dependencyResults }
88
- : {}),
89
- settledCapabilityResults: input.settledCapabilityResults,
90
- diagnostic: params.diagnostic,
91
- ...(input.executionFreshness
92
- ? { executionFreshness: input.executionFreshness }
93
- : {}),
94
- });
95
- const completeRejectedExecution = (rejectedExecution) => {
96
- const canonicalResult = Object.freeze({
97
- ...rejectedExecution.result,
98
- exactResult: rejectedExecution.exactResult,
99
- });
100
- const preparedResult = attachTargetReferences(canonicalResult, selectedTargetReferences);
101
- traceRegisteredToolWorkerCapabilityExecutionCompleted(params.diagnostic, operationId, input.call, input.executionId, preparedResult, "rejected", {
102
- sourceIssueCode: rejectedExecution.sourceIssueCode,
103
- summaryProjection: "runtime_rejection",
104
- completionActions: Object.freeze([]),
105
- });
106
- return preparedResult;
107
- };
108
- if (preparedPayload.status === "rejected") {
109
- return completeRejectedExecution(preparedPayload);
49
+ const preparationInput = Object.freeze({
50
+ ...input,
51
+ preparationId: input.executionId,
52
+ });
53
+ const prepared = await prepareRegisteredToolWorkerAdapter(params, preparationInput);
54
+ return prepared.execute(input.executionId);
55
+ },
56
+ });
57
+ }
58
+ async function prepareRegisteredToolWorkerAdapter(params, input) {
59
+ const operationId = params.projection.operation.operationId;
60
+ const payloadObservability = createDeferredPayloadObservability({
61
+ executor: params.executor,
62
+ diagnostic: params.diagnostic,
63
+ operationId,
64
+ call: input.call,
65
+ });
66
+ try {
67
+ return await prepareRegisteredToolWorkerCapability(params, input, payloadObservability);
68
+ }
69
+ catch (error) {
70
+ if (error instanceof Error && error.name === "AbortError")
71
+ throw error;
72
+ const actionFingerprint = createWorkerCapabilityPreparationFailureFingerprint({
73
+ capabilityId: params.descriptor.capabilityId,
74
+ controls: input.controls,
75
+ ...(input.call.workingDirectory
76
+ ? { workingDirectory: input.call.workingDirectory }
77
+ : {}),
78
+ error,
79
+ });
80
+ return Object.freeze({
81
+ ...(actionFingerprint ? { actionFingerprint } : {}),
82
+ acceptedControls: input.controls,
83
+ execute: async (executionId) => {
84
+ try {
85
+ payloadObservability.release(executionId);
86
+ }
87
+ catch (releaseError) {
88
+ tracePreparedExecutionFailed(params, input, operationId, executionId, releaseError);
89
+ throw releaseError;
110
90
  }
91
+ tracePreparedExecutionFailed(params, input, operationId, executionId, error, registeredPreparationFailureIssueCode(error));
92
+ throw error;
93
+ },
94
+ });
95
+ }
96
+ }
97
+ async function prepareRegisteredToolWorkerCapability(params, input, payloadObservability) {
98
+ const operationId = params.projection.operation.operationId;
99
+ assertPreparedCapabilityScope(params, input, operationId);
100
+ const effectiveControls = resolveEffectiveOperationTargetControls({
101
+ descriptor: params.descriptor,
102
+ controls: input.controls,
103
+ runtimePathBindings: params.projection.runtimePathBindings ?? Object.freeze([]),
104
+ workingDirectory: input.call.workingDirectory,
105
+ sharedState: params.sharedState,
106
+ });
107
+ const selectedTargetReferences = projectSelectedTargetReferences(params.projection, effectiveControls, input.call.parentCallId === null
108
+ ? params.descriptor.selectionControlIds
109
+ : undefined);
110
+ const preparedPayload = await prepareOperationPayload({
111
+ projection: params.projection,
112
+ executor: payloadObservability.lifecycleEmitter,
113
+ sharedState: params.sharedState,
114
+ ...(params.payloadAuthor ? { payloadAuthor: params.payloadAuthor } : {}),
115
+ call: input.call,
116
+ // The payload contract still names this correlation executionId. During
117
+ // prepare it is deliberately non-canonical and never enters the ledger.
118
+ executionId: input.preparationId,
119
+ descriptor: params.descriptor,
120
+ intent: input.intent,
121
+ ...(input.authoringObjective
122
+ ? { authoringObjective: input.authoringObjective }
123
+ : {}),
124
+ controls: effectiveControls,
125
+ ...(input.dependencyResults
126
+ ? { dependencyResults: input.dependencyResults }
127
+ : {}),
128
+ settledCapabilityResults: input.settledCapabilityResults,
129
+ deferPayloadStageMaterialized: payloadObservability.deferPayloadStageMaterialized,
130
+ ...(input.executionFreshness
131
+ ? { executionFreshness: input.executionFreshness }
132
+ : {}),
133
+ });
134
+ if (preparedPayload.status === "rejected") {
135
+ return preparedRuntimeRejection({
136
+ params,
137
+ input,
138
+ operationId,
139
+ effectiveControls,
140
+ selectedTargetReferences,
141
+ rejectedExecution: preparedPayload,
142
+ payloadObservability,
143
+ });
144
+ }
145
+ const normalPreparation = params.executor.prepare({
146
+ handle: params.projection.handle,
147
+ controls: effectiveControls,
148
+ ...(preparedPayload.body === undefined
149
+ ? {}
150
+ : { payload: preparedPayload.body }),
151
+ ...(preparedPayload.materializedParams === undefined
152
+ ? {}
153
+ : { materializedParams: preparedPayload.materializedParams }),
154
+ intent: input.intent,
155
+ });
156
+ if (normalPreparation.status === "rejected") {
157
+ const canonicalRejection = payloadRejection(normalPreparation.code, normalPreparation.message);
158
+ return preparedRuntimeRejection({
159
+ params,
160
+ input,
161
+ operationId,
162
+ effectiveControls,
163
+ selectedTargetReferences,
164
+ rejectedExecution: canonicalRejection,
165
+ payloadObservability,
166
+ ...(preparedPayload.body === undefined
167
+ ? {}
168
+ : { payload: preparedPayload.body }),
169
+ ...(preparedPayload.materializedParams === undefined
170
+ ? {}
171
+ : { materializedParams: preparedPayload.materializedParams }),
172
+ });
173
+ }
174
+ return Object.freeze({
175
+ actionFingerprint: normalPreparation.actionFingerprint,
176
+ acceptedControls: normalPreparation.acceptedControls,
177
+ execute: async (executionId) => {
178
+ try {
179
+ payloadObservability.release(executionId);
180
+ tracePreparedExecutionStarted(params, input, operationId, executionId);
111
181
  const rejectedExecution = executionFreshnessRejection(input.executionFreshness);
112
182
  if (rejectedExecution) {
113
- return completeRejectedExecution(rejectedExecution);
183
+ return completeRuntimeRejection({
184
+ params,
185
+ input,
186
+ operationId,
187
+ executionId,
188
+ selectedTargetReferences,
189
+ rejectedExecution,
190
+ });
114
191
  }
115
- const externalResult = await params.executor.execute({
116
- handle: params.projection.handle,
117
- controls: effectiveControls,
118
- ...(preparedPayload.body === undefined
119
- ? {}
120
- : { payload: preparedPayload.body }),
121
- ...(preparedPayload.materializedParams === undefined
122
- ? {}
123
- : {
124
- materializedParams: preparedPayload.materializedParams,
125
- }),
126
- intent: input.intent,
127
- });
128
- const observed = observeExternalResult(externalResult, operationEffect, input.call.parentCallId === null);
192
+ const externalResult = await normalPreparation.execute();
193
+ const observed = observeExternalResult(externalResult, params.projection.operation.effect, input.call.parentCallId === null);
129
194
  const observedResult = attachTargetReferences(observed.result, selectedTargetReferences);
130
- traceRegisteredToolWorkerCapabilityExecutionCompleted(params.diagnostic, operationId, input.call, input.executionId, observedResult, externalResult.status, {
195
+ traceRegisteredToolWorkerCapabilityExecutionCompleted(params.diagnostic, operationId, input.call, executionId, observedResult, externalResult.status, {
131
196
  ...(observed.sourceIssueCode
132
197
  ? { sourceIssueCode: observed.sourceIssueCode }
133
198
  : {}),
@@ -145,11 +210,77 @@ function createWorkerAdapter(params) {
145
210
  return observedResult;
146
211
  }
147
212
  catch (error) {
148
- traceRegisteredToolWorkerCapabilityExecutionFailed(params.diagnostic, operationId, input.call, input.executionId, error, error instanceof RegisteredToolWorkerCapabilityExecutionError
149
- ? error.issueCode
150
- : "execution_failed");
213
+ tracePreparedExecutionFailed(params, input, operationId, executionId, error);
214
+ throw error;
215
+ }
216
+ },
217
+ });
218
+ }
219
+ function preparedRuntimeRejection(input) {
220
+ return Object.freeze({
221
+ actionFingerprint: createRegisteredToolPreparationAttemptFingerprint({
222
+ operationId: input.operationId,
223
+ controls: input.effectiveControls,
224
+ rejectionCode: input.rejectedExecution.sourceIssueCode,
225
+ ...(input.payload === undefined ? {} : { payload: input.payload }),
226
+ ...(input.materializedParams === undefined
227
+ ? {}
228
+ : { materializedParams: input.materializedParams }),
229
+ }),
230
+ acceptedControls: input.effectiveControls,
231
+ execute: async (executionId) => {
232
+ try {
233
+ input.payloadObservability.release(executionId);
234
+ tracePreparedExecutionStarted(input.params, input.input, input.operationId, executionId);
235
+ return completeRuntimeRejection({ ...input, executionId });
236
+ }
237
+ catch (error) {
238
+ tracePreparedExecutionFailed(input.params, input.input, input.operationId, executionId, error);
151
239
  throw error;
152
240
  }
153
241
  },
154
242
  });
155
243
  }
244
+ function completeRuntimeRejection(input) {
245
+ const canonicalResult = Object.freeze({
246
+ ...input.rejectedExecution.result,
247
+ exactResult: input.rejectedExecution.exactResult,
248
+ });
249
+ const preparedResult = attachTargetReferences(canonicalResult, input.selectedTargetReferences);
250
+ traceRegisteredToolWorkerCapabilityExecutionCompleted(input.params.diagnostic, input.operationId, input.input.call, input.executionId, preparedResult, "rejected", {
251
+ sourceIssueCode: input.rejectedExecution.sourceIssueCode,
252
+ summaryProjection: "runtime_rejection",
253
+ completionActions: Object.freeze([]),
254
+ });
255
+ return preparedResult;
256
+ }
257
+ function assertPreparedCapabilityScope(params, input, operationId) {
258
+ try {
259
+ const capabilityScope = projectWorkerCapabilityScope({
260
+ entries: params.scopeDescriptors,
261
+ scope: input.call.workerCapabilityScope,
262
+ descriptorOf: (descriptor) => descriptor,
263
+ });
264
+ assertWorkerCapabilityWithinScope(capabilityScope, params.descriptor);
265
+ }
266
+ catch (error) {
267
+ const scopedError = error instanceof WorkerCapabilityScopeError
268
+ ? new RegisteredToolWorkerCapabilityCompositionError(error.issueCode, operationId)
269
+ : error;
270
+ throw scopedError;
271
+ }
272
+ }
273
+ function tracePreparedExecutionStarted(params, input, operationId, executionId) {
274
+ traceRegisteredToolWorkerCapabilityExecutionStarted(params.diagnostic, operationId, input.call, executionId, input.intent.length, Object.keys(input.controls).length);
275
+ }
276
+ function tracePreparedExecutionFailed(params, input, operationId, executionId, error, issueCode = error instanceof RegisteredToolWorkerCapabilityExecutionError
277
+ ? error.issueCode
278
+ : "execution_failed") {
279
+ traceRegisteredToolWorkerCapabilityExecutionFailed(params.diagnostic, operationId, input.call, executionId, error, issueCode);
280
+ }
281
+ function registeredPreparationFailureIssueCode(error) {
282
+ return error instanceof RegisteredToolWorkerCapabilityExecutionError ||
283
+ error instanceof RegisteredToolWorkerCapabilityCompositionError
284
+ ? error.issueCode
285
+ : "execution_failed";
286
+ }
@@ -0,0 +1,7 @@
1
+ import type { CapabilityAdapterResult } from "../../orchestration/capability-adapters/index.js";
2
+ import type { RoleOperationOutcomeFingerprint } from "../../orchestration/role-calls/index.js";
3
+ /**
4
+ * Owns stable failure interpretation for the registered-tool adapter. The
5
+ * generic capability engine receives only the resulting opaque identity.
6
+ */
7
+ export declare function createRegisteredToolWorkerFailureOutcomeFingerprint(exactResult: CapabilityAdapterResult): RoleOperationOutcomeFingerprint | null;