@treeseed/sdk 0.13.0-rc.12 → 0.13.0-rc.121

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 (510) hide show
  1. package/README.md +23 -9
  2. package/dist/.treeseed-build-complete.json +1 -0
  3. package/dist/accounts/account-contracts.d.ts +6 -0
  4. package/dist/agent-capacity/allocation.d.ts +0 -3
  5. package/dist/agent-capacity/allocation.js +0 -221
  6. package/dist/agent-capacity/artifact-mutation-receipt.d.ts +1 -1
  7. package/dist/agent-capacity/artifacts.d.ts +17 -1
  8. package/dist/agent-capacity/contracts/capacity/assignments/agent-execution.d.ts +4395 -0
  9. package/dist/agent-capacity/contracts/capacity/assignments/agent-execution.js +176 -0
  10. package/dist/agent-capacity/contracts/capacity/assignments/assignment-context-pack.d.ts +304 -0
  11. package/dist/agent-capacity/contracts/capacity/assignments/assignment-context-pack.js +44 -0
  12. package/dist/agent-capacity/contracts/capacity/assignments/assignment-records.d.ts +22 -2
  13. package/dist/agent-capacity/contracts/capacity/assignments/context-pack-compiler.d.ts +25 -0
  14. package/dist/agent-capacity/contracts/capacity/assignments/context-pack-compiler.js +67 -0
  15. package/dist/agent-capacity/contracts/capacity/communication/communication-records.d.ts +1 -1
  16. package/dist/agent-capacity/contracts/capacity/providers/supply-policy.d.ts +0 -2
  17. package/dist/agent-capacity/contracts/capacity/workdays/assignment-allocation.d.ts +82 -0
  18. package/dist/agent-capacity/contracts/capacity/workdays/assignment-allocation.js +115 -0
  19. package/dist/agent-capacity/contracts/capacity/workdays/capability-accounting.d.ts +142 -0
  20. package/dist/agent-capacity/contracts/capacity/workdays/capability-accounting.js +51 -0
  21. package/dist/agent-capacity/contracts/capacity/workdays/workday-allocation.d.ts +331 -0
  22. package/dist/agent-capacity/contracts/capacity/workdays/workday-allocation.js +135 -0
  23. package/dist/agent-capacity/contracts/capacity/workdays/workday-records.d.ts +3 -22
  24. package/dist/agent-capacity/contracts/configuration/configuration.js +1 -1
  25. package/dist/agent-capacity/contracts/operations/agent-team-clone.d.ts +218 -0
  26. package/dist/agent-capacity/contracts/operations/agent-team-clone.js +57 -0
  27. package/dist/agent-capacity/contracts/projects/agents/project-agent-class.d.ts +0 -1
  28. package/dist/agent-capacity/contracts/runtime/runtime-observability.d.ts +3 -3
  29. package/dist/agent-capacity/contracts/support/decision-work.d.ts +3 -27
  30. package/dist/agent-capacity/contracts/support/execution-graph.d.ts +1087 -0
  31. package/dist/agent-capacity/contracts/support/execution-graph.js +120 -0
  32. package/dist/agent-capacity/contracts/support/time-capacity.d.ts +0 -14
  33. package/dist/agent-capacity/contracts/support/time-capacity.js +1 -8
  34. package/dist/agent-capacity/validation/activity-profile.d.ts +1 -1
  35. package/dist/agent-capacity/validation/activity-profile.js +3 -259
  36. package/dist/agent-capacity/validation/agent-definition-schema.d.ts +2687 -8933
  37. package/dist/agent-capacity/validation/agent-definition-schema.js +64 -174
  38. package/dist/agent-capacity/validation/agent-lab-forensics-schema.d.ts +23 -23
  39. package/dist/agent-capacity/validation/assignment-records.js +1 -1
  40. package/dist/agent-capacity/validation/configuration.d.ts +1 -1
  41. package/dist/agent-capacity/validation/configuration.js +1 -2
  42. package/dist/agent-capacity/validation/execution/execution-graph.d.ts +1 -0
  43. package/dist/agent-capacity/validation/execution/execution-graph.js +16 -0
  44. package/dist/agent-capacity/validation/index.d.ts +2 -1
  45. package/dist/agent-capacity/validation/index.js +2 -1
  46. package/dist/capacity/agents/agent-capacity.d.ts +9 -1
  47. package/dist/capacity/agents/agent-capacity.js +8 -1
  48. package/dist/capacity-provider/capability-ontology.d.ts +1495 -0
  49. package/dist/capacity-provider/capability-ontology.js +221 -0
  50. package/dist/capacity-provider/client.d.ts +69 -0
  51. package/dist/capacity-provider/client.js +22 -1
  52. package/dist/capacity-provider/contracts/capacity-facts.d.ts +14 -0
  53. package/dist/capacity-provider/contracts/environment-profiles.d.ts +255 -0
  54. package/dist/capacity-provider/contracts/environment-profiles.js +71 -0
  55. package/dist/capacity-provider/contracts/governance.d.ts +109 -35
  56. package/dist/capacity-provider/contracts/index.d.ts +1 -0
  57. package/dist/capacity-provider/contracts/index.js +1 -0
  58. package/dist/capacity-provider/core-capability-catalog.d.ts +47 -0
  59. package/dist/capacity-provider/core-capability-catalog.js +49 -0
  60. package/dist/capacity-provider/environment-catalog.d.ts +877 -0
  61. package/dist/capacity-provider/environment-catalog.js +116 -0
  62. package/dist/capacity-provider/index.d.ts +5 -0
  63. package/dist/capacity-provider/index.js +5 -0
  64. package/dist/capacity-provider/install-configuration.d.ts +39 -0
  65. package/dist/capacity-provider/install-configuration.js +18 -0
  66. package/dist/capacity-provider/sandbox-contracts.d.ts +602 -0
  67. package/dist/capacity-provider/sandbox-contracts.js +90 -0
  68. package/dist/capacity-provider/sandbox.d.ts +2 -0
  69. package/dist/capacity-provider/sandbox.js +2 -0
  70. package/dist/capacity-provider/source-workspace.d.ts +642 -0
  71. package/dist/capacity-provider/source-workspace.js +126 -0
  72. package/dist/capacity-provider/validation.d.ts +2 -2
  73. package/dist/capacity-provider/validation.js +91 -55
  74. package/dist/configuration/secrets-capability.d.ts +5 -1
  75. package/dist/configuration/secrets-capability.js +5 -1
  76. package/dist/content/contracts.d.ts +1 -1
  77. package/dist/content/validation/agent-operational-content-schemas.d.ts +431 -780
  78. package/dist/content/validation/agent-operational-content-schemas.js +29 -57
  79. package/dist/content/validation/auxiliary-content-schemas.d.ts +208 -208
  80. package/dist/content/validation/content-model-schemas.d.ts +9362 -19159
  81. package/dist/content/validation/content-model-schemas.js +172 -43
  82. package/dist/content/validation/portable-content-data.d.ts +453 -1761
  83. package/dist/content/validation/portable-content-data.js +5 -4
  84. package/dist/deployment/ai/storage.d.ts +158 -0
  85. package/dist/deployment/ai/storage.js +32 -0
  86. package/dist/deployment/ai-hosting.d.ts +297 -0
  87. package/dist/deployment/ai-hosting.js +63 -0
  88. package/dist/deployment/ai-instance.d.ts +65 -0
  89. package/dist/deployment/ai-instance.js +30 -0
  90. package/dist/deployment/ai-mode.d.ts +454 -0
  91. package/dist/deployment/ai-mode.js +67 -0
  92. package/dist/deployment/canonical.d.ts +2 -0
  93. package/dist/deployment/canonical.js +17 -0
  94. package/dist/deployment/catalog.d.ts +16 -0
  95. package/dist/deployment/catalog.js +48 -0
  96. package/dist/deployment/hosted-topology-template.d.ts +449 -0
  97. package/dist/deployment/hosted-topology-template.js +56 -0
  98. package/dist/deployment/hosted-topology.d.ts +2698 -0
  99. package/dist/deployment/hosted-topology.js +468 -0
  100. package/dist/deployment/index.d.ts +13 -0
  101. package/dist/deployment/index.js +13 -0
  102. package/dist/deployment/postgres/contracts.d.ts +418 -0
  103. package/dist/deployment/postgres/contracts.js +83 -0
  104. package/dist/deployment/postgres/requirements.d.ts +15 -0
  105. package/dist/deployment/postgres/requirements.js +32 -0
  106. package/dist/deployment/postgres/transfer.d.ts +97 -0
  107. package/dist/deployment/postgres/transfer.js +29 -0
  108. package/dist/deployment/schemas.d.ts +8625 -0
  109. package/dist/deployment/schemas.js +455 -0
  110. package/dist/deployment/topology.d.ts +9 -0
  111. package/dist/deployment/topology.js +35 -0
  112. package/dist/development/index.d.ts +1 -0
  113. package/dist/development/index.js +1 -0
  114. package/dist/development/schemas.d.ts +3594 -0
  115. package/dist/development/schemas.js +204 -0
  116. package/dist/development/session-migration.d.ts +3 -0
  117. package/dist/development/session-migration.js +25 -0
  118. package/dist/entrypoints/clients/control-plane-client.d.ts +9 -1
  119. package/dist/entrypoints/clients/control-plane-client.js +17 -5
  120. package/dist/graph/context-query-contracts.d.ts +16 -1
  121. package/dist/graph/context-query-contracts.js +5 -0
  122. package/dist/guarantees/evidence-trust.d.ts +32 -0
  123. package/dist/guarantees/evidence-trust.js +47 -0
  124. package/dist/guarantees/index.d.ts +130 -0
  125. package/dist/guarantees/index.js +44 -0
  126. package/dist/identity/browser-session.d.ts +233 -0
  127. package/dist/identity/browser-session.js +51 -0
  128. package/dist/identity/contracts.d.ts +191 -0
  129. package/dist/identity/contracts.js +72 -0
  130. package/dist/identity/index.d.ts +3 -0
  131. package/dist/identity/index.js +3 -0
  132. package/dist/identity/runtime.d.ts +186 -0
  133. package/dist/identity/runtime.js +49 -0
  134. package/dist/model-registry/agent-operational-models.d.ts +1 -1
  135. package/dist/model-registry/agent-operational-models.js +1 -4
  136. package/dist/model-registry/build-builtin-model-registry.js +44 -72
  137. package/dist/operator-contracts/canonical-command-tree.js +397 -43
  138. package/dist/operator-contracts/catalog/admin-account-team-operations.d.ts +36 -0
  139. package/dist/operator-contracts/catalog/admin-account-team-operations.js +52 -0
  140. package/dist/operator-contracts/catalog/agents/agent-team-clone-operations.d.ts +75 -0
  141. package/dist/operator-contracts/catalog/agents/agent-team-clone-operations.js +42 -0
  142. package/dist/operator-contracts/catalog/capability-ontology-operations.d.ts +163 -0
  143. package/dist/operator-contracts/catalog/capability-ontology-operations.js +24 -0
  144. package/dist/operator-contracts/catalog/commands/command-tree-builders.d.ts +60 -0
  145. package/dist/operator-contracts/catalog/commands/command-tree-builders.js +191 -0
  146. package/dist/operator-contracts/catalog/communication-operations.d.ts +439 -0
  147. package/dist/operator-contracts/catalog/communication-operations.js +92 -0
  148. package/dist/operator-contracts/catalog/control-plane-catalog.d.ts +6 -0
  149. package/dist/operator-contracts/catalog/control-plane-catalog.js +18 -0
  150. package/dist/operator-contracts/catalog/execution/execution-operations.d.ts +36 -0
  151. package/dist/operator-contracts/catalog/execution/execution-operations.js +39 -0
  152. package/dist/operator-contracts/catalog/hosted-topology-operations.d.ts +399 -0
  153. package/dist/operator-contracts/catalog/hosted-topology-operations.js +79 -0
  154. package/dist/operator-contracts/catalog/inbox-operations.d.ts +265 -0
  155. package/dist/operator-contracts/catalog/inbox-operations.js +36 -0
  156. package/dist/operator-contracts/catalog/infrastructure/ai-instance-operations.d.ts +53 -0
  157. package/dist/operator-contracts/catalog/infrastructure/ai-instance-operations.js +23 -0
  158. package/dist/operator-contracts/catalog/infrastructure/command-tree-paths.d.ts +3 -0
  159. package/dist/operator-contracts/catalog/infrastructure/command-tree-paths.js +15 -0
  160. package/dist/operator-contracts/catalog/knowledge-share-operations.d.ts +127 -0
  161. package/dist/operator-contracts/catalog/knowledge-share-operations.js +25 -0
  162. package/dist/operator-contracts/catalog/provider-environment-commands.d.ts +4 -0
  163. package/dist/operator-contracts/catalog/provider-environment-commands.js +69 -0
  164. package/dist/operator-contracts/catalog/provider-environment-operations.d.ts +41 -0
  165. package/dist/operator-contracts/catalog/provider-environment-operations.js +61 -0
  166. package/dist/operator-contracts/catalog/services/identity-commands.d.ts +2 -0
  167. package/dist/operator-contracts/catalog/services/identity-commands.js +13 -0
  168. package/dist/operator-contracts/catalog/services/secret-commands.d.ts +2 -0
  169. package/dist/operator-contracts/catalog/services/secret-commands.js +31 -0
  170. package/dist/operator-contracts/catalog/services/secret-operations.d.ts +62 -0
  171. package/dist/operator-contracts/catalog/services/secret-operations.js +51 -0
  172. package/dist/operator-contracts/catalog/treeai-operations.d.ts +13 -0
  173. package/dist/operator-contracts/catalog/treeai-operations.js +61 -0
  174. package/dist/operator-contracts/catalog/workdays/profile-commands.d.ts +4 -0
  175. package/dist/operator-contracts/catalog/workdays/profile-commands.js +20 -0
  176. package/dist/operator-contracts/catalog/workdays/profile-operations.d.ts +41 -0
  177. package/dist/operator-contracts/catalog/workdays/profile-operations.js +50 -0
  178. package/dist/operator-contracts/catalog/workdays/selection-commands.d.ts +3 -0
  179. package/dist/operator-contracts/catalog/workdays/selection-commands.js +29 -0
  180. package/dist/operator-contracts/command-tree.d.ts +29 -0
  181. package/dist/operator-contracts/command-tree.js +50 -0
  182. package/dist/operator-contracts/communication/addressing.d.ts +8 -0
  183. package/dist/operator-contracts/communication/addressing.js +57 -0
  184. package/dist/operator-contracts/communication/contracts.d.ts +1824 -0
  185. package/dist/operator-contracts/communication/contracts.js +190 -0
  186. package/dist/operator-contracts/control-plane-operation.d.ts +9 -0
  187. package/dist/operator-contracts/control-plane-operation.js +12 -2
  188. package/dist/operator-contracts/control-plane-operations.d.ts +2356 -209
  189. package/dist/operator-contracts/control-plane-operations.js +239 -102
  190. package/dist/operator-contracts/inbox/contracts.d.ts +1111 -0
  191. package/dist/operator-contracts/inbox/contracts.js +138 -0
  192. package/dist/operator-contracts/index.d.ts +6 -1
  193. package/dist/operator-contracts/index.js +6 -1
  194. package/dist/operator-contracts/knowledge/contracts.d.ts +130 -0
  195. package/dist/operator-contracts/knowledge/contracts.js +39 -0
  196. package/dist/operator-contracts/mcp.d.ts +5 -0
  197. package/dist/operator-contracts/mcp.js +61 -0
  198. package/dist/operator-contracts/oauth.d.ts +45 -0
  199. package/dist/operator-contracts/oauth.js +7 -0
  200. package/dist/operator-contracts/operation-builder.d.ts +18 -0
  201. package/dist/operator-contracts/operation-builder.js +78 -0
  202. package/dist/operator-contracts/seed/seed-bundle.d.ts +138 -0
  203. package/dist/operator-contracts/seed/seed-bundle.js +68 -0
  204. package/dist/operator-contracts/workday-lifecycle.d.ts +21 -28
  205. package/dist/operator-contracts/workday-lifecycle.js +46 -8
  206. package/dist/platform/contracts.d.ts +429 -0
  207. package/dist/platform/contracts.js +93 -0
  208. package/dist/platform/index.d.ts +6 -0
  209. package/dist/platform/index.js +6 -0
  210. package/dist/platform/inventory.d.ts +11 -0
  211. package/dist/platform/inventory.js +53 -0
  212. package/dist/platform/project-create.d.ts +49 -0
  213. package/dist/platform/project-create.js +75 -0
  214. package/dist/platform/schemas.d.ts +986 -0
  215. package/dist/platform/schemas.js +73 -0
  216. package/dist/platform/verification.d.ts +9 -0
  217. package/dist/platform/verification.js +104 -0
  218. package/dist/platform/workset.d.ts +21 -0
  219. package/dist/platform/workset.js +106 -0
  220. package/dist/sdk-types/support/sdk-model-names.d.ts +1 -1
  221. package/dist/sdk-types/support/sdk-model-names.js +0 -3
  222. package/dist/secrets-capability/github-actions-encryption.d.ts +2 -0
  223. package/dist/secrets-capability/github-actions-encryption.js +11 -0
  224. package/dist/secrets-capability/provider-operation-contracts.d.ts +15 -1
  225. package/dist/secrets-capability/secret-contracts.d.ts +33 -0
  226. package/dist/secrets-capability/secret-contracts.js +49 -0
  227. package/dist/secrets-capability/service-provider-contracts.d.ts +5 -3
  228. package/dist/secrets-capability/service-provider-contracts.js +66 -50
  229. package/dist/secrets-capability/shared-access.d.ts +51 -0
  230. package/dist/secrets-capability/shared-access.js +36 -0
  231. package/dist/secrets-capability/shared-resources.d.ts +376 -0
  232. package/dist/secrets-capability/shared-resources.js +91 -0
  233. package/dist/secrets-capability/vault-contracts.d.ts +132 -0
  234. package/dist/secrets-capability/vault-contracts.js +56 -0
  235. package/dist/security/encrypted-envelope.d.ts +177 -0
  236. package/dist/security/encrypted-envelope.js +34 -0
  237. package/dist/security/envelope-codec.d.ts +38 -0
  238. package/dist/security/envelope-codec.js +96 -0
  239. package/dist/security/index.d.ts +2 -0
  240. package/dist/security/index.js +2 -0
  241. package/dist/site-contracts/catalog.d.ts +16 -0
  242. package/dist/site-contracts/catalog.js +19 -0
  243. package/dist/site-contracts/cloudflare.d.ts +48 -0
  244. package/dist/site-contracts/platform.d.ts +94 -0
  245. package/dist/site-contracts/plugin.d.ts +63 -0
  246. package/dist/site-contracts/plugin.js +26 -0
  247. package/dist/treeai/catalog.d.ts +1 -0
  248. package/dist/treeai/catalog.js +1 -0
  249. package/dist/treeai/client.d.ts +793 -0
  250. package/dist/treeai/client.js +44 -0
  251. package/dist/treeai/contract.d.ts +41 -0
  252. package/dist/treeai/contract.js +51 -0
  253. package/dist/treeai/generated/upstream.d.ts +770 -0
  254. package/dist/treeai/generated/upstream.js +4 -0
  255. package/dist/treeai/index.d.ts +4 -0
  256. package/dist/treeai/index.js +4 -0
  257. package/dist/treedx/client.d.ts +605 -0
  258. package/dist/treedx/client.js +39 -0
  259. package/dist/treedx/contract.d.ts +32 -0
  260. package/dist/treedx/contract.js +63 -0
  261. package/dist/treedx/index.d.ts +3 -0
  262. package/dist/treedx/index.js +2 -0
  263. package/dist/treedx/types.d.ts +8 -7
  264. package/dist/treedx/types.js +0 -7
  265. package/dist/types/agents/agent-activity-profile.d.ts +42 -98
  266. package/dist/types/agents/agent-activity-profile.js +23 -0
  267. package/dist/types/agents/agent-trigger-kinds.d.ts +3 -5
  268. package/dist/types/agents/agent-trigger-kinds.js +1 -13
  269. package/dist/types/agents/execution-run-ref.d.ts +1 -8
  270. package/package.json +64 -11
  271. package/dist/agent-capacity/authority/agent-authority-presets.d.ts +0 -13
  272. package/dist/agent-capacity/authority/agent-authority-presets.js +0 -106
  273. package/dist/agent-capacity/contracts/operations/workflow-promotion.d.ts +0 -24
  274. package/dist/agent-capacity/policy/capacity/allocations/allocation-hierarchy.d.ts +0 -29
  275. package/dist/agent-capacity/policy/capacity/allocations/allocation-hierarchy.js +0 -110
  276. package/dist/agent-capacity/validation/workflow-promotion.d.ts +0 -2
  277. package/dist/agent-capacity/validation/workflow-promotion.js +0 -34
  278. package/dist/operator-contracts/workday-profile.d.ts +0 -72
  279. package/dist/operator-contracts/workday-profile.js +0 -106
  280. package/dist/secrets-capability/service-vault-contracts.d.ts +0 -61
  281. package/dist/secrets-capability/service-vault-contracts.js +0 -39
  282. package/dist/treedx/accounts/auth.d.ts +0 -17
  283. package/dist/treedx/accounts/auth.js +0 -48
  284. package/dist/treedx/client/accounts/contracts/auth-mode.d.ts +0 -3
  285. package/dist/treedx/client/accounts/contracts/auth-mode.js +0 -6
  286. package/dist/treedx/client/build/creation/build-context.d.ts +0 -3
  287. package/dist/treedx/client/build/creation/build-context.js +0 -7
  288. package/dist/treedx/client/build/creation/build-snapshot.d.ts +0 -3
  289. package/dist/treedx/client/build/creation/build-snapshot.js +0 -8
  290. package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.d.ts +0 -3
  291. package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.js +0 -7
  292. package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.d.ts +0 -6
  293. package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.js +0 -10
  294. package/dist/treedx/client/methods.d.ts +0 -102
  295. package/dist/treedx/client/methods.js +0 -209
  296. package/dist/treedx/client/persistence/contracts/restore-storage.d.ts +0 -3
  297. package/dist/treedx/client/persistence/contracts/restore-storage.js +0 -6
  298. package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.d.ts +0 -3
  299. package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.js +0 -6
  300. package/dist/treedx/client/repositories/creation/register-repository.d.ts +0 -3
  301. package/dist/treedx/client/repositories/creation/register-repository.js +0 -7
  302. package/dist/treedx/client/repositories/queries/get-repository.d.ts +0 -3
  303. package/dist/treedx/client/repositories/queries/get-repository.js +0 -7
  304. package/dist/treedx/client/repositories/queries/list-repository-paths.d.ts +0 -3
  305. package/dist/treedx/client/repositories/queries/list-repository-paths.js +0 -7
  306. package/dist/treedx/client/repositories/queries/list-repository-refs.d.ts +0 -3
  307. package/dist/treedx/client/repositories/queries/list-repository-refs.js +0 -12
  308. package/dist/treedx/client/repositories/queries/query-repository.d.ts +0 -3
  309. package/dist/treedx/client/repositories/queries/query-repository.js +0 -7
  310. package/dist/treedx/client/repositories/queries/read-repository-file.d.ts +0 -3
  311. package/dist/treedx/client/repositories/queries/read-repository-file.js +0 -6
  312. package/dist/treedx/client/repositories/queries/read-repository-files.d.ts +0 -3
  313. package/dist/treedx/client/repositories/queries/read-repository-files.js +0 -7
  314. package/dist/treedx/client/repositories/queries/search-repository-files.d.ts +0 -3
  315. package/dist/treedx/client/repositories/queries/search-repository-files.js +0 -7
  316. package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.d.ts +0 -3
  317. package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.js +0 -9
  318. package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.d.ts +0 -3
  319. package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.js +0 -6
  320. package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.d.ts +0 -3
  321. package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.js +0 -7
  322. package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.d.ts +0 -5
  323. package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.js +0 -7
  324. package/dist/treedx/client/support/contracts/treedx/health/contracts/health.d.ts +0 -3
  325. package/dist/treedx/client/support/contracts/treedx/health/contracts/health.js +0 -6
  326. package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.d.ts +0 -3
  327. package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.js +0 -7
  328. package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.d.ts +0 -2
  329. package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.js +0 -19
  330. package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.d.ts +0 -3
  331. package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.js +0 -7
  332. package/dist/treedx/client/support/contracts/treedx/health/contracts/status.d.ts +0 -3
  333. package/dist/treedx/client/support/contracts/treedx/health/contracts/status.js +0 -6
  334. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.d.ts +0 -3
  335. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.js +0 -7
  336. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.d.ts +0 -3
  337. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.js +0 -6
  338. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.d.ts +0 -3
  339. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.js +0 -7
  340. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.d.ts +0 -6
  341. package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.js +0 -23
  342. package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.d.ts +0 -3
  343. package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.js +0 -8
  344. package/dist/treedx/client/support/contracts/treedx/search/contracts/search.d.ts +0 -3
  345. package/dist/treedx/client/support/contracts/treedx/search/contracts/search.js +0 -7
  346. package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.d.ts +0 -3
  347. package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.js +0 -8
  348. package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.d.ts +0 -3
  349. package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.js +0 -8
  350. package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.d.ts +0 -2
  351. package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.js +0 -15
  352. package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.d.ts +0 -2
  353. package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.js +0 -38
  354. package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.d.ts +0 -2
  355. package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.js +0 -15
  356. package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.d.ts +0 -2
  357. package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.js +0 -15
  358. package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.d.ts +0 -2
  359. package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.js +0 -14
  360. package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.d.ts +0 -2
  361. package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.js +0 -14
  362. package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.d.ts +0 -6
  363. package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.js +0 -41
  364. package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.d.ts +0 -2
  365. package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.js +0 -14
  366. package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.d.ts +0 -3
  367. package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.js +0 -7
  368. package/dist/treedx/client/support/creation/apply-changeset.d.ts +0 -3
  369. package/dist/treedx/client/support/creation/apply-changeset.js +0 -10
  370. package/dist/treedx/client/support/creation/apply-storage-migration.d.ts +0 -3
  371. package/dist/treedx/client/support/creation/apply-storage-migration.js +0 -7
  372. package/dist/treedx/client/support/creation/create-migration.d.ts +0 -6
  373. package/dist/treedx/client/support/creation/create-migration.js +0 -7
  374. package/dist/treedx/client/support/creation/export-artifact.d.ts +0 -3
  375. package/dist/treedx/client/support/creation/export-artifact.js +0 -8
  376. package/dist/treedx/client/support/creation/plan-storage-migration.d.ts +0 -3
  377. package/dist/treedx/client/support/creation/plan-storage-migration.js +0 -7
  378. package/dist/treedx/client/support/creation/request-binary.d.ts +0 -6
  379. package/dist/treedx/client/support/creation/request-binary.js +0 -42
  380. package/dist/treedx/client/support/creation/write-file.d.ts +0 -3
  381. package/dist/treedx/client/support/creation/write-file.js +0 -10
  382. package/dist/treedx/client/support/creation/write-files.d.ts +0 -3
  383. package/dist/treedx/client/support/creation/write-files.js +0 -12
  384. package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.d.ts +0 -3
  385. package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.js +0 -7
  386. package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.d.ts +0 -3
  387. package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.js +0 -7
  388. package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.d.ts +0 -3
  389. package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.js +0 -9
  390. package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.d.ts +0 -4
  391. package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.js +0 -6
  392. package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.d.ts +0 -3
  393. package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.js +0 -7
  394. package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.d.ts +0 -3
  395. package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.js +0 -7
  396. package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.d.ts +0 -3
  397. package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.js +0 -7
  398. package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.d.ts +0 -3
  399. package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.js +0 -7
  400. package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.d.ts +0 -3
  401. package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.js +0 -10
  402. package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.d.ts +0 -3
  403. package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.js +0 -9
  404. package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.d.ts +0 -3
  405. package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.js +0 -7
  406. package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.d.ts +0 -6
  407. package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.js +0 -7
  408. package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.d.ts +0 -6
  409. package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.js +0 -7
  410. package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.d.ts +0 -6
  411. package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.js +0 -6
  412. package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.d.ts +0 -15
  413. package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.js +0 -6
  414. package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.d.ts +0 -3
  415. package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.js +0 -7
  416. package/dist/treedx/client/support/retirement/cleanup-artifacts.d.ts +0 -3
  417. package/dist/treedx/client/support/retirement/cleanup-artifacts.js +0 -7
  418. package/dist/treedx/client/support/retirement/delete-artifact.d.ts +0 -3
  419. package/dist/treedx/client/support/retirement/delete-artifact.js +0 -7
  420. package/dist/treedx/client/support/retirement/delete-file.d.ts +0 -3
  421. package/dist/treedx/client/support/retirement/delete-file.js +0 -10
  422. package/dist/treedx/client/support/retirement/rollback-storage-migration.d.ts +0 -3
  423. package/dist/treedx/client/support/retirement/rollback-storage-migration.js +0 -7
  424. package/dist/treedx/client/support/updates/patch-file.d.ts +0 -3
  425. package/dist/treedx/client/support/updates/patch-file.js +0 -10
  426. package/dist/treedx/client/support/updates/refresh-search-index.d.ts +0 -3
  427. package/dist/treedx/client/support/updates/refresh-search-index.js +0 -8
  428. package/dist/treedx/client/treedx/blobs/contracts/download-blob.d.ts +0 -3
  429. package/dist/treedx/client/treedx/blobs/contracts/download-blob.js +0 -6
  430. package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.d.ts +0 -3
  431. package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.js +0 -8
  432. package/dist/treedx/client/treedx/blobs/creation/request-blob-download.d.ts +0 -3
  433. package/dist/treedx/client/treedx/blobs/creation/request-blob-download.js +0 -27
  434. package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.d.ts +0 -3
  435. package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.js +0 -41
  436. package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.d.ts +0 -3
  437. package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.js +0 -27
  438. package/dist/treedx/client/treedx/blobs/creation/upload-blob.d.ts +0 -3
  439. package/dist/treedx/client/treedx/blobs/creation/upload-blob.js +0 -6
  440. package/dist/treedx/client/treedx/blobs/creation/write-blob.d.ts +0 -3
  441. package/dist/treedx/client/treedx/blobs/creation/write-blob.js +0 -8
  442. package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.d.ts +0 -3
  443. package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.js +0 -8
  444. package/dist/treedx/client/treedx/blobs/queries/read-blob.d.ts +0 -3
  445. package/dist/treedx/client/treedx/blobs/queries/read-blob.js +0 -10
  446. package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.d.ts +0 -3
  447. package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.js +0 -7
  448. package/dist/treedx/client/treedx/blobs/retirement/delete-blob.d.ts +0 -3
  449. package/dist/treedx/client/treedx/blobs/retirement/delete-blob.js +0 -8
  450. package/dist/treedx/client/treedx/federation/contracts/federated-query.d.ts +0 -3
  451. package/dist/treedx/client/treedx/federation/contracts/federated-query.js +0 -7
  452. package/dist/treedx/client/treedx/federation/creation/plan-federated-query.d.ts +0 -3
  453. package/dist/treedx/client/treedx/federation/creation/plan-federated-query.js +0 -6
  454. package/dist/treedx/client/treedx/federation/queries/check-mirror-health.d.ts +0 -3
  455. package/dist/treedx/client/treedx/federation/queries/check-mirror-health.js +0 -7
  456. package/dist/treedx/client/treedx/federation/updates/promote-mirror.d.ts +0 -3
  457. package/dist/treedx/client/treedx/federation/updates/promote-mirror.js +0 -7
  458. package/dist/treedx/client/treedx/federation/updates/sync-mirror.d.ts +0 -3
  459. package/dist/treedx/client/treedx/federation/updates/sync-mirror.js +0 -7
  460. package/dist/treedx/client/treedx/graph/contracts/federated-context.d.ts +0 -3
  461. package/dist/treedx/client/treedx/graph/contracts/federated-context.js +0 -7
  462. package/dist/treedx/client/treedx/graph/contracts/federated-graph.d.ts +0 -3
  463. package/dist/treedx/client/treedx/graph/contracts/federated-graph.js +0 -7
  464. package/dist/treedx/client/treedx/graph/contracts/graph-search.d.ts +0 -3
  465. package/dist/treedx/client/treedx/graph/contracts/graph-search.js +0 -8
  466. package/dist/treedx/client/treedx/graph/queries/get-graph-node.d.ts +0 -3
  467. package/dist/treedx/client/treedx/graph/queries/get-graph-node.js +0 -10
  468. package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.d.ts +0 -3
  469. package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.js +0 -7
  470. package/dist/treedx/client/treedx/graph/queries/get-subgraph.d.ts +0 -3
  471. package/dist/treedx/client/treedx/graph/queries/get-subgraph.js +0 -7
  472. package/dist/treedx/client/treedx/graph/queries/query-graph.d.ts +0 -3
  473. package/dist/treedx/client/treedx/graph/queries/query-graph.js +0 -7
  474. package/dist/treedx/client/treedx/graph/queries/search-graph-entities.d.ts +0 -3
  475. package/dist/treedx/client/treedx/graph/queries/search-graph-entities.js +0 -6
  476. package/dist/treedx/client/treedx/graph/queries/search-graph-files.d.ts +0 -3
  477. package/dist/treedx/client/treedx/graph/queries/search-graph-files.js +0 -6
  478. package/dist/treedx/client/treedx/graph/queries/search-graph-sections.d.ts +0 -3
  479. package/dist/treedx/client/treedx/graph/queries/search-graph-sections.js +0 -6
  480. package/dist/treedx/client/treedx/graph/updates/refresh-graph.d.ts +0 -3
  481. package/dist/treedx/client/treedx/graph/updates/refresh-graph.js +0 -7
  482. package/dist/treedx/client/treedx/search/contracts/federated-search.d.ts +0 -3
  483. package/dist/treedx/client/treedx/search/contracts/federated-search.js +0 -7
  484. package/dist/treedx/client/treedx/workspaces/creation/create-workspace.d.ts +0 -3
  485. package/dist/treedx/client/treedx/workspaces/creation/create-workspace.js +0 -7
  486. package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.d.ts +0 -3
  487. package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.js +0 -12
  488. package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.d.ts +0 -2
  489. package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.js +0 -6
  490. package/dist/treedx/generated/openapi-types.d.ts +0 -3662
  491. package/dist/treedx/support/client.d.ts +0 -251
  492. package/dist/treedx/support/client.js +0 -252
  493. package/dist/treedx/support/errors.d.ts +0 -13
  494. package/dist/treedx/support/errors.js +0 -17
  495. package/dist/treedx/types/tree-dx-actor.d.ts +0 -209
  496. package/dist/treedx/types/tree-dx-actor.js +0 -8
  497. package/dist/treedx/types/tree-dx-artifact-list-response.d.ts +0 -13
  498. package/dist/treedx/types/tree-dx-artifact-list-response.js +0 -0
  499. package/dist/treedx/types/tree-dx-changeset.d.ts +0 -51
  500. package/dist/treedx/types/tree-dx-changeset.js +0 -6
  501. package/dist/treedx/types/tree-dx-context-request.d.ts +0 -245
  502. package/dist/treedx/types/tree-dx-context-request.js +0 -0
  503. package/dist/treedx/types/tree-dx-exec-result.d.ts +0 -249
  504. package/dist/treedx/types/tree-dx-exec-result.js +0 -0
  505. package/dist/treedx/types/tree-dx-list-tree-request.d.ts +0 -222
  506. package/dist/treedx/types/tree-dx-list-tree-request.js +0 -0
  507. package/dist/treedx/types/tree-dx-push-request.d.ts +0 -229
  508. package/dist/treedx/types/tree-dx-push-request.js +0 -0
  509. /package/dist/{agent-capacity/contracts/operations/workflow-promotion.js → site-contracts/cloudflare.js} +0 -0
  510. /package/dist/{treedx/generated/openapi-types.js → site-contracts/platform.js} +0 -0
