@orchestraworks/cli 0.5.4 → 0.5.7

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 (606) hide show
  1. package/README.md +1 -1
  2. package/dist/artifacts/prelude.js +10 -1
  3. package/dist/cli/api/execute.js +7 -7
  4. package/dist/cli/core/profile.d.ts +2 -2
  5. package/dist/cli/factory/apply-preview.d.ts +23 -6
  6. package/dist/cli/factory/apply-preview.js +70 -43
  7. package/dist/cli/factory/apply-render.js +12 -4
  8. package/dist/cli/factory/apply.d.ts +7 -2
  9. package/dist/cli/factory/apply.js +86 -29
  10. package/dist/cli/factory/diff.js +20 -12
  11. package/dist/cli/factory/image-upload.d.ts +90 -0
  12. package/dist/cli/factory/image-upload.js +489 -0
  13. package/dist/cli/factory/synth.d.ts +7 -0
  14. package/dist/cli/factory/synth.js +35 -0
  15. package/dist/cli/firstRun.d.ts +2 -2
  16. package/dist/cli/firstRun.js +12 -13
  17. package/dist/cli/main.d.ts +1 -1
  18. package/dist/cli/main.js +4 -3
  19. package/dist/cli/upload.d.ts +3 -1
  20. package/dist/cli/upload.js +9 -2
  21. package/dist/constructs/agent.d.ts +9 -1
  22. package/dist/constructs/agent.js +7 -0
  23. package/dist/constructs/compute-provider.js +2 -2
  24. package/dist/constructs/connection.d.ts +22 -16
  25. package/dist/constructs/connection.js +29 -92
  26. package/dist/constructs/connector.d.ts +3 -1
  27. package/dist/constructs/connector.js +2 -0
  28. package/dist/constructs/egress-preset.d.ts +7 -52
  29. package/dist/constructs/egress-preset.js +7 -91
  30. package/dist/constructs/environment.d.ts +47 -70
  31. package/dist/constructs/environment.js +103 -213
  32. package/dist/constructs/gateway-key.d.ts +4 -1
  33. package/dist/constructs/gateway-key.js +4 -3
  34. package/dist/constructs/interfaces.d.ts +10 -2
  35. package/dist/constructs/model-provider-key.js +2 -3
  36. package/dist/constructs/pipeline.d.ts +5 -2
  37. package/dist/constructs/pipeline.js +4 -0
  38. package/dist/constructs/references.d.ts +4 -0
  39. package/dist/constructs/references.js +20 -0
  40. package/dist/constructs/role.d.ts +32 -0
  41. package/dist/constructs/role.js +77 -0
  42. package/dist/constructs/rules.d.ts +4 -4
  43. package/dist/constructs/rules.js +3 -3
  44. package/dist/constructs/secret.d.ts +36 -13
  45. package/dist/constructs/secret.js +110 -14
  46. package/dist/constructs/service-account.d.ts +12 -0
  47. package/dist/constructs/service-account.js +23 -0
  48. package/dist/constructs/skill.d.ts +3 -1
  49. package/dist/constructs/skill.js +2 -0
  50. package/dist/constructs/team-membership.d.ts +43 -0
  51. package/dist/constructs/team-membership.js +59 -0
  52. package/dist/constructs/team.d.ts +40 -0
  53. package/dist/constructs/team.js +107 -0
  54. package/dist/constructs/trigger.d.ts +7 -4
  55. package/dist/constructs/trigger.js +4 -0
  56. package/dist/constructs/workflow.d.ts +1 -1
  57. package/dist/core/factory.d.ts +0 -7
  58. package/dist/core/factory.js +15 -53
  59. package/dist/core/gateway-key-recipe.js +23 -2
  60. package/dist/core/host-pattern.d.ts +5 -0
  61. package/dist/core/host-pattern.js +14 -0
  62. package/dist/core/labels.d.ts +1 -1
  63. package/dist/core/labels.js +1 -1
  64. package/dist/core/outbound-warning.d.ts +2 -2
  65. package/dist/core/outbound-warning.js +52 -41
  66. package/dist/core/plan.d.ts +14 -11
  67. package/dist/core/plan.js +12 -11
  68. package/dist/engine/apply-core.d.ts +71 -67
  69. package/dist/engine/apply-core.js +120 -95
  70. package/dist/engine/client.d.ts +12 -4
  71. package/dist/engine/client.js +8 -3
  72. package/dist/engine/compute-provider-reconcile.js +1 -1
  73. package/dist/engine/condition-references.d.ts +2 -2
  74. package/dist/engine/condition-references.js +6 -6
  75. package/dist/engine/connection-install-link-reconcile.d.ts +4 -3
  76. package/dist/engine/connection-install-link-reconcile.js +35 -28
  77. package/dist/engine/diff.d.ts +12 -14
  78. package/dist/engine/diff.js +247 -113
  79. package/dist/engine/gateway-key-reconcile.d.ts +12 -9
  80. package/dist/engine/gateway-key-reconcile.js +43 -36
  81. package/dist/engine/model-provider-key-reconcile.js +2 -2
  82. package/dist/engine/pipeline-reconcile.d.ts +8 -9
  83. package/dist/engine/pipeline-reconcile.js +14 -10
  84. package/dist/engine/reconcile.d.ts +7 -21
  85. package/dist/engine/reconcile.js +115 -215
  86. package/dist/engine/refusals.d.ts +14 -31
  87. package/dist/engine/refusals.js +32 -81
  88. package/dist/engine/role-membership-reconcile.d.ts +19 -0
  89. package/dist/engine/role-membership-reconcile.js +276 -0
  90. package/dist/engine/secrets-apply.d.ts +18 -4
  91. package/dist/engine/secrets-apply.js +39 -4
  92. package/dist/engine/trigger-reconcile.d.ts +22 -23
  93. package/dist/engine/trigger-reconcile.js +43 -65
  94. package/dist/engine/workflow-reconcile.d.ts +2 -2
  95. package/dist/engine/workflow-reconcile.js +5 -5
  96. package/dist/generated/cli-commands.json +15398 -11771
  97. package/dist/generated/cli-dispatch.d.ts +4 -3
  98. package/dist/generated/cli-dispatch.js +76 -62
  99. package/dist/index.d.ts +12 -7
  100. package/dist/index.js +5 -3
  101. package/dist/metrics/metric.d.ts +3 -3
  102. package/dist/metrics/metric.js +1 -1
  103. package/docs/REFERENCE.md +84 -89
  104. package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.d.ts +1 -1
  105. package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.js +2 -2
  106. package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.d.ts +1 -1
  107. package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.js +2 -2
  108. package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.d.ts +1 -1
  109. package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.js +2 -2
  110. package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.d.ts +1 -1
  111. package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.js +2 -2
  112. package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.d.ts +1 -1
  113. package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.js +2 -2
  114. package/node_modules/@orchestraworks/client/dist/apis/FilesApi.d.ts +1 -1
  115. package/node_modules/@orchestraworks/client/dist/apis/FilesApi.js +2 -2
  116. package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.d.ts +88 -0
  117. package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.js +239 -0
  118. package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.d.ts +1 -1
  119. package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.js +2 -2
  120. package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.d.ts +1 -15
  121. package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.js +3 -49
  122. package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.d.ts +1 -1
  123. package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.js +2 -2
  124. package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.d.ts +1 -1
  125. package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.js +2 -2
  126. package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.d.ts +1 -1
  127. package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.js +2 -2
  128. package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.d.ts +1 -1
  129. package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.js +2 -2
  130. package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.d.ts +1 -1
  131. package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.js +2 -2
  132. package/node_modules/@orchestraworks/client/dist/apis/TeamMembershipsApi.d.ts +96 -0
  133. package/node_modules/@orchestraworks/client/dist/apis/{GroupsApi.js → TeamMembershipsApi.js} +62 -59
  134. package/node_modules/@orchestraworks/client/dist/apis/TeamsApi.d.ts +93 -0
  135. package/node_modules/@orchestraworks/client/dist/apis/{ProjectsApi.js → TeamsApi.js} +55 -55
  136. package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.d.ts +1 -1
  137. package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.js +2 -2
  138. package/node_modules/@orchestraworks/client/dist/apis/UsersApi.d.ts +0 -15
  139. package/node_modules/@orchestraworks/client/dist/apis/UsersApi.js +0 -49
  140. package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.d.ts +1 -1
  141. package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.js +2 -2
  142. package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.d.ts +2 -2
  143. package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.js +4 -4
  144. package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.d.ts +1 -1
  145. package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.js +2 -2
  146. package/node_modules/@orchestraworks/client/dist/apis/index.d.ts +3 -2
  147. package/node_modules/@orchestraworks/client/dist/apis/index.js +3 -2
  148. package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.d.ts +1 -1
  149. package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.js +2 -2
  150. package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.d.ts +1 -1
  151. package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.js +2 -2
  152. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.d.ts +1 -1
  153. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.js +2 -2
  154. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.d.ts +1 -1
  155. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.js +2 -2
  156. package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.d.ts +1 -1
  157. package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.js +2 -2
  158. package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.d.ts +1 -1
  159. package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.js +2 -2
  160. package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.d.ts +88 -0
  161. package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.js +235 -0
  162. package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.d.ts +1 -1
  163. package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.js +2 -2
  164. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.d.ts +1 -15
  165. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.js +3 -49
  166. package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.d.ts +1 -1
  167. package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.js +2 -2
  168. package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.d.ts +1 -1
  169. package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.js +2 -2
  170. package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.d.ts +1 -1
  171. package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.js +2 -2
  172. package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.d.ts +1 -1
  173. package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.js +2 -2
  174. package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.d.ts +1 -1
  175. package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.js +2 -2
  176. package/node_modules/@orchestraworks/client/dist/esm/apis/TeamMembershipsApi.d.ts +96 -0
  177. package/node_modules/@orchestraworks/client/dist/esm/apis/{GroupsApi.js → TeamMembershipsApi.js} +60 -57
  178. package/node_modules/@orchestraworks/client/dist/esm/apis/TeamsApi.d.ts +93 -0
  179. package/node_modules/@orchestraworks/client/dist/esm/apis/{ProjectsApi.js → TeamsApi.js} +53 -53
  180. package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.d.ts +1 -1
  181. package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.js +2 -2
  182. package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.d.ts +0 -15
  183. package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.js +0 -49
  184. package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.d.ts +1 -1
  185. package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.js +2 -2
  186. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.d.ts +2 -2
  187. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.js +4 -4
  188. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.d.ts +1 -1
  189. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.js +2 -2
  190. package/node_modules/@orchestraworks/client/dist/esm/apis/index.d.ts +3 -2
  191. package/node_modules/@orchestraworks/client/dist/esm/apis/index.js +3 -2
  192. package/node_modules/@orchestraworks/client/dist/esm/models/AddArtifactVersionRequest.d.ts +1 -1
  193. package/node_modules/@orchestraworks/client/dist/esm/models/Agent.d.ts +9 -3
  194. package/node_modules/@orchestraworks/client/dist/esm/models/Agent.js +3 -2
  195. package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.d.ts +9 -1
  196. package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.js +5 -1
  197. package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.d.ts +2 -2
  198. package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.js +2 -2
  199. package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.d.ts +2 -2
  200. package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.js +2 -2
  201. package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.d.ts +1 -1
  202. package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.js +2 -2
  203. package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.d.ts +2 -2
  204. package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.js +2 -2
  205. package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.d.ts +6 -0
  206. package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.js +2 -0
  207. package/node_modules/@orchestraworks/client/dist/esm/models/Connection.d.ts +16 -3
  208. package/node_modules/@orchestraworks/client/dist/esm/models/Connection.js +8 -2
  209. package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.d.ts +2 -2
  210. package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.js +2 -2
  211. package/node_modules/@orchestraworks/client/dist/esm/models/Connector.d.ts +2 -2
  212. package/node_modules/@orchestraworks/client/dist/esm/models/Connector.js +2 -2
  213. package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.d.ts +2 -2
  214. package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.js +2 -2
  215. package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.d.ts +4 -4
  216. package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.js +2 -2
  217. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
  218. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.js +2 -2
  219. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.d.ts +8 -2
  220. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.js +4 -2
  221. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.d.ts +2 -2
  222. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.js +2 -2
  223. package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.d.ts +3 -3
  224. package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.js +2 -2
  225. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.d.ts +2 -2
  226. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.js +2 -2
  227. package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.d.ts +2 -2
  228. package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.js +2 -2
  229. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.d.ts +2 -2
  230. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.js +2 -2
  231. package/node_modules/@orchestraworks/client/dist/esm/models/CreateImageRequest.d.ts +38 -0
  232. package/node_modules/@orchestraworks/client/dist/esm/models/{GroupMemberAgent.js → CreateImageRequest.js} +12 -16
  233. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.d.ts +2 -2
  234. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.js +2 -2
  235. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.d.ts +2 -2
  236. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.js +2 -2
  237. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.d.ts +4 -4
  238. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.js +3 -3
  239. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.d.ts +1 -8
  240. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.js +0 -3
  241. package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.d.ts +2 -2
  242. package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.js +2 -2
  243. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
  244. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.js +2 -2
  245. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.d.ts +8 -2
  246. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.js +4 -2
  247. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.d.ts +2 -2
  248. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.js +2 -2
  249. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.d.ts +2 -2
  250. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.js +2 -2
  251. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.d.ts +65 -0
  252. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.js +61 -0
  253. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.d.ts +80 -0
  254. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.js +64 -0
  255. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.d.ts +2 -2
  256. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.js +2 -2
  257. package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.d.ts +2 -2
  258. package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.js +2 -2
  259. package/node_modules/@orchestraworks/client/dist/esm/models/CreateWorkflowRequest.d.ts +1 -1
  260. package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.d.ts +8 -2
  261. package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.js +6 -2
  262. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.d.ts +45 -4
  263. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.js +29 -5
  264. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChartQuery.d.ts +1 -1
  265. package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.d.ts +2 -2
  266. package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.js +2 -2
  267. package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.d.ts +0 -13
  268. package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.js +0 -5
  269. package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.d.ts +58 -0
  270. package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.js +64 -0
  271. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.d.ts +2 -2
  272. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.js +2 -2
  273. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentEgressPolicy.d.ts +1 -1
  274. package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.d.ts +2 -2
  275. package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.js +2 -2
  276. package/node_modules/@orchestraworks/client/dist/esm/models/Image.d.ts +113 -0
  277. package/node_modules/@orchestraworks/client/dist/esm/models/Image.js +91 -0
  278. package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.d.ts +2 -2
  279. package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.js +2 -2
  280. package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.d.ts +44 -0
  281. package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.js +47 -0
  282. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
  283. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.d.ts +0 -6
  284. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.js +0 -4
  285. package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.d.ts +2 -2
  286. package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.js +2 -2
  287. package/node_modules/@orchestraworks/client/dist/esm/models/MessageWorkItemRequest.d.ts +1 -1
  288. package/node_modules/@orchestraworks/client/dist/esm/models/Metric.d.ts +2 -2
  289. package/node_modules/@orchestraworks/client/dist/esm/models/Metric.js +2 -2
  290. package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.d.ts +2 -2
  291. package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.js +2 -2
  292. package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.d.ts +2 -2
  293. package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.js +2 -2
  294. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.d.ts +7 -0
  295. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.js +5 -0
  296. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.d.ts +4 -4
  297. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.js +4 -4
  298. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.d.ts +5 -5
  299. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.js +4 -4
  300. package/node_modules/@orchestraworks/client/dist/esm/models/PageImage.d.ts +51 -0
  301. package/node_modules/@orchestraworks/client/dist/esm/models/{PageProject.js → PageImage.js} +11 -11
  302. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeam.d.ts +51 -0
  303. package/node_modules/@orchestraworks/client/dist/esm/models/{PageGroupSummary.js → PageTeam.js} +11 -11
  304. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.d.ts +51 -0
  305. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.js +56 -0
  306. package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.d.ts +2 -2
  307. package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.js +2 -2
  308. package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.d.ts +8 -2
  309. package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.js +4 -2
  310. package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.d.ts +2 -2
  311. package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.js +2 -2
  312. package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.d.ts +1 -1
  313. package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.js +1 -1
  314. package/node_modules/@orchestraworks/client/dist/esm/models/Role.d.ts +6 -0
  315. package/node_modules/@orchestraworks/client/dist/esm/models/Role.js +4 -0
  316. package/node_modules/@orchestraworks/client/dist/esm/models/Secret.d.ts +16 -3
  317. package/node_modules/@orchestraworks/client/dist/esm/models/Secret.js +8 -2
  318. package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.d.ts +7 -1
  319. package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.js +1 -0
  320. package/node_modules/@orchestraworks/client/dist/esm/models/Session.d.ts +3 -2
  321. package/node_modules/@orchestraworks/client/dist/esm/models/Session.js +3 -2
  322. package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.d.ts +3 -2
  323. package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.js +3 -2
  324. package/node_modules/@orchestraworks/client/dist/esm/models/Skill.d.ts +2 -2
  325. package/node_modules/@orchestraworks/client/dist/esm/models/Skill.js +2 -2
  326. package/node_modules/@orchestraworks/client/dist/esm/models/SnapshotAnchor.d.ts +1 -1
  327. package/node_modules/@orchestraworks/client/dist/esm/models/Team.d.ts +104 -0
  328. package/node_modules/@orchestraworks/client/dist/esm/models/{GroupSummary.js → Team.js} +25 -15
  329. package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.d.ts +83 -0
  330. package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.js +77 -0
  331. package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.d.ts +2 -2
  332. package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.js +2 -2
  333. package/node_modules/@orchestraworks/client/dist/esm/models/TriggerTarget.d.ts +1 -1
  334. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateArtifactRequest.d.ts +1 -1
  335. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.d.ts +6 -0
  336. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.js +2 -0
  337. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
  338. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.js +3 -3
  339. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
  340. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.js +0 -3
  341. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.d.ts +6 -0
  342. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.js +2 -0
  343. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.d.ts +47 -0
  344. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.js +51 -0
  345. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.d.ts +68 -0
  346. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.js +58 -0
  347. package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.d.ts +2 -2
  348. package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.js +2 -2
  349. package/node_modules/@orchestraworks/client/dist/esm/models/Volume.d.ts +10 -3
  350. package/node_modules/@orchestraworks/client/dist/esm/models/Volume.js +4 -2
  351. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemActivity.d.ts +2 -2
  352. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.d.ts +7 -7
  353. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.js +5 -5
  354. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.d.ts +2 -2
  355. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.js +2 -2
  356. package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.d.ts +2 -2
  357. package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.js +2 -2
  358. package/node_modules/@orchestraworks/client/dist/esm/models/index.d.ts +13 -17
  359. package/node_modules/@orchestraworks/client/dist/esm/models/index.js +13 -17
  360. package/node_modules/@orchestraworks/client/dist/models/AddArtifactVersionRequest.d.ts +1 -1
  361. package/node_modules/@orchestraworks/client/dist/models/Agent.d.ts +9 -3
  362. package/node_modules/@orchestraworks/client/dist/models/Agent.js +3 -2
  363. package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.d.ts +9 -1
  364. package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.js +5 -1
  365. package/node_modules/@orchestraworks/client/dist/models/Artifact.d.ts +2 -2
  366. package/node_modules/@orchestraworks/client/dist/models/Artifact.js +2 -2
  367. package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.d.ts +2 -2
  368. package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.js +2 -2
  369. package/node_modules/@orchestraworks/client/dist/models/AssignAction.d.ts +1 -1
  370. package/node_modules/@orchestraworks/client/dist/models/AssignAction.js +2 -2
  371. package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.d.ts +2 -2
  372. package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.js +2 -2
  373. package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.d.ts +6 -0
  374. package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.js +2 -0
  375. package/node_modules/@orchestraworks/client/dist/models/Connection.d.ts +16 -3
  376. package/node_modules/@orchestraworks/client/dist/models/Connection.js +8 -2
  377. package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.d.ts +2 -2
  378. package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.js +2 -2
  379. package/node_modules/@orchestraworks/client/dist/models/Connector.d.ts +2 -2
  380. package/node_modules/@orchestraworks/client/dist/models/Connector.js +2 -2
  381. package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.d.ts +2 -2
  382. package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.js +2 -2
  383. package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.d.ts +4 -4
  384. package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.js +2 -2
  385. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
  386. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.js +2 -2
  387. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.d.ts +8 -2
  388. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.js +4 -2
  389. package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.d.ts +2 -2
  390. package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.js +2 -2
  391. package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.d.ts +3 -3
  392. package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.js +2 -2
  393. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.d.ts +2 -2
  394. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.js +2 -2
  395. package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.d.ts +2 -2
  396. package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.js +2 -2
  397. package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.d.ts +2 -2
  398. package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.js +2 -2
  399. package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.d.ts +38 -0
  400. package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.js +54 -0
  401. package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.d.ts +2 -2
  402. package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.js +2 -2
  403. package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.d.ts +2 -2
  404. package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.js +2 -2
  405. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.d.ts +4 -4
  406. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.js +3 -3
  407. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.d.ts +1 -8
  408. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.js +0 -3
  409. package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.d.ts +2 -2
  410. package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.js +2 -2
  411. package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
  412. package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.js +2 -2
  413. package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.d.ts +8 -2
  414. package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.js +4 -2
  415. package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.d.ts +2 -2
  416. package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.js +2 -2
  417. package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.d.ts +2 -2
  418. package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.js +2 -2
  419. package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.d.ts +65 -0
  420. package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.js +69 -0
  421. package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.d.ts +80 -0
  422. package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.js +72 -0
  423. package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.d.ts +2 -2
  424. package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.js +2 -2
  425. package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.d.ts +2 -2
  426. package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.js +2 -2
  427. package/node_modules/@orchestraworks/client/dist/models/CreateWorkflowRequest.d.ts +1 -1
  428. package/node_modules/@orchestraworks/client/dist/models/Dashboard.d.ts +8 -2
  429. package/node_modules/@orchestraworks/client/dist/models/Dashboard.js +6 -2
  430. package/node_modules/@orchestraworks/client/dist/models/DashboardChart.d.ts +45 -4
  431. package/node_modules/@orchestraworks/client/dist/models/DashboardChart.js +30 -6
  432. package/node_modules/@orchestraworks/client/dist/models/DashboardChartQuery.d.ts +1 -1
  433. package/node_modules/@orchestraworks/client/dist/models/Delivery.d.ts +2 -2
  434. package/node_modules/@orchestraworks/client/dist/models/Delivery.js +2 -2
  435. package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.d.ts +0 -13
  436. package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.js +0 -5
  437. package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.d.ts +58 -0
  438. package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.js +72 -0
  439. package/node_modules/@orchestraworks/client/dist/models/Environment.d.ts +2 -2
  440. package/node_modules/@orchestraworks/client/dist/models/Environment.js +2 -2
  441. package/node_modules/@orchestraworks/client/dist/models/EnvironmentEgressPolicy.d.ts +1 -1
  442. package/node_modules/@orchestraworks/client/dist/models/GatewayKey.d.ts +2 -2
  443. package/node_modules/@orchestraworks/client/dist/models/GatewayKey.js +2 -2
  444. package/node_modules/@orchestraworks/client/dist/models/Image.d.ts +113 -0
  445. package/node_modules/@orchestraworks/client/dist/models/Image.js +99 -0
  446. package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.d.ts +2 -2
  447. package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.js +2 -2
  448. package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.d.ts +44 -0
  449. package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.js +54 -0
  450. package/node_modules/@orchestraworks/client/dist/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
  451. package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.d.ts +0 -6
  452. package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.js +0 -4
  453. package/node_modules/@orchestraworks/client/dist/models/MachineView.d.ts +2 -2
  454. package/node_modules/@orchestraworks/client/dist/models/MachineView.js +2 -2
  455. package/node_modules/@orchestraworks/client/dist/models/MessageWorkItemRequest.d.ts +1 -1
  456. package/node_modules/@orchestraworks/client/dist/models/Metric.d.ts +2 -2
  457. package/node_modules/@orchestraworks/client/dist/models/Metric.js +2 -2
  458. package/node_modules/@orchestraworks/client/dist/models/MetricValue.d.ts +2 -2
  459. package/node_modules/@orchestraworks/client/dist/models/MetricValue.js +2 -2
  460. package/node_modules/@orchestraworks/client/dist/models/ModelFile.d.ts +2 -2
  461. package/node_modules/@orchestraworks/client/dist/models/ModelFile.js +2 -2
  462. package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.d.ts +7 -0
  463. package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.js +5 -0
  464. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.d.ts +4 -4
  465. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.js +4 -4
  466. package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.d.ts +5 -5
  467. package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.js +4 -4
  468. package/node_modules/@orchestraworks/client/dist/models/PageImage.d.ts +51 -0
  469. package/node_modules/@orchestraworks/client/dist/models/{PageProject.js → PageImage.js} +16 -16
  470. package/node_modules/@orchestraworks/client/dist/models/PageTeam.d.ts +51 -0
  471. package/node_modules/@orchestraworks/client/dist/models/{PageGroupSummary.js → PageTeam.js} +16 -16
  472. package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.d.ts +51 -0
  473. package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.js +63 -0
  474. package/node_modules/@orchestraworks/client/dist/models/Pipeline.d.ts +2 -2
  475. package/node_modules/@orchestraworks/client/dist/models/Pipeline.js +2 -2
  476. package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.d.ts +8 -2
  477. package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.js +4 -2
  478. package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.d.ts +2 -2
  479. package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.js +2 -2
  480. package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.d.ts +1 -1
  481. package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.js +1 -1
  482. package/node_modules/@orchestraworks/client/dist/models/Role.d.ts +6 -0
  483. package/node_modules/@orchestraworks/client/dist/models/Role.js +4 -0
  484. package/node_modules/@orchestraworks/client/dist/models/Secret.d.ts +16 -3
  485. package/node_modules/@orchestraworks/client/dist/models/Secret.js +8 -2
  486. package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.d.ts +7 -1
  487. package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.js +1 -0
  488. package/node_modules/@orchestraworks/client/dist/models/Session.d.ts +3 -2
  489. package/node_modules/@orchestraworks/client/dist/models/Session.js +3 -2
  490. package/node_modules/@orchestraworks/client/dist/models/SessionSummary.d.ts +3 -2
  491. package/node_modules/@orchestraworks/client/dist/models/SessionSummary.js +3 -2
  492. package/node_modules/@orchestraworks/client/dist/models/Skill.d.ts +2 -2
  493. package/node_modules/@orchestraworks/client/dist/models/Skill.js +2 -2
  494. package/node_modules/@orchestraworks/client/dist/models/SnapshotAnchor.d.ts +1 -1
  495. package/node_modules/@orchestraworks/client/dist/models/Team.d.ts +104 -0
  496. package/node_modules/@orchestraworks/client/dist/models/{GroupSummary.js → Team.js} +31 -21
  497. package/node_modules/@orchestraworks/client/dist/models/TeamMembership.d.ts +83 -0
  498. package/node_modules/@orchestraworks/client/dist/models/TeamMembership.js +85 -0
  499. package/node_modules/@orchestraworks/client/dist/models/Trigger.d.ts +2 -2
  500. package/node_modules/@orchestraworks/client/dist/models/Trigger.js +2 -2
  501. package/node_modules/@orchestraworks/client/dist/models/TriggerTarget.d.ts +1 -1
  502. package/node_modules/@orchestraworks/client/dist/models/UpdateArtifactRequest.d.ts +1 -1
  503. package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.d.ts +6 -0
  504. package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.js +2 -0
  505. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
  506. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.js +3 -3
  507. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
  508. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.js +0 -3
  509. package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.d.ts +6 -0
  510. package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.js +2 -0
  511. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.d.ts +47 -0
  512. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.js +59 -0
  513. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.d.ts +68 -0
  514. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.js +66 -0
  515. package/node_modules/@orchestraworks/client/dist/models/UserGrant.d.ts +2 -2
  516. package/node_modules/@orchestraworks/client/dist/models/UserGrant.js +2 -2
  517. package/node_modules/@orchestraworks/client/dist/models/Volume.d.ts +10 -3
  518. package/node_modules/@orchestraworks/client/dist/models/Volume.js +4 -2
  519. package/node_modules/@orchestraworks/client/dist/models/WorkItemActivity.d.ts +2 -2
  520. package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.d.ts +7 -7
  521. package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.js +5 -5
  522. package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.d.ts +2 -2
  523. package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.js +2 -2
  524. package/node_modules/@orchestraworks/client/dist/models/Workflow.d.ts +2 -2
  525. package/node_modules/@orchestraworks/client/dist/models/Workflow.js +2 -2
  526. package/node_modules/@orchestraworks/client/dist/models/index.d.ts +13 -17
  527. package/node_modules/@orchestraworks/client/dist/models/index.js +13 -17
  528. package/node_modules/@orchestraworks/client/package.json +1 -1
  529. package/package.json +4 -4
  530. package/skills/orchestra/SKILL.md +74 -64
  531. package/skills/orchestra-fdk/references/authoring.md +75 -39
  532. package/skills/orchestra-fdk/references/environment.md +214 -33
  533. package/skills/orchestra-fdk/references/troubleshooting.md +8 -7
  534. package/templates/bug-fix/main.ts +6 -1
  535. package/templates/engineering-team/README.md +10 -7
  536. package/templates/engineering-team/agents/engineer-agent.md +38 -16
  537. package/templates/engineering-team/lib/environment.ts +15 -3
  538. package/templates/engineering-team/main.ts +1 -1
  539. package/templates/todo-factory/main.ts +6 -1
  540. package/dist/constructs/project.d.ts +0 -33
  541. package/dist/constructs/project.js +0 -82
  542. package/node_modules/@orchestraworks/client/dist/apis/GroupsApi.d.ts +0 -95
  543. package/node_modules/@orchestraworks/client/dist/apis/ProjectsApi.d.ts +0 -93
  544. package/node_modules/@orchestraworks/client/dist/esm/apis/GroupsApi.d.ts +0 -95
  545. package/node_modules/@orchestraworks/client/dist/esm/apis/ProjectsApi.d.ts +0 -93
  546. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.d.ts +0 -82
  547. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.js +0 -74
  548. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.d.ts +0 -53
  549. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.js +0 -50
  550. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.d.ts +0 -52
  551. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.js +0 -49
  552. package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.d.ts +0 -46
  553. package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.js +0 -47
  554. package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.d.ts +0 -57
  555. package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.js +0 -50
  556. package/node_modules/@orchestraworks/client/dist/esm/models/Group.d.ts +0 -106
  557. package/node_modules/@orchestraworks/client/dist/esm/models/Group.js +0 -92
  558. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.d.ts +0 -40
  559. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.js +0 -45
  560. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberAgent.d.ts +0 -44
  561. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.d.ts +0 -38
  562. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.js +0 -43
  563. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.d.ts +0 -38
  564. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.js +0 -45
  565. package/node_modules/@orchestraworks/client/dist/esm/models/GroupSummary.d.ts +0 -86
  566. package/node_modules/@orchestraworks/client/dist/esm/models/PageGroupSummary.d.ts +0 -51
  567. package/node_modules/@orchestraworks/client/dist/esm/models/PageProject.d.ts +0 -51
  568. package/node_modules/@orchestraworks/client/dist/esm/models/Project.d.ts +0 -76
  569. package/node_modules/@orchestraworks/client/dist/esm/models/Project.js +0 -69
  570. package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.d.ts +0 -38
  571. package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.js +0 -45
  572. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.d.ts +0 -70
  573. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.js +0 -60
  574. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.d.ts +0 -46
  575. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.js +0 -45
  576. package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.d.ts +0 -82
  577. package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.js +0 -82
  578. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.d.ts +0 -53
  579. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.js +0 -57
  580. package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.d.ts +0 -52
  581. package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.js +0 -56
  582. package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.d.ts +0 -46
  583. package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.js +0 -54
  584. package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.d.ts +0 -57
  585. package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.js +0 -57
  586. package/node_modules/@orchestraworks/client/dist/models/Group.d.ts +0 -106
  587. package/node_modules/@orchestraworks/client/dist/models/Group.js +0 -100
  588. package/node_modules/@orchestraworks/client/dist/models/GroupMember.d.ts +0 -40
  589. package/node_modules/@orchestraworks/client/dist/models/GroupMember.js +0 -52
  590. package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.d.ts +0 -44
  591. package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.js +0 -58
  592. package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.d.ts +0 -38
  593. package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.js +0 -50
  594. package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.d.ts +0 -38
  595. package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.js +0 -52
  596. package/node_modules/@orchestraworks/client/dist/models/GroupSummary.d.ts +0 -86
  597. package/node_modules/@orchestraworks/client/dist/models/PageGroupSummary.d.ts +0 -51
  598. package/node_modules/@orchestraworks/client/dist/models/PageProject.d.ts +0 -51
  599. package/node_modules/@orchestraworks/client/dist/models/Project.d.ts +0 -76
  600. package/node_modules/@orchestraworks/client/dist/models/Project.js +0 -76
  601. package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.d.ts +0 -38
  602. package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.js +0 -52
  603. package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.d.ts +0 -70
  604. package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.js +0 -68
  605. package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.d.ts +0 -46
  606. package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.js +0 -52
