@orchestraworks/cli 0.5.5 → 0.5.8

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 (610) 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/auth.d.ts +11 -1
  5. package/dist/cli/core/auth.js +48 -4
  6. package/dist/cli/core/errors.js +4 -0
  7. package/dist/cli/core/platform-client.d.ts +3 -2
  8. package/dist/cli/core/profile.d.ts +2 -2
  9. package/dist/cli/factory/apply-preview.d.ts +23 -6
  10. package/dist/cli/factory/apply-preview.js +70 -43
  11. package/dist/cli/factory/apply-render.js +12 -4
  12. package/dist/cli/factory/apply.d.ts +7 -2
  13. package/dist/cli/factory/apply.js +86 -29
  14. package/dist/cli/factory/diff.js +20 -12
  15. package/dist/cli/factory/image-upload.d.ts +90 -0
  16. package/dist/cli/factory/image-upload.js +489 -0
  17. package/dist/cli/factory/synth.d.ts +7 -0
  18. package/dist/cli/factory/synth.js +35 -0
  19. package/dist/cli/firstRun.d.ts +5 -5
  20. package/dist/cli/firstRun.js +18 -17
  21. package/dist/cli/main.d.ts +1 -1
  22. package/dist/cli/main.js +4 -3
  23. package/dist/cli/upload.d.ts +3 -1
  24. package/dist/cli/upload.js +9 -2
  25. package/dist/constructs/agent.d.ts +9 -1
  26. package/dist/constructs/agent.js +7 -0
  27. package/dist/constructs/compute-provider.js +2 -2
  28. package/dist/constructs/connection.d.ts +22 -16
  29. package/dist/constructs/connection.js +29 -92
  30. package/dist/constructs/connector.d.ts +3 -1
  31. package/dist/constructs/connector.js +2 -0
  32. package/dist/constructs/egress-preset.d.ts +7 -52
  33. package/dist/constructs/egress-preset.js +7 -91
  34. package/dist/constructs/environment.d.ts +47 -70
  35. package/dist/constructs/environment.js +103 -213
  36. package/dist/constructs/gateway-key.d.ts +4 -1
  37. package/dist/constructs/gateway-key.js +4 -3
  38. package/dist/constructs/interfaces.d.ts +10 -2
  39. package/dist/constructs/model-provider-key.js +2 -3
  40. package/dist/constructs/pipeline.d.ts +5 -2
  41. package/dist/constructs/pipeline.js +4 -0
  42. package/dist/constructs/references.d.ts +4 -0
  43. package/dist/constructs/references.js +20 -0
  44. package/dist/constructs/role.d.ts +32 -0
  45. package/dist/constructs/role.js +77 -0
  46. package/dist/constructs/rules.d.ts +4 -4
  47. package/dist/constructs/rules.js +3 -3
  48. package/dist/constructs/secret.d.ts +36 -13
  49. package/dist/constructs/secret.js +110 -14
  50. package/dist/constructs/service-account.d.ts +12 -0
  51. package/dist/constructs/service-account.js +23 -0
  52. package/dist/constructs/skill.d.ts +3 -1
  53. package/dist/constructs/skill.js +2 -0
  54. package/dist/constructs/team-membership.d.ts +43 -0
  55. package/dist/constructs/team-membership.js +59 -0
  56. package/dist/constructs/team.d.ts +40 -0
  57. package/dist/constructs/team.js +107 -0
  58. package/dist/constructs/trigger.d.ts +7 -4
  59. package/dist/constructs/trigger.js +4 -0
  60. package/dist/constructs/workflow.d.ts +1 -1
  61. package/dist/core/factory.d.ts +0 -7
  62. package/dist/core/factory.js +15 -53
  63. package/dist/core/gateway-key-recipe.js +23 -2
  64. package/dist/core/host-pattern.d.ts +5 -0
  65. package/dist/core/host-pattern.js +14 -0
  66. package/dist/core/labels.d.ts +1 -1
  67. package/dist/core/labels.js +1 -1
  68. package/dist/core/outbound-warning.d.ts +2 -2
  69. package/dist/core/outbound-warning.js +52 -41
  70. package/dist/core/plan.d.ts +14 -11
  71. package/dist/core/plan.js +12 -11
  72. package/dist/engine/apply-core.d.ts +71 -67
  73. package/dist/engine/apply-core.js +120 -95
  74. package/dist/engine/client.d.ts +12 -4
  75. package/dist/engine/client.js +8 -3
  76. package/dist/engine/compute-provider-reconcile.js +1 -1
  77. package/dist/engine/condition-references.d.ts +2 -2
  78. package/dist/engine/condition-references.js +6 -6
  79. package/dist/engine/connection-install-link-reconcile.d.ts +4 -3
  80. package/dist/engine/connection-install-link-reconcile.js +35 -28
  81. package/dist/engine/diff.d.ts +12 -14
  82. package/dist/engine/diff.js +247 -113
  83. package/dist/engine/gateway-key-reconcile.d.ts +12 -9
  84. package/dist/engine/gateway-key-reconcile.js +43 -36
  85. package/dist/engine/model-provider-key-reconcile.js +2 -2
  86. package/dist/engine/pipeline-reconcile.d.ts +8 -9
  87. package/dist/engine/pipeline-reconcile.js +14 -10
  88. package/dist/engine/reconcile.d.ts +7 -21
  89. package/dist/engine/reconcile.js +115 -215
  90. package/dist/engine/refusals.d.ts +14 -31
  91. package/dist/engine/refusals.js +32 -81
  92. package/dist/engine/role-membership-reconcile.d.ts +19 -0
  93. package/dist/engine/role-membership-reconcile.js +276 -0
  94. package/dist/engine/secrets-apply.d.ts +18 -4
  95. package/dist/engine/secrets-apply.js +39 -4
  96. package/dist/engine/trigger-reconcile.d.ts +22 -23
  97. package/dist/engine/trigger-reconcile.js +43 -65
  98. package/dist/engine/workflow-reconcile.d.ts +2 -2
  99. package/dist/engine/workflow-reconcile.js +5 -5
  100. package/dist/generated/cli-commands.json +15398 -11771
  101. package/dist/generated/cli-dispatch.d.ts +4 -3
  102. package/dist/generated/cli-dispatch.js +76 -62
  103. package/dist/index.d.ts +12 -7
  104. package/dist/index.js +5 -3
  105. package/dist/metrics/metric.d.ts +3 -3
  106. package/dist/metrics/metric.js +1 -1
  107. package/docs/REFERENCE.md +102 -95
  108. package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.d.ts +1 -1
  109. package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.js +2 -2
  110. package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.d.ts +1 -1
  111. package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.js +2 -2
  112. package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.d.ts +1 -1
  113. package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.js +2 -2
  114. package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.d.ts +1 -1
  115. package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.js +2 -2
  116. package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.d.ts +1 -1
  117. package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.js +2 -2
  118. package/node_modules/@orchestraworks/client/dist/apis/FilesApi.d.ts +1 -1
  119. package/node_modules/@orchestraworks/client/dist/apis/FilesApi.js +2 -2
  120. package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.d.ts +88 -0
  121. package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.js +239 -0
  122. package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.d.ts +1 -1
  123. package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.js +2 -2
  124. package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.d.ts +1 -15
  125. package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.js +3 -49
  126. package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.d.ts +1 -1
  127. package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.js +2 -2
  128. package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.d.ts +1 -1
  129. package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.js +2 -2
  130. package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.d.ts +1 -1
  131. package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.js +2 -2
  132. package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.d.ts +1 -1
  133. package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.js +2 -2
  134. package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.d.ts +1 -1
  135. package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.js +2 -2
  136. package/node_modules/@orchestraworks/client/dist/apis/TeamMembershipsApi.d.ts +96 -0
  137. package/node_modules/@orchestraworks/client/dist/apis/{GroupsApi.js → TeamMembershipsApi.js} +62 -59
  138. package/node_modules/@orchestraworks/client/dist/apis/TeamsApi.d.ts +93 -0
  139. package/node_modules/@orchestraworks/client/dist/apis/{ProjectsApi.js → TeamsApi.js} +55 -55
  140. package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.d.ts +1 -1
  141. package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.js +2 -2
  142. package/node_modules/@orchestraworks/client/dist/apis/UsersApi.d.ts +0 -15
  143. package/node_modules/@orchestraworks/client/dist/apis/UsersApi.js +0 -49
  144. package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.d.ts +1 -1
  145. package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.js +2 -2
  146. package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.d.ts +2 -2
  147. package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.js +4 -4
  148. package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.d.ts +1 -1
  149. package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.js +2 -2
  150. package/node_modules/@orchestraworks/client/dist/apis/index.d.ts +3 -2
  151. package/node_modules/@orchestraworks/client/dist/apis/index.js +3 -2
  152. package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.d.ts +1 -1
  153. package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.js +2 -2
  154. package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.d.ts +1 -1
  155. package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.js +2 -2
  156. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.d.ts +1 -1
  157. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.js +2 -2
  158. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.d.ts +1 -1
  159. package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.js +2 -2
  160. package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.d.ts +1 -1
  161. package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.js +2 -2
  162. package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.d.ts +1 -1
  163. package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.js +2 -2
  164. package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.d.ts +88 -0
  165. package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.js +235 -0
  166. package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.d.ts +1 -1
  167. package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.js +2 -2
  168. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.d.ts +1 -15
  169. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.js +3 -49
  170. package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.d.ts +1 -1
  171. package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.js +2 -2
  172. package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.d.ts +1 -1
  173. package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.js +2 -2
  174. package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.d.ts +1 -1
  175. package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.js +2 -2
  176. package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.d.ts +1 -1
  177. package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.js +2 -2
  178. package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.d.ts +1 -1
  179. package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.js +2 -2
  180. package/node_modules/@orchestraworks/client/dist/esm/apis/TeamMembershipsApi.d.ts +96 -0
  181. package/node_modules/@orchestraworks/client/dist/esm/apis/{GroupsApi.js → TeamMembershipsApi.js} +60 -57
  182. package/node_modules/@orchestraworks/client/dist/esm/apis/TeamsApi.d.ts +93 -0
  183. package/node_modules/@orchestraworks/client/dist/esm/apis/{ProjectsApi.js → TeamsApi.js} +53 -53
  184. package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.d.ts +1 -1
  185. package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.js +2 -2
  186. package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.d.ts +0 -15
  187. package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.js +0 -49
  188. package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.d.ts +1 -1
  189. package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.js +2 -2
  190. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.d.ts +2 -2
  191. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.js +4 -4
  192. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.d.ts +1 -1
  193. package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.js +2 -2
  194. package/node_modules/@orchestraworks/client/dist/esm/apis/index.d.ts +3 -2
  195. package/node_modules/@orchestraworks/client/dist/esm/apis/index.js +3 -2
  196. package/node_modules/@orchestraworks/client/dist/esm/models/AddArtifactVersionRequest.d.ts +1 -1
  197. package/node_modules/@orchestraworks/client/dist/esm/models/Agent.d.ts +9 -3
  198. package/node_modules/@orchestraworks/client/dist/esm/models/Agent.js +3 -2
  199. package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.d.ts +9 -1
  200. package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.js +5 -1
  201. package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.d.ts +2 -2
  202. package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.js +2 -2
  203. package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.d.ts +2 -2
  204. package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.js +2 -2
  205. package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.d.ts +1 -1
  206. package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.js +2 -2
  207. package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.d.ts +2 -2
  208. package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.js +2 -2
  209. package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.d.ts +6 -0
  210. package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.js +2 -0
  211. package/node_modules/@orchestraworks/client/dist/esm/models/Connection.d.ts +16 -3
  212. package/node_modules/@orchestraworks/client/dist/esm/models/Connection.js +8 -2
  213. package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.d.ts +2 -2
  214. package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.js +2 -2
  215. package/node_modules/@orchestraworks/client/dist/esm/models/Connector.d.ts +2 -2
  216. package/node_modules/@orchestraworks/client/dist/esm/models/Connector.js +2 -2
  217. package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.d.ts +2 -2
  218. package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.js +2 -2
  219. package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.d.ts +4 -4
  220. package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.js +2 -2
  221. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
  222. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.js +2 -2
  223. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.d.ts +8 -2
  224. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.js +4 -2
  225. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.d.ts +2 -2
  226. package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.js +2 -2
  227. package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.d.ts +3 -3
  228. package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.js +2 -2
  229. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.d.ts +2 -2
  230. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.js +2 -2
  231. package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.d.ts +2 -2
  232. package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.js +2 -2
  233. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.d.ts +2 -2
  234. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.js +2 -2
  235. package/node_modules/@orchestraworks/client/dist/esm/models/CreateImageRequest.d.ts +38 -0
  236. package/node_modules/@orchestraworks/client/dist/esm/models/{GroupMemberAgent.js → CreateImageRequest.js} +12 -16
  237. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.d.ts +2 -2
  238. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.js +2 -2
  239. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.d.ts +2 -2
  240. package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.js +2 -2
  241. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.d.ts +4 -4
  242. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.js +3 -3
  243. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.d.ts +1 -8
  244. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.js +0 -3
  245. package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.d.ts +2 -2
  246. package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.js +2 -2
  247. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
  248. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.js +2 -2
  249. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.d.ts +8 -2
  250. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.js +4 -2
  251. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.d.ts +2 -2
  252. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.js +2 -2
  253. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.d.ts +2 -2
  254. package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.js +2 -2
  255. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.d.ts +65 -0
  256. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.js +61 -0
  257. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.d.ts +80 -0
  258. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.js +64 -0
  259. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.d.ts +2 -2
  260. package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.js +2 -2
  261. package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.d.ts +2 -2
  262. package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.js +2 -2
  263. package/node_modules/@orchestraworks/client/dist/esm/models/CreateWorkflowRequest.d.ts +1 -1
  264. package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.d.ts +8 -2
  265. package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.js +6 -2
  266. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.d.ts +45 -4
  267. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.js +29 -5
  268. package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChartQuery.d.ts +1 -1
  269. package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.d.ts +2 -2
  270. package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.js +2 -2
  271. package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.d.ts +0 -13
  272. package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.js +0 -5
  273. package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.d.ts +58 -0
  274. package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.js +64 -0
  275. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.d.ts +2 -2
  276. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.js +2 -2
  277. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentEgressPolicy.d.ts +1 -1
  278. package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.d.ts +2 -2
  279. package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.js +2 -2
  280. package/node_modules/@orchestraworks/client/dist/esm/models/Image.d.ts +113 -0
  281. package/node_modules/@orchestraworks/client/dist/esm/models/Image.js +91 -0
  282. package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.d.ts +2 -2
  283. package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.js +2 -2
  284. package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.d.ts +44 -0
  285. package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.js +47 -0
  286. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
  287. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.d.ts +0 -6
  288. package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.js +0 -4
  289. package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.d.ts +2 -2
  290. package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.js +2 -2
  291. package/node_modules/@orchestraworks/client/dist/esm/models/MessageWorkItemRequest.d.ts +1 -1
  292. package/node_modules/@orchestraworks/client/dist/esm/models/Metric.d.ts +2 -2
  293. package/node_modules/@orchestraworks/client/dist/esm/models/Metric.js +2 -2
  294. package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.d.ts +2 -2
  295. package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.js +2 -2
  296. package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.d.ts +2 -2
  297. package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.js +2 -2
  298. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.d.ts +7 -0
  299. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.js +5 -0
  300. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.d.ts +4 -4
  301. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.js +4 -4
  302. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.d.ts +5 -5
  303. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.js +4 -4
  304. package/node_modules/@orchestraworks/client/dist/esm/models/PageImage.d.ts +51 -0
  305. package/node_modules/@orchestraworks/client/dist/esm/models/{PageProject.js → PageImage.js} +11 -11
  306. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeam.d.ts +51 -0
  307. package/node_modules/@orchestraworks/client/dist/esm/models/{PageGroupSummary.js → PageTeam.js} +11 -11
  308. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.d.ts +51 -0
  309. package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.js +56 -0
  310. package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.d.ts +2 -2
  311. package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.js +2 -2
  312. package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.d.ts +8 -2
  313. package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.js +4 -2
  314. package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.d.ts +2 -2
  315. package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.js +2 -2
  316. package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.d.ts +1 -1
  317. package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.js +1 -1
  318. package/node_modules/@orchestraworks/client/dist/esm/models/Role.d.ts +6 -0
  319. package/node_modules/@orchestraworks/client/dist/esm/models/Role.js +4 -0
  320. package/node_modules/@orchestraworks/client/dist/esm/models/Secret.d.ts +16 -3
  321. package/node_modules/@orchestraworks/client/dist/esm/models/Secret.js +8 -2
  322. package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.d.ts +7 -1
  323. package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.js +1 -0
  324. package/node_modules/@orchestraworks/client/dist/esm/models/Session.d.ts +3 -2
  325. package/node_modules/@orchestraworks/client/dist/esm/models/Session.js +3 -2
  326. package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.d.ts +3 -2
  327. package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.js +3 -2
  328. package/node_modules/@orchestraworks/client/dist/esm/models/Skill.d.ts +2 -2
  329. package/node_modules/@orchestraworks/client/dist/esm/models/Skill.js +2 -2
  330. package/node_modules/@orchestraworks/client/dist/esm/models/SnapshotAnchor.d.ts +1 -1
  331. package/node_modules/@orchestraworks/client/dist/esm/models/Team.d.ts +104 -0
  332. package/node_modules/@orchestraworks/client/dist/esm/models/{GroupSummary.js → Team.js} +25 -15
  333. package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.d.ts +83 -0
  334. package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.js +77 -0
  335. package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.d.ts +2 -2
  336. package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.js +2 -2
  337. package/node_modules/@orchestraworks/client/dist/esm/models/TriggerTarget.d.ts +1 -1
  338. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateArtifactRequest.d.ts +1 -1
  339. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.d.ts +6 -0
  340. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.js +2 -0
  341. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
  342. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.js +3 -3
  343. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
  344. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.js +0 -3
  345. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.d.ts +6 -0
  346. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.js +2 -0
  347. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.d.ts +47 -0
  348. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.js +51 -0
  349. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.d.ts +68 -0
  350. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.js +58 -0
  351. package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.d.ts +2 -2
  352. package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.js +2 -2
  353. package/node_modules/@orchestraworks/client/dist/esm/models/Volume.d.ts +10 -3
  354. package/node_modules/@orchestraworks/client/dist/esm/models/Volume.js +4 -2
  355. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemActivity.d.ts +2 -2
  356. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.d.ts +7 -7
  357. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.js +5 -5
  358. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.d.ts +2 -2
  359. package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.js +2 -2
  360. package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.d.ts +2 -2
  361. package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.js +2 -2
  362. package/node_modules/@orchestraworks/client/dist/esm/models/index.d.ts +13 -17
  363. package/node_modules/@orchestraworks/client/dist/esm/models/index.js +13 -17
  364. package/node_modules/@orchestraworks/client/dist/models/AddArtifactVersionRequest.d.ts +1 -1
  365. package/node_modules/@orchestraworks/client/dist/models/Agent.d.ts +9 -3
  366. package/node_modules/@orchestraworks/client/dist/models/Agent.js +3 -2
  367. package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.d.ts +9 -1
  368. package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.js +5 -1
  369. package/node_modules/@orchestraworks/client/dist/models/Artifact.d.ts +2 -2
  370. package/node_modules/@orchestraworks/client/dist/models/Artifact.js +2 -2
  371. package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.d.ts +2 -2
  372. package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.js +2 -2
  373. package/node_modules/@orchestraworks/client/dist/models/AssignAction.d.ts +1 -1
  374. package/node_modules/@orchestraworks/client/dist/models/AssignAction.js +2 -2
  375. package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.d.ts +2 -2
  376. package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.js +2 -2
  377. package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.d.ts +6 -0
  378. package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.js +2 -0
  379. package/node_modules/@orchestraworks/client/dist/models/Connection.d.ts +16 -3
  380. package/node_modules/@orchestraworks/client/dist/models/Connection.js +8 -2
  381. package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.d.ts +2 -2
  382. package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.js +2 -2
  383. package/node_modules/@orchestraworks/client/dist/models/Connector.d.ts +2 -2
  384. package/node_modules/@orchestraworks/client/dist/models/Connector.js +2 -2
  385. package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.d.ts +2 -2
  386. package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.js +2 -2
  387. package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.d.ts +4 -4
  388. package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.js +2 -2
  389. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
  390. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.js +2 -2
  391. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.d.ts +8 -2
  392. package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.js +4 -2
  393. package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.d.ts +2 -2
  394. package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.js +2 -2
  395. package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.d.ts +3 -3
  396. package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.js +2 -2
  397. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.d.ts +2 -2
  398. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.js +2 -2
  399. package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.d.ts +2 -2
  400. package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.js +2 -2
  401. package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.d.ts +2 -2
  402. package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.js +2 -2
  403. package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.d.ts +38 -0
  404. package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.js +54 -0
  405. package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.d.ts +2 -2
  406. package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.js +2 -2
  407. package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.d.ts +2 -2
  408. package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.js +2 -2
  409. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.d.ts +4 -4
  410. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.js +3 -3
  411. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.d.ts +1 -8
  412. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.js +0 -3
  413. package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.d.ts +2 -2
  414. package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.js +2 -2
  415. package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
  416. package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.js +2 -2
  417. package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.d.ts +8 -2
  418. package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.js +4 -2
  419. package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.d.ts +2 -2
  420. package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.js +2 -2
  421. package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.d.ts +2 -2
  422. package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.js +2 -2
  423. package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.d.ts +65 -0
  424. package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.js +69 -0
  425. package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.d.ts +80 -0
  426. package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.js +72 -0
  427. package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.d.ts +2 -2
  428. package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.js +2 -2
  429. package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.d.ts +2 -2
  430. package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.js +2 -2
  431. package/node_modules/@orchestraworks/client/dist/models/CreateWorkflowRequest.d.ts +1 -1
  432. package/node_modules/@orchestraworks/client/dist/models/Dashboard.d.ts +8 -2
  433. package/node_modules/@orchestraworks/client/dist/models/Dashboard.js +6 -2
  434. package/node_modules/@orchestraworks/client/dist/models/DashboardChart.d.ts +45 -4
  435. package/node_modules/@orchestraworks/client/dist/models/DashboardChart.js +30 -6
  436. package/node_modules/@orchestraworks/client/dist/models/DashboardChartQuery.d.ts +1 -1
  437. package/node_modules/@orchestraworks/client/dist/models/Delivery.d.ts +2 -2
  438. package/node_modules/@orchestraworks/client/dist/models/Delivery.js +2 -2
  439. package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.d.ts +0 -13
  440. package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.js +0 -5
  441. package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.d.ts +58 -0
  442. package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.js +72 -0
  443. package/node_modules/@orchestraworks/client/dist/models/Environment.d.ts +2 -2
  444. package/node_modules/@orchestraworks/client/dist/models/Environment.js +2 -2
  445. package/node_modules/@orchestraworks/client/dist/models/EnvironmentEgressPolicy.d.ts +1 -1
  446. package/node_modules/@orchestraworks/client/dist/models/GatewayKey.d.ts +2 -2
  447. package/node_modules/@orchestraworks/client/dist/models/GatewayKey.js +2 -2
  448. package/node_modules/@orchestraworks/client/dist/models/Image.d.ts +113 -0
  449. package/node_modules/@orchestraworks/client/dist/models/Image.js +99 -0
  450. package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.d.ts +2 -2
  451. package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.js +2 -2
  452. package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.d.ts +44 -0
  453. package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.js +54 -0
  454. package/node_modules/@orchestraworks/client/dist/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
  455. package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.d.ts +0 -6
  456. package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.js +0 -4
  457. package/node_modules/@orchestraworks/client/dist/models/MachineView.d.ts +2 -2
  458. package/node_modules/@orchestraworks/client/dist/models/MachineView.js +2 -2
  459. package/node_modules/@orchestraworks/client/dist/models/MessageWorkItemRequest.d.ts +1 -1
  460. package/node_modules/@orchestraworks/client/dist/models/Metric.d.ts +2 -2
  461. package/node_modules/@orchestraworks/client/dist/models/Metric.js +2 -2
  462. package/node_modules/@orchestraworks/client/dist/models/MetricValue.d.ts +2 -2
  463. package/node_modules/@orchestraworks/client/dist/models/MetricValue.js +2 -2
  464. package/node_modules/@orchestraworks/client/dist/models/ModelFile.d.ts +2 -2
  465. package/node_modules/@orchestraworks/client/dist/models/ModelFile.js +2 -2
  466. package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.d.ts +7 -0
  467. package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.js +5 -0
  468. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.d.ts +4 -4
  469. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.js +4 -4
  470. package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.d.ts +5 -5
  471. package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.js +4 -4
  472. package/node_modules/@orchestraworks/client/dist/models/PageImage.d.ts +51 -0
  473. package/node_modules/@orchestraworks/client/dist/models/{PageProject.js → PageImage.js} +16 -16
  474. package/node_modules/@orchestraworks/client/dist/models/PageTeam.d.ts +51 -0
  475. package/node_modules/@orchestraworks/client/dist/models/{PageGroupSummary.js → PageTeam.js} +16 -16
  476. package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.d.ts +51 -0
  477. package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.js +63 -0
  478. package/node_modules/@orchestraworks/client/dist/models/Pipeline.d.ts +2 -2
  479. package/node_modules/@orchestraworks/client/dist/models/Pipeline.js +2 -2
  480. package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.d.ts +8 -2
  481. package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.js +4 -2
  482. package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.d.ts +2 -2
  483. package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.js +2 -2
  484. package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.d.ts +1 -1
  485. package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.js +1 -1
  486. package/node_modules/@orchestraworks/client/dist/models/Role.d.ts +6 -0
  487. package/node_modules/@orchestraworks/client/dist/models/Role.js +4 -0
  488. package/node_modules/@orchestraworks/client/dist/models/Secret.d.ts +16 -3
  489. package/node_modules/@orchestraworks/client/dist/models/Secret.js +8 -2
  490. package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.d.ts +7 -1
  491. package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.js +1 -0
  492. package/node_modules/@orchestraworks/client/dist/models/Session.d.ts +3 -2
  493. package/node_modules/@orchestraworks/client/dist/models/Session.js +3 -2
  494. package/node_modules/@orchestraworks/client/dist/models/SessionSummary.d.ts +3 -2
  495. package/node_modules/@orchestraworks/client/dist/models/SessionSummary.js +3 -2
  496. package/node_modules/@orchestraworks/client/dist/models/Skill.d.ts +2 -2
  497. package/node_modules/@orchestraworks/client/dist/models/Skill.js +2 -2
  498. package/node_modules/@orchestraworks/client/dist/models/SnapshotAnchor.d.ts +1 -1
  499. package/node_modules/@orchestraworks/client/dist/models/Team.d.ts +104 -0
  500. package/node_modules/@orchestraworks/client/dist/models/{GroupSummary.js → Team.js} +31 -21
  501. package/node_modules/@orchestraworks/client/dist/models/TeamMembership.d.ts +83 -0
  502. package/node_modules/@orchestraworks/client/dist/models/TeamMembership.js +85 -0
  503. package/node_modules/@orchestraworks/client/dist/models/Trigger.d.ts +2 -2
  504. package/node_modules/@orchestraworks/client/dist/models/Trigger.js +2 -2
  505. package/node_modules/@orchestraworks/client/dist/models/TriggerTarget.d.ts +1 -1
  506. package/node_modules/@orchestraworks/client/dist/models/UpdateArtifactRequest.d.ts +1 -1
  507. package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.d.ts +6 -0
  508. package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.js +2 -0
  509. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
  510. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.js +3 -3
  511. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
  512. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.js +0 -3
  513. package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.d.ts +6 -0
  514. package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.js +2 -0
  515. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.d.ts +47 -0
  516. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.js +59 -0
  517. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.d.ts +68 -0
  518. package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.js +66 -0
  519. package/node_modules/@orchestraworks/client/dist/models/UserGrant.d.ts +2 -2
  520. package/node_modules/@orchestraworks/client/dist/models/UserGrant.js +2 -2
  521. package/node_modules/@orchestraworks/client/dist/models/Volume.d.ts +10 -3
  522. package/node_modules/@orchestraworks/client/dist/models/Volume.js +4 -2
  523. package/node_modules/@orchestraworks/client/dist/models/WorkItemActivity.d.ts +2 -2
  524. package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.d.ts +7 -7
  525. package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.js +5 -5
  526. package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.d.ts +2 -2
  527. package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.js +2 -2
  528. package/node_modules/@orchestraworks/client/dist/models/Workflow.d.ts +2 -2
  529. package/node_modules/@orchestraworks/client/dist/models/Workflow.js +2 -2
  530. package/node_modules/@orchestraworks/client/dist/models/index.d.ts +13 -17
  531. package/node_modules/@orchestraworks/client/dist/models/index.js +13 -17
  532. package/node_modules/@orchestraworks/client/package.json +1 -1
  533. package/package.json +4 -4
  534. package/skills/orchestra/SKILL.md +82 -67
  535. package/skills/orchestra-fdk/references/authoring.md +83 -45
  536. package/skills/orchestra-fdk/references/environment.md +214 -33
  537. package/skills/orchestra-fdk/references/troubleshooting.md +10 -8
  538. package/templates/bug-fix/main.ts +6 -1
  539. package/templates/engineering-team/README.md +10 -7
  540. package/templates/engineering-team/agents/engineer-agent.md +38 -16
  541. package/templates/engineering-team/lib/environment.ts +15 -3
  542. package/templates/engineering-team/main.ts +1 -1
  543. package/templates/todo-factory/main.ts +6 -1
  544. package/dist/constructs/project.d.ts +0 -33
  545. package/dist/constructs/project.js +0 -82
  546. package/node_modules/@orchestraworks/client/dist/apis/GroupsApi.d.ts +0 -95
  547. package/node_modules/@orchestraworks/client/dist/apis/ProjectsApi.d.ts +0 -93
  548. package/node_modules/@orchestraworks/client/dist/esm/apis/GroupsApi.d.ts +0 -95
  549. package/node_modules/@orchestraworks/client/dist/esm/apis/ProjectsApi.d.ts +0 -93
  550. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.d.ts +0 -82
  551. package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.js +0 -74
  552. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.d.ts +0 -53
  553. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.js +0 -50
  554. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.d.ts +0 -52
  555. package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.js +0 -49
  556. package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.d.ts +0 -46
  557. package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.js +0 -47
  558. package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.d.ts +0 -57
  559. package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.js +0 -50
  560. package/node_modules/@orchestraworks/client/dist/esm/models/Group.d.ts +0 -106
  561. package/node_modules/@orchestraworks/client/dist/esm/models/Group.js +0 -92
  562. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.d.ts +0 -40
  563. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.js +0 -45
  564. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberAgent.d.ts +0 -44
  565. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.d.ts +0 -38
  566. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.js +0 -43
  567. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.d.ts +0 -38
  568. package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.js +0 -45
  569. package/node_modules/@orchestraworks/client/dist/esm/models/GroupSummary.d.ts +0 -86
  570. package/node_modules/@orchestraworks/client/dist/esm/models/PageGroupSummary.d.ts +0 -51
  571. package/node_modules/@orchestraworks/client/dist/esm/models/PageProject.d.ts +0 -51
  572. package/node_modules/@orchestraworks/client/dist/esm/models/Project.d.ts +0 -76
  573. package/node_modules/@orchestraworks/client/dist/esm/models/Project.js +0 -69
  574. package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.d.ts +0 -38
  575. package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.js +0 -45
  576. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.d.ts +0 -70
  577. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.js +0 -60
  578. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.d.ts +0 -46
  579. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.js +0 -45
  580. package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.d.ts +0 -82
  581. package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.js +0 -82
  582. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.d.ts +0 -53
  583. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.js +0 -57
  584. package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.d.ts +0 -52
  585. package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.js +0 -56
  586. package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.d.ts +0 -46
  587. package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.js +0 -54
  588. package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.d.ts +0 -57
  589. package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.js +0 -57
  590. package/node_modules/@orchestraworks/client/dist/models/Group.d.ts +0 -106
  591. package/node_modules/@orchestraworks/client/dist/models/Group.js +0 -100
  592. package/node_modules/@orchestraworks/client/dist/models/GroupMember.d.ts +0 -40
  593. package/node_modules/@orchestraworks/client/dist/models/GroupMember.js +0 -52
  594. package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.d.ts +0 -44
  595. package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.js +0 -58
  596. package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.d.ts +0 -38
  597. package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.js +0 -50
  598. package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.d.ts +0 -38
  599. package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.js +0 -52
  600. package/node_modules/@orchestraworks/client/dist/models/GroupSummary.d.ts +0 -86
  601. package/node_modules/@orchestraworks/client/dist/models/PageGroupSummary.d.ts +0 -51
  602. package/node_modules/@orchestraworks/client/dist/models/PageProject.d.ts +0 -51
  603. package/node_modules/@orchestraworks/client/dist/models/Project.d.ts +0 -76
  604. package/node_modules/@orchestraworks/client/dist/models/Project.js +0 -76
  605. package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.d.ts +0 -38
  606. package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.js +0 -52
  607. package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.d.ts +0 -70
  608. package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.js +0 -68
  609. package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.d.ts +0 -46
  610. package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.js +0 -52
