@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
@@ -0,0 +1,127 @@
1
+ import { ROLE_CAPABILITY_SELECTION_INVOCATION_LIMIT_MAX } from "./contracts.js";
2
+ import { exactKeys, isRecord } from "../../validation/strict-record.js";
3
+ export const ROLE_CAPABILITY_RECONSIDERATION_REASON_MAX_LENGTH = 320;
4
+ export const ROLE_CAPABILITY_RECONSIDERATION_STAGE_MAX_LENGTH = 128;
5
+ export const ROLE_CAPABILITY_RECONSIDERATION_ISSUE_CODE_MAX_LENGTH = 128;
6
+ export const ROLE_CAPABILITY_RECONSIDERATION_ISSUE_PATH_MAX_LENGTH = 512;
7
+ export const ROLE_CAPABILITY_RECONSIDERATION_ISSUE_LIMIT_MAX = 16;
8
+ export const ROLE_CAPABILITY_RECONSIDERATION_REPAIR_LIMIT_MAX = 16;
9
+ export function normalizeRoleCapabilitySelectionReconsiderationCause(input) {
10
+ if (!isRecord(input) || typeof input.kind !== "string")
11
+ return undefined;
12
+ if (input.kind === "refinement_declined") {
13
+ return normalizeRefinementDeclined(input);
14
+ }
15
+ if (input.kind === "refinement_invalid_output") {
16
+ return normalizeRefinementInvalidOutput(input);
17
+ }
18
+ return undefined;
19
+ }
20
+ export function isReconsiderationCauseBoundToInvocationCount(input, invocationCount) {
21
+ const cause = normalizeRoleCapabilitySelectionReconsiderationCause(input);
22
+ if (!cause || !Number.isSafeInteger(invocationCount))
23
+ return false;
24
+ if (invocationCount < 1)
25
+ return false;
26
+ if (cause.kind === "refinement_invalid_output")
27
+ return true;
28
+ const indexes = cause.entries.map(({ invocationIndex }) => invocationIndex);
29
+ const uniqueIndexes = new Set(indexes);
30
+ return (uniqueIndexes.size === indexes.length &&
31
+ indexes.every((index) => index < invocationCount));
32
+ }
33
+ function normalizeRefinementDeclined(input) {
34
+ if (!exactKeys(input, ["kind", "entries"]))
35
+ return undefined;
36
+ if (!Array.isArray(input.entries))
37
+ return undefined;
38
+ if (input.entries.length < 1 ||
39
+ input.entries.length > ROLE_CAPABILITY_SELECTION_INVOCATION_LIMIT_MAX) {
40
+ return undefined;
41
+ }
42
+ const entries = input.entries.map(normalizeRefinementDecline);
43
+ if (entries.some((entry) => entry === undefined))
44
+ return undefined;
45
+ return Object.freeze({
46
+ kind: "refinement_declined",
47
+ entries: Object.freeze(entries),
48
+ });
49
+ }
50
+ function normalizeRefinementDecline(input) {
51
+ if (!isRecord(input) || !exactKeys(input, ["invocationIndex", "reason"])) {
52
+ return undefined;
53
+ }
54
+ if (!Number.isSafeInteger(input.invocationIndex))
55
+ return undefined;
56
+ if (input.invocationIndex < 0)
57
+ return undefined;
58
+ const reason = normalizeBoundedText(input.reason, ROLE_CAPABILITY_RECONSIDERATION_REASON_MAX_LENGTH);
59
+ return reason
60
+ ? Object.freeze({
61
+ invocationIndex: input.invocationIndex,
62
+ reason,
63
+ })
64
+ : undefined;
65
+ }
66
+ function normalizeRefinementInvalidOutput(input) {
67
+ if (!exactKeys(input, [
68
+ "kind",
69
+ "validationStage",
70
+ "issues",
71
+ "repairAttempts",
72
+ "repeatedInvalidOutput",
73
+ ])) {
74
+ return undefined;
75
+ }
76
+ const validationStage = normalizeBoundedText(input.validationStage, ROLE_CAPABILITY_RECONSIDERATION_STAGE_MAX_LENGTH);
77
+ const issues = normalizeValidationIssues(input.issues);
78
+ const repairAttempts = input.repairAttempts;
79
+ if (!validationStage || !issues)
80
+ return undefined;
81
+ if (!Number.isSafeInteger(repairAttempts))
82
+ return undefined;
83
+ if (repairAttempts < 0 ||
84
+ repairAttempts >
85
+ ROLE_CAPABILITY_RECONSIDERATION_REPAIR_LIMIT_MAX) {
86
+ return undefined;
87
+ }
88
+ if (typeof input.repeatedInvalidOutput !== "boolean")
89
+ return undefined;
90
+ return Object.freeze({
91
+ kind: "refinement_invalid_output",
92
+ validationStage,
93
+ issues,
94
+ repairAttempts: repairAttempts,
95
+ repeatedInvalidOutput: input.repeatedInvalidOutput,
96
+ });
97
+ }
98
+ function normalizeValidationIssues(input) {
99
+ if (!Array.isArray(input))
100
+ return undefined;
101
+ if (input.length > ROLE_CAPABILITY_RECONSIDERATION_ISSUE_LIMIT_MAX) {
102
+ return undefined;
103
+ }
104
+ const issues = input.map((entry) => {
105
+ if (!isRecord(entry) || !exactKeys(entry, ["code", "path"])) {
106
+ return undefined;
107
+ }
108
+ const code = normalizeBoundedText(entry.code, ROLE_CAPABILITY_RECONSIDERATION_ISSUE_CODE_MAX_LENGTH);
109
+ const path = normalizeBoundedTextAllowEmpty(entry.path, ROLE_CAPABILITY_RECONSIDERATION_ISSUE_PATH_MAX_LENGTH);
110
+ return code !== undefined && path !== undefined
111
+ ? Object.freeze({ code, path })
112
+ : undefined;
113
+ });
114
+ return issues.some((issue) => issue === undefined)
115
+ ? undefined
116
+ : Object.freeze(issues);
117
+ }
118
+ function normalizeBoundedText(input, maximumLength) {
119
+ const normalized = normalizeBoundedTextAllowEmpty(input, maximumLength);
120
+ return normalized && normalized.length > 0 ? normalized : undefined;
121
+ }
122
+ function normalizeBoundedTextAllowEmpty(input, maximumLength) {
123
+ if (typeof input !== "string")
124
+ return undefined;
125
+ const normalized = input.trim();
126
+ return normalized.length <= maximumLength ? normalized : undefined;
127
+ }
@@ -1,14 +1,13 @@
1
1
  import { type CapabilityAdapterResult } from "../capability-adapters/result.js";
