@abot-ai/runtime 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/README.md +216 -222
  2. package/dist/scripts/runtime-setup-files.js +46 -2
  3. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +8 -0
  4. package/dist/src/capabilities/tool-types.d.ts +4 -0
  5. package/dist/src/model-gateway/client/chat.js +9 -5
  6. package/dist/src/model-gateway/client/invocation-error.d.ts +9 -0
  7. package/dist/src/model-gateway/client/invocation-error.js +30 -0
  8. package/dist/src/model-gateway/client/stream-consumer.js +9 -2
  9. package/dist/src/model-gateway/client/stream-parser.js +2 -1
  10. package/dist/src/model-gateway/protocol/message-contract.d.ts +1 -0
  11. package/dist/src/model-gateway/protocol/message-contract.js +1 -1
  12. package/dist/src/model-gateway/server/chat-handler.js +5 -7
  13. package/dist/src/model-gateway/server/chat-stream-response.d.ts +7 -0
  14. package/dist/src/model-gateway/server/chat-stream-response.js +25 -0
  15. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +5 -1
  16. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +15 -1
  17. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +7 -5
  18. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-snapshot.js +9 -2
  19. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +2 -2
  20. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +2 -2
  21. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +17 -11
  22. package/dist/src/runtime/automations/service.d.ts +1 -1
  23. package/dist/src/runtime/capabilities/automation-builder/tool-module.js +4 -4
  24. package/dist/src/runtime/capabilities/automations/draft-index.d.ts +1 -1
  25. package/dist/src/runtime/capabilities/automations/tool-module.js +4 -4
  26. package/dist/src/runtime/capabilities/core-tool-contracts.d.ts +29 -0
  27. package/dist/src/runtime/capabilities/core-tool-contracts.js +38 -0
  28. package/dist/src/runtime/capabilities/knowledge-skills/read-many.d.ts +4 -0
  29. package/dist/src/runtime/capabilities/knowledge-skills/read-many.js +21 -0
  30. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.d.ts +13 -0
  31. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.js +44 -0
  32. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.d.ts +141 -0
  33. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.js +58 -0
  34. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.d.ts +4 -0
  35. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.js +78 -0
  36. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.d.ts +12 -0
  37. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.js +21 -0
  38. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.d.ts +77 -0
  39. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.js +28 -0
  40. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.d.ts +3 -0
  41. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.js +34 -0
  42. package/dist/src/runtime/capabilities/scheduling/tool-module.js +3 -3
  43. package/dist/src/runtime/capabilities/tool-availability.js +6 -0
  44. package/dist/src/runtime/composition.d.ts +5 -0
  45. package/dist/src/runtime/context/capability-brief.d.ts +2 -2
  46. package/dist/src/runtime/context/capability-brief.js +3 -3
  47. package/dist/src/runtime/context/capability-descriptions.d.ts +3 -2
  48. package/dist/src/runtime/context/capability-descriptions.js +57 -20
  49. package/dist/src/runtime/context/capability-result-compaction-source.d.ts +3 -1
  50. package/dist/src/runtime/context/capability-result-compaction-source.js +13 -1
  51. package/dist/src/runtime/context/core-skill-read-context.d.ts +16 -0
  52. package/dist/src/runtime/context/core-skill-read-context.js +76 -0
  53. package/dist/src/runtime/context/exact-evidence-match.d.ts +3 -0
  54. package/dist/src/runtime/context/exact-evidence-match.js +34 -0
  55. package/dist/src/runtime/context/model-step-compaction.js +20 -6
  56. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.d.ts +9 -0
  57. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.js +38 -0
  58. package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +2 -0
  59. package/dist/src/runtime/context/semantic-compaction/prompt.js +7 -7
  60. package/dist/src/runtime/context/semantic-compaction/run.js +10 -3
  61. package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +33 -3
  62. package/dist/src/runtime/context/session-artifact-paths.d.ts +2 -1
  63. package/dist/src/runtime/context/session-artifact-paths.js +2 -1
  64. package/dist/src/runtime/context/session-memory/model-step-controller.d.ts +2 -2
  65. package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +1 -1
  66. package/dist/src/runtime/context/super-worker-compaction-failure.js +2 -1
  67. package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +2 -1
  68. package/dist/src/runtime/context/super-worker-compaction-sidecar.js +9 -3
  69. package/dist/src/runtime/default-environment-adapters.d.ts +2 -1
  70. package/dist/src/runtime/default-environment-adapters.js +5 -1
  71. package/dist/src/runtime/knowledge-skills/available-skills-projection.d.ts +17 -0
  72. package/dist/src/runtime/knowledge-skills/available-skills-projection.js +66 -0
  73. package/dist/src/runtime/knowledge-skills/available-skills.d.ts +7 -0
  74. package/dist/src/runtime/knowledge-skills/available-skills.js +17 -0
  75. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.d.ts +2 -0
  76. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.js +27 -0
  77. package/dist/src/runtime/knowledge-skills/builtins/computer-use.d.ts +2 -0
  78. package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +34 -0
  79. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.d.ts +2 -0
  80. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.js +29 -0
  81. package/dist/src/runtime/knowledge-skills/builtins/technical-work.d.ts +2 -0
  82. package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +27 -0
  83. package/dist/src/runtime/knowledge-skills/catalog.d.ts +2 -0
  84. package/dist/src/runtime/knowledge-skills/catalog.js +12 -0
  85. package/dist/src/runtime/knowledge-skills/personal-contracts.d.ts +48 -0
  86. package/dist/src/runtime/knowledge-skills/personal-contracts.js +29 -0
  87. package/dist/src/runtime/knowledge-skills/personal-documents.d.ts +6 -0
  88. package/dist/src/runtime/knowledge-skills/personal-documents.js +56 -0
  89. package/dist/src/runtime/knowledge-skills/personal-management.d.ts +9 -0
  90. package/dist/src/runtime/knowledge-skills/personal-management.js +64 -0
  91. package/dist/src/runtime/knowledge-skills/personal-repository.d.ts +6 -0
  92. package/dist/src/runtime/knowledge-skills/personal-repository.js +76 -0
  93. package/dist/src/runtime/knowledge-skills/personal-store.d.ts +4 -0
  94. package/dist/src/runtime/knowledge-skills/personal-store.js +33 -0
  95. package/dist/src/runtime/knowledge-skills/read-evidence.d.ts +3 -0
  96. package/dist/src/runtime/knowledge-skills/read-evidence.js +13 -0
  97. package/dist/src/runtime/knowledge-skills/store.d.ts +19 -0
  98. package/dist/src/runtime/knowledge-skills/store.js +41 -0
  99. package/dist/src/runtime/local-application.d.ts +2 -1
  100. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
  101. package/dist/src/runtime/local-host/app-service-dispatch.js +5 -0
  102. package/dist/src/runtime/local-host/client-services.d.ts +3 -1
  103. package/dist/src/runtime/local-host/client-services.js +3 -2
  104. package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +7 -1
  105. package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +51 -25
  106. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.d.ts +5 -0
  107. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.js +28 -0
  108. package/dist/src/runtime/long-term-memory/initial-context.d.ts +18 -0
  109. package/dist/src/runtime/long-term-memory/initial-context.js +57 -0
  110. package/dist/src/runtime/long-term-memory/projection.js +1 -1
  111. package/dist/src/runtime/model/context-compaction-admission.d.ts +1 -0
  112. package/dist/src/runtime/model/context-compaction-admission.js +35 -1
  113. package/dist/src/runtime/model/context-compaction-contracts.d.ts +9 -1
  114. package/dist/src/runtime/model/invoke-step.js +6 -2
  115. package/dist/src/runtime/model/provider-failure.d.ts +13 -0
  116. package/dist/src/runtime/model/provider-failure.js +37 -0
  117. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
  118. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +4 -1
  119. package/dist/src/runtime/orchestration/role-calls/checkpoint-state.d.ts +1 -1
  120. package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +7 -3
  121. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
  122. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.d.ts +4 -0
  123. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.js +48 -0
  124. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
  125. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
  126. package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
  127. package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +2 -1
  128. package/dist/src/runtime/orchestration/role-calls/ledger.js +2 -2
  129. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +7 -0
  130. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +2 -0
  131. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +88 -0
  132. package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
  133. package/dist/src/runtime/orchestration/role-calls/reducer.js +2 -1
  134. package/dist/src/runtime/orchestration/role-calls/skill-read.d.ts +47 -0
  135. package/dist/src/runtime/orchestration/role-calls/skill-read.js +196 -0
  136. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.d.ts +1 -1
  137. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.js +4 -2
  138. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +4 -1
  139. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +4 -2
  140. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +2 -2
  141. package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +10 -4
  142. package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.d.ts +5 -0
  143. package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.js +31 -0
  144. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +2 -0
  145. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +7 -2
  146. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.d.ts +19 -0
  147. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.js +43 -0
  148. package/dist/src/runtime/plugins/loader.js +7 -6
  149. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  150. package/dist/src/runtime/request/approval-wait/preflight.js +1 -0
  151. package/dist/src/runtime/request/bound-runtime-handler.js +1 -0
  152. package/dist/src/runtime/request/capability-execution-freshness.js +6 -1
  153. package/dist/src/runtime/request/contracts.d.ts +2 -0
  154. package/dist/src/runtime/request/execution-agent-root-execution.js +11 -1
  155. package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +2 -2
  156. package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
  157. package/dist/src/runtime/request/execution-scope-surfaces.js +7 -0
  158. package/dist/src/runtime/request/execution-scope.d.ts +6 -2
  159. package/dist/src/runtime/request/execution-scope.js +11 -0
  160. package/dist/src/runtime/request/payload-settled-evidence.d.ts +11 -0
  161. package/dist/src/runtime/request/payload-settled-evidence.js +29 -0
  162. package/dist/src/runtime/request/prepared-execution.js +2 -0
  163. package/dist/src/runtime/request/role-call-delegation-events.d.ts +19 -0
  164. package/dist/src/runtime/request/role-call-delegation-events.js +52 -0
  165. package/dist/src/runtime/request/role-call-return-events.d.ts +19 -0
  166. package/dist/src/runtime/request/role-call-return-events.js +63 -0
  167. package/dist/src/runtime/request/role-executor-composition.js +2 -2
  168. package/dist/src/runtime/request/root-capability-binding.d.ts +24 -0
  169. package/dist/src/runtime/request/root-capability-binding.js +57 -0
  170. package/dist/src/runtime/request/root-capability-catalog.d.ts +16 -0
  171. package/dist/src/runtime/request/root-capability-catalog.js +20 -0
  172. package/dist/src/runtime/request/root-contract.d.ts +13 -1
  173. package/dist/src/runtime/request/root-execution-kernel.js +36 -68
  174. package/dist/src/runtime/request/root-reference-action.d.ts +15 -0
  175. package/dist/src/runtime/request/root-reference-action.js +48 -0
  176. package/dist/src/runtime/request/root-skill-read.d.ts +13 -0
  177. package/dist/src/runtime/request/root-skill-read.js +102 -0
  178. package/dist/src/runtime/request/runner.js +19 -3
  179. package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
  180. package/dist/src/runtime/request/supervisor-root-execution.js +54 -1
  181. package/dist/src/runtime/request/supervisor-skill-edit-target.d.ts +9 -0
  182. package/dist/src/runtime/request/supervisor-skill-edit-target.js +25 -0
  183. package/dist/src/runtime/request/supervisor-skill-payload-context.d.ts +21 -0
  184. package/dist/src/runtime/request/supervisor-skill-payload-context.js +91 -0
  185. package/dist/src/runtime/request/supervisor-skill-write-preparation.d.ts +25 -0
  186. package/dist/src/runtime/request/supervisor-skill-write-preparation.js +71 -0
  187. package/dist/src/runtime/request/worker-capability-composition.d.ts +4 -1
  188. package/dist/src/runtime/request/worker-capability-composition.js +4 -1
  189. package/dist/src/runtime/request/worker-capability-payload.d.ts +1 -1
  190. package/dist/src/runtime/request/worker-capability-payload.js +44 -37
  191. package/dist/src/runtime/runtime-environment.d.ts +2 -0
  192. package/dist/src/runtime/runtime-environment.js +12 -1
  193. package/dist/src/runtime/scheduler/contracts.d.ts +4 -0
  194. package/dist/src/runtime/scheduler/run-list-filter.d.ts +11 -0
  195. package/dist/src/runtime/scheduler/run-list-filter.js +56 -0
  196. package/dist/src/runtime/scheduler/run-list-query.d.ts +2 -2
  197. package/dist/src/runtime/scheduler/run-list-query.js +4 -1
  198. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +2 -0
  199. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +2 -2
  200. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +2 -34
  201. package/dist/src/runtime/steps/auditor-decision/input.js +21 -3
  202. package/dist/src/runtime/steps/auditor-decision/projection.js +5 -0
  203. package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
  204. package/dist/src/runtime/steps/auditor-decision/prompt.js +14 -3
  205. package/dist/src/runtime/steps/capability-execution-guidance.d.ts +7 -0
  206. package/dist/src/runtime/steps/capability-execution-guidance.js +28 -0
  207. package/dist/src/runtime/steps/capability-execution-instructions.d.ts +0 -2
  208. package/dist/src/runtime/steps/capability-execution-instructions.js +0 -2
  209. package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +5 -2
  210. package/dist/src/runtime/steps/execution-agent/capability-result-context.js +22 -3
  211. package/dist/src/runtime/steps/execution-agent/compaction.d.ts +3 -2
  212. package/dist/src/runtime/steps/execution-agent/compaction.js +9 -1
  213. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +10 -0
  214. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +13 -1
  215. package/dist/src/runtime/steps/execution-agent/direct-response-configuration.d.ts +3 -0
  216. package/dist/src/runtime/steps/execution-agent/direct-response-configuration.js +64 -0
  217. package/dist/src/runtime/steps/execution-agent/direct-response-contract.d.ts +7 -0
  218. package/dist/src/runtime/steps/execution-agent/direct-response-contract.js +56 -0
  219. package/dist/src/runtime/steps/execution-agent/direct-response-policy.d.ts +9 -0
  220. package/dist/src/runtime/steps/execution-agent/direct-response-policy.js +30 -0
  221. package/dist/src/runtime/steps/execution-agent/direct-response-prompt.d.ts +7 -0
  222. package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +43 -0
  223. package/dist/src/runtime/steps/execution-agent/format.js +2 -0
  224. package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -0
  225. package/dist/src/runtime/steps/execution-agent/input.js +35 -2
  226. package/dist/src/runtime/steps/execution-agent/plugin-catalog.d.ts +4 -0
  227. package/dist/src/runtime/steps/execution-agent/plugin-catalog.js +8 -0
  228. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
  229. package/dist/src/runtime/steps/execution-agent/prompt.js +42 -41
  230. package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +1 -0
  231. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -1
  232. package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
  233. package/dist/src/runtime/steps/execution-agent/response-run.js +6 -12
  234. package/dist/src/runtime/steps/execution-agent/run.js +5 -2
  235. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -3
  236. package/dist/src/runtime/steps/execution-agent/state-context.js +3 -40
  237. package/dist/src/runtime/steps/knowledge-skill-instructions.d.ts +3 -0
  238. package/dist/src/runtime/steps/knowledge-skill-instructions.js +3 -0
  239. package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +4 -2
  240. package/dist/src/runtime/steps/planner-decision/capability-brief.js +5 -1
  241. package/dist/src/runtime/steps/planner-decision/input.d.ts +2 -2
  242. package/dist/src/runtime/steps/planner-decision/input.js +7 -1
  243. package/dist/src/runtime/steps/planner-decision/prompt.js +29 -49
  244. package/dist/src/runtime/steps/planner-graph/input.d.ts +2 -2
  245. package/dist/src/runtime/steps/planner-graph/input.js +9 -8
  246. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -2
  247. package/dist/src/runtime/steps/planner-graph/run.d.ts +2 -2
  248. package/dist/src/runtime/steps/planner-graph/run.js +5 -5
  249. package/dist/src/runtime/steps/planner-graph/skill-guidance.d.ts +5 -0
  250. package/dist/src/runtime/steps/planner-graph/skill-guidance.js +62 -0
  251. package/dist/src/runtime/steps/reviewer-decision/final-evidence.d.ts +1 -0
  252. package/dist/src/runtime/steps/reviewer-decision/final-evidence.js +3 -1
  253. package/dist/src/runtime/steps/reviewer-decision/input.d.ts +3 -1
  254. package/dist/src/runtime/steps/reviewer-decision/input.js +2 -22
  255. package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +21 -0
  256. package/dist/src/runtime/steps/reviewer-decision/model-context.js +32 -1
  257. package/dist/src/runtime/steps/reviewer-decision/projection.js +4 -0
  258. package/dist/src/runtime/steps/reviewer-decision/prompt.d.ts +1 -1
  259. package/dist/src/runtime/steps/reviewer-decision/prompt.js +15 -4
  260. package/dist/src/runtime/steps/reviewer-decision/run.d.ts +2 -0
  261. package/dist/src/runtime/steps/reviewer-decision/run.js +6 -0
  262. package/dist/src/runtime/steps/skill-read-decision.d.ts +34 -0
  263. package/dist/src/runtime/steps/skill-read-decision.js +91 -0
  264. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +22 -0
  265. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +132 -0
  266. package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +2 -0
  267. package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +9 -2
  268. package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +12 -3
  269. package/dist/src/runtime/steps/supervisor-decision/contracts.js +3 -0
  270. package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +37 -0
  271. package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +124 -0
  272. package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +5 -1
  273. package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +4 -0
  274. package/dist/src/runtime/steps/supervisor-decision/format.d.ts +1 -0
  275. package/dist/src/runtime/steps/supervisor-decision/format.js +2 -0
  276. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +8 -1
  277. package/dist/src/runtime/steps/supervisor-decision/input.js +35 -11
  278. package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +1 -0
  279. package/dist/src/runtime/steps/supervisor-decision/parser.js +11 -0
  280. package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +26 -0
  281. package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +39 -0
  282. package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +17 -0
  283. package/dist/src/runtime/steps/supervisor-decision/preparation.js +65 -0
  284. package/dist/src/runtime/steps/supervisor-decision/presentation.d.ts +13 -0
  285. package/dist/src/runtime/steps/supervisor-decision/presentation.js +47 -0
  286. package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +5 -0
  287. package/dist/src/runtime/steps/supervisor-decision/prompt.js +97 -106
  288. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +2 -0
  289. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -0
  290. package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +3 -0
  291. package/dist/src/runtime/steps/supervisor-decision/resume.js +20 -0
  292. package/dist/src/runtime/steps/supervisor-decision/run.d.ts +7 -0
  293. package/dist/src/runtime/steps/supervisor-decision/run.js +76 -158
  294. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.d.ts +21 -0
  295. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +29 -0
  296. package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +16 -0
  297. package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +44 -0
  298. package/dist/src/runtime/steps/supervisor-response/input.d.ts +3 -0
  299. package/dist/src/runtime/steps/supervisor-response/input.js +5 -0
  300. package/dist/src/runtime/steps/supervisor-response/prompt.js +2 -0
  301. package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +3 -0
  302. package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +24 -4
  303. package/dist/src/runtime/steps/supervisor-response/run.d.ts +7 -0
  304. package/dist/src/runtime/steps/supervisor-response/run.js +3 -6
  305. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.d.ts +43 -0
  306. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.js +85 -0
  307. package/dist/src/runtime/steps/supervisor-skill-authoring/input.d.ts +35 -0
  308. package/dist/src/runtime/steps/supervisor-skill-authoring/input.js +87 -0
  309. package/dist/src/runtime/steps/supervisor-skill-authoring/run.d.ts +10 -0
  310. package/dist/src/runtime/steps/supervisor-skill-authoring/run.js +35 -0
  311. package/dist/src/runtime/steps/supervisor-skill-instructions.d.ts +4 -0
  312. package/dist/src/runtime/steps/supervisor-skill-instructions.js +4 -0
  313. package/dist/src/runtime/steps/worker-capability-scope-decision.js +14 -1
  314. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +1 -0
  315. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.d.ts +5 -0
  316. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.js +31 -0
  317. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +2 -25
  318. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +4 -0
  319. package/dist/src/runtime/steps/worker-decision/prompt.js +6 -2
  320. package/dist/src/runtime/steps/worker-decision/result-author.js +6 -0
  321. package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
  322. package/dist/src/web-ui/app/app-bootstrap.js +3 -0
  323. package/dist/src/web-ui/app/app.js +7 -1
  324. package/dist/src/web-ui/app/components/automations/run-history-controls.js +77 -0
  325. package/dist/src/web-ui/app/components/automations/run-history.js +55 -0
  326. package/dist/src/web-ui/app/components/automations/run.js +3 -8
  327. package/dist/src/web-ui/app/components/automations/timeline.js +3 -2
  328. package/dist/src/web-ui/app/components/automations/workspace.js +11 -2
  329. package/dist/src/web-ui/app/components/conversation-role-cards.js +27 -0
  330. package/dist/src/web-ui/app/components/conversation-role-delegations.d.ts +12 -0
  331. package/dist/src/web-ui/app/components/conversation-role-delegations.js +24 -0
  332. package/dist/src/web-ui/app/components/conversation-role-history.d.ts +13 -0
  333. package/dist/src/web-ui/app/components/conversation-role-history.js +81 -0
  334. package/dist/src/web-ui/app/components/conversation-role-returns.d.ts +12 -0
  335. package/dist/src/web-ui/app/components/conversation-role-returns.js +23 -0
  336. package/dist/src/web-ui/app/components/dashboard/compact-layout.js +137 -0
  337. package/dist/src/web-ui/app/components/dashboard/icons.js +5 -0
  338. package/dist/src/web-ui/app/components/dashboard/widget-card.js +85 -0
  339. package/dist/src/web-ui/app/components/dashboard/widget-dialog.js +83 -0
  340. package/dist/src/web-ui/app/components/dashboard/widget-summaries.js +155 -0
  341. package/dist/src/web-ui/app/components/dashboard/workspace.js +28 -4
  342. package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
  343. package/dist/src/web-ui/app/components/operations-summary.js +2 -1
  344. package/dist/src/web-ui/app/components/passive-learning/home-widget-preview.js +32 -0
  345. package/dist/src/web-ui/app/components/passive-learning/home.js +4 -1
  346. package/dist/src/web-ui/app/components/schedules/details.js +3 -2
  347. package/dist/src/web-ui/app/components/skills/workspace.js +119 -0
  348. package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -1
  349. package/dist/src/web-ui/app/components/spark-chat/settings.js +1 -1
  350. package/dist/src/web-ui/app/components/system-host/home-widget-permission-preview.js +75 -0
  351. package/dist/src/web-ui/app/components/system-host/home-widget-summary.js +93 -0
  352. package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +2 -2
  353. package/dist/src/web-ui/app/components/system-host/native-windows-access.js +1 -1
  354. package/dist/src/web-ui/app/components/system-host/rendering.js +3 -3
  355. package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +2 -2
  356. package/dist/src/web-ui/app/components/workspace-shell.js +11 -1
  357. package/dist/src/web-ui/app/computer-access-feature.js +13 -1
  358. package/dist/src/web-ui/app/configuration-feature.js +2 -0
  359. package/dist/src/web-ui/app/controllers/automation-read-projection.js +8 -4
  360. package/dist/src/web-ui/app/controllers/automation-run-actions.js +3 -1
  361. package/dist/src/web-ui/app/controllers/automation-run-history.js +159 -0
  362. package/dist/src/web-ui/app/controllers/automations-controller.js +27 -11
  363. package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +6 -2
  364. package/dist/src/web-ui/app/controllers/operations-controller.js +2 -1
  365. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +22 -1
  366. package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +1 -1
  367. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +7 -1
  368. package/dist/src/web-ui/app/controllers/skills-controller.js +237 -0
  369. package/dist/src/web-ui/app/dashboard-feature.js +9 -0
  370. package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +5 -0
  371. package/dist/src/web-ui/app/lib/conversation-role-model.js +63 -5
  372. package/dist/src/web-ui/app/lib/event-presentation.js +34 -0
  373. package/dist/src/web-ui/app/lib/reasoning-controls.js +6 -1
  374. package/dist/src/web-ui/app/lib/role-delegation-event.d.ts +18 -0
  375. package/dist/src/web-ui/app/lib/role-delegation-event.js +47 -0
  376. package/dist/src/web-ui/app/lib/role-return-event.d.ts +19 -0
  377. package/dist/src/web-ui/app/lib/role-return-event.js +36 -0
  378. package/dist/src/web-ui/app/lib/tool-activity-event.js +8 -6
  379. package/dist/src/web-ui/app/lib/tool-skill-activity-fields.js +50 -0
  380. package/dist/src/web-ui/app/lib/workspace-route.js +1 -0
  381. package/dist/src/web-ui/app/passive-learning-feature.js +2 -2
  382. package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +9 -1
  383. package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
  384. package/dist/src/web-ui/app/services/runtime-web-client/skills.js +23 -0
  385. package/dist/src/web-ui/app/services/runtime-web-client.js +2 -0
  386. package/dist/src/web-ui/app/skills-feature.js +36 -0
  387. package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +58 -0
  388. package/dist/src/web-ui/app/styles/40-skills.css +34 -0
  389. package/dist/src/web-ui/app/styles/50-automations.css +24 -3
  390. package/dist/src/web-ui/app/styles/95-home-widgets.css +110 -0
  391. package/dist/src/web-ui/app/styles.css +2 -0
  392. package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
  393. package/dist/src/web-ui/app/ui-behavior.js +1 -0
  394. package/dist/src/web-ui/client-state/store.js +3 -2
  395. package/dist/src/web-ui/client-state/transaction-order.d.ts +2 -0
  396. package/dist/src/web-ui/client-state/transaction-order.js +18 -0
  397. package/dist/src/web-ui/local-runtime/api-router.d.ts +1 -0
  398. package/dist/src/web-ui/local-runtime/api-router.js +7 -0
  399. package/dist/src/web-ui/local-runtime/automation-routes.js +2 -1
  400. package/dist/src/web-ui/local-runtime/automation-run-page.d.ts +5 -0
  401. package/dist/src/web-ui/local-runtime/automation-run-page.js +26 -0
  402. package/dist/src/web-ui/local-runtime/skill-management-routes.d.ts +18 -0
  403. package/dist/src/web-ui/local-runtime/skill-management-routes.js +118 -0
  404. package/docs/configuration.md +8 -0
  405. package/docs/plugins.md +37 -32
  406. package/docs/runtime-public-contracts.md +37 -0
  407. package/examples/request-runner.config.example.json +3 -0
  408. package/package.json +1 -1
  409. package/plugins/capability-brief/plugin.json +1 -1
  410. package/plugins/code-outline/plugin.json +1 -1
  411. package/plugins/document-reader/plugin.json +1 -1
  412. package/plugins/exec/plugin.json +1 -1
  413. package/plugins/filesystem/plugin.json +1 -1
  414. package/plugins/json-inspector/plugin.json +1 -1
  415. package/plugins/local-search/plugin.json +1 -1
  416. package/plugins/memory/plugin.json +1 -1
  417. package/plugins/project-orientation/plugin.json +1 -1
  418. package/plugins/system/plugin.json +1 -1
  419. package/plugins/system-probe/plugin.json +1 -1
  420. package/plugins/web/plugin.json +1 -1
  421. package/plugins/web/skills/web_fetch_skill/SKILL.md +1 -2
  422. package/plugins/web/skills/web_search_skill/SKILL.md +3 -7
  423. package/src/runtime/README.md +96 -1