@@ -57,17 +57,19 @@ path from `orchestra fdk init` to a first fix, and the traps on the way.
57
57
 
58
58
  Every **managed construct** takes `(scope, id, props)` — the scope it hangs off, an id unique among
59
59
  its siblings, and its props. The one exception is the root: `Factory` takes props only,
60
- `new Factory({ name, project? })`, because there is nothing above it to scope to. It is required, and
60
+ `new Factory({ name })`, because there is nothing above it to scope to. It is required, and
61
61
  one synth run has exactly one factory — a second root throws.
62
62
 
63
63
  ```ts
64
- import { Agent, EgressPolicy, Environment, Factory, Image, Secret, SecretValue, bearer, egressPreset } from "@orchestraworks/cli";
64
+ import { Agent, EgressPolicy, Environment, Factory, Image, Secret, SecretValue, egressPreset } from "@orchestraworks/cli";
65
65
 
66
66
  const factory = new Factory({ name: "acme-support" });
67
67
 
68
- const openaiKey = new Secret(factory, "openai-api-key", {
68
+ new Secret(factory, "openai-api-key", {
69
69
  name: "OpenAI API key",
70
70
  value: SecretValue.fromEnv("OPENAI_API_KEY_VALUE"), // read from env at apply — never in the plan
71
+ hosts: ["api.openai.com"], // where the edge presents it
72
+ injection: { headers: [{ name: "Authorization", value: "Bearer ${secret}" }] }, // how
71
73
  });
72
74
 
73
75
  const runtime = new Environment(factory, "runtime", {
@@ -79,8 +81,7 @@ const runtime = new Environment(factory, "runtime", {
79
81
  .applyPreset(egressPreset.softwareDevelopment()) // ready-made reachability — reach for a bundle first
80
82
  .allow("openai-model-api", {
81
83
  hosts: ["api.openai.com"], // …and hand-write only what no bundle covers
82
- priority: 300,
83
- credential: bearer("Authorization", openaiKey),
84
+ priority: 300, // a rule opens the network; it carries no credential
84
85
  }),
85
86
  });
86
87
 
@@ -143,16 +144,16 @@ deletes.
143
144
 
144
145
  ### References: pass the object, there is no `.ref`
145
146
 
146
- Twelve resource families can be *referenced* by another construct, and each one has an interface `IX`
147
- (`IAgent`, `IEnvironment`, `ISecret`, `IGatewayKey`, `ISkill`, `IWorkflow`, `IPipeline`, `IProject`,
148
- `IVolume`, `IConnection`, `IConnector`, `IComputeProvider`); every reference-accepting prop is typed by that interface. Passing the
147
+ Fourteen resource families can be *referenced* by another construct, and each one has an interface `IX`
148
+ (`IAgent`, `IEnvironment`, `ISecret`, `IGatewayKey`, `ISkill`, `IWorkflow`, `IPipeline`, `ITeam`, `IRole`,
149
+ `IPolicy`, `IVolume`, `IConnection`, `IConnector`, `IComputeProvider`); every reference-accepting prop is typed by that interface. Passing the
149
150
  construct object *is* passing the reference — there is no `.ref` indirection, no id string to thread
150
151
  through, and no plain object literal that will do instead. The three constructs nothing ever points
151
152
  *at* — `Trigger` (a routing rule), `ModelProviderKey` (read only by the model gateway,
152
153
  server-side) and `Factory` (the root) — have no `I` interface, because there is no prop anywhere
153
154
  that takes one.
154
155
 
155
- All twelve of those extend **`IResource`**, the identity base. `IResource` is one internal producer
156
+ All fourteen of those extend **`IResource`**, the identity base. `IResource` is one internal producer
156
157
  method (`_resourceId()`), not a public field, and that is deliberate: an interface of nothing but
157
158
  `readonly agentId: string` would be satisfied by the bare literal `{ agentId: "x" }`, so requiring a
158
159
  method is what makes "you must hold a real reference" a compile-time check rather than an intention.
@@ -160,7 +161,7 @@ method is what makes "you must hold a real reference" a compile-time check rathe
160
161
  registry coordinate, not a platform row with an id and a slug.
161
162
 
162
163
  **The id-or-slug rule.** Each `IX` names its reference property after the resource — `agentId`,
163
- `environmentId`, `secretId`, `gatewayKeyId`, `skillId`, `projectId`, `workflowId`, `volumeId`,
164
+ `environmentId`, `secretId`, `gatewayKeyId`, `skillId`, `teamId`, `roleId`, `policyId`, `workflowId`, `volumeId`,
164
165
  `connectionId`, `connectorId` — and **every one of them accepts a platform id or a slug
165
166
  interchangeably**. Ids always contain `_` and tenant slugs never do, so a key matches at most one of
166
167
  the two; global catalog rows are seeded with slug = id (`skill_zendesk`), so their single key is both
@@ -168,6 +169,37 @@ at once. This also means `Agent.fromId` still resolves a slug and `Agent.fromSlu
168
169
  id — the platform lookup is shape-opaque. Whichever you write, the platform stores the id and reads