@@ -0,0 +1,41 @@
1
+ export declare const PROVIDER_ENVIRONMENT_OPERATIONS: {
2
+ readonly registrationCode: {
3
+ readonly status: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
4
+ teamId: string;
5
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
6
+ readonly reveal: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
7
+ teamId: string;
8
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
9
+ readonly rotate: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
10
+ teamId: string;
11
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
12
+ };
13
+ readonly environmentProfiles: {
14
+ readonly list: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
15
+ teamId: string;
16
+ providerId: string;
17
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
18
+ readonly show: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
19
+ teamId: string;
20
+ providerId: string;
21
+ profileId: string;
22
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
23
+ readonly publish: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
24
+ profileId: string;
25
+ }, {}, Record<string, unknown>, Record<string, unknown>>;
26
+ };
27
+ readonly environmentGrants: {
28
+ readonly show: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
29
+ teamId: string;
30
+ assignmentId: string;
31
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
32
+ readonly put: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
33
+ teamId: string;
34
+ assignmentId: string;
35
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
36
+ readonly revoke: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
37
+ teamId: string;
38
+ assignmentId: string;
39
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
40
+ };
41
+ };
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import { defineOperation } from "../operation-builder.js";
3
+ const empty = z.object({}).strict();
4
+ const none = z.undefined();
5
+ const record = z.record(z.unknown());
6
+ function teamOperation(operationId, method, path, pathShape, options = {}) {
7
+ const kind = method === "GET" ? "read" : "mutation";
8
+ const riskClass = options.risk ?? "ordinary";
9
+ return defineOperation({
10
+ operationId,
11
+ description: `${kind === "read" ? "Read" : "Apply"} ${operationId}.`,
12
+ rest: { method, path },
13
+ parameters: `treeseed.${operationId}.parameters/v1`,
14
+ capability: options.capability ?? (kind === "read" ? "providers.read" : "providers.write"),
15
+ authentication: "oauth",
16
+ oauthScopes: kind === "read" ? ["treeseed:read"] : ["treeseed:admin"],
17
+ kind,
18
+ riskClass,
19
+ confirmation: riskClass === "ordinary" ? "never" : "input_required",
20
+ surfaces: ["rest", "cli"],
21
+ cacheScope: kind === "read" ? "principal" : "none",
22
+ pagination: options.pagination ?? "none",
23
+ concurrencyRequired: options.concurrency ?? ["DELETE", "PUT"].includes(method),
24
+ redactedPaths: options.redactedPaths
25
+ }, { path: z.object(pathShape).strict(), query: kind === "read" ? record : empty, body: kind === "read" ? none : record, output: record });
26
+ }
27
+ const providerPublish = defineOperation({
28
+ operationId: "providers.environment.profiles.publish",
29
+ description: "Publish a value-free provider environment profile descriptor.",
30
+ rest: { method: "PUT", path: "/v1/provider/environment-profiles/{profileId}" },
31
+ parameters: "treeseed.providers.environment.profiles.publish.parameters/v1",
32
+ capability: "providers.execute",
33
+ authentication: "provider",
34
+ oauthScopes: [],
35
+ kind: "mutation",
36
+ riskClass: "ordinary",
37
+ confirmation: "never",
38
+ surfaces: ["rest"],
39
+ cacheScope: "none",
40
+ pagination: "none"
41
+ }, { path: z.object({ profileId: z.string().min(1) }).strict(), query: empty, body: record, output: record });
42
+ const PROVIDER_ENVIRONMENT_OPERATIONS = {
43
+ registrationCode: {
44
+ status: teamOperation("providers.registration.code.status", "GET", "/v1/teams/{teamId}/capacity-provider-registration-code", { teamId: z.string().min(1) }),
45
+ reveal: teamOperation("providers.registration.code.reveal", "POST", "/v1/teams/{teamId}/capacity-provider-registration-code/reveal", { teamId: z.string().min(1) }, { risk: "credential", redactedPaths: ["output.registrationCode"] }),
46
+ rotate: teamOperation("providers.registration.code.rotate", "POST", "/v1/teams/{teamId}/capacity-provider-registration-code/rotate", { teamId: z.string().min(1) }, { risk: "credential", redactedPaths: ["output.registrationCode"], concurrency: true })
47
+ },
48
+ environmentProfiles: {
49
+ list: teamOperation("providers.environment.profiles.list", "GET", "/v1/teams/{teamId}/capacity-providers/{providerId}/environment-profiles", { teamId: z.string().min(1), providerId: z.string().min(1) }, { pagination: "cursor" }),
50
+ show: teamOperation("providers.environment.profiles.show", "GET", "/v1/teams/{teamId}/capacity-providers/{providerId}/environment-profiles/{profileId}", { teamId: z.string().min(1), providerId: z.string().min(1), profileId: z.string().min(1) }),
51
+ publish: providerPublish
52
+ },
53
+ environmentGrants: {
54
+ show: teamOperation("providers.environment.grants.show", "GET", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }),
55
+ put: teamOperation("providers.environment.grants.put", "PUT", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }, { risk: "authority" }),
56
+ revoke: teamOperation("providers.environment.grants.revoke", "DELETE", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }, { risk: "destructive" })
57
+ }
58
+ };
59
+ export {
60
+ PROVIDER_ENVIRONMENT_OPERATIONS
61
+ };
@@ -0,0 +1,2 @@
1
+ import type { CommandNodeDescriptor } from '../../command-tree.js';
2
+ export declare function identityLoginCommand(value: CommandNodeDescriptor): CommandNodeDescriptor;
@@ -0,0 +1,13 @@
1
+ function identityLoginCommand(value) {
2
+ if (value.nodeType !== "leaf") throw new Error("Authentication login must be a leaf command.");
3
+ return { ...value, options: [
4
+ ...value.options ?? [],
5
+ { name: "--timeout", description: "Maximum seconds to wait for identity authorization.", type: "number" },
6
+ { name: "--device", description: "Use headless device authorization instead of local browser PKCE.", type: "boolean" },
7
+ { name: "--issuer", description: "Choose an authorization server advertised by the selected API.", type: "string" },
8
+ { name: "--scope", description: "Comma-separated additional API scopes to request explicitly, such as treeseed:admin. Does not grant application permissions.", type: "string" }
9
+ ] };
10
+ }
11
+ export {
12
+ identityLoginCommand
13
+ };
@@ -0,0 +1,2 @@
1
+ import type { CommandNodeDescriptor } from '../../command-tree.js';
2
+ export declare const managedSecretCommands: CommandNodeDescriptor;
@@ -0,0 +1,31 @@
1
+ const managedSecretCommands = {
2
+ nodeType: "branch",
3
+ segment: "services",
4
+ description: "Team service credentials.",
5
+ children: [{
6
+ nodeType: "branch",
7
+ segment: "credentials",
8
+ description: "Manage credentials in core OpenBao.",
9
+ children: ["show", "put", "delete", "validate"].map((name) => ({
10
+ nodeType: "leaf",
11
+ segment: name,
12
+ description: `${name} an exact service credential profile.`,
13
+ kind: name === "show" ? "read" : "mutation",
14
+ arguments: [{ name: "connection", description: "Service connection ID.", required: true }, { name: "profile", description: "Credential profile ID.", required: true }],
15
+ options: [
16
+ { name: "--team", description: "Authorized team ID.", type: "string" },
17
+ ...name === "show" ? [] : [
18
+ { name: "--plan", description: "Inspect the proposed operation without mutation or secret input.", type: "boolean" },
19
+ { name: "--expected-version", description: "Exact current credential version; zero for first creation.", type: "number", required: true }
20
+ ],
21
+ ...name === "put" ? [{ name: "--stdin", description: "Read the credential field object as JSON from standard input.", type: "boolean" }] : []
22
+ ],
23
+ authorization: { capability: name === "show" ? "secrets.read" : "secrets.write", confirmation: "never" },
24
+ resultSchemaId: `treeseed.services.credentials.${name}/v1`,
25
+ execution: { kind: "local", handlerId: `local.services.credentials.${name}` }
26
+ }))
27
+ }]
28
+ };
29
+ export {
30
+ managedSecretCommands
31
+ };
@@ -0,0 +1,62 @@
1
+ export declare const SECRET_OPERATIONS: {
2
+ readonly credentialStatus: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
3
+ teamId: string;
4
+ profileId: string;
5
+ connectionId: string;
6
+ }, {}, {
7
+ expectedVersion: number;
8
+ } | undefined, {
9
+ version: number;
10
+ teamId: string;
11
+ profileId: string;
12
+ connectionId: string;
13
+ configured: boolean;
14
+ custody: "openbao";
15
+ fields: string[];
16
+ }>;
17
+ readonly putCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
18
+ teamId: string;
19
+ profileId: string;
20
+ connectionId: string;
21
+ }, {}, {
22
+ expectedVersion: number;
23
+ } | undefined, {
24
+ version: number;
25
+ teamId: string;
26
+ profileId: string;
27
+ connectionId: string;
28
+ configured: boolean;
29
+ custody: "openbao";
30
+ fields: string[];
31
+ }>;
32
+ readonly deleteCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
33
+ teamId: string;
34
+ profileId: string;
35
+ connectionId: string;
36
+ }, {}, {
37
+ expectedVersion: number;
38
+ } | undefined, {
39
+ version: number;
40
+ teamId: string;
41
+ profileId: string;
42
+ connectionId: string;
43
+ configured: boolean;
44
+ custody: "openbao";
45
+ fields: string[];
46
+ }>;
47
+ readonly validateCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
48
+ teamId: string;
49
+ profileId: string;
50
+ connectionId: string;
51
+ }, {}, {
52
+ expectedVersion: number;
53
+ } | undefined, {
54
+ version: number;
55
+ teamId: string;
56
+ profileId: string;
57
+ connectionId: string;
58
+ configured: boolean;
59
+ custody: "openbao";
60
+ fields: string[];
61
+ }>;
62
+ };
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ import { defineOperation } from "../../operation-builder.js";
3
+ const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u);
4
+ const path = z.object({ teamId: id, connectionId: id, profileId: id }).strict();
5
+ const version = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER - 1);
6
+ const descriptor = z.object({
7
+ teamId: id,
8
+ connectionId: id,
9
+ profileId: id,
10
+ custody: z.literal("openbao"),
11
+ version,
12
+ configured: z.boolean(),
13
+ fields: z.array(id)
14
+ }).strict();
15
+ const put = z.object({
16
+ expectedVersion: version,
17
+ values: z.record(z.string().max(1024 * 1024)).refine((v) => Object.keys(v).length > 0 && Object.keys(v).length <= 128)
18
+ }).strict();
19
+ function operation(name, method) {
20
+ const read = method === "GET";
21
+ return defineOperation({
22
+ operationId: `services.credentials.${name}`,
23
+ description: `${name} managed service credentials.`,
24
+ rest: { method, path: `/v1/teams/{teamId}/services/{connectionId}/credentials/{profileId}${name === "validate" ? "/validate" : ""}` },
25
+ parameters: `treeseed.services.credentials.${name}.parameters/v1`,
26
+ capability: read ? "secrets.read" : "secrets.write",
27
+ authentication: "oauth",
28
+ oauthScopes: read ? ["treeseed:read"] : ["treeseed:projects:write"],
29
+ kind: read ? "read" : "mutation",
30
+ riskClass: read ? "ordinary" : "credential",
31
+ confirmation: "never",
32
+ surfaces: ["rest"],
33
+ cacheScope: "none",
34
+ pagination: "none",
35
+ redactedPaths: ["body.values"]
36
+ }, {
37
+ path,
38
+ query: z.object({}).strict(),
39
+ body: read ? z.undefined() : name === "put" ? put : z.object({ expectedVersion: version }).strict(),
40
+ output: name === "validate" ? z.object({ ok: z.boolean() }).strict() : descriptor
41
+ });
42
+ }
43
+ const SECRET_OPERATIONS = {
44
+ credentialStatus: operation("show", "GET"),
45
+ putCredentials: operation("put", "PUT"),
46
+ deleteCredentials: operation("delete", "DELETE"),
47
+ validateCredentials: operation("validate", "POST")
48
+ };
49
+ export {
50
+ SECRET_OPERATIONS
51
+ };
@@ -0,0 +1,13 @@
1
+ import type { ControlPlaneOperationBinding } from '../control-plane-operation.js';
2
+ export declare const TREEAI_OPENAPI_DIGESTS: {
3
+ readonly inference: "sha256:29255fae4e74aa0fb96d8abd1cdc5d869f469fc9bb55a68060eeae6d86f4273d";
4
+ readonly training: "sha256:de80f39ca9d0d5a2a7ca6ce588326d3a562c771bc7e077b7e6c4949134ef2143";
5
+ readonly lab: "sha256:8f9a3ca31a63143506e1b28ddb78eda50b2f6760278531b723047d968f56aa07";
6
+ };
7
+ export declare const TREEAI_CONTROL_PLANE_OPERATION_LIST: readonly ControlPlaneOperationBinding<{
8
+ nodeId: string;
9
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>[];
10
+ export declare const TREEAI_CONTROL_PLANE_OPERATIONS: Readonly<Record<string, ControlPlaneOperationBinding<any, any, any, any>>>;
11
+ export declare function treeAiControlPlaneOperation(upstreamOperationId: string): ControlPlaneOperationBinding<{
12
+ nodeId: string;
13
+ }, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import { defineOperation } from "../operation-builder.js";
3
+ import { TREEAI_UPSTREAM_OPERATIONS } from "../../treeai/generated/upstream.js";
4
+ const TREEAI_OPENAPI_DIGESTS = {
5
+ inference: "sha256:29255fae4e74aa0fb96d8abd1cdc5d869f469fc9bb55a68060eeae6d86f4273d",
6
+ training: "sha256:de80f39ca9d0d5a2a7ca6ce588326d3a562c771bc7e077b7e6c4949134ef2143",
7
+ lab: "sha256:8f9a3ca31a63143506e1b28ddb78eda50b2f6760278531b723047d968f56aa07"
8
+ };
9
+ function treeSeedOperationId(operation) {
10
+ return `treeai.${operation.operationId.toLowerCase().replace(/[^a-z0-9]+/gu, ".").replace(/^\.|\.$/gu, "")}`;
11
+ }
12
+ function risk(operation) {
13
+ if (/rollback|cancel|disable/u.test(operation.operationId)) return "destructive";
14
+ if (operation.kind === "mutation" && (/promot|enable|activate|campaigns/u.test(operation.operationId) || /(?:^|\.)mode(?:\.|$)/u.test(operation.operationId))) return "authority";
15
+ return "ordinary";
16
+ }
17
+ function pathShape(path) {
18
+ return Object.fromEntries([...path.matchAll(/\{([^}]+)\}/gu)].map((match) => [match[1], z.string().min(1)]));
19
+ }
20
+ function binding(operation) {
21
+ const method = operation.method;
22
+ const kind = operation.kind;
23
+ const riskClass = risk(operation);
24
+ const path = `/v1/ai/nodes/{nodeId}/${operation.service}${operation.path}`;
25
+ return defineOperation({
26
+ operationId: treeSeedOperationId(operation),
27
+ description: `${operation.summary} through a node-scoped TreeAI proxy.`,
28
+ rest: { method, path },
29
+ parameters: `treeseed.${treeSeedOperationId(operation)}.parameters/v1`,
30
+ capability: `treeai.${operation.service}.${kind}`,
31
+ authentication: "oauth_or_provider",
32
+ oauthScopes: kind === "read" ? ["treeseed:read"] : ["treeseed:execution"],
33
+ kind,
34
+ riskClass,
35
+ confirmation: riskClass === "ordinary" ? "never" : "input_required",
36
+ idempotencyRequired: kind === "mutation",
37
+ surfaces: ["rest", "cli"],
38
+ cacheScope: kind === "read" ? "principal" : "none",
39
+ pagination: "none",
40
+ redactedPaths: ["headers.authorization"],
41
+ upstream: { service: "treeai", operationId: operation.operationId, contractVersion: "3.1.1", contractDigest: TREEAI_OPENAPI_DIGESTS[operation.service] }
42
+ }, {
43
+ path: z.object({ nodeId: z.string().min(1), ...pathShape(operation.path) }).strict(),
44
+ query: kind === "read" ? z.record(z.unknown()) : z.object({}).strict(),
45
+ body: kind === "read" ? z.undefined() : z.record(z.unknown()),
46
+ output: z.record(z.unknown())
47
+ });
48
+ }
49
+ const TREEAI_CONTROL_PLANE_OPERATION_LIST = Object.freeze(TREEAI_UPSTREAM_OPERATIONS.map(binding));
50
+ const TREEAI_CONTROL_PLANE_OPERATIONS = Object.freeze(Object.fromEntries(TREEAI_CONTROL_PLANE_OPERATION_LIST.map((item) => [item.descriptor.operationId, item])));
51
+ function treeAiControlPlaneOperation(upstreamOperationId) {
52
+ const operation = TREEAI_CONTROL_PLANE_OPERATION_LIST.find((item) => item.descriptor.upstream?.operationId === upstreamOperationId);
53
+ if (!operation) throw new Error(`Unknown TreeAI operation ${upstreamOperationId}.`);
54
+ return operation;
55
+ }
56
+ export {
57
+ TREEAI_CONTROL_PLANE_OPERATIONS,
58
+ TREEAI_CONTROL_PLANE_OPERATION_LIST,
59
+ TREEAI_OPENAPI_DIGESTS,
60
+ treeAiControlPlaneOperation
61
+ };
@@ -0,0 +1,4 @@
1
+ import type { CommandLeafDescriptor } from '../../command-tree.js';
2
+ type Execution = CommandLeafDescriptor['execution'];
3
+ export declare const WORKDAY_PROFILE_COMMAND_BINDINGS: Record<string, Execution>;
4
+ export {};
@@ -0,0 +1,20 @@
1
+ const team = { target: "path", field: "teamId", source: "context", name: "team", required: true, transform: "identity" };
2
+ const WORKDAY_PROFILE_COMMAND_BINDINGS = {
3
+ "workdays profiles list": { kind: "operation", operationId: "workdays.profiles.list", input: [
4
+ team,
5
+ { target: "query", field: "limit", source: "option", name: "limit", transform: "integer" },
6
+ { target: "query", field: "cursor", source: "option", name: "cursor", transform: "identity" }
7
+ ] },
8
+ "workdays profiles show": { kind: "operation", operationId: "workdays.profiles.show", input: [
9
+ team,
10
+ { target: "path", field: "profileId", source: "argument", name: "profile", required: true, transform: "identity" }
11
+ ] },
12
+ "workdays profiles update": { kind: "operation", operationId: "workdays.profiles.update", input: [
13
+ team,
14
+ { target: "path", field: "profileId", source: "argument", name: "profile", required: true, transform: "identity" },
15
+ { target: "body", field: "file", source: "option", name: "input", required: true, transform: "identity" }
16
+ ] }
17
+ };
18
+ export {
19
+ WORKDAY_PROFILE_COMMAND_BINDINGS
20
+ };
@@ -0,0 +1,41 @@
1
+ export declare const WORKDAY_PROFILE_OPERATIONS: {
2
+ profilesList: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
3
+ [x: string]: any;
4
+ }, {
5
+ [x: string]: any;
6
+ }, undefined, Record<string, unknown>>;
7
+ profilesShow: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
8
+ [x: string]: any;
9
+ }, {
10
+ [x: string]: any;
11
+ }, undefined, Record<string, unknown>>;
12
+ profilesUpdate: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
13
+ teamId: string;
14
+ profileId: "default";
15
+ }, {}, {
16
+ policy: {
17
+ durationSeconds: number;
18
+ maximumConcurrency: number;
19
+ communicationConcurrency: number;
20
+ planningPercent?: number | undefined;
21
+ allocationWeight?: number | undefined;
22
+ planningTurnMaximumSeconds?: number | undefined;
23
+ projectPercentages?: Record<string, number> | undefined;
24
+ agentClassPercentages?: Record<string, Record<string, number>> | undefined;
25
+ };
26
+ }, {
27
+ id: "default";
28
+ teamId: string;
29
+ revision: number;
30
+ policy: {
31
+ durationSeconds: number;
32
+ maximumConcurrency: number;
33
+ communicationConcurrency: number;
34
+ planningPercent?: number | undefined;
35
+ allocationWeight?: number | undefined;
36
+ planningTurnMaximumSeconds?: number | undefined;
37
+ projectPercentages?: Record<string, number> | undefined;
38
+ agentClassPercentages?: Record<string, Record<string, number>> | undefined;
39
+ };
40
+ }>;
41
+ };
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import { defineOperation } from "../../operation-builder.js";
3
+ import { workdayPolicySchema, workdayProfileSchema } from "../../../agent-capacity/contracts/capacity/workdays/workday-allocation.js";
4
+ const team = z.object({ teamId: z.string().min(1) }).strict();
5
+ const empty = z.object({}).strict();
6
+ const output = z.record(z.unknown());
7
+ const read = (operationId, path, parameters, query, pagination) => defineOperation({
8
+ operationId,
9
+ description: "Read the team-owned canonical workday allocation policy.",
10
+ rest: { method: "GET", path },
11
+ parameters: `treeseed.${operationId}.parameters/v1`,
12
+ capability: "workdays.read",
13
+ authentication: "oauth",
14
+ oauthScopes: ["treeseed:read"],
15
+ kind: "read",
16
+ riskClass: "ordinary",
17
+ confirmation: "never",
18
+ surfaces: ["rest", "cli"],
19
+ cacheScope: "principal",
20
+ pagination
21
+ }, { path: parameters, query, body: z.undefined(), output });
22
+ const WORKDAY_PROFILE_OPERATIONS = {
23
+ profilesList: read(
24
+ "workdays.profiles.list",
25
+ "/v1/teams/{teamId}/workday-profiles",
26
+ team,
27
+ z.object({ limit: z.coerce.number().int().min(1).max(100).optional(), cursor: z.string().optional() }).strict(),
28
+ "cursor"
29
+ ),
30
+ profilesShow: read("workdays.profiles.show", "/v1/teams/{teamId}/workday-profiles/{profileId}", team.extend({ profileId: z.string().min(1) }), empty, "none"),
31
+ profilesUpdate: defineOperation({
32
+ operationId: "workdays.profiles.update",
33
+ description: "Replace the team default policy without changing existing workday snapshots.",
34
+ rest: { method: "PUT", path: "/v1/teams/{teamId}/workday-profiles/{profileId}" },
35
+ parameters: "treeseed.workdays.profiles.update.parameters/v1",
36
+ concurrencyRequired: true,
37
+ capability: "workdays.execute",
38
+ authentication: "oauth",
39
+ oauthScopes: ["treeseed:execution"],
40
+ kind: "mutation",
41
+ riskClass: "authority",
42
+ confirmation: "input_required",
43
+ surfaces: ["rest", "cli"],
44
+ cacheScope: "none",
45
+ pagination: "none"
46
+ }, { path: team.extend({ profileId: z.literal("default") }), query: empty, body: z.object({ policy: workdayPolicySchema }).strict(), output: workdayProfileSchema })
47
+ };
48
+ export {
49
+ WORKDAY_PROFILE_OPERATIONS
50
+ };
@@ -0,0 +1,3 @@
1
+ import type { CommandInputBinding, CommandLeafDescriptor } from '../../command-tree.js';
2
+ export declare const WORKDAY_SELECTION_INPUTS: CommandInputBinding[];
3
+ export declare const WORKDAY_PLAN_OPTIONS: NonNullable<CommandLeafDescriptor['options']>;
@@ -0,0 +1,29 @@
1
+ const WORKDAY_SELECTION_INPUTS = [
2
+ { target: "body", field: "allocation.planningPercent", source: "option", name: "planningPercent", transform: "number" },
3
+ { target: "body", field: "allocation.allocationWeight", source: "option", name: "allocationWeight", transform: "number" },
4
+ { target: "body", field: "allocation.planningTurnMaximumSeconds", source: "option", name: "planningTurnMaximumSeconds", transform: "integer" },
5
+ { target: "body", field: "allocation.projectPercentages", source: "option", name: "projectPercentages", transform: "json" },
6
+ { target: "body", field: "allocation.agentClassPercentages", source: "option", name: "agentClassPercentages", transform: "json" },
7
+ { target: "body", field: "agentSelection.agentSlugs", source: "option", name: "agent", transform: "csv" },
8
+ { target: "body", field: "agentSelection.activityTypes", source: "option", name: "activity", transform: "csv" },
9
+ { target: "body", field: "agentSelection.classSlugs", source: "option", name: "class", transform: "csv" }
10
+ ];
11
+ const WORKDAY_PLAN_OPTIONS = [
12
+ { name: "--planning-percent", description: "Planning share of workday time and capacity (default 20%).", type: "number" },
13
+ { name: "--allocation-weight", description: "Relative share among eligible concurrent workdays (default 1).", type: "number" },
14
+ { name: "--planning-turn-maximum-seconds", description: "Maximum active seconds per planning turn (default 180).", type: "number" },
15
+ { name: "--project-percentages", description: "JSON project allocation targets; normalized among selected projects.", type: "string" },
16
+ { name: "--agent-class-percentages", description: "JSON class allocation targets keyed by project.", type: "string" },
17
+ { name: "--plan", description: "Return the request without creating a preflight.", type: "boolean" },
18
+ { name: "--planning-only", description: "Run cooperative planning profiles without admitting accepted acting work.", type: "boolean" },
19
+ { name: "--execution-mode", description: "Select simulation or production custody; both consume real capacity.", type: "string" },
20
+ { name: "--proposal", description: "Governed proposal id for cooperative planning; repeat or comma-separate.", type: "string[]" },
21
+ { name: "--decision", description: "Accepted decision id; repeat or comma-separate. The API derives and verifies acting authority.", type: "string[]" },
22
+ { name: "--agent", description: "Planning agent slug; repeat or comma-separate. Intersects with class/activity selectors.", type: "string[]" },
23
+ { name: "--activity", description: "Planning activity: planning, estimating, reviewing, reporting, or chat; repeat or comma-separate.", type: "string[]" },
24
+ { name: "--class", description: "Planning class slug; repeat or comma-separate. Acting remains governed by accepted decisions.", type: "string[]" }
25
+ ];
26
+ export {
27
+ WORKDAY_PLAN_OPTIONS,
28
+ WORKDAY_SELECTION_INPUTS
29
+ };
@@ -1,3 +1,4 @@
1
+ import type { ControlPlaneOperationBinding } from './control-plane-operation.js';
1
2
  export type CommandOperationKind = 'read' | 'mutation';
