@orchestraworks/cli 0.5.4 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/artifacts/prelude.js +10 -1
- package/dist/cli/api/execute.js +7 -7
- 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 +2 -2
- package/dist/cli/firstRun.js +12 -13
- 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 +84 -89
- 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 +74 -64
- package/skills/orchestra-fdk/references/authoring.md +75 -39
- package/skills/orchestra-fdk/references/environment.md +214 -33
- package/skills/orchestra-fdk/references/troubleshooting.md +8 -7
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PlanKind, PlanResource, ValueFrom } from "../core/plan.js";
|
|
2
|
-
import { ApplyError, type ApplyOutcome, type
|
|
2
|
+
import { ApplyError, type ApplyOutcome, type DesiredTeam, type TeamIdentityRefusal } from "./apply-core.js";
|
|
3
3
|
/**
|
|
4
4
|
* Supplied explicitly by whichever caller is classifying, never read ambiently: both callers build one from
|
|
5
5
|
* their OWN reads, taken at their own time, which keeps the freshness discipline while the RULE stays
|
|
@@ -7,7 +7,7 @@ import { ApplyError, type ApplyOutcome, type DesiredProject, type ProjectIdentit
|
|
|
7
7
|
* the one function that owns each kind.
|
|
8
8
|
*
|
|
9
9
|
* EVERY field is optional, because evidence gating is the module's rule and not a per-field exception: a
|
|
10
|
-
* caller holding no environment or no
|
|
10
|
+
* caller holding no environment or no team omits it rather than manufacturing a sentinel.
|
|
11
11
|
*/
|
|
12
12
|
export interface RefusalContext {
|
|
13
13
|
/** Absent ⇒ nothing exists yet. */
|
|
@@ -20,9 +20,9 @@ export interface RefusalContext {
|
|
|
20
20
|
resolvedDesired?: unknown;
|
|
21
21
|
/** Injected, never read from `process.env` inside a classifier. Absent ⇒ the source arms decide nothing. */
|
|
22
22
|
env?: Record<string, string | undefined>;
|
|
23
|
-
/** Absent ⇒ this kind has no
|
|
24
|
-
|
|
25
|
-
gatewayPair?:
|
|
23
|
+
/** The row's declared team. Absent ⇒ this kind has no team, or the caller cannot judge it. */
|
|
24
|
+
team?: DesiredTeam;
|
|
25
|
+
gatewayPair?: TeamIdentityRefusal["pairContext"];
|
|
26
26
|
/** Secret ids owned by connections, when the caller has scanned for them. */
|
|
27
27
|
reservedProviderSecretIds?: ReadonlySet<string>;
|
|
28
28
|
}
|
|
@@ -31,11 +31,7 @@ export interface ResolvedSecretRef {
|
|
|
31
31
|
readonly id: string;
|
|
32
32
|
readonly label: string;
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
* ONE GROUP of an environment's secret references, already resolved to canonical ids. An environment
|
|
36
|
-
* contributes TWO groups and classifies each on its own, because the pairwise-distinct rule is about the
|
|
37
|
-
* egress group alone.
|
|
38
|
-
*/
|
|
34
|
+
/** An environment's secret references, already resolved to canonical ids: today its pull credential. */
|
|
39
35
|
export interface ResolvedEnvironmentDesired {
|
|
40
36
|
readonly secretRefs: readonly ResolvedSecretRef[];
|
|
41
37
|
}
|
|
@@ -53,21 +49,21 @@ export interface ResolvedConnectionDesired {
|
|
|
53
49
|
*/
|
|
54
50
|
export interface LiveGatewayKeyPair {
|
|
55
51
|
readonly key?: {
|
|
56
|
-
|
|
52
|
+
teamId?: string | null;
|
|
57
53
|
} | undefined;
|
|
58
54
|
readonly secret?: {
|
|
59
|
-
|
|
55
|
+
teamId?: string | null;
|
|
60
56
|
} | undefined;
|
|
61
57
|
readonly secretMarked?: boolean;
|
|
62
58
|
}
|
|
63
59
|
/**
|
|
64
|
-
* A discriminated union, so each arm carries its own typed payload. The
|
|
65
|
-
* machine-readable {@link
|
|
60
|
+
* A discriminated union, so each arm carries its own typed payload. The team arm carries the
|
|
61
|
+
* machine-readable {@link TeamIdentityRefusal} rather than a pre-rendered string, which keeps the shared
|
|
66
62
|
* formatter the only place that conflict is worded. `code` is what `DiffEntry.blocked` carries.
|
|
67
63
|
*/
|
|
68
64
|
export type RefusalVerdict = {
|
|
69
|
-
code: "
|
|
70
|
-
refusal:
|
|
65
|
+
code: "team-identity";
|
|
66
|
+
refusal: TeamIdentityRefusal;
|
|
71
67
|
} | {
|
|
72
68
|
code: "connector-identity";
|
|
73
69
|
message: string;
|
|
@@ -98,9 +94,6 @@ export type RefusalVerdict = {
|
|
|
98
94
|
} | {
|
|
99
95
|
code: "reserved-provider-secret";
|
|
100
96
|
message: string;
|
|
101
|
-
} | {
|
|
102
|
-
code: "duplicate-binding";
|
|
103
|
-
message: string;
|
|
104
97
|
} | {
|
|
105
98
|
code: "byok-ownership";
|
|
106
99
|
message: string;
|
|
@@ -110,7 +103,7 @@ export type RefusalVerdict = {
|
|
|
110
103
|
};
|
|
111
104
|
/**
|
|
112
105
|
* The subtype lets the CLI present every deterministic refusal as `cannot apply:` without changing the
|
|
113
|
-
* classifier's raw message, which diff rows also render.
|
|
106
|
+
* classifier's raw message, which diff rows also render. Team identity keeps its own richer subtype.
|
|
114
107
|
*/
|
|
115
108
|
export declare class AggregateRefusalError extends ApplyError {
|
|
116
109
|
constructor(message: string, outcomes: ApplyOutcome[], options?: {
|
|
@@ -150,7 +143,7 @@ export declare function byokUnsetSourceMessage(slug: string, modelProvider: stri
|
|
|
150
143
|
* SECRET's row, where an author looking at a pending value write would see them — reaches the same rule the
|
|
151
144
|
* apply lane reaches through {@link refusalOf}.
|
|
152
145
|
*/
|
|
153
|
-
export declare function gatewayKeyPairRefusal(keySlug: string, secretSlug: string, pair: LiveGatewayKeyPair,
|
|
146
|
+
export declare function gatewayKeyPairRefusal(keySlug: string, secretSlug: string, pair: LiveGatewayKeyPair, team: DesiredTeam | undefined, pairContext: TeamIdentityRefusal["pairContext"] | undefined): RefusalVerdict | null;
|
|
154
147
|
/**
|
|
155
148
|
* Lives here rather than in the gateway-key lane because the classifier's message names it and this module
|
|
156
149
|
* must stay a leaf; the lane re-exports it.
|
|
@@ -158,13 +151,3 @@ export declare function gatewayKeyPairRefusal(keySlug: string, secretSlug: strin
|
|
|
158
151
|
export declare const PENDING_GATEWAY_KEY_TOKEN_LABEL_KEY = "sfdk.pendingGatewayKeyToken";
|
|
159
152
|
/** The named refusal for a mint that succeeded but whose paired-Secret token write did not. */
|
|
160
153
|
export declare function pendingGatewayKeyTokenRotationMessage(slug: string, secretSlug: string): string;
|
|
161
|
-
/**
|
|
162
|
-
* TWO shapes, because a binding is authored two ways and each is named by the spelling its AUTHOR used: a
|
|
163
|
-
* managed token points at a construct in this factory, so the label names that construct's PATH — the thing
|
|
164
|
-
* the author would go and edit — while an imported literal names no construct and is named by the header it
|
|
165
|
-
* fills, or by its shape when a recipe binding omits one. Neither shape carries a value.
|
|
166
|
-
*
|
|
167
|
-
* Taken by both callers: two mirrored derivations of one label is precisely how preview came to print a
|
|
168
|
-
* header for a binding apply refused by construct path.
|
|
169
|
-
*/
|
|
170
|
-
export declare function egressCredentialBindingLabel(environmentPath: string, ruleName: unknown, ref: string, header: unknown): string;
|
package/dist/engine/refusals.js
CHANGED
|
@@ -12,14 +12,13 @@
|
|
|
12
12
|
// nothing rather than guessing. No verdict can carry a credential: the classifiers read source RECIPES.
|
|
13
13
|
import { connectorImmutableFields } from "../constructs/connector.js";
|
|
14
14
|
import { isGatewayKeyRecipe } from "../core/gateway-key-recipe.js";
|
|
15
|
-
import {
|
|
16
|
-
import { ApplyError, classifyProjectIdentity, projectIdentityConflict, subsetDeepEqual, } from "./apply-core.js";
|
|
15
|
+
import { ApplyError, classifyTeamIdentity, subsetDeepEqual, teamIdentityConflict, } from "./apply-core.js";
|
|
17
16
|
import { isPartiallySuppliedRecipe, missingRootEnvNames, pendingCredentialWrite, } from "./secrets-apply.js";
|
|
18
17
|
import { managedChatConnectionRefusalMessage } from "./connection-readiness.js";
|
|
19
18
|
import { requiredConfigurationRefusalMessage } from "./connector-configuration.js";
|
|
20
19
|
/**
|
|
21
20
|
* The subtype lets the CLI present every deterministic refusal as `cannot apply:` without changing the
|
|
22
|
-
* classifier's raw message, which diff rows also render.
|
|
21
|
+
* classifier's raw message, which diff rows also render. Team identity keeps its own richer subtype.
|
|
23
22
|
*/
|
|
24
23
|
export class AggregateRefusalError extends ApplyError {
|
|
25
24
|
constructor(message, outcomes, options) {
|
|
@@ -34,8 +33,8 @@ export class AggregateRefusalError extends ApplyError {
|
|
|
34
33
|
*/
|
|
35
34
|
export function refusalError(verdict, outcomes, cause) {
|
|
36
35
|
const options = cause !== undefined ? { cause } : undefined;
|
|
37
|
-
if (verdict.code === "
|
|
38
|
-
return
|
|
36
|
+
if (verdict.code === "team-identity") {
|
|
37
|
+
return teamIdentityConflict(verdict.refusal, outcomes, options);
|
|
39
38
|
}
|
|
40
39
|
return new AggregateRefusalError(verdict.message, [...outcomes], options);
|
|
41
40
|
}
|
|
@@ -60,8 +59,10 @@ export function refuseIf(kind, resource, ctx, outcomes) {
|
|
|
60
59
|
*/
|
|
61
60
|
export function refusalOf(kind, resource, ctx) {
|
|
62
61
|
switch (kind) {
|
|
63
|
-
case "
|
|
64
|
-
|
|
62
|
+
case "team":
|
|
63
|
+
case "role":
|
|
64
|
+
case "team-membership":
|
|
65
|
+
// None of these is placed in a team, and none has another pre-write refusal.
|
|
65
66
|
return null;
|
|
66
67
|
case "gateway-key":
|
|
67
68
|
return gatewayKeyRefusal(resource, ctx);
|
|
@@ -79,44 +80,44 @@ export function refusalOf(kind, resource, ctx) {
|
|
|
79
80
|
case "environment":
|
|
80
81
|
return environmentRefusal(resource, ctx);
|
|
81
82
|
case "skill":
|
|
82
|
-
return
|
|
83
|
+
return teamRefusal(resource, ctx);
|
|
83
84
|
case "agent":
|
|
84
85
|
return agentRefusal(resource, ctx);
|
|
85
86
|
case "pipeline":
|
|
86
|
-
return
|
|
87
|
+
return teamRefusal(resource, ctx);
|
|
87
88
|
case "workflow":
|
|
88
|
-
// A workflow takes its pipeline's
|
|
89
|
+
// A workflow takes its pipeline's team, which that pipeline's own verdict already judges.
|
|
89
90
|
return null;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
/**
|
|
93
|
-
* The
|
|
94
|
-
*
|
|
94
|
+
* The team-identity arm, shared by every team-able kind. Absent live row ⇒ nothing to conflict with; absent
|
|
95
|
+
* team ⇒ the caller could not judge the placement, which decides nothing.
|
|
95
96
|
*/
|
|
96
|
-
function
|
|
97
|
-
return
|
|
97
|
+
function teamRefusal(resource, ctx) {
|
|
98
|
+
return teamRefusalFor(resource.kind, resource.slug, ctx.live, ctx.team, ctx.gatewayPair);
|
|
98
99
|
}
|
|
99
100
|
/** The same arm addressed by kind+slug, for the gateway-key pair (whose two members have two slugs). */
|
|
100
|
-
function
|
|
101
|
-
if (
|
|
101
|
+
function teamRefusalFor(resourceKind, slug, live, team, pairContext) {
|
|
102
|
+
if (team === undefined) {
|
|
102
103
|
return null;
|
|
103
104
|
}
|
|
104
|
-
const refusal =
|
|
105
|
+
const refusal = classifyTeamIdentity({
|
|
105
106
|
resourceKind,
|
|
106
107
|
slug,
|
|
107
108
|
live: live,
|
|
108
|
-
desired:
|
|
109
|
+
desired: team,
|
|
109
110
|
...(pairContext !== undefined ? { pairContext } : {}),
|
|
110
111
|
});
|
|
111
|
-
return refusal !== undefined ? { code: "
|
|
112
|
+
return refusal !== undefined ? { code: "team-identity", refusal } : null;
|
|
112
113
|
}
|
|
113
114
|
/**
|
|
114
|
-
* Order mirrors the apply decision phase exactly: a readable
|
|
115
|
+
* Order mirrors the apply decision phase exactly: a readable row in another team outranks every other verdict,
|
|
115
116
|
* then the two source refusals. A gateway-key-backed Secret has no environment source at all and its
|
|
116
117
|
* unrecoverable states belong to the PAIR, so this arm stops after the identity check for one.
|
|
117
118
|
*/
|
|
118
119
|
function secretRefusal(resource, ctx) {
|
|
119
|
-
const identity =
|
|
120
|
+
const identity = teamRefusal(resource, ctx);
|
|
120
121
|
if (identity !== null)
|
|
121
122
|
return identity;
|
|
122
123
|
const valueFrom = resource.valueFrom;
|
|
@@ -227,18 +228,18 @@ function byokPartiallySuppliedMessage(slug, modelProvider, credential, env) {
|
|
|
227
228
|
function gatewayKeyRefusal(resource, ctx) {
|
|
228
229
|
const pair = ctx.live ?? {};
|
|
229
230
|
const secretSlug = ctx.gatewayPair?.secretSlug ?? "";
|
|
230
|
-
return gatewayKeyPairRefusal(resource.slug, secretSlug, pair, ctx.
|
|
231
|
+
return gatewayKeyPairRefusal(resource.slug, secretSlug, pair, ctx.team, ctx.gatewayPair);
|
|
231
232
|
}
|
|
232
233
|
/**
|
|
233
234
|
* Addressed by the two slugs directly, so the diff path — which renders these pair states on the paired
|
|
234
235
|
* SECRET's row, where an author looking at a pending value write would see them — reaches the same rule the
|
|
235
236
|
* apply lane reaches through {@link refusalOf}.
|
|
236
237
|
*/
|
|
237
|
-
export function gatewayKeyPairRefusal(keySlug, secretSlug, pair,
|
|
238
|
-
const keyIdentity =
|
|
238
|
+
export function gatewayKeyPairRefusal(keySlug, secretSlug, pair, team, pairContext) {
|
|
239
|
+
const keyIdentity = teamRefusalFor("gateway-key", keySlug, pair.key, team, pairContext);
|
|
239
240
|
if (keyIdentity !== null)
|
|
240
241
|
return keyIdentity;
|
|
241
|
-
const secretIdentity =
|
|
242
|
+
const secretIdentity = teamRefusalFor("secret", secretSlug, pair.secret, team, pairContext);
|
|
242
243
|
if (secretIdentity !== null)
|
|
243
244
|
return secretIdentity;
|
|
244
245
|
if (pair.key !== undefined && pair.secret === undefined) {
|
|
@@ -281,7 +282,7 @@ export function pendingGatewayKeyTokenRotationMessage(slug, secretSlug) {
|
|
|
281
282
|
* id. Identity first, then the immutable-field refusal, then the required-configuration omission.
|
|
282
283
|
*/
|
|
283
284
|
function connectorRefusal(resource, ctx) {
|
|
284
|
-
const identity =
|
|
285
|
+
const identity = teamRefusal(resource, ctx);
|
|
285
286
|
if (identity !== null)
|
|
286
287
|
return identity;
|
|
287
288
|
const desired = ctx.resolvedDesired;
|
|
@@ -316,7 +317,7 @@ function connectorIdentityMessage(resource, changed) {
|
|
|
316
317
|
* then the create-only OAuth app selection, then — for a ceremony-backed declaration only — the provider.
|
|
317
318
|
*/
|
|
318
319
|
function connectionRefusal(resource, ctx) {
|
|
319
|
-
const identity =
|
|
320
|
+
const identity = teamRefusal(resource, ctx);
|
|
320
321
|
if (identity !== null)
|
|
321
322
|
return identity;
|
|
322
323
|
const resolved = ctx.resolvedDesired;
|
|
@@ -359,16 +360,11 @@ function providerNotAdoptableMessage(resource, declared, live) {
|
|
|
359
360
|
`connection if it is no longer wanted.`);
|
|
360
361
|
}
|
|
361
362
|
/**
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
* The GROUP is the unit on purpose. Both places an environment can bind a secret reach this arm, but as two
|
|
366
|
-
* SEPARATE groups, exactly as apply refuses them: pairwise-distinct is about the egress bindings alone, and
|
|
367
|
-
* merging the pull credential in would invent a refusal apply never raises, since binding one secret both
|
|
368
|
-
* ways is legal. The per-ref rule is unaffected by the grouping either way.
|
|
363
|
+
* The pull credential reaches this arm as its own group; a connection-owned secret is refused, which needs
|
|
364
|
+
* the reserved-secret scan, so a caller holding none decides nothing here.
|
|
369
365
|
*/
|
|
370
366
|
function environmentRefusal(resource, ctx) {
|
|
371
|
-
const identity =
|
|
367
|
+
const identity = teamRefusal(resource, ctx);
|
|
372
368
|
if (identity !== null)
|
|
373
369
|
return identity;
|
|
374
370
|
const runtime = environmentRuntimeRefusal(resource, ctx);
|
|
@@ -377,9 +373,6 @@ function environmentRefusal(resource, ctx) {
|
|
|
377
373
|
const resolved = ctx.resolvedDesired;
|
|
378
374
|
if (resolved === undefined)
|
|
379
375
|
return null;
|
|
380
|
-
const duplicate = duplicateBindingRefusal(resolved.secretRefs);
|
|
381
|
-
if (duplicate !== null)
|
|
382
|
-
return duplicate;
|
|
383
376
|
const reserved = ctx.reservedProviderSecretIds;
|
|
384
377
|
if (reserved === undefined)
|
|
385
378
|
return null;
|
|
@@ -390,48 +383,6 @@ function environmentRefusal(resource, ctx) {
|
|
|
390
383
|
}
|
|
391
384
|
return null;
|
|
392
385
|
}
|
|
393
|
-
/**
|
|
394
|
-
* Lives here rather than inline in the egress loop, because a rule enforced only on the apply side is
|
|
395
|
-
* invisible to the preview: diff would append both bindings and the pre-flight would solicit an approval —
|
|
396
|
-
* and possibly a docker build — for a change reconcile refuses without writing.
|
|
397
|
-
*/
|
|
398
|
-
function duplicateBindingRefusal(refs) {
|
|
399
|
-
const seen = new Map(); // resolved secret id → the label of the first ref that bound it
|
|
400
|
-
for (const ref of refs) {
|
|
401
|
-
const prior = seen.get(ref.id);
|
|
402
|
-
if (prior !== undefined) {
|
|
403
|
-
return { code: "duplicate-binding", message: duplicateBindingMessage(ref.label, prior) };
|
|
404
|
-
}
|
|
405
|
-
seen.set(ref.id, ref.label);
|
|
406
|
-
}
|
|
407
|
-
return null;
|
|
408
|
-
}
|
|
409
|
-
/** Worded once for both callers, and value-free: two binding labels and nothing else. */
|
|
410
|
-
function duplicateBindingMessage(label, prior) {
|
|
411
|
-
return (`${label} and ${prior} bind the same secret; an environment's egress credential bindings must ` +
|
|
412
|
-
`reference pairwise-distinct secrets (§6.3).`);
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* TWO shapes, because a binding is authored two ways and each is named by the spelling its AUTHOR used: a
|
|
416
|
-
* managed token points at a construct in this factory, so the label names that construct's PATH — the thing
|
|
417
|
-
* the author would go and edit — while an imported literal names no construct and is named by the header it
|
|
418
|
-
* fills, or by its shape when a recipe binding omits one. Neither shape carries a value.
|
|
419
|
-
*
|
|
420
|
-
* Taken by both callers: two mirrored derivations of one label is precisely how preview came to print a
|
|
421
|
-
* header for a binding apply refused by construct path.
|
|
422
|
-
*/
|
|
423
|
-
export function egressCredentialBindingLabel(environmentPath, ruleName, ref, header) {
|
|
424
|
-
const rule = `environment '${environmentPath}' egress rule '${String(ruleName)}'`;
|
|
425
|
-
if (isRefToken(ref))
|
|
426
|
-
return `${rule} → secret '${parseRefToken(ref).path.join("/")}'`;
|
|
427
|
-
const which = typeof header === "string" && header !== "" ? `credential '${header}'` : "recipe credential binding";
|
|
428
|
-
return `${rule} ${which}`;
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Worded once for BOTH places an environment can bind a secret, so the noun is the general one: the label
|
|
432
|
-
* already says which of the two this is, and naming only the egress path told an author with a
|
|
433
|
-
* connection-owned pull credential that their egress rules were the problem.
|
|
434
|
-
*/
|
|
435
386
|
function reservedProviderSecretMessage(label) {
|
|
436
387
|
return (`${label}: the resolved secret is owned by a connection and cannot be used as an environment credential ` +
|
|
437
388
|
`binding (§6.3). The value is not echoed (§6.3).`);
|
|
@@ -442,7 +393,7 @@ function reservedProviderSecretMessage(label) {
|
|
|
442
393
|
* apply reports the same drift again. A live row stating no harness at all is absent evidence, not a conflict.
|
|
443
394
|
*/
|
|
444
395
|
function agentRefusal(resource, ctx) {
|
|
445
|
-
const identity =
|
|
396
|
+
const identity = teamRefusal(resource, ctx);
|
|
446
397
|
if (identity !== null)
|
|
447
398
|
return identity;
|
|
448
399
|
const liveHarness = ctx.live?.harness;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PlanResource } from "../core/plan.js";
|
|
2
|
+
import { type ApplyOutcome, type TeamResolver } from "./apply-core.js";
|
|
3
|
+
import { type PlatformApis } from "./client.js";
|
|
4
|
+
/**
|
|
5
|
+
* A team's parent is fixed at create, so a live team under another parent is refused rather than moved. Name,
|
|
6
|
+
* privacy, assignment method and the declared labels are reconciled; the console owns the description.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyTeam(resource: PlanResource, apis: PlatformApis, outcomes: ApplyOutcome[], applied: Map<string, string>, teams: TeamResolver): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* The platform derives a custom role's slug from its name, so the name is the key a live custom role is found
|
|
11
|
+
* by. A role's policies are a set; only the fields that drifted are sent.
|
|
12
|
+
*/
|
|
13
|
+
export declare function applyRole(resource: PlanResource, apis: PlatformApis, outcomes: ApplyOutcome[], applied: Map<string, string>): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* A principal's declared rows are its full set: apply changes a row's role in place, adds a missing row and
|
|
16
|
+
* removes a row the program does not declare. It writes only `/team-memberships`, never the membership or
|
|
17
|
+
* its policy assignments, so the use policies the platform minted at agent create stay.
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyTeamMemberships(resource: PlanResource, apis: PlatformApis, outcomes: ApplyOutcome[], applied: Map<string, string>, teams: TeamResolver): Promise<void>;
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
// Teams, custom roles and the team-membership rows a program declares. A key that may not write one of these
|
|
2
|
+
// gets the platform's 403, which apply records as a `refused` row and moves past, so a program that declares
|
|
3
|
+
// a team runs under a weaker key for every row the key may write.
|
|
4
|
+
import { createLabels, labelsPatch } from "../core/labels.js";
|
|
5
|
+
import { isRefToken, refToken } from "../core/tokens.js";
|
|
6
|
+
import { ApplyError, failing, getBySlugOrUndefined, mapError, } from "./apply-core.js";
|
|
7
|
+
import { httpStatusOf } from "./client.js";
|
|
8
|
+
import { paginate } from "./pages.js";
|
|
9
|
+
import { PreflightError } from "./preflight-errors.js";
|
|
10
|
+
/** The organization's catalog rows; a custom role never lives there. */
|
|
11
|
+
const GLOBAL_ORGANIZATION_ID = "org_global";
|
|
12
|
+
const DEFAULT_ASSIGNMENT = "AGENT_FIRST";
|
|
13
|
+
/** A 403 is the platform saying this key may not write the row: recorded as refused, never fatal. */
|
|
14
|
+
async function refusedOrThrow(error, ctx, outcomes, resource, id) {
|
|
15
|
+
if (httpStatusOf(error) !== 403) {
|
|
16
|
+
if (error instanceof ApplyError)
|
|
17
|
+
throw error;
|
|
18
|
+
throw new ApplyError(await mapError(error, ctx), [...outcomes], { cause: error });
|
|
19
|
+
}
|
|
20
|
+
outcomes.push({
|
|
21
|
+
path: resource.path,
|
|
22
|
+
kind: resource.kind,
|
|
23
|
+
slug: resource.slug,
|
|
24
|
+
id,
|
|
25
|
+
action: "refused",
|
|
26
|
+
reason: await mapError(error, ctx),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A team's parent is fixed at create, so a live team under another parent is refused rather than moved. Name,
|
|
31
|
+
* privacy, assignment method and the declared labels are reconciled; the console owns the description.
|
|
32
|
+
*/
|
|
33
|
+
export async function applyTeam(resource, apis, outcomes, applied, teams) {
|
|
34
|
+
const payload = resource.payload;
|
|
35
|
+
const token = refToken("team", resource.path.split("/"));
|
|
36
|
+
const surface = { kind: "team", slug: resource.slug };
|
|
37
|
+
let live;
|
|
38
|
+
try {
|
|
39
|
+
live = await getBySlugOrUndefined(() => apis.teams.getTeam({ id: resource.slug }));
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
await refusedOrThrow(error, { ...surface, op: "get" }, outcomes, resource, "");
|
|
43
|
+
teams.markRefused(token, resource.slug);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const parentTeamId = payload.parentTeamId === undefined ? undefined : await parentIdOf(payload.parentTeamId, apis, applied, resource, outcomes);
|
|
47
|
+
if (live !== undefined && (live.parentTeamId ?? undefined) !== parentTeamId) {
|
|
48
|
+
throw new ApplyError(`team '${resource.slug}': the live team's parent is ${live.parentTeamId === undefined ? "none" : `'${live.parentTeamId}'`}, ` +
|
|
49
|
+
`but this program declares ${parentTeamId === undefined ? "none" : `'${parentTeamId}'`}. A team's parent is fixed ` +
|
|
50
|
+
`when it is created, so apply never moves it. Remove the team and let apply recreate it, or declare the live parent.`, [...outcomes]);
|
|
51
|
+
}
|
|
52
|
+
let id;
|
|
53
|
+
let action;
|
|
54
|
+
try {
|
|
55
|
+
if (live === undefined) {
|
|
56
|
+
const labels = createLabels(payload.labels);
|
|
57
|
+
const body = {
|
|
58
|
+
name: payload.name,
|
|
59
|
+
slug: resource.slug,
|
|
60
|
+
...(Object.keys(labels).length > 0 ? { labels } : {}),
|
|
61
|
+
...(parentTeamId !== undefined ? { parentTeamId } : {}),
|
|
62
|
+
_private: payload.private,
|
|
63
|
+
assignment: payload.assignment,
|
|
64
|
+
};
|
|
65
|
+
id = (await apis.teams.createTeam({ createTeamRequest: body })).id;
|
|
66
|
+
action = "created";
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const labels = labelsPatch(payload.labels, live.labels);
|
|
70
|
+
const unchanged = live.name === payload.name &&
|
|
71
|
+
live._private === payload.private &&
|
|
72
|
+
(live.assignment ?? DEFAULT_ASSIGNMENT) === payload.assignment &&
|
|
73
|
+
labels === undefined;
|
|
74
|
+
if (unchanged) {
|
|
75
|
+
id = live.id;
|
|
76
|
+
action = "unchanged";
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const patch = {
|
|
80
|
+
name: payload.name,
|
|
81
|
+
_private: payload.private,
|
|
82
|
+
assignment: payload.assignment,
|
|
83
|
+
...(labels !== undefined ? { labels } : {}),
|
|
84
|
+
};
|
|
85
|
+
id = (await apis.teams.updateTeam({ id: live.id, updateTeamRequest: patch })).id;
|
|
86
|
+
action = "updated";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
await refusedOrThrow(error, { ...surface, op: live === undefined ? "create" : "update" }, outcomes, resource, live?.id ?? "");
|
|
92
|
+
teams.markRefused(token, resource.slug);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
outcomes.push({ path: resource.path, kind: "team", slug: resource.slug, id, action });
|
|
96
|
+
applied.set(token, id);
|
|
97
|
+
}
|
|
98
|
+
async function parentIdOf(ref, apis, applied, resource, outcomes) {
|
|
99
|
+
if (isRefToken(ref)) {
|
|
100
|
+
const id = applied.get(ref);
|
|
101
|
+
if (id === undefined) {
|
|
102
|
+
throw new ApplyError(`team '${resource.slug}': its parent team was not written in this run, so the sub-team cannot be created.`, [...outcomes]);
|
|
103
|
+
}
|
|
104
|
+
return id;
|
|
105
|
+
}
|
|
106
|
+
const live = await failing(() => getBySlugOrUndefined(() => apis.teams.getTeam({ id: ref })), { kind: "team", slug: resource.slug, op: "get" }, outcomes);
|
|
107
|
+
if (live === undefined) {
|
|
108
|
+
throw new PreflightError(`team '${ref}' was not found in this organization. Create it or fix the reference.`);
|
|
109
|
+
}
|
|
110
|
+
return live.id;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The platform derives a custom role's slug from its name, so the name is the key a live custom role is found
|
|
114
|
+
* by. A role's policies are a set; only the fields that drifted are sent.
|
|
115
|
+
*/
|
|
116
|
+
export async function applyRole(resource, apis, outcomes, applied) {
|
|
117
|
+
const payload = resource.payload;
|
|
118
|
+
const surface = { kind: "role", slug: resource.slug };
|
|
119
|
+
const roles = await failing(() => paginate((page, limit) => apis.roles.listRoles({ page, limit })), { ...surface, op: "list" }, outcomes);
|
|
120
|
+
const live = roles.items.find((role) => role.name === payload.name && role.organizationId !== GLOBAL_ORGANIZATION_ID);
|
|
121
|
+
let id;
|
|
122
|
+
let action;
|
|
123
|
+
try {
|
|
124
|
+
if (live === undefined) {
|
|
125
|
+
const labels = createLabels(payload.labels);
|
|
126
|
+
const created = await apis.roles.createRole({
|
|
127
|
+
createRoleRequest: {
|
|
128
|
+
name: payload.name,
|
|
129
|
+
...(payload.description !== undefined ? { description: payload.description } : {}),
|
|
130
|
+
...(Object.keys(labels).length > 0 ? { labels } : {}),
|
|
131
|
+
policyIds: [...payload.policyIds],
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
id = created.id;
|
|
135
|
+
action = "created";
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const patch = {};
|
|
139
|
+
if (payload.description !== undefined && payload.description !== live.description) {
|
|
140
|
+
patch.description = payload.description;
|
|
141
|
+
}
|
|
142
|
+
const labels = labelsPatch(payload.labels, live.labels);
|
|
143
|
+
if (labels !== undefined)
|
|
144
|
+
patch.labels = labels;
|
|
145
|
+
if ([...live.policyIds].sort().join(" ") !== payload.policyIds.join(" ")) {
|
|
146
|
+
patch.policyIds = [...payload.policyIds];
|
|
147
|
+
}
|
|
148
|
+
if (Object.keys(patch).length === 0) {
|
|
149
|
+
id = live.id;
|
|
150
|
+
action = "unchanged";
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
id = (await apis.roles.updateRole({ id: live.id, updateRoleRequest: patch })).id;
|
|
154
|
+
action = "updated";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
await refusedOrThrow(error, { ...surface, op: live === undefined ? "create" : "update" }, outcomes, resource, live?.id ?? "");
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
outcomes.push({ path: resource.path, kind: "role", slug: resource.slug, id, action });
|
|
163
|
+
applied.set(refToken("role", resource.path.split("/")), id);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* A principal's declared rows are its full set: apply changes a row's role in place, adds a missing row and
|
|
167
|
+
* removes a row the program does not declare. It writes only `/team-memberships`, never the membership or
|
|
168
|
+
* its policy assignments, so the use policies the platform minted at agent create stay.
|
|
169
|
+
*/
|
|
170
|
+
export async function applyTeamMemberships(resource, apis, outcomes, applied, teams) {
|
|
171
|
+
const payload = resource.payload;
|
|
172
|
+
const surface = { kind: "team-membership", slug: resource.slug };
|
|
173
|
+
const membershipId = await membershipIdOf(payload, resource, apis, outcomes, applied);
|
|
174
|
+
const desired = new Map();
|
|
175
|
+
for (const row of payload.rows) {
|
|
176
|
+
const body = await desiredRow(row, membershipId, resource, outcomes, applied, teams);
|
|
177
|
+
desired.set(scopeOf(body), body);
|
|
178
|
+
}
|
|
179
|
+
const live = await failing(() => paginate(async (page, limit) => {
|
|
180
|
+
const result = await apis.teamMemberships.listTeamMemberships({ membershipId, page, limit });
|
|
181
|
+
return { data: result.data, page, limit, total: result.total ?? result.data.length };
|
|
182
|
+
}), { ...surface, op: "list" }, outcomes);
|
|
183
|
+
const liveByScope = new Map();
|
|
184
|
+
for (const row of live.items)
|
|
185
|
+
liveByScope.set(scopeOf(row), row);
|
|
186
|
+
let wrote = false;
|
|
187
|
+
try {
|
|
188
|
+
for (const [scope, body] of desired) {
|
|
189
|
+
const current = liveByScope.get(scope);
|
|
190
|
+
if (current === undefined) {
|
|
191
|
+
await apis.teamMemberships.createTeamMembership({ createTeamMembershipRequest: body });
|
|
192
|
+
wrote = true;
|
|
193
|
+
}
|
|
194
|
+
else if (current.roleId !== body.roleId) {
|
|
195
|
+
await apis.teamMemberships.updateTeamMembership({
|
|
196
|
+
id: current.id,
|
|
197
|
+
updateTeamMembershipRequest: { roleId: body.roleId },
|
|
198
|
+
});
|
|
199
|
+
wrote = true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
for (const [scope, row] of liveByScope) {
|
|
203
|
+
if (desired.has(scope))
|
|
204
|
+
continue;
|
|
205
|
+
await apis.teamMemberships.deleteTeamMembership({ id: row.id });
|
|
206
|
+
wrote = true;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
await refusedOrThrow(error, { ...surface, op: "update" }, outcomes, resource, membershipId);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
outcomes.push({
|
|
214
|
+
path: resource.path,
|
|
215
|
+
kind: "team-membership",
|
|
216
|
+
slug: resource.slug,
|
|
217
|
+
id: membershipId,
|
|
218
|
+
action: wrote ? "updated" : "unchanged",
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function scopeOf(row) {
|
|
222
|
+
return row.allTeams === true ? "*" : `team:${row.teamId ?? ""}`;
|
|
223
|
+
}
|
|
224
|
+
async function desiredRow(row, membershipId, resource, outcomes, applied, teams) {
|
|
225
|
+
let roleId = row.roleId;
|
|
226
|
+
if (isRefToken(roleId)) {
|
|
227
|
+
const id = applied.get(roleId);
|
|
228
|
+
if (id === undefined) {
|
|
229
|
+
throw new ApplyError(`team-membership '${resource.slug}' names a custom role that was not written in this run, so its rows ` +
|
|
230
|
+
`cannot be applied.`, [...outcomes]);
|
|
231
|
+
}
|
|
232
|
+
roleId = id;
|
|
233
|
+
}
|
|
234
|
+
if ("allTeams" in row)
|
|
235
|
+
return { membershipId, allTeams: true, roleId };
|
|
236
|
+
const team = await teams.desired(row.teamId, { kind: "team-membership", slug: resource.slug, op: "get" }, outcomes);
|
|
237
|
+
if (team === undefined || team.state !== "resolved") {
|
|
238
|
+
throw new ApplyError(`team-membership '${resource.slug}' names team '${row.teamId}', which this run could not resolve.`, [...outcomes]);
|
|
239
|
+
}
|
|
240
|
+
return { membershipId, teamId: team.teamId, roleId };
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* The membership the rows are written on, from the principal's own read, which names its membership. No
|
|
244
|
+
* members-list read is made, so a key with Admin at one team writes that team's rows.
|
|
245
|
+
*/
|
|
246
|
+
async function membershipIdOf(payload, resource, apis, outcomes, applied) {
|
|
247
|
+
const surface = { kind: "team-membership", slug: resource.slug };
|
|
248
|
+
let membershipId;
|
|
249
|
+
let label;
|
|
250
|
+
if ("agentId" in payload.principal) {
|
|
251
|
+
const ref = payload.principal.agentId;
|
|
252
|
+
const id = isRefToken(ref) ? applied.get(ref) : ref;
|
|
253
|
+
if (id === undefined) {
|
|
254
|
+
throw new ApplyError(`agent '${resource.slug}' was not written in this run, so its team memberships cannot be applied.`, [...outcomes]);
|
|
255
|
+
}
|
|
256
|
+
const agent = await failing(() => getBySlugOrUndefined(() => apis.agents.getAgent({ id })), { ...surface, op: "get" }, outcomes);
|
|
257
|
+
membershipId = agent?.membershipId;
|
|
258
|
+
label = `agent '${resource.slug}'`;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
const serviceAccountId = payload.principal.serviceAccountId;
|
|
262
|
+
const account = await failing(() => getBySlugOrUndefined(() => apis.serviceAccounts.getServiceAccount({ id: serviceAccountId })), { ...surface, op: "get" }, outcomes);
|
|
263
|
+
if (account === undefined) {
|
|
264
|
+
throw new ApplyError(`service account '${serviceAccountId}' was not found. The kit never creates a service account: create ` +
|
|
265
|
+
`it first, or fix the id.`, [...outcomes]);
|
|
266
|
+
}
|
|
267
|
+
membershipId = account.membershipId;
|
|
268
|
+
label = `service account '${serviceAccountId}'`;
|
|
269
|
+
}
|
|
270
|
+
if (membershipId === undefined) {
|
|
271
|
+
throw new ApplyError(`${label} has no membership in this organization, so its team rows cannot be written.`, [
|
|
272
|
+
...outcomes,
|
|
273
|
+
]);
|
|
274
|
+
}
|
|
275
|
+
return membershipId;
|
|
276
|
+
}
|