169
170
  return it, so `orchestra fdk apply` and `orchestra fdk diff` resolve every reference to its id before they send or compare.
170
171
 
172
+ ### Teams, roles and an agent's team memberships
173
+
174
+ A *team* is a group inside the organization, and every row sits in one. Every organization has the team
175
+ **Shared**; a construct that names no `team:` is created in it, so a program that declares no team puts
176
+ everything in Shared. `team:` is a prop, never part of the construct path, so setting it changes no slug.
177
+ A row's team is fixed when the row is made: a live row in another team is `refused`, never moved.
178
+
179
+ ```ts
180
+ import { Agent, Role, Team, Policy } from "@orchestraworks/cli";
181
+
182
+ const mobile = new Team(factory, "mobile", { name: "Mobile", assignment: "AGENT_FIRST" });
183
+ const reviewer = new Role(factory, "reviewer", { name: "Reviewer", policies: [Policy.fromId(factory, "pol_01jq…")] });
184
+ new Agent(factory, "triage", {
185
+ // …
186
+ team: mobile,
187
+ memberships: [
188
+ { team: mobile, role: Role.managed("role_managed_agent_worker") },
189
+ { allTeams: true, role: reviewer },
190
+ ],
191
+ });
192
+ ```
193
+
194
+ - `Team.fromSlug(scope, "shared")` or `Team.fromId` names a team this program does not manage.
195
+ - `Role.managed(slug)` names a managed role by slug; `new Role` declares a custom role over policies.
196
+ - An agent's `memberships`, when declared, is its whole set of team-membership rows: each row is one role
197
+ at one team, or one role at all teams. Apply leaves the rows the platform minted at the agent's create
198
+ alone. A person's rows are never declared in code; give them in the console or with
199
+ `orchestra team-memberships create`.
200
+ - Apply writes a team, a custom role or an all-teams row only with a key that holds Owner or Admin at all
201
+ teams, and a team's rows with Admin at that team. A weaker key sees that row `refused` in `diff`.
202
+
171
203
  ### Consuming what you do not manage