@@ -0,0 +1,196 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { PERSONAL_SKILL_LIMITS } from "../../knowledge-skills/personal-contracts.js";
3
+ import { isKnowledgeSkillId, KNOWLEDGE_SKILL_ID_MAX_LENGTH, KNOWLEDGE_SKILL_READ_MAX_ITEMS, } from "../../knowledge-skills/store.js";
4
+ import { exactKeys, isRecord } from "../../validation/strict-record.js";
5
+ /** Decode the exact Store snapshots supplied by the runtime read boundary. */
6
+ export function decodeSkillReadCommand(input) {
7
+ const isRuntimeReadCommand = input.authority === "runtime" && input.type === "record_skill_read";
8
+ if (!isRuntimeReadCommand)
9
+ return { ok: false, code: "invalid_command" };
10
+ const hasCommandFields = exactKeys(input, [
11
+ "authority", "type", "callId", "invocationAttempt", "steeringVersion",
12
+ "operation", "selectors", "result",
13
+ ]);
14
+ if (!hasCommandFields)
15
+ return { ok: false, code: "invalid_command" };
16
+ if (!hasSkillReadBinding(input))
17
+ return { ok: false, code: "invalid_command" };
18
+ if (!hasSkillReadPayload(input))
19
+ return { ok: false, code: "invalid_command" };
20
+ return { ok: true, value: input };
21
+ }
22
+ /** Omission preserves heads and parked requests created before core Skill reads. */
23
+ export function validateRoleSkillReads(state, policy) {
24
+ const reads = state.skillReads;
25
+ if (reads === undefined)
26
+ return [];
27
+ const invalid = [{ code: "invalid_role_skill_reads", path: "state.skillReads" }];
28
+ if (!Array.isArray(reads))
29
+ return invalid;
30
+ if (reads.length === 0)
31
+ return [];
32
+ const usesSupervisorContract = policy.authority.rootContractId === "supervisor";
33
+ if (!usesSupervisorContract)
34
+ return invalid;
35
+ const root = state.calls.find((call) => call.callId === state.rootCallId);
36
+ if (!root)
37
+ return invalid;
38
+ const isSupervisorRoot = root.parentCallId === null && root.roleId === "supervisor";
39
+ if (!isSupervisorRoot)
40
+ return invalid;
41
+ let previousAttempt = 0;
42
+ let previousSteeringVersion = 0;
43
+ for (const [index, read] of reads.entries()) {
44
+ if (!isRecord(read))
45
+ return invalid;
46
+ const hasReceiptFields = exactKeys(read, [
47
+ "readId", "callId", "invocationAttempt", "steeringVersion",
48
+ "operation", "selectors", "result",
49
+ ]);
50
+ if (!hasReceiptFields)
51
+ return invalid;
52
+ if (!hasSkillReadBinding(read))
53
+ return invalid;
54
+ if (!hasSkillReadPayload(read))
55
+ return invalid;
56
+ const hasSequentialIdentity = read.readId === `skill-read-${index + 1}`;
57
+ if (!hasSequentialIdentity)
58
+ return invalid;
59
+ const belongsToRoot = read.callId === root.callId;
60
+ if (!belongsToRoot)
61
+ return invalid;
62
+ const followsPreviousRead = read.invocationAttempt > previousAttempt;
63
+ if (!followsPreviousRead)
64
+ return invalid;
65
+ const precedesCurrentActivation = read.invocationAttempt < root.activationCount;
66
+ if (!precedesCurrentActivation)
67
+ return invalid;
68
+ const preservesSteeringOrder = read.steeringVersion >= previousSteeringVersion;
69
+ if (!preservesSteeringOrder)
70
+ return invalid;
71
+ previousAttempt = read.invocationAttempt;
72
+ previousSteeringVersion = read.steeringVersion;
73
+ }
74
+ return [];
75
+ }
76
+ function hasSkillReadBinding(value) {
77
+ if (!hasText(value.callId))
78
+ return false;
79
+ const hasInvocationAttempt = Number.isSafeInteger(value.invocationAttempt) &&
80
+ value.invocationAttempt >= 1;
81
+ if (!hasInvocationAttempt)
82
+ return false;
83
+ const hasSteeringVersion = Number.isSafeInteger(value.steeringVersion) &&
84
+ value.steeringVersion >= 0;
85
+ return hasSteeringVersion;
86
+ }
87
+ function hasSkillReadPayload(value) {
88
+ if (!Array.isArray(value.selectors))
89
+ return false;
90
+ if (!isRecord(value.result))
91
+ return false;
92
+ const selectors = value.selectors;
93
+ const isRead = value.operation === "read_skills";
94
+ const isList = value.operation === "list_skills";
95
+ if (!isRead && !isList)
96
+ return false;
97
+ if (isRead && !hasValidSelectors(selectors))
98
+ return false;
99
+ if (isList && selectors.length !== 0)
100
+ return false;
101
+ const result = value.result;
102
+ if (!Array.isArray(result.skills))
103
+ return false;
104
+ if (result.outcome === "failed") {
105
+ const hasFailureFields = exactKeys(result, ["outcome", "errorCode", "skills"]);
106
+ if (!hasFailureFields)
107
+ return false;
108
+ if (typeof result.errorCode !== "string")
109
+ return false;
110
+ const hasErrorCode = /^[a-z][a-z0-9_]*$/.test(result.errorCode);
111
+ if (!hasErrorCode)
112
+ return false;
113
+ return result.skills.length === 0;
114
+ }
115
+ if (result.outcome !== "completed")
116
+ return false;
117
+ if (!exactKeys(result, ["outcome", "skills"]))
118
+ return false;
119
+ const hasReadSize = result.skills.length > 0 &&
120
+ result.skills.length <= KNOWLEDGE_SKILL_READ_MAX_ITEMS;
121
+ if (isRead && !hasReadSize)
122
+ return false;
123
+ if (!result.skills.every((skill) => hasSkillSnapshot(skill, isRead)))
124
+ return false;
125
+ const skills = result.skills;
126
+ const hasUniqueSkills = new Set(skills.map(({ skillId }) => skillId)).size === skills.length;
127
+ if (!hasUniqueSkills)
128
+ return false;
129
+ if (!isRead)
130
+ return true;
131
+ const resolvesEverySelector = selectors.every((selector) => skills.some((skill) => matchesSelector(skill, selector)));
132
+ if (!resolvesEverySelector)
133
+ return false;
134
+ const containsOnlySelectedSkills = skills.every((skill) => selectors.some((selector) => matchesSelector(skill, selector)));
135
+ return containsOnlySelectedSkills;
136
+ }
137
+ function hasValidSelectors(values) {
138
+ const hasReadSize = values.length > 0 && values.length <= KNOWLEDGE_SKILL_READ_MAX_ITEMS;
139
+ if (!hasReadSize)
140
+ return false;
141
+ const maximumLength = Math.max(KNOWLEDGE_SKILL_ID_MAX_LENGTH, PERSONAL_SKILL_LIMITS.name);
142
+ const hasExactSelectors = values.every((value) => {
143
+ if (typeof value !== "string")
144
+ return false;
145
+ const hasBoundedLength = value.length > 0 && value.length <= maximumLength;
146
+ if (!hasBoundedLength)
147
+ return false;
148
+ return value.trim() === value;
149
+ });
150
+ if (!hasExactSelectors)
151
+ return false;
152
+ return new Set(values).size === values.length;
153
+ }
154
+ function matchesSelector(skill, selector) {
155
+ return skill.skillId === selector || skill.name === selector;
156
+ }
157
+ function hasSkillSnapshot(value, document) {
158
+ if (!isRecord(value))
159
+ return false;
160
+ const hasSnapshotFields = exactKeys(value, ["skillId", "name", "description", ...(document ? ["content"] : [])], ["source", ...(document ? ["revision"] : [])]);
161
+ if (!hasSnapshotFields)
162
+ return false;
163
+ if (!isKnowledgeSkillId(value.skillId))
164
+ return false;
165
+ if (!hasText(value.name))
166
+ return false;
167
+ if (!hasText(value.description))
168
+ return false;
169
+ const hasKnownSource = value.source === undefined || value.source === "system" || value.source === "personal";
170
+ if (!hasKnownSource)
171
+ return false;
172
+ if (value.revision !== undefined) {
173
+ const hasValidRevision = Number.isSafeInteger(value.revision) &&
174
+ value.revision >= 1 &&
175
+ value.revision <= PERSONAL_SKILL_LIMITS.revision;
176
+ if (!hasValidRevision)
177
+ return false;
178
+ }
179
+ if (document && !hasText(value.content))
180
+ return false;
181
+ if (value.source !== "personal")
182
+ return true;
183
+ if (value.name.length > PERSONAL_SKILL_LIMITS.name)
184
+ return false;
185
+ if (value.description.length > PERSONAL_SKILL_LIMITS.description)
186
+ return false;
187
+ if (!document)
188
+ return true;
189
+ if (value.revision === undefined)
190
+ return false;
191
+ const contentBytes = Buffer.byteLength(value.content, "utf8");
192
+ return contentBytes <= PERSONAL_SKILL_LIMITS.contentBytes;
193
+ }
194
+ function hasText(value) {
195
+ return typeof value === "string" && value.trim().length > 0;
196
+ }
@@ -1,3 +1,3 @@
1
1
  import type { RoleExecutor, RoleExecutorActivationResult, RoleExecutorInput } from "../contracts.js";
