@treeseed/sdk 0.12.62 → 0.13.0-rc.10

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 (1108) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +33 -359
  3. package/dist/accounts/account-contracts.d.ts +170 -0
  4. package/dist/accounts/account-contracts.js +33 -0
  5. package/dist/agent-capacity/allocation.d.ts +186 -0
  6. package/dist/agent-capacity/allocation.js +226 -0
  7. package/dist/agent-capacity/artifact-mutation-receipt.d.ts +49 -0
  8. package/dist/agent-capacity/artifact-mutation-receipt.js +36 -0
  9. package/dist/agent-capacity/artifacts.d.ts +107 -0
  10. package/dist/agent-capacity/artifacts.js +39 -0
  11. package/dist/agent-capacity/authority/agent-authority-presets.d.ts +13 -0
  12. package/dist/agent-capacity/authority/agent-authority-presets.js +106 -0
  13. package/dist/agent-capacity/contracts/capacity/assignments/assignment-records.d.ts +269 -0
  14. package/dist/agent-capacity/contracts/capacity/assignments/assignment-records.js +10 -0
  15. package/dist/agent-capacity/contracts/capacity/communication/communication-records.d.ts +101 -0
  16. package/dist/agent-capacity/contracts/capacity/communication/communication-records.js +9 -0
  17. package/dist/agent-capacity/contracts/capacity/providers/supply-policy.d.ts +36 -0
  18. package/dist/agent-capacity/contracts/capacity/providers/supply-policy.js +4 -0
  19. package/dist/agent-capacity/contracts/capacity/workdays/workday-records.d.ts +188 -0
  20. package/dist/agent-capacity/contracts/configuration/configuration.d.ts +11 -0
  21. package/dist/agent-capacity/contracts/configuration/configuration.js +20 -0
  22. package/dist/agent-capacity/contracts/operations/research-workflow.d.ts +59 -0
  23. package/dist/agent-capacity/contracts/operations/research-workflow.js +16 -0
  24. package/dist/agent-capacity/contracts/operations/workflow-promotion.d.ts +24 -0
  25. package/dist/agent-capacity/contracts/projects/agents/project-agent-class.d.ts +37 -0
  26. package/dist/agent-capacity/contracts/runtime/runtime-observability.d.ts +335 -0
  27. package/dist/agent-capacity/contracts/support/agent-atlas.d.ts +185 -0
  28. package/dist/agent-capacity/contracts/support/agent-atlas.js +47 -0
  29. package/dist/agent-capacity/contracts/support/agent-lab-monitoring.d.ts +96 -0
  30. package/dist/agent-capacity/contracts/support/agent-lab-monitoring.js +14 -0
  31. package/dist/agent-capacity/contracts/support/authority/execution-mode.d.ts +10 -0
  32. package/dist/agent-capacity/contracts/support/authority/execution-mode.js +17 -0
  33. package/dist/agent-capacity/contracts/support/decision-work.d.ts +251 -0
  34. package/dist/agent-capacity/contracts/support/failure-records.d.ts +9 -0
  35. package/dist/agent-capacity/contracts/support/failure-records.js +0 -0
  36. package/dist/agent-capacity/contracts/support/financial-records.d.ts +124 -0
  37. package/dist/agent-capacity/contracts/support/financial-records.js +0 -0
  38. package/dist/agent-capacity/contracts/support/planning-records.d.ts +121 -0
  39. package/dist/agent-capacity/contracts/support/planning-records.js +0 -0
  40. package/dist/agent-capacity/contracts/support/research-citation.d.ts +15 -0
  41. package/dist/agent-capacity/contracts/support/research-citation.js +0 -0
  42. package/dist/agent-capacity/contracts/support/research-source-policy.d.ts +8 -0
  43. package/dist/agent-capacity/contracts/support/research-source-policy.js +0 -0
  44. package/dist/agent-capacity/contracts/support/time-capacity.d.ts +163 -0
  45. package/dist/agent-capacity/contracts/support/time-capacity.js +63 -0
  46. package/dist/agent-capacity/policy/capacity/allocations/allocation-hierarchy.d.ts +29 -0
  47. package/dist/agent-capacity/policy/capacity/allocations/allocation-hierarchy.js +110 -0
  48. package/dist/agent-capacity/validation/activity-profile.d.ts +12 -0
  49. package/dist/agent-capacity/validation/activity-profile.js +264 -0
  50. package/dist/agent-capacity/validation/agent-definition-schema.d.ts +9140 -0
  51. package/dist/agent-capacity/validation/agent-definition-schema.js +198 -0
  52. package/dist/agent-capacity/validation/agent-lab-forensics-schema.d.ts +234 -0
  53. package/dist/agent-capacity/validation/agent-lab-forensics-schema.js +104 -0
  54. package/dist/agent-capacity/validation/agent-signal.d.ts +30 -0
  55. package/dist/agent-capacity/validation/agent-signal.js +31 -0
  56. package/dist/agent-capacity/validation/allocation.d.ts +12 -0
  57. package/dist/agent-capacity/validation/allocation.js +115 -0
  58. package/dist/agent-capacity/validation/assignment-records.d.ts +16 -0
  59. package/dist/agent-capacity/validation/assignment-records.js +92 -0
  60. package/dist/agent-capacity/validation/configuration.d.ts +14 -0
  61. package/dist/agent-capacity/validation/configuration.js +23 -0
  62. package/dist/agent-capacity/validation/index.d.ts +11 -0
  63. package/dist/agent-capacity/validation/index.js +11 -0
  64. package/dist/agent-capacity/validation/proposal-type.d.ts +22 -0
  65. package/dist/agent-capacity/validation/proposal-type.js +21 -0
  66. package/dist/agent-capacity/validation/research/citation.d.ts +16 -0
  67. package/dist/agent-capacity/validation/research/citation.js +47 -0
  68. package/dist/agent-capacity/validation/research/source-policy.d.ts +11 -0
  69. package/dist/agent-capacity/validation/research/source-policy.js +26 -0
  70. package/dist/agent-capacity/validation/research/workflow.d.ts +10 -0
  71. package/dist/agent-capacity/validation/research/workflow.js +31 -0
  72. package/dist/agent-capacity/validation/workflow-promotion.d.ts +2 -0
  73. package/dist/agent-capacity/validation/workflow-promotion.js +34 -0
  74. package/dist/agent-capacity/workday.d.ts +52 -0
  75. package/dist/agent-capacity/workday.js +105 -0
  76. package/dist/ai-appliance/contracts.d.ts +90 -0
  77. package/dist/ai-appliance/contracts.js +16 -0
  78. package/dist/ai-appliance/validation.d.ts +4 -0
  79. package/dist/ai-appliance/validation.js +62 -0
  80. package/dist/capacity/agents/agent-capacity.d.ts +21 -0
  81. package/dist/capacity/agents/agent-capacity.js +20 -0
  82. package/dist/capacity/capacity-core/capacity-pagination.d.ts +18 -0
  83. package/dist/capacity/capacity-core/capacity-pagination.js +33 -0
  84. package/dist/capacity/providers/capacity-provider.d.ts +1 -0
  85. package/dist/capacity/providers/capacity-provider.js +1 -0
  86. package/dist/capacity-provider/client.d.ts +56 -0
  87. package/dist/capacity-provider/client.js +163 -0
  88. package/dist/capacity-provider/contracts/capacity-facts.d.ts +64 -0
  89. package/dist/capacity-provider/contracts/capacity-facts.js +0 -0
  90. package/dist/capacity-provider/contracts/governance.d.ts +399 -0
  91. package/dist/capacity-provider/contracts/governance.js +18 -0
  92. package/dist/capacity-provider/contracts/index.d.ts +2 -0
  93. package/dist/capacity-provider/contracts/index.js +2 -0
  94. package/dist/capacity-provider/index.d.ts +3 -0
  95. package/dist/capacity-provider/index.js +3 -0
  96. package/dist/capacity-provider/validation.d.ts +27 -0
  97. package/dist/capacity-provider/validation.js +184 -0
  98. package/dist/configuration/secrets-capability.d.ts +4 -0
  99. package/dist/configuration/secrets-capability.js +4 -0
  100. package/dist/content/contracts.d.ts +12 -0
  101. package/dist/content/contracts.js +0 -0
  102. package/dist/content/validation/agent-operational-content-schemas.d.ts +1351 -0
  103. package/dist/content/validation/agent-operational-content-schemas.js +146 -0
  104. package/dist/content/validation/auxiliary-content-schemas.d.ts +1715 -0
  105. package/dist/content/validation/auxiliary-content-schemas.js +173 -0
  106. package/dist/content/validation/content-model-schemas.d.ts +21728 -0
  107. package/dist/content/validation/content-model-schemas.js +271 -0
  108. package/dist/content/validation/index.d.ts +3 -0
  109. package/dist/content/validation/index.js +3 -0
  110. package/dist/content/validation/portable-content-data.d.ts +2101 -0
  111. package/dist/content/validation/portable-content-data.js +49 -0
  112. package/dist/entrypoints/clients/control-plane-client.d.ts +112 -0
  113. package/dist/entrypoints/clients/control-plane-client.js +180 -0
  114. package/dist/entrypoints/models/field-aliases.d.ts +11 -0
  115. package/dist/entrypoints/models/model-registry.d.ts +3 -0
  116. package/dist/entrypoints/models/model-registry.js +3 -0
  117. package/dist/entrypoints/models/sdk-fields.d.ts +11 -0
  118. package/dist/entrypoints/models/sdk-types.d.ts +10 -0
  119. package/dist/entrypoints/models/sdk-types.js +10 -0
  120. package/dist/feedback/contracts.d.ts +142 -0
  121. package/dist/feedback/contracts.js +18 -0
  122. package/dist/feedback/index.d.ts +1 -0
  123. package/dist/feedback/index.js +1 -0
  124. package/dist/governance/groups/contracts.d.ts +102 -0
  125. package/dist/governance/groups/contracts.js +6 -0
  126. package/dist/graph/context-query-contracts.d.ts +19 -1
  127. package/dist/graph/context-query-contracts.js +49 -8
  128. package/dist/knowledge/contracts.d.ts +173 -0
  129. package/dist/knowledge/contracts.js +16 -0
  130. package/dist/knowledge/index.d.ts +1 -0
  131. package/dist/knowledge/index.js +1 -0
  132. package/dist/model-registry/agent-operational-models.d.ts +4 -0
  133. package/dist/model-registry/agent-operational-models.js +38 -0
  134. package/dist/model-registry/build-builtin-model-registry.d.ts +2 -0
  135. package/dist/model-registry/build-builtin-model-registry.js +426 -0
  136. package/dist/model-registry/content-root.d.ts +9 -0
  137. package/dist/model-registry/content-root.js +33 -0
  138. package/dist/model-registry/discussion-models.d.ts +4 -0
  139. package/dist/model-registry/discussion-models.js +84 -0
  140. package/dist/model-registry/group-models.d.ts +2 -0
  141. package/dist/model-registry/group-models.js +52 -0
  142. package/dist/model-registry/knowledge-models.d.ts +2 -0
  143. package/dist/model-registry/knowledge-models.js +89 -0
  144. package/dist/model-registry/normalize-definition.d.ts +8 -0
  145. package/dist/model-registry/normalize-definition.js +69 -0
  146. package/dist/operator-contracts/canonical-command-tree.d.ts +3 -0
  147. package/dist/operator-contracts/canonical-command-tree.js +81 -0
  148. package/dist/operator-contracts/command-tree.d.ts +79 -0
  149. package/dist/operator-contracts/command-tree.js +53 -0
  150. package/dist/operator-contracts/control-plane-operation.d.ts +80 -0
  151. package/dist/operator-contracts/control-plane-operation.js +75 -0
  152. package/dist/operator-contracts/control-plane-operations.d.ts +546 -0
  153. package/dist/operator-contracts/control-plane-operations.js +352 -0
  154. package/dist/operator-contracts/index.d.ts +8 -0
  155. package/dist/operator-contracts/index.js +8 -0
  156. package/dist/operator-contracts/mcp.d.ts +78 -0
  157. package/dist/operator-contracts/mcp.js +23 -0
  158. package/dist/operator-contracts/oauth.d.ts +46 -0
  159. package/dist/operator-contracts/oauth.js +0 -0
  160. package/dist/operator-contracts/workday-lifecycle.d.ts +157 -0
  161. package/dist/operator-contracts/workday-lifecycle.js +65 -0
  162. package/dist/operator-contracts/workday-profile.d.ts +72 -0
  163. package/dist/operator-contracts/workday-profile.js +106 -0
  164. package/dist/projects/projects-core/project-workflow.d.ts +179 -0
  165. package/dist/projects/projects-core/project-workflow.js +66 -0
  166. package/dist/sdk-types/configuration/sdk-dispatch-credential-source.d.ts +201 -0
  167. package/dist/sdk-types/configuration/sdk-dispatch-credential-source.js +0 -0
  168. package/dist/sdk-types/control-plane/resource-requests.d.ts +124 -0
  169. package/dist/sdk-types/control-plane/resource-requests.js +0 -0
  170. package/dist/sdk-types/governance/commons/commons-question-input.d.ts +61 -0
  171. package/dist/sdk-types/governance/commons/commons-question-input.js +0 -0
  172. package/dist/sdk-types/support/planning-policy.d.ts +210 -0
  173. package/dist/sdk-types/support/planning-policy.js +0 -0
  174. package/dist/sdk-types/support/platform-contracts.d.ts +178 -0
  175. package/dist/sdk-types/support/platform-contracts.js +15 -0
  176. package/dist/sdk-types/support/sdk-model-names.d.ts +44 -0
  177. package/dist/sdk-types/support/sdk-model-names.js +80 -0
  178. package/dist/sdk-types/support/sdk-search-request.d.ts +182 -0
  179. package/dist/sdk-types/support/sdk-search-request.js +0 -0
  180. package/dist/sdk-types/support/task-planning.d.ts +189 -0
  181. package/dist/sdk-types/support/task-planning.js +0 -0
  182. package/dist/sdk-types/treedx/graph/sdk-graph-query-request.d.ts +157 -0
  183. package/dist/sdk-types/treedx/graph/sdk-graph-query-request.js +0 -0
  184. package/dist/secrets-capability/provider-operation-contracts.d.ts +90 -0
  185. package/dist/secrets-capability/provider-operation-contracts.js +10 -0
  186. package/dist/secrets-capability/service-provider-contracts.d.ts +92 -0
  187. package/dist/secrets-capability/service-provider-contracts.js +183 -0
  188. package/dist/secrets-capability/service-vault-contracts.d.ts +61 -0
  189. package/dist/secrets-capability/service-vault-contracts.js +39 -0
  190. package/dist/secrets-capability/workflow-operation-contracts.d.ts +95 -0
  191. package/dist/secrets-capability/workflow-operation-contracts.js +0 -0
  192. package/dist/standards/canonicalize.d.ts +10 -0
  193. package/dist/standards/canonicalize.js +43 -0
  194. package/dist/standards/compatibility-attestation.d.ts +23 -0
  195. package/dist/standards/compatibility-attestation.js +40 -0
  196. package/dist/standards/composition.d.ts +15 -0
  197. package/dist/standards/composition.js +14 -0
  198. package/dist/standards/contract-bundle.d.ts +8 -0
  199. package/dist/standards/contract-bundle.js +23 -0
  200. package/dist/standards/contracts.d.ts +39 -0
  201. package/dist/standards/contracts.js +0 -0
  202. package/dist/standards/errors.d.ts +6 -0
  203. package/dist/standards/errors.js +13 -0
  204. package/dist/standards/index.d.ts +8 -0
  205. package/dist/standards/index.js +8 -0
  206. package/dist/standards/mcp/compare.d.ts +2 -0
  207. package/dist/standards/mcp/compare.js +38 -0
  208. package/dist/standards/mcp/contracts.d.ts +34 -0
  209. package/dist/standards/mcp/contracts.js +0 -0
  210. package/dist/standards/mcp/index.d.ts +3 -0
  211. package/dist/standards/mcp/index.js +3 -0
  212. package/dist/standards/mcp/normalize.d.ts +4 -0
  213. package/dist/standards/mcp/normalize.js +30 -0
  214. package/dist/standards/openapi/compare.d.ts +2 -0
  215. package/dist/standards/openapi/compare.js +112 -0
  216. package/dist/standards/openapi/contracts.d.ts +24 -0
  217. package/dist/standards/openapi/contracts.js +0 -0
  218. package/dist/standards/openapi/index.d.ts +3 -0
  219. package/dist/standards/openapi/index.js +3 -0
  220. package/dist/standards/openapi/normalize.d.ts +2 -0
  221. package/dist/standards/openapi/normalize.js +57 -0
  222. package/dist/standards/package-manifest.d.ts +37 -0
  223. package/dist/standards/package-manifest.js +89 -0
  224. package/dist/standards/portfolio-entry.d.ts +12 -0
  225. package/dist/standards/portfolio-entry.js +11 -0
  226. package/dist/standards/typescript/compare.d.ts +2 -0
  227. package/dist/standards/typescript/compare.js +88 -0
  228. package/dist/standards/typescript/contracts.d.ts +44 -0
  229. package/dist/standards/typescript/contracts.js +0 -0
  230. package/dist/standards/typescript/extract.d.ts +10 -0
  231. package/dist/standards/typescript/extract.js +244 -0
  232. package/dist/standards/typescript/index.d.ts +3 -0
  233. package/dist/standards/typescript/index.js +3 -0
  234. package/dist/treedx/accounts/auth.d.ts +17 -0
  235. package/dist/treedx/accounts/auth.js +48 -0
  236. package/dist/treedx/client/accounts/contracts/auth-mode.d.ts +3 -0
  237. package/dist/treedx/client/accounts/contracts/auth-mode.js +6 -0
  238. package/dist/treedx/client/build/creation/build-context.d.ts +3 -0
  239. package/dist/treedx/client/build/creation/build-context.js +7 -0
  240. package/dist/treedx/client/build/creation/build-snapshot.d.ts +3 -0
  241. package/dist/treedx/client/build/creation/build-snapshot.js +8 -0
  242. package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.d.ts +3 -0
  243. package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.js +7 -0
  244. package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.d.ts +6 -0
  245. package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.js +10 -0
  246. package/dist/treedx/client/methods.d.ts +102 -0
  247. package/dist/treedx/client/methods.js +209 -0
  248. package/dist/treedx/client/persistence/contracts/restore-storage.d.ts +3 -0
  249. package/dist/treedx/client/persistence/contracts/restore-storage.js +6 -0
  250. package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.d.ts +3 -0
  251. package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.js +6 -0
  252. package/dist/treedx/client/repositories/creation/register-repository.d.ts +3 -0
  253. package/dist/treedx/client/repositories/creation/register-repository.js +7 -0
  254. package/dist/treedx/client/repositories/queries/get-repository.d.ts +3 -0
  255. package/dist/treedx/client/repositories/queries/get-repository.js +7 -0
  256. package/dist/treedx/client/repositories/queries/list-repository-paths.d.ts +3 -0
  257. package/dist/treedx/client/repositories/queries/list-repository-paths.js +7 -0
  258. package/dist/treedx/client/repositories/queries/list-repository-refs.d.ts +3 -0
  259. package/dist/treedx/client/repositories/queries/list-repository-refs.js +12 -0
  260. package/dist/treedx/client/repositories/queries/query-repository.d.ts +3 -0
  261. package/dist/treedx/client/repositories/queries/query-repository.js +7 -0
  262. package/dist/treedx/client/repositories/queries/read-repository-file.d.ts +3 -0
  263. package/dist/treedx/client/repositories/queries/read-repository-file.js +6 -0
  264. package/dist/treedx/client/repositories/queries/read-repository-files.d.ts +3 -0
  265. package/dist/treedx/client/repositories/queries/read-repository-files.js +7 -0
  266. package/dist/treedx/client/repositories/queries/search-repository-files.d.ts +3 -0
  267. package/dist/treedx/client/repositories/queries/search-repository-files.js +7 -0
  268. package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.d.ts +3 -0
  269. package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.js +9 -0
  270. package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.d.ts +3 -0
  271. package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.js +6 -0
  272. package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.d.ts +3 -0
  273. package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.js +7 -0
  274. package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.d.ts +5 -0
  275. package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.js +7 -0
  276. package/dist/treedx/client/support/contracts/treedx/health/contracts/health.d.ts +3 -0
  277. package/dist/treedx/client/support/contracts/treedx/health/contracts/health.js +6 -0
  278. package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.d.ts +3 -0
  279. package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.js +7 -0
  280. package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.d.ts +2 -0
  281. package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.js +19 -0
  282. package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.d.ts +3 -0
  283. package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.js +7 -0
  284. package/dist/treedx/client/support/contracts/treedx/health/contracts/status.d.ts +3 -0
  285. package/dist/treedx/client/support/contracts/treedx/health/contracts/status.js +6 -0
  286. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.d.ts +3 -0
  287. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.js +7 -0
  288. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.d.ts +3 -0
  289. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.js +6 -0
  290. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.d.ts +3 -0
  291. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.js +7 -0
  292. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.d.ts +6 -0
  293. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.js +23 -0
  294. package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.d.ts +3 -0
  295. package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.js +8 -0
  296. package/dist/treedx/client/support/contracts/treedx/search/contracts/search.d.ts +3 -0
  297. package/dist/treedx/client/support/contracts/treedx/search/contracts/search.js +7 -0
  298. package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.d.ts +3 -0
  299. package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.js +8 -0
  300. package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.d.ts +3 -0
  301. package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.js +8 -0
  302. package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.d.ts +2 -0
  303. package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.js +15 -0
  304. package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.d.ts +2 -0
  305. package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.js +38 -0
  306. package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.d.ts +2 -0
  307. package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.js +15 -0
  308. package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.d.ts +2 -0
  309. package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.js +15 -0
  310. package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.d.ts +2 -0
  311. package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.js +14 -0
  312. package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.d.ts +2 -0
  313. package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.js +14 -0
  314. package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.d.ts +6 -0
  315. package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.js +41 -0
  316. package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.d.ts +2 -0
  317. package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.js +14 -0
  318. package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.d.ts +3 -0
  319. package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.js +7 -0
  320. package/dist/treedx/client/support/creation/apply-changeset.d.ts +3 -0
  321. package/dist/treedx/client/support/creation/apply-changeset.js +10 -0
  322. package/dist/treedx/client/support/creation/apply-storage-migration.d.ts +3 -0
  323. package/dist/treedx/client/support/creation/apply-storage-migration.js +7 -0
  324. package/dist/treedx/client/support/creation/create-migration.d.ts +6 -0
  325. package/dist/treedx/client/support/creation/create-migration.js +7 -0
  326. package/dist/treedx/client/support/creation/export-artifact.d.ts +3 -0
  327. package/dist/treedx/client/support/creation/export-artifact.js +8 -0
  328. package/dist/treedx/client/support/creation/plan-storage-migration.d.ts +3 -0
  329. package/dist/treedx/client/support/creation/plan-storage-migration.js +7 -0
  330. package/dist/treedx/client/support/creation/request-binary.d.ts +6 -0
  331. package/dist/treedx/client/support/creation/request-binary.js +42 -0
  332. package/dist/treedx/client/support/creation/write-file.d.ts +3 -0
  333. package/dist/treedx/client/support/creation/write-file.js +10 -0
  334. package/dist/treedx/client/support/creation/write-files.d.ts +3 -0
  335. package/dist/treedx/client/support/creation/write-files.js +12 -0
  336. package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.d.ts +3 -0
  337. package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.js +7 -0
  338. package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.d.ts +3 -0
  339. package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.js +7 -0
  340. package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.d.ts +3 -0
  341. package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.js +9 -0
  342. package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.d.ts +4 -0
  343. package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.js +6 -0
  344. package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.d.ts +3 -0
  345. package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.js +7 -0
  346. package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.d.ts +3 -0
  347. package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.js +7 -0
  348. package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.d.ts +3 -0
  349. package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.js +7 -0
  350. package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.d.ts +3 -0
  351. package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.js +7 -0
  352. package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.d.ts +3 -0
  353. package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.js +10 -0
  354. package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.d.ts +3 -0
  355. package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.js +9 -0
  356. package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.d.ts +3 -0
  357. package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.js +7 -0
  358. package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.d.ts +6 -0
  359. package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.js +7 -0
  360. package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.d.ts +6 -0
  361. package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.js +7 -0
  362. package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.d.ts +6 -0
  363. package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.js +6 -0
  364. package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.d.ts +15 -0
  365. package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.js +6 -0
  366. package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.d.ts +3 -0
  367. package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.js +7 -0
  368. package/dist/treedx/client/support/retirement/cleanup-artifacts.d.ts +3 -0
  369. package/dist/treedx/client/support/retirement/cleanup-artifacts.js +7 -0
  370. package/dist/treedx/client/support/retirement/delete-artifact.d.ts +3 -0
  371. package/dist/treedx/client/support/retirement/delete-artifact.js +7 -0
  372. package/dist/treedx/client/support/retirement/delete-file.d.ts +3 -0
  373. package/dist/treedx/client/support/retirement/delete-file.js +10 -0
  374. package/dist/treedx/client/support/retirement/rollback-storage-migration.d.ts +3 -0
  375. package/dist/treedx/client/support/retirement/rollback-storage-migration.js +7 -0
  376. package/dist/treedx/client/support/updates/patch-file.d.ts +3 -0
  377. package/dist/treedx/client/support/updates/patch-file.js +10 -0
  378. package/dist/treedx/client/support/updates/refresh-search-index.d.ts +3 -0
  379. package/dist/treedx/client/support/updates/refresh-search-index.js +8 -0
  380. package/dist/treedx/client/treedx/blobs/contracts/download-blob.d.ts +3 -0
  381. package/dist/treedx/client/treedx/blobs/contracts/download-blob.js +6 -0
  382. package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.d.ts +3 -0
  383. package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.js +8 -0
  384. package/dist/treedx/client/treedx/blobs/creation/request-blob-download.d.ts +3 -0
  385. package/dist/treedx/client/treedx/blobs/creation/request-blob-download.js +27 -0
  386. package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.d.ts +3 -0
  387. package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.js +41 -0
  388. package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.d.ts +3 -0
  389. package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.js +27 -0
  390. package/dist/treedx/client/treedx/blobs/creation/upload-blob.d.ts +3 -0
  391. package/dist/treedx/client/treedx/blobs/creation/upload-blob.js +6 -0
  392. package/dist/treedx/client/treedx/blobs/creation/write-blob.d.ts +3 -0
  393. package/dist/treedx/client/treedx/blobs/creation/write-blob.js +8 -0
  394. package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.d.ts +3 -0
  395. package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.js +8 -0
  396. package/dist/treedx/client/treedx/blobs/queries/read-blob.d.ts +3 -0
  397. package/dist/treedx/client/treedx/blobs/queries/read-blob.js +10 -0
  398. package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.d.ts +3 -0
  399. package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.js +7 -0
  400. package/dist/treedx/client/treedx/blobs/retirement/delete-blob.d.ts +3 -0
  401. package/dist/treedx/client/treedx/blobs/retirement/delete-blob.js +8 -0
  402. package/dist/treedx/client/treedx/federation/contracts/federated-query.d.ts +3 -0
  403. package/dist/treedx/client/treedx/federation/contracts/federated-query.js +7 -0
  404. package/dist/treedx/client/treedx/federation/creation/plan-federated-query.d.ts +3 -0
  405. package/dist/treedx/client/treedx/federation/creation/plan-federated-query.js +6 -0
  406. package/dist/treedx/client/treedx/federation/queries/check-mirror-health.d.ts +3 -0
  407. package/dist/treedx/client/treedx/federation/queries/check-mirror-health.js +7 -0
  408. package/dist/treedx/client/treedx/federation/updates/promote-mirror.d.ts +3 -0
  409. package/dist/treedx/client/treedx/federation/updates/promote-mirror.js +7 -0
  410. package/dist/treedx/client/treedx/federation/updates/sync-mirror.d.ts +3 -0
  411. package/dist/treedx/client/treedx/federation/updates/sync-mirror.js +7 -0
  412. package/dist/treedx/client/treedx/graph/contracts/federated-context.d.ts +3 -0
  413. package/dist/treedx/client/treedx/graph/contracts/federated-context.js +7 -0
  414. package/dist/treedx/client/treedx/graph/contracts/federated-graph.d.ts +3 -0
  415. package/dist/treedx/client/treedx/graph/contracts/federated-graph.js +7 -0
  416. package/dist/treedx/client/treedx/graph/contracts/graph-search.d.ts +3 -0
  417. package/dist/treedx/client/treedx/graph/contracts/graph-search.js +8 -0
  418. package/dist/treedx/client/treedx/graph/queries/get-graph-node.d.ts +3 -0
  419. package/dist/treedx/client/treedx/graph/queries/get-graph-node.js +10 -0
  420. package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.d.ts +3 -0
  421. package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.js +7 -0
  422. package/dist/treedx/client/treedx/graph/queries/get-subgraph.d.ts +3 -0
  423. package/dist/treedx/client/treedx/graph/queries/get-subgraph.js +7 -0
  424. package/dist/treedx/client/treedx/graph/queries/query-graph.d.ts +3 -0
  425. package/dist/treedx/client/treedx/graph/queries/query-graph.js +7 -0
  426. package/dist/treedx/client/treedx/graph/queries/search-graph-entities.d.ts +3 -0
  427. package/dist/treedx/client/treedx/graph/queries/search-graph-entities.js +6 -0
  428. package/dist/treedx/client/treedx/graph/queries/search-graph-files.d.ts +3 -0
  429. package/dist/treedx/client/treedx/graph/queries/search-graph-files.js +6 -0
  430. package/dist/treedx/client/treedx/graph/queries/search-graph-sections.d.ts +3 -0
  431. package/dist/treedx/client/treedx/graph/queries/search-graph-sections.js +6 -0
  432. package/dist/treedx/client/treedx/graph/updates/refresh-graph.d.ts +3 -0
  433. package/dist/treedx/client/treedx/graph/updates/refresh-graph.js +7 -0
  434. package/dist/treedx/client/treedx/search/contracts/federated-search.d.ts +3 -0
  435. package/dist/treedx/client/treedx/search/contracts/federated-search.js +7 -0
  436. package/dist/treedx/client/treedx/workspaces/creation/create-workspace.d.ts +3 -0
  437. package/dist/treedx/client/treedx/workspaces/creation/create-workspace.js +7 -0
  438. package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.d.ts +3 -0
  439. package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.js +12 -0
  440. package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.d.ts +2 -0
  441. package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.js +6 -0
  442. package/dist/treedx/generated/openapi-types.d.ts +104 -0
  443. package/dist/treedx/support/client.d.ts +251 -0
  444. package/dist/treedx/support/client.js +252 -0
  445. package/dist/treedx/support/errors.d.ts +13 -0
  446. package/dist/treedx/types/tree-dx-actor.d.ts +209 -0
  447. package/dist/treedx/types/tree-dx-actor.js +8 -0
  448. package/dist/treedx/types/tree-dx-artifact-list-response.d.ts +13 -0
  449. package/dist/treedx/types/tree-dx-artifact-list-response.js +0 -0
  450. package/dist/treedx/types/tree-dx-changeset.d.ts +51 -0
  451. package/dist/treedx/types/tree-dx-changeset.js +6 -0
  452. package/dist/treedx/types/tree-dx-context-request.d.ts +245 -0
  453. package/dist/treedx/types/tree-dx-context-request.js +0 -0
  454. package/dist/treedx/types/tree-dx-exec-result.d.ts +249 -0
  455. package/dist/treedx/types/tree-dx-exec-result.js +0 -0
  456. package/dist/treedx/types/tree-dx-list-tree-request.d.ts +222 -0
  457. package/dist/treedx/types/tree-dx-list-tree-request.js +0 -0
  458. package/dist/treedx/types/tree-dx-push-request.d.ts +229 -0
  459. package/dist/treedx/types/tree-dx-push-request.js +0 -0
  460. package/dist/treedx/types.d.ts +7 -1084
  461. package/dist/treedx/types.js +7 -8
  462. package/dist/types/agents/agent-activity-profile.d.ts +267 -0
  463. package/dist/types/agents/agent-activity-profile.js +0 -0
  464. package/dist/types/agents/agent-trigger-kinds.d.ts +189 -0
  465. package/dist/types/agents/agent-trigger-kinds.js +107 -0
  466. package/dist/types/agents/execution-run-ref.d.ts +136 -0
  467. package/dist/types/agents/execution-run-ref.js +0 -0
  468. package/dist/types/agents.d.ts +3 -493
  469. package/dist/types/agents.js +3 -95
  470. package/package.json +77 -362
  471. package/dist/agent-capacity.d.ts +0 -1100
  472. package/dist/agent-capacity.js +0 -1822
  473. package/dist/agent-tools.d.ts +0 -37
  474. package/dist/agent-tools.js +0 -301
  475. package/dist/api/app.d.ts +0 -8
  476. package/dist/api/app.js +0 -404
  477. package/dist/api/auth/d1-database.d.ts +0 -3
  478. package/dist/api/auth/d1-database.js +0 -20
  479. package/dist/api/auth/d1-provider.d.ts +0 -85
  480. package/dist/api/auth/d1-provider.js +0 -95
  481. package/dist/api/auth/d1-store.d.ts +0 -121
  482. package/dist/api/auth/d1-store.js +0 -990
  483. package/dist/api/auth/memory-provider.d.ts +0 -82
  484. package/dist/api/auth/memory-provider.js +0 -297
  485. package/dist/api/auth/rbac.d.ts +0 -22
  486. package/dist/api/auth/rbac.js +0 -162
  487. package/dist/api/auth/tokens.d.ts +0 -18
  488. package/dist/api/auth/tokens.js +0 -56
  489. package/dist/api/config.d.ts +0 -4
  490. package/dist/api/config.js +0 -149
  491. package/dist/api/http.d.ts +0 -28
  492. package/dist/api/http.js +0 -51
  493. package/dist/api/index.d.ts +0 -10
  494. package/dist/api/index.js +0 -29
  495. package/dist/api/operations-routes.d.ts +0 -11
  496. package/dist/api/operations-routes.js +0 -39
  497. package/dist/api/operations.d.ts +0 -3
  498. package/dist/api/operations.js +0 -26
  499. package/dist/api/providers.d.ts +0 -2
  500. package/dist/api/providers.js +0 -85
  501. package/dist/api/railway.d.ts +0 -53
  502. package/dist/api/railway.js +0 -71
  503. package/dist/api/sdk-dispatch.d.ts +0 -6
  504. package/dist/api/sdk-dispatch.js +0 -14
  505. package/dist/api/sdk-routes.d.ts +0 -11
  506. package/dist/api/sdk-routes.js +0 -29
  507. package/dist/api/templates.d.ts +0 -3
  508. package/dist/api/templates.js +0 -31
  509. package/dist/api/types.d.ts +0 -238
  510. package/dist/capacity-provider.d.ts +0 -494
  511. package/dist/capacity-provider.js +0 -727
  512. package/dist/capacity.d.ts +0 -483
  513. package/dist/capacity.js +0 -2331
  514. package/dist/cli-tools.d.ts +0 -3
  515. package/dist/cli-tools.js +0 -46
  516. package/dist/content-operations.d.ts +0 -97
  517. package/dist/content-operations.js +0 -250
  518. package/dist/content-store.d.ts +0 -25
  519. package/dist/content-store.js +0 -269
  520. package/dist/control-plane-client.d.ts +0 -203
  521. package/dist/control-plane-client.js +0 -540
  522. package/dist/control-plane.d.ts +0 -101
  523. package/dist/control-plane.js +0 -201
  524. package/dist/copilot.d.ts +0 -18
  525. package/dist/copilot.js +0 -90
  526. package/dist/d1-http.d.ts +0 -38
  527. package/dist/d1-http.js +0 -95
  528. package/dist/d1-store.d.ts +0 -336
  529. package/dist/d1-store.js +0 -1431
  530. package/dist/db/d1.d.ts +0 -246
  531. package/dist/db/d1.js +0 -8
  532. package/dist/db/index.d.ts +0 -3
  533. package/dist/db/index.js +0 -3
  534. package/dist/db/market-schema.d.ts +0 -83651
  535. package/dist/db/market-schema.js +0 -3725
  536. package/dist/db/node-sqlite.d.ts +0 -297
  537. package/dist/db/node-sqlite.js +0 -133
  538. package/dist/db/schema.d.ts +0 -483
  539. package/dist/db/schema.js +0 -29
  540. package/dist/dispatch.d.ts +0 -4
  541. package/dist/dispatch.js +0 -174
  542. package/dist/field-aliases.d.ts +0 -11
  543. package/dist/fixture-support.d.ts +0 -24
  544. package/dist/fixture-support.js +0 -385
  545. package/dist/frontmatter.d.ts +0 -6
  546. package/dist/frontmatter.js +0 -33
  547. package/dist/git-runtime.d.ts +0 -16
  548. package/dist/git-runtime.js +0 -69
  549. package/dist/governance.d.ts +0 -133
  550. package/dist/governance.js +0 -285
  551. package/dist/graph/build.d.ts +0 -19
  552. package/dist/graph/build.js +0 -949
  553. package/dist/graph/dsl.d.ts +0 -2
  554. package/dist/graph/dsl.js +0 -243
  555. package/dist/graph/query.d.ts +0 -47
  556. package/dist/graph/query.js +0 -447
  557. package/dist/graph/ranking.d.ts +0 -3
  558. package/dist/graph/ranking.js +0 -483
  559. package/dist/graph/schema.d.ts +0 -142
  560. package/dist/graph/schema.js +0 -137
  561. package/dist/graph.d.ts +0 -52
  562. package/dist/graph.js +0 -133
  563. package/dist/guarantees/index.d.ts +0 -512
  564. package/dist/guarantees/index.js +0 -1782
  565. package/dist/hosting/apps.d.ts +0 -12
  566. package/dist/hosting/apps.js +0 -107
  567. package/dist/hosting/builtins.d.ts +0 -25
  568. package/dist/hosting/builtins.js +0 -685
  569. package/dist/hosting/contracts.d.ts +0 -190
  570. package/dist/hosting/graph.d.ts +0 -110
  571. package/dist/hosting/graph.js +0 -993
  572. package/dist/hosting/index.d.ts +0 -4
  573. package/dist/hosting/index.js +0 -4
  574. package/dist/index.d.ts +0 -88
  575. package/dist/index.js +0 -757
  576. package/dist/local-dev/managed-dev.d.ts +0 -85
  577. package/dist/local-dev/managed-dev.js +0 -431
  578. package/dist/managed-dependencies.d.ts +0 -91
  579. package/dist/managed-dependencies.js +0 -1186
  580. package/dist/market-client.d.ts +0 -831
  581. package/dist/market-client.js +0 -1219
  582. package/dist/model-registry.d.ts +0 -8
  583. package/dist/model-registry.js +0 -674
  584. package/dist/operations/agent-tools.d.ts +0 -105
  585. package/dist/operations/agent-tools.js +0 -171
  586. package/dist/operations/providers/default.d.ts +0 -10
  587. package/dist/operations/providers/default.js +0 -1245
  588. package/dist/operations/repository-operations.d.ts +0 -158
  589. package/dist/operations/repository-operations.js +0 -851
  590. package/dist/operations/runtime.d.ts +0 -7
  591. package/dist/operations/runtime.js +0 -61
  592. package/dist/operations/services/bootstrap-runner.d.ts +0 -39
  593. package/dist/operations/services/bootstrap-runner.js +0 -191
  594. package/dist/operations/services/build-warning-policy.d.ts +0 -34
  595. package/dist/operations/services/build-warning-policy.js +0 -91
  596. package/dist/operations/services/commit-message-provider.d.ts +0 -65
  597. package/dist/operations/services/commit-message-provider.js +0 -496
  598. package/dist/operations/services/config-runtime.d.ts +0 -558
  599. package/dist/operations/services/config-runtime.js +0 -3494
  600. package/dist/operations/services/d1-migration.d.ts +0 -6
  601. package/dist/operations/services/d1-migration.js +0 -120
  602. package/dist/operations/services/deploy.d.ts +0 -645
  603. package/dist/operations/services/deploy.js +0 -3826
  604. package/dist/operations/services/deployment-readiness.d.ts +0 -30
  605. package/dist/operations/services/deployment-readiness.js +0 -217
  606. package/dist/operations/services/export-runtime.d.ts +0 -18
  607. package/dist/operations/services/export-runtime.js +0 -140
  608. package/dist/operations/services/git-remote-policy.d.ts +0 -9
  609. package/dist/operations/services/git-remote-policy.js +0 -63
  610. package/dist/operations/services/git-runner.d.ts +0 -68
  611. package/dist/operations/services/git-runner.js +0 -500
  612. package/dist/operations/services/git-workflow.d.ts +0 -255
  613. package/dist/operations/services/git-workflow.js +0 -845
  614. package/dist/operations/services/github-actions-verification.d.ts +0 -148
  615. package/dist/operations/services/github-actions-verification.js +0 -589
  616. package/dist/operations/services/github-api.d.ts +0 -279
  617. package/dist/operations/services/github-api.js +0 -936
  618. package/dist/operations/services/github-automation.d.ts +0 -230
  619. package/dist/operations/services/github-automation.js +0 -520
  620. package/dist/operations/services/github-credentials.d.ts +0 -13
  621. package/dist/operations/services/github-credentials.js +0 -59
  622. package/dist/operations/services/hosted-service-checks.d.ts +0 -82
  623. package/dist/operations/services/hosted-service-checks.js +0 -527
  624. package/dist/operations/services/hosting-audit.d.ts +0 -69
  625. package/dist/operations/services/hosting-audit.js +0 -638
  626. package/dist/operations/services/hub-launch.d.ts +0 -182
  627. package/dist/operations/services/hub-launch.js +0 -309
  628. package/dist/operations/services/hub-provider-launch.d.ts +0 -160
  629. package/dist/operations/services/hub-provider-launch.js +0 -1056
  630. package/dist/operations/services/key-agent.d.ts +0 -137
  631. package/dist/operations/services/key-agent.js +0 -641
  632. package/dist/operations/services/live-hosted-service-checks.d.ts +0 -30
  633. package/dist/operations/services/live-hosted-service-checks.js +0 -611
  634. package/dist/operations/services/local-cleanup.d.ts +0 -30
  635. package/dist/operations/services/local-cleanup.js +0 -77
  636. package/dist/operations/services/local-dev.d.ts +0 -8
  637. package/dist/operations/services/local-dev.js +0 -97
  638. package/dist/operations/services/managed-host-security.d.ts +0 -13
  639. package/dist/operations/services/managed-host-security.js +0 -56
  640. package/dist/operations/services/managed-repositories.d.ts +0 -37
  641. package/dist/operations/services/managed-repositories.js +0 -177
  642. package/dist/operations/services/market-packaging.d.ts +0 -59
  643. package/dist/operations/services/market-packaging.js +0 -234
  644. package/dist/operations/services/operations-runner-smoke.d.ts +0 -31
  645. package/dist/operations/services/operations-runner-smoke.js +0 -212
  646. package/dist/operations/services/package-adapters.d.ts +0 -184
  647. package/dist/operations/services/package-adapters.js +0 -912
  648. package/dist/operations/services/package-artifacts.d.ts +0 -37
  649. package/dist/operations/services/package-artifacts.js +0 -99
  650. package/dist/operations/services/package-reference-policy.d.ts +0 -64
  651. package/dist/operations/services/package-reference-policy.js +0 -364
  652. package/dist/operations/services/project-host-operations.d.ts +0 -153
  653. package/dist/operations/services/project-host-operations.js +0 -365
  654. package/dist/operations/services/project-platform.d.ts +0 -727
  655. package/dist/operations/services/project-platform.js +0 -1603
  656. package/dist/operations/services/project-web-monitor.d.ts +0 -15
  657. package/dist/operations/services/project-web-monitor.js +0 -377
  658. package/dist/operations/services/railway-api.d.ts +0 -494
  659. package/dist/operations/services/railway-api.js +0 -1874
  660. package/dist/operations/services/railway-cli.d.ts +0 -47
  661. package/dist/operations/services/railway-cli.js +0 -142
  662. package/dist/operations/services/railway-deploy.d.ts +0 -161
  663. package/dist/operations/services/railway-deploy.js +0 -1808
  664. package/dist/operations/services/railway-source-policy.d.ts +0 -25
  665. package/dist/operations/services/railway-source-policy.js +0 -111
  666. package/dist/operations/services/release-history.d.ts +0 -59
  667. package/dist/operations/services/release-history.js +0 -158
  668. package/dist/operations/services/release-proof-ledger.d.ts +0 -13
  669. package/dist/operations/services/release-proof-ledger.js +0 -81
  670. package/dist/operations/services/release-proof-planner.d.ts +0 -48
  671. package/dist/operations/services/release-proof-planner.js +0 -195
  672. package/dist/operations/services/release-proof-runner.d.ts +0 -16
  673. package/dist/operations/services/release-proof-runner.js +0 -169
  674. package/dist/operations/services/release-proof.d.ts +0 -81
  675. package/dist/operations/services/release-proof.js +0 -79
  676. package/dist/operations/services/repository-save-orchestrator.d.ts +0 -193
  677. package/dist/operations/services/repository-save-orchestrator.js +0 -2110
  678. package/dist/operations/services/runtime-paths.d.ts +0 -19
  679. package/dist/operations/services/runtime-paths.js +0 -54
  680. package/dist/operations/services/runtime-tools.d.ts +0 -35
  681. package/dist/operations/services/runtime-tools.js +0 -212
  682. package/dist/operations/services/save-deploy-preflight.d.ts +0 -32
  683. package/dist/operations/services/save-deploy-preflight.js +0 -82
  684. package/dist/operations/services/template-host-bindings.d.ts +0 -68
  685. package/dist/operations/services/template-host-bindings.js +0 -401
  686. package/dist/operations/services/template-registry.d.ts +0 -110
  687. package/dist/operations/services/template-registry.js +0 -595
  688. package/dist/operations/services/template-secret-sync.d.ts +0 -97
  689. package/dist/operations/services/template-secret-sync.js +0 -292
  690. package/dist/operations/services/verification-cache.d.ts +0 -25
  691. package/dist/operations/services/verification-cache.js +0 -71
  692. package/dist/operations/services/watch-dev.d.ts +0 -21
  693. package/dist/operations/services/watch-dev.js +0 -282
  694. package/dist/operations/services/workflow-timing.d.ts +0 -25
  695. package/dist/operations/services/workflow-timing.js +0 -79
  696. package/dist/operations/services/workspace-dependency-mode.d.ts +0 -74
  697. package/dist/operations/services/workspace-dependency-mode.js +0 -478
  698. package/dist/operations/services/workspace-preflight.d.ts +0 -40
  699. package/dist/operations/services/workspace-preflight.js +0 -172
  700. package/dist/operations/services/workspace-save-script.d.ts +0 -26
  701. package/dist/operations/services/workspace-save-script.js +0 -50
  702. package/dist/operations/services/workspace-save.d.ts +0 -76
  703. package/dist/operations/services/workspace-save.js +0 -453
  704. package/dist/operations/services/workspace-tools.d.ts +0 -17
  705. package/dist/operations/services/workspace-tools.js +0 -320
  706. package/dist/operations-registry.d.ts +0 -5
  707. package/dist/operations-registry.js +0 -98
  708. package/dist/operations-types.d.ts +0 -75
  709. package/dist/operations-types.js +0 -17
  710. package/dist/operations.d.ts +0 -17
  711. package/dist/operations.js +0 -114
  712. package/dist/platform/book-export.d.ts +0 -78
  713. package/dist/platform/book-export.js +0 -451
  714. package/dist/platform/books-data.d.ts +0 -28
  715. package/dist/platform/books-data.js +0 -111
  716. package/dist/platform/config.d.ts +0 -27
  717. package/dist/platform/config.js +0 -100
  718. package/dist/platform/content-runtime-source.d.ts +0 -54
  719. package/dist/platform/content-runtime-source.js +0 -169
  720. package/dist/platform/contracts.d.ts +0 -361
  721. package/dist/platform/deploy-config.d.ts +0 -17
  722. package/dist/platform/deploy-config.js +0 -731
  723. package/dist/platform/deploy-runtime.d.ts +0 -22
  724. package/dist/platform/deploy-runtime.js +0 -93
  725. package/dist/platform/desired-state.d.ts +0 -66
  726. package/dist/platform/desired-state.js +0 -1071
  727. package/dist/platform/env.yaml +0 -1126
  728. package/dist/platform/environment.d.ts +0 -159
  729. package/dist/platform/environment.js +0 -778
  730. package/dist/platform/local-content-materialization.d.ts +0 -9
  731. package/dist/platform/local-content-materialization.js +0 -212
  732. package/dist/platform/plugin.d.ts +0 -103
  733. package/dist/platform/plugin.js +0 -6
  734. package/dist/platform/plugins/constants.d.ts +0 -26
  735. package/dist/platform/plugins/constants.js +0 -33
  736. package/dist/platform/plugins/runtime.d.ts +0 -41
  737. package/dist/platform/plugins/runtime.js +0 -257
  738. package/dist/platform/plugins.d.ts +0 -6
  739. package/dist/platform/plugins.js +0 -42
  740. package/dist/platform/published-content-pipeline.d.ts +0 -84
  741. package/dist/platform/published-content-pipeline.js +0 -547
  742. package/dist/platform/published-content.d.ts +0 -224
  743. package/dist/platform/published-content.js +0 -611
  744. package/dist/platform/site-config-schema.d.ts +0 -1
  745. package/dist/platform/site-config-schema.js +0 -4
  746. package/dist/platform/tenant/runtime-config.d.ts +0 -154
  747. package/dist/platform/tenant/runtime-config.js +0 -69
  748. package/dist/platform/tenant-config.d.ts +0 -8
  749. package/dist/platform/tenant-config.js +0 -207
  750. package/dist/platform/utils/site-config-schema.d.ts +0 -154
  751. package/dist/platform/utils/site-config-schema.js +0 -450
  752. package/dist/platform-operation-store.d.ts +0 -94
  753. package/dist/platform-operation-store.js +0 -531
  754. package/dist/platform-operations.d.ts +0 -273
  755. package/dist/platform-operations.js +0 -440
  756. package/dist/plugin-default.d.ts +0 -28
  757. package/dist/plugin-default.js +0 -55
  758. package/dist/project-import.d.ts +0 -91
  759. package/dist/project-import.js +0 -257
  760. package/dist/project-workflow.d.ts +0 -233
  761. package/dist/project-workflow.js +0 -82
  762. package/dist/reconcile/bootstrap-systems.d.ts +0 -32
  763. package/dist/reconcile/bootstrap-systems.js +0 -175
  764. package/dist/reconcile/builtin-adapters.d.ts +0 -9
  765. package/dist/reconcile/builtin-adapters.js +0 -5545
  766. package/dist/reconcile/contracts.d.ts +0 -172
  767. package/dist/reconcile/desired-state.d.ts +0 -10
  768. package/dist/reconcile/desired-state.js +0 -322
  769. package/dist/reconcile/engine.d.ts +0 -118
  770. package/dist/reconcile/engine.js +0 -645
  771. package/dist/reconcile/errors.d.ts +0 -5
  772. package/dist/reconcile/errors.js +0 -13
  773. package/dist/reconcile/index.d.ts +0 -10
  774. package/dist/reconcile/index.js +0 -10
  775. package/dist/reconcile/live-acceptance.d.ts +0 -100
  776. package/dist/reconcile/live-acceptance.js +0 -2018
  777. package/dist/reconcile/platform.d.ts +0 -104
  778. package/dist/reconcile/platform.js +0 -100
  779. package/dist/reconcile/providers/docker-private.d.ts +0 -54
  780. package/dist/reconcile/providers/docker-private.js +0 -101
  781. package/dist/reconcile/providers/github-private.d.ts +0 -69
  782. package/dist/reconcile/providers/github-private.js +0 -145
  783. package/dist/reconcile/providers/local-private.d.ts +0 -28
  784. package/dist/reconcile/providers/local-private.js +0 -75
  785. package/dist/reconcile/providers/railway-iac.d.ts +0 -220
  786. package/dist/reconcile/providers/railway-iac.js +0 -621
  787. package/dist/reconcile/providers/release-private.d.ts +0 -89
  788. package/dist/reconcile/providers/release-private.js +0 -140
  789. package/dist/reconcile/registry.d.ts +0 -7
  790. package/dist/reconcile/registry.js +0 -79
  791. package/dist/reconcile/state.d.ts +0 -7
  792. package/dist/reconcile/state.js +0 -270
  793. package/dist/reconcile/units.d.ts +0 -6
  794. package/dist/reconcile/units.js +0 -72
  795. package/dist/remote.d.ts +0 -244
  796. package/dist/remote.js +0 -284
  797. package/dist/scenes/artifacts.d.ts +0 -16
  798. package/dist/scenes/artifacts.js +0 -61
  799. package/dist/scenes/auth.d.ts +0 -2
  800. package/dist/scenes/auth.js +0 -28
  801. package/dist/scenes/base-url.d.ts +0 -12
  802. package/dist/scenes/base-url.js +0 -123
  803. package/dist/scenes/builtin-plugins.d.ts +0 -2
  804. package/dist/scenes/builtin-plugins.js +0 -499
  805. package/dist/scenes/checkpoints.d.ts +0 -14
  806. package/dist/scenes/checkpoints.js +0 -33
  807. package/dist/scenes/device-matrix.d.ts +0 -2
  808. package/dist/scenes/device-matrix.js +0 -100
  809. package/dist/scenes/devices.d.ts +0 -11
  810. package/dist/scenes/devices.js +0 -40
  811. package/dist/scenes/diagnostics.d.ts +0 -5
  812. package/dist/scenes/diagnostics.js +0 -22
  813. package/dist/scenes/diagram-providers.d.ts +0 -2
  814. package/dist/scenes/diagram-providers.js +0 -181
  815. package/dist/scenes/diagram-validation.d.ts +0 -22
  816. package/dist/scenes/diagram-validation.js +0 -74
  817. package/dist/scenes/environment.d.ts +0 -2
  818. package/dist/scenes/environment.js +0 -65
  819. package/dist/scenes/evidence-bundle.d.ts +0 -5
  820. package/dist/scenes/evidence-bundle.js +0 -42
  821. package/dist/scenes/evidence-report.d.ts +0 -10
  822. package/dist/scenes/evidence-report.js +0 -73
  823. package/dist/scenes/evidence.d.ts +0 -16
  824. package/dist/scenes/evidence.js +0 -277
  825. package/dist/scenes/index.d.ts +0 -48
  826. package/dist/scenes/index.js +0 -312
  827. package/dist/scenes/inspect.d.ts +0 -9
  828. package/dist/scenes/inspect.js +0 -64
  829. package/dist/scenes/loader.d.ts +0 -3
  830. package/dist/scenes/loader.js +0 -38
  831. package/dist/scenes/logs.d.ts +0 -2
  832. package/dist/scenes/logs.js +0 -47
  833. package/dist/scenes/operations.d.ts +0 -3
  834. package/dist/scenes/operations.js +0 -128
  835. package/dist/scenes/phase0.d.ts +0 -9
  836. package/dist/scenes/phase0.js +0 -637
  837. package/dist/scenes/planner.d.ts +0 -12
  838. package/dist/scenes/planner.js +0 -166
  839. package/dist/scenes/playwright-adapter.d.ts +0 -2
  840. package/dist/scenes/playwright-adapter.js +0 -63
  841. package/dist/scenes/plugins.d.ts +0 -5
  842. package/dist/scenes/plugins.js +0 -115
  843. package/dist/scenes/progress.d.ts +0 -17
  844. package/dist/scenes/progress.js +0 -24
  845. package/dist/scenes/publish-destinations.d.ts +0 -12
  846. package/dist/scenes/publish-destinations.js +0 -99
  847. package/dist/scenes/publish-plan-report.d.ts +0 -10
  848. package/dist/scenes/publish-plan-report.js +0 -70
  849. package/dist/scenes/publish-plan.d.ts +0 -15
  850. package/dist/scenes/publish-plan.js +0 -248
  851. package/dist/scenes/publish-redaction.d.ts +0 -16
  852. package/dist/scenes/publish-redaction.js +0 -148
  853. package/dist/scenes/publish-release-record.d.ts +0 -13
  854. package/dist/scenes/publish-release-record.js +0 -34
  855. package/dist/scenes/publish-report.d.ts +0 -10
  856. package/dist/scenes/publish-report.js +0 -67
  857. package/dist/scenes/publish.d.ts +0 -16
  858. package/dist/scenes/publish.js +0 -298
  859. package/dist/scenes/registry.d.ts +0 -12
  860. package/dist/scenes/registry.js +0 -65
  861. package/dist/scenes/remotion-adapter.d.ts +0 -3
  862. package/dist/scenes/remotion-adapter.js +0 -94
  863. package/dist/scenes/remotion-composition-registry.d.ts +0 -2
  864. package/dist/scenes/remotion-composition-registry.js +0 -12
  865. package/dist/scenes/remotion-compositions.d.ts +0 -15
  866. package/dist/scenes/remotion-compositions.js +0 -464
  867. package/dist/scenes/remotion-diagrams.d.ts +0 -9
  868. package/dist/scenes/remotion-diagrams.js +0 -188
  869. package/dist/scenes/remotion-input.d.ts +0 -13
  870. package/dist/scenes/remotion-input.js +0 -291
  871. package/dist/scenes/remotion-visuals.d.ts +0 -29
  872. package/dist/scenes/remotion-visuals.js +0 -198
  873. package/dist/scenes/render-media-assets.d.ts +0 -9
  874. package/dist/scenes/render-media-assets.js +0 -117
  875. package/dist/scenes/render-report.d.ts +0 -10
  876. package/dist/scenes/render-report.js +0 -27
  877. package/dist/scenes/render.d.ts +0 -2
  878. package/dist/scenes/render.js +0 -218
  879. package/dist/scenes/reporter.d.ts +0 -3
  880. package/dist/scenes/reporter.js +0 -101
  881. package/dist/scenes/resume.d.ts +0 -2
  882. package/dist/scenes/resume.js +0 -79
  883. package/dist/scenes/runner.d.ts +0 -2
  884. package/dist/scenes/runner.js +0 -687
  885. package/dist/scenes/schema.d.ts +0 -6
  886. package/dist/scenes/schema.js +0 -1023
  887. package/dist/scenes/seed.d.ts +0 -2
  888. package/dist/scenes/seed.js +0 -83
  889. package/dist/scenes/segments.d.ts +0 -15
  890. package/dist/scenes/segments.js +0 -79
  891. package/dist/scenes/selectors.d.ts +0 -3
  892. package/dist/scenes/selectors.js +0 -21
  893. package/dist/scenes/timeline.d.ts +0 -11
  894. package/dist/scenes/timeline.js +0 -26
  895. package/dist/scenes/timeouts.d.ts +0 -6
  896. package/dist/scenes/timeouts.js +0 -17
  897. package/dist/scenes/training-captions.d.ts +0 -14
  898. package/dist/scenes/training-captions.js +0 -98
  899. package/dist/scenes/training-report.d.ts +0 -10
  900. package/dist/scenes/training-report.js +0 -78
  901. package/dist/scenes/training-transcript.d.ts +0 -24
  902. package/dist/scenes/training-transcript.js +0 -204
  903. package/dist/scenes/training.d.ts +0 -10
  904. package/dist/scenes/training.js +0 -134
  905. package/dist/scenes/types.d.ts +0 -1900
  906. package/dist/scenes/types.js +0 -8
  907. package/dist/scenes/visual-audit-contact-sheets.d.ts +0 -6
  908. package/dist/scenes/visual-audit-contact-sheets.js +0 -119
  909. package/dist/scenes/visual-audit-fixtures.d.ts +0 -25
  910. package/dist/scenes/visual-audit-fixtures.js +0 -247
  911. package/dist/scenes/visual-audit-report.d.ts +0 -11
  912. package/dist/scenes/visual-audit-report.js +0 -85
  913. package/dist/scenes/visual-audit-review.d.ts +0 -23
  914. package/dist/scenes/visual-audit-review.js +0 -829
  915. package/dist/scenes/visual-audit-routes.d.ts +0 -13
  916. package/dist/scenes/visual-audit-routes.js +0 -308
  917. package/dist/scenes/visual-audit.d.ts +0 -3
  918. package/dist/scenes/visual-audit.js +0 -596
  919. package/dist/scripts/aggregate-book.js +0 -16
  920. package/dist/scripts/assert-release-tag-version.js +0 -23
  921. package/dist/scripts/build-dist.js +0 -294
  922. package/dist/scripts/build-tenant-worker.js +0 -36
  923. package/dist/scripts/check-build-warnings.js +0 -51
  924. package/dist/scripts/cleanup-markdown.js +0 -377
  925. package/dist/scripts/cli-test-fixtures.js +0 -44
  926. package/dist/scripts/config-treeseed.js +0 -131
  927. package/dist/scripts/deployment-readiness.js +0 -20
  928. package/dist/scripts/generate-treedx-openapi-types.js +0 -186
  929. package/dist/scripts/install-managed-dependencies.js +0 -12
  930. package/dist/scripts/key-agent.js +0 -165
  931. package/dist/scripts/local-dev.js +0 -129
  932. package/dist/scripts/migrate-journey-csv-to-guarantees.js +0 -140
  933. package/dist/scripts/operations-runner-smoke.js +0 -16
  934. package/dist/scripts/package-tools.js +0 -85
  935. package/dist/scripts/patch-starlight-content-path.js +0 -173
  936. package/dist/scripts/prepare.js +0 -10
  937. package/dist/scripts/publish-package.js +0 -29
  938. package/dist/scripts/release-verify.js +0 -105
  939. package/dist/scripts/run-fixture-astro-command.js +0 -18
  940. package/dist/scripts/scaffold-site.js +0 -66
  941. package/dist/scripts/sync-template.js +0 -20
  942. package/dist/scripts/template-catalog.test.js +0 -86
  943. package/dist/scripts/template-command.js +0 -31
  944. package/dist/scripts/tenant-astro-command.js +0 -3
  945. package/dist/scripts/tenant-build.js +0 -48
  946. package/dist/scripts/tenant-check.js +0 -10
  947. package/dist/scripts/tenant-d1-migrate-local.js +0 -15
  948. package/dist/scripts/tenant-deploy.js +0 -220
  949. package/dist/scripts/tenant-destroy.js +0 -112
  950. package/dist/scripts/tenant-dev.js +0 -160
  951. package/dist/scripts/tenant-lint.js +0 -4
  952. package/dist/scripts/tenant-test.js +0 -4
  953. package/dist/scripts/tenant-workflow-action.js +0 -101
  954. package/dist/scripts/test-cloudflare-local.js +0 -209
  955. package/dist/scripts/test-scaffold.js +0 -300
  956. package/dist/scripts/test-smoke.js +0 -137
  957. package/dist/scripts/treeseed-assert-release-tag-version.js +0 -21
  958. package/dist/scripts/treeseed-build-dist.js +0 -131
  959. package/dist/scripts/treeseed-publish-package.js +0 -19
  960. package/dist/scripts/treeseed-release-verify.js +0 -131
  961. package/dist/scripts/validate-templates.js +0 -6
  962. package/dist/scripts/verify-driver.js +0 -45
  963. package/dist/scripts/workflow-commands.test.js +0 -31
  964. package/dist/scripts/workspace-command-e2e.js +0 -718
  965. package/dist/scripts/workspace-lint.js +0 -15
  966. package/dist/scripts/workspace-preflight.js +0 -22
  967. package/dist/scripts/workspace-publish-changed-packages.js +0 -16
  968. package/dist/scripts/workspace-release-test.js +0 -104
  969. package/dist/scripts/workspace-release-verify.js +0 -81
  970. package/dist/scripts/workspace-save.js +0 -64
  971. package/dist/scripts/workspace-start-warning.js +0 -3
  972. package/dist/scripts/workspace-test-unit.js +0 -4
  973. package/dist/scripts/workspace-test.js +0 -17
  974. package/dist/sdk-dispatch.d.ts +0 -12
  975. package/dist/sdk-dispatch.js +0 -126
  976. package/dist/sdk-fields.d.ts +0 -11
  977. package/dist/sdk-filters.d.ts +0 -4
  978. package/dist/sdk-filters.js +0 -74
  979. package/dist/sdk-types.d.ts +0 -3868
  980. package/dist/sdk-types.js +0 -542
  981. package/dist/sdk-version.d.ts +0 -2
  982. package/dist/sdk-version.js +0 -42
  983. package/dist/sdk.d.ts +0 -266
  984. package/dist/sdk.js +0 -825
  985. package/dist/secrets-capability.d.ts +0 -421
  986. package/dist/secrets-capability.js +0 -530
  987. package/dist/seeds/errors.d.ts +0 -5
  988. package/dist/seeds/errors.js +0 -22
  989. package/dist/seeds/index.d.ts +0 -20
  990. package/dist/seeds/index.js +0 -53
  991. package/dist/seeds/loader.d.ts +0 -8
  992. package/dist/seeds/loader.js +0 -32
  993. package/dist/seeds/normalize.d.ts +0 -13
  994. package/dist/seeds/normalize.js +0 -282
  995. package/dist/seeds/planner.d.ts +0 -10
  996. package/dist/seeds/planner.js +0 -149
  997. package/dist/seeds/schema.d.ts +0 -2
  998. package/dist/seeds/schema.js +0 -893
  999. package/dist/seeds/types.d.ts +0 -312
  1000. package/dist/seeds/types.js +0 -12
  1001. package/dist/service-credentials.d.ts +0 -54
  1002. package/dist/service-credentials.js +0 -112
  1003. package/dist/stores/cursor-store.d.ts +0 -10
  1004. package/dist/stores/cursor-store.js +0 -164
  1005. package/dist/stores/envelopes.d.ts +0 -116
  1006. package/dist/stores/envelopes.js +0 -219
  1007. package/dist/stores/helpers.d.ts +0 -12
  1008. package/dist/stores/helpers.js +0 -42
  1009. package/dist/stores/lease-store.d.ts +0 -18
  1010. package/dist/stores/lease-store.js +0 -189
  1011. package/dist/stores/message-store.d.ts +0 -12
  1012. package/dist/stores/message-store.js +0 -273
  1013. package/dist/stores/operational-store.d.ts +0 -55
  1014. package/dist/stores/operational-store.js +0 -861
  1015. package/dist/stores/project-workflow-store.d.ts +0 -56
  1016. package/dist/stores/project-workflow-store.js +0 -482
  1017. package/dist/stores/run-store.d.ts +0 -9
  1018. package/dist/stores/run-store.js +0 -75
  1019. package/dist/stores/subscription-store.d.ts +0 -8
  1020. package/dist/stores/subscription-store.js +0 -73
  1021. package/dist/template-catalog.d.ts +0 -13
  1022. package/dist/template-catalog.js +0 -151
  1023. package/dist/template-launch-requirements.d.ts +0 -118
  1024. package/dist/template-launch-requirements.js +0 -768
  1025. package/dist/template-launch-ui.d.ts +0 -85
  1026. package/dist/template-launch-ui.js +0 -189
  1027. package/dist/timing.d.ts +0 -20
  1028. package/dist/timing.js +0 -73
  1029. package/dist/treedx/adapters.d.ts +0 -6
  1030. package/dist/treedx/adapters.js +0 -36
  1031. package/dist/treedx/client.d.ts +0 -222
  1032. package/dist/treedx/client.js +0 -871
  1033. package/dist/treedx/errors.d.ts +0 -13
  1034. package/dist/treedx/federated-client.d.ts +0 -27
  1035. package/dist/treedx/federated-client.js +0 -158
  1036. package/dist/treedx/graph-adapter.d.ts +0 -33
  1037. package/dist/treedx/graph-adapter.js +0 -156
  1038. package/dist/treedx/index.d.ts +0 -14
  1039. package/dist/treedx/index.js +0 -48
  1040. package/dist/treedx/market-integration.d.ts +0 -27
  1041. package/dist/treedx/market-integration.js +0 -131
  1042. package/dist/treedx/ports.d.ts +0 -166
  1043. package/dist/treedx/ports.js +0 -231
  1044. package/dist/treedx/query-adapter.d.ts +0 -19
  1045. package/dist/treedx/query-adapter.js +0 -62
  1046. package/dist/treedx/registry-client.d.ts +0 -11
  1047. package/dist/treedx/registry-client.js +0 -19
  1048. package/dist/treedx/repository-adapter.d.ts +0 -45
  1049. package/dist/treedx/repository-adapter.js +0 -319
  1050. package/dist/treedx/sdk-integration.d.ts +0 -27
  1051. package/dist/treedx/sdk-integration.js +0 -63
  1052. package/dist/treedx/workspace-adapter.d.ts +0 -27
  1053. package/dist/treedx/workspace-adapter.js +0 -65
  1054. package/dist/treedx-backends.d.ts +0 -220
  1055. package/dist/treedx-backends.js +0 -634
  1056. package/dist/treedx-client.d.ts +0 -89
  1057. package/dist/treedx-client.js +0 -184
  1058. package/dist/treeseed/services/compose.yml +0 -6
  1059. package/dist/treeseed/template-catalog/catalog.fixture.json +0 -707
  1060. package/dist/types/cloudflare.d.ts +0 -54
  1061. package/dist/verification.d.ts +0 -31
  1062. package/dist/verification.js +0 -430
  1063. package/dist/workflow/operations.d.ts +0 -1516
  1064. package/dist/workflow/operations.js +0 -7001
  1065. package/dist/workflow/policy.d.ts +0 -12
  1066. package/dist/workflow/policy.js +0 -70
  1067. package/dist/workflow/runs.d.ts +0 -143
  1068. package/dist/workflow/runs.js +0 -720
  1069. package/dist/workflow/session.d.ts +0 -34
  1070. package/dist/workflow/session.js +0 -160
  1071. package/dist/workflow/worktrees.d.ts +0 -43
  1072. package/dist/workflow/worktrees.js +0 -307
  1073. package/dist/workflow-state.d.ts +0 -250
  1074. package/dist/workflow-state.js +0 -844
  1075. package/dist/workflow-support.d.ts +0 -28
  1076. package/dist/workflow-support.js +0 -390
  1077. package/dist/workflow.d.ts +0 -327
  1078. package/dist/workflow.js +0 -140
  1079. package/drizzle/d1/0000_treeseed_d1.sql +0 -19
  1080. package/drizzle/market/0000_market_control_plane.sql +0 -3223
  1081. package/drizzle/market/0001_capacity_budget_mode_default.sql +0 -4
  1082. package/drizzle/market/0002_user_email_addresses.sql +0 -26
  1083. package/drizzle/market/0003_project_team_slug_unique.sql +0 -4
  1084. package/drizzle/market/0004_treedx_market_integration.sql +0 -99
  1085. package/drizzle/market/0005_agent_capacity_coordination.sql +0 -145
  1086. package/drizzle/market/0006_provider_assignment_lifecycle.sql +0 -9
  1087. package/drizzle/market/0007_agent_architecture_gap_closure.sql +0 -157
  1088. package/drizzle/market/0008_agent_capacity_operational_closure.sql +0 -27
  1089. package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +0 -29
  1090. package/drizzle/market/0010_secrets_capability_persistence.sql +0 -130
  1091. package/drizzle/market/0011_github_app_adapter.sql +0 -47
  1092. package/drizzle/market/0012_workday_test_runs.sql +0 -44
  1093. package/drizzle/market/0013_runtime_task_lifecycle.sql +0 -39
  1094. package/drizzle/market/0014_governance_pipeline.sql +0 -189
  1095. package/drizzle/market/0015_agent_decision_assignment_graphs.sql +0 -60
  1096. package/scripts/verify-driver.ts +0 -51
  1097. package/templates/github/deploy-web.workflow.yml +0 -168
  1098. package/templates/github/hosted-project.workflow.yml +0 -76
  1099. /package/dist/{api/types.js → agent-capacity/contracts/capacity/workdays/workday-records.js} +0 -0
  1100. /package/dist/{hosting/contracts.js → agent-capacity/contracts/operations/workflow-promotion.js} +0 -0
  1101. /package/dist/{platform/contracts.js → agent-capacity/contracts/projects/agents/project-agent-class.js} +0 -0
  1102. /package/dist/{reconcile/contracts.js → agent-capacity/contracts/runtime/runtime-observability.js} +0 -0
  1103. /package/dist/{types/cloudflare.js → agent-capacity/contracts/support/decision-work.js} +0 -0
  1104. /package/dist/{field-aliases.js → entrypoints/models/field-aliases.js} +0 -0
  1105. /package/dist/{sdk-fields.js → entrypoints/models/sdk-fields.js} +0 -0
  1106. /package/dist/{runtime.d.ts → runtime/runtime.d.ts} +0 -0
  1107. /package/dist/{runtime.js → runtime/runtime.js} +0 -0
  1108. /package/dist/treedx/{errors.js → support/errors.js} +0 -0