172
204
 
173
205
  Importers resolve at apply and are never created or mutated:
@@ -431,24 +463,24 @@ orchestra fdk apply # reconciles the platform to the synthesized desired stat
431
463
  and an informational orphan report, plus — when the plan would write credential bytes — the same
432
464
  value-free sensitive block `apply` prints, row for row (`diff` says "would", `apply` says "will").
433
465
  It mutates nothing and never prompts. `refused` means the
434
- resource already exists but under a different project than the one your factory declares: a project
435
- placement is *identity*, like a slug, so orchestra never moves it — `apply` stops at that resource
466
+ resource already exists but in a different team than the one your factory declares (a row that names no
467
+ `team:` is declared in Shared): a team placement is *identity*, like a slug, so orchestra never moves it — `apply` stops at that resource
436
468
  instead. **The printed message names the remedy for that specific kind — follow it rather than
437
469
  guessing**, because the remedies are not interchangeable. A kind that has an importer (agent,
438
470
  environment, skill, ordinary secret, connector, connection) can keep its live placement and be
439
- *referenced* instead of declared, or be redeclared under a new slug in the intended project. A kind
471
+ *referenced* instead of declared, or be redeclared under a new slug in the intended team. A kind
440
472
  that has none (gateway key, trigger) cannot be referenced, so its two remedies are a
