@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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Construct } from "../core/construct.js";
|
|
2
|
+
import type { PlanResource } from "../core/plan.js";
|
|
3
|
+
import type { ITeam } from "./interfaces.js";
|
|
4
|
+
/** The built-in team every organization has from creation. */
|
|
5
|
+
export declare const SHARED_TEAM_SLUG = "shared";
|
|
6
|
+
/** How a team hands an item assigned to it to one of its members. */
|
|
7
|
+
export type TeamAssignment = "AGENT_FIRST" | "ROUND_ROBIN" | "BALANCED_WORKLOAD" | "QUEUE";
|
|
8
|
+
export interface TeamProps {
|
|
9
|
+
slug?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
labels?: Record<string, string>;
|
|
12
|
+
/** Fixed at create. A sub-team sits under a team that is neither Shared, private, nor a sub-team itself. */
|
|
13
|
+
parent?: ITeam;
|
|
14
|
+
/** All-teams roles skip a private team unless they may enter it. */
|
|
15
|
+
private?: boolean;
|
|
16
|
+
/** Undeclared, the platform's default, `AGENT_FIRST`. */
|
|
17
|
+
assignment?: TeamAssignment;
|
|
18
|
+
}
|
|
19
|
+
export declare class Team extends Construct implements ITeam {
|
|
20
|
+
/** Accepts a platform id or a slug interchangeably — one rule, stated on `IResource`. */
|
|
21
|
+
readonly teamId: string;
|
|
22
|
+
private readonly explicitSlug;
|
|
23
|
+
private readonly displayName;
|
|
24
|
+
private readonly labels;
|
|
25
|
+
private readonly parent;
|
|
26
|
+
private readonly isPrivate;
|
|
27
|
+
private readonly assignment;
|
|
28
|
+
constructor(scope: Construct, id: string, props?: TeamProps);
|
|
29
|
+
/** @internal */
|
|
30
|
+
_resourceId(): string;
|
|
31
|
+
get slug(): string;
|
|
32
|
+
/** @internal */
|
|
33
|
+
_isSubTeam(): boolean;
|
|
34
|
+
/** @internal */
|
|
35
|
+
_isPrivate(): boolean;
|
|
36
|
+
_toPlanResource(): PlanResource;
|
|
37
|
+
/** `Team.fromSlug(scope, "shared")` names Shared. */
|
|
38
|
+
static fromSlug(scope: Construct, slug: string): ITeam;
|
|
39
|
+
static fromId(scope: Construct, id: string): ITeam;
|
|
40
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// A team is a prop on every team-able row, never a scope, so placing a row in a team changes neither its
|
|
2
|
+
// construct path nor its slug. A row that names no team is created in Shared, and its plan resource
|
|
3
|
+
// carries no `teamId` at all.
|
|
4
|
+
import { Construct } from "../core/construct.js";
|
|
5
|
+
import { validateDeclaredLabels } from "../core/labels.js";
|
|
6
|
+
import { validateSlugOrKey } from "../core/naming.js";
|
|
7
|
+
import { refToken } from "../core/tokens.js";
|
|
8
|
+
import { registerImport, resolveManagedSlug, validateExplicitSlug } from "./references.js";
|
|
9
|
+
/** The built-in team every organization has from creation. */
|
|
10
|
+
export const SHARED_TEAM_SLUG = "shared";
|
|
11
|
+
const TEAM_ASSIGNMENTS = ["AGENT_FIRST", "ROUND_ROBIN", "BALANCED_WORKLOAD", "QUEUE"];
|
|
12
|
+
/** The complement of the slug grammar, which never carries `_`; the platform itself never parses an id. */
|
|
13
|
+
const ENTITY_ID_PATTERN = /^[a-z][a-z0-9]*_[^_]+$/;
|
|
14
|
+
export class Team extends Construct {
|
|
15
|
+
/** Accepts a platform id or a slug interchangeably — one rule, stated on `IResource`. */
|
|
16
|
+
teamId;
|
|
17
|
+
explicitSlug;
|
|
18
|
+
displayName;
|
|
19
|
+
labels;
|
|
20
|
+
parent;
|
|
21
|
+
isPrivate;
|
|
22
|
+
assignment;
|
|
23
|
+
constructor(scope, id, props = {}) {
|
|
24
|
+
super(scope, id);
|
|
25
|
+
const label = `team '${this.node.path.join("/")}'`;
|
|
26
|
+
validateDeclaredLabels(props.labels, `${label} labels`);
|
|
27
|
+
validateExplicitSlug(this, props.slug, "team");
|
|
28
|
+
if (props.assignment !== undefined && !TEAM_ASSIGNMENTS.includes(props.assignment)) {
|
|
29
|
+
throw new Error(`${label}: unknown assignment '${String(props.assignment)}'. Use one of ${JSON.stringify(TEAM_ASSIGNMENTS)}.`);
|
|
30
|
+
}
|
|
31
|
+
validateParent(label, props);
|
|
32
|
+
this.explicitSlug = props.slug;
|
|
33
|
+
this.displayName = props.name ?? id;
|
|
34
|
+
this.labels = props.labels !== undefined ? { ...props.labels } : undefined;
|
|
35
|
+
this.parent = props.parent;
|
|
36
|
+
this.isPrivate = props.private ?? false;
|
|
37
|
+
this.assignment = props.assignment ?? "AGENT_FIRST";
|
|
38
|
+
this.teamId = refToken("team", this.node.path);
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
_resourceId() {
|
|
42
|
+
return this.teamId;
|
|
43
|
+
}
|
|
44
|
+
get slug() {
|
|
45
|
+
return resolveManagedSlug(this, this.explicitSlug, "team");
|
|
46
|
+
}
|
|
47
|
+
/** @internal */
|
|
48
|
+
_isSubTeam() {
|
|
49
|
+
return this.parent !== undefined;
|
|
50
|
+
}
|
|
51
|
+
/** @internal */
|
|
52
|
+
_isPrivate() {
|
|
53
|
+
return this.isPrivate;
|
|
54
|
+
}
|
|
55
|
+
_toPlanResource() {
|
|
56
|
+
const slug = this.slug;
|
|
57
|
+
// `description` is console-owned and never emitted; `labels` only when declared, as on every kind.
|
|
58
|
+
// `private` and `assignment` are always emitted, so code stays the source of a team's privacy.
|
|
59
|
+
const payload = {
|
|
60
|
+
name: this.displayName,
|
|
61
|
+
slug,
|
|
62
|
+
...(this.labels !== undefined ? { labels: { ...this.labels } } : {}),
|
|
63
|
+
...(this.parent !== undefined ? { parentTeamId: this.parent.teamId } : {}),
|
|
64
|
+
private: this.isPrivate,
|
|
65
|
+
assignment: this.assignment,
|
|
66
|
+
};
|
|
67
|
+
return { kind: "team", path: this.node.path.join("/"), slug, managed: true, payload };
|
|
68
|
+
}
|
|
69
|
+
/** `Team.fromSlug(scope, "shared")` names Shared. */
|
|
70
|
+
static fromSlug(scope, slug) {
|
|
71
|
+
validateSlugOrKey(slug, "Team.fromSlug slug", "To reference a team by its platform id instead, use Team.fromId.");
|
|
72
|
+
registerImport(scope, { kind: "team", ref: slug }, slug);
|
|
73
|
+
return { teamId: slug, _resourceId: () => slug };
|
|
74
|
+
}
|
|
75
|
+
static fromId(scope, id) {
|
|
76
|
+
if (!ENTITY_ID_PATTERN.test(id)) {
|
|
77
|
+
throw new Error(`Invalid team id ${JSON.stringify(id)} for Team.fromId: a platform id is a lowercase prefix word, ` +
|
|
78
|
+
`exactly one '_', then a '_'-free suffix (e.g. 'proj_01jq7v…'). To reference a team by its slug ` +
|
|
79
|
+
`instead, use Team.fromSlug.`);
|
|
80
|
+
}
|
|
81
|
+
registerImport(scope, { kind: "team", ref: id }, id);
|
|
82
|
+
return { teamId: id, _resourceId: () => id };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The platform refuses each of these at create too; the program can see them for its own teams, so they fail
|
|
87
|
+
* at the call site. An imported parent's privacy and depth are the platform's to judge.
|
|
88
|
+
*/
|
|
89
|
+
function validateParent(label, props) {
|
|
90
|
+
const parent = props.parent;
|
|
91
|
+
if (parent === undefined)
|
|
92
|
+
return;
|
|
93
|
+
if (parent.teamId === SHARED_TEAM_SLUG) {
|
|
94
|
+
throw new Error(`${label}: Shared has no sub-teams. Name another team as the parent, or declare no parent.`);
|
|
95
|
+
}
|
|
96
|
+
if (props.private === true) {
|
|
97
|
+
throw new Error(`${label}: a sub-team cannot be private. Make the team a top-level team to make it private.`);
|
|
98
|
+
}
|
|
99
|
+
if (parent instanceof Team) {
|
|
100
|
+
if (parent._isSubTeam()) {
|
|
101
|
+
throw new Error(`${label}: its parent is itself a sub-team, and teams nest one level deep. Name a top-level team as the parent.`);
|
|
102
|
+
}
|
|
103
|
+
if (parent._isPrivate()) {
|
|
104
|
+
throw new Error(`${label}: its parent is private, and a private team has no sub-teams.`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -3,7 +3,7 @@ import type { Binding, ProviderEventHandle } from "./provider-types.js";
|
|
|
3
3
|
import { type PromptEventScope, type TypedPrompt } from "./prompt-template.js";
|
|
4
4
|
import type { SeedPromptRootName } from "../generated/contextShapes.js";
|
|
5
5
|
import type { IConnection } from "./connection.js";
|
|
6
|
-
import type { IAgent } from "./interfaces.js";
|
|
6
|
+
import type { IAgent, ITeam } from "./interfaces.js";
|
|
7
7
|
import type { IPipeline } from "./pipeline.js";
|
|
8
8
|
import { type EventScope, type FilterNode, type FilterInput } from "./workflow-filter.js";
|
|
9
9
|
/**
|
|
@@ -58,6 +58,7 @@ export interface TriggerDocument {
|
|
|
58
58
|
target: TriggerTarget;
|
|
59
59
|
status?: "active" | "paused";
|
|
60
60
|
expiresAt?: string;
|
|
61
|
+
teamId?: string;
|
|
61
62
|
}
|
|
62
63
|
/** A generated event handle, or a raw `<provider>::<token>` wire string. */
|
|
63
64
|
export type EventSelector<W extends string = string> = ProviderEventHandle<W> | W;
|
|
@@ -105,9 +106,8 @@ export interface AgentTargetProps<W extends string = string, WPrompt extends str
|
|
|
105
106
|
requireEverParticipated?: boolean;
|
|
106
107
|
/**
|
|
107
108
|
* Stamp the minted session's server-owned `connectionId` from the routed event's attributed connection.
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* installation. Default false.
|
|
109
|
+
* Opt-in: a non-attributed session leaves the field null. It chooses no credential; a request names its
|
|
110
|
+
* own. Default false.
|
|
111
111
|
*/
|
|
112
112
|
attributeConnection?: boolean;
|
|
113
113
|
}
|
|
@@ -164,6 +164,8 @@ export interface TriggerProps<E extends readonly EventSelector[] = readonly Even
|
|
|
164
164
|
target: AuthoredTarget<WiresOf<E>, WiresOf<E>>;
|
|
165
165
|
status?: "active" | "paused";
|
|
166
166
|
expiresAt?: string;
|
|
167
|
+
/** Fixed at create; undeclared, the trigger is created in Shared. */
|
|
168
|
+
team?: ITeam;
|
|
167
169
|
}
|
|
168
170
|
/** A durable routing entry `{ on → target }`, M:N, with its own lifecycle. */
|
|
169
171
|
export declare class Trigger<const E extends readonly EventSelector[] = readonly EventSelector[]> extends Construct {
|
|
@@ -173,6 +175,7 @@ export declare class Trigger<const E extends readonly EventSelector[] = readonly
|
|
|
173
175
|
private readonly target;
|
|
174
176
|
private readonly status;
|
|
175
177
|
private readonly expiresAt;
|
|
178
|
+
private readonly team;
|
|
176
179
|
private readonly notes;
|
|
177
180
|
constructor(scope: Construct, id: string, props: TriggerProps<E>);
|
|
178
181
|
get slug(): string;
|
|
@@ -99,6 +99,7 @@ export class Trigger extends Construct {
|
|
|
99
99
|
target;
|
|
100
100
|
status;
|
|
101
101
|
expiresAt;
|
|
102
|
+
team;
|
|
102
103
|
notes = [];
|
|
103
104
|
constructor(scope, id, props) {
|
|
104
105
|
super(scope, id);
|
|
@@ -140,6 +141,7 @@ export class Trigger extends Construct {
|
|
|
140
141
|
this.target = { _fields: { ...props.target._fields }, _bindingDeclared: props.target._bindingDeclared };
|
|
141
142
|
this.status = props.status;
|
|
142
143
|
this.expiresAt = props.expiresAt;
|
|
144
|
+
this.team = props.team;
|
|
143
145
|
}
|
|
144
146
|
get slug() {
|
|
145
147
|
return resolveManagedSlug(this, this.explicitSlug, "trigger");
|
|
@@ -172,6 +174,8 @@ export class Trigger extends Construct {
|
|
|
172
174
|
doc.status = this.status;
|
|
173
175
|
if (this.expiresAt !== undefined)
|
|
174
176
|
doc.expiresAt = this.expiresAt;
|
|
177
|
+
if (this.team !== undefined)
|
|
178
|
+
doc.teamId = this.team.teamId;
|
|
175
179
|
return doc;
|
|
176
180
|
}
|
|
177
181
|
/** A raw wire string carries no catalog knowledge, so it never contributes a canonical binding. */
|
|
@@ -8,7 +8,7 @@ export interface WorkflowProps {
|
|
|
8
8
|
/** Defaults to the construct id. A rename appends no version. */
|
|
9
9
|
name?: string;
|
|
10
10
|
labels?: Record<string, string>;
|
|
11
|
-
/** The pipeline whose items the rules act on. The platform fixes it at create, and the workflow takes its
|
|
11
|
+
/** The pipeline whose items the rules act on. The platform fixes it at create, and the workflow takes its team. */
|
|
12
12
|
pipeline: IPipeline;
|
|
13
13
|
/** What the rules do and why, at most 2,000 characters; it is versioned with them. */
|
|
14
14
|
description?: string;
|
package/dist/core/factory.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import type { IProject } from "../constructs/interfaces.js";
|
|
2
1
|
import { Construct } from "./construct.js";
|
|
3
2
|
import { type SynthResult } from "./plan.js";
|
|
4
3
|
export declare class Factory extends Construct {
|
|
5
|
-
#private;
|
|
6
4
|
readonly name: string;
|
|
7
5
|
constructor(props: {
|
|
8
6
|
name: string;
|
|
9
|
-
project?: IProject;
|
|
10
7
|
});
|
|
11
|
-
/** Undefined for a commons factory. */
|
|
12
|
-
get project(): IProject | undefined;
|
|
13
|
-
/** @internal — called by a managed `Project`'s constructor, or by this one for the import form. */
|
|
14
|
-
_registerProject(project: IProject): void;
|
|
15
8
|
/**
|
|
16
9
|
* Idempotent and side-effect-free over the tree: repeated calls produce byte-identical output, which holds
|
|
17
10
|
* only because nothing anywhere below reads a clock or a random source.
|
package/dist/core/factory.js
CHANGED
|
@@ -10,7 +10,7 @@ import { validateSlugOrKey } from "./naming.js";
|
|
|
10
10
|
import { outboundWarnings } from "./outbound-warning.js";
|
|
11
11
|
import { PLAN_KINDS, stableStringify, } from "./plan.js";
|
|
12
12
|
import { validateSynthTemplates } from "./templateValidation.js";
|
|
13
|
-
import {
|
|
13
|
+
import { scanRefTokens } from "./tokens.js";
|
|
14
14
|
let currentFactory;
|
|
15
15
|
let beforeExitRegistered = false;
|
|
16
16
|
const synthesizedFactories = new WeakSet();
|
|
@@ -28,8 +28,6 @@ function registerBeforeExit() {
|
|
|
28
28
|
}
|
|
29
29
|
export class Factory extends Construct {
|
|
30
30
|
name;
|
|
31
|
-
/** A managed {@link Project} self-registers here; the `project` prop is only ever the import form. */
|
|
32
|
-
#project;
|
|
33
31
|
constructor(props) {
|
|
34
32
|
// Before super() so a bad name reports as a "factory name" error rather than a bare construct-id one.
|
|
35
33
|
// Legal because the validation touches no `this` and this class declares no field initializers.
|
|
@@ -42,21 +40,6 @@ export class Factory extends Construct {
|
|
|
42
40
|
this.name = props.name;
|
|
43
41
|
currentFactory = this;
|
|
44
42
|
registerBeforeExit();
|
|
45
|
-
if (props.project !== undefined) {
|
|
46
|
-
this._registerProject(props.project);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/** Undefined for a commons factory. */
|
|
50
|
-
get project() {
|
|
51
|
-
return this.#project;
|
|
52
|
-
}
|
|
53
|
-
/** @internal — called by a managed `Project`'s constructor, or by this one for the import form. */
|
|
54
|
-
_registerProject(project) {
|
|
55
|
-
if (this.#project !== undefined) {
|
|
56
|
-
throw new Error("a Factory declares at most one project; remove the extra Project " +
|
|
57
|
-
"declaration (a managed `new Project(factory, ...)` and a `Project.fromSlug(...)` prop cannot coexist).");
|
|
58
|
-
}
|
|
59
|
-
this.#project = project;
|
|
60
43
|
}
|
|
61
44
|
/**
|
|
62
45
|
* Idempotent and side-effect-free over the tree: repeated calls produce byte-identical output, which holds
|
|
@@ -68,14 +51,10 @@ export class Factory extends Construct {
|
|
|
68
51
|
const imports = [];
|
|
69
52
|
const warnings = [];
|
|
70
53
|
const triggers = [];
|
|
71
|
-
// The stamp lands on every plan resource, but ONLY when a project is declared — a deliberate exception to
|
|
72
|
-
// always-emit, so a commons factory's bytes are unchanged.
|
|
73
|
-
const projectId = this.#project?.projectId;
|
|
74
54
|
for (const construct of constructs) {
|
|
75
55
|
const resource = construct._toPlanResource();
|
|
76
|
-
if (resource !== undefined)
|
|
77
|
-
resources.push(
|
|
78
|
-
}
|
|
56
|
+
if (resource !== undefined)
|
|
57
|
+
resources.push(resource);
|
|
79
58
|
const imported = construct._toImport();
|
|
80
59
|
if (imported !== undefined)
|
|
81
60
|
imports.push(imported);
|
|
@@ -84,11 +63,6 @@ export class Factory extends Construct {
|
|
|
84
63
|
if (rows !== undefined)
|
|
85
64
|
triggers.push(...rows);
|
|
86
65
|
}
|
|
87
|
-
// A project importer has no scope to register under — it is evaluated before the Factory exists — so the
|
|
88
|
-
// Factory contributes its plan import here instead of through the walk.
|
|
89
|
-
if (this.#project !== undefined && !isRefToken(this.#project.projectId)) {
|
|
90
|
-
imports.push({ kind: "project", ref: this.#project.projectId });
|
|
91
|
-
}
|
|
92
66
|
// Trigger slugs share the org trigger namespace, so the platform would 409 the second create.
|
|
93
67
|
triggers.sort((a, b) => (a.slug < b.slug ? -1 : a.slug > b.slug ? 1 : 0));
|
|
94
68
|
const seenTriggerSlugs = new Set();
|
|
@@ -110,6 +84,17 @@ export class Factory extends Construct {
|
|
|
110
84
|
}
|
|
111
85
|
seenWorkflowSlugs.add(resource.slug);
|
|
112
86
|
}
|
|
87
|
+
// A custom role's name is its key in the organization, so the platform would 409 the second create.
|
|
88
|
+
const seenRoleNames = new Set();
|
|
89
|
+
for (const resource of resources) {
|
|
90
|
+
if (resource.kind !== "role")
|
|
91
|
+
continue;
|
|
92
|
+
if (seenRoleNames.has(resource.slug)) {
|
|
93
|
+
throw new Error(`two roles are named ${JSON.stringify(resource.slug)} in factory ${JSON.stringify(this.name)}; ` +
|
|
94
|
+
`a custom role's name is unique in the organization.`);
|
|
95
|
+
}
|
|
96
|
+
seenRoleNames.add(resource.slug);
|
|
97
|
+
}
|
|
113
98
|
// A managed slug that also appears as an import ref is ambiguous — no silent dedup.
|
|
114
99
|
const managedSlugs = new Set(resources.map((resource) => resource.slug));
|
|
115
100
|
for (const imported of imports) {
|
|
@@ -127,7 +112,7 @@ export class Factory extends Construct {
|
|
|
127
112
|
assertEventSelectionValues(resources);
|
|
128
113
|
// The advisory passes append after the tree-walk `_synthWarnings` entries, each block internally sorted,
|
|
129
114
|
// so `warnings.json` stays byte-stable across re-synth.
|
|
130
|
-
warnings.push(...outboundWarnings(resources, triggers));
|
|
115
|
+
warnings.push(...outboundWarnings(resources, triggers, imports));
|
|
131
116
|
warnings.push(...eventSelectionWarnings(resources, triggers));
|
|
132
117
|
// The synth-time reference gate. A broken reference is caught on the author's machine instead of at the
|
|
133
118
|
// platform's save-time 400, which stays authoritative; anything that cannot be said with certainty
|
|
@@ -171,29 +156,6 @@ export class Factory extends Construct {
|
|
|
171
156
|
runAutoSynth();
|
|
172
157
|
}
|
|
173
158
|
}
|
|
174
|
-
/**
|
|
175
|
-
* A project is not stamped into itself, a model-provider-key row and a compute provider are organization-wide
|
|
176
|
-
* with no project axis at all,
|
|
177
|
-
* and a workflow takes its pipeline's project, so none of their bodies has a `projectId` field to fence. Every
|
|
178
|
-
* other kind has a real `projectId` column and keeps the stamp.
|
|
179
|
-
*/
|
|
180
|
-
const PROJECT_UNSTAMPED_KINDS = new Set([
|
|
181
|
-
"project",
|
|
182
|
-
"model-provider-key",
|
|
183
|
-
"compute-provider",
|
|
184
|
-
"workflow",
|
|
185
|
-
]);
|
|
186
|
-
/** Returns a fresh resource and payload, so the source construct's payload is never mutated. */
|
|
187
|
-
function stampResourceProject(resource, projectId) {
|
|
188
|
-
if (PROJECT_UNSTAMPED_KINDS.has(resource.kind))
|
|
189
|
-
return resource;
|
|
190
|
-
return {
|
|
191
|
-
...resource,
|
|
192
|
-
// Explicit key:value, never shorthand: the payload is an untyped `Record<string, unknown>`, so a
|
|
193
|
-
// shorthand `{ projectId }` would silently rename this WIRE key along with the parameter.
|
|
194
|
-
payload: { ...resource.payload, projectId: projectId },
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
159
|
/**
|
|
198
160
|
* Read off the plan resource rather than the construct, so what is checked is exactly what is about to be
|
|
199
161
|
* written: a `where` the construct holds but does not emit is not a stored reference.
|
|
@@ -21,6 +21,8 @@ export function containsGatewayKeyRecipe(valueFrom) {
|
|
|
21
21
|
return containsGatewayKeyRecipe(valueFrom.basicAuth.source);
|
|
22
22
|
if ("registryCredential" in valueFrom)
|
|
23
23
|
return containsGatewayKeyRecipe(valueFrom.registryCredential.source);
|
|
24
|
+
if ("fields" in valueFrom)
|
|
25
|
+
return Object.values(valueFrom.fields).some(containsGatewayKeyRecipe);
|
|
24
26
|
return (containsGatewayKeyRecipe(valueFrom.ecrCredential.accessKeyIdSource) ||
|
|
25
27
|
containsGatewayKeyRecipe(valueFrom.ecrCredential.secretAccessKeySource));
|
|
26
28
|
}
|
|
@@ -33,6 +35,14 @@ function firstGatewayKeyRef(valueFrom) {
|
|
|
33
35
|
return firstGatewayKeyRef(valueFrom.basicAuth.source);
|
|
34
36
|
if ("registryCredential" in valueFrom)
|
|
35
37
|
return firstGatewayKeyRef(valueFrom.registryCredential.source);
|
|
38
|
+
if ("fields" in valueFrom) {
|
|
39
|
+
for (const field of Object.values(valueFrom.fields)) {
|
|
40
|
+
const ref = firstGatewayKeyRef(field);
|
|
41
|
+
if (ref !== undefined)
|
|
42
|
+
return ref;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
36
46
|
return (firstGatewayKeyRef(valueFrom.ecrCredential.accessKeyIdSource) ??
|
|
37
47
|
firstGatewayKeyRef(valueFrom.ecrCredential.secretAccessKeySource));
|
|
38
48
|
}
|
|
@@ -46,8 +56,8 @@ export function gatewayKeyNestingError(compositor, valueFrom) {
|
|
|
46
56
|
return new Error(`SecretValue.fromGatewayKey${named} cannot be used inside ${compositor}: a gateway key's one-time ` +
|
|
47
57
|
`token is written by the paired-Secret write protocol, which runs only when the recipe is the ` +
|
|
48
58
|
`complete top-level value of exactly one managed Secret. Declare it directly instead — ` +
|
|
49
|
-
`new Secret(scope, id, { value: SecretValue.fromGatewayKey(gatewayKey) }) — and
|
|
50
|
-
`
|
|
59
|
+
`new Secret(scope, id, { value: SecretValue.fromGatewayKey(gatewayKey) }) — and give that Secret the ` +
|
|
60
|
+
`hosts it is presented on.`);
|
|
51
61
|
}
|
|
52
62
|
/**
|
|
53
63
|
* Every declared `GatewayKey` has exactly one direct top-level `Secret` consumer. Nested occurrences never
|
|
@@ -55,12 +65,14 @@ export function gatewayKeyNestingError(compositor, valueFrom) {
|
|
|
55
65
|
*/
|
|
56
66
|
export function assertGatewayKeyPairing(resources) {
|
|
57
67
|
const consumersByRef = new Map();
|
|
68
|
+
const consumerTeamByPath = new Map();
|
|
58
69
|
for (const resource of resources) {
|
|
59
70
|
if (resource.kind !== "secret" || resource.valueFrom === undefined)
|
|
60
71
|
continue;
|
|
61
72
|
const ref = gatewayKeyRefOf(resource.valueFrom);
|
|
62
73
|
if (ref === undefined)
|
|
63
74
|
continue;
|
|
75
|
+
consumerTeamByPath.set(resource.path, teamOf(resource));
|
|
64
76
|
const consumers = consumersByRef.get(ref);
|
|
65
77
|
if (consumers === undefined)
|
|
66
78
|
consumersByRef.set(ref, [resource.path]);
|
|
@@ -95,5 +107,14 @@ export function assertGatewayKeyPairing(resources) {
|
|
|
95
107
|
`exactly ONE Secret, so several consumers make the token write ambiguous and could strand the ` +
|
|
96
108
|
`token. Declare exactly one Secret for this gateway key.`);
|
|
97
109
|
}
|
|
110
|
+
// The key and its Secret are one unit, so a row of the pair in another team could never be judged or
|
|
111
|
+
// remedied on its own.
|
|
112
|
+
if (consumerTeamByPath.get(consumers[0]) !== teamOf(resource)) {
|
|
113
|
+
throw new Error(`gateway key '${resource.path}' and its Secret '${consumers[0]}' name different teams. A gateway key ` +
|
|
114
|
+
`and the Secret that holds its token are one unit, so declare both in the same team.`);
|
|
115
|
+
}
|
|
98
116
|
}
|
|
99
117
|
}
|
|
118
|
+
function teamOf(resource) {
|
|
119
|
+
return resource.payload?.teamId;
|
|
120
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The egress rule host syntax as the platform's matcher reads it: `*` covers every host, `*.` and a suffix
|
|
3
|
+
* covers that suffix's subdomains and the suffix itself, and anything else is one host, case-insensitively.
|
|
4
|
+
*/
|
|
5
|
+
export declare function hostPatternCovers(pattern: string, host: string): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The egress rule host syntax as the platform's matcher reads it: `*` covers every host, `*.` and a suffix
|
|
3
|
+
* covers that suffix's subdomains and the suffix itself, and anything else is one host, case-insensitively.
|
|
4
|
+
*/
|
|
5
|
+
export function hostPatternCovers(pattern, host) {
|
|
6
|
+
const lowerPattern = pattern.toLowerCase();
|
|
7
|
+
const lowerHost = host.toLowerCase();
|
|
8
|
+
if (lowerPattern === "*")
|
|
9
|
+
return true;
|
|
10
|
+
if (lowerPattern.startsWith("*.")) {
|
|
11
|
+
return lowerHost.endsWith(lowerPattern.slice(1)) || lowerHost === lowerPattern.slice(2);
|
|
12
|
+
}
|
|
13
|
+
return lowerPattern === lowerHost;
|
|
14
|
+
}
|
package/dist/core/labels.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export declare const LABEL_KEY_PREFIX = "sfdk.";
|
|
6
6
|
/**
|
|
7
7
|
* Stamped on every resource `apply` creates or adopts among the kinds whose API request exposes `labels`.
|
|
8
|
-
* Its value is the root factory name, which is always present — even for a
|
|
8
|
+
* Its value is the root factory name, which is always present — even for a factory that declares no team — so a CLI
|
|
9
9
|
* write against a managed resource can name the owning factory verbatim.
|
|
10
10
|
*/
|
|
11
11
|
export declare const MANAGED_BY_LABEL_KEY = "sfdk.managedBy";
|
package/dist/core/labels.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
export const LABEL_KEY_PREFIX = "sfdk.";
|
|
8
8
|
/**
|
|
9
9
|
* Stamped on every resource `apply` creates or adopts among the kinds whose API request exposes `labels`.
|
|
10
|
-
* Its value is the root factory name, which is always present — even for a
|
|
10
|
+
* Its value is the root factory name, which is always present — even for a factory that declares no team — so a CLI
|
|
11
11
|
* write against a managed resource can name the owning factory verbatim.
|
|
12
12
|
*/
|
|
13
13
|
export const MANAGED_BY_LABEL_KEY = `${LABEL_KEY_PREFIX}managedBy`;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { PlanResource, TriggerDocument } from "./plan.js";
|
|
1
|
+
import type { PlanImport, PlanResource, TriggerDocument } from "./plan.js";
|
|
2
2
|
/** Output is sorted so `warnings.json` stays byte-stable across re-synth. */
|
|
3
|
-
export declare function outboundWarnings(resources: PlanResource[], triggers: TriggerDocument[]): string[];
|
|
3
|
+
export declare function outboundWarnings(resources: PlanResource[], triggers: TriggerDocument[], imports?: PlanImport[]): string[];
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
// Wiring a connection to an agent is a triad — the `Connection`, the inbound `Trigger`s, and the outbound
|
|
2
2
|
// `.allow(connection)` on the agent's environment egress policy — and only the third side is invisible when
|
|
3
3
|
// forgotten: everything synths, applies and routes, and then the agent's CLI takes a 403 from the egress
|
|
4
|
-
// fence inside its own sandbox where nothing surfaces it but decision logs. Detection
|
|
5
|
-
// rule
|
|
6
|
-
//
|
|
4
|
+
// fence inside its own sandbox where nothing surfaces it but decision logs. Detection reads the hosts: an
|
|
5
|
+
// allow rule covering any of the provider's interpolated api hosts counts, whoever wrote it, and anything a
|
|
6
|
+
// check cannot prove (an unknown provider, a missing install value) stays silent, per check.
|
|
7
7
|
//
|
|
8
8
|
// The skill half's identity rule is a VERBATIM slug comparison, never {@link connectionSlugOf}'s
|
|
9
9
|
// `_`-heuristic: a connection's id ≠ its slug, but a catalog skill's id IS its slug (`skill_zendesk`), so
|
|
10
10
|
// reusing the heuristic would call every correct attachment indeterminate and silence the check forever.
|
|
11
11
|
import { objectArrayFieldOf, objectFieldOf, stringArrayFieldOf, stringFieldOf, } from "./plan-payload.js";
|
|
12
|
-
import {
|
|
12
|
+
import { interpolateHost } from "../constructs/provider-types.js";
|
|
13
|
+
import { hostPatternCovers } from "./host-pattern.js";
|
|
14
|
+
import { PROVIDER_HANDLES, PROVIDER_HANDLE_NAMES, PROVIDER_SKILL_SLUGS } from "./provider-lookup.js";
|
|
13
15
|
import { isRefToken, parseRefToken } from "./tokens.js";
|
|
14
16
|
/** Output is sorted so `warnings.json` stays byte-stable across re-synth. */
|
|
15
|
-
export function outboundWarnings(resources, triggers) {
|
|
17
|
+
export function outboundWarnings(resources, triggers, imports = []) {
|
|
16
18
|
const byRef = new Map();
|
|
17
19
|
const connectionsBySlug = new Map();
|
|
18
20
|
for (const resource of resources) {
|
|
@@ -22,7 +24,7 @@ export function outboundWarnings(resources, triggers) {
|
|
|
22
24
|
}
|
|
23
25
|
const pairs = new Map();
|
|
24
26
|
for (const trigger of triggers) {
|
|
25
|
-
const pair = resolvePair(trigger, byRef, connectionsBySlug);
|
|
27
|
+
const pair = resolvePair(trigger, byRef, connectionsBySlug, imports);
|
|
26
28
|
// Several triggers on one pair collapse to one entry — the verdict below is identical for all of them.
|
|
27
29
|
if (pair !== undefined)
|
|
28
30
|
pairs.set(`${pair.connectionSlug} ${pair.agent.path}`, pair);
|
|
@@ -30,7 +32,7 @@ export function outboundWarnings(resources, triggers) {
|
|
|
30
32
|
return [...pairs.values()].sort(comparePairs).flatMap((pair) => {
|
|
31
33
|
const messages = [];
|
|
32
34
|
const environment = pair.environment;
|
|
33
|
-
if (environment !== undefined && lacksOutboundRule(environment, pair.
|
|
35
|
+
if (environment !== undefined && lacksOutboundRule(environment, pair.installed)) {
|
|
34
36
|
messages.push(outboundWarningMessage(pair, environment));
|
|
35
37
|
}
|
|
36
38
|
const missingSkill = missingProviderSkill(pair);
|
|
@@ -45,7 +47,7 @@ export function outboundWarnings(resources, triggers) {
|
|
|
45
47
|
* `${ref:…}` token, so it is structurally invisible. An imported environment is NOT a skip: it leaves
|
|
46
48
|
* `environment` undefined, silencing the egress half alone.
|
|
47
49
|
*/
|
|
48
|
-
function resolvePair(trigger, byRef, connectionsBySlug) {
|
|
50
|
+
function resolvePair(trigger, byRef, connectionsBySlug, imports) {
|
|
49
51
|
const connectionSlug = trigger.on.connection;
|
|
50
52
|
const agentId = trigger.target.agent;
|
|
51
53
|
if (connectionSlug === undefined || agentId === undefined)
|
|
@@ -58,33 +60,54 @@ function resolvePair(trigger, byRef, connectionsBySlug) {
|
|
|
58
60
|
return {
|
|
59
61
|
connectionLabel: connection?.path ?? connectionSlug,
|
|
60
62
|
connectionSlug,
|
|
63
|
+
installed: installedProvider(connection, imports.find((imported) => imported.kind === "connection" && imported.ref === connectionSlug)),
|
|
61
64
|
providerId: stringFieldOf(connection?.payload, "provider"),
|
|
62
65
|
agent,
|
|
63
66
|
environment: environmentId === undefined ? undefined : resolveRef(environmentId, "environment", byRef),
|
|
64
67
|
};
|
|
65
68
|
}
|
|
69
|
+
/** A managed connection's payload, else an import's `expect` (its `provider` and flat `install.<key>`). */
|
|
70
|
+
function installedProvider(connection, imported) {
|
|
71
|
+
if (connection !== undefined) {
|
|
72
|
+
const providerId = stringFieldOf(connection.payload, "provider");
|
|
73
|
+
const install = objectFieldOf(objectFieldOf(connection.payload, "install"), "provider") ?? {};
|
|
74
|
+
return providerId === undefined ? undefined : { providerId, install: install };
|
|
75
|
+
}
|
|
76
|
+
const expect = imported?.expect;
|
|
77
|
+
if (expect?.provider === undefined)
|
|
78
|
+
return undefined;
|
|
79
|
+
const install = {};
|
|
80
|
+
for (const [key, value] of Object.entries(expect)) {
|
|
81
|
+
if (key.startsWith("install."))
|
|
82
|
+
install[key.slice("install.".length)] = value;
|
|
83
|
+
}
|
|
84
|
+
return { providerId: expect.provider, install };
|
|
85
|
+
}
|
|
66
86
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
87
|
+
* True only when the provider's hosts are provable and no allow rule covers any of them under a deny-all
|
|
88
|
+
* default: an open default, an unknown provider or a missing install value is indeterminate and stays silent
|
|
89
|
+
* rather than risking a warning that is wrong.
|
|
69
90
|
*/
|
|
70
|
-
function lacksOutboundRule(environment,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
91
|
+
function lacksOutboundRule(environment, installed) {
|
|
92
|
+
const egress = objectFieldOf(environment.payload, "egressPolicy");
|
|
93
|
+
if (stringFieldOf(egress, "defaultAction") !== "deny")
|
|
94
|
+
return false;
|
|
95
|
+
const hosts = providerApiHosts(installed);
|
|
96
|
+
if (hosts === undefined || hosts.length === 0)
|
|
97
|
+
return false;
|
|
98
|
+
return !objectArrayFieldOf(egress, "rules").some((rule) => stringFieldOf(rule, "action") === "allow" &&
|
|
99
|
+
stringArrayFieldOf(rule, "hosts").some((pattern) => hosts.some((host) => hostPatternCovers(pattern, host))));
|
|
100
|
+
}
|
|
101
|
+
function providerApiHosts(installed) {
|
|
102
|
+
const handle = installed === undefined ? undefined : PROVIDER_HANDLES.get(installed.providerId);
|
|
103
|
+
if (handle === undefined || installed === undefined)
|
|
104
|
+
return undefined;
|
|
105
|
+
try {
|
|
106
|
+
return handle.apiHosts.map((host) => interpolateHost(host, installed.install, { providerId: handle.id, ruleName: "" }));
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return undefined;
|
|
86
110
|
}
|
|
87
|
-
return !indeterminate;
|
|
88
111
|
}
|
|
89
112
|
/**
|
|
90
113
|
* Presence is a plain verbatim comparison because a catalog row's id equals its slug, so
|
|
@@ -105,17 +128,6 @@ function missingProviderSkill(pair) {
|
|
|
105
128
|
return undefined;
|
|
106
129
|
return { providerId, catalogSlug };
|
|
107
130
|
}
|
|
108
|
-
/**
|
|
109
|
-
* `undefined` means indeterminate: an import marker resolved only at apply, an id-shaped value (ids carry
|
|
110
|
-
* `_`, slugs never do, so identity is unprovable at synth), or a token naming a resource this plan lacks.
|
|
111
|
-
*/
|
|
112
|
-
function connectionSlugOf(connectionId, byRef) {
|
|
113
|
-
if (isRefToken(connectionId))
|
|
114
|
-
return resolveRef(connectionId, "connection", byRef)?.slug;
|
|
115
|
-
if (connectionId.startsWith("${") || connectionId.includes("_"))
|
|
116
|
-
return undefined;
|
|
117
|
-
return connectionId;
|
|
118
|
-
}
|
|
119
131
|
function resolveRef(value, kind, byRef) {
|
|
120
132
|
if (!isRefToken(value))
|
|
121
133
|
return undefined;
|
|
@@ -127,9 +139,8 @@ function resolveRef(value, kind, byRef) {
|
|
|
127
139
|
/** Carries no `warning:` prefix — the CLI's `printWarnings` prepends it. */
|
|
128
140
|
function outboundWarningMessage(pair, environment) {
|
|
129
141
|
return (`connection '${pair.connectionLabel}' is wired inbound to agent '${pair.agent.path}' but its ` +
|
|
130
|
-
`environment '${environment.path}' has no
|
|
131
|
-
`.allow(${pair.connectionLabel}) to its egress, or ignore this if that is deliberate
|
|
132
|
-
`(listener-only, or the hosts are covered by a hand-written rule).`);
|
|
142
|
+
`environment '${environment.path}' has no allow rule covering its provider's hosts — add ` +
|
|
143
|
+
`.allow(${pair.connectionLabel}) to its egress, or ignore this if that is deliberate (listener-only).`);
|
|
133
144
|
}
|
|
134
145
|
/**
|
|
135
146
|
* The remedy names the generated handle plus the catalog slug, because the `skills` prop takes an `ISkill`:
|