@@ -1,1822 +0,0 @@
1
- const DEFAULT_WORKDAY_MODE_SPLITS = {
2
- planning: { targetPercent: 25, minPercent: 10, maxPercent: 40 },
3
- acting: { targetPercent: 75, minPercent: 60, maxPercent: 90 }
4
- };
5
- const AGENT_ASSIGNMENT_WORKSPACE_ACCESS_MODES = [
6
- "context_only",
7
- "workspace_write",
8
- "brokered_workspace",
9
- "full_workspace_no_credentials",
10
- "trusted_direct"
11
- ];
12
- function record(value) {
13
- return value && typeof value === "object" && !Array.isArray(value) ? value : {};
14
- }
15
- function stringList(value) {
16
- return Array.isArray(value) ? value.map((entry) => String(entry ?? "").trim()).filter(Boolean) : [];
17
- }
18
- function arrayValue(value) {
19
- return Array.isArray(value) ? value : [];
20
- }
21
- function isRecord(value) {
22
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
23
- }
24
- function uniqueStrings(values) {
25
- return [...new Set(values.filter(Boolean))].sort((left, right) => left.localeCompare(right));
26
- }
27
- function numberOrNull(value) {
28
- const number = Number(value);
29
- return Number.isFinite(number) ? number : null;
30
- }
31
- function booleanDefault(value, fallback) {
32
- return typeof value === "boolean" ? value : fallback;
33
- }
34
- function stringOrNull(value) {
35
- if (value === null || value === void 0 || value === "") return null;
36
- return String(value);
37
- }
38
- function firstString(...values) {
39
- for (const value of values) {
40
- const normalized = stringOrNull(value);
41
- if (normalized) return normalized;
42
- }
43
- return null;
44
- }
45
- function firstArray(...values) {
46
- for (const value of values) {
47
- if (Array.isArray(value)) return value;
48
- }
49
- return [];
50
- }
51
- function diagnostic(diagnostics, code, message, path, severity = "error") {
52
- diagnostics.push({ severity, code, message, path });
53
- }
54
- function validateNonEmptyString(diagnostics, value, field, path = field) {
55
- if (typeof value !== "string" || !value.trim()) diagnostic(diagnostics, "required_string_missing", `${field} is required.`, path);
56
- }
57
- function validateNonNegativeNumber(diagnostics, value, field, path = field) {
58
- if (!Number.isFinite(Number(value)) || Number(value) < 0) {
59
- diagnostic(diagnostics, "non_negative_number_required", `${field} must be a non-negative number.`, path);
60
- }
61
- }
62
- function validationResult(diagnostics) {
63
- return { ok: diagnostics.every((entry) => entry.severity !== "error"), diagnostics };
64
- }
65
- function dependencyToContractId(projectId, decisionId, dependency) {
66
- const deliverable = dependency.deliverableType || dependency.capability || dependency.id;
67
- return `${projectId}:${decisionId}:deliverable:${deliverable}`.replace(/[^a-zA-Z0-9:_-]+/gu, "-");
68
- }
69
- function edgeTypeForDependency(dependency) {
70
- if (dependency.requiredBefore === "complete" || dependency.requiredBefore === "review") return "blocks-completion";
71
- if (dependency.requiredBefore === "release") return "blocks-release";
72
- return "blocks-start";
73
- }
74
- function validateDecisionDependencySpec(dependency, path = "dependency") {
75
- const diagnostics = [];
76
- validateNonEmptyString(diagnostics, dependency.id, "id", `${path}.id`);
77
- if (!["artifact", "capability", "decision", "external-resource", "human-input"].includes(dependency.type)) {
78
- diagnostic(diagnostics, "invalid_dependency_type", `Dependency ${dependency.id || "<unknown>"} has an invalid type.`, `${path}.type`);
79
- }
80
- if (!["start", "complete", "review", "release"].includes(dependency.requiredBefore)) {
81
- diagnostic(diagnostics, "invalid_dependency_required_before", `Dependency ${dependency.id || "<unknown>"} has an invalid requiredBefore value.`, `${path}.requiredBefore`);
82
- }
83
- if (dependency.type === "artifact" && !dependency.deliverableType) diagnostic(diagnostics, "artifact_dependency_missing_deliverable_type", "Artifact dependencies must declare deliverableType.", `${path}.deliverableType`);
84
- if (dependency.type === "capability" && !dependency.capability && !dependency.agentClass) diagnostic(diagnostics, "capability_dependency_missing_capability", "Capability dependencies must declare capability or agentClass.", `${path}.capability`);
85
- if (dependency.type === "human-input") {
86
- const policy = dependency.humanInputPolicy;
87
- if (!policy || !["team-human", "any-human", "any-human-or-agent"].includes(policy.requiredFrom)) {
88
- diagnostic(diagnostics, "human_input_policy_missing", "Human-input dependencies must declare a valid humanInputPolicy.requiredFrom.", `${path}.humanInputPolicy.requiredFrom`);
89
- }
90
- }
91
- return validationResult(diagnostics);
92
- }
93
- function validateStructuredAgentEstimate(estimate) {
94
- const diagnostics = [];
95
- validateNonEmptyString(diagnostics, estimate.id, "id");
96
- validateNonEmptyString(diagnostics, estimate.teamId, "teamId");
97
- validateNonEmptyString(diagnostics, estimate.projectId, "projectId");
98
- validateNonEmptyString(diagnostics, estimate.agentClass, "agentClass");
99
- if (!estimate.decisionId && !estimate.proposalId) diagnostic(diagnostics, "estimate_missing_subject", "Structured estimates must reference a decisionId or proposalId.", "decisionId");
100
- validateNonNegativeNumber(diagnostics, estimate.minCredits, "minCredits");
101
- validateNonNegativeNumber(diagnostics, estimate.expectedCredits, "expectedCredits");
102
- validateNonNegativeNumber(diagnostics, estimate.maxCredits, "maxCredits");
103
- if (Number(estimate.minCredits) > Number(estimate.expectedCredits) || Number(estimate.expectedCredits) > Number(estimate.maxCredits)) {
104
- diagnostic(diagnostics, "estimate_credit_bounds_invalid", "Estimate credit bounds must satisfy min <= expected <= max.", "expectedCredits");
105
- }
106
- if (!["low", "medium", "high"].includes(estimate.confidence)) diagnostic(diagnostics, "estimate_confidence_invalid", "Estimate confidence must be low, medium, or high.", "confidence");
107
- if (!["low", "medium", "high"].includes(estimate.riskLevel)) diagnostic(diagnostics, "estimate_risk_level_invalid", "Estimate riskLevel must be low, medium, or high.", "riskLevel");
108
- for (const [index, dependency] of (estimate.dependencies ?? []).entries()) {
109
- diagnostics.push(...validateDecisionDependencySpec(dependency, `dependencies.${index}`).diagnostics);
110
- }
111
- return validationResult(diagnostics);
112
- }
113
- function validateDeliverableContract(contract) {
114
- const diagnostics = [];
115
- validateNonEmptyString(diagnostics, contract.id, "id");
116
- validateNonEmptyString(diagnostics, contract.teamId, "teamId");
117
- validateNonEmptyString(diagnostics, contract.projectId, "projectId");
118
- validateNonEmptyString(diagnostics, contract.decisionId, "decisionId");
119
- validateNonEmptyString(diagnostics, contract.deliverableType, "deliverableType");
120
- if (!Array.isArray(contract.producerAgentClasses) || contract.producerAgentClasses.length === 0) diagnostic(diagnostics, "deliverable_contract_missing_producer", "Deliverable contracts must declare at least one producerAgentClass.", "producerAgentClasses");
121
- if (!["required", "draft", "submitted", "approved", "rejected"].includes(contract.status)) diagnostic(diagnostics, "deliverable_contract_status_invalid", "Deliverable contract has an invalid status.", "status");
122
- return validationResult(diagnostics);
123
- }
124
- function validateDeliverableManifest(manifest) {
125
- const diagnostics = [];
126
- validateNonEmptyString(diagnostics, manifest.id, "id");
127
- validateNonEmptyString(diagnostics, manifest.deliverableContractId, "deliverableContractId");
128
- validateNonEmptyString(diagnostics, manifest.projectId, "projectId");
129
- validateNonEmptyString(diagnostics, manifest.decisionId, "decisionId");
130
- if (!Array.isArray(manifest.producedRefs) || manifest.producedRefs.length === 0) diagnostic(diagnostics, "deliverable_manifest_missing_refs", "Deliverable manifests must map the contract to at least one produced content ref.", "producedRefs");
131
- validateNonEmptyString(diagnostics, manifest.summary, "summary");
132
- return validationResult(diagnostics);
133
- }
134
- function validateDecisionAssignmentGraph(graph) {
135
- const diagnostics = [];
136
- validateNonEmptyString(diagnostics, graph.id, "id");
137
- validateNonEmptyString(diagnostics, graph.teamId, "teamId");
138
- validateNonEmptyString(diagnostics, graph.projectId, "projectId");
139
- validateNonEmptyString(diagnostics, graph.decisionId, "decisionId");
140
- if (!Number.isInteger(graph.version) || graph.version < 1) diagnostic(diagnostics, "graph_version_invalid", "Decision assignment graph version must be a positive integer.", "version");
141
- if (graph.compiledBy !== "api-control-plane") diagnostic(diagnostics, "graph_compiler_invalid", "Decision assignment graphs must be compiled by api-control-plane.", "compiledBy");
142
- const nodeIds = new Set(graph.nodes.map((node) => node.id));
143
- for (const [index, node] of graph.nodes.entries()) {
144
- validateNonEmptyString(diagnostics, node.id, "node.id", `nodes.${index}.id`);
145
- validateNonEmptyString(diagnostics, node.targetAgentClass, "node.targetAgentClass", `nodes.${index}.targetAgentClass`);
146
- validateNonNegativeNumber(diagnostics, node.capacity.expectedCredits, "node.capacity.expectedCredits", `nodes.${index}.capacity.expectedCredits`);
147
- validateNonNegativeNumber(diagnostics, node.capacity.maxCredits, "node.capacity.maxCredits", `nodes.${index}.capacity.maxCredits`);
148
- }
149
- for (const [index, edge] of graph.edges.entries()) {
150
- if (!nodeIds.has(edge.fromNodeId)) diagnostic(diagnostics, "graph_edge_from_missing", `Edge ${index} references missing fromNodeId.`, `edges.${index}.fromNodeId`);
151
- if (!nodeIds.has(edge.toNodeId)) diagnostic(diagnostics, "graph_edge_to_missing", `Edge ${index} references missing toNodeId.`, `edges.${index}.toNodeId`);
152
- }
153
- for (const [index, contract] of graph.deliverableContracts.entries()) {
154
- diagnostics.push(...validateDeliverableContract(contract).diagnostics.map((entry) => ({ ...entry, path: `deliverableContracts.${index}${entry.path ? `.${entry.path}` : ""}` })));
155
- }
156
- return validationResult(diagnostics);
157
- }
158
- function compileDecisionAssignmentGraphFromEstimates(input) {
159
- const diagnostics = [];
160
- const estimates = [...input.estimates ?? []].sort((left, right) => left.agentClass.localeCompare(right.agentClass) || String(left.agentId ?? "").localeCompare(String(right.agentId ?? "")) || left.id.localeCompare(right.id));
161
- for (const [index, estimate] of estimates.entries()) {
162
- diagnostics.push(...validateStructuredAgentEstimate(estimate).diagnostics.map((entry) => ({ ...entry, path: `estimates.${index}${entry.path ? `.${entry.path}` : ""}` })));
163
- }
164
- const contractMap = /* @__PURE__ */ new Map();
165
- const deliverableProducerNodes = /* @__PURE__ */ new Map();
166
- const nodes = [];
167
- const edges = [];
168
- for (const estimate of estimates) {
169
- for (const dependency of estimate.dependencies.filter((entry) => entry.type === "artifact" && entry.deliverableType)) {
170
- const contractId = dependencyToContractId(input.projectId, input.decisionId, dependency);
171
- if (!contractMap.has(contractId)) {
172
- const producerClass = dependency.agentClass || dependency.capability || dependency.deliverableType || "producer";
173
- contractMap.set(contractId, {
174
- id: contractId,
175
- teamId: input.teamId,
176
- projectId: input.projectId,
177
- decisionId: input.decisionId,
178
- deliverableType: dependency.deliverableType ?? dependency.id,
179
- producerAgentClasses: [producerClass],
180
- acceptanceCriteria: dependency.summary ? [dependency.summary] : [],
181
- status: "required",
182
- metadata: { sourceDependencyId: dependency.id }
183
- });
184
- const producerNodeId = `${contractId}:produce`;
185
- deliverableProducerNodes.set(contractId, producerNodeId);
186
- nodes.push({
187
- id: producerNodeId,
188
- decisionId: input.decisionId,
189
- projectId: input.projectId,
190
- targetAgentClass: producerClass,
191
- activityType: "acting",
192
- handler: null,
193
- requiredCapabilities: uniqueStrings([dependency.capability ?? ""].filter(Boolean)),
194
- requiredDeliverableContractIds: [],
195
- inputRefs: [],
196
- outputRequirements: [{ id: `${contractId}:output`, outputType: dependency.deliverableType ?? dependency.id, description: dependency.summary, required: true }],
197
- capacity: { expectedCredits: 1, maxCredits: 1 },
198
- status: "pending",
199
- metadata: { deliverableContractId: contractId, generatedFromDependency: dependency.id }
200
- });
201
- }
202
- }
203
- }
204
- for (const estimate of estimates) {
205
- const nodeId = estimate.workUnitId || `estimate:${estimate.id}:work`;
206
- const artifactDependencies = estimate.dependencies.filter((dependency) => dependency.type === "artifact" && dependency.deliverableType);
207
- const requiredDeliverableContractIds = artifactDependencies.map((dependency) => dependencyToContractId(input.projectId, input.decisionId, dependency));
208
- const inputRefs = estimate.dependencies.flatMap((dependency) => (dependency.contentRefs ?? []).map((ref) => ({ model: "note", collection: "notes", slug: ref, id: ref })));
209
- nodes.push({
210
- id: nodeId,
211
- decisionId: input.decisionId,
212
- projectId: input.projectId,
213
- targetAgentClass: estimate.agentClass,
214
- activityType: "acting",
215
- handler: null,
216
- requiredCapabilities: uniqueStrings(estimate.dependencies.map((dependency) => dependency.capability ?? dependency.agentClass ?? "").filter(Boolean)),
217
- requiredDeliverableContractIds,
218
- inputRefs,
219
- outputRequirements: estimate.expectedOutputs,
220
- capacity: { expectedCredits: estimate.expectedCredits, maxCredits: estimate.maxCredits },
221
- status: "pending",
222
- metadata: {
223
- estimateId: estimate.id,
224
- confidence: estimate.confidence,
225
- riskLevel: estimate.riskLevel,
226
- humanInputDependencies: estimate.dependencies.filter((dependency) => dependency.type === "human-input")
227
- }
228
- });
229
- for (const dependency of artifactDependencies) {
230
- const contractId = dependencyToContractId(input.projectId, input.decisionId, dependency);
231
- const producerNodeId = deliverableProducerNodes.get(contractId);
232
- if (producerNodeId) edges.push({ fromNodeId: producerNodeId, toNodeId: nodeId, edgeType: edgeTypeForDependency(dependency), reason: dependency.summary ?? dependency.deliverableType });
233
- }
234
- }
235
- const graph = {
236
- id: input.id ?? `${input.projectId}:${input.decisionId}:graph:v${input.version ?? 1}`,
237
- teamId: input.teamId,
238
- projectId: input.projectId,
239
- decisionId: input.decisionId,
240
- version: input.version ?? 1,
241
- status: diagnostics.some((entry) => entry.severity === "error") ? "blocked" : "compiled",
242
- estimateIds: estimates.map((estimate) => estimate.id),
243
- deliverableContracts: [...contractMap.values()].sort((left, right) => left.id.localeCompare(right.id)),
244
- nodes: nodes.sort((left, right) => left.id.localeCompare(right.id)),
245
- edges: edges.sort((left, right) => left.fromNodeId.localeCompare(right.fromNodeId) || left.toNodeId.localeCompare(right.toNodeId) || left.edgeType.localeCompare(right.edgeType)),
246
- compiledAt: input.compiledAt ?? null,
247
- compiledBy: "api-control-plane",
248
- metadata: { compiler: "compileDecisionAssignmentGraphFromEstimates" }
249
- };
250
- diagnostics.push(...validateDecisionAssignmentGraph(graph).diagnostics);
251
- return { graph, diagnostics };
252
- }
253
- function booleanOrNull(value) {
254
- return typeof value === "boolean" ? value : null;
255
- }
256
- function pressureAllows(pressure) {
257
- return pressure !== "exhausted" && pressure !== "throttled";
258
- }
259
- function resourceNeedKey(need) {
260
- return [
261
- need.kind,
262
- uniqueStrings(need.operations).join("|"),
263
- uniqueStrings(need.paths ?? []).join("|"),
264
- need.required === false ? "optional" : "required"
265
- ].join(":");
266
- }
267
- function pushResourceNeed(target, need) {
268
- const normalized = {
269
- ...need,
270
- operations: uniqueStrings(need.operations),
271
- paths: need.paths?.length ? uniqueStrings(need.paths) : void 0,
272
- required: need.required ?? true,
273
- metadata: need.metadata
274
- };
275
- if (!target.some((entry) => resourceNeedKey(entry) === resourceNeedKey(normalized))) {
276
- target.push(normalized);
277
- }
278
- }
279
- function handleResourceNeed(handle) {
280
- const operations = uniqueStrings([
281
- ...stringList(handle.operations),
282
- ...stringList(handle.allowedOperations)
283
- ]);
284
- if (handle.kind === "repository_access") {
285
- const repository = handle;
286
- return {
287
- kind: "repository",
288
- operations: operations.length ? operations : ["read"],
289
- paths: stringList(repository.allowedPaths),
290
- required: true,
291
- metadata: {
292
- handleId: handle.id,
293
- provider: repository.provider ?? null
294
- }
295
- };
296
- }
297
- if (handle.kind === "treedx_workspace") {
298
- const workspace = handle;
299
- return {
300
- kind: "treedx_workspace",
301
- operations: operations.length ? operations : ["read"],
302
- paths: stringList(workspace.allowedPaths),
303
- required: true,
304
- metadata: {
305
- handleId: handle.id,
306
- workspaceId: workspace.workspaceId ?? null
307
- }
308
- };
309
- }
310
- if (handle.kind === "workflow_operation") {
311
- const workflow = handle;
312
- return {
313
- kind: "workflow",
314
- operations: operations.length ? operations : ["dispatch_workflow"],
315
- required: true,
316
- metadata: {
317
- handleId: handle.id,
318
- operationId: workflow.operationId,
319
- workflowFile: workflow.workflowFile
320
- }
321
- };
322
- }
323
- if (handle.kind === "secret_use") {
324
- return {
325
- kind: "secret",
326
- operations: operations.length ? operations : ["use"],
327
- required: true,
328
- metadata: {
329
- handleId: handle.id,
330
- custodyMode: handle.custodyMode ?? null
331
- }
332
- };
333
- }
334
- return null;
335
- }
336
- function preferredCapabilitiesFromAgent(agent) {
337
- const preferences = agent?.execution.providerProfile?.preferredLanes ?? [];
338
- return uniqueStrings(preferences.flatMap((entry) => [
339
- entry.provider,
340
- entry.providerId,
341
- entry.laneId,
342
- entry.model,
343
- entry.modelClass
344
- ].filter((value) => typeof value === "string" && value.trim().length > 0)));
345
- }
346
- function recordStringArray(source, key) {
347
- return stringList(record(source)[key]);
348
- }
349
- function collectSupplyMetadataCapabilities(...sources) {
350
- return uniqueStrings(sources.flatMap((source) => [
351
- ...recordStringArray(record(source).metadata, "capabilities"),
352
- ...recordStringArray(source, "capabilities")
353
- ]));
354
- }
355
- function collectSupplyMetadataAliases(...sources) {
356
- return uniqueStrings(sources.flatMap((source) => [
357
- ...recordStringArray(record(source).metadata, "capabilityAliases"),
358
- ...recordStringArray(record(source).metadata, "aliases"),
359
- ...recordStringArray(source, "capabilityAliases"),
360
- ...recordStringArray(source, "aliases")
361
- ]));
362
- }
363
- function stableStringify(value) {
364
- if (value === null || typeof value !== "object") return JSON.stringify(value);
365
- if (Array.isArray(value)) return `[${value.map((entry) => stableStringify(entry)).join(",")}]`;
366
- const entries = Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`);
367
- return `{${entries.join(",")}}`;
368
- }
369
- function computeDecisionScopeHash(scope) {
370
- const text = stableStringify(scope ?? {});
371
- let hash = 5381;
372
- for (let index = 0; index < text.length; index += 1) {
373
- hash = (hash << 5) + hash ^ text.charCodeAt(index);
374
- }
375
- return `scope_${(hash >>> 0).toString(16).padStart(8, "0")}`;
376
- }
377
- function isDecisionReadyForActing(status) {
378
- if (!status) return false;
379
- const readiness = status.executionReadiness;
380
- const planning = status.planningInputsStatus;
381
- return (readiness === "ready" || readiness === "waived") && (planning === "complete" || planning === "waived");
382
- }
383
- function isPlanningInputOpen(request) {
384
- return request.status === "requested" || request.status === "stale";
385
- }
386
- function isDecisionExecutionInputAccepted(input) {
387
- return input.status === "accepted";
388
- }
389
- function isAgentCapacityPlanAccepted(plan) {
390
- return Boolean(plan && ["accepted", "scheduled", "active"].includes(String(plan.status)));
391
- }
392
- function normalizeDecisionExecutionEstimate(input) {
393
- const source = "input" in input && input.input && "input" in input.input ? input.input.input : record(input.input);
394
- const metadata = record(input.metadata ?? input.metadata);
395
- const estimate = record(source.estimate ?? metadata.estimate);
396
- const capabilities = Array.isArray(source.requiredCapabilities) ? source.requiredCapabilities : Array.isArray(metadata.requiredCapabilities) ? metadata.requiredCapabilities : [];
397
- const dependencies = Array.isArray(source.dependencies) ? source.dependencies : Array.isArray(metadata.dependencies) ? metadata.dependencies : [];
398
- const blockers = Array.isArray(source.blockers) ? source.blockers : Array.isArray(metadata.blockers) ? metadata.blockers : [];
399
- const assumptions = Array.isArray(source.assumptions) ? source.assumptions : Array.isArray(metadata.assumptions) ? metadata.assumptions : [];
400
- const environmentNeeds = Array.isArray(source.environmentNeeds) ? source.environmentNeeds : Array.isArray(metadata.environmentNeeds) ? metadata.environmentNeeds : [];
401
- const expectedCredits = numberOrNull(estimate.expectedCredits ?? estimate.credits ?? source.expectedCredits ?? metadata.expectedCredits) ?? 1;
402
- const highCredits = Math.max(expectedCredits, numberOrNull(estimate.highCredits ?? estimate.p90Credits ?? source.highCredits ?? metadata.highCredits) ?? expectedCredits);
403
- const confidence = numberOrNull(estimate.confidence ?? source.confidence ?? metadata.confidence);
404
- return {
405
- expectedCredits,
406
- highCredits,
407
- requiredCapabilities: capabilities.map(String).filter(Boolean),
408
- dependencies: dependencies.map(String).filter(Boolean),
409
- blockers: blockers.map(String).filter(Boolean),
410
- assumptions: assumptions.map(String).filter(Boolean),
411
- confidence,
412
- environmentNeeds: environmentNeeds.map(String).filter(Boolean),
413
- risk: record(source.risk ?? metadata.risk)
414
- };
415
- }
416
- function buildAgentCapacityPlanDraft(input) {
417
- const timestamp = input.now ?? (/* @__PURE__ */ new Date()).toISOString();
418
- const accepted = input.executionInputs.filter(isDecisionExecutionInputAccepted);
419
- const workUnits = accepted.map((entry, index) => {
420
- const estimate = normalizeDecisionExecutionEstimate(entry);
421
- const decisionInput = entry.input;
422
- const capacityEnvelope = {
423
- ...decisionInput.capacity,
424
- teamId: input.teamId,
425
- projectId: input.projectId,
426
- workDayId: decisionInput.capacity?.workDayId ?? input.workDayId ?? null,
427
- allocationSetId: decisionInput.capacity?.allocationSetId ?? input.allocationSetId ?? null,
428
- mode: normalizeAgentExecutionMode(decisionInput.mode, "acting"),
429
- projectAgentClassId: entry.projectAgentClassId,
430
- metadata: {
431
- ...decisionInput.capacity?.metadata ?? {},
432
- capacityPlanId: input.id,
433
- decisionExecutionInputId: entry.id
434
- }
435
- };
436
- return {
437
- id: `${input.id}:wu:${index + 1}`,
438
- decisionExecutionInputId: entry.id,
439
- decisionId: input.decisionId,
440
- projectAgentClassId: entry.projectAgentClassId,
441
- mode: normalizeAgentExecutionMode(entry.mode, "acting"),
442
- taskId: decisionInput.taskId ?? null,
443
- agentId: decisionInput.agentId ?? null,
444
- handlerId: decisionInput.handlerId ?? null,
445
- workDayId: capacityEnvelope.workDayId ?? null,
446
- expectedCredits: estimate.expectedCredits,
447
- highCredits: estimate.highCredits,
448
- requiredCapabilities: estimate.requiredCapabilities,
449
- dependencies: estimate.dependencies,
450
- blockers: estimate.blockers,
451
- risk: estimate.risk,
452
- assumptions: estimate.assumptions,
453
- confidence: estimate.confidence,
454
- capacityEnvelope,
455
- decisionInput: {
456
- ...decisionInput,
457
- capacity: capacityEnvelope,
458
- metadata: {
459
- ...decisionInput.metadata ?? {},
460
- capacityPlanId: input.id,
461
- decisionExecutionInputId: entry.id
462
- }
463
- },
464
- metadata: entry.metadata ?? {}
465
- };
466
- });
467
- const unique = (values) => [...new Set(values.filter(Boolean))].sort((left, right) => left.localeCompare(right));
468
- return {
469
- id: input.id,
470
- teamId: input.teamId,
471
- projectId: input.projectId,
472
- decisionId: input.decisionId,
473
- status: input.status ?? "draft",
474
- scopeHash: input.scopeHash,
475
- allocationSetId: input.allocationSetId ?? null,
476
- workDayId: input.workDayId ?? null,
477
- expectedCredits: workUnits.reduce((sum, unit) => sum + unit.expectedCredits, 0),
478
- highCredits: workUnits.reduce((sum, unit) => sum + unit.highCredits, 0),
479
- workUnits,
480
- capabilityNeeds: unique(workUnits.flatMap((unit) => unit.requiredCapabilities)),
481
- environmentNeeds: unique(accepted.flatMap((entry) => normalizeDecisionExecutionEstimate(entry).environmentNeeds)),
482
- reserves: { highCredits: workUnits.reduce((sum, unit) => sum + unit.highCredits, 0) },
483
- blockers: unique(workUnits.flatMap((unit) => unit.blockers)),
484
- priorityRationale: typeof input.metadata?.priorityRationale === "string" ? input.metadata.priorityRationale : null,
485
- review: {},
486
- metadata: input.metadata ?? {},
487
- acceptedAt: null,
488
- scheduledAt: null,
489
- createdAt: timestamp,
490
- updatedAt: timestamp
491
- };
492
- }
493
- function isProviderAssignmentCandidateEligible(candidate) {
494
- if (!candidate.teamId || !candidate.projectId || !candidate.capacityProviderId || !candidate.projectAgentClassId) return false;
495
- if (candidate.mode === "acting" && candidate.readiness && !isDecisionReadyForActing(candidate.readiness)) return false;
496
- return candidate.capacityEnvelope.mode === candidate.mode && candidate.decisionInput.mode === candidate.mode;
497
- }
498
- function validateTreeDxProxyHandle(handle, expected) {
499
- if (!handle) return null;
500
- if (!handle.id && !handle.projectId) return null;
501
- const access = evaluateTreeDxProxyHandleAccess(handle, {
502
- teamId: expected.teamId ?? null,
503
- projectId: expected.projectId,
504
- assignmentId: expected.assignmentId ?? null
505
- });
506
- if (!access.ok) {
507
- return createAgentKernelModeFallback(
508
- "assignment_treedx_proxy_scope_invalid",
509
- access.reason ?? "TreeDX proxy handle scope does not match the assignment.",
510
- { retryable: access.code === "treedx_proxy_handle_expired", metadata: access.metadata }
511
- );
512
- }
513
- return null;
514
- }
515
- function hasSecretLikeKey(key) {
516
- return /(^|[_-])(plaintext|token|passphrase|password|private[_-]?key|deploy[_-]?key|raw[_-]?secret|unencrypted|credential)([_-]|$)/iu.test(key) || ["secretValue", "rawSecret", "githubInstallationToken", "deployKey", "privateKey"].includes(key);
517
- }
518
- function findSecretLikePath(value, path = "$") {
519
- if (Array.isArray(value)) {
520
- for (let index = 0; index < value.length; index += 1) {
521
- const found = findSecretLikePath(value[index], `${path}[${index}]`);
522
- if (found) return found;
523
- }
524
- return null;
525
- }
526
- if (!isRecord(value)) return null;
527
- for (const [key, entry] of Object.entries(value)) {
528
- const nextPath = `${path}.${key}`;
529
- if (hasSecretLikeKey(key)) return nextPath;
530
- const found = findSecretLikePath(entry, nextPath);
531
- if (found) return found;
532
- }
533
- return null;
534
- }
535
- function normalizeWorkspaceAccessMode(value) {
536
- return AGENT_ASSIGNMENT_WORKSPACE_ACCESS_MODES.includes(value) ? value : "context_only";
537
- }
538
- function capabilityHandleArrays(handles) {
539
- const source = record(handles);
540
- return [
541
- ...arrayValue(source.repository),
542
- ...arrayValue(source.treeDx),
543
- ...arrayValue(source.workflowOperations),
544
- ...arrayValue(source.secrets)
545
- ].filter(isRecord);
546
- }
547
- function planningContentArtifactWriteAllowed(input) {
548
- if (input.assignment.mode !== "planning") return false;
549
- const metadata = record(input.assignment.metadata);
550
- if (metadata.allowPlanningContentArtifacts !== true) return false;
551
- const handle = record(input.handle);
552
- const contentProxyHandle = input.handle.kind === "treedx_workspace" || input.handle.kind === "repository_access" && handle.provider === "treedx_proxy" && handle.credentialMode === "brokered";
553
- if (!contentProxyHandle) return false;
554
- const allowed = /* @__PURE__ */ new Set(["read", "write", "commit", "test", "files:read", "files:search", "files:write", "git:commit"]);
555
- return input.operations.every((operation) => allowed.has(operation));
556
- }
557
- function redactedProviderAssignmentCapabilityHandles(handles) {
558
- const source = record(handles);
559
- const redact = (handle) => {
560
- const next = { ...record(handle) };
561
- for (const key of Object.keys(next)) {
562
- if (hasSecretLikeKey(key)) delete next[key];
563
- }
564
- return next;
565
- };
566
- return {
567
- workspaceAccessMode: normalizeWorkspaceAccessMode(source.workspaceAccessMode),
568
- repository: arrayValue(source.repository).map(redact),
569
- treeDx: arrayValue(source.treeDx).map(redact),
570
- workflowOperations: arrayValue(source.workflowOperations).map(redact),
571
- secrets: arrayValue(source.secrets).map(redact),
572
- metadata: record(source.metadata)
573
- };
574
- }
575
- function providerAssignmentCapabilityHandlesContainSecretMaterial(value) {
576
- return Boolean(findSecretLikePath(value));
577
- }
578
- function validateProviderAssignmentCapabilityHandles(input) {
579
- const assignment = input.assignment;
580
- const handles = input.capabilityHandles ?? assignment.capabilityHandles ?? null;
581
- if (!handles) return null;
582
- const leakedPath = findSecretLikePath(handles);
583
- if (leakedPath) {
584
- return createAgentKernelModeFallback(
585
- "assignment_capability_handle_secret_material",
586
- `Assignment ${assignment.id} capability handles include secret-like material at ${leakedPath}.`,
587
- { retryable: false, metadata: { path: leakedPath } }
588
- );
589
- }
590
- const workspaceAccessMode = normalizeWorkspaceAccessMode(record(handles).workspaceAccessMode);
591
- const allHandles = capabilityHandleArrays(handles);
592
- for (const handle of allHandles) {
593
- if (!handle.id || !handle.kind) {
594
- return createAgentKernelModeFallback(
595
- "assignment_capability_handle_invalid",
596
- `Assignment ${assignment.id} has an invalid capability handle.`,
597
- { retryable: false }
598
- );
599
- }
600
- if (handle.teamId && handle.teamId !== assignment.teamId || handle.projectId && handle.projectId !== assignment.projectId || handle.assignmentId && handle.assignmentId !== assignment.id) {
601
- return createAgentKernelModeFallback(
602
- "assignment_capability_handle_invalid",
603
- `Assignment ${assignment.id} capability handle ${handle.id} is scoped to a different assignment.`,
604
- { retryable: false, metadata: { handleId: handle.id, kind: handle.kind } }
605
- );
606
- }
607
- if (handle.expiresAt && Date.parse(handle.expiresAt) <= (input.now ?? /* @__PURE__ */ new Date()).getTime()) {
608
- return createAgentKernelModeFallback(
609
- "assignment_capability_handle_invalid",
610
- `Assignment ${assignment.id} capability handle ${handle.id} has expired.`,
611
- { retryable: true, metadata: { handleId: handle.id, kind: handle.kind } }
612
- );
613
- }
614
- const operations = stringList(handle.operations);
615
- const writeCapable = operations.some((operation) => ["write", "commit", "push", "release", "dispatch_workflow", "files:write", "git:commit"].includes(operation));
616
- const planningContentWrite = writeCapable && planningContentArtifactWriteAllowed({ assignment, handle, operations });
617
- if (writeCapable && assignment.mode !== "acting" && !planningContentWrite) {
618
- return createAgentKernelModeFallback(
619
- "assignment_capability_handle_write_not_ready",
620
- `Assignment ${assignment.id} cannot receive write-capable capability handles outside acting mode.`,
621
- { retryable: false, metadata: { handleId: handle.id, kind: handle.kind, operations } }
622
- );
623
- }
624
- if (writeCapable && !planningContentWrite && !hasAcceptedCapacityPlanProvenance({
625
- assignment,
626
- decisionInput: input.decisionInput ?? null,
627
- capacityEnvelope: input.capacityEnvelope ?? null
628
- })) {
629
- return createAgentKernelModeFallback(
630
- "assignment_capability_handle_write_not_ready",
631
- `Assignment ${assignment.id} write-capable capability handles require accepted capacity-plan provenance.`,
632
- { retryable: true, metadata: { handleId: handle.id, kind: handle.kind } }
633
- );
634
- }
635
- if (workspaceAccessMode === "context_only" && writeCapable) {
636
- return createAgentKernelModeFallback(
637
- "assignment_capability_handle_workspace_denied",
638
- `Assignment ${assignment.id} context-only workspace mode cannot receive write-capable handles.`,
639
- { retryable: false, metadata: { handleId: handle.id, kind: handle.kind } }
640
- );
641
- }
642
- if (handle.kind === "workflow_operation") {
643
- const workflow = handle;
644
- if (!workflow.operationId || !workflow.repository || !workflow.workflowFile) {
645
- return createAgentKernelModeFallback(
646
- "assignment_workflow_operation_denied",
647
- `Assignment ${assignment.id} workflow operation handle ${handle.id} is missing operation scope.`,
648
- { retryable: false, metadata: { handleId: handle.id } }
649
- );
650
- }
651
- if (!operations.includes("dispatch_workflow")) {
652
- return createAgentKernelModeFallback(
653
- "assignment_workflow_operation_denied",
654
- `Assignment ${assignment.id} workflow operation handle ${handle.id} is not dispatch-capable.`,
655
- { retryable: false, metadata: { handleId: handle.id } }
656
- );
657
- }
658
- }
659
- }
660
- return null;
661
- }
662
- function globLikePathMatches(pattern, candidate) {
663
- const normalizedPattern = pattern.replace(/^\/+/, "");
664
- const normalizedCandidate = candidate.replace(/^\/+/, "");
665
- if (!normalizedPattern || normalizedPattern === "**" || normalizedPattern === "*") return true;
666
- if (normalizedPattern.endsWith("/**")) {
667
- const prefix = normalizedPattern.slice(0, -3);
668
- return normalizedCandidate === prefix || normalizedCandidate.startsWith(`${prefix}/`);
669
- }
670
- if (normalizedPattern.endsWith("*")) {
671
- return normalizedCandidate.startsWith(normalizedPattern.slice(0, -1));
672
- }
673
- return normalizedCandidate === normalizedPattern || normalizedCandidate.startsWith(`${normalizedPattern}/`);
674
- }
675
- function evaluateTreeDxProxyHandleAccess(handle, request) {
676
- if (!handle?.id) return { ok: false, code: "treedx_proxy_handle_missing", reason: "TreeDX proxy handle is required." };
677
- if (handle.status === "revoked" || handle.revokedAt) return { ok: false, code: "treedx_proxy_handle_revoked", reason: "TreeDX proxy handle has been revoked." };
678
- if (handle.status === "expired") return { ok: false, code: "treedx_proxy_handle_expired", reason: "TreeDX proxy handle has expired." };
679
- if (handle.projectId !== request.projectId || request.teamId && handle.teamId !== request.teamId) {
680
- return { ok: false, code: "treedx_proxy_scope_mismatch", reason: "TreeDX proxy handle scope does not match the project.", metadata: { projectId: request.projectId, handleProjectId: handle.projectId } };
681
- }
682
- if (request.assignmentId && handle.assignmentId && handle.assignmentId !== request.assignmentId) {
683
- return { ok: false, code: "treedx_proxy_assignment_mismatch", reason: "TreeDX proxy handle is bound to a different assignment.", metadata: { assignmentId: request.assignmentId, handleAssignmentId: handle.assignmentId } };
684
- }
685
- if (request.repositoryId && handle.repositoryId && handle.repositoryId !== request.repositoryId) {
686
- return { ok: false, code: "treedx_proxy_repository_mismatch", reason: "TreeDX proxy handle is bound to a different repository.", metadata: { repositoryId: request.repositoryId, handleRepositoryId: handle.repositoryId } };
687
- }
688
- if (request.workspaceId && handle.workspaceId && handle.workspaceId !== request.workspaceId) {
689
- return { ok: false, code: "treedx_proxy_workspace_mismatch", reason: "TreeDX proxy handle is bound to a different workspace.", metadata: { workspaceId: request.workspaceId, handleWorkspaceId: handle.workspaceId } };
690
- }
691
- if (handle.expiresAt && Date.parse(handle.expiresAt) <= (request.now ?? /* @__PURE__ */ new Date()).getTime()) {
692
- return { ok: false, code: "treedx_proxy_handle_expired", reason: "TreeDX proxy handle has expired." };
693
- }
694
- if (handle.token && request.token && handle.token !== request.token) {
695
- return { ok: false, code: "treedx_proxy_token_mismatch", reason: "TreeDX proxy handle token does not match." };
696
- }
697
- const operation = request.operation ? String(request.operation) : null;
698
- const allowedOperations = Array.isArray(handle.allowedOperations) ? handle.allowedOperations.map(String) : [];
699
- if (operation && allowedOperations.length && !allowedOperations.includes(operation) && !allowedOperations.includes("*")) {
700
- return { ok: false, code: "treedx_proxy_operation_denied", reason: "TreeDX proxy handle does not allow this operation.", metadata: { operation, allowedOperations } };
701
- }
702
- const path = request.path ? String(request.path).replace(/^\/+/, "") : null;
703
- const allowedPaths = Array.isArray(handle.allowedPaths) ? handle.allowedPaths.map(String).filter(Boolean) : [];
704
- if (path && allowedPaths.length && !allowedPaths.some((pattern) => globLikePathMatches(pattern, path))) {
705
- return { ok: false, code: "treedx_proxy_path_denied", reason: "TreeDX proxy handle does not allow this path.", metadata: { path, allowedPaths } };
706
- }
707
- return { ok: true };
708
- }
709
- function compileExecutionCapabilityDemand(input) {
710
- const agentProfile = input.agent?.execution.providerProfile;
711
- const decisionInput = record(input.decisionInput);
712
- const decisionPayload = record(decisionInput.input);
713
- const decisionMetadata = record(decisionInput.metadata);
714
- const capacityMetadata = record(record(input.capacityEnvelope).metadata);
715
- const workUnitMetadata = record(input.workUnit?.metadata);
716
- const assignmentMetadata = record(input.assignment?.metadata);
717
- const allowedOutputs = record(input.assignment?.allowedOutputs);
718
- const allowedPaths = uniqueStrings([
719
- ...stringList(input.agent?.execution.allowedPaths),
720
- ...stringList(input.workPackage?.constraints.allowedPaths)
721
- ]);
722
- const forbiddenPaths = uniqueStrings([
723
- ...stringList(input.agent?.execution.forbiddenPaths),
724
- ...stringList(input.workPackage?.constraints.forbiddenPaths)
725
- ]);
726
- const required = uniqueStrings([
727
- ...stringList(agentProfile?.requiredCapabilities),
728
- ...stringList(input.projectAgentClass?.requiredCapabilities),
729
- ...stringList(decisionPayload.requiredCapabilities),
730
- ...stringList(decisionMetadata.requiredCapabilities),
731
- ...stringList(capacityMetadata.requiredCapabilities),
732
- ...stringList(input.workUnit?.requiredCapabilities),
733
- ...stringList(workUnitMetadata.requiredCapabilities),
734
- ...stringList(assignmentMetadata.requiredCapabilities),
735
- ...stringList(input.workPackage?.constraints.requiredCapabilities)
736
- ]);
737
- const preferred = preferredCapabilitiesFromAgent(input.agent);
738
- const outputTypes = uniqueStrings([
739
- ...stringList(input.agent?.outputs.messageTypes),
740
- ...stringList(input.agent?.outputs.modelMutations),
741
- ...stringList(allowedOutputs.types),
742
- ...(input.workPackage?.expectedOutputs ?? []).map((entry) => entry.type).filter(Boolean)
743
- ]);
744
- const resourceNeeds = [];
745
- for (const need of input.resourceNeeds ?? []) {
746
- pushResourceNeed(resourceNeeds, need);
747
- }
748
- for (const handle of capabilityHandleArrays(input.assignment?.capabilityHandles)) {
749
- const need = handleResourceNeed(handle);
750
- if (need) pushResourceNeed(resourceNeeds, need);
751
- }
752
- const workspace = record(input.assignment?.workspaceContext);
753
- if (workspace.externalIssue || workspace.externalIssueKey) {
754
- pushResourceNeed(resourceNeeds, {
755
- kind: "external_issue",
756
- operations: ["read"],
757
- required: true,
758
- metadata: {
759
- externalRef: String(workspace.externalIssueKey ?? workspace.externalIssue)
760
- }
761
- });
762
- }
763
- if (workspace.externalJob || workspace.externalJobId) {
764
- pushResourceNeed(resourceNeeds, {
765
- kind: "external_job",
766
- operations: ["read"],
767
- required: true,
768
- metadata: {
769
- externalRef: String(workspace.externalJobId ?? workspace.externalJob)
770
- }
771
- });
772
- }
773
- return {
774
- required,
775
- preferred,
776
- mode: normalizeAgentExecutionMode(input.mode ?? input.assignment?.mode ?? input.workPackage?.constraints.mode ?? input.capacityEnvelope?.mode),
777
- resourceNeeds,
778
- outputTypes,
779
- metadata: {
780
- ...input.metadata ?? {},
781
- allowedPaths,
782
- forbiddenPaths,
783
- providerProfile: agentProfile ?? null
784
- }
785
- };
786
- }
787
- function compileExecutionCapabilitySupply(input) {
788
- const executionProvider = input.executionProvider ?? null;
789
- const availability = input.availabilitySession ?? null;
790
- const observation = record(executionProvider?.latestObservation);
791
- const config = record(executionProvider?.config);
792
- const activeGrants = (input.grants ?? []).filter((grant) => grant.state === "active");
793
- const pressure = input.pressure ?? (typeof record(availability?.runnerPressure).pressure === "string" ? record(availability?.runnerPressure).pressure : void 0) ?? (observation.throttleState === "exhausted" || observation.throttleState === "throttled" ? observation.throttleState : void 0) ?? "normal";
794
- return {
795
- capacityProviderId: input.capacityProviderId,
796
- executionProviderId: input.executionProviderId ?? executionProvider?.id ?? input.descriptor?.id ?? input.capacityProviderId,
797
- kind: input.kind ?? input.descriptor?.kind ?? executionProvider?.kind ?? "local_process",
798
- capabilities: uniqueStrings([
799
- ...stringList(input.descriptor?.capabilities),
800
- ...executionProvider?.kind ? [executionProvider.kind] : [],
801
- ...collectSupplyMetadataCapabilities(executionProvider),
802
- ...stringList(availability?.capabilities),
803
- ...stringList(input.providerCapabilities),
804
- ...stringList(input.checkInCapabilities)
805
- ]),
806
- aliases: uniqueStrings([
807
- ...stringList(input.descriptor?.capabilityAliases),
808
- ...collectSupplyMetadataAliases(executionProvider)
809
- ]),
810
- grants: uniqueStrings([
811
- ...activeGrants.map((grant) => grant.id),
812
- ...stringList(config.grants)
813
- ]),
814
- availability: availability ? {
815
- sessionId: availability.id,
816
- status: availability.status,
817
- checkedInAt: availability.checkedInAt
818
- } : void 0,
819
- pressure,
820
- maxConcurrentAssignments: input.descriptor?.maxConcurrentAssignments ?? executionProvider?.maxConcurrentWorkers ?? input.maxConcurrentAssignments ?? 1,
821
- nativeUnit: input.descriptor?.nativeUnit ?? executionProvider?.nativeUnit ?? "assignment",
822
- quotaVisibility: input.descriptor?.quotaVisibility ?? executionProvider?.quotaVisibility ?? "opaque",
823
- metadata: {
824
- ...input.metadata ?? {},
825
- activeGrantScopes: activeGrants.map((grant) => grant.grantScope)
826
- }
827
- };
828
- }
829
- function evaluateExecutionProviderEligibility(input) {
830
- const requiredCapabilities = uniqueStrings(input.demand.required);
831
- const preferredCapabilities = uniqueStrings(input.demand.preferred ?? []);
832
- const availableCapabilities = uniqueStrings(input.supply.capabilities);
833
- const aliasCapabilities = uniqueStrings(input.supply.aliases ?? []);
834
- const covered = /* @__PURE__ */ new Set([...availableCapabilities, ...aliasCapabilities]);
835
- const missingCapabilities = requiredCapabilities.filter((capability) => !covered.has(capability));
836
- const gates = {
837
- grantMatches: booleanDefault(input.gates?.grantMatches, true),
838
- availabilityMatches: booleanDefault(input.gates?.availabilityMatches, true),
839
- runnerPressureAllows: booleanDefault(input.gates?.runnerPressureAllows, pressureAllows(input.supply.pressure)),
840
- budgetAllows: booleanDefault(input.gates?.budgetAllows, true),
841
- readinessAllows: booleanDefault(input.gates?.readinessAllows, true),
842
- capabilityHandlesCanBeIssued: booleanDefault(input.gates?.capabilityHandlesCanBeIssued, true)
843
- };
844
- const reasonCodes = [
845
- ...missingCapabilities.map((capability) => `missing_capability:${capability}`),
846
- ...gates.grantMatches ? [] : ["grant_mismatch"],
847
- ...gates.availabilityMatches ? [] : ["availability_mismatch"],
848
- ...gates.runnerPressureAllows ? [] : ["runner_pressure_blocked"],
849
- ...gates.budgetAllows ? [] : ["budget_blocked"],
850
- ...gates.readinessAllows ? [] : ["readiness_blocked"],
851
- ...gates.capabilityHandlesCanBeIssued ? [] : ["capability_handle_blocked"]
852
- ];
853
- return {
854
- eligible: missingCapabilities.length === 0 && Object.values(gates).every(Boolean),
855
- requiredCapabilities,
856
- preferredCapabilities,
857
- availableCapabilities,
858
- aliasCapabilities,
859
- missingCapabilities,
860
- reasonCodes,
861
- gates,
862
- metadata: input.gates?.metadata
863
- };
864
- }
865
- function buildProviderAssignmentExplanation(input) {
866
- return {
867
- teamId: "",
868
- assignmentId: "",
869
- source: input.source,
870
- sourceId: input.sourceId ?? null,
871
- eligible: input.eligible,
872
- reasons: input.reasons ?? [],
873
- gates: input.gates ?? {},
874
- allocationPolicyVersion: input.allocationPolicyVersion ?? null,
875
- grantScope: input.grantScope ?? null,
876
- metadata: input.metadata ?? {}
877
- };
878
- }
879
- function buildExecutionProviderAssignmentExplanation(input) {
880
- return buildProviderAssignmentExplanation({
881
- source: input.source,
882
- sourceId: input.sourceId,
883
- eligible: input.eligibility.eligible,
884
- reasons: input.eligibility.reasonCodes,
885
- allocationPolicyVersion: input.allocationPolicyVersion ?? null,
886
- grantScope: input.grantScope ?? null,
887
- gates: {
888
- requiredCapabilities: input.eligibility.requiredCapabilities,
889
- preferredCapabilities: input.eligibility.preferredCapabilities,
890
- availableCapabilities: input.eligibility.availableCapabilities,
891
- aliasCapabilities: input.eligibility.aliasCapabilities,
892
- missingCapabilities: input.eligibility.missingCapabilities,
893
- selectedProvider: input.supply.capacityProviderId,
894
- selectedExecutionProvider: input.supply.executionProviderId,
895
- executionProviderKind: input.supply.kind,
896
- grantId: input.grantId ?? null,
897
- grantScope: input.grantScope ?? null,
898
- readinessGate: input.readinessGate ?? null,
899
- allocationBudgetGate: input.allocationBudgetGate ?? null,
900
- capabilityHandleGate: input.capabilityHandleGate ?? null,
901
- demand: input.demand,
902
- supply: input.supply,
903
- eligibility: input.eligibility
904
- },
905
- metadata: input.metadata
906
- });
907
- }
908
- function visibilityGateRecord(input) {
909
- const assignment = record(input.assignment);
910
- const explicitExplanation = record(input.explanation);
911
- const assignmentExplanation = record(assignment.explanation);
912
- const assignmentMetadata = record(assignment.metadata);
913
- const eligibility = record(assignmentMetadata.eligibility);
914
- const explicitGates = record(explicitExplanation.gates);
915
- const assignmentGates = record(assignmentExplanation.gates);
916
- if (Object.keys(explicitGates).length > 0) return explicitGates;
917
- if (Object.keys(assignmentGates).length > 0) return assignmentGates;
918
- return record(eligibility.gates);
919
- }
920
- function visibilityReasonCodes(input) {
921
- const eligibility = record(input.gates.eligibility);
922
- const explicitExplanation = record(input.explanation);
923
- const assignmentExplanation = record(record(input.assignment).explanation);
924
- return uniqueStrings([
925
- ...stringList(eligibility.reasonCodes),
926
- ...stringList(explicitExplanation.reasons),
927
- ...stringList(assignmentExplanation.reasons)
928
- ]);
929
- }
930
- function visibilityCapabilityEligible(input) {
931
- const eligibility = record(input.gates.eligibility);
932
- return booleanOrNull(eligibility.eligible) ?? booleanOrNull(record(input.explanation).eligible) ?? booleanOrNull(record(record(input.assignment).explanation).eligible);
933
- }
934
- function summarizeExecutionProviderVisibility(input) {
935
- const assignment = record(input.assignment);
936
- const modeRun = record(input.modeRun);
937
- const explanation = record(input.explanation);
938
- const lifecycleOutput = record(assignment.lifecycleOutput);
939
- const lifecycleMetadata = record(lifecycleOutput.metadata);
940
- const modeOutputs = record(modeRun.outputs);
941
- const modeOutputMetadata = record(modeOutputs.metadata);
942
- const modeMetadata = record(modeRun.metadata);
943
- const traceRefs = record(modeRun.traceRefs);
944
- const gates = visibilityGateRecord({ assignment, explanation });
945
- const supply = record(gates.supply);
946
- const capabilitySupply = record(gates.capabilitySupply);
947
- const eligibility = record(gates.eligibility);
948
- const selectedExecutionProvider = firstString(
949
- gates.selectedExecutionProvider,
950
- supply.executionProviderId,
951
- capabilitySupply.executionProviderId,
952
- modeRun.executionProviderId,
953
- assignment.executionProviderId
954
- );
955
- const executionProviderKind = firstString(
956
- gates.executionProviderKind,
957
- supply.kind,
958
- capabilitySupply.kind,
959
- assignment.executionProviderKind,
960
- record(assignment.metadata).executionProviderKind,
961
- modeOutputMetadata.provider,
962
- modeMetadata.provider,
963
- lifecycleMetadata.provider
964
- );
965
- return {
966
- executionProviderId: firstString(
967
- modeRun.executionProviderId,
968
- assignment.executionProviderId,
969
- selectedExecutionProvider
970
- ),
971
- executionProviderKind,
972
- adapterStatus: firstString(
973
- modeOutputs.status,
974
- modeOutputMetadata.executionStatus,
975
- modeMetadata.executionStatus,
976
- lifecycleMetadata.executionStatus,
977
- lifecycleOutput.status,
978
- assignment.status
979
- ),
980
- externalRef: firstString(
981
- modeOutputs.externalRef,
982
- traceRefs.externalRef,
983
- lifecycleOutput.externalRef,
984
- lifecycleMetadata.externalRef
985
- ),
986
- externalUrl: firstString(
987
- modeOutputs.externalUrl,
988
- traceRefs.externalUrl,
989
- lifecycleOutput.externalUrl,
990
- lifecycleMetadata.externalUrl
991
- ),
992
- blockerReason: firstString(
993
- modeRun.fallbackReason,
994
- modeOutputs.blockerReason,
995
- modeOutputMetadata.blockerReason,
996
- lifecycleOutput.blockerReason,
997
- lifecycleMetadata.blockerReason,
998
- assignment.lifecycleReason,
999
- assignment.lifecycleCode
1000
- ),
1001
- usage: firstArray(
1002
- modeOutputs.usage,
1003
- record(record(modeRun.usageActual).nativeUsage).executionUsage,
1004
- record(modeRun.usageActual).executionUsage,
1005
- lifecycleOutput.usage,
1006
- lifecycleMetadata.usage
1007
- ),
1008
- artifacts: firstArray(
1009
- modeOutputs.artifacts,
1010
- lifecycleOutput.artifacts,
1011
- lifecycleMetadata.artifacts
1012
- ),
1013
- requiredCapabilities: uniqueStrings([
1014
- ...stringList(gates.requiredCapabilities),
1015
- ...stringList(record(eligibility).requiredCapabilities)
1016
- ]),
1017
- preferredCapabilities: uniqueStrings([
1018
- ...stringList(gates.preferredCapabilities),
1019
- ...stringList(record(eligibility).preferredCapabilities)
1020
- ]),
1021
- availableCapabilities: uniqueStrings([
1022
- ...stringList(gates.availableCapabilities),
1023
- ...stringList(record(eligibility).availableCapabilities),
1024
- ...stringList(supply.capabilities),
1025
- ...stringList(capabilitySupply.capabilities)
1026
- ]),
1027
- aliasCapabilities: uniqueStrings([
1028
- ...stringList(gates.aliasCapabilities),
1029
- ...stringList(record(eligibility).aliasCapabilities),
1030
- ...stringList(supply.aliases),
1031
- ...stringList(capabilitySupply.aliases)
1032
- ]),
1033
- missingCapabilities: uniqueStrings([
1034
- ...stringList(gates.missingCapabilities),
1035
- ...stringList(record(eligibility).missingCapabilities)
1036
- ]),
1037
- selectedProvider: firstString(
1038
- gates.selectedProvider,
1039
- supply.capacityProviderId,
1040
- capabilitySupply.capacityProviderId,
1041
- assignment.capacityProviderId,
1042
- assignment.providerId
1043
- ),
1044
- selectedExecutionProvider,
1045
- capabilityEligible: visibilityCapabilityEligible({ assignment, explanation, gates }),
1046
- reasonCodes: visibilityReasonCodes({ assignment, explanation, gates }),
1047
- metadata: {
1048
- sources: {
1049
- assignment: Object.keys(assignment).length > 0,
1050
- modeRun: Object.keys(modeRun).length > 0,
1051
- explanation: Object.keys(explanation).length > 0
1052
- }
1053
- }
1054
- };
1055
- }
1056
- function decorateExecutionProviderVisibility(recordInput, options = {}) {
1057
- return {
1058
- ...recordInput,
1059
- executionVisibility: summarizeExecutionProviderVisibility({
1060
- assignment: options.modeRun ? null : recordInput,
1061
- modeRun: options.modeRun ?? null,
1062
- explanation: options.explanation ?? record(recordInput.explanation)
1063
- })
1064
- };
1065
- }
1066
- function evaluateFallbackQuota(input) {
1067
- const quota = Number(input.quota);
1068
- if (!Number.isFinite(quota) || quota < 0) return null;
1069
- const existing = Number(input.existingCount ?? 0);
1070
- if (existing < quota) return null;
1071
- return createAgentKernelModeFallback(
1072
- "assignment_fallback_quota_exceeded",
1073
- "Fallback output quota is exhausted for this project scope.",
1074
- { retryable: true, metadata: { quota, existingCount: existing } }
1075
- );
1076
- }
1077
- function deriveAllocationSetFromCapacityGrants(input) {
1078
- const timestamp = input.now ?? (/* @__PURE__ */ new Date()).toISOString();
1079
- return {
1080
- id: input.id,
1081
- teamId: input.teamId,
1082
- version: input.version ?? timestamp,
1083
- status: input.status ?? "draft",
1084
- effectiveFrom: null,
1085
- effectiveUntil: null,
1086
- policy: {
1087
- source: "capacity_grants",
1088
- grantCount: input.grants.length
1089
- },
1090
- slices: input.grants.map((grant) => ({
1091
- projectId: grant.projectId,
1092
- capacityProviderId: grant.capacityProviderId,
1093
- laneId: grant.laneId,
1094
- environment: grant.environment,
1095
- priorityWeight: grant.priorityWeight,
1096
- overflowPolicy: grant.overflowPolicy,
1097
- percent: grant.portfolioAllocationPercent ?? null,
1098
- dailyCreditLimit: grant.dailyCreditLimit,
1099
- monthlyCreditLimit: grant.monthlyCreditLimit,
1100
- metadata: grant.metadata ?? {}
1101
- })),
1102
- createdById: input.createdById ?? null,
1103
- activatedAt: null,
1104
- supersededById: null,
1105
- metadata: input.metadata ?? {},
1106
- createdAt: timestamp,
1107
- updatedAt: timestamp
1108
- };
1109
- }
1110
- function deriveProviderAvailabilitySession(input) {
1111
- const timestamp = input.now ?? (/* @__PURE__ */ new Date()).toISOString();
1112
- return {
1113
- id: input.id,
1114
- teamId: input.provider.teamId ?? input.provider.ownerTeamId ?? "",
1115
- capacityProviderId: input.provider.id,
1116
- registrationId: input.registrationId ?? null,
1117
- environment: input.environment ?? null,
1118
- status: input.provider.status === "draining" ? "draining" : "open",
1119
- checkedInAt: timestamp,
1120
- availableFrom: timestamp,
1121
- availableUntil: null,
1122
- executionProviders: input.executionProviders ?? [],
1123
- capabilities: Array.isArray(input.provider.capabilities) ? input.provider.capabilities.map(String) : [],
1124
- grants: input.grants ?? [],
1125
- nativeLimits: record(input.provider.metadata?.nativeLimits),
1126
- runnerPressure: input.runnerPressure ?? record(input.provider.metadata?.lastHealth),
1127
- constraints: input.constraints ?? {},
1128
- metadata: input.metadata ?? {},
1129
- createdAt: timestamp,
1130
- updatedAt: timestamp,
1131
- closedAt: null
1132
- };
1133
- }
1134
- function deriveAgentCapacityPlanFromCapacityPlan(plan) {
1135
- const raw = record(plan);
1136
- const project = record(raw.project);
1137
- const capacity = record(raw.capacity ?? raw.summary);
1138
- const providers = Array.isArray(raw.providers) ? raw.providers : [];
1139
- return {
1140
- teamId: String(raw.teamId ?? project.teamId ?? ""),
1141
- projectId: String(raw.projectId ?? project.id ?? ""),
1142
- environment: String(raw.environment ?? "staging"),
1143
- allocationSetId: typeof raw.allocationSetId === "string" ? raw.allocationSetId : null,
1144
- workday: {
1145
- teamId: String(raw.teamId ?? project.teamId ?? ""),
1146
- projectId: String(raw.projectId ?? project.id ?? ""),
1147
- workDayId: typeof raw.workDayId === "string" ? raw.workDayId : null,
1148
- environment: String(raw.environment ?? "staging"),
1149
- availableCredits: numberOrNull(capacity.availableCredits),
1150
- reservedCredits: numberOrNull(capacity.reservedCredits),
1151
- consumedCredits: numberOrNull(capacity.consumedCredits),
1152
- metadata: capacity
1153
- },
1154
- assignableProviders: providers.map((provider) => {
1155
- const entry = record(provider);
1156
- return {
1157
- capacityProviderId: String(entry.id ?? entry.capacityProviderId ?? ""),
1158
- executionProviderId: typeof entry.executionProviderId === "string" ? entry.executionProviderId : null,
1159
- laneId: typeof entry.laneId === "string" ? entry.laneId : null,
1160
- availableCredits: numberOrNull(entry.availableCredits),
1161
- reasons: Array.isArray(entry.reasons) ? entry.reasons.map(String) : [],
1162
- metadata: entry
1163
- };
1164
- }).filter((provider) => provider.capacityProviderId),
1165
- legacyPlan: plan,
1166
- metadata: {
1167
- source: "legacy_capacity_plan"
1168
- }
1169
- };
1170
- }
1171
- function deriveAgentCapacityEnvelopeFromReservation(input) {
1172
- const reservation = input.reservation;
1173
- return {
1174
- teamId: reservation.teamId,
1175
- projectId: reservation.projectId,
1176
- workDayId: reservation.workDayId,
1177
- environment: input.environment ?? null,
1178
- allocationSetId: input.allocationSetId ?? null,
1179
- mode: input.mode,
1180
- projectAgentClassId: input.projectAgentClassId ?? null,
1181
- capacityProviderId: reservation.capacityProviderId,
1182
- executionProviderId: reservation.executionProviderId ?? null,
1183
- laneId: reservation.laneId,
1184
- reservationId: reservation.id,
1185
- availableCredits: null,
1186
- reservedCredits: reservation.reservedCredits,
1187
- consumedCredits: reservation.consumedCredits,
1188
- nativeUnit: reservation.nativeUnit ?? null,
1189
- reservedNativeAmount: reservation.reservedNativeAmount ?? null,
1190
- limits: input.limits ?? {},
1191
- metadata: {
1192
- ...reservation.metadata ?? {},
1193
- ...input.metadata ?? {}
1194
- }
1195
- };
1196
- }
1197
- function deriveModeRunUsageSettlement(actual) {
1198
- return {
1199
- taskUsageActualId: actual.id,
1200
- capacityLedgerEntryId: typeof actual.metadata?.capacityLedgerEntryId === "string" ? actual.metadata.capacityLedgerEntryId : null,
1201
- actualCredits: actual.actualCredits,
1202
- actualUsd: actual.actualUsd,
1203
- nativeUsage: record(actual.nativeUsage),
1204
- metadata: actual.metadata ?? {}
1205
- };
1206
- }
1207
- function isAgentExecutionMode(value) {
1208
- return value === "planning" || value === "acting";
1209
- }
1210
- function normalizeAgentExecutionMode(value, fallback = "planning") {
1211
- return isAgentExecutionMode(value) ? value : fallback;
1212
- }
1213
- function createAgentKernelModeFallback(code, reason, options = {}) {
1214
- return {
1215
- code,
1216
- reason,
1217
- retryable: options.retryable ?? true,
1218
- metadata: options.metadata ?? {}
1219
- };
1220
- }
1221
- function isAgentModeAllowedForClass(mode, agentClass, profile) {
1222
- if (agentClass?.status && agentClass.status !== "active") return false;
1223
- const classModes = Array.isArray(agentClass?.allowedModes) ? agentClass.allowedModes : [];
1224
- if (classModes.length && !classModes.includes(mode)) return false;
1225
- const profileModes = Array.isArray(profile?.allowedModes) ? profile.allowedModes : [];
1226
- if (profileModes.length && !profileModes.includes(mode)) return false;
1227
- return true;
1228
- }
1229
- function deriveAgentCapacityEnvelopeFromAssignment(assignment) {
1230
- const envelope = record(assignment.capacityEnvelope);
1231
- return {
1232
- teamId: String(envelope.teamId ?? assignment.teamId),
1233
- projectId: String(envelope.projectId ?? assignment.projectId),
1234
- workDayId: typeof envelope.workDayId === "string" ? envelope.workDayId : assignment.workDayId ?? null,
1235
- environment: typeof envelope.environment === "string" ? envelope.environment : null,
1236
- allocationSetId: typeof envelope.allocationSetId === "string" ? envelope.allocationSetId : assignment.allocationSetId ?? null,
1237
- mode: normalizeAgentExecutionMode(envelope.mode ?? assignment.mode),
1238
- projectAgentClassId: typeof envelope.projectAgentClassId === "string" ? envelope.projectAgentClassId : assignment.projectAgentClassId,
1239
- capacityProviderId: typeof envelope.capacityProviderId === "string" ? envelope.capacityProviderId : assignment.capacityProviderId,
1240
- executionProviderId: typeof envelope.executionProviderId === "string" ? envelope.executionProviderId : assignment.executionProviderId ?? null,
1241
- laneId: typeof envelope.laneId === "string" ? envelope.laneId : null,
1242
- reservationId: typeof envelope.reservationId === "string" ? envelope.reservationId : assignment.reservationId ?? null,
1243
- nativeUnit: typeof envelope.nativeUnit === "string" ? envelope.nativeUnit : null,
1244
- reservedNativeAmount: numberOrNull(envelope.reservedNativeAmount),
1245
- availableCredits: numberOrNull(envelope.availableCredits),
1246
- reservedCredits: numberOrNull(envelope.reservedCredits),
1247
- consumedCredits: numberOrNull(envelope.consumedCredits),
1248
- limits: record(envelope.limits),
1249
- metadata: record(envelope.metadata)
1250
- };
1251
- }
1252
- function deriveDecisionExecutionInputFromAssignment(assignment) {
1253
- const decision = record(assignment.decisionInput);
1254
- return {
1255
- teamId: String(decision.teamId ?? assignment.teamId),
1256
- projectId: String(decision.projectId ?? assignment.projectId),
1257
- projectAgentClassId: String(decision.projectAgentClassId ?? assignment.projectAgentClassId),
1258
- mode: normalizeAgentExecutionMode(decision.mode ?? assignment.mode),
1259
- taskId: typeof decision.taskId === "string" ? decision.taskId : assignment.taskId ?? null,
1260
- workDayId: typeof decision.workDayId === "string" ? decision.workDayId : assignment.workDayId ?? null,
1261
- agentId: typeof decision.agentId === "string" ? decision.agentId : assignment.agentId ?? null,
1262
- handlerId: typeof decision.handlerId === "string" ? decision.handlerId : assignment.handlerId ?? null,
1263
- capacity: deriveAgentCapacityEnvelopeFromAssignment(assignment),
1264
- input: record(decision.input),
1265
- metadata: record(decision.metadata)
1266
- };
1267
- }
1268
- function validateAgentKernelModeExecutionInput(input) {
1269
- const assignment = input.assignment;
1270
- const now = input.now instanceof Date ? input.now : new Date(input.now ?? Date.now());
1271
- if (isProviderAssignmentLeaseExpired(assignment, now)) {
1272
- return createAgentKernelModeFallback(
1273
- "assignment_lease_expired",
1274
- `Assignment ${assignment.id} lease expired before execution.`,
1275
- { retryable: true }
1276
- );
1277
- }
1278
- if (!assignment.projectId || !assignment.agentId && !deriveDecisionExecutionInputFromAssignment(assignment).agentId) {
1279
- return createAgentKernelModeFallback(
1280
- "assignment_missing_project_or_agent",
1281
- `Assignment ${assignment.id} is missing project or agent routing.`,
1282
- { retryable: false }
1283
- );
1284
- }
1285
- const mode = normalizeAgentExecutionMode(assignment.mode);
1286
- const profile = input.kernelProfile ?? input.projectAgentClass?.kernelProfile ?? null;
1287
- if (!isAgentModeAllowedForClass(mode, input.projectAgentClass, profile)) {
1288
- return createAgentKernelModeFallback(
1289
- "assignment_mode_not_allowed",
1290
- `Assignment ${assignment.id} mode ${mode} is not allowed for the project agent class.`,
1291
- { retryable: false }
1292
- );
1293
- }
1294
- const capacity = input.capacityEnvelope ?? deriveAgentCapacityEnvelopeFromAssignment(assignment);
1295
- if (capacity.mode !== mode) {
1296
- return createAgentKernelModeFallback(
1297
- "assignment_missing_capacity_envelope",
1298
- `Assignment ${assignment.id} capacity envelope does not match selected mode ${mode}.`,
1299
- { retryable: false }
1300
- );
1301
- }
1302
- const decision = input.decisionInput ?? deriveDecisionExecutionInputFromAssignment(assignment);
1303
- if (decision.mode !== mode || decision.projectId !== assignment.projectId) {
1304
- return createAgentKernelModeFallback(
1305
- "assignment_missing_decision_input",
1306
- `Assignment ${assignment.id} decision input does not match assignment scope.`,
1307
- { retryable: false }
1308
- );
1309
- }
1310
- if (mode === "acting" && input.readiness && !isDecisionReadyForActing(input.readiness)) {
1311
- return createAgentKernelModeFallback(
1312
- "assignment_decision_not_ready",
1313
- `Assignment ${assignment.id} is not ready for acting execution.`,
1314
- { retryable: true, metadata: { readiness: input.readiness } }
1315
- );
1316
- }
1317
- if (mode === "acting" && !input.readiness) {
1318
- return createAgentKernelModeFallback(
1319
- "assignment_decision_not_ready",
1320
- `Assignment ${assignment.id} is missing decision readiness for acting execution.`,
1321
- { retryable: true }
1322
- );
1323
- }
1324
- if (mode === "acting" && (!capacity.reservationId || Number(capacity.reservedCredits ?? 0) <= 0)) {
1325
- return createAgentKernelModeFallback(
1326
- "assignment_capacity_not_reserved",
1327
- `Assignment ${assignment.id} is missing reserved capacity for acting execution.`,
1328
- { retryable: true, metadata: { reservationId: capacity.reservationId ?? null, reservedCredits: capacity.reservedCredits ?? null } }
1329
- );
1330
- }
1331
- const activityType = String(record(decision.metadata).activityType ?? record(capacity.metadata).activityType ?? "");
1332
- const deterministicSystemReport = mode === "planning" && activityType === "reporting" && record(capacity.metadata).deterministicSystemReport === true;
1333
- if (mode === "planning" && !deterministicSystemReport && (!capacity.reservationId || Number(capacity.reservedCredits ?? 0) <= 0)) {
1334
- return createAgentKernelModeFallback(
1335
- "assignment_capacity_not_reserved",
1336
- `Assignment ${assignment.id} is missing reserved capacity for planning execution.`,
1337
- { retryable: true, metadata: { reservationId: capacity.reservationId ?? null, reservedCredits: capacity.reservedCredits ?? null, activityType: activityType || null } }
1338
- );
1339
- }
1340
- if (mode === "acting" && !hasAcceptedCapacityPlanProvenance({ assignment, decisionInput: decision, capacityEnvelope: capacity })) {
1341
- return createAgentKernelModeFallback(
1342
- "assignment_capacity_plan_not_accepted",
1343
- `Assignment ${assignment.id} is missing accepted capacity-plan provenance for acting execution.`,
1344
- { retryable: true }
1345
- );
1346
- }
1347
- const policyMaxAttempts = numberOrNull(record(input.kernelPolicy?.fallback).maxAttempts) ?? numberOrNull(record(input.projectAgentClass?.kernelPolicy?.fallback).maxAttempts) ?? numberOrNull(record(input.kernelProfile?.metadata).maxAttempts);
1348
- if (policyMaxAttempts !== null && Number(assignment.attemptCount ?? 0) >= policyMaxAttempts) {
1349
- return createAgentKernelModeFallback(
1350
- "assignment_retry_policy_exceeded",
1351
- `Assignment ${assignment.id} has exceeded kernel retry policy.`,
1352
- { retryable: false, metadata: { attemptCount: assignment.attemptCount ?? 0, maxAttempts: policyMaxAttempts } }
1353
- );
1354
- }
1355
- const assignmentMetadata = record(assignment.metadata);
1356
- const eligibility = record(assignmentMetadata.eligibility);
1357
- const eligibilityGates = record(eligibility.gates);
1358
- const explanationGates = record(record(assignment.explanation).gates);
1359
- const explanationSupply = record(explanationGates.supply);
1360
- const explanationCapabilitySupply = record(explanationGates.capabilitySupply);
1361
- const demand = compileExecutionCapabilityDemand({
1362
- projectAgentClass: input.projectAgentClass,
1363
- decisionInput: decision,
1364
- capacityEnvelope: capacity,
1365
- assignment,
1366
- mode
1367
- });
1368
- const requiredCapabilities = uniqueStrings([
1369
- ...demand.required,
1370
- ...stringList(input.projectAgentClass?.requiredCapabilities),
1371
- ...stringList(assignmentMetadata.requiredCapabilities),
1372
- ...stringList(record(decision.metadata).requiredCapabilities),
1373
- ...stringList(record(capacity.metadata).requiredCapabilities)
1374
- ]);
1375
- const availableCapabilities = uniqueStrings([
1376
- ...stringList(eligibilityGates.availableCapabilities),
1377
- ...stringList(explanationGates.availableCapabilities),
1378
- ...stringList(explanationGates.aliasCapabilities),
1379
- ...stringList(explanationSupply.capabilities),
1380
- ...stringList(explanationSupply.aliases),
1381
- ...stringList(explanationCapabilitySupply.capabilities),
1382
- ...stringList(explanationCapabilitySupply.aliases),
1383
- ...stringList(assignmentMetadata.availableCapabilities)
1384
- ]);
1385
- const missingCapabilities = requiredCapabilities.filter((capability) => !availableCapabilities.includes(capability));
1386
- if (requiredCapabilities.length && (!availableCapabilities.length || missingCapabilities.length)) {
1387
- return createAgentKernelModeFallback(
1388
- "assignment_eligibility_capability_mismatch",
1389
- `Assignment ${assignment.id} required capabilities were not covered by eligibility metadata.`,
1390
- { retryable: true, metadata: { requiredCapabilities, availableCapabilities, missingCapabilities, source: "execution_capability_eligibility" } }
1391
- );
1392
- }
1393
- const capabilityHandleFallback = validateProviderAssignmentCapabilityHandles({
1394
- assignment,
1395
- decisionInput: decision,
1396
- capacityEnvelope: capacity,
1397
- now
1398
- });
1399
- if (capabilityHandleFallback) return capabilityHandleFallback;
1400
- const proxyFallback = validateTreeDxProxyHandle(input.treedxProxyHandle ?? record(assignment.treedxProxyHandle), {
1401
- teamId: assignment.teamId,
1402
- projectId: assignment.projectId,
1403
- assignmentId: assignment.id
1404
- });
1405
- if (proxyFallback) return proxyFallback;
1406
- return null;
1407
- }
1408
- function selectAgentKernelModeDecision(observation) {
1409
- const planningReady = Math.max(0, Number(observation.planningReady ?? 0));
1410
- const actingReady = Math.max(0, Number(observation.actingReady ?? 0));
1411
- const fallbackReady = Math.max(0, Number(observation.fallbackReady ?? 0));
1412
- const planningBudget = Number(observation.planningBudgetCredits ?? 0);
1413
- const actingBudget = Number(observation.actingBudgetCredits ?? 0);
1414
- const hasPlanningBudget = !Number.isFinite(planningBudget) || planningBudget > 0;
1415
- const hasActingBudget = !Number.isFinite(actingBudget) || actingBudget > 0;
1416
- if (observation.modePreference === "planning" && planningReady > 0 && hasPlanningBudget) {
1417
- return { kind: "mode", mode: "planning", reason: "preferred_planning_ready", metadata: observation.metadata ?? {} };
1418
- }
1419
- if (observation.modePreference === "acting" && actingReady > 0 && hasActingBudget) {
1420
- return { kind: "mode", mode: "acting", reason: "preferred_acting_ready", metadata: observation.metadata ?? {} };
1421
- }
1422
- if (actingReady > 0 && hasActingBudget) {
1423
- return { kind: "mode", mode: "acting", reason: "acting_queue_ready", metadata: observation.metadata ?? {} };
1424
- }
1425
- if (planningReady > 0 && hasPlanningBudget) {
1426
- return { kind: "mode", mode: "planning", reason: "planning_queue_ready", metadata: observation.metadata ?? {} };
1427
- }
1428
- if (fallbackReady > 0) {
1429
- return { kind: "fallback", mode: null, reason: "fallback_queue_ready", metadata: observation.metadata ?? {} };
1430
- }
1431
- return { kind: "idle", mode: null, reason: "no_eligible_work", metadata: observation.metadata ?? {} };
1432
- }
1433
- function validateAgentKernelOutputs(input) {
1434
- const allowed = record(input.allowedOutputs);
1435
- if (!Object.keys(allowed).length) return { ok: true };
1436
- const outputs = record(input.outputs);
1437
- const allowedStatuses = Array.isArray(allowed.statuses) ? allowed.statuses.map(String) : [];
1438
- const status = typeof outputs.status === "string" ? outputs.status : null;
1439
- if (allowedStatuses.length && (!status || !allowedStatuses.includes(status))) {
1440
- return { ok: false, reason: `Output status ${status ?? "<missing>"} is not allowed for ${input.mode}.`, metadata: { status, allowedStatuses } };
1441
- }
1442
- const allowedTypes = Array.isArray(allowed.types) ? allowed.types.map(String) : [];
1443
- const metadata = record(outputs.metadata);
1444
- const outputType = typeof metadata.type === "string" ? metadata.type : typeof metadata.kind === "string" ? metadata.kind : null;
1445
- if (allowedTypes.length && (!outputType || !allowedTypes.includes(outputType))) {
1446
- return { ok: false, reason: `Output type ${outputType ?? "<missing>"} is not allowed for ${input.mode}.`, metadata: { outputType, allowedTypes } };
1447
- }
1448
- return { ok: true };
1449
- }
1450
- function treeDxProxyHeaders(handle) {
1451
- const headers = {
1452
- "x-treeseed-assignment-id": String(handle.assignmentId ?? ""),
1453
- "x-treeseed-treedx-proxy-handle-id": String(handle.id ?? "")
1454
- };
1455
- if (handle.token) headers["x-treeseed-treedx-proxy-handle"] = handle.token;
1456
- return Object.fromEntries(Object.entries(headers).filter(([, value]) => value));
1457
- }
1458
- function isAgentCapacityPlanStaleOrSuperseded(plan, currentScopeHash) {
1459
- if (plan.status === "superseded") return true;
1460
- return Boolean(currentScopeHash && plan.scopeHash && currentScopeHash !== plan.scopeHash);
1461
- }
1462
- function hasAcceptedCapacityPlanProvenance(input) {
1463
- const assignmentMetadata = record(input.assignment?.metadata);
1464
- const decisionMetadata = record(input.decisionInput?.metadata ?? record(input.assignment?.decisionInput).metadata);
1465
- const capacityMetadata = record(input.capacityEnvelope?.metadata ?? record(input.assignment?.capacityEnvelope).metadata);
1466
- const status = String(
1467
- assignmentMetadata.capacityPlanStatus ?? decisionMetadata.capacityPlanStatus ?? capacityMetadata.capacityPlanStatus ?? ""
1468
- );
1469
- const capacityPlanId = assignmentMetadata.capacityPlanId ?? decisionMetadata.capacityPlanId ?? capacityMetadata.capacityPlanId;
1470
- const synthesizedFrom = input.assignment?.synthesizedFrom ?? assignmentMetadata.synthesizedFrom ?? capacityMetadata.synthesizedFrom;
1471
- return Boolean(capacityPlanId && (["accepted", "scheduled", "active"].includes(status) || synthesizedFrom === "capacity_plan"));
1472
- }
1473
- function isProviderAssignmentLeaseExpired(assignment, now = /* @__PURE__ */ new Date()) {
1474
- if (!assignment.leaseExpiresAt) return false;
1475
- const expiresAt = Date.parse(assignment.leaseExpiresAt);
1476
- return Number.isFinite(expiresAt) && expiresAt <= now.getTime();
1477
- }
1478
- function isProviderAssignmentLeasable(assignment, now = /* @__PURE__ */ new Date()) {
1479
- if (assignment.status === "pending" && assignment.leaseState === "unleased") return true;
1480
- if (assignment.status === "returned" && assignment.leaseState === "released") return true;
1481
- if (assignment.leaseState === "leased" && isProviderAssignmentLeaseExpired(assignment, now)) return true;
1482
- return false;
1483
- }
1484
- const CAPACITY_RUNTIME_REASON_DETAILS = {
1485
- provider_inactive: {
1486
- title: "Provider is inactive",
1487
- message: "The capacity provider is not currently eligible to receive work.",
1488
- owner: "provider_operator",
1489
- nextAction: "Start or reactivate the provider runtime and confirm it is checking in.",
1490
- severity: "danger"
1491
- },
1492
- provider_session_not_open: {
1493
- title: "Provider session is not open",
1494
- message: "The provider has no open availability session for this assignment.",
1495
- owner: "provider_operator",
1496
- nextAction: "Open a provider session by running the provider manager check-in loop.",
1497
- severity: "danger"
1498
- },
1499
- outside_availability_window: {
1500
- title: "Outside availability window",
1501
- message: "The provider checked in, but its availability window does not cover the current time.",
1502
- owner: "provider_operator",
1503
- nextAction: "Adjust the provider availability window or wait until the window opens.",
1504
- severity: "warning"
1505
- },
1506
- missing_required_capability: {
1507
- title: "Missing required capability",
1508
- message: "No checked-in execution provider advertised all capabilities required by the assignment.",
1509
- owner: "team_admin",
1510
- nextAction: "Update provider grants/capabilities or assign the work to a provider that supports the required capability set.",
1511
- severity: "danger"
1512
- },
1513
- missing_checked_in_grant: {
1514
- title: "Grant was not checked in",
1515
- message: "The provider did not present the grant needed for this project, class, or mode.",
1516
- owner: "provider_operator",
1517
- nextAction: "Refresh provider configuration and check in with the expected grants.",
1518
- severity: "danger"
1519
- },
1520
- missing_active_grant: {
1521
- title: "Grant is not active",
1522
- message: "A matching grant exists but is not active for assignment leasing.",
1523
- owner: "team_admin",
1524
- nextAction: "Activate or replace the capacity grant before retrying the assignment.",
1525
- severity: "danger"
1526
- },
1527
- workday_not_active: {
1528
- title: "Workday is not active",
1529
- message: "The assignment cannot lease because its workday envelope is not active.",
1530
- owner: "team_admin",
1531
- nextAction: "Start or resume the workday, or move the work to an active envelope.",
1532
- severity: "warning"
1533
- },
1534
- decision_readiness_not_ready: {
1535
- title: "Decision is not ready",
1536
- message: "The underlying decision input has not reached execution readiness.",
1537
- owner: "project",
1538
- nextAction: "Resolve open questions, accept the proposal, or mark the decision readiness gate ready.",
1539
- severity: "warning"
1540
- },
1541
- capacity_plan_not_ready: {
1542
- title: "Capacity plan is not ready",
1543
- message: "Acting work requires an accepted, scheduled, or active capacity plan.",
1544
- owner: "project",
1545
- nextAction: "Accept or schedule the capacity plan generated during planning.",
1546
- severity: "warning"
1547
- },
1548
- runner_pressure_exhausted: {
1549
- title: "Runner pressure exhausted",
1550
- message: "The provider runner reported that local concurrency, quota, or pressure limits are exhausted.",
1551
- owner: "provider_operator",
1552
- nextAction: "Wait for active work to finish or increase provider-local runner capacity.",
1553
- severity: "warning"
1554
- },
1555
- allocation_exhausted: {
1556
- title: "Allocation exhausted",
1557
- message: "The matching allocation set does not have enough remaining credits for this assignment.",
1558
- owner: "team_admin",
1559
- nextAction: "Increase allocation, change routing, or defer lower-priority work.",
1560
- severity: "danger"
1561
- },
1562
- allocation_overrun_hold: {
1563
- title: "Allocation overrun hold",
1564
- message: "The assignment would exceed allocation policy and requires overrun approval.",
1565
- owner: "team_admin",
1566
- nextAction: "Approve the overrun or adjust the capacity plan before leasing.",
1567
- severity: "warning"
1568
- },
1569
- treedx_proxy_handle_missing: {
1570
- title: "TreeDX proxy handle missing",
1571
- message: "Content-scoped work requires an assignment-scoped TreeDX proxy handle.",
1572
- owner: "system",
1573
- nextAction: "Regenerate the assignment after TreeDX workspace access is available.",
1574
- severity: "danger"
1575
- },
1576
- treedx_proxy_scope_mismatch: {
1577
- title: "TreeDX proxy scope mismatch",
1578
- message: "The TreeDX proxy handle does not match the assignment project, workspace, or operation scope.",
1579
- owner: "system",
1580
- nextAction: "Issue a fresh scoped proxy handle for this assignment.",
1581
- severity: "danger"
1582
- },
1583
- treedx_proxy_operation_denied: {
1584
- title: "TreeDX operation denied",
1585
- message: "The requested TreeDX operation is outside the handle scope.",
1586
- owner: "project",
1587
- nextAction: "Update the agent capability requirements or issue a handle with the required operation.",
1588
- severity: "danger"
1589
- },
1590
- treedx_proxy_path_denied: {
1591
- title: "TreeDX path denied",
1592
- message: "The requested content path is outside the TreeDX handle path scope.",
1593
- owner: "project",
1594
- nextAction: "Constrain the work to allowed paths or update the approved path scope.",
1595
- severity: "danger"
1596
- },
1597
- local_content_write_blocked: {
1598
- title: "Local content write blocked",
1599
- message: "Content writes must go through TreeDX when assignment workspace handles are expected.",
1600
- owner: "project",
1601
- nextAction: "Use TreeDX workspace write/commit tools for content, and reserve local files for code and artifacts.",
1602
- severity: "danger"
1603
- },
1604
- treedx_workspace_required: {
1605
- title: "TreeDX workspace required",
1606
- message: "The assignment needs a TreeDX workspace before content mutation can begin.",
1607
- owner: "system",
1608
- nextAction: "Create or attach a TreeDX workspace and retry assignment synthesis.",
1609
- severity: "danger"
1610
- },
1611
- execution_provider_prepare_rejected: {
1612
- title: "Execution provider rejected preparation",
1613
- message: "The selected execution provider could not prepare the work package.",
1614
- owner: "provider_operator",
1615
- nextAction: "Inspect provider readiness, auth, sandbox, and adapter diagnostics.",
1616
- severity: "danger"
1617
- },
1618
- assignment_output_invalid: {
1619
- title: "Assignment output invalid",
1620
- message: "The agent completed with output that did not satisfy the assignment output contract.",
1621
- owner: "project",
1622
- nextAction: "Tighten the agent output contract or fix the handler/provider output mapping.",
1623
- severity: "danger"
1624
- }
1625
- };
1626
- function runtimeReasonDetails(code) {
1627
- return CAPACITY_RUNTIME_REASON_DETAILS[code] ?? {
1628
- title: code.split(/[_-]+/u).filter(Boolean).map((part) => part[0]?.toUpperCase() + part.slice(1)).join(" ") || "Runtime blocker",
1629
- message: "The assignment reported a runtime blocker that does not yet have a specialized explanation.",
1630
- owner: "system",
1631
- nextAction: "Inspect the assignment explanation gates and provider runner logs.",
1632
- severity: "warning"
1633
- };
1634
- }
1635
- function assignmentById(assignments) {
1636
- return new Map(assignments.map((assignment) => [assignment.id, assignment]));
1637
- }
1638
- function summarizeCapacityRuntimeDiagnostics(input) {
1639
- const assignments = input.assignments ?? [];
1640
- const explanations = input.explanations ?? [];
1641
- const byAssignment = assignmentById(assignments);
1642
- const diagnostics = [];
1643
- const addBlocker = (code, assignment, evidence = []) => {
1644
- const details = runtimeReasonDetails(code);
1645
- diagnostics.push({
1646
- code,
1647
- severity: details.severity,
1648
- title: details.title,
1649
- message: details.message,
1650
- owner: details.owner,
1651
- assignmentId: assignment?.id ?? null,
1652
- projectId: assignment?.projectId ?? input.projectId,
1653
- providerId: assignment?.capacityProviderId ?? null,
1654
- nextAction: details.nextAction,
1655
- evidence
1656
- });
1657
- };
1658
- for (const explanation of explanations) {
1659
- const assignment = byAssignment.get(explanation.assignmentId) ?? null;
1660
- for (const reason of explanation.reasons ?? []) {
1661
- addBlocker(reason, assignment, [
1662
- { label: "eligible", value: String(explanation.eligible) },
1663
- { label: "source", value: String(explanation.source ?? "unknown") }
1664
- ]);
1665
- }
1666
- }
1667
- for (const assignment of assignments) {
1668
- if (assignment.lifecycleCode) {
1669
- addBlocker(String(assignment.lifecycleCode), assignment, [
1670
- { label: "status", value: String(assignment.status) },
1671
- { label: "lease", value: String(assignment.leaseState) }
1672
- ]);
1673
- }
1674
- if (assignment.status === "failed") {
1675
- addBlocker("assignment_failed", assignment, [
1676
- { label: "reason", value: String(assignment.lifecycleReason ?? "not recorded") }
1677
- ]);
1678
- }
1679
- }
1680
- const auditAssignmentIds = new Set((input.treeDxProxyAudit ?? []).map((audit) => String(audit.assignmentId ?? "")).filter(Boolean));
1681
- for (const assignment of assignments) {
1682
- const handle = record(assignment.treedxProxyHandle);
1683
- if (handle.id && !auditAssignmentIds.has(assignment.id) && assignment.status !== "pending") {
1684
- addBlocker("treedx_proxy_audit_missing", assignment, [
1685
- { label: "handle", value: String(handle.id) },
1686
- { label: "status", value: String(assignment.status) }
1687
- ]);
1688
- }
1689
- }
1690
- const terminalPhases = /* @__PURE__ */ new Set(["task_completed_actual_settlement", "reservation_released", "task_failed_refund"]);
1691
- const assignmentLedger = /* @__PURE__ */ new Map();
1692
- for (const entry of input.ledgerEntries ?? []) {
1693
- const assignmentId = entry.assignmentId ?? null;
1694
- if (!assignmentId) continue;
1695
- assignmentLedger.set(assignmentId, [...assignmentLedger.get(assignmentId) ?? [], entry]);
1696
- }
1697
- for (const assignment of assignments) {
1698
- if (["completed", "failed", "returned"].includes(String(assignment.status))) {
1699
- const hasTerminal = (assignmentLedger.get(assignment.id) ?? []).some((entry) => terminalPhases.has(String(entry.phase)));
1700
- if (!hasTerminal && assignment.reservationId) {
1701
- addBlocker("settlement_missing", assignment, [
1702
- { label: "reservation", value: String(assignment.reservationId) },
1703
- { label: "status", value: String(assignment.status) }
1704
- ]);
1705
- }
1706
- }
1707
- }
1708
- const uniqueDiagnostics = Array.from(new Map(diagnostics.map((diagnostic2) => [
1709
- `${diagnostic2.assignmentId ?? "global"}:${diagnostic2.code}`,
1710
- diagnostic2
1711
- ])).values());
1712
- return {
1713
- projectId: input.projectId,
1714
- teamId: input.teamId,
1715
- generatedAt: input.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
1716
- assignments,
1717
- explanations,
1718
- modeRuns: input.modeRuns ?? [],
1719
- treeDxProxyAudit: input.treeDxProxyAudit ?? [],
1720
- ledgerEntries: input.ledgerEntries ?? [],
1721
- fallbackOutputs: input.fallbackOutputs ?? [],
1722
- diagnostics: uniqueDiagnostics
1723
- };
1724
- }
1725
- function validateCapacitySettlementInvariant(input) {
1726
- const violations = [];
1727
- const assignmentEntries = input.ledgerEntries.filter((entry) => !entry.assignmentId || entry.assignmentId === input.assignment.id);
1728
- const byPhase = /* @__PURE__ */ new Map();
1729
- for (const entry of assignmentEntries) {
1730
- byPhase.set(String(entry.phase), [...byPhase.get(String(entry.phase)) ?? [], entry]);
1731
- if (Number(entry.credits ?? 0) < 0) {
1732
- violations.push({ code: "negative_consumed_credits", message: `Ledger entry ${entry.id} has negative credits.`, severity: "error" });
1733
- }
1734
- }
1735
- const completion = byPhase.get("task_completed_actual_settlement") ?? [];
1736
- if (completion.length > 1) {
1737
- violations.push({ code: "duplicate_completion_settlement", message: `Assignment ${input.assignment.id} has ${completion.length} completion settlement entries.`, severity: "error" });
1738
- }
1739
- const releases = byPhase.get("reservation_released") ?? [];
1740
- if (input.reservation && releases.length) {
1741
- const consumed = Math.max(...completion.map((entry) => Number(entry.credits ?? 0)), Number(input.reservation.consumedCredits ?? 0), 0);
1742
- const reserved = Number(input.reservation.reservedCredits ?? 0);
1743
- const released = releases.reduce((sum, entry) => sum + Number(entry.credits ?? 0), 0);
1744
- if (released > Math.max(0, reserved - consumed) + 1e-6) {
1745
- violations.push({ code: "reservation_release_exceeds_unused", message: `Released ${released} credits exceeds unused reservation ${Math.max(0, reserved - consumed)}.`, severity: "error" });
1746
- }
1747
- }
1748
- const refunds = byPhase.get("task_failed_refund") ?? [];
1749
- if (input.reservation && refunds.reduce((sum, entry) => sum + Number(entry.credits ?? 0), 0) > Number(input.reservation.reservedCredits ?? 0) + 1e-6) {
1750
- violations.push({ code: "refund_exceeds_reserved", message: "Failure refund exceeds reserved credits.", severity: "error" });
1751
- }
1752
- if (input.assignment.status === "completed" && completion.length === 0 && input.assignment.reservationId) {
1753
- violations.push({ code: "completed_assignment_missing_settlement", message: "Completed assignment with a reservation has no completion settlement.", severity: "error" });
1754
- }
1755
- if (input.assignment.status === "completed") {
1756
- const hasModeRun = Boolean(input.assignment.lifecycleOutput?.modeRunId ?? input.assignment.lifecycleOutput?.usageActualId ?? completion.some((entry) => entry.modeRunId));
1757
- if (!hasModeRun) {
1758
- violations.push({ code: "completed_assignment_missing_mode_run_or_usage", message: "Completed assignment does not link a mode run or usage actual.", severity: "warning" });
1759
- }
1760
- }
1761
- if (input.assignment.mode === "acting" && !hasAcceptedCapacityPlanProvenance({ assignment: input.assignment })) {
1762
- violations.push({ code: "acting_assignment_missing_capacity_plan_provenance", message: "Acting assignment lacks accepted, scheduled, or active capacity-plan provenance.", severity: "error" });
1763
- }
1764
- const hasErrors = violations.some((violation) => violation.severity === "error");
1765
- return {
1766
- ok: violations.length === 0,
1767
- status: hasErrors ? "fail" : violations.length ? "warning" : "pass",
1768
- violations
1769
- };
1770
- }
1771
- export {
1772
- AGENT_ASSIGNMENT_WORKSPACE_ACCESS_MODES,
1773
- DEFAULT_WORKDAY_MODE_SPLITS,
1774
- buildAgentCapacityPlanDraft,
1775
- buildExecutionProviderAssignmentExplanation,
1776
- buildProviderAssignmentExplanation,
1777
- compileDecisionAssignmentGraphFromEstimates,
1778
- compileExecutionCapabilityDemand,
1779
- compileExecutionCapabilitySupply,
1780
- computeDecisionScopeHash,
1781
- createAgentKernelModeFallback,
1782
- decorateExecutionProviderVisibility,
1783
- deriveAgentCapacityEnvelopeFromAssignment,
1784
- deriveAgentCapacityEnvelopeFromReservation,
1785
- deriveAgentCapacityPlanFromCapacityPlan,
1786
- deriveAllocationSetFromCapacityGrants,
1787
- deriveDecisionExecutionInputFromAssignment,
1788
- deriveModeRunUsageSettlement,
1789
- deriveProviderAvailabilitySession,
1790
- evaluateExecutionProviderEligibility,
1791
- evaluateFallbackQuota,
1792
- evaluateTreeDxProxyHandleAccess,
1793
- hasAcceptedCapacityPlanProvenance,
1794
- isAgentCapacityPlanAccepted,
1795
- isAgentCapacityPlanStaleOrSuperseded,
1796
- isAgentExecutionMode,
1797
- isAgentModeAllowedForClass,
1798
- isDecisionExecutionInputAccepted,
1799
- isDecisionReadyForActing,
1800
- isPlanningInputOpen,
1801
- isProviderAssignmentCandidateEligible,
1802
- isProviderAssignmentLeasable,
1803
- isProviderAssignmentLeaseExpired,
1804
- normalizeAgentExecutionMode,
1805
- normalizeDecisionExecutionEstimate,
1806
- providerAssignmentCapabilityHandlesContainSecretMaterial,
1807
- redactedProviderAssignmentCapabilityHandles,
1808
- selectAgentKernelModeDecision,
1809
- summarizeCapacityRuntimeDiagnostics,
1810
- summarizeExecutionProviderVisibility,
1811
- treeDxProxyHeaders,
1812
- validateAgentKernelModeExecutionInput,
1813
- validateAgentKernelOutputs,
1814
- validateCapacitySettlementInvariant,
1815
- validateDecisionAssignmentGraph,
1816
- validateDecisionDependencySpec,
1817
- validateDeliverableContract,
1818
- validateDeliverableManifest,
1819
- validateProviderAssignmentCapabilityHandles,
1820
- validateStructuredAgentEstimate,
1821
- validateTreeDxProxyHandle
1822
- };