@@ -12,7 +12,7 @@ import { isEnvImportMarker, parseEnvImportMarker } from "../constructs/reference
12
12
  import { gatewayKeyRefOf } from "../core/gateway-key-recipe.js";
13
13
  import { labelsPatch, MANAGED_BY_LABEL_KEY } from "../core/labels.js";
14
14
  import { isRefToken, refToken } from "../core/tokens.js";
15
- import { modelSettingsUnchanged, standbyCapacityUnchanged, platformErrorMessage, } from "./apply-core.js";
15
+ import { createTeamResolver, mapError, modelSettingsUnchanged, standbyCapacityUnchanged, platformErrorMessage, } from "./apply-core.js";
16
16
  import { httpStatusOf } from "./client.js";
17
17
  import { describeRefusal, describeStageEffects, leftoverRefusals, pipelineChange, pipelineUnchanged, previewPipelineChange, resolveGateReferences, workflowStagesAfterApply, } from "./pipeline-reconcile.js";
18
18
  import { describeEntryChange, describeOverlaps, entriesUnchanged, pipelineEntryChange, proposedWorkflows, } from "./pipeline-workflow-reconcile.js";
@@ -22,10 +22,10 @@ import { computeProviderPatch, } from "./compute-provider-reconcile.js";
22
22
  import { paginate } from "./pages.js";