2
3
  export type CommandExecutionMode = 'execute' | 'plan';
3
4
  export type CommandErrorCategory = 'unknown_command' | 'invalid_input' | 'ambiguous_context' | 'authentication_required' | 'authorization_denied' | 'confirmation_required' | 'policy_blocked' | 'stale_preflight' | 'conflict' | 'not_found' | 'provider_unavailable' | 'rate_limited' | 'internal_error';
@@ -19,6 +20,32 @@ export interface CommandAuthorizationDescriptor {
19
20
  capability: string;
20
21
  confirmation: 'never' | 'destructive' | 'credential' | 'authority' | 'production' | 'irreversible';
21
22
  }
23
+ export type CommandInputSource = 'argument' | 'context' | 'option';
24
+ export type CommandInputTarget = 'path' | 'query' | 'body';
25
+ export interface CommandInputBinding {
26
+ /** Dot-separated object path in the selected target; unsafe prototype keys are forbidden. */
27
+ field: string;
28
+ source: CommandInputSource;
29
+ name: string;
30
+ target: CommandInputTarget;
31
+ required?: boolean;
32
+ transform?: 'identity' | 'number' | 'integer' | 'csv' | 'json';
33
+ }
34
+ export type CommandExecutionBinding = {
35
+ kind: 'operation';
36
+ operationId: `${string}.${string}`;
37
+ input: CommandInputBinding[];
38
+ } | {
39
+ kind: 'protocol';
40
+ handlerId: `protocol.${string}`;
41
+ } | {
42
+ kind: 'local';
43
+ handlerId: `local.${string}`;
44
+ } | {
45
+ kind: 'unavailable';
46
+ code: string;
47
+ reason: string;
48
+ };
22
49
  export interface CommandLeafDescriptor {
23
50
  segment: string;
24
51
  description: string;
@@ -27,6 +54,7 @@ export interface CommandLeafDescriptor {
27
54
  options?: CommandOptionDescriptor[];
28
55
  authorization?: CommandAuthorizationDescriptor;
29
56
  resultSchemaId: string;
57
+ execution: CommandExecutionBinding;
30
58
  }
31
59
  export interface CommandBranchDescriptor {
32
60
  segment: string;
@@ -76,4 +104,5 @@ export interface CommandTreeDiagnostic {
76
104
  message: string;
77
105
  }
78
106
  export declare function validateCommandTree(tree: CommandTreeDescriptor): CommandTreeDiagnostic[];
107
+ export declare function validateCommandOperationBindings(tree: CommandTreeDescriptor, operations: readonly ControlPlaneOperationBinding<any, any, any, any>[]): CommandTreeDiagnostic[];
79
108
  export declare function createCommandResult<TResult>(input: Omit<CommandResultEnvelope<TResult>, 'schemaVersion'>): CommandResultEnvelope<TResult>;
@@ -1,3 +1,4 @@
1
+ import { ZodUndefined } from "zod";
1
2
  const SEGMENT = /^[a-z][a-z0-9]*$/;
2
3
  const FORBIDDEN_AGENT_MANAGEMENT_OPTIONS = /* @__PURE__ */ new Set([
3
4
  "--commit",
@@ -31,6 +32,17 @@ function validateCommandTree(tree) {
31
32
  }
32
33
  if ("children" in raw) diagnostics.push({ code: "command_node_ambiguous", path: diagnosticPath, message: "Leaf command nodes cannot contain child commands." });
33
34
  if (!node.resultSchemaId.trim()) diagnostics.push({ code: "result_schema_required", path: `${diagnosticPath}.resultSchemaId`, message: "Leaf commands require a stable result schema." });
35
+ if (!node.execution) diagnostics.push({ code: "command_execution_required", path: `${diagnosticPath}.execution`, message: "Every leaf must declare one authoritative execution binding." });
36
+ if (node.execution?.kind === "operation") {
37
+ const targets = /* @__PURE__ */ new Set();
38
+ for (const binding of node.execution.input) {
39
+ const key = `${binding.target}.${binding.field}`;
40
+ if (targets.has(key)) diagnostics.push({ code: "command_input_target_duplicate", path: `${diagnosticPath}.execution.input`, message: `Duplicate command input target ${key}.` });
41
+ targets.add(key);
42
+ if (!binding.field.trim() || !binding.name.trim()) diagnostics.push({ code: "command_input_binding_invalid", path: `${diagnosticPath}.execution.input`, message: "Command input bindings require field and source names." });
43
+ }
44
+ }
45
+ if (node.execution?.kind === "unavailable" && (!node.execution.code.trim() || !node.execution.reason.trim())) diagnostics.push({ code: "command_unavailable_reason_required", path: `${diagnosticPath}.execution`, message: "Unavailable commands require a stable code and explanation." });
34
46
  const optionNames = /* @__PURE__ */ new Set();
35
47
  for (const option of node.options ?? []) {
36
48
  if (optionNames.has(option.name)) diagnostics.push({ code: "command_option_duplicate", path: `${diagnosticPath}.options.${index}`, message: `Duplicate option ${option.name}.` });
@@ -44,10 +56,48 @@ function validateCommandTree(tree) {
44
56
  visit(tree.commands, []);
45
57
  return diagnostics;
46
58
  }
59
+ function validateCommandOperationBindings(tree, operations) {
60
+ const diagnostics = [];
61
+ const catalog = new Map(operations.map((operation) => [operation.descriptor.operationId, operation]));
62
+ const visit = (nodes, parent) => {
63
+ for (const node of nodes) {
64
+ const path = [...parent, node.segment];
65
+ if (node.nodeType === "branch") {
66
+ visit(node.children, path);
67
+ continue;
68
+ }
69
+ if (node.execution.kind !== "operation") continue;
70
+ const binding = catalog.get(node.execution.operationId);
71
+ const diagnosticPath = `commands.${path.join(".")}.execution`;
72
+ if (!binding) {
73
+ diagnostics.push({ code: "command_operation_unknown", path: diagnosticPath, message: `Unknown control-plane operation ${node.execution.operationId}.` });
74
+ continue;
75
+ }
76
+ if (!binding.descriptor.surfaces.includes("cli")) diagnostics.push({ code: "command_operation_surface_missing", path: diagnosticPath, message: `Operation ${node.execution.operationId} does not declare the CLI surface.` });
77
+ if (binding.descriptor.kind !== node.kind) diagnostics.push({ code: "command_operation_kind_mismatch", path: diagnosticPath, message: `Command and operation ${node.execution.operationId} disagree about mutation behavior.` });
78
+ const expectedConfirmation = binding.descriptor.confirmation === "input_required" ? binding.descriptor.riskClass : "never";
79
+ if ((node.authorization?.confirmation ?? "never") !== expectedConfirmation) diagnostics.push({ code: "command_operation_confirmation_mismatch", path: diagnosticPath, message: `Command and operation ${node.execution.operationId} disagree about confirmation.` });
80
+ const shapes = {
81
+ path: "shape" in binding.schema.path ? Object.keys(binding.schema.path.shape) : null,
82
+ query: "shape" in binding.schema.query ? Object.keys(binding.schema.query.shape) : null,
83
+ body: "shape" in binding.schema.body ? Object.keys(binding.schema.body.shape) : null
84
+ };
85
+ for (const input of node.execution.input) {
86
+ const keys = shapes[input.target];
87
+ const undefinedSchema = binding.schema[input.target] instanceof ZodUndefined;
88
+ if (input.target === "body" && input.field === "file" && input.source !== "context" && keys !== null && !undefinedSchema) continue;
89
+ if (keys !== null && !keys.includes(input.field) || undefinedSchema) diagnostics.push({ code: "command_operation_input_unknown", path: `${diagnosticPath}.input.${input.target}.${input.field}`, message: `Operation ${node.execution.operationId} does not accept ${input.target} field ${input.field}.` });
90
+ }
91
+ }
92
+ };
93
+ visit(tree.commands, []);
94
+ return diagnostics.sort((left, right) => `${left.path}:${left.code}`.localeCompare(`${right.path}:${right.code}`));
95
+ }
47
96
  function createCommandResult(input) {
48
97
  return { schemaVersion: "treeseed.command-result/v1", ...input };
49
98
  }
50
99
  export {
51
100
  createCommandResult,
101
+ validateCommandOperationBindings,
52
102
  validateCommandTree
53
103
  };
@@ -0,0 +1,8 @@
1
+ export type CommunicationAddressRequirement = 'required' | 'optional';
2
+ export interface CommunicationAddress {
3
+ projectSlug: string | null;
4
+ agentSlug: string;
5
+ requirement: CommunicationAddressRequirement;
6
+ address: string;
7
+ }
8
+ export declare function parseCommunicationAddresses(markdown: string): CommunicationAddress[];