2
- /** Contains recognized model-output failure or step timeout in the current call. */
2
+ /** Contains recognized model failures and step timeouts in the current call. */
3
3
  export declare function executeRoleWithModelOutputFailure<TContext, TValue>(executor: RoleExecutor<TContext, TValue>, input: RoleExecutorInput<TContext>, maxSummaryLength: number, requestId: string): Promise<RoleExecutorActivationResult<TValue>>;
@@ -1,8 +1,9 @@
1
1
  import { resolveModelOutputFailure, } from "../../../model/invalid-output-failure.js";
2
2
  import { ModelOutputIncompleteError } from "../../../model/provider-completion.js";
3
+ import { ModelProviderFailure } from "../../../model/provider-failure.js";
3
4
  import { ModelStepTimeoutError } from "../../../steps/model-step-timeout.js";
4
5
  import { traceDebug } from "../../../observability/debug-logger.js";
5
- /** Contains recognized model-output failure or step timeout in the current call. */
6
+ /** Contains recognized model failures and step timeouts in the current call. */
6
7
  export async function executeRoleWithModelOutputFailure(executor, input, maxSummaryLength, requestId) {
7
8
  try {
8
9
  return await executor.execute(input);
@@ -30,7 +31,8 @@ export async function executeRoleWithModelOutputFailure(executor, input, maxSumm
30
31
  }
31
32
  }
32
33
  function resolveChildModelOutputFailure(error) {
33
- if (error instanceof ModelStepTimeoutError) {
34
+ if (error instanceof ModelProviderFailure ||
35
+ error instanceof ModelStepTimeoutError) {
34
36
  return Object.freeze({
35
37
  code: error.code,
36
38
  modelStep: error.modelStep,
@@ -5,6 +5,7 @@ import { workerCapabilityBindingRejection } from "./binding-rejection.js";
5
5
  import { BoundCapabilitySession } from "./bound-capability-session.js";
6
6
  import { copyBoundCapabilityCall, inspectInitialBindingAuthority, normalizeExecutionFreshness, } from "./call-authority.js";
7
7
  import { bindCapabilityDependencyResults } from "./dependency-results.js";
8
+ import { projectSupervisorSkillCapabilityAdapters } from "../supervisor-skill-authority.js";
8
9
  export function createRoleCapabilityBinding(params) {
9
10
  const boundCall = copyBoundCapabilityCall(params.call);
10
11
  const emptyDiagnostic = createEmptyBindingDiagnostic(params.requestId, boundCall);
@@ -30,7 +31,9 @@ export function createRoleCapabilityBinding(params) {
30
31
  emptyDiagnostic,
31
32
  });
32
33
  const catalog = createBoundCapabilityCatalog({
33
- adapters: params.adapters,
34
+ adapters: projectSupervisorSkillCapabilityAdapters({
35
+ head: initialHead, call: authority.authoritativeCall, adapters: params.adapters,
36
+ }),
34
37
  boundCall,
35
38
  emptyDiagnostic,
36
39
  });
@@ -9,10 +9,10 @@ export declare const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
9
9
  /** Immutable Worker-only assignment for authoring one capability payload. */
10
10
  export declare const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = 8192;
11
11
  export declare const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
12
- export declare const WORKER_CAPABILITY_COUNT_MAX = 128;
12
+ export declare const WORKER_CAPABILITY_COUNT_MAX = 130;
13
13
  export declare const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
14
14
  export declare const WORKER_CAPABILITY_CONTROL_ID_MAX_LENGTH = 64;
15
- export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH, } from "../../../capabilities/normal-invocation/contracts.js";
15
+ export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
16
16
  export declare const WORKER_CAPABILITY_CONTROL_ENUM_MAX_VALUES = 64;
17
17
  export declare const WORKER_CAPABILITY_CONTROL_ENUM_VALUE_MAX_LENGTH = 256;
18
18
  export declare const WORKER_CAPABILITY_CONTROL_ARRAY_MAX_ITEMS = 64;
@@ -165,6 +165,8 @@ export type WorkerCapabilityPreparedExecution = Readonly<{
165
165
  onAdmitted?(executionId: string): void;
166
166
  approvalRequest?: ToolApprovalRequest;
167
167
  applyApprovalDecision?(decision: BoundApprovalDecision): void;
168
+ /** Project a fenced rejection with adapter-owned lifecycle and evidence; never execute. */
169
+ rejectBeforeExecution?(executionId: string, code: string, message: string): WorkerCapabilityAdapterResult;
168
170
  execute(executionId: string): Promise<WorkerCapabilityAdapterResult>;
169
171
  }>;
170
172
  export type WorkerCapabilityAdapterPreparationInput<TContext> = Readonly<Omit<WorkerCapabilityAdapterExecutionInput<TContext>, "executionId"> & {
@@ -5,10 +5,10 @@ export const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
5
5
  /** Immutable Worker-only assignment for authoring one capability payload. */
6
6
  export const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = ROLE_CALL_OBJECTIVE_MAX_LENGTH;
7
7
  export const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
8
- export const WORKER_CAPABILITY_COUNT_MAX = 128;
8
+ export const WORKER_CAPABILITY_COUNT_MAX = 130;
9
9
  export const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
10
10
  export const WORKER_CAPABILITY_CONTROL_ID_MAX_LENGTH = 64;
11
- export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH, } from "../../../capabilities/normal-invocation/contracts.js";
11
+ export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
12
12
  export const WORKER_CAPABILITY_CONTROL_ENUM_MAX_VALUES = 64;
13
13
  export const WORKER_CAPABILITY_CONTROL_ENUM_VALUE_MAX_LENGTH = 256;
14
14
  export const WORKER_CAPABILITY_CONTROL_ARRAY_MAX_ITEMS = 64;
@@ -1,3 +1,5 @@
1
+ import { projectSupervisorSkillCapabilityAdapters } from "../supervisor-skill-authority.js";
2
+ import { fenceRestoredApprovalExecution } from "./execution-freshness.js";
1
3
  import { restorePreparationRejection } from "./preparation-rejection.js";
2
4
  import { isDeepStrictEqual } from "node:util";
3
5
  import { settleAdmittedPreparedGroup } from "./settle-prepared.js";
@@ -72,12 +74,13 @@ export async function restoreCapabilityApprovalGroup(params) {
72
74
  if (group.executionFreshnessToken !== undefined &&
73
75
  !isDeepStrictEqual(group.executionFreshnessToken, params.executionFreshness?.token))
74
76
  throw new Error("prepared_approval_freshness_mismatch");
77
+ const adapters = projectSupervisorSkillCapabilityAdapters({ head, call, adapters: params.adapters });
75
78
  const running = head.state.capabilityExecutions.filter((entry) => entry.status === "running");
76
79
  if (running.length !== group.entries.length)
77
80
  throw new Error("prepared_approval_group_mismatch");
78
81
  const invocations = await Promise.all(group.entries.map(async (entry) => {
79
82
  const admitted = running.find((value) => value.executionId === entry.executionId);
80
- const adapter = params.adapters.find((value) => value.descriptor.capabilityId === entry.capabilityId);
83
+ const adapter = adapters.find((value) => value.descriptor.capabilityId === entry.capabilityId);
81
84
  if (!admitted ||
82
85
  admitted.callId !== group.callId ||
83
86
  admitted.invocationAttempt !== group.invocationAttempt ||
@@ -122,8 +125,8 @@ export async function restoreCapabilityApprovalGroup(params) {
122
125
  scopeMode: call.workerCapabilityScope ? "catalog_groups" : "full",
123
126
  scopeCatalogGroupIds: call.workerCapabilityScope?.catalogGroupIds ?? [],
124
127
  knownCatalogGroupCount: 0,
125
- fullCapabilityCount: params.adapters.length,
126
- filteredCapabilityCount: params.adapters.length,
128
+ fullCapabilityCount: adapters.length,
129
+ filteredCapabilityCount: adapters.length,
127
130
  };
128
131
  return Object.freeze({
129
132
  async execute(decisions) {
@@ -132,7 +135,10 @@ export async function restoreCapabilityApprovalGroup(params) {
132
135
  ledger: params.ledger,
133
136
  expectedHead: head,
134
137
  call,
135
- invocations,
138
+ invocations: invocations.map((invocation) => ({
139
+ ...invocation,
140
+ prepared: fenceRestoredApprovalExecution(invocation.prepared, params.executionFreshness),
141
+ })),
136
142
  executionIds: group.entries.map((entry) => entry.executionId),
137
143
  batch: group.batch,
138
144
  diagnostic,
@@ -0,0 +1,5 @@
1
+ import type { WorkerCapabilityExecutionFreshness, WorkerCapabilityPreparedExecution } from "../contracts.js";
2
+ export declare const STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION: "steering_superseded_before_external_execution";
3
+ export declare const STEERING_SUPERSEDED_SUMMARY = "steering_superseded_before_external_execution: No external execution occurred because a newer active-request update superseded this capability invocation.";
4
+ /** Preserve the admitted identity and decision binding; only fence its dispatch. */
5
+ export declare function fenceRestoredApprovalExecution(prepared: WorkerCapabilityPreparedExecution, freshness: WorkerCapabilityExecutionFreshness | undefined): WorkerCapabilityPreparedExecution;
@@ -0,0 +1,31 @@
1
+ export const STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION = "steering_superseded_before_external_execution";
2
+ export const STEERING_SUPERSEDED_SUMMARY = "steering_superseded_before_external_execution: No external execution occurred because a newer active-request update superseded this capability invocation.";
3
+ /** Preserve the admitted identity and decision binding; only fence its dispatch. */
4
+ export function fenceRestoredApprovalExecution(prepared, freshness) {
5
+ if (!freshness)
6
+ return prepared;
7
+ return Object.freeze({
8
+ ...prepared,
9
+ async execute(executionId) {
10
+ if (freshness.isCurrent())
11
+ return prepared.execute(executionId);
12
+ if (prepared.rejectBeforeExecution)
13
+ return prepared.rejectBeforeExecution(executionId, STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION, STEERING_SUPERSEDED_SUMMARY);
14
+ return Object.freeze({
15
+ outcome: "failed",
16
+ observedEffect: "none",
17
+ summary: STEERING_SUPERSEDED_SUMMARY,
18
+ // This is request control, not evidence of a repeatable tool failure.
19
+ failureOutcomeFingerprint: null,
20
+ exactResult: Object.freeze({
21
+ kind: "runtime_capability_rejection_v1",
22
+ authority: "runtime",
23
+ status: "rejected",
24
+ stage: "before_external_execution",
25
+ code: STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION,
26
+ message: STEERING_SUPERSEDED_SUMMARY,
27
+ }),
28
+ });
29
+ },
30
+ });
31
+ }
@@ -1,3 +1,5 @@
1
1
  import type { WorkerCapabilityPayloadAuthor, WorkerCapabilityPayloadModelRequest } from "./payload-contracts.js";
2
2
  /** Runtime-only sidecar bypasses the cloned/model-visible payload context. */
3
3
  export declare function projectWorkerPayloadCompactionInput(input: Parameters<WorkerCapabilityPayloadAuthor["author"]>[0], requestId: string): Pick<WorkerCapabilityPayloadModelRequest, "superWorkerCompaction">;
4
+ /** Root payload checkpoints are isolated to the exact preparation and stage. */
5
+ export declare function rootPayloadCompactionScopeId(input: WorkerCapabilityPayloadModelRequest): string;
@@ -1,8 +1,6 @@
1
1
  import { assertSuperWorkerCompactionSidecarBinding, readSuperWorkerCompactionSidecar, } from "../../context/super-worker-compaction-sidecar.js";
2
2
  /** Runtime-only sidecar bypasses the cloned/model-visible payload context. */
3
3
  export function projectWorkerPayloadCompactionInput(input, requestId) {
4
- if (input.call.roleId !== "worker")
5
- return {};
6
4
  const sidecar = readSuperWorkerCompactionSidecar(input.settledCapabilityResults);
7
5
  if (!sidecar)
8
6
  return {};
@@ -12,3 +10,10 @@ export function projectWorkerPayloadCompactionInput(input, requestId) {
12
10
  });
13
11
  return { superWorkerCompaction: sidecar };
14
12
  }
13
+ /** Root payload checkpoints are isolated to the exact preparation and stage. */
14
+ export function rootPayloadCompactionScopeId(input) {
15
+ if (!("root" in input.context))
16
+ throw new Error("payload_root_context_required");
17
+ return ["payload", input.context.root.callId, input.executionId,
18
+ input.context.payloadStage?.index ?? 0].join(":");
19
+ }
@@ -0,0 +1,19 @@
1
+ import type { ToolAvailabilityEntry } from "../../../capabilities/tool-types.js";
2
+ import type { ExecutionPolicyAuthoritySnapshot, RoleCallFrame, RoleCallLedgerHead } from "../role-calls/index.js";
3
+ import type { WorkerCapabilityAdapter, WorkerCapabilityDescriptor } from "./contracts.js";
4
+ export declare function isSupervisorSkillWriteCapabilityId(capabilityId: string): boolean;
5
+ export declare function projectSupervisorWorkerCapabilityDescriptors(params: {
6
+ authority: ExecutionPolicyAuthoritySnapshot;
7
+ descriptors: readonly WorkerCapabilityDescriptor[];
8
+ }): readonly WorkerCapabilityDescriptor[];
9
+ /** Descriptions and selectable descriptors obey the same write ownership. */
10
+ export declare function projectSupervisorWorkerCapabilityBriefEntries(params: {
11
+ authority: ExecutionPolicyAuthoritySnapshot;
12
+ entries: readonly ToolAvailabilityEntry[] | undefined;
13
+ }): readonly ToolAvailabilityEntry[] | undefined;
14
+ /** The same boundary applies before execution and before approval restoration. */
15
+ export declare function projectSupervisorSkillCapabilityAdapters<TContext>(params: {
16
+ head: RoleCallLedgerHead;
17
+ call: RoleCallFrame;
18
+ adapters: readonly WorkerCapabilityAdapter<TContext>[];
19
+ }): readonly WorkerCapabilityAdapter<TContext>[];
@@ -0,0 +1,43 @@
1
+ import { knowledgeSkillWriteOperations } from "../../capabilities/knowledge-skills/write-contract.js";
2
+ import { hasSuperContextContract } from "../../context/super-context-policy.js";
3
+ const skillAuthoringCapabilityIds = new Set(knowledgeSkillWriteOperations.map(({ operationId }) => operationId));
4
+ export function isSupervisorSkillWriteCapabilityId(capabilityId) {
5
+ return skillAuthoringCapabilityIds.has(capabilityId);
6
+ }
7
+ export function projectSupervisorWorkerCapabilityDescriptors(params) {
8
+ if (!hasSuperContextContract(params.authority, "supervisor"))
9
+ return params.descriptors;
10
+ return Object.freeze(params.descriptors.filter((descriptor) => !isSupervisorSkillWriteCapabilityId(descriptor.capabilityId)));
11
+ }
12
+ /** Descriptions and selectable descriptors obey the same write ownership. */
13
+ export function projectSupervisorWorkerCapabilityBriefEntries(params) {
14
+ if (!hasSuperContextContract(params.authority, "supervisor"))
15
+ return params.entries;
16
+ if (params.entries === undefined)
17
+ return undefined;
18
+ return Object.freeze(params.entries.filter(({ operationId }) => !isSupervisorSkillWriteCapabilityId(operationId)));
19
+ }
20
+ /** The same boundary applies before execution and before approval restoration. */
21
+ export function projectSupervisorSkillCapabilityAdapters(params) {
22
+ if (!hasSuperContextContract(params.head.policy.authority, "supervisor"))
23
+ return params.adapters;
24
+ // Preserve malformed entries for the existing adapter validation boundary.
25
+ if (!Array.isArray(params.adapters))
26
+ return params.adapters;
27
+ if (isSupervisorRootCapabilityCall(params.head, params.call)) {
28
+ return Object.freeze(params.adapters.filter((adapter) => hasMalformedCapabilityIdentity(adapter) ||
29
+ isSupervisorSkillWriteCapabilityId(adapter.descriptor.capabilityId)));
30
+ }
31
+ if (params.call.roleId !== "worker")
32
+ return params.adapters;
33
+ return Object.freeze(params.adapters.filter((adapter) => hasMalformedCapabilityIdentity(adapter) ||
34
+ !isSupervisorSkillWriteCapabilityId(adapter.descriptor.capabilityId)));
35
+ }
36
+ function isSupervisorRootCapabilityCall(head, call) {
37
+ if (call.callId !== head.state.rootCallId)
38
+ return false;
39
+ return call.parentCallId === null;
40
+ }
41
+ function hasMalformedCapabilityIdentity(adapter) {
42
+ return typeof adapter?.descriptor?.capabilityId !== "string";
43
+ }
@@ -1,3 +1,4 @@
1
+ import { hasCoreToolContractCollision } from "../capabilities/core-tool-contracts.js";
1
2
  import { pluginLoadConfiguration } from "./configuration-context.js";
2
3
  import { readPluginConfigurationStore, } from "./configuration-store.js";
3
4
  import { validateManifestEntrypoint } from "./entrypoint-validation.js";
@@ -117,8 +118,8 @@ export function loadConfiguredRuntimePlugins(config) {
117
118
  ...selection.disabledPluginIds,
118
119
  ]),
119
120
  });
120
- const compatiblePlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported);
121
- const allPluginsIncompatible = discoveredPlugins.length > 0 && compatiblePlugins.length === 0;
121
+ const compatiblePlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported).filter(({ manifest }) => !hasCoreToolContractCollision(manifest.extensions[ABOT_RUNTIME_EXTENSION].capabilities));
122
+ const allPluginsUnavailable = discoveredPlugins.length > 0 && compatiblePlugins.length === 0;
122
123
  const selectedPlugins = compatiblePlugins
123
124
  .map((plugin) => ({
124
125
  plugin,
@@ -131,7 +132,7 @@ export function loadConfiguredRuntimePlugins(config) {
131
132
  .filter(({ selectedCapabilityIds }) => selectedCapabilityIds.length > 0);
132
133
  const host = {
133
134
  rootDir: config.paths.rootDir,
134
- pluginConfiguration: allPluginsIncompatible
135
+ pluginConfiguration: allPluginsUnavailable
135
136
  ? {}
136
137
  : readPluginConfigurationStore(config.paths.rootDir).plugins,
137
138
  runtimeId: config.runtimeId,
@@ -181,11 +182,11 @@ export function loadBundledRuntimePlugins() {
181
182
  return cached;
182
183
  }
183
184
  const discoveredPlugins = discoverAgentPluginManifests(packageRoot);
184
- const selectedPlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported);
185
- const allPluginsIncompatible = discoveredPlugins.length > 0 && selectedPlugins.length === 0;
185
+ const selectedPlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported).filter(({ manifest }) => !hasCoreToolContractCollision(manifest.extensions[ABOT_RUNTIME_EXTENSION].capabilities));
186
+ const allPluginsUnavailable = discoveredPlugins.length > 0 && selectedPlugins.length === 0;
186
187
  const host = {
187
188
  rootDir,
188
- pluginConfiguration: allPluginsIncompatible
189
+ pluginConfiguration: allPluginsUnavailable
189
190
  ? {}
190
191
  : readPluginConfigurationStore(rootDir).plugins,
191
192
  runtimeId: "default",
@@ -41,6 +41,9 @@ export function projectManifestRuntimeContract(discovered, selectedCapabilityIds
41
41
  definition: {
42
42
  name: capabilityId,
43
43
  pluginName: manifest.name,
44
+ ...(manifest.description !== undefined
45
+ ? { pluginDescription: manifest.description }
46
+ : {}),
44
47
  ...(capability.requiredPermissionMode
45
48
  ? { requiredPermissionMode: capability.requiredPermissionMode }
46
49
  : {}),
@@ -49,6 +49,7 @@ export async function validateApprovalResume(services, snapshot, current) {
49
49
  sessionStore: services.sessions,
50
50
  attachmentStore: services.attachments,
51
51
  toolRegistry: services.tools,
52
+ knowledgeSkillStore: services.knowledgeSkillStore,
52
53
  modelGatewayClient: models,
53
54
  eventSinkFactory: { create: () => events },
54
55
  sessionMemoryCompactor: services.sessionMemoryCompactor,
@@ -7,6 +7,7 @@ export function createBoundRuntimeRequestHandler(services) {
7
7
  sessionStore: services.sessions,
8
8
  attachmentStore: services.attachments,
9
9
  toolRegistry: services.tools,
10
+ knowledgeSkillStore: services.knowledgeSkillStore,
10
11
  sessionMemoryCompactor: services.sessionMemoryCompactor,
11
12
  longTermMemory: services.longTermMemory,
12
13
  };
@@ -22,7 +22,12 @@ export function restoreApprovalExecutionFreshness(token, requestSteering) {
22
22
  });
23
23
  if (!isDeepStrictEqual(current.token, token))
24
24
  throw new Error("request_approval_steering_mismatch");
25
- if (!current.isCurrent())
25
+ // A newer accepted prefix invalidates execution, not the saved approval.
26
+ // A closed inbox has no current version and must remain terminal.
27
+ if (!hasLiveSteeringInbox(inbox))
26
28
  throw new Error("request_approval_steering_superseded");
27
29
  return Object.freeze({ token, isCurrent: current.isCurrent });
28
30
  }
31
+ function hasLiveSteeringInbox(inbox) {
32
+ return inbox.isCurrent(inbox.snapshot().version);
33
+ }
@@ -1,3 +1,4 @@
1
+ import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
1
2
  import type { RequestToolResources } from "../capabilities/request-tool-resources.js";
2
3
  import type { CapabilityApprovalGate } from "../orchestration/worker-capabilities/approval-contracts.js";
3
4
  import type { RequestApprovalExecution } from "./approval-wait/snapshot.js";
@@ -44,6 +45,7 @@ export type RequestHandlerOptions = {
44
45
  sessionStore?: RequestSessionStore;
45
46
  attachmentStore?: RuntimeAttachmentStore;
46
47
  toolRegistry?: ToolRegistry;
48
+ knowledgeSkillStore?: KnowledgeSkillStore;
47
49
  toolApprovalController?: ToolApprovalController;
48
50
  requestSteering?: RequestSteeringInbox;
49
51
  /** Trusted automation-only receipt boundary; never accepted from client JSON. */
@@ -37,6 +37,8 @@ export const EXECUTION_AGENT_ROOT_CONTRACT = Object.freeze({
37
37
  });
38
38
  },
39
39
  async authorResponse(request, options) {
40
+ if (options.directResponse !== undefined)
41
+ return options.directResponse;
40
42
  const requestSteering = resolveRequestSteeringInbox(request.requestSteering);
41
43
  return runExecutionAgentAuthoredResponse(request, {
42
44
  head: options.head,
@@ -115,7 +117,15 @@ function projectKernelDecision(decision, steeringVersion) {
115
117
  ...presentation,
116
118
  });
117
119
  case "respond":
118
- return Object.freeze({ action: "respond", ...presentation });
120
+ return Object.freeze({
121
+ action: "respond", ...presentation,
122
+ ...(decision.response !== undefined ? {
123
+ directResponse: Object.freeze({
124
+ finalResponse: decision.response,
125
+ memoryCandidates: decision.memoryCandidates ?? Object.freeze([]),
126
+ }),
127
+ } : {}),
128
+ });
119
129
  case "blocked":
120
130
  return Object.freeze({
121
131
  action: "blocked",
@@ -25,9 +25,9 @@ export declare function projectExecutionPayloadCompactedEvidence(request: Payloa
25
25
  summary: string;
26
26
  capabilityId: string;
27
27
  callId: string;
28
- outcome: import("../orchestration/role-calls/contracts.js").RoleCapabilityExecutionOutcome;
29
- executionId: string;
30
28
  invocationAttempt: number;
29
+ executionId: string;
30
+ outcome: import("../orchestration/role-calls/contracts.js").RoleCapabilityExecutionOutcome;
31
31
  observedEffect: import("../orchestration/role-calls/contracts.js").RoleCapabilityObservedEffect;
32
32
  declaredEffect: import("../orchestration/role-calls/contracts.js").RoleCapabilityDeclaredEffect;
33
33
  references?: readonly import("../orchestration/role-calls/contracts.js").RoleCapabilityResultReference[];
@@ -1,3 +1,4 @@
1
+ import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
1
2
  import type { SuperFailureFinalization } from "./super-failure-explanation.js";
2
3
  import type { RequestModelStepPort } from "../model/model-step-port.js";
3
4
  import { type RequestExecutionSeed, type RequestModelInvocationView } from "./contracts.js";
@@ -12,5 +13,6 @@ export declare function createScopeSurface(input: Readonly<{
12
13
  modelInvocation: RequestModelInvocationView;
13
14
  modelSteps: RequestModelStepPort;
14
15
  capabilities: RequestWorkerCapabilities;
16
+ knowledgeSkillStore?: KnowledgeSkillStore;
15
17
  superFailureFinalization?: SuperFailureFinalization | undefined;
16
18
  }>): RequestExecutionScope;
@@ -34,7 +34,13 @@ export function createCapabilityCompositionView(facets, modelSteps) {
34
34
  modelSteps: enumerableGetter(() => modelSteps),
35
35
  sessionId: enumerableGetter(() => facets.identity.sessionId),
36
36
  prompt: enumerableGetter(() => facets.input.prompt),
37
+ ...(facets.input.attachments !== undefined
38
+ ? { attachments: enumerableGetter(() => facets.input.attachments) }
39
+ : {}),
37
40
  historyMessages: enumerableGetter(() => facets.session.historyMessages),
41
+ ...(facets.session.sessionMemory !== undefined
42
+ ? { sessionMemory: enumerableGetter(() => facets.session.sessionMemory) }
43
+ : {}),
38
44
  toolPermissionMode: enumerableGetter(() => facets.lifecycle.toolPermissionMode),
39
45
  ...(facets.lifecycle.toolApprovalController !== undefined
40
46
  ? {
@@ -107,6 +113,7 @@ export function createScopeSurface(input) {
107
113
  policy: hiddenValue(policy),
108
114
  modelInvocation: hiddenValue(modelInvocation),
109
115
  capabilities: hiddenValue(capabilities),
116
+ ...(input.knowledgeSkillStore ? { knowledgeSkillStore: hiddenValue(input.knowledgeSkillStore) } : {}),
110
117
  ...(input.superFailureFinalization
111
118
  ? {
112
119
  superFailureFinalization: hiddenValue(input.superFailureFinalization),