@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.
- package/README.md +1 -1
- package/dist/artifacts/prelude.js +10 -1
- package/dist/cli/api/execute.js +7 -7
- package/dist/cli/core/auth.d.ts +11 -1
- package/dist/cli/core/auth.js +48 -4
- package/dist/cli/core/errors.js +4 -0
- package/dist/cli/core/platform-client.d.ts +3 -2
- package/dist/cli/core/profile.d.ts +2 -2
- package/dist/cli/factory/apply-preview.d.ts +23 -6
- package/dist/cli/factory/apply-preview.js +70 -43
- package/dist/cli/factory/apply-render.js +12 -4
- package/dist/cli/factory/apply.d.ts +7 -2
- package/dist/cli/factory/apply.js +86 -29
- package/dist/cli/factory/diff.js +20 -12
- package/dist/cli/factory/image-upload.d.ts +90 -0
- package/dist/cli/factory/image-upload.js +489 -0
- package/dist/cli/factory/synth.d.ts +7 -0
- package/dist/cli/factory/synth.js +35 -0
- package/dist/cli/firstRun.d.ts +5 -5
- package/dist/cli/firstRun.js +18 -17
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +4 -3
- package/dist/cli/upload.d.ts +3 -1
- package/dist/cli/upload.js +9 -2
- package/dist/constructs/agent.d.ts +9 -1
- package/dist/constructs/agent.js +7 -0
- package/dist/constructs/compute-provider.js +2 -2
- package/dist/constructs/connection.d.ts +22 -16
- package/dist/constructs/connection.js +29 -92
- package/dist/constructs/connector.d.ts +3 -1
- package/dist/constructs/connector.js +2 -0
- package/dist/constructs/egress-preset.d.ts +7 -52
- package/dist/constructs/egress-preset.js +7 -91
- package/dist/constructs/environment.d.ts +47 -70
- package/dist/constructs/environment.js +103 -213
- package/dist/constructs/gateway-key.d.ts +4 -1
- package/dist/constructs/gateway-key.js +4 -3
- package/dist/constructs/interfaces.d.ts +10 -2
- package/dist/constructs/model-provider-key.js +2 -3
- package/dist/constructs/pipeline.d.ts +5 -2
- package/dist/constructs/pipeline.js +4 -0
- package/dist/constructs/references.d.ts +4 -0
- package/dist/constructs/references.js +20 -0
- package/dist/constructs/role.d.ts +32 -0
- package/dist/constructs/role.js +77 -0
- package/dist/constructs/rules.d.ts +4 -4
- package/dist/constructs/rules.js +3 -3
- package/dist/constructs/secret.d.ts +36 -13
- package/dist/constructs/secret.js +110 -14
- package/dist/constructs/service-account.d.ts +12 -0
- package/dist/constructs/service-account.js +23 -0
- package/dist/constructs/skill.d.ts +3 -1
- package/dist/constructs/skill.js +2 -0
- package/dist/constructs/team-membership.d.ts +43 -0
- package/dist/constructs/team-membership.js +59 -0
- package/dist/constructs/team.d.ts +40 -0
- package/dist/constructs/team.js +107 -0
- package/dist/constructs/trigger.d.ts +7 -4
- package/dist/constructs/trigger.js +4 -0
- package/dist/constructs/workflow.d.ts +1 -1
- package/dist/core/factory.d.ts +0 -7
- package/dist/core/factory.js +15 -53
- package/dist/core/gateway-key-recipe.js +23 -2
- package/dist/core/host-pattern.d.ts +5 -0
- package/dist/core/host-pattern.js +14 -0
- package/dist/core/labels.d.ts +1 -1
- package/dist/core/labels.js +1 -1
- package/dist/core/outbound-warning.d.ts +2 -2
- package/dist/core/outbound-warning.js +52 -41
- package/dist/core/plan.d.ts +14 -11
- package/dist/core/plan.js +12 -11
- package/dist/engine/apply-core.d.ts +71 -67
- package/dist/engine/apply-core.js +120 -95
- package/dist/engine/client.d.ts +12 -4
- package/dist/engine/client.js +8 -3
- package/dist/engine/compute-provider-reconcile.js +1 -1
- package/dist/engine/condition-references.d.ts +2 -2
- package/dist/engine/condition-references.js +6 -6
- package/dist/engine/connection-install-link-reconcile.d.ts +4 -3
- package/dist/engine/connection-install-link-reconcile.js +35 -28
- package/dist/engine/diff.d.ts +12 -14
- package/dist/engine/diff.js +247 -113
- package/dist/engine/gateway-key-reconcile.d.ts +12 -9
- package/dist/engine/gateway-key-reconcile.js +43 -36
- package/dist/engine/model-provider-key-reconcile.js +2 -2
- package/dist/engine/pipeline-reconcile.d.ts +8 -9
- package/dist/engine/pipeline-reconcile.js +14 -10
- package/dist/engine/reconcile.d.ts +7 -21
- package/dist/engine/reconcile.js +115 -215
- package/dist/engine/refusals.d.ts +14 -31
- package/dist/engine/refusals.js +32 -81
- package/dist/engine/role-membership-reconcile.d.ts +19 -0
- package/dist/engine/role-membership-reconcile.js +276 -0
- package/dist/engine/secrets-apply.d.ts +18 -4
- package/dist/engine/secrets-apply.js +39 -4
- package/dist/engine/trigger-reconcile.d.ts +22 -23
- package/dist/engine/trigger-reconcile.js +43 -65
- package/dist/engine/workflow-reconcile.d.ts +2 -2
- package/dist/engine/workflow-reconcile.js +5 -5
- package/dist/generated/cli-commands.json +15398 -11771
- package/dist/generated/cli-dispatch.d.ts +4 -3
- package/dist/generated/cli-dispatch.js +76 -62
- package/dist/index.d.ts +12 -7
- package/dist/index.js +5 -3
- package/dist/metrics/metric.d.ts +3 -3
- package/dist/metrics/metric.js +1 -1
- package/docs/REFERENCE.md +102 -95
- package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/FilesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/FilesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.d.ts +88 -0
- package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.js +239 -0
- package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.d.ts +1 -15
- package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.js +3 -49
- package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/TeamMembershipsApi.d.ts +96 -0
- package/node_modules/@orchestraworks/client/dist/apis/{GroupsApi.js → TeamMembershipsApi.js} +62 -59
- package/node_modules/@orchestraworks/client/dist/apis/TeamsApi.d.ts +93 -0
- package/node_modules/@orchestraworks/client/dist/apis/{ProjectsApi.js → TeamsApi.js} +55 -55
- package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/UsersApi.d.ts +0 -15
- package/node_modules/@orchestraworks/client/dist/apis/UsersApi.js +0 -49
- package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.js +4 -4
- package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/index.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/apis/index.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.d.ts +88 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.js +235 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.d.ts +1 -15
- package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.js +3 -49
- package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/TeamMembershipsApi.d.ts +96 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/{GroupsApi.js → TeamMembershipsApi.js} +60 -57
- package/node_modules/@orchestraworks/client/dist/esm/apis/TeamsApi.d.ts +93 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/{ProjectsApi.js → TeamsApi.js} +53 -53
- package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.d.ts +0 -15
- package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.js +0 -49
- package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/index.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/index.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AddArtifactVersionRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Agent.d.ts +9 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Agent.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.d.ts +9 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.js +5 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Connection.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Connection.js +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Connector.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Connector.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateImageRequest.d.ts +38 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{GroupMemberAgent.js → CreateImageRequest.js} +12 -16
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.d.ts +65 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.js +61 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.d.ts +80 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.js +64 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateWorkflowRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.js +6 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.d.ts +45 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.js +29 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChartQuery.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.d.ts +0 -13
- package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.js +0 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.d.ts +58 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.js +64 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Environment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Environment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentEgressPolicy.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Image.d.ts +113 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Image.js +91 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.d.ts +44 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.js +47 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.d.ts +0 -6
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.js +0 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MessageWorkItemRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Metric.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Metric.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.d.ts +7 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.js +5 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.d.ts +5 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/PageImage.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{PageProject.js → PageImage.js} +11 -11
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeam.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{PageGroupSummary.js → PageTeam.js} +11 -11
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.js +56 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.js +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Role.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Role.js +4 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Secret.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Secret.js +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.d.ts +7 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.js +1 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Session.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Session.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Skill.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Skill.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SnapshotAnchor.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Team.d.ts +104 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{GroupSummary.js → Team.js} +25 -15
- package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.d.ts +83 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.js +77 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/TriggerTarget.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateArtifactRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.d.ts +47 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.js +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.d.ts +68 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.js +58 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Volume.d.ts +10 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Volume.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemActivity.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.d.ts +7 -7
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.js +5 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/index.d.ts +13 -17
- package/node_modules/@orchestraworks/client/dist/esm/models/index.js +13 -17
- package/node_modules/@orchestraworks/client/dist/models/AddArtifactVersionRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Agent.d.ts +9 -3
- package/node_modules/@orchestraworks/client/dist/models/Agent.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.d.ts +9 -1
- package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.js +5 -1
- package/node_modules/@orchestraworks/client/dist/models/Artifact.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Artifact.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignAction.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/AssignAction.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/Connection.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/models/Connection.js +8 -2
- package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Connector.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Connector.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.d.ts +38 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.js +54 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.d.ts +65 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.js +69 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.d.ts +80 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.js +72 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateWorkflowRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Dashboard.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/Dashboard.js +6 -2
- package/node_modules/@orchestraworks/client/dist/models/DashboardChart.d.ts +45 -4
- package/node_modules/@orchestraworks/client/dist/models/DashboardChart.js +30 -6
- package/node_modules/@orchestraworks/client/dist/models/DashboardChartQuery.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Delivery.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Delivery.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.d.ts +0 -13
- package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.js +0 -5
- package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.d.ts +58 -0
- package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.js +72 -0
- package/node_modules/@orchestraworks/client/dist/models/Environment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Environment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/EnvironmentEgressPolicy.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/GatewayKey.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/GatewayKey.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Image.d.ts +113 -0
- package/node_modules/@orchestraworks/client/dist/models/Image.js +99 -0
- package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.d.ts +44 -0
- package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.js +54 -0
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.d.ts +0 -6
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.js +0 -4
- package/node_modules/@orchestraworks/client/dist/models/MachineView.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MachineView.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MessageWorkItemRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Metric.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Metric.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MetricValue.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MetricValue.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ModelFile.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ModelFile.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.d.ts +7 -0
- package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.js +5 -0
- package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.js +4 -4
- package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.d.ts +5 -5
- package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.js +4 -4
- package/node_modules/@orchestraworks/client/dist/models/PageImage.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/{PageProject.js → PageImage.js} +16 -16
- package/node_modules/@orchestraworks/client/dist/models/PageTeam.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/{PageGroupSummary.js → PageTeam.js} +16 -16
- package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.js +63 -0
- package/node_modules/@orchestraworks/client/dist/models/Pipeline.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Pipeline.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.js +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Role.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/Role.js +4 -0
- package/node_modules/@orchestraworks/client/dist/models/Secret.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/models/Secret.js +8 -2
- package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.d.ts +7 -1
- package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.js +1 -0
- package/node_modules/@orchestraworks/client/dist/models/Session.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/models/Session.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/SessionSummary.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/models/SessionSummary.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/Skill.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Skill.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/SnapshotAnchor.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Team.d.ts +104 -0
- package/node_modules/@orchestraworks/client/dist/models/{GroupSummary.js → Team.js} +31 -21
- package/node_modules/@orchestraworks/client/dist/models/TeamMembership.d.ts +83 -0
- package/node_modules/@orchestraworks/client/dist/models/TeamMembership.js +85 -0
- package/node_modules/@orchestraworks/client/dist/models/Trigger.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Trigger.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/TriggerTarget.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/UpdateArtifactRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.d.ts +47 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.js +59 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.d.ts +68 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.js +66 -0
- package/node_modules/@orchestraworks/client/dist/models/UserGrant.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/UserGrant.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Volume.d.ts +10 -3
- package/node_modules/@orchestraworks/client/dist/models/Volume.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemActivity.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.d.ts +7 -7
- package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.js +5 -5
- package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Workflow.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Workflow.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/index.d.ts +13 -17
- package/node_modules/@orchestraworks/client/dist/models/index.js +13 -17
- package/node_modules/@orchestraworks/client/package.json +1 -1
- package/package.json +4 -4
- package/skills/orchestra/SKILL.md +82 -67
- package/skills/orchestra-fdk/references/authoring.md +83 -45
- package/skills/orchestra-fdk/references/environment.md +214 -33
- package/skills/orchestra-fdk/references/troubleshooting.md +10 -8
- package/templates/bug-fix/main.ts +6 -1
- package/templates/engineering-team/README.md +10 -7
- package/templates/engineering-team/agents/engineer-agent.md +38 -16
- package/templates/engineering-team/lib/environment.ts +15 -3
- package/templates/engineering-team/main.ts +1 -1
- package/templates/todo-factory/main.ts +6 -1
- package/dist/constructs/project.d.ts +0 -33
- package/dist/constructs/project.js +0 -82
- package/node_modules/@orchestraworks/client/dist/apis/GroupsApi.d.ts +0 -95
- package/node_modules/@orchestraworks/client/dist/apis/ProjectsApi.d.ts +0 -93
- package/node_modules/@orchestraworks/client/dist/esm/apis/GroupsApi.d.ts +0 -95
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProjectsApi.d.ts +0 -93
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.d.ts +0 -82
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.js +0 -74
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.d.ts +0 -53
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.js +0 -50
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.d.ts +0 -52
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.js +0 -49
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.js +0 -47
- package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.d.ts +0 -57
- package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.js +0 -50
- package/node_modules/@orchestraworks/client/dist/esm/models/Group.d.ts +0 -106
- package/node_modules/@orchestraworks/client/dist/esm/models/Group.js +0 -92
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.d.ts +0 -40
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberAgent.d.ts +0 -44
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.js +0 -43
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupSummary.d.ts +0 -86
- package/node_modules/@orchestraworks/client/dist/esm/models/PageGroupSummary.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/esm/models/PageProject.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/esm/models/Project.d.ts +0 -76
- package/node_modules/@orchestraworks/client/dist/esm/models/Project.js +0 -69
- package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.d.ts +0 -70
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.js +0 -60
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.js +0 -45
- package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.d.ts +0 -82
- package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.js +0 -82
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.d.ts +0 -53
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.js +0 -57
- package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.d.ts +0 -52
- package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.js +0 -56
- package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.js +0 -54
- package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.d.ts +0 -57
- package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.js +0 -57
- package/node_modules/@orchestraworks/client/dist/models/Group.d.ts +0 -106
- package/node_modules/@orchestraworks/client/dist/models/Group.js +0 -100
- package/node_modules/@orchestraworks/client/dist/models/GroupMember.d.ts +0 -40
- package/node_modules/@orchestraworks/client/dist/models/GroupMember.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.d.ts +0 -44
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.js +0 -58
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.js +0 -50
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/GroupSummary.d.ts +0 -86
- package/node_modules/@orchestraworks/client/dist/models/PageGroupSummary.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/models/PageProject.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/models/Project.d.ts +0 -76
- package/node_modules/@orchestraworks/client/dist/models/Project.js +0 -76
- package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.d.ts +0 -70
- package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.js +0 -68
- package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.d.ts +0 -46
- 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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
147
|
-
(`IAgent`, `IEnvironment`, `ISecret`, `IGatewayKey`, `ISkill`, `IWorkflow`, `IPipeline`, `
|
|
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
|
|
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`, `
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 —
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
583
|
-
|
|
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,
|
|
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
|
-
-
|
|
619
|
-
|
|
620
|
-
for
|
|
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
|
|
730
|
-
|
|
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()) //
|
|
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,
|
|
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
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
`
|
|
1077
|
-
|
|
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
|
|
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[]`
|
|
1164
|
-
credential
|
|
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
|
|
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
|
|
322
|
-
host, as phase 2 of the orchestra-fdk skill, "The model route", says (orchestra skill,
|
|
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
|
|
378
|
-
|
|
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
|
|
383
|
-
|
|
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
|
|
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:
|
|
393
|
-
|
|
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
|
|
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
|
|
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
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
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
|
-
-
|
|
651
|
-
|
|
652
|
-
- Other tokens, such as for git, a package feed or an Azure DevOps personal access token: the team's
|
|
653
|
-
|
|
654
|
-
-
|
|
655
|
-
|
|
656
|
-
|
|
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
|
|
662
|
-
-
|
|
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
|
|
682
|
-
|
|
683
|
-
after the first run. On an existing factory, with its token file loaded, the rules
|
|
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.
|