441
- new slug in the intended project, or dropping the declaration entirely and leaving the live row
473
+ new slug in the intended team, or dropping the declaration entirely and leaving the live row
442
474
  untouched. A gateway key's paired secret is never offered for import in any state — a conflicted pair
443
475
  is redeclared under new slugs for both members, or dropped for both. **A new slug is a replacement,
444
- never a move**: it creates a fresh row in the intended project and leaves the existing one exactly
476
+ never a move**: it creates a fresh row in the intended team and leaves the existing one exactly
445
477
  where it is, untouched, for you to reference or clean up.
446
478
  - **`apply`** prints the resolved-organization banner and the approval-policy banner, then — at its
447
479
  default approval level — renders the whole pending change-set as a read-only pre-flight and takes
448
480
  **one confirmation before anything is built or written** (next section). Only after that does it
449
481
  build and push any `Image.fromBuild` images, gate pending credential writes behind their own
450
- consolidated confirmation, and reconcile in dependency order — project → secrets → connectors →
451
- connections → environments → skills → agents → pipelines, then workflows and each pipeline's workflow
482
+ consolidated confirmation, and reconcile in dependency order — teams → custom roles → secrets → connectors →
483
+ connections → environments → skills → agents → pipelines → agents' team memberships, then workflows and each pipeline's workflow
452
484
  entries, then triggers — writing `fdk.out/result.json`.
453
485
  - **`plan.json` is preview-only.** `apply` always re-synthesizes from code and deletes any stale
454
486
  on-disk plan first, so a committed or hand-edited plan is never trusted as state. Re-running apply
@@ -484,7 +516,7 @@ default to `sensitive-only` instead, because typing the command already names th
484
516
  **The gate is change-sensitive, so a converged factory stays silent.** Re-applying with nothing to
485
517
  change asks nothing at all — the gate fires on an actual pending change, never on a declaration
486
518
  count — so idempotent re-applies keep working. Rows that would be *refused* before writing anything
487
- (a project-identity conflict, an unset credential source) are not part of what you approve: they
519
+ (a team-identity conflict, an unset credential source) are not part of what you approve: they
488
520
  print in their own "blocked — will fail, not approved here" section, each carrying the remedy for
489
521
  that specific kind, and reconcile's own error is what you act on.
490
522
 
@@ -522,8 +554,9 @@ token the platform mints. The **Claude sign-in recipe** is the one to copy when
522
554
  on a person's Claude subscription token rather than an API key:
523
555
 
524
556
  ```ts
525
- const claudeSignIn = new Secret(factory, "claude-sign-in", {
557
+ new Secret(factory, "claude-sign-in", {
526
558
  value: SecretValue.fromEnv("ORCHESTRA_FDK_CLAUDE_CODE_OAUTH_TOKEN"),
559
+ hosts: ["api.anthropic.com"],
527
560
  injection: {
528
561
  headers: [{ name: "authorization", value: "Bearer ${secret}" }],
529
562
  removeHeaders: ["x-api-key"], // stripped before injection
@@ -533,7 +566,7 @@ const claudeSignIn = new Secret(factory, "claude-sign-in", {
533
566
  // …in the Environment's props:
534
567
  env: { CLAUDE_CODE_OAUTH_TOKEN: "software-factory-egress-placeholder", ANTHROPIC_API_KEY: "" },
535
568
  egress: EgressPolicy.allowAll()
536
- .allow("claude-sign-in", { hosts: ["api.anthropic.com"], priority: 300, credential: claudeSignIn }),
569
+ .allow("claude-sign-in", { hosts: ["api.anthropic.com"], priority: 300 }),
537
570
  ```
538
571
 
539
572
  It injects `authorization` and nothing else. **Never inject an `anthropic-beta` header**: an injected
@@ -579,14 +612,14 @@ which the harness would otherwise send instead.
579
612
  - **`fromGatewayKey` is the one source whose value the platform mints.** It pairs this Secret to a
580
613
  `GatewayKey` you declare in the same factory — `new GatewayKey(factory, "model-gateway-key", props)`,
581
614
  whose only props are `slug`, `displayName`, `monthlyCreditCap` and `labels` — so apply mints the
582
- key and writes the token it shows *exactly once* straight into this Secret, which you then bind at
583
- egress like any other. It is legal only as the whole top-level value of exactly one Secret:
615
+ key and writes the token it shows *exactly once* straight into this Secret, which the edge then
616
+ adds on its `hosts` like any other. It is legal only as the whole top-level value of exactly one Secret:
584
617
  nesting it inside another recipe, or a key with zero or two Secrets, is a synth error, and there
585
618
  is no importer because an existing key's token is unrecoverable. Rotation is new-slug-only.
586
619
  - A **`ModelProviderKey`** is the other credential you can declare: your organization's own key for
587
620
  one model provider (`{ modelProvider: "fireworks", credential: SecretValue.fromEnv(NAME) }`),
588
621
  read only by the model gateway. It reuses the same recipe machinery, including `fromCommandLine`,
589
- but it is **not** a `Secret` — write-only, unbindable at egress, and referenced by nothing.
622
+ but it is **not** a `Secret` — write-only, never added at egress, and referenced by nothing.
590
623
  - Secret bytes are **never serialized**: not into `plan.json`, `graph.mmd`, diff output, apply logs,
591
624
  `result.json`, errors, or stack traces. They are never printed **in full** either — with one named
592
625
  exception: the `fromCommandLine` reader masks every character while you type, then on Enter shows
@@ -615,9 +648,11 @@ which the harness would otherwise send instead.
615
648
  suppresses it and none can supply it either, so a headless apply of a `fromCommandLine`
616
649
  declaration refuses at *every* level and tells you to run from a terminal or change the source —
617
650
  it never recommends a policy lever that could not clear it.
618
- - Binding a secret to an egress rule: pass the bare `Secret` when it carries an `injection` recipe
619
- (the recipe supplies the headers), or use `bearer(header, secret)` / `basic(...)` / `header(...)`
620
- for one-header bindings, or `inject(secret, recipe)` for a binding-owned recipe.
651
+ - Presenting a secret on the network: the `Secret` itself declares `hosts` (where: an exact host,
652
+ `*.suffix`, or `*`) and an `injection` recipe (how: the headers it sets, reading `${secret}`, or
653
+ `${secret.<field>}` for a `SecretValue.fields` value). Egress rules carry no credential, so a rule
654
+ that passes `credential` or `credentials` is a synth error; a Secret with no `hosts` is presented
655
+ nowhere.
621
656
 
622
657
  ## How the agents reach a model
623
658
 
@@ -726,8 +761,8 @@ An environment's `egress` is a policy you build up from one of **two starting po
726
761
  - **`EgressPolicy.denyAll()`** refuses every host no rule allows.
727
762
  - **`EgressPolicy.allowAll()`** allows every host no rule refuses.
728
763
 
729
- Rules fold onto either one the same way: a credentialed allow rule still injects its credential at the
730
- edge, and a deny still refuses.
764
+ Rules fold onto either one the same way: a rule only opens or closes the network, a credential still goes
765
+ only to the hosts its own `hosts` cover, and a deny still refuses.
731
766
 
732
767
  Most of what an agent needs to reach arrives ready-made as a **bundle** — a list of rules folded onto
733
768
  the policy by one `applyPreset(...)` call — so **reach for the bundles first** and hand-write allow/deny
@@ -738,21 +773,22 @@ import { EgressPolicy, egressPreset } from "@orchestraworks/cli";
738
773
 
739
774
  // …in the Environment's props:
740
775
  egress: EgressPolicy.denyAll()
741
- .applyPreset(github.egressPolicy()) // credentialed: this connection's API + git transport
776
+ .applyPreset(github.egressPolicy()) // this connection's API and git transport hosts
742
777
  .applyPreset(egressPreset.softwareDevelopment()) // anonymous: registries, public git, SaaS reads
743
778
  .deny("no-slack", { hosts: ["slack.com"] }), // …minus one, at the deny default's 900