23
23
  import { isCeremonyBackedConnection } from "./connection-install-link-reconcile.js";
24
24
  import { reservedProviderSecretIds } from "./preflight.js";
25
- import { egressCredentialBindingLabel, gatewayKeyPairRefusal, refusalOf, } from "./refusals.js";
26
- import { connectionUnchanged, credentialBindingArm, environmentUnchanged, getBySlugOrUndefined, subsetDeepEqual, } from "./reconcile.js";
25
+ import { gatewayKeyPairRefusal, refusalOf, } from "./refusals.js";
26
+ import { connectionUnchanged, environmentUnchanged, getBySlugOrUndefined, subsetDeepEqual, } from "./reconcile.js";
27
27
  import { removedConfigurationNotice } from "./connector-configuration.js";
28
- import { containsCommandLineRecipe, metadataInjectionChange, pendingCredentialWrite, replacesLiveCredentialValue, resolveSecretValueSource, rootEnvName, } from "./secrets-apply.js";
28
+ import { containsCommandLineRecipe, declaredSecretHosts, metadataHostsChange, metadataInjectionChange, pendingCredentialWrite, replacesLiveCredentialValue, resolveSecretValueSource, rootEnvName, } from "./secrets-apply.js";
29
29
  /** Overridable for tests. */
30
30
  export const ORPHAN_SCAN_CAP = 5;
