@treeseed/sdk 0.13.0-rc.11 → 0.13.0-rc.111
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 +23 -9
- package/dist/.treeseed-build-complete.json +1 -0
- package/dist/accounts/account-contracts.d.ts +6 -0
- package/dist/agent-capacity/artifact-mutation-receipt.d.ts +1 -1
- package/dist/agent-capacity/artifacts.d.ts +17 -1
- package/dist/agent-capacity/authority/agent-authority-presets.js +2 -1
- package/dist/agent-capacity/contracts/capacity/assignments/assignment-context-pack.d.ts +304 -0
- package/dist/agent-capacity/contracts/capacity/assignments/assignment-context-pack.js +44 -0
- package/dist/agent-capacity/contracts/capacity/assignments/assignment-records.d.ts +10 -1
- package/dist/agent-capacity/contracts/capacity/assignments/context-pack-compiler.d.ts +25 -0
- package/dist/agent-capacity/contracts/capacity/assignments/context-pack-compiler.js +67 -0
- package/dist/agent-capacity/contracts/capacity/communication/communication-records.d.ts +1 -1
- package/dist/agent-capacity/contracts/capacity/providers/supply-policy.d.ts +0 -2
- package/dist/agent-capacity/contracts/capacity/workdays/workday-records.d.ts +1 -1
- package/dist/agent-capacity/contracts/configuration/configuration.js +1 -1
- package/dist/agent-capacity/contracts/projects/agents/project-agent-class.d.ts +0 -1
- package/dist/agent-capacity/contracts/runtime/runtime-observability.d.ts +3 -3
- package/dist/agent-capacity/contracts/support/decision-work.d.ts +2 -3
- package/dist/agent-capacity/validation/activity-profile.js +25 -12
- package/dist/agent-capacity/validation/agent-definition-schema.d.ts +1092 -1170
- package/dist/agent-capacity/validation/agent-definition-schema.js +11 -29
- package/dist/agent-capacity/validation/agent-lab-forensics-schema.d.ts +20 -20
- package/dist/agent-capacity/validation/configuration.d.ts +1 -1
- package/dist/agent-capacity/validation/configuration.js +1 -2
- package/dist/capacity/agents/agent-capacity.d.ts +2 -0
- package/dist/capacity/agents/agent-capacity.js +2 -0
- package/dist/capacity-provider/capability-ontology.d.ts +1495 -0
- package/dist/capacity-provider/capability-ontology.js +221 -0
- package/dist/capacity-provider/client.d.ts +24 -0
- package/dist/capacity-provider/client.js +11 -1
- package/dist/capacity-provider/contracts/environment-profiles.d.ts +255 -0
- package/dist/capacity-provider/contracts/environment-profiles.js +71 -0
- package/dist/capacity-provider/contracts/governance.d.ts +103 -35
- package/dist/capacity-provider/contracts/index.d.ts +1 -0
- package/dist/capacity-provider/contracts/index.js +1 -0
- package/dist/capacity-provider/core-capability-catalog.d.ts +47 -0
- package/dist/capacity-provider/core-capability-catalog.js +49 -0
- package/dist/capacity-provider/environment-catalog.d.ts +877 -0
- package/dist/capacity-provider/environment-catalog.js +116 -0
- package/dist/capacity-provider/index.d.ts +5 -0
- package/dist/capacity-provider/index.js +5 -0
- package/dist/capacity-provider/install-configuration.d.ts +39 -0
- package/dist/capacity-provider/install-configuration.js +18 -0
- package/dist/capacity-provider/sandbox-contracts.d.ts +548 -0
- package/dist/capacity-provider/sandbox-contracts.js +86 -0
- package/dist/capacity-provider/sandbox.d.ts +1 -0
- package/dist/capacity-provider/sandbox.js +1 -0
- package/dist/capacity-provider/validation.d.ts +2 -2
- package/dist/capacity-provider/validation.js +91 -55
- package/dist/configuration/secrets-capability.d.ts +5 -1
- package/dist/configuration/secrets-capability.js +5 -1
- package/dist/content/validation/agent-operational-content-schemas.d.ts +490 -168
- package/dist/content/validation/agent-operational-content-schemas.js +18 -3
- package/dist/content/validation/auxiliary-content-schemas.d.ts +160 -160
- package/dist/content/validation/content-model-schemas.d.ts +2943 -2747
- package/dist/content/validation/portable-content-data.d.ts +296 -292
- package/dist/deployment/ai/storage.d.ts +158 -0
- package/dist/deployment/ai/storage.js +32 -0
- package/dist/deployment/ai-hosting.d.ts +297 -0
- package/dist/deployment/ai-hosting.js +63 -0
- package/dist/deployment/ai-instance.d.ts +65 -0
- package/dist/deployment/ai-instance.js +30 -0
- package/dist/deployment/ai-mode.d.ts +454 -0
- package/dist/deployment/ai-mode.js +67 -0
- package/dist/deployment/canonical.d.ts +2 -0
- package/dist/deployment/canonical.js +17 -0
- package/dist/deployment/catalog.d.ts +16 -0
- package/dist/deployment/catalog.js +48 -0
- package/dist/deployment/hosted-topology-template.d.ts +449 -0
- package/dist/deployment/hosted-topology-template.js +56 -0
- package/dist/deployment/hosted-topology.d.ts +2698 -0
- package/dist/deployment/hosted-topology.js +468 -0
- package/dist/deployment/index.d.ts +13 -0
- package/dist/deployment/index.js +13 -0
- package/dist/deployment/postgres/contracts.d.ts +418 -0
- package/dist/deployment/postgres/contracts.js +83 -0
- package/dist/deployment/postgres/requirements.d.ts +14 -0
- package/dist/deployment/postgres/requirements.js +30 -0
- package/dist/deployment/postgres/transfer.d.ts +97 -0
- package/dist/deployment/postgres/transfer.js +29 -0
- package/dist/deployment/schemas.d.ts +8625 -0
- package/dist/deployment/schemas.js +455 -0
- package/dist/deployment/topology.d.ts +9 -0
- package/dist/deployment/topology.js +35 -0
- package/dist/development/index.d.ts +1 -0
- package/dist/development/index.js +1 -0
- package/dist/development/schemas.d.ts +3578 -0
- package/dist/development/schemas.js +199 -0
- package/dist/development/session-migration.d.ts +3 -0
- package/dist/development/session-migration.js +25 -0
- package/dist/entrypoints/clients/control-plane-client.d.ts +9 -1
- package/dist/entrypoints/clients/control-plane-client.js +17 -5
- package/dist/graph/context-query-contracts.d.ts +16 -1
- package/dist/graph/context-query-contracts.js +5 -0
- package/dist/guarantees/evidence-trust.d.ts +32 -0
- package/dist/guarantees/evidence-trust.js +47 -0
- package/dist/guarantees/index.d.ts +130 -0
- package/dist/guarantees/index.js +44 -0
- package/dist/identity/browser-session.d.ts +233 -0
- package/dist/identity/browser-session.js +51 -0
- package/dist/identity/contracts.d.ts +191 -0
- package/dist/identity/contracts.js +72 -0
- package/dist/identity/index.d.ts +3 -0
- package/dist/identity/index.js +3 -0
- package/dist/identity/runtime.d.ts +186 -0
- package/dist/identity/runtime.js +49 -0
- package/dist/model-registry/agent-operational-models.js +1 -1
- package/dist/operator-contracts/canonical-command-tree.js +465 -16
- package/dist/operator-contracts/catalog/admin-account-team-operations.d.ts +36 -0
- package/dist/operator-contracts/catalog/admin-account-team-operations.js +52 -0
- package/dist/operator-contracts/catalog/capability-ontology-operations.d.ts +163 -0
- package/dist/operator-contracts/catalog/capability-ontology-operations.js +24 -0
- package/dist/operator-contracts/catalog/communication-operations.d.ts +437 -0
- package/dist/operator-contracts/catalog/communication-operations.js +92 -0
- package/dist/operator-contracts/catalog/control-plane-catalog.d.ts +6 -0
- package/dist/operator-contracts/catalog/control-plane-catalog.js +18 -0
- package/dist/operator-contracts/catalog/hosted-topology-operations.d.ts +399 -0
- package/dist/operator-contracts/catalog/hosted-topology-operations.js +79 -0
- package/dist/operator-contracts/catalog/inbox-operations.d.ts +261 -0
- package/dist/operator-contracts/catalog/inbox-operations.js +36 -0
- package/dist/operator-contracts/catalog/infrastructure/ai-instance-operations.d.ts +53 -0
- package/dist/operator-contracts/catalog/infrastructure/ai-instance-operations.js +23 -0
- package/dist/operator-contracts/catalog/infrastructure/command-tree-paths.d.ts +3 -0
- package/dist/operator-contracts/catalog/infrastructure/command-tree-paths.js +15 -0
- package/dist/operator-contracts/catalog/knowledge-share-operations.d.ts +127 -0
- package/dist/operator-contracts/catalog/knowledge-share-operations.js +25 -0
- package/dist/operator-contracts/catalog/provider-environment-commands.d.ts +4 -0
- package/dist/operator-contracts/catalog/provider-environment-commands.js +69 -0
- package/dist/operator-contracts/catalog/provider-environment-operations.d.ts +41 -0
- package/dist/operator-contracts/catalog/provider-environment-operations.js +61 -0
- package/dist/operator-contracts/catalog/services/identity-commands.d.ts +2 -0
- package/dist/operator-contracts/catalog/services/identity-commands.js +13 -0
- package/dist/operator-contracts/catalog/services/secret-commands.d.ts +2 -0
- package/dist/operator-contracts/catalog/services/secret-commands.js +31 -0
- package/dist/operator-contracts/catalog/services/secret-operations.d.ts +62 -0
- package/dist/operator-contracts/catalog/services/secret-operations.js +51 -0
- package/dist/operator-contracts/catalog/treeai-operations.d.ts +13 -0
- package/dist/operator-contracts/catalog/treeai-operations.js +61 -0
- package/dist/operator-contracts/command-tree.d.ts +28 -0
- package/dist/operator-contracts/command-tree.js +49 -0
- package/dist/operator-contracts/communication/addressing.d.ts +8 -0
- package/dist/operator-contracts/communication/addressing.js +57 -0
- package/dist/operator-contracts/communication/contracts.d.ts +1818 -0
- package/dist/operator-contracts/communication/contracts.js +188 -0
- package/dist/operator-contracts/control-plane-operation.d.ts +9 -0
- package/dist/operator-contracts/control-plane-operation.js +12 -2
- package/dist/operator-contracts/control-plane-operations.d.ts +2255 -195
- package/dist/operator-contracts/control-plane-operations.js +247 -85
- package/dist/operator-contracts/inbox/contracts.d.ts +1099 -0
- package/dist/operator-contracts/inbox/contracts.js +134 -0
- package/dist/operator-contracts/index.d.ts +6 -0
- package/dist/operator-contracts/index.js +6 -0
- package/dist/operator-contracts/knowledge/contracts.d.ts +130 -0
- package/dist/operator-contracts/knowledge/contracts.js +39 -0
- package/dist/operator-contracts/mcp.d.ts +5 -0
- package/dist/operator-contracts/mcp.js +61 -0
- package/dist/operator-contracts/oauth.d.ts +45 -0
- package/dist/operator-contracts/oauth.js +7 -0
- package/dist/operator-contracts/operation-builder.d.ts +18 -0
- package/dist/operator-contracts/operation-builder.js +78 -0
- package/dist/operator-contracts/seed/seed-bundle.d.ts +138 -0
- package/dist/operator-contracts/seed/seed-bundle.js +68 -0
- package/dist/platform/contracts.d.ts +429 -0
- package/dist/platform/contracts.js +93 -0
- package/dist/platform/index.d.ts +6 -0
- package/dist/platform/index.js +6 -0
- package/dist/platform/inventory.d.ts +11 -0
- package/dist/platform/inventory.js +53 -0
- package/dist/platform/project-create.d.ts +49 -0
- package/dist/platform/project-create.js +75 -0
- package/dist/platform/schemas.d.ts +986 -0
- package/dist/platform/schemas.js +73 -0
- package/dist/platform/verification.d.ts +9 -0
- package/dist/platform/verification.js +104 -0
- package/dist/platform/workset.d.ts +21 -0
- package/dist/platform/workset.js +106 -0
- package/dist/secrets-capability/github-actions-encryption.d.ts +2 -0
- package/dist/secrets-capability/github-actions-encryption.js +11 -0
- package/dist/secrets-capability/provider-operation-contracts.d.ts +15 -1
- package/dist/secrets-capability/secret-contracts.d.ts +33 -0
- package/dist/secrets-capability/secret-contracts.js +49 -0
- package/dist/secrets-capability/service-provider-contracts.d.ts +5 -3
- package/dist/secrets-capability/service-provider-contracts.js +66 -50
- package/dist/secrets-capability/shared-access.d.ts +51 -0
- package/dist/secrets-capability/shared-access.js +36 -0
- package/dist/secrets-capability/shared-resources.d.ts +376 -0
- package/dist/secrets-capability/shared-resources.js +91 -0
- package/dist/secrets-capability/vault-contracts.d.ts +132 -0
- package/dist/secrets-capability/vault-contracts.js +56 -0
- package/dist/security/encrypted-envelope.d.ts +177 -0
- package/dist/security/encrypted-envelope.js +34 -0
- package/dist/security/envelope-codec.d.ts +38 -0
- package/dist/security/envelope-codec.js +96 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.js +2 -0
- package/dist/site-contracts/catalog.d.ts +16 -0
- package/dist/site-contracts/catalog.js +19 -0
- package/dist/site-contracts/cloudflare.d.ts +48 -0
- package/dist/site-contracts/platform.d.ts +94 -0
- package/dist/site-contracts/plugin.d.ts +63 -0
- package/dist/site-contracts/plugin.js +26 -0
- package/dist/treeai/catalog.d.ts +1 -0
- package/dist/treeai/catalog.js +1 -0
- package/dist/treeai/client.d.ts +793 -0
- package/dist/treeai/client.js +44 -0
- package/dist/treeai/contract.d.ts +41 -0
- package/dist/treeai/contract.js +51 -0
- package/dist/treeai/generated/upstream.d.ts +770 -0
- package/dist/treeai/generated/upstream.js +4 -0
- package/dist/treeai/index.d.ts +4 -0
- package/dist/treeai/index.js +4 -0
- package/dist/treedx/client.d.ts +605 -0
- package/dist/treedx/client.js +39 -0
- package/dist/treedx/contract.d.ts +32 -0
- package/dist/treedx/contract.js +63 -0
- package/dist/treedx/index.d.ts +3 -0
- package/dist/treedx/index.js +2 -0
- package/dist/treedx/types.d.ts +8 -7
- package/dist/treedx/types.js +0 -7
- package/dist/types/agents/agent-activity-profile.d.ts +18 -36
- package/dist/types/agents/agent-trigger-kinds.d.ts +3 -5
- package/dist/types/agents/agent-trigger-kinds.js +1 -13
- package/package.json +64 -11
- package/dist/secrets-capability/service-vault-contracts.d.ts +0 -61
- package/dist/secrets-capability/service-vault-contracts.js +0 -39
- package/dist/treedx/accounts/auth.d.ts +0 -17
- package/dist/treedx/accounts/auth.js +0 -48
- package/dist/treedx/client/accounts/contracts/auth-mode.d.ts +0 -3
- package/dist/treedx/client/accounts/contracts/auth-mode.js +0 -6
- package/dist/treedx/client/build/creation/build-context.d.ts +0 -3
- package/dist/treedx/client/build/creation/build-context.js +0 -7
- package/dist/treedx/client/build/creation/build-snapshot.d.ts +0 -3
- package/dist/treedx/client/build/creation/build-snapshot.js +0 -8
- package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.d.ts +0 -3
- package/dist/treedx/client/capacity/allocations/contracts/put-capability-grant.js +0 -7
- package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.d.ts +0 -6
- package/dist/treedx/client/capacity/allocations/queries/list-capability-grants.js +0 -10
- package/dist/treedx/client/methods.d.ts +0 -102
- package/dist/treedx/client/methods.js +0 -209
- package/dist/treedx/client/persistence/contracts/restore-storage.d.ts +0 -3
- package/dist/treedx/client/persistence/contracts/restore-storage.js +0 -6
- package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.d.ts +0 -3
- package/dist/treedx/client/persistence/lifecycle/verify-storage-restore.js +0 -6
- package/dist/treedx/client/repositories/creation/register-repository.d.ts +0 -3
- package/dist/treedx/client/repositories/creation/register-repository.js +0 -7
- package/dist/treedx/client/repositories/queries/get-repository.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/get-repository.js +0 -7
- package/dist/treedx/client/repositories/queries/list-repository-paths.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/list-repository-paths.js +0 -7
- package/dist/treedx/client/repositories/queries/list-repository-refs.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/list-repository-refs.js +0 -12
- package/dist/treedx/client/repositories/queries/query-repository.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/query-repository.js +0 -7
- package/dist/treedx/client/repositories/queries/read-repository-file.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/read-repository-file.js +0 -6
- package/dist/treedx/client/repositories/queries/read-repository-files.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/read-repository-files.js +0 -7
- package/dist/treedx/client/repositories/queries/search-repository-files.d.ts +0 -3
- package/dist/treedx/client/repositories/queries/search-repository-files.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/artifacts/contracts/download-artifact.js +0 -9
- package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/authorization/contracts/whoami.js +0 -6
- package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/graph/contracts/parse-context-dsl.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.d.ts +0 -5
- package/dist/treedx/client/support/contracts/treedx/health/contracts/deep-health.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/health/contracts/health.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/health/contracts/health.js +0 -6
- package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/health/contracts/metrics.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/health/contracts/prometheus-metrics.js +0 -19
- package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/health/contracts/ready.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/health/contracts/status.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/health/contracts/status.js +0 -6
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/commit.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/diff.js +0 -6
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/fetch-remote.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.d.ts +0 -6
- package/dist/treedx/client/support/contracts/treedx/repositories/contracts/push.js +0 -23
- package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/search/contracts/compact-search-index.js +0 -8
- package/dist/treedx/client/support/contracts/treedx/search/contracts/search.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/search/contracts/search.js +0 -7
- package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/storage/contracts/backup-storage.js +0 -8
- package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/storage/contracts/compact-storage.js +0 -8
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/assert-binary-ok.js +0 -15
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/fetch-with-timeout.js +0 -38
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/headers.js +0 -15
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/parse-json-response.js +0 -15
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/query.js +0 -14
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/repo-id.js +0 -14
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.d.ts +0 -6
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/request.js +0 -41
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.d.ts +0 -2
- package/dist/treedx/client/support/contracts/treedx/transport/contracts/throw-api-error.js +0 -14
- package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.d.ts +0 -3
- package/dist/treedx/client/support/contracts/treedx/workspaces/contracts/exec.js +0 -7
- package/dist/treedx/client/support/creation/apply-changeset.d.ts +0 -3
- package/dist/treedx/client/support/creation/apply-changeset.js +0 -10
- package/dist/treedx/client/support/creation/apply-storage-migration.d.ts +0 -3
- package/dist/treedx/client/support/creation/apply-storage-migration.js +0 -7
- package/dist/treedx/client/support/creation/create-migration.d.ts +0 -6
- package/dist/treedx/client/support/creation/create-migration.js +0 -7
- package/dist/treedx/client/support/creation/export-artifact.d.ts +0 -3
- package/dist/treedx/client/support/creation/export-artifact.js +0 -8
- package/dist/treedx/client/support/creation/plan-storage-migration.d.ts +0 -3
- package/dist/treedx/client/support/creation/plan-storage-migration.js +0 -7
- package/dist/treedx/client/support/creation/request-binary.d.ts +0 -6
- package/dist/treedx/client/support/creation/request-binary.js +0 -42
- package/dist/treedx/client/support/creation/write-file.d.ts +0 -3
- package/dist/treedx/client/support/creation/write-file.js +0 -10
- package/dist/treedx/client/support/creation/write-files.d.ts +0 -3
- package/dist/treedx/client/support/creation/write-files.js +0 -12
- package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/artifacts/queries/get-artifact.js +0 -7
- package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/artifacts/queries/list-artifacts.js +0 -7
- package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/authorization/queries/effective-scope.js +0 -9
- package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.d.ts +0 -4
- package/dist/treedx/client/support/queries/treedx/authorization/queries/list-capabilities.js +0 -6
- package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/federation/queries/get-placement.js +0 -7
- package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/graph/queries/get-node.js +0 -7
- package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/graph/queries/get-related.js +0 -7
- package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/graph/queries/list-nodes.js +0 -7
- package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/repositories/queries/list-tree.js +0 -10
- package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/repositories/queries/read-file.js +0 -9
- package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/search/queries/get-search-index-status.js +0 -7
- package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.d.ts +0 -6
- package/dist/treedx/client/support/queries/treedx/storage/queries/get-migration.js +0 -7
- package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.d.ts +0 -6
- package/dist/treedx/client/support/queries/treedx/storage/queries/get-snapshot.js +0 -7
- package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.d.ts +0 -6
- package/dist/treedx/client/support/queries/treedx/storage/queries/list-storage-migrations.js +0 -6
- package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.d.ts +0 -15
- package/dist/treedx/client/support/queries/treedx/transport/queries/list-audit-events.js +0 -6
- package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.d.ts +0 -3
- package/dist/treedx/client/support/queries/treedx/transport/queries/list-repositories.js +0 -7
- package/dist/treedx/client/support/retirement/cleanup-artifacts.d.ts +0 -3
- package/dist/treedx/client/support/retirement/cleanup-artifacts.js +0 -7
- package/dist/treedx/client/support/retirement/delete-artifact.d.ts +0 -3
- package/dist/treedx/client/support/retirement/delete-artifact.js +0 -7
- package/dist/treedx/client/support/retirement/delete-file.d.ts +0 -3
- package/dist/treedx/client/support/retirement/delete-file.js +0 -10
- package/dist/treedx/client/support/retirement/rollback-storage-migration.d.ts +0 -3
- package/dist/treedx/client/support/retirement/rollback-storage-migration.js +0 -7
- package/dist/treedx/client/support/updates/patch-file.d.ts +0 -3
- package/dist/treedx/client/support/updates/patch-file.js +0 -10
- package/dist/treedx/client/support/updates/refresh-search-index.d.ts +0 -3
- package/dist/treedx/client/support/updates/refresh-search-index.js +0 -8
- package/dist/treedx/client/treedx/blobs/contracts/download-blob.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/contracts/download-blob.js +0 -6
- package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/create-blob-upload.js +0 -8
- package/dist/treedx/client/treedx/blobs/creation/request-blob-download.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/request-blob-download.js +0 -27
- package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/request-blob-upload.js +0 -41
- package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/upload-blob-part.js +0 -27
- package/dist/treedx/client/treedx/blobs/creation/upload-blob.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/upload-blob.js +0 -6
- package/dist/treedx/client/treedx/blobs/creation/write-blob.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/creation/write-blob.js +0 -8
- package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/lifecycle/complete-blob-upload.js +0 -8
- package/dist/treedx/client/treedx/blobs/queries/read-blob.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/queries/read-blob.js +0 -10
- package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/retirement/abort-blob-upload.js +0 -7
- package/dist/treedx/client/treedx/blobs/retirement/delete-blob.d.ts +0 -3
- package/dist/treedx/client/treedx/blobs/retirement/delete-blob.js +0 -8
- package/dist/treedx/client/treedx/federation/contracts/federated-query.d.ts +0 -3
- package/dist/treedx/client/treedx/federation/contracts/federated-query.js +0 -7
- package/dist/treedx/client/treedx/federation/creation/plan-federated-query.d.ts +0 -3
- package/dist/treedx/client/treedx/federation/creation/plan-federated-query.js +0 -6
- package/dist/treedx/client/treedx/federation/queries/check-mirror-health.d.ts +0 -3
- package/dist/treedx/client/treedx/federation/queries/check-mirror-health.js +0 -7
- package/dist/treedx/client/treedx/federation/updates/promote-mirror.d.ts +0 -3
- package/dist/treedx/client/treedx/federation/updates/promote-mirror.js +0 -7
- package/dist/treedx/client/treedx/federation/updates/sync-mirror.d.ts +0 -3
- package/dist/treedx/client/treedx/federation/updates/sync-mirror.js +0 -7
- package/dist/treedx/client/treedx/graph/contracts/federated-context.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/contracts/federated-context.js +0 -7
- package/dist/treedx/client/treedx/graph/contracts/federated-graph.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/contracts/federated-graph.js +0 -7
- package/dist/treedx/client/treedx/graph/contracts/graph-search.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/contracts/graph-search.js +0 -8
- package/dist/treedx/client/treedx/graph/queries/get-graph-node.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/get-graph-node.js +0 -10
- package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/get-graph-refresh-job.js +0 -7
- package/dist/treedx/client/treedx/graph/queries/get-subgraph.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/get-subgraph.js +0 -7
- package/dist/treedx/client/treedx/graph/queries/query-graph.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/query-graph.js +0 -7
- package/dist/treedx/client/treedx/graph/queries/search-graph-entities.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/search-graph-entities.js +0 -6
- package/dist/treedx/client/treedx/graph/queries/search-graph-files.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/search-graph-files.js +0 -6
- package/dist/treedx/client/treedx/graph/queries/search-graph-sections.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/queries/search-graph-sections.js +0 -6
- package/dist/treedx/client/treedx/graph/updates/refresh-graph.d.ts +0 -3
- package/dist/treedx/client/treedx/graph/updates/refresh-graph.js +0 -7
- package/dist/treedx/client/treedx/search/contracts/federated-search.d.ts +0 -3
- package/dist/treedx/client/treedx/search/contracts/federated-search.js +0 -7
- package/dist/treedx/client/treedx/workspaces/creation/create-workspace.d.ts +0 -3
- package/dist/treedx/client/treedx/workspaces/creation/create-workspace.js +0 -7
- package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.d.ts +0 -3
- package/dist/treedx/client/treedx/workspaces/retirement/abandon-workspace.js +0 -12
- package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.d.ts +0 -2
- package/dist/treedx/client/treedx/workspaces/retirement/close-workspace.js +0 -6
- package/dist/treedx/generated/openapi-types.d.ts +0 -3662
- package/dist/treedx/support/client.d.ts +0 -251
- package/dist/treedx/support/client.js +0 -252
- package/dist/treedx/support/errors.d.ts +0 -13
- package/dist/treedx/support/errors.js +0 -17
- package/dist/treedx/types/tree-dx-actor.d.ts +0 -209
- package/dist/treedx/types/tree-dx-actor.js +0 -8
- package/dist/treedx/types/tree-dx-artifact-list-response.d.ts +0 -13
- package/dist/treedx/types/tree-dx-changeset.d.ts +0 -51
- package/dist/treedx/types/tree-dx-changeset.js +0 -6
- package/dist/treedx/types/tree-dx-context-request.d.ts +0 -245
- package/dist/treedx/types/tree-dx-context-request.js +0 -0
- package/dist/treedx/types/tree-dx-exec-result.d.ts +0 -249
- package/dist/treedx/types/tree-dx-exec-result.js +0 -0
- package/dist/treedx/types/tree-dx-list-tree-request.d.ts +0 -222
- package/dist/treedx/types/tree-dx-list-tree-request.js +0 -0
- package/dist/treedx/types/tree-dx-push-request.d.ts +0 -229
- package/dist/treedx/types/tree-dx-push-request.js +0 -0
- /package/dist/{treedx/generated/openapi-types.js → site-contracts/cloudflare.js} +0 -0
- /package/dist/{treedx/types/tree-dx-artifact-list-response.js → site-contracts/platform.js} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const PROVIDER_ENVIRONMENT_OPERATIONS: {
|
|
2
|
+
readonly registrationCode: {
|
|
3
|
+
readonly status: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
4
|
+
teamId: string;
|
|
5
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
6
|
+
readonly reveal: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
7
|
+
teamId: string;
|
|
8
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
9
|
+
readonly rotate: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
10
|
+
teamId: string;
|
|
11
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
readonly environmentProfiles: {
|
|
14
|
+
readonly list: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
15
|
+
teamId: string;
|
|
16
|
+
providerId: string;
|
|
17
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
18
|
+
readonly show: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
19
|
+
teamId: string;
|
|
20
|
+
providerId: string;
|
|
21
|
+
profileId: string;
|
|
22
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
23
|
+
readonly publish: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
24
|
+
profileId: string;
|
|
25
|
+
}, {}, Record<string, unknown>, Record<string, unknown>>;
|
|
26
|
+
};
|
|
27
|
+
readonly environmentGrants: {
|
|
28
|
+
readonly show: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
29
|
+
teamId: string;
|
|
30
|
+
assignmentId: string;
|
|
31
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
32
|
+
readonly put: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
33
|
+
teamId: string;
|
|
34
|
+
assignmentId: string;
|
|
35
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
36
|
+
readonly revoke: import("../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
37
|
+
teamId: string;
|
|
38
|
+
assignmentId: string;
|
|
39
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineOperation } from "../operation-builder.js";
|
|
3
|
+
const empty = z.object({}).strict();
|
|
4
|
+
const none = z.undefined();
|
|
5
|
+
const record = z.record(z.unknown());
|
|
6
|
+
function teamOperation(operationId, method, path, pathShape, options = {}) {
|
|
7
|
+
const kind = method === "GET" ? "read" : "mutation";
|
|
8
|
+
const riskClass = options.risk ?? "ordinary";
|
|
9
|
+
return defineOperation({
|
|
10
|
+
operationId,
|
|
11
|
+
description: `${kind === "read" ? "Read" : "Apply"} ${operationId}.`,
|
|
12
|
+
rest: { method, path },
|
|
13
|
+
parameters: `treeseed.${operationId}.parameters/v1`,
|
|
14
|
+
capability: options.capability ?? (kind === "read" ? "providers.read" : "providers.write"),
|
|
15
|
+
authentication: "oauth",
|
|
16
|
+
oauthScopes: kind === "read" ? ["treeseed:read"] : ["treeseed:admin"],
|
|
17
|
+
kind,
|
|
18
|
+
riskClass,
|
|
19
|
+
confirmation: riskClass === "ordinary" ? "never" : "input_required",
|
|
20
|
+
surfaces: ["rest", "cli"],
|
|
21
|
+
cacheScope: kind === "read" ? "principal" : "none",
|
|
22
|
+
pagination: options.pagination ?? "none",
|
|
23
|
+
concurrencyRequired: options.concurrency ?? ["DELETE", "PUT"].includes(method),
|
|
24
|
+
redactedPaths: options.redactedPaths
|
|
25
|
+
}, { path: z.object(pathShape).strict(), query: kind === "read" ? record : empty, body: kind === "read" ? none : record, output: record });
|
|
26
|
+
}
|
|
27
|
+
const providerPublish = defineOperation({
|
|
28
|
+
operationId: "providers.environment.profiles.publish",
|
|
29
|
+
description: "Publish a value-free provider environment profile descriptor.",
|
|
30
|
+
rest: { method: "PUT", path: "/v1/provider/environment-profiles/{profileId}" },
|
|
31
|
+
parameters: "treeseed.providers.environment.profiles.publish.parameters/v1",
|
|
32
|
+
capability: "providers.execute",
|
|
33
|
+
authentication: "provider",
|
|
34
|
+
oauthScopes: [],
|
|
35
|
+
kind: "mutation",
|
|
36
|
+
riskClass: "ordinary",
|
|
37
|
+
confirmation: "never",
|
|
38
|
+
surfaces: ["rest"],
|
|
39
|
+
cacheScope: "none",
|
|
40
|
+
pagination: "none"
|
|
41
|
+
}, { path: z.object({ profileId: z.string().min(1) }).strict(), query: empty, body: record, output: record });
|
|
42
|
+
const PROVIDER_ENVIRONMENT_OPERATIONS = {
|
|
43
|
+
registrationCode: {
|
|
44
|
+
status: teamOperation("providers.registration.code.status", "GET", "/v1/teams/{teamId}/capacity-provider-registration-code", { teamId: z.string().min(1) }),
|
|
45
|
+
reveal: teamOperation("providers.registration.code.reveal", "POST", "/v1/teams/{teamId}/capacity-provider-registration-code/reveal", { teamId: z.string().min(1) }, { risk: "credential", redactedPaths: ["output.registrationCode"] }),
|
|
46
|
+
rotate: teamOperation("providers.registration.code.rotate", "POST", "/v1/teams/{teamId}/capacity-provider-registration-code/rotate", { teamId: z.string().min(1) }, { risk: "credential", redactedPaths: ["output.registrationCode"], concurrency: true })
|
|
47
|
+
},
|
|
48
|
+
environmentProfiles: {
|
|
49
|
+
list: teamOperation("providers.environment.profiles.list", "GET", "/v1/teams/{teamId}/capacity-providers/{providerId}/environment-profiles", { teamId: z.string().min(1), providerId: z.string().min(1) }, { pagination: "cursor" }),
|
|
50
|
+
show: teamOperation("providers.environment.profiles.show", "GET", "/v1/teams/{teamId}/capacity-providers/{providerId}/environment-profiles/{profileId}", { teamId: z.string().min(1), providerId: z.string().min(1), profileId: z.string().min(1) }),
|
|
51
|
+
publish: providerPublish
|
|
52
|
+
},
|
|
53
|
+
environmentGrants: {
|
|
54
|
+
show: teamOperation("providers.environment.grants.show", "GET", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }),
|
|
55
|
+
put: teamOperation("providers.environment.grants.put", "PUT", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }, { risk: "authority" }),
|
|
56
|
+
revoke: teamOperation("providers.environment.grants.revoke", "DELETE", "/v1/teams/{teamId}/assignments/{assignmentId}/environment-grant", { teamId: z.string().min(1), assignmentId: z.string().min(1) }, { risk: "destructive" })
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
PROVIDER_ENVIRONMENT_OPERATIONS
|
|
61
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function identityLoginCommand(value) {
|
|
2
|
+
if (value.nodeType !== "leaf") throw new Error("Authentication login must be a leaf command.");
|
|
3
|
+
return { ...value, options: [
|
|
4
|
+
...value.options ?? [],
|
|
5
|
+
{ name: "--timeout", description: "Maximum seconds to wait for identity authorization.", type: "number" },
|
|
6
|
+
{ name: "--device", description: "Use headless device authorization instead of local browser PKCE.", type: "boolean" },
|
|
7
|
+
{ name: "--issuer", description: "Choose an authorization server advertised by the selected API.", type: "string" },
|
|
8
|
+
{ name: "--scope", description: "Comma-separated additional API scopes to request explicitly, such as treeseed:admin. Does not grant application permissions.", type: "string" }
|
|
9
|
+
] };
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
identityLoginCommand
|
|
13
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const managedSecretCommands = {
|
|
2
|
+
nodeType: "branch",
|
|
3
|
+
segment: "services",
|
|
4
|
+
description: "Team service credentials.",
|
|
5
|
+
children: [{
|
|
6
|
+
nodeType: "branch",
|
|
7
|
+
segment: "credentials",
|
|
8
|
+
description: "Manage credentials in core OpenBao.",
|
|
9
|
+
children: ["show", "put", "delete", "validate"].map((name) => ({
|
|
10
|
+
nodeType: "leaf",
|
|
11
|
+
segment: name,
|
|
12
|
+
description: `${name} an exact service credential profile.`,
|
|
13
|
+
kind: name === "show" ? "read" : "mutation",
|
|
14
|
+
arguments: [{ name: "connection", description: "Service connection ID.", required: true }, { name: "profile", description: "Credential profile ID.", required: true }],
|
|
15
|
+
options: [
|
|
16
|
+
{ name: "--team", description: "Authorized team ID.", type: "string" },
|
|
17
|
+
...name === "show" ? [] : [
|
|
18
|
+
{ name: "--plan", description: "Inspect the proposed operation without mutation or secret input.", type: "boolean" },
|
|
19
|
+
{ name: "--expected-version", description: "Exact current credential version; zero for first creation.", type: "number", required: true }
|
|
20
|
+
],
|
|
21
|
+
...name === "put" ? [{ name: "--stdin", description: "Read the credential field object as JSON from standard input.", type: "boolean" }] : []
|
|
22
|
+
],
|
|
23
|
+
authorization: { capability: name === "show" ? "secrets.read" : "secrets.write", confirmation: "never" },
|
|
24
|
+
resultSchemaId: `treeseed.services.credentials.${name}/v1`,
|
|
25
|
+
execution: { kind: "local", handlerId: `local.services.credentials.${name}` }
|
|
26
|
+
}))
|
|
27
|
+
}]
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
managedSecretCommands
|
|
31
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export declare const SECRET_OPERATIONS: {
|
|
2
|
+
readonly credentialStatus: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
3
|
+
teamId: string;
|
|
4
|
+
profileId: string;
|
|
5
|
+
connectionId: string;
|
|
6
|
+
}, {}, {
|
|
7
|
+
expectedVersion: number;
|
|
8
|
+
} | undefined, {
|
|
9
|
+
version: number;
|
|
10
|
+
teamId: string;
|
|
11
|
+
profileId: string;
|
|
12
|
+
connectionId: string;
|
|
13
|
+
configured: boolean;
|
|
14
|
+
custody: "openbao";
|
|
15
|
+
fields: string[];
|
|
16
|
+
}>;
|
|
17
|
+
readonly putCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
18
|
+
teamId: string;
|
|
19
|
+
profileId: string;
|
|
20
|
+
connectionId: string;
|
|
21
|
+
}, {}, {
|
|
22
|
+
expectedVersion: number;
|
|
23
|
+
} | undefined, {
|
|
24
|
+
version: number;
|
|
25
|
+
teamId: string;
|
|
26
|
+
profileId: string;
|
|
27
|
+
connectionId: string;
|
|
28
|
+
configured: boolean;
|
|
29
|
+
custody: "openbao";
|
|
30
|
+
fields: string[];
|
|
31
|
+
}>;
|
|
32
|
+
readonly deleteCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
33
|
+
teamId: string;
|
|
34
|
+
profileId: string;
|
|
35
|
+
connectionId: string;
|
|
36
|
+
}, {}, {
|
|
37
|
+
expectedVersion: number;
|
|
38
|
+
} | undefined, {
|
|
39
|
+
version: number;
|
|
40
|
+
teamId: string;
|
|
41
|
+
profileId: string;
|
|
42
|
+
connectionId: string;
|
|
43
|
+
configured: boolean;
|
|
44
|
+
custody: "openbao";
|
|
45
|
+
fields: string[];
|
|
46
|
+
}>;
|
|
47
|
+
readonly validateCredentials: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
|
|
48
|
+
teamId: string;
|
|
49
|
+
profileId: string;
|
|
50
|
+
connectionId: string;
|
|
51
|
+
}, {}, {
|
|
52
|
+
expectedVersion: number;
|
|
53
|
+
} | undefined, {
|
|
54
|
+
version: number;
|
|
55
|
+
teamId: string;
|
|
56
|
+
profileId: string;
|
|
57
|
+
connectionId: string;
|
|
58
|
+
configured: boolean;
|
|
59
|
+
custody: "openbao";
|
|
60
|
+
fields: string[];
|
|
61
|
+
}>;
|
|
62
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineOperation } from "../../operation-builder.js";
|
|
3
|
+
const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u);
|
|
4
|
+
const path = z.object({ teamId: id, connectionId: id, profileId: id }).strict();
|
|
5
|
+
const version = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER - 1);
|
|
6
|
+
const descriptor = z.object({
|
|
7
|
+
teamId: id,
|
|
8
|
+
connectionId: id,
|
|
9
|
+
profileId: id,
|
|
10
|
+
custody: z.literal("openbao"),
|
|
11
|
+
version,
|
|
12
|
+
configured: z.boolean(),
|
|
13
|
+
fields: z.array(id)
|
|
14
|
+
}).strict();
|
|
15
|
+
const put = z.object({
|
|
16
|
+
expectedVersion: version,
|
|
17
|
+
values: z.record(z.string().max(1024 * 1024)).refine((v) => Object.keys(v).length > 0 && Object.keys(v).length <= 128)
|
|
18
|
+
}).strict();
|
|
19
|
+
function operation(name, method) {
|
|
20
|
+
const read = method === "GET";
|
|
21
|
+
return defineOperation({
|
|
22
|
+
operationId: `services.credentials.${name}`,
|
|
23
|
+
description: `${name} managed service credentials.`,
|
|
24
|
+
rest: { method, path: `/v1/teams/{teamId}/services/{connectionId}/credentials/{profileId}${name === "validate" ? "/validate" : ""}` },
|
|
25
|
+
parameters: `treeseed.services.credentials.${name}.parameters/v1`,
|
|
26
|
+
capability: read ? "secrets.read" : "secrets.write",
|
|
27
|
+
authentication: "oauth",
|
|
28
|
+
oauthScopes: read ? ["treeseed:read"] : ["treeseed:projects:write"],
|
|
29
|
+
kind: read ? "read" : "mutation",
|
|
30
|
+
riskClass: read ? "ordinary" : "credential",
|
|
31
|
+
confirmation: "never",
|
|
32
|
+
surfaces: ["rest"],
|
|
33
|
+
cacheScope: "none",
|
|
34
|
+
pagination: "none",
|
|
35
|
+
redactedPaths: ["body.values"]
|
|
36
|
+
}, {
|
|
37
|
+
path,
|
|
38
|
+
query: z.object({}).strict(),
|
|
39
|
+
body: read ? z.undefined() : name === "put" ? put : z.object({ expectedVersion: version }).strict(),
|
|
40
|
+
output: name === "validate" ? z.object({ ok: z.boolean() }).strict() : descriptor
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const SECRET_OPERATIONS = {
|
|
44
|
+
credentialStatus: operation("show", "GET"),
|
|
45
|
+
putCredentials: operation("put", "PUT"),
|
|
46
|
+
deleteCredentials: operation("delete", "DELETE"),
|
|
47
|
+
validateCredentials: operation("validate", "POST")
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
SECRET_OPERATIONS
|
|
51
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ControlPlaneOperationBinding } from '../control-plane-operation.js';
|
|
2
|
+
export declare const TREEAI_OPENAPI_DIGESTS: {
|
|
3
|
+
readonly inference: "sha256:29255fae4e74aa0fb96d8abd1cdc5d869f469fc9bb55a68060eeae6d86f4273d";
|
|
4
|
+
readonly training: "sha256:de80f39ca9d0d5a2a7ca6ce588326d3a562c771bc7e077b7e6c4949134ef2143";
|
|
5
|
+
readonly lab: "sha256:8f9a3ca31a63143506e1b28ddb78eda50b2f6760278531b723047d968f56aa07";
|
|
6
|
+
};
|
|
7
|
+
export declare const TREEAI_CONTROL_PLANE_OPERATION_LIST: readonly ControlPlaneOperationBinding<{
|
|
8
|
+
nodeId: string;
|
|
9
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>[];
|
|
10
|
+
export declare const TREEAI_CONTROL_PLANE_OPERATIONS: Readonly<Record<string, ControlPlaneOperationBinding<any, any, any, any>>>;
|
|
11
|
+
export declare function treeAiControlPlaneOperation(upstreamOperationId: string): ControlPlaneOperationBinding<{
|
|
12
|
+
nodeId: string;
|
|
13
|
+
}, {}, Record<string, unknown> | undefined, Record<string, unknown>>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineOperation } from "../operation-builder.js";
|
|
3
|
+
import { TREEAI_UPSTREAM_OPERATIONS } from "../../treeai/generated/upstream.js";
|
|
4
|
+
const TREEAI_OPENAPI_DIGESTS = {
|
|
5
|
+
inference: "sha256:29255fae4e74aa0fb96d8abd1cdc5d869f469fc9bb55a68060eeae6d86f4273d",
|
|
6
|
+
training: "sha256:de80f39ca9d0d5a2a7ca6ce588326d3a562c771bc7e077b7e6c4949134ef2143",
|
|
7
|
+
lab: "sha256:8f9a3ca31a63143506e1b28ddb78eda50b2f6760278531b723047d968f56aa07"
|
|
8
|
+
};
|
|
9
|
+
function treeSeedOperationId(operation) {
|
|
10
|
+
return `treeai.${operation.operationId.toLowerCase().replace(/[^a-z0-9]+/gu, ".").replace(/^\.|\.$/gu, "")}`;
|
|
11
|
+
}
|
|
12
|
+
function risk(operation) {
|
|
13
|
+
if (/rollback|cancel|disable/u.test(operation.operationId)) return "destructive";
|
|
14
|
+
if (operation.kind === "mutation" && (/promot|enable|activate|campaigns/u.test(operation.operationId) || /(?:^|\.)mode(?:\.|$)/u.test(operation.operationId))) return "authority";
|
|
15
|
+
return "ordinary";
|
|
16
|
+
}
|
|
17
|
+
function pathShape(path) {
|
|
18
|
+
return Object.fromEntries([...path.matchAll(/\{([^}]+)\}/gu)].map((match) => [match[1], z.string().min(1)]));
|
|
19
|
+
}
|
|
20
|
+
function binding(operation) {
|
|
21
|
+
const method = operation.method;
|
|
22
|
+
const kind = operation.kind;
|
|
23
|
+
const riskClass = risk(operation);
|
|
24
|
+
const path = `/v1/ai/nodes/{nodeId}/${operation.service}${operation.path}`;
|
|
25
|
+
return defineOperation({
|
|
26
|
+
operationId: treeSeedOperationId(operation),
|
|
27
|
+
description: `${operation.summary} through a node-scoped TreeAI proxy.`,
|
|
28
|
+
rest: { method, path },
|
|
29
|
+
parameters: `treeseed.${treeSeedOperationId(operation)}.parameters/v1`,
|
|
30
|
+
capability: `treeai.${operation.service}.${kind}`,
|
|
31
|
+
authentication: "oauth_or_provider",
|
|
32
|
+
oauthScopes: kind === "read" ? ["treeseed:read"] : ["treeseed:execution"],
|
|
33
|
+
kind,
|
|
34
|
+
riskClass,
|
|
35
|
+
confirmation: riskClass === "ordinary" ? "never" : "input_required",
|
|
36
|
+
idempotencyRequired: kind === "mutation",
|
|
37
|
+
surfaces: ["rest", "cli"],
|
|
38
|
+
cacheScope: kind === "read" ? "principal" : "none",
|
|
39
|
+
pagination: "none",
|
|
40
|
+
redactedPaths: ["headers.authorization"],
|
|
41
|
+
upstream: { service: "treeai", operationId: operation.operationId, contractVersion: "3.1.1", contractDigest: TREEAI_OPENAPI_DIGESTS[operation.service] }
|
|
42
|
+
}, {
|
|
43
|
+
path: z.object({ nodeId: z.string().min(1), ...pathShape(operation.path) }).strict(),
|
|
44
|
+
query: kind === "read" ? z.record(z.unknown()) : z.object({}).strict(),
|
|
45
|
+
body: kind === "read" ? z.undefined() : z.record(z.unknown()),
|
|
46
|
+
output: z.record(z.unknown())
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const TREEAI_CONTROL_PLANE_OPERATION_LIST = Object.freeze(TREEAI_UPSTREAM_OPERATIONS.map(binding));
|
|
50
|
+
const TREEAI_CONTROL_PLANE_OPERATIONS = Object.freeze(Object.fromEntries(TREEAI_CONTROL_PLANE_OPERATION_LIST.map((item) => [item.descriptor.operationId, item])));
|
|
51
|
+
function treeAiControlPlaneOperation(upstreamOperationId) {
|
|
52
|
+
const operation = TREEAI_CONTROL_PLANE_OPERATION_LIST.find((item) => item.descriptor.upstream?.operationId === upstreamOperationId);
|
|
53
|
+
if (!operation) throw new Error(`Unknown TreeAI operation ${upstreamOperationId}.`);
|
|
54
|
+
return operation;
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
TREEAI_CONTROL_PLANE_OPERATIONS,
|
|
58
|
+
TREEAI_CONTROL_PLANE_OPERATION_LIST,
|
|
59
|
+
TREEAI_OPENAPI_DIGESTS,
|
|
60
|
+
treeAiControlPlaneOperation
|
|
61
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ControlPlaneOperationBinding } from './control-plane-operation.js';
|
|
1
2
|
export type CommandOperationKind = 'read' | 'mutation';
|
|
2
3
|
export type CommandExecutionMode = 'execute' | 'plan';
|
|
3
4
|
export type CommandErrorCategory = 'unknown_command' | 'invalid_input' | 'ambiguous_context' | 'authentication_required' | 'authorization_denied' | 'confirmation_required' | 'policy_blocked' | 'stale_preflight' | 'conflict' | 'not_found' | 'provider_unavailable' | 'rate_limited' | 'internal_error';
|
|
@@ -19,6 +20,31 @@ export interface CommandAuthorizationDescriptor {
|
|
|
19
20
|
capability: string;
|
|
20
21
|
confirmation: 'never' | 'destructive' | 'credential' | 'authority' | 'production' | 'irreversible';
|
|
21
22
|
}
|
|
23
|
+
export type CommandInputSource = 'argument' | 'context' | 'option';
|
|
24
|
+
export type CommandInputTarget = 'path' | 'query' | 'body';
|
|
25
|
+
export interface CommandInputBinding {
|
|
26
|
+
field: string;
|
|
27
|
+
source: CommandInputSource;
|
|
28
|
+
name: string;
|
|
29
|
+
target: CommandInputTarget;
|
|
30
|
+
required?: boolean;
|
|
31
|
+
transform?: 'identity' | 'integer' | 'csv';
|
|
32
|
+
}
|
|
33
|
+
export type CommandExecutionBinding = {
|
|
34
|
+
kind: 'operation';
|
|
35
|
+
operationId: `${string}.${string}`;
|
|
36
|
+
input: CommandInputBinding[];
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'protocol';
|
|
39
|
+
handlerId: `protocol.${string}`;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'local';
|
|
42
|
+
handlerId: `local.${string}`;
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'unavailable';
|
|
45
|
+
code: string;
|
|
46
|
+
reason: string;
|
|
47
|
+
};
|
|
22
48
|
export interface CommandLeafDescriptor {
|
|
23
49
|
segment: string;
|
|
24
50
|
description: string;
|
|
@@ -27,6 +53,7 @@ export interface CommandLeafDescriptor {
|
|
|
27
53
|
options?: CommandOptionDescriptor[];
|
|
28
54
|
authorization?: CommandAuthorizationDescriptor;
|
|
29
55
|
resultSchemaId: string;
|
|
56
|
+
execution: CommandExecutionBinding;
|
|
30
57
|
}
|
|
31
58
|
export interface CommandBranchDescriptor {
|
|
32
59
|
segment: string;
|
|
@@ -76,4 +103,5 @@ export interface CommandTreeDiagnostic {
|
|
|
76
103
|
message: string;
|
|
77
104
|
}
|
|
78
105
|
export declare function validateCommandTree(tree: CommandTreeDescriptor): CommandTreeDiagnostic[];
|
|
106
|
+
export declare function validateCommandOperationBindings(tree: CommandTreeDescriptor, operations: readonly ControlPlaneOperationBinding<any, any, any, any>[]): CommandTreeDiagnostic[];
|
|
79
107
|
export declare function createCommandResult<TResult>(input: Omit<CommandResultEnvelope<TResult>, 'schemaVersion'>): CommandResultEnvelope<TResult>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ZodUndefined } from "zod";
|
|
1
2
|
const SEGMENT = /^[a-z][a-z0-9]*$/;
|
|
2
3
|
const FORBIDDEN_AGENT_MANAGEMENT_OPTIONS = /* @__PURE__ */ new Set([
|
|
3
4
|
"--commit",
|
|
@@ -31,6 +32,17 @@ function validateCommandTree(tree) {
|
|
|
31
32
|
}
|
|
32
33
|
if ("children" in raw) diagnostics.push({ code: "command_node_ambiguous", path: diagnosticPath, message: "Leaf command nodes cannot contain child commands." });
|
|
33
34
|
if (!node.resultSchemaId.trim()) diagnostics.push({ code: "result_schema_required", path: `${diagnosticPath}.resultSchemaId`, message: "Leaf commands require a stable result schema." });
|
|
35
|
+
if (!node.execution) diagnostics.push({ code: "command_execution_required", path: `${diagnosticPath}.execution`, message: "Every leaf must declare one authoritative execution binding." });
|
|
36
|
+
if (node.execution?.kind === "operation") {
|
|
37
|
+
const targets = /* @__PURE__ */ new Set();
|
|
38
|
+
for (const binding of node.execution.input) {
|
|
39
|
+
const key = `${binding.target}.${binding.field}`;
|
|
40
|
+
if (targets.has(key)) diagnostics.push({ code: "command_input_target_duplicate", path: `${diagnosticPath}.execution.input`, message: `Duplicate command input target ${key}.` });
|
|
41
|
+
targets.add(key);
|
|
42
|
+
if (!binding.field.trim() || !binding.name.trim()) diagnostics.push({ code: "command_input_binding_invalid", path: `${diagnosticPath}.execution.input`, message: "Command input bindings require field and source names." });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (node.execution?.kind === "unavailable" && (!node.execution.code.trim() || !node.execution.reason.trim())) diagnostics.push({ code: "command_unavailable_reason_required", path: `${diagnosticPath}.execution`, message: "Unavailable commands require a stable code and explanation." });
|
|
34
46
|
const optionNames = /* @__PURE__ */ new Set();
|
|
35
47
|
for (const option of node.options ?? []) {
|
|
36
48
|
if (optionNames.has(option.name)) diagnostics.push({ code: "command_option_duplicate", path: `${diagnosticPath}.options.${index}`, message: `Duplicate option ${option.name}.` });
|
|
@@ -44,10 +56,47 @@ function validateCommandTree(tree) {
|
|
|
44
56
|
visit(tree.commands, []);
|
|
45
57
|
return diagnostics;
|
|
46
58
|
}
|
|
59
|
+
function validateCommandOperationBindings(tree, operations) {
|
|
60
|
+
const diagnostics = [];
|
|
61
|
+
const catalog = new Map(operations.map((operation) => [operation.descriptor.operationId, operation]));
|
|
62
|
+
const visit = (nodes, parent) => {
|
|
63
|
+
for (const node of nodes) {
|
|
64
|
+
const path = [...parent, node.segment];
|
|
65
|
+
if (node.nodeType === "branch") {
|
|
66
|
+
visit(node.children, path);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (node.execution.kind !== "operation") continue;
|
|
70
|
+
const binding = catalog.get(node.execution.operationId);
|
|
71
|
+
const diagnosticPath = `commands.${path.join(".")}.execution`;
|
|
72
|
+
if (!binding) {
|
|
73
|
+
diagnostics.push({ code: "command_operation_unknown", path: diagnosticPath, message: `Unknown control-plane operation ${node.execution.operationId}.` });
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (!binding.descriptor.surfaces.includes("cli")) diagnostics.push({ code: "command_operation_surface_missing", path: diagnosticPath, message: `Operation ${node.execution.operationId} does not declare the CLI surface.` });
|
|
77
|
+
if (binding.descriptor.kind !== node.kind) diagnostics.push({ code: "command_operation_kind_mismatch", path: diagnosticPath, message: `Command and operation ${node.execution.operationId} disagree about mutation behavior.` });
|
|
78
|
+
const expectedConfirmation = binding.descriptor.confirmation === "input_required" ? binding.descriptor.riskClass : "never";
|
|
79
|
+
if ((node.authorization?.confirmation ?? "never") !== expectedConfirmation) diagnostics.push({ code: "command_operation_confirmation_mismatch", path: diagnosticPath, message: `Command and operation ${node.execution.operationId} disagree about confirmation.` });
|
|
80
|
+
const shapes = {
|
|
81
|
+
path: "shape" in binding.schema.path ? Object.keys(binding.schema.path.shape) : null,
|
|
82
|
+
query: "shape" in binding.schema.query ? Object.keys(binding.schema.query.shape) : null,
|
|
83
|
+
body: "shape" in binding.schema.body ? Object.keys(binding.schema.body.shape) : null
|
|
84
|
+
};
|
|
85
|
+
for (const input of node.execution.input) {
|
|
86
|
+
const keys = shapes[input.target];
|
|
87
|
+
const undefinedSchema = binding.schema[input.target] instanceof ZodUndefined;
|
|
88
|
+
if (keys !== null && !keys.includes(input.field) || undefinedSchema) diagnostics.push({ code: "command_operation_input_unknown", path: `${diagnosticPath}.input.${input.target}.${input.field}`, message: `Operation ${node.execution.operationId} does not accept ${input.target} field ${input.field}.` });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
visit(tree.commands, []);
|
|
93
|
+
return diagnostics.sort((left, right) => `${left.path}:${left.code}`.localeCompare(`${right.path}:${right.code}`));
|
|
94
|
+
}
|
|
47
95
|
function createCommandResult(input) {
|
|
48
96
|
return { schemaVersion: "treeseed.command-result/v1", ...input };
|
|
49
97
|
}
|
|
50
98
|
export {
|
|
51
99
|
createCommandResult,
|
|
100
|
+
validateCommandOperationBindings,
|
|
52
101
|
validateCommandTree
|
|
53
102
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type CommunicationAddressRequirement = 'required' | 'optional';
|
|
2
|
+
export interface CommunicationAddress {
|
|
3
|
+
projectSlug: string | null;
|
|
4
|
+
agentSlug: string;
|
|
5
|
+
requirement: CommunicationAddressRequirement;
|
|
6
|
+
address: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function parseCommunicationAddresses(markdown: string): CommunicationAddress[];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const ADDRESS = /(^|[^\p{L}\p{N}._%+-])@([a-z0-9][a-z0-9-]*)(?:\/([a-z0-9][a-z0-9-]*))?/giu;
|
|
2
|
+
function visibleMarkdown(markdown) {
|
|
3
|
+
const lines = markdown.replace(/\r\n?/gu, "\n").split("\n");
|
|
4
|
+
let fenced = false;
|
|
5
|
+
return lines.map((line) => {
|
|
6
|
+
if (/^\s*```/u.test(line)) {
|
|
7
|
+
fenced = !fenced;
|
|
8
|
+
return "";
|
|
9
|
+
}
|
|
10
|
+
if (fenced || /^\s*>/u.test(line)) return "";
|
|
11
|
+
return line.replace(/`[^`]*`/gu, "").replace(/!?\[[^\]]*\]\([^)]*\)/gu, "").replace(/\b[\w.+-]+@[\w.-]+\.[a-z]{2,}\b/giu, "");
|
|
12
|
+
}).join("\n");
|
|
13
|
+
}
|
|
14
|
+
function initialAddressLines(markdown) {
|
|
15
|
+
const lines = visibleMarkdown(markdown).split("\n");
|
|
16
|
+
let started = false;
|
|
17
|
+
const requiredThrough = /* @__PURE__ */ new Map();
|
|
18
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
19
|
+
const source = lines[index];
|
|
20
|
+
const line = source.trim();
|
|
21
|
+
if (!line && !started) continue;
|
|
22
|
+
if (!line) break;
|
|
23
|
+
started = true;
|
|
24
|
+
const leading = source.match(/^\s*(?:@[a-z0-9][a-z0-9-]*(?:\/[a-z0-9][a-z0-9-]*)?[\s,;:—–-]*)+/iu);
|
|
25
|
+
if (!leading) break;
|
|
26
|
+
requiredThrough.set(index, leading[0].length);
|
|
27
|
+
if (source.slice(leading[0].length).trim()) break;
|
|
28
|
+
}
|
|
29
|
+
return { markdown: visibleMarkdown(markdown), requiredThrough };
|
|
30
|
+
}
|
|
31
|
+
function parseCommunicationAddresses(markdown) {
|
|
32
|
+
const visible = initialAddressLines(markdown);
|
|
33
|
+
const addresses = /* @__PURE__ */ new Map();
|
|
34
|
+
for (const [lineIndex, line] of visible.markdown.split("\n").entries()) {
|
|
35
|
+
ADDRESS.lastIndex = 0;
|
|
36
|
+
for (const match of line.matchAll(ADDRESS)) {
|
|
37
|
+
const first = match[2].toLowerCase();
|
|
38
|
+
const second = match[3]?.toLowerCase() ?? null;
|
|
39
|
+
const projectSlug = second ? first : null;
|
|
40
|
+
const agentSlug = second ?? first;
|
|
41
|
+
const key = `${projectSlug ?? ""}/${agentSlug}`;
|
|
42
|
+
const addressIndex = (match.index ?? 0) + match[1].length;
|
|
43
|
+
const requirement = addressIndex < (visible.requiredThrough.get(lineIndex) ?? 0) ? "required" : "optional";
|
|
44
|
+
const existing = addresses.get(key);
|
|
45
|
+
if (!existing || requirement === "required") addresses.set(key, {
|
|
46
|
+
projectSlug,
|
|
47
|
+
agentSlug,
|
|
48
|
+
requirement,
|
|
49
|
+
address: `@${projectSlug ? `${projectSlug}/` : ""}${agentSlug}`
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return [...addresses.values()];
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
parseCommunicationAddresses
|
|
57
|
+
};
|