2
2
  import { type ExecutionPolicyAuthoritySnapshot, type RoleCallCommitEffect, type RoleCallFrame, type RoleCallState, type RoleCallTransitionRejectionCode, type RoleCallTransitionResult, type RoleCallValidationIssue, type RoleCapabilityDeclaredEffect, type RoleCapabilityExecutionOutcome, type RoleCapabilityObservedEffect, type RoleCapabilityResultReference } from "./contracts.js";
3
+ export { exactKeys, isRecord } from "../../validation/strict-record.js";
3
4
  export declare function commit(candidate: RoleCallState, effect: RoleCallCommitEffect): RoleCallTransitionResult;
4
5
  export declare function reject(state: RoleCallState, code: RoleCallTransitionRejectionCode, issues?: readonly RoleCallValidationIssue[]): RoleCallTransitionResult;
5
6
  export declare function findCall(state: RoleCallState, callId: string): RoleCallFrame | undefined;
6
- export declare function exactKeys(value: Record<string, unknown>, requiredKeys: readonly string[], optionalKeys?: readonly string[]): boolean;
7
7
  export declare function isExactJsonObjectString(value: unknown): value is string;
8
8
  export declare function isUniqueStringArray(value: unknown): value is readonly string[];
9
9
  export declare function sameStringArray(left: readonly string[], right: readonly string[]): boolean;