31
31
  /**
@@ -65,12 +65,15 @@ export async function diffResources(plan, apis, opts) {
65
65
  // build and a push for a write apply refuses the moment it reaches the same binding.
66
66
  let reservedCache;
67
67
  const reserved = () => (reservedCache ??= reservedProviderSecretIds(apis));
68
+ let rolesCache;
69
+ const roles = () => (rolesCache ??= paginate((page, limit) => apis.roles.listRoles({ page, limit })).then((read) => read.items));
68
70
  const pass = {
69
71
  apis,
70
72
  env: opts.env,
71
73
  planSlugByRef,
72
- project: opts.project ?? (await resolveDesiredProject(plan, apis)),
74
+ teams: opts.teams ?? (await previewTeamResolver(plan, apis)),
73
75
  reserved,
76
+ roles,
74
77
  reads: opts.reads ?? createDiffReadCache(apis),
75
78
  triggers: opts.triggers ?? [],
76
79
  };
@@ -88,38 +91,54 @@ export async function diffPlan(plan, apis, opts) {
88
91
  return entries;
89
92
  }
90
93
  /**
91
- * A missing MANAGED project is `pending-managed` — nothing readable can equal a project that has not been
92
- * created — while a missing IMPORT ref stays lenient `none`, because a preview must not refuse against a
93
- * project it merely cannot read.
94
- *
95
- * This is the ONE resolver seam for the PREVIEW side, shared by apply's pre-flight and `orchestra fdk diff` so the
96
- * two cannot derive the descriptor differently. Reconcile is deliberately NOT a consumer and cannot be: its
97
- * phase 0 CREATES a managed project, so the id it holds is by definition fresher than any descriptor
98
- * resolved before the apply began.
94
+ * The ONE team resolver for the PREVIEW side, shared by apply's pre-flight and `orchestra fdk diff`. A managed
95
+ * team that exists live resolves to its id; one that does not, or that this key cannot read, is
96
+ * `pending-managed`, since no live row can sit in a team nothing has created. An imported team the key cannot
97
+ * read is left unjudged, because a preview must not refuse against a team it merely cannot read. Reconcile
98
+ * builds its own, because it creates the managed teams and holds fresher ids than any preview.
99
+ */
100
+ export async function previewTeamResolver(plan, apis) {
101
+ const known = new Map();
102
+ const pendingManaged = new Map();
103
+ for (const resource of plan.resources) {
104
+ if (resource.kind !== "team")
105
+ continue;
106
+ const token = refToken("team", resource.path.split("/"));
107
+ const live = await getBySlugOrUndefined(() => apis.teams.getTeam({ id: resource.slug })).catch(() => undefined);
108
+ if (live !== undefined)
109
+ known.set(token, live.id);
110
+ else
111
+ pendingManaged.set(token, resource.slug);
112
+ }
113
+ return createTeamResolver(apis, known, { preview: { pendingManaged } });
114
+ }
115
+ /**
116
+ * A preview never fails on a team read: an unreadable one decides nothing. `lives` are the rows the team is
117
+ * judged against, so a row in Shared reads Shared's id only when one of them reports a team.
99
118
  */
