@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,56 +1,25 @@
1
- import { ROLE_CAPABILITY_REFERENCE_DATA_MAX_LENGTH, ROLE_CAPABILITY_RESULT_REFERENCE_LIMIT_MAX, ROLE_CAPABILITY_RESULT_REFERENCE_TARGET_MAX_LENGTH, ROLE_CALL_RESULT_MAX_LENGTH, resolveRoleCallTransactions, } from "../role-calls/index.js";
2
- import { traceWorkerCapabilityContextProjected, traceWorkerCapabilityContextRejected, traceWorkerCapabilityExecutionCompleted, traceWorkerCapabilityExecutionFailed, traceWorkerCapabilityExecutionStarted, traceWorkerCapabilityResultRejected, traceWorkerCapabilityStateRejected, } from "./diagnostics.js";
3
- import { projectWorkerSettledCapabilityResults } from "./settled-results.js";
4
- import { assertWorkerCapabilityWithinScope, WorkerCapabilityScopeError, } from "./scope.js";
5
- import { captureLegacyCapabilityAdapterResult, normalizeCapabilityAdapterResult, } from "../capability-adapters/result.js";
6
- const TECHNICAL_EXECUTION_FAILURE_SUMMARY = "The capability failed before returning a valid result.";
7
- const INVALID_EXECUTION_RESULT_SUMMARY = "The capability returned an invalid result.";
8
- const OVERSIZED_EXECUTION_RESULT_SUMMARY = "The capability result exceeded the Runtime evidence size limit.";
1
+ import { assertExecutionCapabilityScope, projectExecutionSettledCapabilityResults, } from "./execution/context-projection.js";
2
+ import { createPreparationId, deduplicatePreparedInvocations, prepareBoundInvocation, } from "./execution/invocation-preparation.js";
3
+ import { beginAndSettlePreparedBatch, beginAndSettlePreparedSingle, } from "./execution/ledger-transaction.js";
9
4
  export async function executeBoundWorkerCapability(params) {
10
5
  assertExecutionCapabilityScope(params.capabilityScope, params.adapter.descriptor, params.diagnostic);
11
- let settledCapabilityResults;
12
- try {
13
- settledCapabilityResults = projectWorkerSettledCapabilityResults({
14
- ledger: params.ledger,
15
- head: params.currentHead,
16
- call: params.call,
17
- });
18
- }
19
- catch (error) {
20
- const issueCode = settledResultProjectionIssueCode(error);
21
- traceWorkerCapabilityContextRejected(params.diagnostic, params.adapter.descriptor, issueCode);
22
- throw new Error(`worker_capability_context_rejected:${issueCode}`);
23
- }
24
- traceWorkerCapabilityContextProjected(params.diagnostic, params.adapter.descriptor, settledCapabilityResults);
25
- const transactions = resolveRoleCallTransactions(params.ledger);
26
- const begunResult = await transactions.beginCapabilityExecution({
27
- expectedHead: params.currentHead,
28
- callId: params.call.callId,
29
- invocationAttempt: params.call.activationCount,
30
- capabilityId: params.adapter.descriptor.capabilityId,
31
- declaredEffect: params.adapter.descriptor.effect,
32
- intent: params.intent,
33
- controlsJson: JSON.stringify(params.controls),
6
+ const settledCapabilityResults = projectExecutionSettledCapabilityResults({
7
+ ledger: params.ledger,
8
+ head: params.currentHead,
9
+ call: params.call,
10
+ descriptors: [params.adapter.descriptor],
11
+ diagnostic: params.diagnostic,
34
12
  });
35
- if (!begunResult.ok) {
36
- traceWorkerCapabilityStateRejected(params.diagnostic, params.adapter.descriptor, {
37
- phase: "begin",
38
- issueCode: begunResult.issueCode,
39
- });
40
- throw stateRejection("begin", begunResult.issueCode);
41
- }
42
- const begun = begunResult.commit;
43
- const executionId = begun.effect.executionId;
44
- traceWorkerCapabilityExecutionStarted(params.diagnostic, params.adapter.descriptor, executionId, params.intent.length, Object.keys(params.controls).length);
45
- const result = await executeAndNormalizeAdapter({
13
+ const prepared = await prepareBoundInvocation({
46
14
  context: params.context,
47
15
  call: params.call,
48
- execute: params.adapter.execute,
16
+ adapter: params.adapter,
49
17
  intent: params.intent,
18
+ ...(params.authoringObjective
19
+ ? { authoringObjective: params.authoringObjective }
20
+ : {}),
50
21
  controls: params.controls,
51
- descriptor: params.adapter.descriptor,
52
- diagnostic: params.diagnostic,
53
- executionId,
22
+ preparationId: createPreparationId(params.call, 0),
54
23
  settledCapabilityResults,
55
24
  ...(params.dependencyResults
56
25
  ? { dependencyResults: params.dependencyResults }
@@ -59,342 +28,100 @@ export async function executeBoundWorkerCapability(params) {
59
28
  ? { executionFreshness: params.executionFreshness }
60
29
  : {}),
61
30
  });
62
- const settledResult = await transactions.settleCapabilityExecution({
63
- expectedHead: begun.head,
64
- callId: params.call.callId,
65
- executionId,
66
- outcome: result.outcome,
67
- observedEffect: result.observedEffect,
68
- summary: result.summary,
69
- ...(result.referenceData ? { referenceData: result.referenceData } : {}),
70
- ...(result.references ? { references: result.references } : {}),
71
- exactResult: result.exactResult,
31
+ return beginAndSettlePreparedSingle({
32
+ currentHead: params.currentHead,
33
+ ledger: params.ledger,
34
+ call: params.call,
35
+ invocation: Object.freeze({
36
+ adapter: params.adapter,
37
+ intent: params.intent,
38
+ ...(params.authoringObjective
39
+ ? { authoringObjective: params.authoringObjective }
40
+ : {}),
41
+ controls: params.controls,
42
+ prepared,
43
+ }),
44
+ diagnostic: params.diagnostic,
45
+ ...(params.executionFreshness
46
+ ? { executionFreshness: params.executionFreshness }
47
+ : {}),
72
48
  });
73
- if (!settledResult.ok) {
74
- traceWorkerCapabilityStateRejected(params.diagnostic, params.adapter.descriptor, {
75
- phase: "settle",
76
- issueCode: settledResult.issueCode,
77
- executionId,
78
- });
79
- throw stateRejection("settle", settledResult.issueCode);
80
- }
81
- traceWorkerCapabilityExecutionCompleted(params.diagnostic, params.adapter.descriptor, result, executionId);
82
- return Object.freeze({ executionId });
83
49
  }
84
50
  export async function executeBoundWorkerCapabilityBatch(params) {
85
- if (params.invocations.length < 2 ||
86
- params.invocations.some(({ adapter }) => adapter.descriptor.effect !== "observation")) {
51
+ if (!isExecutableObservationBatch(params.invocations)) {
87
52
  throw new Error("worker_capability_batch_invalid");
88
53
  }
89
54
  for (const { adapter } of params.invocations) {
90
55
  assertExecutionCapabilityScope(params.capabilityScope, adapter.descriptor, params.diagnostic);
91
56
  }
92
- let settledCapabilityResults;
93
- try {
94
- settledCapabilityResults = projectWorkerSettledCapabilityResults({
95
- ledger: params.ledger,
96
- head: params.currentHead,
97
- call: params.call,
98
- });
99
- }
100
- catch (error) {
101
- const issueCode = settledResultProjectionIssueCode(error);
102
- for (const { adapter } of params.invocations) {
103
- traceWorkerCapabilityContextRejected(params.diagnostic, adapter.descriptor, issueCode);
104
- }
105
- throw new Error(`worker_capability_context_rejected:${issueCode}`);
106
- }
107
- for (const { adapter } of params.invocations) {
108
- traceWorkerCapabilityContextProjected(params.diagnostic, adapter.descriptor, settledCapabilityResults);
109
- }
110
- const transactions = resolveRoleCallTransactions(params.ledger);
111
- const begunResult = await transactions.beginCapabilityBatch({
112
- expectedHead: params.currentHead,
113
- callId: params.call.callId,
114
- invocationAttempt: params.call.activationCount,
115
- entries: params.invocations.map(({ adapter, intent, controls }) => ({
116
- capabilityId: adapter.descriptor.capabilityId,
117
- declaredEffect: "observation",
118
- intent,
119
- controlsJson: JSON.stringify(controls),
120
- })),
121
- });
122
- if (!begunResult.ok) {
123
- for (const { adapter } of params.invocations) {
124
- traceWorkerCapabilityStateRejected(params.diagnostic, adapter.descriptor, { phase: "begin", issueCode: begunResult.issueCode });
125
- }
126
- throw stateRejection("begin", begunResult.issueCode);
127
- }
128
- const begun = begunResult.commit;
129
- const executionIds = begun.effect.executionIds;
130
- params.invocations.forEach((invocation, index) => {
131
- traceWorkerCapabilityExecutionStarted(params.diagnostic, invocation.adapter.descriptor, executionIds[index], invocation.intent.length, Object.keys(invocation.controls).length);
132
- });
133
- const results = await Promise.all(params.invocations.map((invocation, index) => executeAndNormalizeAdapter({
134
- context: params.context,
57
+ const settledCapabilityResults = projectExecutionSettledCapabilityResults({
58
+ ledger: params.ledger,
59
+ head: params.currentHead,
135
60
  call: params.call,
136
- execute: invocation.adapter.execute,
137
- intent: invocation.intent,
138
- controls: invocation.controls,
139
- descriptor: invocation.adapter.descriptor,
61
+ descriptors: params.invocations.map(({ adapter }) => adapter.descriptor),
140
62
  diagnostic: params.diagnostic,
141
- executionId: executionIds[index],
142
- settledCapabilityResults,
143
- ...(params.dependencyResults
144
- ? { dependencyResults: params.dependencyResults }
145
- : {}),
146
- ...(params.executionFreshness
147
- ? { executionFreshness: params.executionFreshness }
148
- : {}),
149
- })));
150
- const settledResult = await transactions.settleCapabilityBatch({
151
- expectedHead: begun.head,
152
- callId: params.call.callId,
153
- settlements: results.map((result, index) => ({
154
- executionId: executionIds[index],
155
- outcome: result.outcome,
156
- observedEffect: result.observedEffect,
157
- summary: result.summary,
158
- ...(result.referenceData ? { referenceData: result.referenceData } : {}),
159
- ...(result.references ? { references: result.references } : {}),
160
- exactResult: result.exactResult,
161
- })),
162
63
  });
163
- if (!settledResult.ok) {
164
- params.invocations.forEach((invocation, index) => {
165
- traceWorkerCapabilityStateRejected(params.diagnostic, invocation.adapter.descriptor, {
166
- phase: "settle",
167
- issueCode: settledResult.issueCode,
168
- executionId: executionIds[index],
169
- });
170
- });
171
- throw stateRejection("settle", settledResult.issueCode);
172
- }
173
- params.invocations.forEach((invocation, index) => {
174
- traceWorkerCapabilityExecutionCompleted(params.diagnostic, invocation.adapter.descriptor, results[index], executionIds[index]);
175
- });
176
- return Object.freeze({ executionIds: Object.freeze([...executionIds]) });
177
- }
178
- function assertExecutionCapabilityScope(projection, descriptor, diagnostic) {
179
- try {
180
- assertWorkerCapabilityWithinScope(projection, descriptor);
181
- }
182
- catch (error) {
183
- const issueCode = error instanceof WorkerCapabilityScopeError
184
- ? error.issueCode
185
- : "capability_scope_validation_failed";
186
- traceWorkerCapabilityContextRejected(diagnostic, descriptor, issueCode);
187
- throw new Error(`worker_capability_rejected:${issueCode}`);
188
- }
189
- }
190
- function settledResultProjectionIssueCode(error) {
191
- if (error instanceof Error &&
192
- (error.message === "worker_settled_results_head_stale" ||
193
- error.message === "worker_settled_results_call_invalid" ||
194
- error.message === "worker_settled_results_execution_invalid")) {
195
- return error.message;
196
- }
197
- return "worker_settled_results_projection_failed";
198
- }
199
- async function executeAndNormalizeAdapter(params) {
200
- let rawResult;
201
- try {
202
- rawResult = await params.execute(Object.freeze({
64
+ const preparedInvocations = await Promise.all(params.invocations.map(async (invocation, index) => Object.freeze({
65
+ ...invocation,
66
+ prepared: await prepareBoundInvocation({
203
67
  context: params.context,
204
68
  call: params.call,
205
- executionId: params.executionId,
206
- intent: params.intent,
207
- controls: params.controls,
208
- settledCapabilityResults: params.settledCapabilityResults,
69
+ adapter: invocation.adapter,
70
+ intent: invocation.intent,
71
+ ...(invocation.authoringObjective
72
+ ? { authoringObjective: invocation.authoringObjective }
73
+ : {}),
74
+ controls: invocation.controls,
75
+ preparationId: createPreparationId(params.call, index),
76
+ settledCapabilityResults,
209
77
  ...(params.dependencyResults
210
78
  ? { dependencyResults: params.dependencyResults }
211
79
  : {}),
212
80
  ...(params.executionFreshness
213
81
  ? { executionFreshness: params.executionFreshness }
214
82
  : {}),
215
- }));
216
- }
217
- catch (error) {
218
- if (error instanceof Error && error.name === "AbortError") {
219
- throw error;
220
- }
221
- traceWorkerCapabilityExecutionFailed(params.diagnostic, params.descriptor, error, params.executionId);
222
- return attachCanonicalExactResult(technicalFailure(adapterExecutionFailureSummary(error)));
223
- }
224
- let normalized;
225
- try {
226
- normalized = normalizeAdapterResult(rawResult, params.descriptor.effect);
227
- }
228
- catch (error) {
229
- normalized = {
230
- ok: false,
231
- issueCode: exactResultNormalizationIssueCode(error),
232
- };
233
- }
234
- if (!normalized.ok) {
235
- traceWorkerCapabilityResultRejected(params.diagnostic, params.descriptor, normalized.issueCode, params.executionId);
236
- return attachCanonicalExactResult(technicalFailure(normalized.issueCode === "adapter_result_too_large"
237
- ? OVERSIZED_EXECUTION_RESULT_SUMMARY
238
- : INVALID_EXECUTION_RESULT_SUMMARY));
239
- }
240
- return normalized.value;
241
- }
242
- function adapterExecutionFailureSummary(error) {
243
- if (error instanceof Error) {
244
- if (error.message.endsWith("canonical_result_result_too_large")) {
245
- return OVERSIZED_EXECUTION_RESULT_SUMMARY;
246
- }
247
- if (error.message.endsWith("canonical_result_result_invalid") ||
248
- error.message.endsWith("canonical_result_result_not_json_safe")) {
249
- return INVALID_EXECUTION_RESULT_SUMMARY;
250
- }
251
- }
252
- return TECHNICAL_EXECUTION_FAILURE_SUMMARY;
253
- }
254
- function exactResultNormalizationIssueCode(error) {
255
- if (error instanceof Error &&
256
- error.message.startsWith("capability_exact_result_invalid:")) {
257
- const code = error.message.slice("capability_exact_result_invalid:".length);
258
- if (code === "result_invalid" ||
259
- code === "result_not_json_safe" ||
260
- code === "result_too_large") {
261
- return `adapter_${code}`;
262
- }
263
- }
264
- return "adapter_result_unreadable";
265
- }
266
- function normalizeAdapterResult(input, declaredEffect) {
267
- if (typeof input !== "object" || input === null || Array.isArray(input)) {
268
- return { ok: false, issueCode: "adapter_result_not_object" };
269
- }
270
- const keys = Object.keys(input);
271
- if (keys.length < 3 ||
272
- keys.length > 6 ||
273
- !keys.includes("outcome") ||
274
- !keys.includes("observedEffect") ||
275
- !keys.includes("summary") ||
276
- keys.some((key) => key !== "outcome" &&
277
- key !== "observedEffect" &&
278
- key !== "summary" &&
279
- key !== "referenceData" &&
280
- key !== "references" &&
281
- key !== "exactResult")) {
282
- return { ok: false, issueCode: "adapter_result_shape_invalid" };
283
- }
284
- if (typeof input.summary !== "string" ||
285
- input.summary.trim().length === 0 ||
286
- input.summary.length > ROLE_CALL_RESULT_MAX_LENGTH) {
287
- return { ok: false, issueCode: "adapter_result_summary_invalid" };
288
- }
289
- if (input.referenceData !== undefined &&
290
- (typeof input.referenceData !== "string" ||
291
- input.referenceData.trim().length === 0 ||
292
- input.referenceData.length > ROLE_CAPABILITY_REFERENCE_DATA_MAX_LENGTH)) {
293
- return { ok: false, issueCode: "adapter_result_reference_data_invalid" };
294
- }
295
- const references = normalizeResultReferences(input.references);
296
- if (references === null) {
297
- return { ok: false, issueCode: "adapter_result_references_invalid" };
298
- }
299
- if (input.outcome === "succeeded") {
300
- if (!isSuccessfulObservedEffectCompatible(input.observedEffect, declaredEffect)) {
301
- return { ok: false, issueCode: "observed_effect_mismatch" };
302
- }
303
- return {
304
- ok: true,
305
- value: attachCanonicalExactResult(Object.freeze({
306
- outcome: "succeeded",
307
- observedEffect: input.observedEffect,
308
- summary: input.summary.trim(),
309
- ...(input.referenceData
310
- ? { referenceData: input.referenceData.trim() }
311
- : {}),
312
- ...(references ? { references } : {}),
313
- }), input),
314
- };
315
- }
316
- if (input.outcome === "failed") {
317
- if (!isFailedObservedEffectCompatible(input.observedEffect, declaredEffect)) {
318
- return { ok: false, issueCode: "failed_effect_invalid" };
319
- }
320
- return {
321
- ok: true,
322
- value: attachCanonicalExactResult(Object.freeze({
323
- outcome: "failed",
324
- observedEffect: input.observedEffect,
325
- summary: input.summary.trim(),
326
- ...(input.referenceData
327
- ? { referenceData: input.referenceData.trim() }
328
- : {}),
329
- ...(references ? { references } : {}),
330
- }), input),
331
- };
332
- }
333
- return { ok: false, issueCode: "adapter_result_outcome_invalid" };
334
- }
335
- function attachCanonicalExactResult(normalized, raw = normalized) {
336
- const exact = raw.exactResult === undefined
337
- ? captureLegacyCapabilityAdapterResult(raw)
338
- : normalizeCapabilityAdapterResult(raw.exactResult);
339
- if (!exact.ok) {
340
- throw new Error(`capability_exact_result_invalid:${exact.code}`);
341
- }
342
- return Object.freeze({
343
- ...normalized,
344
- exactResult: exact.value,
83
+ }),
84
+ })));
85
+ const uniqueInvocations = deduplicatePreparedInvocations(preparedInvocations);
86
+ return settlePreparedInvocationBatch({
87
+ currentHead: params.currentHead,
88
+ ledger: params.ledger,
89
+ call: params.call,
90
+ invocations: uniqueInvocations,
91
+ diagnostic: params.diagnostic,
92
+ ...(params.executionFreshness
93
+ ? { executionFreshness: params.executionFreshness }
94
+ : {}),
345
95
  });
346
96
  }
347
- function normalizeResultReferences(input) {
348
- if (input === undefined)
349
- return undefined;
350
- if (!Array.isArray(input) ||
351
- input.length > ROLE_CAPABILITY_RESULT_REFERENCE_LIMIT_MAX) {
352
- return null;
353
- }
354
- const targets = new Set();
355
- const references = [];
356
- for (const candidate of input) {
357
- if (typeof candidate !== "object" ||
358
- candidate === null ||
359
- Array.isArray(candidate)) {
360
- return null;
361
- }
362
- const reference = candidate;
363
- if (Object.keys(reference).length !== 2 ||
364
- reference.kind !== "tool_target" ||
365
- typeof reference.target !== "string" ||
366
- reference.target.trim().length === 0 ||
367
- reference.target.length >
368
- ROLE_CAPABILITY_RESULT_REFERENCE_TARGET_MAX_LENGTH) {
369
- return null;
370
- }
371
- const target = reference.target.trim();
372
- if (targets.has(target))
373
- return null;
374
- targets.add(target);
375
- references.push(Object.freeze({ kind: "tool_target", target }));
97
+ async function settlePreparedInvocationBatch(params) {
98
+ if (params.invocations.length === 1) {
99
+ return settleCollapsedPreparedBatch(params);
376
100
  }
377
- return Object.freeze(references);
101
+ return beginAndSettlePreparedBatch(params);
378
102
  }
379
- function isSuccessfulObservedEffectCompatible(observedEffect, declaredEffect) {
380
- return declaredEffect === "mixed"
381
- ? observedEffect === "observation" || observedEffect === "mutation"
382
- : observedEffect === declaredEffect;
383
- }
384
- function isFailedObservedEffectCompatible(observedEffect, declaredEffect) {
385
- return (observedEffect === "none" ||
386
- observedEffect === "indeterminate" ||
387
- observedEffect === "observation" ||
388
- (observedEffect === "mutation" &&
389
- (declaredEffect === "mutation" || declaredEffect === "mixed")));
103
+ async function settleCollapsedPreparedBatch(params) {
104
+ const result = await beginAndSettlePreparedSingle({
105
+ currentHead: params.currentHead,
106
+ ledger: params.ledger,
107
+ call: params.call,
108
+ invocation: params.invocations[0],
109
+ diagnostic: params.diagnostic,
110
+ ...(params.executionFreshness
111
+ ? { executionFreshness: params.executionFreshness }
112
+ : {}),
113
+ });
114
+ return projectSingleAttemptAsBatch(result);
390
115
  }
391
- function technicalFailure(summary) {
116
+ function projectSingleAttemptAsBatch(result) {
117
+ if ("commit" in result)
118
+ return result;
392
119
  return Object.freeze({
393
- outcome: "failed",
394
- observedEffect: "indeterminate",
395
- summary,
120
+ executionIds: Object.freeze([result.executionId]),
396
121
  });
397
122
  }
398
- function stateRejection(phase, code) {
399
- return new Error(`worker_capability_${phase}_rejected:${code}`);
123
+ function isExecutableObservationBatch(invocations) {
124
+ if (invocations.length < 2)
125
+ return false;
126
+ return invocations.every(({ adapter }) => adapter.descriptor.effect === "observation");
400
127
  }
@@ -1,6 +1,9 @@
1
+ export * from "./batch-selection.js";
1
2
  export * from "./binding.js";
2
3
  export * from "./controls.js";
3
4
  export * from "./contracts.js";
5
+ export * from "./errors.js";
6
+ export * from "./outcome-fingerprint.js";
4
7
  export * from "./payload-author.js";
5
8
  export * from "./payload-contracts.js";
6
9
  export * from "./scope.js";
@@ -1,6 +1,9 @@
1
+ export * from "./batch-selection.js";
1
2
  export * from "./binding.js";
2
3
  export * from "./controls.js";
3
4
  export * from "./contracts.js";
5
+ export * from "./errors.js";
6
+ export * from "./outcome-fingerprint.js";
4
7
  export * from "./payload-author.js";
5
8
  export * from "./payload-contracts.js";
6
9
  export * from "./scope.js";
@@ -0,0 +1,8 @@
1
+ import type { RoleOperationOutcomeFingerprint } from "../role-calls/index.js";
2
+ /**
3
+ * Keeps thrown adapter failures distinct without persisting their raw values.
4
+ * Unsafe or unstable thrown values deliberately produce no tracking identity.
5
+ */
6
+ export declare function createWorkerCapabilityExecutionErrorOutcomeFingerprint(error: unknown): RoleOperationOutcomeFingerprint | undefined;
7
+ /** Keeps distinct adapter contract violations separate without exposing them. */
8
+ export declare function createWorkerCapabilityResultRejectionOutcomeFingerprint(issueCode: string): RoleOperationOutcomeFingerprint;
@@ -0,0 +1,21 @@
1
+ import { createHash } from "node:crypto";
2
+ import { createStableWorkerCapabilityErrorFingerprint } from "./error-fingerprint.js";
3
+ /**
4
+ * Keeps thrown adapter failures distinct without persisting their raw values.
5
+ * Unsafe or unstable thrown values deliberately produce no tracking identity.
6
+ */
7
+ export function createWorkerCapabilityExecutionErrorOutcomeFingerprint(error) {
8
+ return createStableWorkerCapabilityErrorFingerprint({
9
+ domain: "execute",
10
+ error,
11
+ });
12
+ }
13
+ /** Keeps distinct adapter contract violations separate without exposing them. */
14
+ export function createWorkerCapabilityResultRejectionOutcomeFingerprint(issueCode) {
15
+ return digest(["adapter_result_rejection_v1", issueCode]);
16
+ }
17
+ function digest(value) {
18
+ return `sha256:${createHash("sha256")
19
+ .update(JSON.stringify(value))
20
+ .digest("hex")}`;
21
+ }
@@ -5,6 +5,7 @@ import { WORKER_CAPABILITY_RAW_PAYLOAD_MODEL_STEP, WORKER_CAPABILITY_RELATED_ART
5
5
  import { ROOT_CAPABILITY_PAYLOAD_INSTRUCTIONS, ROOT_CAPABILITY_STAGED_RAW_PAYLOAD_INSTRUCTIONS, ROOT_CAPABILITY_STRUCTURED_PAYLOAD_INSTRUCTIONS, WORKER_CAPABILITY_PAYLOAD_INSTRUCTIONS, WORKER_CAPABILITY_STAGED_RAW_PAYLOAD_INSTRUCTIONS, WORKER_CAPABILITY_STRUCTURED_PAYLOAD_INSTRUCTIONS, } from "./payload-instructions.js";
6
6
  import { validateJsonSchemaValue } from "../../model/json-schema-value.js";
7
7
  import { isRuntimeDelegateRoleId } from "../roles.js";
8
+ import { WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH } from "./contracts.js";
8
9
  export function createWorkerCapabilityPayloadAuthor(params) {
9
10
  const capabilityAuthorities = Object.freeze([
10
11
  ...(params.capabilityAuthorities ?? ["worker"]),
@@ -124,7 +125,7 @@ function capturePayloadContext(input, capabilityAuthorities) {
124
125
  const requestSteering = normalizeRootRequestSteering(input.requestSteering);
125
126
  if (!principal ||
126
127
  !payloadPrincipalMatchesSteering(principal, input.requestSteering, requestSteering) ||
127
- !validPayloadAssignment(input) ||
128
+ !validPayloadAssignment(input, principal) ||
128
129
  !validPayloadContract(input.contract) ||
129
130
  !validPayloadStageContract(input, contextScope) ||
130
131
  !validPayloadEvidenceContext(input, contextScope) ||
@@ -139,11 +140,6 @@ function capturePayloadContext(input, capabilityAuthorities) {
139
140
  return null;
140
141
  }
141
142
  const sharedContext = {
142
- acceptedCapability: {
143
- capabilityId: input.descriptor.capabilityId,
144
- summary: input.descriptor.summary,
145
- controls: input.controls,
146
- },
147
143
  contextScope,
148
144
  ...(input.dependencyResults
149
145
  ? { dependencyResults: input.dependencyResults }
@@ -167,13 +163,27 @@ function capturePayloadContext(input, capabilityAuthorities) {
167
163
  : {}),
168
164
  };
169
165
  return principal.kind === "worker"
170
- ? immutableSnapshot({ worker: principal.context, ...sharedContext })
166
+ ? immutableSnapshot({
167
+ worker: principal.context,
168
+ acceptedCapability: {
169
+ capabilityId: input.descriptor.capabilityId,
170
+ summary: input.descriptor.summary,
171
+ authoringObjective: input.authoringObjective,
172
+ controls: input.controls,
173
+ },
174
+ ...sharedContext,
175
+ })
171
176
  : immutableSnapshot({
172
177
  root: {
173
178
  ...principal.context,
174
179
  steeringVersion: requestSteering.version,
175
180
  updates: requestSteering.updates,
176
181
  },
182
+ acceptedCapability: {
183
+ capabilityId: input.descriptor.capabilityId,
184
+ summary: input.descriptor.summary,
185
+ controls: input.controls,
186
+ },
177
187
  ...sharedContext,
178
188
  });
179
189
  }
@@ -182,8 +192,20 @@ function payloadPrincipalMatchesSteering(principal, input, normalized) {
182
192
  ? normalized !== undefined
183
193
  : input === undefined;
184
194
  }
185
- function validPayloadAssignment(input) {
186
- return typeof input.executionId === "string" && input.executionId.length > 0;
195
+ function validPayloadAssignment(input, principal) {
196
+ if (typeof input.executionId !== "string" || input.executionId.length === 0) {
197
+ return false;
198
+ }
199
+ const supplied = Object.hasOwn(input, "authoringObjective");
200
+ if (principal.kind === "root")
201
+ return !supplied;
202
+ return (input.descriptor.requiresPayloadAuthoringObjective === true &&
203
+ supplied &&
204
+ typeof input.authoringObjective === "string" &&
205
+ input.authoringObjective.trim() === input.authoringObjective &&
206
+ input.authoringObjective.length > 0 &&
207
+ input.authoringObjective.length <=
208
+ WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH);
187
209
  }
188
210
  function validPayloadContract(input) {
189
211
  return (typeof input.instructions === "string" &&