744
779
  ```
745
780
 
746
- **The ownership rule is one line: anonymous rules ride presets, credentialed rules ride the
781
+ **The ownership rule is one line: anonymous rules ride presets, a provider's own hosts ride its
747
782
  connection.** `egressPreset.softwareDevelopment()` is a static, **credential-free** bundle anyone may
748
783
  apply — package and container registries (npm, PyPI, Maven Central, Go, crates.io, Gradle's plugin
749
784
  portal and wrapper chain, Docker Hub, GHCR), public git reads on GitHub, and read access to widely used
750
785
  development services (Atlassian, Zendesk, PagerDuty, Datadog, Sentry, Slack, Notion, Statuspage,
751
786
  Linear). It is about *reachability*, never credentials: every row is `GET`/`HEAD` bar three deliberate
752
- path-scoped `POST`s, so git *push* stays closed and a service still needs whatever auth a connection
753
- bundle or a Secret-bound rule supplies. Anything that does need a credential is the **connection's own**
754
- surface, `connection.egressPolicy()` — compiled from the provider catalog rather than written out rule
755
- by rule, and available identically on a managed `Connection` and on every import.
787
+ path-scoped `POST`s, so git *push* stays closed and a service still needs the credential a connection or a
788
+ Secret with `hosts` supplies. A provider's own API and git hosts are the **connection's own** surface,
789
+ `connection.egressPolicy()` — compiled from the provider catalog rather than written out rule by rule, and
790
+ available identically on a managed `Connection` and on every import. Its rules open the network only; the
791
+ connection's `hosts` decide which of those hosts get its credential.
756
792
 
757
793
  **A bundle is not a new concept.** Every entry lands as an ordinary allow rule, where the call sits in
758
794
  the chain, so `plan.json`, `orchestra fdk diff` and the live environment show only rules — there is nothing about
@@ -907,7 +943,7 @@ new Trigger(factory, "bug-intake", {
907
943
  - **A rule's text is Liquid over the item**: `workItem`, `stage`, `pipeline`, `connection` and, in a
908
944
  `changed` rule, `old`. The `event` root exists only in a rule firing on an outside event
909
945
  (`activity("INBOUND_EVENT", …)`); anywhere else, synth refuses it, because no other rule has one.
910
- - **References are slugs or constructs.** Apply resolves every agent, group, stage, connection and
946
+ - **References are slugs or constructs.** Apply resolves every agent, team, stage, connection and
911
947
  pipeline a rule names to its id before it compares, so an unchanged factory writes nothing.
912
948
  - **A workflow's pipeline is fixed.** Moving the rules to another pipeline means a new slug; apply
913
949
  refuses the change and says so.
@@ -985,7 +1021,7 @@ PLATFORM COMMANDS orchestra <noun> <verb> — nouns match API paths exactly
985
1021
  Build & run
986
1022
  agents environments sessions machines compute-enrollments
987
1023
  pipelines work-items workflows decisions skills
988
- files artifacts volumes projects room-tokens compute-providers
1024
+ files images artifacts volumes room-tokens compute-providers
989
1025
  Events & wiring
990
1026
  triggers events deliveries connections connection-intents
991
1027
  install-links connectors providers
@@ -996,7 +1032,7 @@ PLATFORM COMMANDS orchestra <noun> <verb> — nouns match API paths exactly
996
1032
  secrets api-keys
997
1033
  Organization
998
1034
  organizations organization-memberships organization-invitations users
999
- groups user-grants service-accounts roles policies me
1035
+ teams team-memberships user-grants service-accounts roles policies me
1000
1036
  Observability
1001
1037
  metrics dashboards health
1002
1038
  ```
@@ -1070,17 +1106,19 @@ itself a credential.
1070
1106
  An agent running inside a machine types the **same commands** as an operator at a workstation. There
1071
1107
  is no separate agent CLI, no agent-only spelling, and nothing for you to author differently:
1072
1108
 
1073
- - **The agent holds no token.** Its machine is declared as edge-injected, so the CLI sends the request
1074
- *bare* to the platform's public HTTPS name (`PLATFORM_BASE_URL`), and the egress edge stamps the
1075
- authorization onto it on the way out. Credential material never enters the machine. Setting
1076
- `ORCHESTRA_API_TOKEN` deliberately still wins — the edge leaves an `Authorization` header the client
1077
- supplied alone.
1109
+ - **The agent sets no token.** The worker writes the agent's own short-lived platform token to a file,
1110
+ renews it before it expires, and sets `ORCHESTRA_API_TOKEN_FILE` to that file's path on each agent
1111
+ process. The CLI reads the file before each request and sends its token to the platform's public HTTPS
1112
+ name (`PLATFORM_BASE_URL`), with no organization header, because the token names its organization.
1113
+ The token works only while the agent is placed on that machine. A token set in `ORCHESTRA_API_TOKEN`
1114
+ comes before the file. On a machine behind the platform's network edge, the edge replaces the
1115
+ `Authorization` header of each call with a token for the same agent, whatever token the call carried.
1078
1116
  - **IAM is the only difference between principals.** The same command run by an agent and by a human
1079
1117
  differs only in what their grants allow; a refusal is a permission error naming the action, never
1080
1118
  an instruction to log in (there is nothing in a machine to log into).
1081
1119
  - **The factory loop works there too.** `synth`, `diff` and `apply` (and `grant`) are ordinary
1082
1120
  platform callers, so an agent can preview and apply a factory from inside its machine with no token
1083
- and no organization set — the same bare send, judged by the same IAM.
1121
+ and no organization set — the same token file, judged by the same IAM.
1084
1122
  - **Triggers are runtime wiring: agents observe it, they do not author it.** Declare them in code
1085
1123
  (`new Trigger(factory, …)`) or have an explicitly granted principal create them. The managed
1086
1124
  worker role deliberately carries **no** trigger-authoring capability, so `triggers create`
@@ -1160,8 +1198,8 @@ The kit's full reference is `docs/REFERENCE.md` at the root of the package, two
1160
1198
  `skill_link=.claude/skills/orchestra-fdk; [ -e "$skill_link" ] || skill_link=~/.claude/skills/orchestra-fdk; cat "$(realpath "$skill_link")/../../docs/REFERENCE.md"`
1161
1199
  (use `.agents/skills/orchestra-fdk` and `~/.agents/skills/orchestra-fdk` for Codex). It ships inside the package, so it
1162
1200
  is already on disk in any project that has orchestra installed, wherever the install landed. Go there
1163
- for what this skill states without unpacking: the complete egress rule shapes (`paths[]` scoping, several
1164
- credential bindings on one rule) and every row a preset bundle contains, declared images (`Image.fromTag` vs `Image.fromBuild`), secret
1201
+ for what this skill states without unpacking: the complete egress rule shapes (`paths[]` and method
1202
+ scoping), a credential's `hosts` and form, and every row a preset bundle contains, declared images (`Image.fromTag` vs `Image.fromBuild`), secret
1165
1203
  injection recipes, adopting resources that already exist, connections, triggers, pipelines and
1166
1204
  workflows including bring-your-own OAuth app and per-user grants, chat presence for Slack and Microsoft Teams,
1167
1205
  running several factory instances from one program, and a troubleshooting table keyed by the message the
@@ -219,7 +219,7 @@ the `agent` user. The worker writes a sign-in file only when none is there, so t
219
219
  **Before any cloud apply,** search `<factory>` for that marker, and for any credential in the setup script,
220
220
  in the environment's settings (`ENV`, which becomes `provisionSpec.env`), in the agents' instructions, and
221
221
  in every work-item description you write. Remove each one. Use a Secret
222
- instead: a gateway key, or a Secret plus a rule that adds it. Tell the developer why: the setup script and
222
+ instead: a gateway key, or a Secret whose `hosts` name where the edge adds it. Tell the developer why: the setup script and
223
223
  the settings are stored as plain text and shown on every read.
224
224
 
225
225
  ### Start the local environment
@@ -318,8 +318,9 @@ The local key is never carried over. It stays on the developer's computer. In th
318
318
  Orchestra Secret, and our network edge adds it to each model call, so no machine and no person holds it:
319
319
 
320
320
  - For the gateway, `apply` creates the gateway key and its secret. The starter already declares them.
321
- - For a subscription token or a provider key, declare a Secret and a rule that adds it on the provider's
322
- host, as phase 2 of the orchestra-fdk skill, "The model route", says (orchestra skill, sections 6 and 7).
321
+ - For a subscription token or a provider key, declare a Secret whose `hosts` name the provider's host, and a
322
+ rule that opens that host, as phase 2 of the orchestra-fdk skill, "The model route", says (orchestra skill,
323
+ sections 6 and 7).
323
324
 
324
325
  Ask the developer to revoke the `local-dev` gateway key, at **Settings › Gateway keys**, when local work is
325
326
  done.
@@ -374,23 +375,24 @@ into `orchestra-factory-notes.md`.
374
375
  cloud, starts Windows VMs from the image its environment names. The Launcher runs on Azure (the
375
376
  orchestra skill, section 18). The team bakes the image on Windows Server 2025 and adds their own
376
377
  toolchain: git, MSBuild and .NET are theirs to install. Windows 11 is not supported, and a plain
377
- captured Windows VM does not register. The image must contain these three parts:
378
- - The worker's release package, for example at `C:\ProgramData\sfdk\worker\package`.
378
+ captured Windows VM does not register. The worker's own command, `worker install-machine --cloud
379
+ azure`, adds the three parts the image must contain. The section "A team's own image" below gives the
380
+ steps:
381
+ - The worker's release package, at `C:\ProgramData\sfdk\worker\package`.
379
382
  - The worker's Windows service, `SfdkWorker`. It runs `worker.exe run --root C:\ProgramData\sfdk\worker