100
- export async function resolveDesiredProject(plan, apis) {
101
- const managedRef = plan.resources.find((r) => r.kind === "project")?.slug;
102
- const ref = managedRef ?? plan.imports.find((i) => i.kind === "project")?.ref;
103
- if (ref === undefined) {
104
- return { state: "none" };
119
+ async function teamOf(pass, resource, raw, ...lives) {
120
+ const ctx = { kind: resource.kind, slug: resource.slug, op: "get" };
121
+ try {
122
+ let team = await pass.teams.desired(raw, ctx, []);
123
+ for (const live of lives)
124
+ team = await pass.teams.judged(team, live, ctx, []);
125
+ return team;
105
126
  }
106
- const live = await getBySlugOrUndefined(() => apis.projects.getProject({ id: ref }));
107
- if (live !== undefined) {
108
- return { state: "resolved", projectId: live.id };
127
+ catch {
128
+ return undefined;
109
129
  }
110
- return managedRef !== undefined ? { state: "pending-managed", projectRef: managedRef } : { state: "none" };
111
130
  }
112
131
  /**
113
- * Overwrites the synth-time stamp with the resolved live id so the compare reflects the row apply selected,
114
- * or DROPS the unresolved symbolic ref so it never pollutes the subset compare. Safe because every body
115
- * compare runs after the identity check has already proved the live stamp and the declared project agree.
132
+ * Sets the resolved live team so the compare reflects the row apply selected, or drops the field for Shared
133
+ * and for a team not created yet. Safe because every body compare runs after the identity check has already
134
+ * proved the live team and the declared one agree.
116
135
  */
117
- function stampDiffBodyProject(body, projectStamp) {
118
- if (projectStamp.state === "resolved") {
119
- body.projectId = projectStamp.projectId;
136
+ function stampDiffBodyTeam(body, team) {
137
+ if (team?.state === "resolved" && team.shared !== true) {
138
+ body.teamId = team.teamId;
120
139
  }
121
140
  else {
122
- delete body.projectId;
141
+ delete body.teamId;
123
142
  }
124
143
  }
125
144
  /**
@@ -130,7 +149,7 @@ function stampDiffBodyProject(body, projectStamp) {
130
149
  function verdictFor(resource, live, evidence) {
131
150
  return refusalOf(resource.kind, resource, {
132
151
  env: evidence.env,
133
- ...(evidence.project !== undefined ? { project: evidence.project } : {}),
152
+ ...(evidence.team !== undefined ? { team: evidence.team } : {}),
134
153
  ...(live !== undefined ? { live } : {}),
135
154
  ...(evidence.resolvedDesired !== undefined ? { resolvedDesired: evidence.resolvedDesired } : {}),
136
155
  ...(evidence.gatewayPair !== undefined ? { gatewayPair: evidence.gatewayPair } : {}),
@@ -144,17 +163,17 @@ function verdictFor(resource, live, evidence) {
144
163
  * are genuinely about both rows and pass through to both.
145
164
  */
146
165
  function addressedTo(resource, verdict) {
147
- if (verdict?.code === "project-identity" && verdict.refusal.slug !== resource.slug) {
166
+ if (verdict?.code === "team-identity" && verdict.refusal.slug !== resource.slug) {
148
167
  return null;
149
168
  }
150
169
  return verdict;
151
170
  }
152
171
  /**
153
- * A project-identity conflict keeps its own `refused` state and typed payload; every other verdict rides an
172
+ * A team-identity conflict keeps its own `refused` state and typed payload; every other verdict rides an
154
173
  * ordinary state carrying {@link DiffEntry.blocked}.
155
174
  */
156
175
  function refusedRow(resource, verdict) {
157
- return verdict?.code === "project-identity" ? refused(resource, verdict.refusal, verdict.code) : undefined;
176
+ return verdict?.code === "team-identity" ? refused(resource, verdict.refusal, verdict.code) : undefined;
158
177
  }
159
178
  /**
160
179
  * Carrying the classifier's own MESSAGE as `details` is the point of the fragment: both renderers print
@@ -164,7 +183,7 @@ function refusedRow(resource, verdict) {
164
183
  * going to be applied, so why it will fail outranks what it would otherwise have written.
165
184
  */
166
185
  function blockedOf(verdict) {
167
- return verdict === null || verdict.code === "project-identity"
186
+ return verdict === null || verdict.code === "team-identity"
168
187
  ? {}
169
188
  : { blocked: verdict.code, details: verdict.message };
170
189
  }
@@ -189,8 +208,12 @@ function sensitivityOf(valueFrom, exists, env) {
189
208
  }
190
209
  async function diffResource(resource, plan, pass) {
191
210
  switch (resource.kind) {
192
- case "project":
193
- return diffProject(resource, pass);
211
+ case "team":
212
+ return diffTeam(resource, pass);
213
+ case "role":
214
+ return diffRole(resource, pass);
215
+ case "team-membership":
216
+ return diffTeamMemberships(resource, pass);
194
217
  case "gateway-key":
195
218
  return diffGatewayKey(resource, plan, pass);
196
219
  case "model-provider-key":
@@ -233,17 +256,129 @@ async function diffComputeProvider(resource, pass) {
233
256
  const patch = computeProviderPatch(resource.payload, live);
234
257
  return entry(resource, patch === undefined ? "no-change" : "update");
235
258
  }
236
- /** `name` and the declared labels are the orchestra-managed fields, and a project is never itself moved. */
237
- async function diffProject(resource, pass) {
238
- const live = await pass.reads.read("project", resource.slug);
259
+ /**
260
+ * The platform's 403 on a read is this key saying it may not touch the row: the same `refused` apply records
261
+ * when its write is refused, so a weak key's preview names every row it cannot apply.
262
+ */
263
+ async function forbiddenOr(resource, op, read) {
264
+ try {
265
+ return { value: await read() };
266
+ }
267
+ catch (error) {
268
+ if (httpStatusOf(error) !== 403)
269
+ throw error;
270
+ const details = await mapError(error, { kind: resource.kind, slug: resource.slug, op });
271
+ return { refused: entry(resource, "refused", undefined, { blocked: "forbidden", details }) };
272
+ }
273
+ }
274
+ /** Name, privacy, assignment method and the declared labels are the managed fields; the parent is fixed. */
275
+ async function diffTeam(resource, pass) {
276
+ const read = await forbiddenOr(resource, "get", () => pass.reads.read("team", resource.slug));
277
+ if ("refused" in read)
278
+ return read.refused;
279
+ const live = read.value;
239
280
  if (live === undefined) {
240
281
  return entry(resource, "create");
241
282
  }
242
283
  const payload = resource.payload;
243
- const unchanged = subsetDeepEqual({ name: payload.name }, live) &&
284
+ // Compared both ways, as apply compares it: a parent declared, changed or dropped is refused.
285
+ const declaredParent = payload.parentTeamId === undefined ? undefined : await teamOf(pass, resource, payload.parentTeamId);
286
+ const parentId = declaredParent?.state === "resolved" ? declaredParent.teamId : undefined;
287
+ const parentDeclared = payload.parentTeamId !== undefined;
288
+ const liveParent = live.parentTeamId ?? undefined;
289
+ if ((parentDeclared && parentId !== liveParent) || (!parentDeclared && liveParent !== undefined)) {
290
+ return entry(resource, "update", undefined, {
291
+ blocked: "team-parent-fixed",
292
+ details: `team '${resource.slug}': a team's parent is fixed when it is created, so apply cannot change it`,
293
+ });
294
+ }
295
+ const unchanged = live.name === payload.name &&
296
+ live._private === payload.private &&
297
+ (live.assignment ?? "AGENT_FIRST") === payload.assignment &&
298
+ labelsPatch(payload.labels, live.labels) === undefined;
299
+ return entry(resource, unchanged ? "no-change" : "update");
300
+ }
301
+ /** A custom role is found by its name, as apply finds it, and its policies compare as a set. */
302
+ async function diffRole(resource, pass) {
303
+ const payload = resource.payload;
304
+ const read = await forbiddenOr(resource, "list", () => pass.roles());
305
+ if ("refused" in read)
306
+ return read.refused;
307
+ const live = read.value.find((role) => role.name === payload.name && role.organizationId !== "org_global");
308
+ if (live === undefined)
309
+ return entry(resource, "create");
310
+ const unchanged = [...live.policyIds].sort().join(" ") === payload.policyIds.join(" ") &&
311
+ (payload.description === undefined || payload.description === live.description) &&
244
312
  labelsPatch(payload.labels, live.labels) === undefined;
245
313
  return entry(resource, unchanged ? "no-change" : "update");
246
314
  }
315
+ /**
316
+ * A principal's rows compare as one set, keyed by scope. An agent the plan has not created yet has the rows the
317
+ * platform writes at agent create, which apply then replaces, so its row previews as an update.
318
+ */
319
+ async function diffTeamMemberships(resource, pass) {
320
+ const payload = resource.payload;
321
+ const principal = payload.principal;
322
+ let membershipId;
323
+ if ("agentId" in principal) {
324
+ const live = await pass.reads.read("agent", resource.slug).catch(() => undefined);
325
+ if (live === undefined)
326
+ return entry(resource, "update", "rows written after the agent is created");
327
+ membershipId = live.membershipId;
328
+ }
329
+ else {
330
+ const account = await getBySlugOrUndefined(() => pass.apis.serviceAccounts.getServiceAccount({ id: principal.serviceAccountId }));
331
+ if (account === undefined) {
332
+ return entry(resource, "update", undefined, {
333
+ blocked: "service-account-missing",
334
+ details: `service account '${principal.serviceAccountId}' was not found; the kit never creates one`,
335
+ });
336
+ }
337
+ membershipId = account.membershipId;
338
+ }
339
+ if (membershipId === undefined)
340
+ return entry(resource, "update");
341
+ const read = await forbiddenOr(resource, "list", async () => {
342
+ const rows = await paginate(async (page, limit) => {
343
+ const result = await pass.apis.teamMemberships.listTeamMemberships({ membershipId, page, limit });
344
+ return { data: result.data, page, limit, total: result.total ?? result.data.length };
345
+ });
346
+ return rows.items;
347
+ });
348
+ if ("refused" in read)
349
+ return read.refused;
350
+ if (read.value === undefined)
351
+ return entry(resource, "update");
352
+ const live = new Map(read.value.map((row) => [row.allTeams === true ? "*" : `team:${row.teamId ?? ""}`, row.roleId]));
353
+ if (live.size !== payload.rows.length)
354
+ return entry(resource, "update");
355
+ for (const row of payload.rows) {
356
+ let scope = "*";
357
+ if ("teamId" in row) {
358
+ const team = await teamOf(pass, resource, row.teamId);
359
+ if (team?.state !== "resolved")
360
+ return entry(resource, "update");
361
+ scope = `team:${team.teamId}`;
362
+ }
363
+ const roleId = await roleIdOf(pass, row.roleId);
364
+ if (roleId === undefined || live.get(scope) !== roleId)
365
+ return entry(resource, "update");
366
+ }
367
+ return entry(resource, "no-change");
368
+ }
369
+ /**
370
+ * A row's role id: a managed role's slug as written, or a custom role this program declares, found by its name
371
+ * as apply finds it. A custom role that does not exist yet answers undefined, so its rows preview as an update.
372
+ */
373
+ async function roleIdOf(pass, ref) {
374
+ if (!isRefToken(ref))
375
+ return ref;
376
+ const declared = pass.planSlugByRef.get(ref);
377
+ if (declared?.kind !== "role")
378
+ return undefined;
379
+ const roles = await pass.roles().catch(() => undefined);
380
+ return roles?.find((role) => role.name === declared.slug && role.organizationId !== "org_global")?.id;
381
+ }
247
382
  async function diffSecret(resource, pass) {
248
383
  // A gateway-key-backed secret has no env source at all: whether apply writes it is decided by whether the
249
384
  // paired KEY exists, so it needs its own classification.
@@ -263,9 +398,10 @@ async function diffSecret(resource, pass) {
263
398
  // it as an optimization made an overwrite of a live credential preview exactly like a first write, so the
264
399
  // operator never saw the unrecoverable-replacement warning.
265
400
  const live = await readSecret(pass, resource.slug);
266
- // A readable cross-project row outranks every write verdict — apply refuses it in its read-only decision
401
+ // A readable row in another team outranks every write verdict — apply refuses it in its read-only decision
267
402
  // phase, ahead of the write and ahead of the confirmation.
268
- const verdict = verdictFor(resource, live, { env, project: pass.project });
403
+ const team = await teamOf(pass, resource, resource.payload.teamId, live);
404
+ const verdict = verdictFor(resource, live, { env, ...(team !== undefined ? { team } : {}) });
269
405
  const identity = refusedRow(resource, verdict);
270
406
  if (identity !== undefined)
271
407
  return identity;
@@ -283,17 +419,27 @@ async function diffSecret(resource, pass) {
283
419
  if (live === undefined) {
284
420
  return entry(resource, "create", unsetNote, marks);
285
421
  }
286
- // Nothing to write, but the declared INJECTION RECIPE may still differ, and reconcile answers that with a
287
- // real value-less PATCH. Reading only the value source here reported `no-change` for that edit, so a
288
- // recipe-only change sailed past the `any-change` gate unapproved. Same comparator as reconcile's.
289
- const injectionChange = metadataInjectionChange(declaredInjection(resource), live.injection);
290
- if (injectionChange !== undefined) {
291
- return entry(resource, "update", withDetail(unsetNote, INJECTION_RECIPE_CHANGE), marks);
422
+ // Nothing to write, but the declared INJECTION RECIPE or HOSTS may still differ, and reconcile answers that
423
+ // with a real value-less PATCH. Reading only the value source here reported `no-change` for that edit, so a
424
+ // recipe-only change sailed past the `any-change` gate unapproved. Same comparators as reconcile's.
425
+ const metadata = secretMetadataDetail(resource, live);
426
+ if (metadata !== undefined) {
427
+ return entry(resource, "update", withDetail(unsetNote, metadata), marks);
292
428
  }
293
429
  return entry(resource, "no-change", unsetNote, marks);
294
430
  }
295
- /** Value-free: a recipe is shape, never credential material. */
431
+ /** Value-free: a recipe and a host list are shape, never credential material. */
296
432
  const INJECTION_RECIPE_CHANGE = "injection recipe changes";
433
+ const HOSTS_CHANGE = "hosts change";
434
+ function secretMetadataDetail(resource, live) {
435
+ const details = [
436
+ ...(metadataInjectionChange(declaredInjection(resource), live.injection) !== undefined
437
+ ? [INJECTION_RECIPE_CHANGE]
438
+ : []),
439
+ ...(metadataHostsChange(declaredSecretHosts(resource.payload), live.hosts) !== undefined ? [HOSTS_CHANGE] : []),
440
+ ];
441
+ return details.length > 0 ? details.join("; ") : undefined;
442
+ }
297
443
  function declaredInjection(resource) {
298
444
  return resource.payload.injection;
299
445
  }
@@ -314,9 +460,10 @@ async function diffGatewayKey(resource, plan, pass) {
314
460
  // whose paired Secret is gone, and a live key beside a Secret still carrying the mid-protocol marker — are
315
461
  // properties of the pair, so the key is stamped `blocked` rather than presenting as an executable update.
316
462
  const liveSecret = pairContext === undefined ? undefined : await readSecret(pass, pairContext.secretSlug);
463
+ const team = await teamOf(pass, resource, resource.payload.teamId, live, liveSecret);
317
464
  const verdict = addressedTo(resource, verdictFor(resource, { key: live, secret: liveSecret, secretMarked: hasPendingMarker(liveSecret) }, {
318
465
  env: pass.env,
319
- project: pass.project,
466
+ ...(team !== undefined ? { team } : {}),
320
467
  ...(pairContext !== undefined ? { gatewayPair: pairContext } : {}),
321
468
  }));
322
469
  const identity = refusedRow(resource, verdict);
@@ -327,9 +474,9 @@ async function diffGatewayKey(resource, plan, pass) {
327
474
  return entry(resource, "create", "mints a new gateway key and writes its paired secret", marks);
328
475
  }
329
476
  const body = structuredClone(resource.payload);
330
- // `slug` is create-only identity and `projectId` has no update seam, so neither participates in the compare.
477
+ // `slug` is create-only identity and `teamId` has no update seam, so neither participates in the compare.
331
478
  delete body.slug;
332
- delete body.projectId;
479
+ delete body.teamId;
333
480
  return entry(resource, keyUnchanged(body, live) ? "no-change" : "update", undefined, marks);
334
481
  }
335
482
  function hasPendingMarker(secret) {
@@ -357,7 +504,7 @@ async function diffModelProviderKey(resource, pass) {
357
504
  const env = pass.env;
358
505
  const payload = resource.payload;
359
506
  const live = (await scanModelProviderKeys(pass.apis)).find((row) => row.modelProvider === payload.modelProvider);
360
- // No `project`: org-commons by construction, so there is no placement to compare and no `refused` arm.
507
+ // No team: organization-wide by construction, so there is no team to compare and no `refused` arm.
361
508
  const verdict = verdictFor(resource, live, { env });
362
509
  const marks = {
363
510
  ...blockedOf(verdict),
@@ -414,9 +561,10 @@ async function diffGatewayKeyBackedSecret(resource, gatewayKeyRef, pass) {
414
561
  // Read UNCONDITIONALLY: both the sensitivity classification of the pending mint write and the pair verdict
415
562
  // need to know whether the row exists.
416
563
  const live = await readSecret(pass, resource.slug);
564
+ const team = await teamOf(pass, resource, resource.payload.teamId, liveKey, live);
417
565
  // The PAIR's verdict: identity on either member first, then the two states in which the minted token is
418
566
  // already unrecoverable.
419
- const verdict = addressedTo(resource, gatewayKeyPairRefusal(keySlug ?? "", resource.slug, { key: liveKey, secret: live, secretMarked: hasPendingMarker(live) }, pass.project, pairContext));
567
+ const verdict = addressedTo(resource, gatewayKeyPairRefusal(keySlug ?? "", resource.slug, { key: liveKey, secret: live, secretMarked: hasPendingMarker(live) }, team, pairContext));
420
568
  const identity = refusedRow(resource, verdict);
421
569
  if (identity !== undefined)
422
570
  return identity;
@@ -440,50 +588,26 @@ async function diffGatewayKeyBackedSecret(resource, gatewayKeyRef, pass) {
440
588
  return entry(resource, "update", details, blocked);
441
589
  }
442
590
  // Steady state writes no token, but the gateway lane still reconciles this Secret's declared INJECTION
443
- // RECIPE with a value-less PATCH — same comparator as the ordinary secret arm, so the two cannot drift.
444
- if (metadataInjectionChange(declaredInjection(resource), live.injection) !== undefined) {
445
- return entry(resource, "update", withDetail(details, INJECTION_RECIPE_CHANGE), blocked);
591
+ // RECIPE and HOSTS with a value-less PATCH — same comparators as the ordinary secret arm.
592
+ const metadata = secretMetadataDetail(resource, live);
593
+ if (metadata !== undefined) {
594
+ return entry(resource, "update", withDetail(details, metadata), blocked);
446
595
  }
447
596
  return entry(resource, "no-change", details, blocked);
448
597
  }
449
598
  async function diffEnvironment(resource, pass) {
450
599
  const live = await pass.reads.read("environment", resource.slug);
451
- const identity = refusedRow(resource, verdictFor(resource, live, {
452
- env: pass.env,
453
- project: pass.project,
454
- }));
455
- // Placement is identity, checked the moment the row is readable.
600
+ const team = await teamOf(pass, resource, resource.payload.teamId, live);
601
+ const identity = refusedRow(resource, verdictFor(resource, live, { env: pass.env, ...(team !== undefined ? { team } : {}) }));
602
+ // A team is identity, checked the moment the row is readable.
456
603
  if (identity !== undefined)
457
604
  return identity;
458
605
  const body = structuredClone(resource.payload);
459
- // The secret groups this environment binds are resolved and classified BEFORE the absent-row branch below,
460
- // because both binding rules are properties of the DECLARATION, not of whether a live row happens to exist.
461
- // Returning `create` the moment the read 404'd made a brand-new environment binding a connection-owned
462
- // secret (or binding one secret twice) preview as an ordinary executable create — so apply's pre-flight
463
- // solicited an approval, and possibly a docker build and push, for a write reconcile refuses every time.
464
- const boundSecrets = [];
606
+ // The pull credential is resolved and classified BEFORE the absent-row branch below, because the refusal
607
+ // is a property of the DECLARATION, not of whether a live row happens to exist: a brand-new environment
608
+ // naming a connection-owned secret must not preview as an ordinary executable create.
465
609
  const pullSecrets = [];
466
- stampDiffBodyProject(body, pass.project);
467
- const egress = body.egressPolicy;
468
- for (const rule of egress?.rules ?? []) {
469
- for (const binding of rule.credentialBindings ?? []) {
470
- if (credentialBindingArm(binding) === "connection") {
471
- binding.connectionId = await resolveIdForDiff(binding.connectionId, "connection", pass);
472
- }
473
- else {
474
- // Built from the ref AS AUTHORED, before the resolved id overwrites it, through the ONE helper apply
475
- // names the same binding with. Two mirrored builders is how this row came to print
476
- // `credential 'Authorization'` for a binding apply refused as `→ secret 'openai'`.
477
- const ref = binding.secretId;
478
- const secretId = await resolveIdForDiff(ref, "secret", pass);
479
- binding.secretId = secretId;
480
- boundSecrets.push({
481
- id: secretId,
482
- label: egressCredentialBindingLabel(resource.path, rule.name, ref, binding.header),
483
- });
484
- }
485
- }
486
- }
610
+ stampDiffBodyTeam(body, team);
487
611
  // Canonicalize every mount reference for the same reason apply does: apply stores the resolved id, so
488
612
  // comparing a slug-authored reference against the stored id would report a swap apply never performs.
489
613
  // The durable home is an ordinary `/home` entry, so it is covered here with every other mount.
@@ -506,20 +630,14 @@ async function diffEnvironment(resource, pass) {
506
630
  if (typeof providerRef === "string" && providerRef.length > 0) {
507
631
  launchSpec.computeProviderId = await resolveIdForDiff(providerRef, "compute-provider", pass);
508
632
  }
509
- /**
510
- * The two groups are classified SEPARATELY, in apply's own order, because the pairwise-distinct rule is
511
- * about the egress group alone: merging them would invent a refusal for an environment that legally binds
512
- * one secret both as an egress credential and as its registry pull credential.
513
- */
514
- const classifyBoundSecrets = async (secretRefs) => secretRefs.length === 0
633
+ const bound = pullSecrets.length === 0
515
634
  ? null
516
635
  : verdictFor(resource, live, {
517
636
  env: pass.env,
518
- project: pass.project,
519
- resolvedDesired: { secretRefs },
637
+ ...(team !== undefined ? { team } : {}),
638
+ resolvedDesired: { secretRefs: pullSecrets },
520
639
  reserved: await pass.reserved(),
521
640
  });
522
- const bound = (await classifyBoundSecrets(boundSecrets)) ?? (await classifyBoundSecrets(pullSecrets));
523
641
  if (live === undefined) {
524
642
  // A create is still a create — the classification only decides whether it is EXECUTABLE.
525
643
  return entry(resource, "create", undefined, blockedOf(bound));
@@ -545,7 +663,8 @@ async function diffConnector(resource, pass) {
545
663
  return entry(resource, "create");
546
664
  }
547
665
  const body = structuredClone(resource.payload);
548
- stampDiffBodyProject(body, pass.project);
666
+ const team = await teamOf(pass, resource, body.teamId, live);
667
+ stampDiffBodyTeam(body, team);
549
668
  for (const field of CONNECTOR_SECRET_WIRE_FIELDS) {
550
669
  const ref = body[field];
551
670
  if (typeof ref === "string" && ref !== "") {
@@ -556,7 +675,7 @@ async function diffConnector(resource, pass) {
556
675
  // After the reference resolution above, so the immutable-field comparison is id-against-id.
557
676
  const verdict = verdictFor(resource, liveRecord, {
558
677
  env: pass.env,
559
- project: pass.project,
678
+ ...(team !== undefined ? { team } : {}),
560
679
  resolvedDesired: body,
561
680
  });
562
681
  const identity = refusedRow(resource, verdict);
@@ -573,7 +692,8 @@ async function diffConnection(resource, pass) {
573
692
  return entry(resource, "create"); // nothing readable ⇒ nothing for the classifier to say (see connector)
574
693
  }
575
694
  const body = structuredClone(resource.payload);
576
- stampDiffBodyProject(body, pass.project);
695
+ const team = await teamOf(pass, resource, body.teamId, live);
696
+ stampDiffBodyTeam(body, team);
577
697
  const auth = body.auth;
578
698
  if (auth !== undefined && typeof auth.secretId === "string" && auth.secretId !== "") {
579
699
  auth.secretId = await resolveIdForDiff(auth.secretId, "secret", pass);
@@ -588,7 +708,7 @@ async function diffConnection(resource, pass) {
588
708
  // adoption guard, and only the ceremony lane adopts a row it did not create.
589
709
  const verdict = verdictFor(resource, liveRecord, {
590
710
  env: pass.env,
591
- project: pass.project,
711
+ ...(team !== undefined ? { team } : {}),
592
712
  resolvedDesired: { body, ceremonyBacked: isCeremonyBackedConnection(body) },
593
713
  });
594
714
  const identity = refusedRow(resource, verdict);
@@ -602,7 +722,8 @@ async function diffConnection(resource, pass) {
602
722
  */
603
723
  async function diffSkill(resource, pass) {
604
724
  const liveSkill = await pass.reads.read("skill", resource.slug);
605
- const identity = refusedRow(resource, verdictFor(resource, liveSkill, { env: pass.env, project: pass.project }));
725
+ const team = await teamOf(pass, resource, resource.payload.teamId, liveSkill);
726
+ const identity = refusedRow(resource, verdictFor(resource, liveSkill, { env: pass.env, ...(team !== undefined ? { team } : {}) }));
606
727
  if (identity !== undefined) {
607
728
  // Before the file reads, mirroring apply, which classifies before any `POST /files`.
608
729
  return identity;
@@ -617,7 +738,8 @@ async function diffSkill(resource, pass) {
617
738
  }
618
739
  async function diffAgent(resource, pass, factory) {
619
740
  const live = await pass.reads.read("agent", resource.slug);
620
- const verdict = verdictFor(resource, live, { env: pass.env, project: pass.project });
741
+ const team = await teamOf(pass, resource, resource.payload.teamId, live);
742
+ const verdict = verdictFor(resource, live, { env: pass.env, ...(team !== undefined ? { team } : {}) });
621
743
  const identity = refusedRow(resource, verdict);
622
744
  if (identity !== undefined) {
623
745
  // Before the memory-file reads, mirroring apply's classify-before-`POST /files` ordering.
@@ -627,7 +749,7 @@ async function diffAgent(resource, pass, factory) {
627
749
  return entry(resource, "create");
628
750
  }
629
751
  const body = structuredClone(resource.payload);
630
- stampDiffBodyProject(body, pass.project);
752
+ stampDiffBodyTeam(body, team);
631
753
  // Mirror apply's label compare and ownership stamp, so an unstamped live agent previews the `update` apply does.
632
754
  const labelsMatch = labelsPatch(body.labels, live.labels, { [MANAGED_BY_LABEL_KEY]: factory }) === undefined;
633
755
  delete body.labels;
@@ -644,8 +766,8 @@ async function diffAgent(resource, pass, factory) {
644
766
  delete body.turnTimeout;
645
767
  const standbyCapacityMatch = standbyCapacityUnchanged(body.standbyCapacity, live.standbyCapacity);
646
768
  delete body.standbyCapacity;
647
- // `projectId` rides this compare harmlessly: the classifier already proved the live stamp IS the declared
648
- // project, so it can only ever match here.
769
+ // `teamId` rides this compare harmlessly: the classifier already proved the live team IS the declared one,
770
+ // so it can only ever match here.
649
771
  delete body.skillIds;
650
772
  delete body.memoryFiles;
651
773
  const scalarMatch = subsetDeepEqual(body, live);
@@ -668,17 +790,18 @@ async function diffAgent(resource, pass, factory) {
668
790
  */
669
791
  async function diffPipeline(resource, pass, plan) {
670
792
  const live = await pass.reads.read("pipeline", resource.slug);
671
- const verdict = verdictFor(resource, live, { env: pass.env, project: pass.project });
793
+ const team = await teamOf(pass, resource, resource.payload.teamId, live);
794
+ const verdict = verdictFor(resource, live, { env: pass.env, ...(team !== undefined ? { team } : {}) });
672
795
  const identity = refusedRow(resource, verdict);
673
796
  if (identity !== undefined)
674
797
  return identity;
675
798
  if (live === undefined)
676
799
  return entry(resource, "create");
677
- // An agent or group a gate names is compared as the id the platform stores; one that does not resolve stays
800
+ // An agent or team a gate names is compared as the id the platform stores; one that does not resolve stays
678
801
  // as written and so reads as a change, which apply then refuses by name.
679
802
  const payload = await resolveGateReferences(resource.payload, {
680
803
  agent: (ref) => resolveIdForDiff(ref, "agent", pass),
681
- group: async (ref) => (await getBySlugOrUndefined(() => pass.apis.groups.getGroup({ id: ref })))?.id ?? ref,
804
+ team: async (ref) => (await getBySlugOrUndefined(() => pass.apis.teams.getTeam({ id: ref })))?.id ?? ref,
682
805
  });
683
806
  const entries = pipelineEntryChange(payload, live, plan.factory);
684
807
  const listsWorkflows = (payload.workflows ?? []).length > 0 || !entriesUnchanged(entries);
@@ -748,7 +871,13 @@ async function contentRefsUnchanged(desired, liveRefs, apis) {
748
871
  async function orphanReport(plan, apis, cap) {
749
872
  const prefix = `${plan.factory}-`;
750
873
  const kinds = [
751
- { kind: "project", list: (page, limit) => apis.projects.listProjects({ page, limit }) },
874
+ {
875
+ kind: "team",
876
+ list: async (page, limit) => {
877
+ const result = await apis.teams.listTeams({ page, limit });
878
+ return { data: result.data, page, limit, total: result.total ?? result.data.length };
879
+ },
880
+ },
752
881
  { kind: "gateway-key", list: (page, limit) => apis.gatewayKeys.listGatewayKeys({ page, limit }) },
753
882
  {
754
883
  kind: "model-provider-key",
@@ -840,8 +969,13 @@ async function getModelByKind(pass, kind, id) {
840
969
  */
841
970
  async function readByKind(apis, kind, id) {
842
971
  switch (kind) {
843
- case "project":
844
- return getBySlugOrUndefined(() => apis.projects.getProject({ id }));
972
+ case "team":
973
+ return getBySlugOrUndefined(() => apis.teams.getTeam({ id }));
974
+ case "role":
975
+ return getBySlugOrUndefined(() => apis.roles.getRole({ id }));
976
+ // A principal's rows are read through its membership, never by id.
977
+ case "team-membership":
978
+ return undefined;
845
979
  case "secret":
846
980
  return getBySlugOrUndefined(() => apis.secrets.getSecret({ id }));
847
981
  case "environment":