10
10
  export declare function areOwnedDependencyResults(state: RoleCallState, caller: RoleCallFrame, resultRefs: readonly string[], dependentCallIndex?: number): boolean;
11
- export declare function isRecord(value: unknown): value is Record<string, unknown>;
12
11
  export declare function parseOptionalCapabilityAdapterResult(input: unknown): CapabilityAdapterResult | undefined | null;
13
12
  export declare function isExactResultValidForCall(_call: RoleCallFrame, input: unknown): boolean;
14
13
  export declare function parseCapabilityResultReferences(input: unknown): readonly RoleCapabilityResultReference[] | undefined | null;
@@ -1,5 +1,7 @@
1
1
  import { normalizeCapabilityAdapterResult, } from "../capability-adapters/result.js";
2
2
  import { ROLE_CAPABILITY_INVOCATION_CONTROLS_JSON_MAX_LENGTH, ROLE_CAPABILITY_RESULT_REFERENCE_LIMIT_MAX, ROLE_CAPABILITY_RESULT_REFERENCE_TARGET_MAX_LENGTH, } from "./contracts.js";
3
+ import { exactKeys, isRecord } from "../../validation/strict-record.js";
4
+ export { exactKeys, isRecord } from "../../validation/strict-record.js";
3
5
  export function commit(candidate, effect) {
4
6
  return {
5
7
  ok: true,
@@ -20,15 +22,6 @@ export function reject(state, code, issues) {
20
22
  export function findCall(state, callId) {
21
23
  return state.calls.find((call) => call.callId === callId);
22
24
  }
23
- export function exactKeys(value, requiredKeys, optionalKeys = []) {
24
- const required = new Set(requiredKeys);
25
- const allowed = new Set([...requiredKeys, ...optionalKeys]);
26
- const actual = Object.keys(value);
27
- return (requiredKeys.every((key) => actual.includes(key)) &&
28
- actual.every((key) => allowed.has(key)) &&
29
- actual.length >= required.size &&
30
- actual.length <= allowed.size);
31
- }
32
25
  export function isExactJsonObjectString(value) {
33
26
  if (typeof value !== "string" ||
34
27
  value.length < 2 ||
@@ -70,9 +63,6 @@ export function areOwnedDependencyResults(state, caller, resultRefs, dependentCa
70
63
  producer.roleId === result.roleId);
71
64
  });
72
65
  }
73
- export function isRecord(value) {
74
- return value !== null && typeof value === "object" && !Array.isArray(value);
75
- }
76
66
  export function parseOptionalCapabilityAdapterResult(input) {
77
67
  if (input === undefined)
78
68
  return undefined;
@@ -2,10 +2,14 @@ import { ROLE_CALL_LEDGER_CONTRACT_VERSION, SUPERVISOR_WORKER_V1_AUTHORITY_SNAPS
2
2
  import { validateRoleCallPolicy, validateRoleCallState, } from "./candidate-validation.js";
3
3
  import { decodeRoleCallCommand } from "./command-decoder.js";
4
4
  import { dispatchRoleCallCommand } from "./command-dispatch.js";
5
+ import { findRoleActivationReservationIssue } from "./activation-budget.js";
6
+ import { createInitialRoleCapabilitySelectionSupervisionState } from "./capability-selection-supervision.js";
7
+ import { issueInitialRoleCapabilitySelectionSupervisionState } from "./capability-selection-supervision-issuance.js";
8
+ import { createInitialRoleOperationSupervisionState } from "./operation-supervision.js";
5
9
  import { reject, seal } from "./reducer-primitives.js";
6
10
  export { hasRoleCallCapabilityAuthority } from "./candidate-validation.js";
7
11
  export function createInitialRoleCallState(requestId) {
8
- return seal({
12
+ const state = seal({
9
13
  contractVersion: ROLE_CALL_LEDGER_CONTRACT_VERSION,
10
14
  requestId,
11
15
  phase: "empty",
@@ -18,8 +22,14 @@ export function createInitialRoleCallState(requestId) {
18
22
  results: [],
19
23
  plans: [],
20
24
  capabilityExecutions: [],
25
+ operationSupervision: createInitialRoleOperationSupervisionState(),
26
+ capabilitySelectionSupervision: createInitialRoleCapabilitySelectionSupervisionState(),
21
27
  rootResponse: null,
22
28
  });
29
+ if (!issueInitialRoleCapabilitySelectionSupervisionState(state)) {
30
+ throw new Error("role_call_capability_selection_supervision_initial_issuance_invalid");
31
+ }
32
+ return state;
23
33
  }
24
34
  export function applyRoleCallCommand(state, commandInput, policy) {
25
35
  const policyIssues = validateRoleCallPolicy(policy);
@@ -34,7 +44,14 @@ export function applyRoleCallCommand(state, commandInput, policy) {
34
44
  if (!command.ok) {
35
45
  return reject(state, command.code);
36
46
  }
37
- return dispatchRoleCallCommand(state, command.value, policy);
47
+ const transition = dispatchRoleCallCommand(state, command.value, policy);
48
+ if (!transition.ok)
49
+ return transition;
50
+ const reservationIssue = findRoleActivationReservationIssue(state, policy, command.value);
51
+ if (reservationIssue) {
52
+ return reject(state, "role_activation_limit_exceeded", [reservationIssue]);
53
+ }
54
+ return transition;
38
55
  }
39
56
  export function validateRoleCallCandidate(params) {
40
57
  const policyIssues = validateRoleCallPolicy(params.policy);
@@ -41,8 +41,11 @@ export function createRoleCallTransactions(apply) {
41
41
  effect.childCallId === input.childCallId);
42
42
  },
43
43
  async beginCapabilityExecution(input) {
44
- return requireEffect(await apply({
44
+ return requireCapabilityExecutionAttemptEffect(await apply({
45
45
  expectedHead: input.expectedHead,
46
+ ...(input.admission
47
+ ? { capabilityExecutionAdmission: input.admission }
48
+ : {}),
46
49
  command: {
47
50
  authority: "active_role",
48
51
  type: "begin_capability_execution",
@@ -52,8 +55,11 @@ export function createRoleCallTransactions(apply) {
52
55
  declaredEffect: input.declaredEffect,
53
56
  intent: input.intent,
54
57
  controlsJson: input.controlsJson,
58
+ ...(input.actionFingerprint
59
+ ? { actionFingerprint: input.actionFingerprint }
60
+ : {}),
55
61
  },
56
- }), "capability_execution_begun", "commit_effect_invalid", (effect) => effect.callId === input.callId);
62
+ }), input);
57
63
  },
58
64
  async settleCapabilityExecution(input) {
59
65
  return requireEffect(await apply({
@@ -63,8 +69,11 @@ export function createRoleCallTransactions(apply) {
63
69
  effect.executionId === input.executionId);
64
70
  },
65
71
  async beginCapabilityBatch(input) {
66
- return requireEffect(await apply({
72
+ return requireCapabilityBatchAttemptEffect(await apply({
67
73
  expectedHead: input.expectedHead,
74
+ ...(input.admission
75
+ ? { capabilityExecutionAdmission: input.admission }
76
+ : {}),
68
77
  command: {
69
78
  authority: "active_role",
70
79
  type: "begin_capability_batch",
@@ -72,8 +81,7 @@ export function createRoleCallTransactions(apply) {
72
81
  invocationAttempt: input.invocationAttempt,
73
82
  entries: input.entries,
74
83
  },
75
- }), "capability_batch_begun", "commit_effect_invalid", (effect) => effect.callId === input.callId &&
76
- effect.executionIds.length === input.entries.length);
84
+ }), input);
77
85
  },
78
86
  async settleCapabilityBatch(input) {
79
87
  return requireEffect(await apply({
@@ -122,12 +130,58 @@ export function createRoleCallTransactions(apply) {
122
130
  invocationAttempt: input.invocationAttempt,
123
131
  steeringVersion: input.steeringVersion,
124
132
  selection: input.selection,
133
+ cause: input.cause,
125
134
  },
126
135
  }), "capability_selection_reconsidered", "capability_selection_reconsideration_transition_invalid", (effect) => effect.callId === input.callId &&
127
136
  effect.invocationAttempt === input.invocationAttempt);
128
137
  },
129
138
  });
130
139
  }
140
+ function requireCapabilityExecutionAttemptEffect(commit, input) {
141
+ if (!commit.ok) {
142
+ return Object.freeze({
143
+ ok: false,
144
+ issueCode: commit.code,
145
+ commit,
146
+ });
147
+ }
148
+ const effect = commit.effect;
149
+ const isExpectedExecution = effect.type === "capability_execution_begun" &&
150
+ effect.callId === input.callId;
151
+ const isExpectedIntervention = effect.type === "operation_supervision_intervened" &&
152
+ effect.callId === input.callId &&
153
+ effect.invocationAttempt === input.invocationAttempt &&
154
+ effect.capabilityId === input.capabilityId &&
155
+ effect.actionFingerprint === input.actionFingerprint;
156
+ if (!isExpectedExecution && !isExpectedIntervention) {
157
+ return invalidEffect(commit, "commit_effect_invalid");
158
+ }
159
+ const typedCommit = commit;
160
+ return Object.freeze({ ok: true, commit: typedCommit });
161
+ }
162
+ function requireCapabilityBatchAttemptEffect(commit, input) {
163
+ if (!commit.ok) {
164
+ return Object.freeze({
165
+ ok: false,
166
+ issueCode: commit.code,
167
+ commit,
168
+ });
169
+ }
170
+ const effect = commit.effect;
171
+ const isExpectedBatch = effect.type === "capability_batch_begun" &&
172
+ effect.callId === input.callId &&
173
+ effect.executionIds.length === input.entries.length;
174
+ const isExpectedIntervention = effect.type === "operation_supervision_intervened" &&
175
+ effect.callId === input.callId &&
176
+ effect.invocationAttempt === input.invocationAttempt &&
177
+ input.entries.some((entry) => entry.capabilityId === effect.capabilityId &&
178
+ entry.actionFingerprint === effect.actionFingerprint);
179
+ if (!isExpectedBatch && !isExpectedIntervention) {
180
+ return invalidEffect(commit, "commit_effect_invalid");
181
+ }
182
+ const typedCommit = commit;
183
+ return Object.freeze({ ok: true, commit: typedCommit });
184
+ }
131
185
  export function resolveRoleCallTransactions(ledger) {
132
186
  if (ledger.transactions) {
133
187
  return ledger.transactions;
@@ -158,6 +212,9 @@ function createSettleCapabilityExecutionCommand(input) {
158
212
  callId: input.callId,
159
213
  executionId: input.executionId,
160
214
  outcome: input.outcome,
215
+ ...(input.outcomeFingerprint
216
+ ? { outcomeFingerprint: input.outcomeFingerprint }
217
+ : {}),
161
218
  observedEffect: input.observedEffect,
162
219
  summary: input.summary,
163
220
  exactResult: input.exactResult,
@@ -0,0 +1,15 @@
1
+ import type { RoleCallFrame, RoleCallLedger, RoleCallLedgerHead } from "../../role-calls/index.js";
2
+ import type { RoleExecutionContinuation, RoleExecutionContinuationReference } from "../contracts.js";
3
+ import type { RoleExecutorDiagnosticContext } from "../shared/diagnostic-context.js";
4
+ export type RoleCapabilityContinuationResolution = Readonly<{
5
+ call: RoleCallFrame;
6
+ continuationReference?: RoleExecutionContinuationReference;
7
+ }>;
8
+ export declare function continueRoleThroughCapability(params: Readonly<{
9
+ ledger: RoleCallLedger;
10
+ before: RoleCallLedgerHead;
11
+ currentCall: RoleCallFrame;
12
+ diagnostic: RoleExecutorDiagnosticContext;
13
+ continuation: RoleExecutionContinuation["continuation"];
14
+ turnCount: number;
15
+ }>): RoleCapabilityContinuationResolution;
@@ -0,0 +1,73 @@
1
+ import { traceRoleExecutorContinued, traceRoleExecutorContinuationRejected, } from "../diagnostics.js";
2
+ import { continuationError, readLedgerOrReject, } from "../shared/runtime-invariants.js";
3
+ import { validateCapabilityContinuation, validateOperationSupervisionInterventionContinuation, } from "./state-validation.js";
4
+ export function continueRoleThroughCapability(params) {
5
+ const after = readLedgerOrReject({
6
+ ledger: params.ledger,
7
+ diagnostic: params.diagnostic,
8
+ turnCount: params.turnCount,
9
+ });
10
+ if (params.continuation.kind === "operation_supervision_intervention") {
11
+ return continueAfterOperationSupervisionIntervention({ ...params, continuation: params.continuation }, after);
12
+ }
13
+ return continueAfterCapabilityExecution({ ...params, continuation: params.continuation }, after);
14
+ }
15
+ function continueAfterCapabilityExecution(params, after) {
16
+ const executionIds = params.continuation.kind === "capability_batch_execution"
17
+ ? params.continuation.executionIds
18
+ : [params.continuation.executionId];
19
+ const continuation = validateCapabilityContinuation({
20
+ before: params.before,
21
+ after,
22
+ currentCall: params.currentCall,
23
+ executionIds,
24
+ });
25
+ const diagnosticIds = params.continuation.kind === "capability_batch_execution"
26
+ ? { executionIds }
27
+ : { executionId: executionIds[0] };
28
+ if (!continuation.ok) {
29
+ traceRoleExecutorContinuationRejected(params.diagnostic, {
30
+ continuationKind: params.continuation.kind,
31
+ issueCode: continuation.issueCode,
32
+ ...diagnosticIds,
33
+ fromActivation: params.currentCall.activationCount,
34
+ turnCount: params.turnCount,
35
+ });
36
+ throw continuationError(params.currentCall.roleId, continuation.issueCode);
37
+ }
38
+ traceRoleExecutorContinued(params.diagnostic, {
39
+ continuationKind: params.continuation.kind,
40
+ ...diagnosticIds,
41
+ fromActivation: params.currentCall.activationCount,
42
+ toActivation: continuation.call.activationCount,
43
+ turnCount: params.turnCount,
44
+ });
45
+ return Object.freeze({
46
+ call: continuation.call,
47
+ continuationReference: params.continuation,
48
+ });
49
+ }
50
+ function continueAfterOperationSupervisionIntervention(params, after) {
51
+ const continuation = validateOperationSupervisionInterventionContinuation({
52
+ before: params.before,
53
+ after,
54
+ currentCall: params.currentCall,
55
+ commit: params.continuation.commit,
56
+ });
57
+ if (!continuation.ok) {
58
+ traceRoleExecutorContinuationRejected(params.diagnostic, {
59
+ continuationKind: params.continuation.kind,
60
+ issueCode: continuation.issueCode,
61
+ fromActivation: params.currentCall.activationCount,
62
+ turnCount: params.turnCount,
63
+ });
64
+ throw continuationError(params.currentCall.roleId, continuation.issueCode);
65
+ }
66
+ traceRoleExecutorContinued(params.diagnostic, {
67
+ continuationKind: params.continuation.kind,
68
+ fromActivation: params.currentCall.activationCount,
69
+ toActivation: continuation.call.activationCount,
70
+ turnCount: params.turnCount,
71
+ });
72
+ return Object.freeze({ call: continuation.call });
73
+ }
@@ -16,6 +16,5 @@ export declare class RoleActivationLoop<TContext, TValue> {
16
16
  private runActivation;
17
17
  private completeTerminal;
18
18
  private continueThroughChild;
19
- private continueThroughCapability;
20
19
  }
21
20
  export {};
@@ -1,10 +1,11 @@
1
1
  import { isRuntimeDelegateRoleId } from "../../roles.js";
2
- import { traceRoleExecutorCompleted, traceRoleExecutorContinued, traceRoleExecutorContinuationRejected, traceRoleExecutorFailed, traceRoleExecutorInitialStateRejected, traceRoleExecutorResolved, traceRoleExecutorResultRejected, traceRoleExecutorStarted, traceRoleExecutorStateRejected, traceRoleExecutorUnavailable, } from "../diagnostics.js";
2
+ import { traceRoleExecutorCompleted, traceRoleExecutorFailed, traceRoleExecutorInitialStateRejected, traceRoleExecutorResolved, traceRoleExecutorResultRejected, traceRoleExecutorStarted, traceRoleExecutorStateRejected, traceRoleExecutorUnavailable, } from "../diagnostics.js";
3
3
  import { requireResumedCallerCall } from "../child-invocation/state-validation.js";
4
4
  import { createAttemptDiagnostic, createDiagnostic, } from "../shared/diagnostic-context.js";
5
- import { continuationError, readLedgerOrReject, stateError, } from "../shared/runtime-invariants.js";
5
+ import { readLedgerOrReject, stateError, } from "../shared/runtime-invariants.js";
6
+ import { continueRoleThroughCapability } from "./capability-continuation.js";
6
7
  import { normalizeRoleExecutorActivationResult } from "./result-normalization.js";
7
- import { resolveCurrentCall, validateCapabilityContinuation, } from "./state-validation.js";
8
+ import { resolveCurrentCall } from "./state-validation.js";
8
9
  export class RoleActivationLoop {
9
10
  params;
10
11
  expectedCall;
@@ -14,24 +15,14 @@ export class RoleActivationLoop {
14
15
  this.expectedCall = params.input.call;
15
16
  }
16
17
  async run() {
17
- const { executor, initialHead, call } = this.resolveInitialActivation();
18
+ const { executor, call } = this.resolveInitialActivation();
18
19
  this.expectedCall = call;
19
- const maximumTurns = initialHead.policy.limits.maxCalls +
20
- initialHead.policy.limits.maxCapabilityExecutions +
21
- 1;
22
- for (let turnCount = 1; turnCount <= maximumTurns; turnCount += 1) {
20
+ for (let turnCount = 1;; turnCount += 1) {
23
21
  const activation = this.requireCurrentActivation(turnCount);
24
22
  const terminal = await this.runActivation(executor, activation, turnCount);
25
23
  if (terminal)
26
24
  return terminal;
27
25
  }
28
- const exhaustedDiagnostic = createDiagnostic({
29
- requestId: this.params.input.requestId,
30
- call: this.expectedCall,
31
- registeredRoleIds: this.params.registeredRoleIds,
32
- });
33
- traceRoleExecutorStateRejected(exhaustedDiagnostic, "continuation_limit_exceeded", maximumTurns);
34
- throw stateError("continuation_limit_exceeded");
35
26
  }
36
27
  resolveInitialActivation() {
37
28
  const { input, registeredRoleIds, executorByRoleId } = this.params;
@@ -78,7 +69,6 @@ export class RoleActivationLoop {
78
69
  traceRoleExecutorResolved(initialDiagnostic);
79
70
  return Object.freeze({
80
71
  executor,
81
- initialHead,
82
72
  call: initialAuthority.call,
83
73
  });
84
74
  }
@@ -148,7 +138,16 @@ export class RoleActivationLoop {
148
138
  await this.continueThroughChild(activation, result.value, turnCount);
149
139
  return undefined;
150
140
  }
151
- this.continueThroughCapability(activation, result.value, turnCount);
141
+ const continued = continueRoleThroughCapability({
142
+ ledger: input.ledger,
143
+ before: activation.before,
144
+ currentCall: activation.call,
145
+ diagnostic: activation.diagnostic,
146
+ continuation: result.value.continuation,
147
+ turnCount,
148
+ });
149
+ this.expectedCall = continued.call;
150
+ this.continuationReference = continued.continuationReference;
152
151
  return undefined;
153
152
  }
154
153
  catch (error) {
@@ -202,43 +201,6 @@ export class RoleActivationLoop {
202
201
  this.expectedCall = requireResumedCallerCall(child.returnCommit, activation.call);
203
202
  this.continuationReference = continuationReference;
204
203
  }
205
- continueThroughCapability(activation, result, turnCount) {
206
- const after = readLedgerOrReject({
207
- ledger: this.params.input.ledger,
208
- diagnostic: activation.diagnostic,
209
- turnCount,
210
- });
211
- const executionIds = result.continuation.kind === "capability_batch_execution"
212
- ? result.continuation.executionIds
213
- : [result.continuation.executionId];
214
- const continuation = validateCapabilityContinuation({
215
- before: activation.before,
216
- after,
217
- currentCall: activation.call,
218
- executionIds,
219
- });
220
- if (!continuation.ok) {
221
- traceRoleExecutorContinuationRejected(activation.diagnostic, {
222
- issueCode: continuation.issueCode,
223
- ...(result.continuation.kind === "capability_batch_execution"
224
- ? { executionIds }
225
- : { executionId: executionIds[0] }),
226
- fromActivation: activation.call.activationCount,
227
- turnCount,
228
- });
229
- throw continuationError(activation.call.roleId, continuation.issueCode);
230
- }
231
- traceRoleExecutorContinued(activation.diagnostic, {
232
- ...(result.continuation.kind === "capability_batch_execution"
233
- ? { executionIds }
234
- : { executionId: executionIds[0] }),
235
- fromActivation: activation.call.activationCount,
236
- toActivation: continuation.call.activationCount,
237
- turnCount,
238
- });
239
- this.expectedCall = continuation.call;
240
- this.continuationReference = result.continuation;
241
- }
242
204
  }
243
205
  function isTerminalStateFresh(after, before) {
244
206
  return after === before;
@@ -62,6 +62,20 @@ export function normalizeRoleExecutorActivationResult(input, maxSummaryLength, m
62
62
  !isPlainRecord(input.continuation)) {
63
63
  return { ok: false, issueCode: "continuation_shape_invalid" };
64
64
  }
65
+ if (hasExactKeys(input.continuation, ["kind", "commit"]) &&
66
+ input.continuation.kind === "operation_supervision_intervention" &&
67
+ isPlainRecord(input.continuation.commit)) {
68
+ return {
69
+ ok: true,
70
+ value: Object.freeze({
71
+ kind: "continue",
72
+ continuation: Object.freeze({
73
+ kind: "operation_supervision_intervention",
74
+ commit: input.continuation.commit,
75
+ }),
76
+ }),
77
+ };
78
+ }
65
79
  if (hasExactKeys(input.continuation, ["kind", "executionId"]) &&
66
80
  input.continuation.kind === "capability_execution" &&
67
81
  isCapabilityExecutionId(input.continuation.executionId)) {
@@ -1,4 +1,4 @@
1
- import type { RoleCallFrame, RoleCallLedgerHead } from "../../role-calls/index.js";
1
+ import type { RoleCallFrame, RoleCallLedgerHead, RoleCallOperationSupervisionInterventionCommit } from "../../role-calls/index.js";
2
2
  export declare function resolveCurrentCall(params: Readonly<{
3
3
  head: RoleCallLedgerHead;
4
4
  requestId: string;
@@ -22,3 +22,15 @@ export declare function validateCapabilityContinuation(params: Readonly<{
22
22
  ok: false;
23
23
  issueCode: string;
24
24
  }>;
25
+ export declare function validateOperationSupervisionInterventionContinuation(params: Readonly<{
26
+ before: RoleCallLedgerHead;
27
+ after: RoleCallLedgerHead;
28
+ currentCall: RoleCallFrame;
29
+ commit: RoleCallOperationSupervisionInterventionCommit;
30
+ }>): Readonly<{
31
+ ok: true;
32
+ call: RoleCallFrame;
33
+ }> | Readonly<{
34
+ ok: false;
35
+ issueCode: string;
36
+ }>;