380
383
  --service` as LocalSystem. It is demand-start (`Manual`), not automatic. On a failure it restarts
381
384
  three times, 2 seconds apart, and a clean stop with a non-zero exit code counts as a failure.
382
- - The startup task `orchestra-azure-userdata`. It runs `azure-userdata.ps1` as SYSTEM at each boot
383
- (`AtStartup`). The script writes the files that the VM's startup data carries, then starts
384
- `SfdkWorker`.
385
+ - The startup task `orchestra-azure-userdata`. It runs `worker.exe boot-files --cloud azure` as SYSTEM
386
+ at each boot. It writes the files that the VM's startup data carries, then starts `SfdkWorker`.
385
387
 
386
- Our image builds the same parts: `install-vm-runtime.ps1` and the image template
388
+ Our image runs the same command, from `install-vm-runtime.ps1` and the image template
387
389
  `infra/packer/azure-windows-runtime.pkr.hcl`. Under a Launcher, the image needs no WinDivert, no
388
390
  redirect firewall rule, no Docker, no Node and no preinstalled harness: a harness installs itself on
389
391
  its first turn, in about 60 seconds. Credentials are the team's to set on the VM (part C, "Tokens on a
390
392
  compute provider's machines"). Our own image is in a public Azure gallery:
391
393
  `/CommunityGalleries/orchestraworks-881a796f-0a84-4be1-af80-0a38564a406a/Images/runtime-win/Versions/0.0.136`
392
- (Gen2). An environment that names no image boots its `Versions/latest`. Not released yet: a one-command
393
- installer for a team's own image, the Launcher on AWS, and a team's own image on hosted Windows.
394
+ (Gen2). An environment that names no image boots its `Versions/latest`. Not released yet: the Launcher
395
+ on AWS, and a team's own image on hosted Windows.
394
396
  3. **Then keep machines ready, for speed.** `standbyCapacity` on the agent (`Agent` in the kit) keeps
395
397
  `count` machines started, set up and with the agent installed, on a schedule or always. A new
396
398
  conversation then starts at once, with no wait for a Windows first boot. The platform refuses it only
@@ -461,7 +463,7 @@ agent can run the team's own `docker compose up` unchanged.
461
463
  *machine endpoint*, a web address that only signed-in members of the organization can open.
462
464
  4. Write the app's own settings files (`.env.local`) into the Set up item's description, because the code
463
465
  is not on the machine when the setup script runs. Put only local or test values there. A real secret
464
- becomes a Secret plus a rule that adds it.
466
+ becomes a Secret whose `hosts` name where the edge adds it.
465
467
  5. Choose the size by what CI uses for the same work. The template's sizes are fixed per agent: lg is
466
468
  32 CPU, md 16, sm 2.
467
469
  6. When the project runs containers, keep the disk at `/var/lib/docker`. The starter declares it. It keeps
@@ -527,6 +529,8 @@ Choose B when the code needs a particular kernel or operating system.
527
529
  available on Windows, so remove `disks` and the Docker setup. The Linux `setup.sh` cannot run there: write
528
530
  a PowerShell script from "A Windows setup script" below. Follow "Windows in three stages" in section 5.
529
531
  - **Linux on a full VM:** possible with `runtime: "vm"`, at 2, 4 or 8 CPU.
532
+ - **The team's own image, under a compute provider on Azure:** Windows stage 2 in section 5, and the same
533
+ for Linux. Follow "A team's own image" below.
530
534
  - **macOS:** only as the team's own Mac, enrolled with the worker. Say what that needs before you offer it
531
535
  (the orchestra skill, section 18), and agree it with the Orchestra team first.
532
536
 
@@ -611,6 +615,167 @@ Why each step is there:
611
615
  installed, use the team's own image ("Windows in three stages", stage 2).
612
616
  - The output is kept as it is. Never print a token.
613
617
 
618
+ ### A team's own image
619
+
620
+ Tried by us (2026-10-05): a Windows Server 2025 Core image with IIS and an Ubuntu 24.04 image, each
621
+ made by these steps with a branch build of the worker, started by our Launcher on test. Each VM
622
+ registered, ran a turn that reached the internet, updated itself to a second build, and after a restart
623
+ registered again and ran a second turn. Windows registered about 2 minutes after the session started
624
+ and finished its first turn at about 4 minutes. Ubuntu registered at about 40 seconds and finished its
625
+ first turn at about 80 seconds.
626
+
627
+ Tested by a customer (2026-10-05): their own Windows Server 2025 image, with worker 0.0.137 laid out by
628
+ hand, started by their Launcher on a `D4s_v6` VM.
629
+
630
+ - The VM was up 27 seconds after the session started. The first turn came at about 2 minutes 48 seconds.
631
+ - The model worked through an Orchestra gateway key, set as `ANTHROPIC_API_KEY` in the `SfdkWorker`
632
+ service's environment.
633
+ - git to dev.azure.com worked, with a token their own boot step read from their Key Vault.
634
+ - A machine endpoint on port 80 served.
635
+
636
+ The team builds the image in their own Azure subscription, from Microsoft's or Canonical's image, with
637
+ their toolchain and the worker. Their Launcher then starts machines from it. Do these steps with the
638
+ developer, in order. The commands run on the build VM, as an administrator on Windows and with `sudo` on
639
+ Linux. Use a worker version that has `install-machine`: `worker install-machine --help` answers on it.
640
+
641
+ The image must reach these hosts. The worker does not test them:
642
+
643
+ - The platform, and its object store.
644
+ - While the team builds the image: `registry.npmjs.org` and `nodejs.org`. On Linux, the Ubuntu package
645
+ mirror.
646
+
647
+ `worker install-machine --cloud azure` does these steps. Each one prints `ok` or `changed`, and the first
648
+ failure stops the run and names the step. The team can run it again.
649
+
650
+ - It refuses a VM that has already run as a machine, and a running worker service. Build on a new VM.
651
+ - On Windows it creates the worker's folders for SYSTEM and the administrators only, so other accounts on
652
+ the VM cannot add programs or read the boot files.
653
+ - It copies the worker's package to the machine-wide root, `C:\ProgramData\sfdk\worker` or
654
+ `/var/lib/sfdk/worker`.
655
+ - On Linux it creates the `agent` account, uid 1000, home `/home`.
656
+ - It defines the worker's service, and the startup task that writes the boot files and starts the worker.
657
+ - `--harness claude` preinstalls a harness. Without it, the harness installs itself on its first turn.
658
+ - It ends with `worker check --profile launcher`, which names every missing part.
659
+
660
+ The image needs no `--egress-redirect`, `--docker` or `--node`: no network edge of ours stands in front of
661
+ a Launcher machine, and the team installs their own tools.
662
+
663
+ **Windows Server 2025, Core or Desktop, Generation 2:**
664
+
665
+ 1. Create the build VM with `--security-type Standard`. A Trusted Launch VM cannot be captured into the
666
+ image definition of step 7.
667
+ 2. Install the team's toolchain.
668
+ 3. Download the worker and check it against the digest npm publishes. Set the version:
669
+
670
+ ```powershell
671
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
672
+ $version = '<worker version>'
673
+ $meta = Invoke-RestMethod "https://registry.npmjs.org/@orchestraworks%2Fworker-win32-x64/$version"
674
+ $tarball = Join-Path $env:TEMP 'worker.tgz'
675
+ Invoke-WebRequest -UseBasicParsing -Uri $meta.dist.tarball -OutFile $tarball
676
+ $digest = [Security.Cryptography.SHA512]::Create().ComputeHash([IO.File]::ReadAllBytes($tarball))
677
+ if (('sha512-' + [Convert]::ToBase64String($digest)) -ne $meta.dist.integrity) { throw 'the download does not match the digest npm publishes' }
678
+ $unpacked = Join-Path $env:TEMP 'worker'
679
+ New-Item -ItemType Directory -Force -Path $unpacked | Out-Null
680
+ tar.exe -xzf $tarball -C $unpacked
681
+ ```
682
+
683
+ 4. Install the worker:
684
+
685
+ ```powershell
686
+ & "$unpacked\package\worker.exe" install-machine --cloud azure
687
+ if ($LASTEXITCODE -ne 0) { throw "install-machine exited $LASTEXITCODE" }
688
+ ```
689
+
690
+ 5. Restart the VM until no restart is pending. Sysprep refuses to run, or stops, while one is pending.
691
+ After each restart, run the check. Stop when it shows `"restartPending":false`:
692
+
693
+ ```powershell
694
+ & "$env:ProgramData\sfdk\worker\package\worker.exe" check --profile launcher --output json
695
+ ```
696
+
697
+ 6. Generalize with Sysprep. It takes about 4 minutes, and the VM then stops:
698
+
699
+ ```powershell
700
+ & "$env:SystemRoot\System32\Sysprep\Sysprep.exe" /oobe /generalize /mode:vm /shutdown
701
+ ```
702
+
703
+ - Do not remove the built-in Administrator account. Azure renames it, so `Remove-LocalUser` fails.
704
+ Sysprep resets it.
705
+ - An installed SQL Server is generalized only through SQL Server's own image preparation, as Microsoft
706
+ documents for SQL Server and Sysprep. Plain Sysprep does not generalize it.
707
+
708
+ 7. Capture the VM into an image definition in the team's Azure Compute Gallery. The Launcher creates
709
+ Standard security VMs, and uses the NVMe disk controller on the `Dsv6` sizes. So the definition is
710
+ `TrustedLaunchSupported`, with both disk controllers:
711
+
712
+ ```bash
713
+ az vm deallocate --resource-group <rg> --name <vm>
714
+ az vm generalize --resource-group <rg> --name <vm>
715
+ az sig image-definition create --resource-group <rg> --gallery-name <gallery> \
716
+ --gallery-image-definition <definition> --publisher <publisher> --offer <offer> --sku <sku> \
717
+ --os-type Windows --os-state Generalized --hyper-v-generation V2 \
718
+ --features "SecurityType=TrustedLaunchSupported DiskControllerTypes=SCSI,NVMe"
719
+ az sig image-version create --resource-group <rg> --gallery-name <gallery> \
720
+ --gallery-image-definition <definition> --gallery-image-version 1.0.0 \
721
+ --virtual-machine "$(az vm show --resource-group <rg> --name <vm> --query id --output tsv)"
722
+ ```
723
+
724
+ Keep the quotes around `--features`: without them the Azure CLI refuses the second feature.
725
+
726
+ 8. Name the image version's resource id as the environment's image. A new version is a new image: name
727
+ it again after each build.
728
+
729
+ **Ubuntu 22.04 or 24.04, Generation 2.** A Linux image for a Launcher must be Ubuntu: the worker refuses
730
+ `--cloud azure` on another Linux.
731
+
732
+ 1. Create the build VM with `--security-type Standard`.
733
+ 2. Install the team's toolchain.
734
+ 3. Download the worker and check it against the digest npm publishes. On arm64 the package is
735
+ `worker-linux-arm64`:
736
+
737
+ ```bash
738
+ version='<worker version>'
739
+ curl -fsSL "https://registry.npmjs.org/@orchestraworks%2Fworker-linux-x64/${version}" -o worker.json
740
+ tarball="$(python3 -c 'import json; print(json.load(open("worker.json"))["dist"]["tarball"])')"
741
+ integrity="$(python3 -c 'import json; print(json.load(open("worker.json"))["dist"]["integrity"])')"
742
+ curl -fsSL "${tarball}" -o worker.tgz
743
+ [ "sha512-$(openssl dgst -sha512 -binary worker.tgz | base64 -w0)" = "${integrity}" ] ||
744
+ { echo "the download does not match the digest npm publishes" >&2; exit 1; }
745
+ mkdir -p worker && tar -xzf worker.tgz -C worker
746
+ ```
747
+
748
+ 4. Install the worker:
749
+
750
+ ```bash
751
+ sudo ./worker/package/worker install-machine --cloud azure
752
+ ```
753
+
754
+ 5. Generalize. This removes the account the team built with, which can hold uid 1000 beside `agent`.
755
+ Run it from `/`: it deletes the account's home, and the Azure agent stops with an error when its
756
+ working directory is gone. Afterwards uid 1000 is `agent`, and its group 1000 may have no name:
757
+
758
+ ```bash
759
+ cd / && sudo waagent -force -deprovision+user && export HISTSIZE=0 && sync
760
+ ```
761
+
762
+ 6. Capture as in Windows step 7, with `--os-type Linux`.
763
+ 7. Name the image version's resource id as the environment's image.
764
+
765
+ If the image serves an app, the team's boot step ends with one request to the app. The first request
766
+ after a boot is slow, so this request takes that delay instead of the first user.
767
+
768
+ What can go wrong:
769
+
770
+ - `install-machine` says a boot file or `state` is on the host: the VM has run as a machine. Build a new VM.
771
+ - `worker check` names a missing part: run `install-machine` again. It repairs what it can.
772
+ - The Launcher's VM never registers: read the worker's log on the VM, and run
773
+ `orchestra compute-providers check <id-or-slug>` (the orchestra skill, section 18).
774
+ - The turn fails with `invalid_gateway_key` or `budget_exceeded`: the key the machine has is old, or the key
775
+ reached its `monthlyCreditCap`. See "Tokens on a compute provider's machines".
776
+ - The team restarted a machine's VM in Azure, and the machine is now stopped: the worker reported that
777
+ it was stopping, so the platform stopped the VM. The next message starts it again.
778
+
614
779
  ### C. Where the machines run, when the code needs private services
615
780
 
616
781
  Choose here when development needs a database, internal APIs or a package feed inside the team's network
@@ -620,7 +785,7 @@ or cloud. List what the code needs, host by host, before you choose.
620
785
  |---|---|---|---|---|
621
786
  | Benefit | The simplest start. Nothing to run. Keys added at our network edge, machine endpoints and views, machines kept ready, and we keep it running. | Keeps their setup, networks, images and private services inside their own cloud, under their own account and controls. | Their own machine or network, as it is. | Nothing leaves their cloud. |
622
787
  | What reaches what | Our machines reach their services over the internet, through the network edge | Their Launcher asks our platform for orders over HTTPS. Their machines connect out to our platform. Nothing connects in. | The worker on their machine connects out to our platform | All inside their cloud |
623
- | Where keys live | Secrets, added at our network edge | On their machines, set by their own boot step. No network edge of ours stands in front of their machines yet | On their machine | In their cloud |
788
+ | Where keys live | Secrets, added at our network edge | On their machines, set by the team. No network edge of ours stands in front of their machines yet | On their machine | In their cloud |
624
789
  | Where files rest | Our object store (S3) | Not stated yet | Not stated yet | Their cloud |
625
790
  | Setup | None | Make a compute provider record, deploy the Launcher template to their Azure subscription, name the record in `provisionSpec.computeProviderId` | Enroll the machine (`orchestra worker enroll`) | An installation of the platform's Helm chart |
626
791
  | Status | Released | Released on Azure. Not released yet: AWS | Released | Not released yet |
@@ -641,25 +806,41 @@ Cannot do:
641
806
  Tokens on a compute provider's machines:
642
807
 
643
808
  - The team manages every credential on their own machines. The platform delivers none there.
644
- - The model sign-in goes in the worker service's own environment, by harness:
645
- - `claude` with a Claude subscription token: `ORCHESTRA_WORKER_CLAUDE_OAUTH_TOKEN`.
646
- - `claude` with an Anthropic API key or an Orchestra gateway key: `ANTHROPIC_API_KEY`. This value
647
- replaces the placeholder that our image sets. With a gateway key, keep the agent's model gateway on:
648
- the platform sets the gateway address.
809
+ - The model key reaches the agent in one of three ways. Each works on every machine, hosted or the team's
810
+ own, with or without our network edge. The edge and its Secrets are an addition, never needed for the
811
+ team's own key.
812
+ 1. **The environment's `env`** (`provisionSpec.env`, `env` in the kit). The worker reads it when it
813
+ starts. A declared value replaces the placeholder our image sets, never a real value. The platform
814
+ stores `env` values in plain text, an environment read returns them, and the machine's startup data
815
+ carries them. Tell the developer this. If it is not acceptable, use route 2 or 3, or a Secret added
816
+ at our network edge where one stands in front.
817
+ 2. **Baked into the team's image**, at machine scope, before Sysprep or generalizing. On Windows, that
818
+ is the `SfdkWorker` service's `Environment` registry value. On Linux, it is a drop-in on
819
+ `sfdk-worker.service`.
820
+ 3. **The `onStartAgent` hook** writes the harness's own key file in the agent's home:
821
+ `.claude/.credentials.json` for a Claude sign-in, `.codex/auth.json` for `codex`, or
822
+ `.pi/agent/auth.json` for `pi`. The worker keeps a real value it finds there. The hook can read the
823
+ team's Key Vault with a managed identity on the VM. A raw Claude API key has no file: use route 1 or 2.
824
+ - The names, by harness. Tested by a customer on Windows, with a gateway key as `ANTHROPIC_API_KEY`
825
+ (see "A team's own image"):
826
+ - `claude` with an Anthropic API key or an Orchestra gateway key: `ANTHROPIC_API_KEY`. With a gateway
827
+ key, keep the agent's model gateway on: the platform sets the gateway address.
828
+ - `claude` with a Claude subscription token: `ORCHESTRA_WORKER_CLAUDE_OAUTH_TOKEN`. A renewing sign-in:
829
+ `ORCHESTRA_WORKER_CLAUDE_ACCESS_TOKEN` and `ORCHESTRA_WORKER_CLAUDE_REFRESH_TOKEN`.
649
830
  - `codex`: `ORCHESTRA_WORKER_OPENAI_API_KEY`, or `ORCHESTRA_WORKER_CODEX_PERSONAL_ACCESS_TOKEN`.
650
- - On Windows, the worker service is `SfdkWorker`, and its environment is the service's `Environment`
651
- registry value.
652
- - Other tokens, such as for git, a package feed or an Azure DevOps personal access token: the team's own
653
- boot step sets them. For example, the step reads their Key Vault with a managed identity on the VM.
654
- - The worker reads its environment when its service starts. So the boot step runs before the worker
655
- starts, or restarts the worker service after it sets the values. On our Windows image, the startup task
656
- `orchestra-azure-userdata` starts `SfdkWorker` at each boot.
657
- - Do not put a token in the environment's `env` (`provisionSpec.env`). The platform stores it, an
658
- environment read returns it, and it travels in plain text in the VM's startup data.
831
+ - `pi`: `ORCHESTRA_WORKER_OPENAI_API_KEY` or `ORCHESTRA_WORKER_CLAUDE_OAUTH_TOKEN`.
832
+ `ORCHESTRA_WORKER_PI_PROVIDER` chooses the provider.
833
+ - Other tokens, such as for git, a package feed or an Azure DevOps personal access token: the team's
834
+ own names, by the same three routes.
835
+ - Never restart the worker service to load a key. A restart after the worker registered stops the
836
+ machine's work, and the platform parks the VM. The next message starts it again, 1 to 2 minutes later.
837
+ - A gateway key with a `monthlyCreditCap` stops at the cap. One short turn can cost about 30 credits.
659
838
  - The Launcher attaches no managed identity to the VMs it creates. The team's automation finds the VMs by
660
839
  two tags: `orchestra-launcher` holds the compute provider record's id, and `orchestra-machine` holds
661
- the machine's id. Not released yet: a managed identity attached when the Launcher creates a VM.
662
- - Never bake a credential into an image: that is not supported.
840
+ the machine's id. Not released yet: a VM target's `userAssignedIdentities` field in the Launcher's
841
+ settings, a list of user-assigned identity resource ids. The Launcher attaches them when it creates
842
+ each VM, so a hook gets a token at once. The Launcher's own identity
843
+ needs Managed Identity Operator on each one.
663
844
  - Not released yet: our network edge for machines in the team's own network, which adds keys from
664
845
  Secrets as it does for hosted machines.
665
846
 
@@ -678,10 +859,10 @@ that need no private service.
678
859
  2. In `<factory>`, run `npm run typecheck`, then `npx orchestra fdk synth`. The starter is one program, at the folder's
679
860
  root.
680
861
  3. Read `<factory>/fdk.out/plan.json`. Every environment has your setup script, ports and settings, and
681
- the model rule of the orchestra-fdk skill's phase 2: the `model-gateway` rule, or a Secret's rule on the
682
- provider's host. On a new factory, no environment has a code host or tracker rule yet: phase 3 adds them
683
- after the first run. On an existing factory, with its token file loaded, the rules it has now stay as
684
- they are.
862
+ the model rule of the orchestra-fdk skill's phase 2: the `model-gateway` rule, or a rule on the provider's
863
+ host, with a Secret whose `hosts` name it. On a new factory, no environment has a code host or tracker rule
864
+ yet: phase 3 adds them after the first run. On an existing factory, with its token file loaded, the rules
865
+ it has now stay as they are.
685
866
  4. Write `ENVIRONMENT.md` in `<factory>`: what you found and where, the mode you proved in and its result
686
867
  for each success criterion, the commands, every outbound attempt the proof logged, and what is still
687
868
  unknown.