@agentxm/client-core 0.19.2 → 0.20.0
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/dist/src/unstable/agent-capabilities/derive.d.ts +9 -9
- package/dist/src/unstable/app-error/builders.js +2 -2
- package/dist/src/unstable/app-error/builders.js.map +1 -1
- package/dist/src/unstable/commands/index.d.ts +1 -1
- package/dist/src/unstable/commands/index.d.ts.map +1 -1
- package/dist/src/unstable/commands/index.js.map +1 -1
- package/dist/src/unstable/commands/install-artifact.d.ts.map +1 -1
- package/dist/src/unstable/commands/install-artifact.js +6 -2
- package/dist/src/unstable/commands/install-artifact.js.map +1 -1
- package/dist/src/unstable/commands/manager.d.ts.map +1 -1
- package/dist/src/unstable/commands/manager.js +33 -5
- package/dist/src/unstable/commands/manager.js.map +1 -1
- package/dist/src/unstable/commands/operations/disable.js +1 -1
- package/dist/src/unstable/commands/operations/disable.js.map +1 -1
- package/dist/src/unstable/commands/operations/enable.js +1 -1
- package/dist/src/unstable/commands/operations/enable.js.map +1 -1
- package/dist/src/unstable/commands/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/install.js +27 -1
- package/dist/src/unstable/commands/operations/install.js.map +1 -1
- package/dist/src/unstable/commands/operations/publish.d.ts +2 -2
- package/dist/src/unstable/commands/operations/publish.js +3 -3
- package/dist/src/unstable/commands/operations/publish.js.map +1 -1
- package/dist/src/unstable/commands/operations/shared-command-helpers.d.ts +16 -15
- package/dist/src/unstable/commands/operations/shared-command-helpers.d.ts.map +1 -1
- package/dist/src/unstable/commands/reconciliation-adapter.d.ts.map +1 -1
- package/dist/src/unstable/commands/reconciliation-adapter.js +3 -1
- package/dist/src/unstable/commands/reconciliation-adapter.js.map +1 -1
- package/dist/src/unstable/commands/refs.d.ts +5 -3
- package/dist/src/unstable/commands/refs.d.ts.map +1 -1
- package/dist/src/unstable/extensions/canonical-path.d.ts +1 -1
- package/dist/src/unstable/extensions/canonical-path.d.ts.map +1 -1
- package/dist/src/unstable/extensions/canonical-path.js +1 -1
- package/dist/src/unstable/extensions/canonical-path.js.map +1 -1
- package/dist/src/unstable/extensions/common.d.ts.map +1 -1
- package/dist/src/unstable/extensions/common.js +4 -2
- package/dist/src/unstable/extensions/common.js.map +1 -1
- package/dist/src/unstable/extensions/extension-paths.d.ts +1 -1
- package/dist/src/unstable/extensions/extension-paths.d.ts.map +1 -1
- package/dist/src/unstable/extensions/extension-paths.js +1 -1
- package/dist/src/unstable/extensions/extension-paths.js.map +1 -1
- package/dist/src/unstable/extensions/index.d.ts +1 -1
- package/dist/src/unstable/extensions/index.d.ts.map +1 -1
- package/dist/src/unstable/extensions/index.js.map +1 -1
- package/dist/src/unstable/extensions/marker-fqn.d.ts +1 -1
- package/dist/src/unstable/extensions/marker-fqn.d.ts.map +1 -1
- package/dist/src/unstable/extensions/marker-fqn.js +1 -1
- package/dist/src/unstable/extensions/marker-fqn.js.map +1 -1
- package/dist/src/unstable/extensions/materializable-from-disk.d.ts +4 -2
- package/dist/src/unstable/extensions/materializable-from-disk.d.ts.map +1 -1
- package/dist/src/unstable/extensions/materializable-from-disk.js +33 -0
- package/dist/src/unstable/extensions/materializable-from-disk.js.map +1 -1
- package/dist/src/unstable/extensions/operations.d.ts +8 -5
- package/dist/src/unstable/extensions/operations.d.ts.map +1 -1
- package/dist/src/unstable/extensions/operations.js +53 -6
- package/dist/src/unstable/extensions/operations.js.map +1 -1
- package/dist/src/unstable/extensions/ref-base.d.ts +17 -0
- package/dist/src/unstable/extensions/ref-base.d.ts.map +1 -1
- package/dist/src/unstable/files/index.d.ts +1 -1
- package/dist/src/unstable/files/index.d.ts.map +1 -1
- package/dist/src/unstable/files/index.js.map +1 -1
- package/dist/src/unstable/files/manager.d.ts.map +1 -1
- package/dist/src/unstable/files/manager.js +38 -5
- package/dist/src/unstable/files/manager.js.map +1 -1
- package/dist/src/unstable/files/refs.d.ts +5 -3
- package/dist/src/unstable/files/refs.d.ts.map +1 -1
- package/dist/src/unstable/hooks/index.d.ts +1 -1
- package/dist/src/unstable/hooks/index.d.ts.map +1 -1
- package/dist/src/unstable/hooks/index.js.map +1 -1
- package/dist/src/unstable/hooks/manager.d.ts.map +1 -1
- package/dist/src/unstable/hooks/manager.js +32 -8
- package/dist/src/unstable/hooks/manager.js.map +1 -1
- package/dist/src/unstable/hooks/refs.d.ts +6 -4
- package/dist/src/unstable/hooks/refs.d.ts.map +1 -1
- package/dist/src/unstable/install-meta/install-meta.d.ts +4 -4
- package/dist/src/unstable/install-meta/install-meta.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/configured-but-not-installed.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/configured-but-not-installed.js +8 -3
- package/dist/src/unstable/lint/catalog/workspace/configured-but-not-installed.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts +1 -1
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js +14 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +12 -1
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +4 -2
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.js +1 -1
- package/dist/src/unstable/lint/catalog/workspace/skills-managed.js.map +1 -1
- package/dist/src/unstable/lint/cli.d.ts +1 -1
- package/dist/src/unstable/lint/cli.js +3 -3
- package/dist/src/unstable/lint/cli.js.map +1 -1
- package/dist/src/unstable/lockfile/index.d.ts +2 -2
- package/dist/src/unstable/lockfile/index.d.ts.map +1 -1
- package/dist/src/unstable/lockfile/index.js +1 -1
- package/dist/src/unstable/lockfile/index.js.map +1 -1
- package/dist/src/unstable/lockfile/lockfile.d.ts +1080 -813
- package/dist/src/unstable/lockfile/lockfile.d.ts.map +1 -1
- package/dist/src/unstable/lockfile/schema.d.ts +443 -32
- package/dist/src/unstable/lockfile/schema.d.ts.map +1 -1
- package/dist/src/unstable/lockfile/schema.js +58 -9
- package/dist/src/unstable/lockfile/schema.js.map +1 -1
- package/dist/src/unstable/mcps/index.d.ts +1 -1
- package/dist/src/unstable/mcps/index.d.ts.map +1 -1
- package/dist/src/unstable/mcps/index.js.map +1 -1
- package/dist/src/unstable/mcps/manager.d.ts.map +1 -1
- package/dist/src/unstable/mcps/manager.js +8 -2
- package/dist/src/unstable/mcps/manager.js.map +1 -1
- package/dist/src/unstable/mcps/metadata.d.ts +2 -2
- package/dist/src/unstable/mcps/metadata.d.ts.map +1 -1
- package/dist/src/unstable/mcps/metadata.js +4 -0
- package/dist/src/unstable/mcps/metadata.js.map +1 -1
- package/dist/src/unstable/mcps/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/mcps/operations/install.js +40 -3
- package/dist/src/unstable/mcps/operations/install.js.map +1 -1
- package/dist/src/unstable/mcps/operations/publish.d.ts +2 -2
- package/dist/src/unstable/mcps/operations/publish.js +3 -3
- package/dist/src/unstable/mcps/operations/publish.js.map +1 -1
- package/dist/src/unstable/mcps/reconciliation-adapter.d.ts.map +1 -1
- package/dist/src/unstable/mcps/reconciliation-adapter.js +3 -1
- package/dist/src/unstable/mcps/reconciliation-adapter.js.map +1 -1
- package/dist/src/unstable/mcps/refs.d.ts +5 -3
- package/dist/src/unstable/mcps/refs.d.ts.map +1 -1
- package/dist/src/unstable/packaging/reader-io.d.ts +2 -2
- package/dist/src/unstable/packs/index.d.ts +1 -1
- package/dist/src/unstable/packs/index.d.ts.map +1 -1
- package/dist/src/unstable/packs/manager.d.ts +13 -2
- package/dist/src/unstable/packs/manager.d.ts.map +1 -1
- package/dist/src/unstable/packs/manager.js +153 -7
- package/dist/src/unstable/packs/manager.js.map +1 -1
- package/dist/src/unstable/packs/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/install.js +1 -0
- package/dist/src/unstable/packs/operations/install.js.map +1 -1
- package/dist/src/unstable/packs/operations/publish.d.ts +2 -2
- package/dist/src/unstable/packs/operations/publish.js +3 -3
- package/dist/src/unstable/packs/operations/publish.js.map +1 -1
- package/dist/src/unstable/packs/operations/uninstall.js +1 -1
- package/dist/src/unstable/packs/operations/uninstall.js.map +1 -1
- package/dist/src/unstable/packs/reconciliation-adapter.d.ts.map +1 -1
- package/dist/src/unstable/packs/reconciliation-adapter.js +3 -1
- package/dist/src/unstable/packs/reconciliation-adapter.js.map +1 -1
- package/dist/src/unstable/packs/refs.d.ts +5 -3
- package/dist/src/unstable/packs/refs.d.ts.map +1 -1
- package/dist/src/unstable/plan/index.d.ts +1 -2
- package/dist/src/unstable/plan/index.d.ts.map +1 -1
- package/dist/src/unstable/plan/index.js +1 -2
- package/dist/src/unstable/plan/index.js.map +1 -1
- package/dist/src/unstable/plan/plan.d.ts +2 -2
- package/dist/src/unstable/plan/plan.d.ts.map +1 -1
- package/dist/src/unstable/plan/resolve-plan.d.ts +1 -1
- package/dist/src/unstable/plan/resolve-plan.d.ts.map +1 -1
- package/dist/src/unstable/publish/index.d.ts +1 -0
- package/dist/src/unstable/publish/index.d.ts.map +1 -1
- package/dist/src/unstable/publish/index.js +1 -0
- package/dist/src/unstable/publish/index.js.map +1 -1
- package/dist/src/unstable/registry/__generated__/registry-client.js.map +1 -1
- package/dist/src/unstable/registry/admin-client.d.ts +42 -42
- package/dist/src/unstable/registry/admin-client.d.ts.map +1 -1
- package/dist/src/unstable/registry/client.d.ts +8 -0
- package/dist/src/unstable/registry/client.d.ts.map +1 -1
- package/dist/src/unstable/registry/client.js.map +1 -1
- package/dist/src/unstable/registry/index.d.ts +1 -1
- package/dist/src/unstable/registry/index.d.ts.map +1 -1
- package/dist/src/unstable/registry/index.js.map +1 -1
- package/dist/src/unstable/registry/local-client.d.ts.map +1 -1
- package/dist/src/unstable/registry/local-client.js +17 -4
- package/dist/src/unstable/registry/local-client.js.map +1 -1
- package/dist/src/unstable/registry/remote-client.d.ts.map +1 -1
- package/dist/src/unstable/registry/remote-client.js +15 -0
- package/dist/src/unstable/registry/remote-client.js.map +1 -1
- package/dist/src/unstable/registry/schema.d.ts +1 -0
- package/dist/src/unstable/registry/schema.d.ts.map +1 -1
- package/dist/src/unstable/registry/schema.js +1 -0
- package/dist/src/unstable/registry/schema.js.map +1 -1
- package/dist/src/unstable/rules/index.d.ts +1 -1
- package/dist/src/unstable/rules/index.d.ts.map +1 -1
- package/dist/src/unstable/rules/index.js.map +1 -1
- package/dist/src/unstable/rules/manager.d.ts.map +1 -1
- package/dist/src/unstable/rules/manager.js +34 -4
- package/dist/src/unstable/rules/manager.js.map +1 -1
- package/dist/src/unstable/rules/refs.d.ts +6 -4
- package/dist/src/unstable/rules/refs.d.ts.map +1 -1
- package/dist/src/unstable/settings/schema.d.ts +20 -73
- package/dist/src/unstable/settings/schema.d.ts.map +1 -1
- package/dist/src/unstable/settings/schema.js +108 -107
- package/dist/src/unstable/settings/schema.js.map +1 -1
- package/dist/src/unstable/skills/index.d.ts +1 -1
- package/dist/src/unstable/skills/index.d.ts.map +1 -1
- package/dist/src/unstable/skills/index.js.map +1 -1
- package/dist/src/unstable/skills/manager.d.ts.map +1 -1
- package/dist/src/unstable/skills/manager.js +9 -3
- package/dist/src/unstable/skills/manager.js.map +1 -1
- package/dist/src/unstable/skills/materialization.d.ts.map +1 -1
- package/dist/src/unstable/skills/materialization.js +6 -0
- package/dist/src/unstable/skills/materialization.js.map +1 -1
- package/dist/src/unstable/skills/operations/copy.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/copy.js +5 -4
- package/dist/src/unstable/skills/operations/copy.js.map +1 -1
- package/dist/src/unstable/skills/operations/disable.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/disable.js +4 -2
- package/dist/src/unstable/skills/operations/disable.js.map +1 -1
- package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/install.js +34 -0
- package/dist/src/unstable/skills/operations/install.js.map +1 -1
- package/dist/src/unstable/skills/operations/publish.d.ts +2 -2
- package/dist/src/unstable/skills/operations/publish.js +3 -3
- package/dist/src/unstable/skills/operations/publish.js.map +1 -1
- package/dist/src/unstable/skills/paths.d.ts +1 -1
- package/dist/src/unstable/skills/paths.d.ts.map +1 -1
- package/dist/src/unstable/skills/reconciliation-adapter.d.ts.map +1 -1
- package/dist/src/unstable/skills/reconciliation-adapter.js +3 -1
- package/dist/src/unstable/skills/reconciliation-adapter.js.map +1 -1
- package/dist/src/unstable/skills/refs.d.ts +5 -3
- package/dist/src/unstable/skills/refs.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/azurerepos/scp.d.ts +9 -8
- package/dist/src/unstable/source-resolution/providers/azurerepos/scp.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/azurerepos/url.d.ts +9 -9
- package/dist/src/unstable/source-resolution/providers/azurerepos/url.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/bitbucket/scp.d.ts +8 -7
- package/dist/src/unstable/source-resolution/providers/bitbucket/scp.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/bitbucket/url.d.ts +8 -8
- package/dist/src/unstable/source-resolution/providers/bitbucket/url.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/github/scp.d.ts +8 -7
- package/dist/src/unstable/source-resolution/providers/github/scp.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/github/url.d.ts +8 -8
- package/dist/src/unstable/source-resolution/providers/github/url.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/gitlab/scp.d.ts +8 -7
- package/dist/src/unstable/source-resolution/providers/gitlab/scp.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/providers/gitlab/url.d.ts +8 -8
- package/dist/src/unstable/source-resolution/providers/gitlab/url.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/resolve-source.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/resolve-source.js +9 -0
- package/dist/src/unstable/source-resolution/resolve-source.js.map +1 -1
- package/dist/src/unstable/source-resolution/service.d.ts +1 -1
- package/dist/src/unstable/source-resolution/service.d.ts.map +1 -1
- package/dist/src/unstable/source-resolution/service.js +15 -0
- package/dist/src/unstable/source-resolution/service.js.map +1 -1
- package/dist/src/unstable/sources/index.d.ts +2 -1
- package/dist/src/unstable/sources/index.d.ts.map +1 -1
- package/dist/src/unstable/sources/index.js +1 -0
- package/dist/src/unstable/sources/index.js.map +1 -1
- package/dist/src/unstable/sources/lock-entry-to-ref.d.ts +3 -1
- package/dist/src/unstable/sources/lock-entry-to-ref.d.ts.map +1 -1
- package/dist/src/unstable/sources/lock-entry-to-ref.js +106 -14
- package/dist/src/unstable/sources/lock-entry-to-ref.js.map +1 -1
- package/dist/src/unstable/sources/parser.d.ts +9 -2
- package/dist/src/unstable/sources/parser.d.ts.map +1 -1
- package/dist/src/unstable/sources/parser.js +22 -7
- package/dist/src/unstable/sources/parser.js.map +1 -1
- package/dist/src/unstable/sources/printer.d.ts +2 -2
- package/dist/src/unstable/sources/printer.d.ts.map +1 -1
- package/dist/src/unstable/sources/printer.js +14 -0
- package/dist/src/unstable/sources/printer.js.map +1 -1
- package/dist/src/unstable/sources/source-to-lock-entry.d.ts.map +1 -1
- package/dist/src/unstable/sources/source-to-lock-entry.js +10 -0
- package/dist/src/unstable/sources/source-to-lock-entry.js.map +1 -1
- package/dist/src/unstable/sources/types.d.ts +21 -6
- package/dist/src/unstable/sources/types.d.ts.map +1 -1
- package/dist/src/unstable/sources/types.js +11 -3
- package/dist/src/unstable/sources/types.js.map +1 -1
- package/dist/src/unstable/sources/workspace.d.ts +13 -0
- package/dist/src/unstable/sources/workspace.d.ts.map +1 -0
- package/dist/src/unstable/sources/workspace.js +13 -0
- package/dist/src/unstable/sources/workspace.js.map +1 -0
- package/dist/src/unstable/subagents/index.d.ts +1 -1
- package/dist/src/unstable/subagents/index.d.ts.map +1 -1
- package/dist/src/unstable/subagents/index.js.map +1 -1
- package/dist/src/unstable/subagents/lock-entry-builder.d.ts.map +1 -1
- package/dist/src/unstable/subagents/lock-entry-builder.js +10 -0
- package/dist/src/unstable/subagents/lock-entry-builder.js.map +1 -1
- package/dist/src/unstable/subagents/manager.d.ts.map +1 -1
- package/dist/src/unstable/subagents/manager.js +32 -5
- package/dist/src/unstable/subagents/manager.js.map +1 -1
- package/dist/src/unstable/subagents/operations/disable.d.ts.map +1 -1
- package/dist/src/unstable/subagents/operations/disable.js +2 -1
- package/dist/src/unstable/subagents/operations/disable.js.map +1 -1
- package/dist/src/unstable/subagents/operations/publish.d.ts +2 -2
- package/dist/src/unstable/subagents/operations/publish.js +3 -3
- package/dist/src/unstable/subagents/operations/publish.js.map +1 -1
- package/dist/src/unstable/subagents/paths.d.ts +1 -1
- package/dist/src/unstable/subagents/paths.d.ts.map +1 -1
- package/dist/src/unstable/subagents/reconciliation-adapter.d.ts.map +1 -1
- package/dist/src/unstable/subagents/reconciliation-adapter.js +3 -1
- package/dist/src/unstable/subagents/reconciliation-adapter.js.map +1 -1
- package/dist/src/unstable/subagents/refs.d.ts +5 -3
- package/dist/src/unstable/subagents/refs.d.ts.map +1 -1
- package/dist/src/unstable/telemetry/__generated__/telemetry-client.js.map +1 -1
- package/dist/src/unstable/update-check/update-check.d.ts +4 -4
- package/dist/src/unstable/update-check/update-check.d.ts.map +1 -1
- package/dist/src/unstable/workflows/index.d.ts +1 -1
- package/dist/src/unstable/workflows/index.d.ts.map +1 -1
- package/dist/src/unstable/workflows/index.js.map +1 -1
- package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts +9 -7
- package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts.map +1 -1
- package/dist/src/unstable/workflows/uninstall-command/workflow.js +1 -1
- package/dist/src/unstable/workflows/uninstall-command/workflow.js.map +1 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/index.d.ts +1 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/index.d.ts.map +1 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/index.js +1 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/index.js.map +1 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/resolve.d.ts +2 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/resolve.d.ts.map +1 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/resolve.js +138 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/resolve.js.map +1 -1
- package/dist/src/unstable/workspace/configured-entry-resolution/workspace-ref.d.ts +24 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/workspace-ref.d.ts.map +1 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/workspace-ref.js +211 -0
- package/dist/src/unstable/workspace/configured-entry-resolution/workspace-ref.js.map +1 -0
- package/dist/src/unstable/workspace/index.d.ts +1 -1
- package/dist/src/unstable/workspace/index.d.ts.map +1 -1
- package/dist/src/unstable/workspace/index.js +1 -1
- package/dist/src/unstable/workspace/index.js.map +1 -1
- package/dist/src/unstable/workspace/initialization.d.ts +354 -398
- package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
- package/dist/src/unstable/workspace/initialization.js +1 -1
- package/dist/src/unstable/workspace/initialization.js.map +1 -1
- package/dist/src/unstable/workspace/read-model/state.d.ts.map +1 -1
- package/dist/src/unstable/workspace/read-model/state.js +21 -5
- package/dist/src/unstable/workspace/read-model/state.js.map +1 -1
- package/dist/src/unstable/workspace/reconciliation-types.d.ts +16 -2
- package/dist/src/unstable/workspace/reconciliation-types.d.ts.map +1 -1
- package/dist/src/unstable/workspace/reconciliation.d.ts.map +1 -1
- package/dist/src/unstable/workspace/reconciliation.js +185 -2
- package/dist/src/unstable/workspace/reconciliation.js.map +1 -1
- package/dist/src/unstable/workspace/service-interface.d.ts +10 -4
- package/dist/src/unstable/workspace/service-interface.d.ts.map +1 -1
- package/dist/src/unstable/workspace/service-interface.js.map +1 -1
- package/dist/src/unstable/workspace/service.d.ts +916 -653
- package/dist/src/unstable/workspace/service.d.ts.map +1 -1
- package/dist/src/unstable/workspace/service.js +41 -90
- package/dist/src/unstable/workspace/service.js.map +1 -1
- package/dist/src/unstable/workspace/skill-snapshot.d.ts.map +1 -1
- package/dist/src/unstable/workspace/skill-snapshot.js +2 -1
- package/dist/src/unstable/workspace/skill-snapshot.js.map +1 -1
- package/dist/src/unstable/workspace/test-stubs.d.ts.map +1 -1
- package/dist/src/unstable/workspace/test-stubs.js +1 -0
- package/dist/src/unstable/workspace/test-stubs.js.map +1 -1
- package/package.json +6 -6
- package/site-content/__generated__/schemas/axm-lock.schema.json +370 -2
- package/site-content/__generated__/schemas/pack.schema.json +18 -14
- package/site-content/__generated__/schemas/settings.schema.json +102 -103
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as Schema from "effect/Schema";
|
|
9
9
|
import * as SchemaTransformation from "effect/SchemaTransformation";
|
|
10
|
-
import { ConfigurableAgentIdSchema, EXTENSION_NAME_PATTERN } from "../extensions/common.js";
|
|
10
|
+
import { ConfigurableAgentIdSchema, EXTENSION_NAME_PATTERN, FQN_PATTERN, } from "../extensions/common.js";
|
|
11
11
|
import { FileInputValueSchema } from "../files/manifest-schema.js";
|
|
12
12
|
import { HandleSchema } from "../extensions/handle.js";
|
|
13
13
|
import { LibraryRefSchema } from "../libraries/index.js";
|
|
14
14
|
import { LintConfigSchema } from "../lint/config.js";
|
|
15
|
+
import { isWorkspaceSourceLocator } from "../sources/workspace.js";
|
|
15
16
|
// -----------------------------------------------------------------------------
|
|
16
17
|
// Source Host Config (array-based, discriminated on `type` field)
|
|
17
18
|
// -----------------------------------------------------------------------------
|
|
@@ -21,13 +22,13 @@ import { LintConfigSchema } from "../lint/config.js";
|
|
|
21
22
|
*
|
|
22
23
|
* @experimental This API is unstable and may change without notice.
|
|
23
24
|
*/
|
|
24
|
-
const SOURCE_NAME_PATTERN = /^[a-z0-9][a-z0-9.-]*$/;
|
|
25
|
+
const SOURCE_NAME_PATTERN = /^(?!workspace$)[a-z0-9][a-z0-9.-]*$/;
|
|
25
26
|
const SourceNameSchema = Schema.String.check(Schema.isPattern(SOURCE_NAME_PATTERN, {
|
|
26
|
-
message:
|
|
27
|
+
message: 'source name must start with a letter or digit, contain only lowercase alphanumeric characters, hyphens, and dots, and must not be reserved name "workspace"',
|
|
27
28
|
})).annotate({
|
|
28
29
|
identifier: "SourceName",
|
|
29
30
|
title: "Source Name",
|
|
30
|
-
description:
|
|
31
|
+
description: 'A source host alias: lowercase letters, numbers, hyphens, and dots. The name "workspace" is reserved.',
|
|
31
32
|
examples: ["github", "my-registry.dev"],
|
|
32
33
|
});
|
|
33
34
|
const sourceNameFieldSchema = SourceNameSchema.pipe(Schema.annotateKey({ messageMissingKey: "source name is required" }), Schema.annotate({
|
|
@@ -129,10 +130,6 @@ export const SourceHostConfigSchema = Schema.Union([
|
|
|
129
130
|
const ExtensionMapKeySchema = Schema.String.check(Schema.isPattern(EXTENSION_NAME_PATTERN, {
|
|
130
131
|
message: "Names must be max 64 chars, lowercase letters/numbers/hyphens, not starting or ending with hyphen.",
|
|
131
132
|
}));
|
|
132
|
-
const authoredFieldSchema = Schema.optionalKey(Schema.Boolean.annotate({
|
|
133
|
-
description: "Set to true to mark this entry as authored locally in this workspace — for extensions you edit here. AXM treats authored entries as locally owned: it preserves their files on uninstall, keeps the local source instead of repointing to the registry on update, and re-resolves them from the local managed copy on enable. Omit otherwise — false is the default and should not be written explicitly.",
|
|
134
|
-
default: false,
|
|
135
|
-
}));
|
|
136
133
|
const enabledFieldSchema = Schema.optionalKey(Schema.Boolean.annotate({
|
|
137
134
|
description: "Set to false to disable this entry. Omit otherwise — true is the default and should not be written explicitly.",
|
|
138
135
|
default: true,
|
|
@@ -145,6 +142,26 @@ const entrySourceFieldSchema = (label, fqnType) => Schema.NonEmptyString.pipe(Sc
|
|
|
145
142
|
"./extensions/code-review",
|
|
146
143
|
],
|
|
147
144
|
}));
|
|
145
|
+
const workspaceEntriesMatch = (pluralType) => Schema.makeFilter((entries) => {
|
|
146
|
+
for (const [entryName, entry] of Object.entries(entries)) {
|
|
147
|
+
if (!isWorkspaceSourceLocator(entry.source))
|
|
148
|
+
continue;
|
|
149
|
+
const fqn = entry.source.slice("workspace:".length);
|
|
150
|
+
const match = FQN_PATTERN.exec(fqn);
|
|
151
|
+
if (match === null) {
|
|
152
|
+
return `Workspace source "${entry.source}" must be workspace:@owner/<plural-type>/<name> without a version`;
|
|
153
|
+
}
|
|
154
|
+
const sourceType = match[2];
|
|
155
|
+
const sourceName = match[3];
|
|
156
|
+
if (sourceType !== pluralType) {
|
|
157
|
+
return `Workspace source "${entry.source}" has type "${sourceType ?? ""}", but this settings section requires "${pluralType}"`;
|
|
158
|
+
}
|
|
159
|
+
if (sourceName !== entryName) {
|
|
160
|
+
return `Workspace source "${entry.source}" has name "${sourceName ?? ""}", but the settings key is "${entryName}"`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return undefined;
|
|
164
|
+
});
|
|
148
165
|
const McpServerEnvSchema = Schema.Union([
|
|
149
166
|
Schema.Record(Schema.String, Schema.String),
|
|
150
167
|
Schema.Array(Schema.String),
|
|
@@ -228,25 +245,21 @@ const compactOrVerboseEntry = (objectSchema, canonicalSchema, transformation, an
|
|
|
228
245
|
const EnabledEntryCanonicalSchema = Schema.Struct({
|
|
229
246
|
source: Schema.String,
|
|
230
247
|
enabled: Schema.Boolean,
|
|
231
|
-
authored: Schema.Boolean,
|
|
232
248
|
});
|
|
233
249
|
const decodeEnabledEntry = (entry) => typeof entry === "string"
|
|
234
|
-
? { source: entry, enabled: true
|
|
250
|
+
? { source: entry, enabled: true }
|
|
235
251
|
: {
|
|
236
252
|
source: entry.source,
|
|
237
253
|
enabled: entry.enabled ?? true,
|
|
238
|
-
authored: entry.authored ?? false,
|
|
239
254
|
};
|
|
240
255
|
const encodeEnabledEntry = (entry) => {
|
|
241
|
-
if (entry.enabled
|
|
256
|
+
if (entry.enabled)
|
|
242
257
|
return entry.source;
|
|
243
258
|
const obj = {
|
|
244
259
|
source: entry.source,
|
|
245
260
|
};
|
|
246
261
|
if (!entry.enabled)
|
|
247
262
|
obj.enabled = false;
|
|
248
|
-
if (entry.authored)
|
|
249
|
-
obj.authored = true;
|
|
250
263
|
return obj;
|
|
251
264
|
};
|
|
252
265
|
const enabledEntryTransformation = {
|
|
@@ -262,17 +275,15 @@ const compactEnabledEntry = (objectSchema, annotations) => compactOrVerboseEntry
|
|
|
262
275
|
export const SkillEntryObjectSchema = Schema.Struct({
|
|
263
276
|
source: entrySourceFieldSchema("skill", "skills"),
|
|
264
277
|
enabled: enabledFieldSchema,
|
|
265
|
-
authored: authoredFieldSchema,
|
|
266
278
|
}).annotate({
|
|
267
279
|
title: "Skill Entry Object",
|
|
268
|
-
description: "A skill entry with source and optional enabled
|
|
280
|
+
description: "A skill entry with source and an optional enabled flag.",
|
|
269
281
|
});
|
|
270
282
|
/**
|
|
271
|
-
* Union of skill entry forms: plain source string or object with source + enabled
|
|
283
|
+
* Union of skill entry forms: plain source string or object with source + enabled.
|
|
272
284
|
*
|
|
273
|
-
* Decodes to canonical `{ source, enabled
|
|
274
|
-
*
|
|
275
|
-
* authored, object otherwise).
|
|
285
|
+
* Decodes to canonical `{ source, enabled }` form; encodes back to the most
|
|
286
|
+
* compact JSON representation.
|
|
276
287
|
*
|
|
277
288
|
* @experimental This API is unstable and may change without notice.
|
|
278
289
|
*/
|
|
@@ -297,7 +308,10 @@ export const SkillEntrySchema = compactEnabledEntry(SkillEntryObjectSchema, {
|
|
|
297
308
|
*
|
|
298
309
|
* @experimental This API is unstable and may change without notice.
|
|
299
310
|
*/
|
|
300
|
-
export const SkillsMapSchema = Schema.Record(
|
|
311
|
+
export const SkillsMapSchema = Schema.Record(Schema.String, SkillEntrySchema)
|
|
312
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
313
|
+
.check(workspaceEntriesMatch("skills"))
|
|
314
|
+
.annotate({
|
|
301
315
|
identifier: "SkillsMap",
|
|
302
316
|
title: "Skills Map",
|
|
303
317
|
description: "A map of skill names to skill entries.",
|
|
@@ -310,17 +324,15 @@ export const SkillsMapSchema = Schema.Record(ExtensionMapKeySchema, SkillEntrySc
|
|
|
310
324
|
export const CommandEntryObjectSchema = Schema.Struct({
|
|
311
325
|
source: entrySourceFieldSchema("command", "commands"),
|
|
312
326
|
enabled: enabledFieldSchema,
|
|
313
|
-
authored: authoredFieldSchema,
|
|
314
327
|
}).annotate({
|
|
315
328
|
title: "Command Entry Object",
|
|
316
|
-
description: "A command entry with source and optional enabled
|
|
329
|
+
description: "A command entry with source and an optional enabled flag.",
|
|
317
330
|
});
|
|
318
331
|
/**
|
|
319
|
-
* Union of command entry forms: plain source string or object with source + enabled
|
|
332
|
+
* Union of command entry forms: plain source string or object with source + enabled.
|
|
320
333
|
*
|
|
321
|
-
* Decodes to canonical `{ source, enabled
|
|
322
|
-
*
|
|
323
|
-
* authored, object otherwise).
|
|
334
|
+
* Decodes to canonical `{ source, enabled }` form; encodes back to the most
|
|
335
|
+
* compact JSON representation.
|
|
324
336
|
*
|
|
325
337
|
* @experimental This API is unstable and may change without notice.
|
|
326
338
|
*/
|
|
@@ -345,7 +357,10 @@ export const CommandEntrySchema = compactEnabledEntry(CommandEntryObjectSchema,
|
|
|
345
357
|
*
|
|
346
358
|
* @experimental This API is unstable and may change without notice.
|
|
347
359
|
*/
|
|
348
|
-
export const CommandsMapSchema = Schema.Record(
|
|
360
|
+
export const CommandsMapSchema = Schema.Record(Schema.String, CommandEntrySchema)
|
|
361
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
362
|
+
.check(workspaceEntriesMatch("commands"))
|
|
363
|
+
.annotate({
|
|
349
364
|
identifier: "CommandsMap",
|
|
350
365
|
title: "Commands Map",
|
|
351
366
|
description: "A map of command names to command entries.",
|
|
@@ -361,7 +376,6 @@ export const CommandsMapSchema = Schema.Record(ExtensionMapKeySchema, CommandEnt
|
|
|
361
376
|
export const FilesEntryObjectSchema = Schema.Struct({
|
|
362
377
|
source: entrySourceFieldSchema("Context Files package", "files"),
|
|
363
378
|
enabled: enabledFieldSchema,
|
|
364
|
-
authored: authoredFieldSchema,
|
|
365
379
|
inputs: Schema.optionalKey(FileInputValuesMapSchema),
|
|
366
380
|
}).annotate({
|
|
367
381
|
title: "Files Entry Object",
|
|
@@ -370,7 +384,7 @@ export const FilesEntryObjectSchema = Schema.Struct({
|
|
|
370
384
|
/**
|
|
371
385
|
* Union of Context Files package entry forms: plain source string or object with source, flags, and inputs.
|
|
372
386
|
*
|
|
373
|
-
* Decodes to canonical `{ source, enabled,
|
|
387
|
+
* Decodes to canonical `{ source, enabled, inputs }` form; encodes
|
|
374
388
|
* back to a plain source string when all metadata is default and no inputs are
|
|
375
389
|
* set.
|
|
376
390
|
*
|
|
@@ -379,26 +393,22 @@ export const FilesEntryObjectSchema = Schema.Struct({
|
|
|
379
393
|
export const FilesEntrySchema = compactOrVerboseEntry(FilesEntryObjectSchema, Schema.Struct({
|
|
380
394
|
source: Schema.String,
|
|
381
395
|
enabled: Schema.Boolean,
|
|
382
|
-
authored: Schema.Boolean,
|
|
383
396
|
inputs: FileInputValuesMapSchema,
|
|
384
397
|
}), {
|
|
385
398
|
decode: (entry) => typeof entry === "string"
|
|
386
|
-
? { source: entry, enabled: true,
|
|
399
|
+
? { source: entry, enabled: true, inputs: {} }
|
|
387
400
|
: {
|
|
388
401
|
source: entry.source,
|
|
389
402
|
enabled: entry.enabled ?? true,
|
|
390
|
-
authored: entry.authored ?? false,
|
|
391
403
|
inputs: entry.inputs ?? {},
|
|
392
404
|
},
|
|
393
405
|
encode: (entry) => {
|
|
394
406
|
const hasInputs = Object.keys(entry.inputs).length > 0;
|
|
395
|
-
if (entry.enabled && !
|
|
407
|
+
if (entry.enabled && !hasInputs)
|
|
396
408
|
return entry.source;
|
|
397
409
|
const obj = { source: entry.source };
|
|
398
410
|
if (!entry.enabled)
|
|
399
411
|
obj.enabled = false;
|
|
400
|
-
if (entry.authored)
|
|
401
|
-
obj.authored = true;
|
|
402
412
|
if (hasInputs)
|
|
403
413
|
obj.inputs = entry.inputs;
|
|
404
414
|
return obj;
|
|
@@ -420,7 +430,10 @@ export const FilesEntrySchema = compactOrVerboseEntry(FilesEntryObjectSchema, Sc
|
|
|
420
430
|
*
|
|
421
431
|
* @experimental This API is unstable and may change without notice.
|
|
422
432
|
*/
|
|
423
|
-
export const FilesMapSchema = Schema.Record(
|
|
433
|
+
export const FilesMapSchema = Schema.Record(Schema.String, FilesEntrySchema)
|
|
434
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
435
|
+
.check(workspaceEntriesMatch("files"))
|
|
436
|
+
.annotate({
|
|
424
437
|
identifier: "FilesMap",
|
|
425
438
|
title: "Files Map",
|
|
426
439
|
description: "A map of Context Files package names to Context Files package entries.",
|
|
@@ -436,13 +449,12 @@ export const FilesMapSchema = Schema.Record(ExtensionMapKeySchema, FilesEntrySch
|
|
|
436
449
|
export const RuleEntryObjectSchema = Schema.Struct({
|
|
437
450
|
source: entrySourceFieldSchema("rule", "rules"),
|
|
438
451
|
enabled: enabledFieldSchema,
|
|
439
|
-
authored: authoredFieldSchema,
|
|
440
452
|
}).annotate({
|
|
441
453
|
title: "Rule Entry Object",
|
|
442
|
-
description: "A rule entry with source and optional enabled
|
|
454
|
+
description: "A rule entry with source and an optional enabled flag.",
|
|
443
455
|
});
|
|
444
456
|
/**
|
|
445
|
-
* Union of rule entry forms: plain source string or object with source + enabled
|
|
457
|
+
* Union of rule entry forms: plain source string or object with source + enabled.
|
|
446
458
|
*
|
|
447
459
|
* @experimental This API is unstable and may change without notice.
|
|
448
460
|
*/
|
|
@@ -460,7 +472,10 @@ export const RuleEntrySchema = compactEnabledEntry(RuleEntryObjectSchema, {
|
|
|
460
472
|
*
|
|
461
473
|
* @experimental This API is unstable and may change without notice.
|
|
462
474
|
*/
|
|
463
|
-
export const RulesMapSchema = Schema.Record(
|
|
475
|
+
export const RulesMapSchema = Schema.Record(Schema.String, RuleEntrySchema)
|
|
476
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
477
|
+
.check(workspaceEntriesMatch("rules"))
|
|
478
|
+
.annotate({
|
|
464
479
|
identifier: "RulesMap",
|
|
465
480
|
title: "Rules Map",
|
|
466
481
|
description: "A map of rule names to rule entries.",
|
|
@@ -476,13 +491,12 @@ export const RulesMapSchema = Schema.Record(ExtensionMapKeySchema, RuleEntrySche
|
|
|
476
491
|
export const HookEntryObjectSchema = Schema.Struct({
|
|
477
492
|
source: entrySourceFieldSchema("hook", "hooks"),
|
|
478
493
|
enabled: enabledFieldSchema,
|
|
479
|
-
authored: authoredFieldSchema,
|
|
480
494
|
}).annotate({
|
|
481
495
|
title: "Hook Entry Object",
|
|
482
|
-
description: "A hook entry with source and optional enabled
|
|
496
|
+
description: "A hook entry with source and an optional enabled flag.",
|
|
483
497
|
});
|
|
484
498
|
/**
|
|
485
|
-
* Union of hook entry forms: plain source string or object with source + enabled
|
|
499
|
+
* Union of hook entry forms: plain source string or object with source + enabled.
|
|
486
500
|
*
|
|
487
501
|
* @experimental This API is unstable and may change without notice.
|
|
488
502
|
*/
|
|
@@ -500,7 +514,10 @@ export const HookEntrySchema = compactEnabledEntry(HookEntryObjectSchema, {
|
|
|
500
514
|
*
|
|
501
515
|
* @experimental This API is unstable and may change without notice.
|
|
502
516
|
*/
|
|
503
|
-
export const HooksMapSchema = Schema.Record(
|
|
517
|
+
export const HooksMapSchema = Schema.Record(Schema.String, HookEntrySchema)
|
|
518
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
519
|
+
.check(workspaceEntriesMatch("hooks"))
|
|
520
|
+
.annotate({
|
|
504
521
|
identifier: "HooksMap",
|
|
505
522
|
title: "Hooks Map",
|
|
506
523
|
description: "A map of hook names to hook entries.",
|
|
@@ -516,11 +533,10 @@ export const HooksMapSchema = Schema.Record(ExtensionMapKeySchema, HookEntrySche
|
|
|
516
533
|
export const McpServerEntryObjectSchema = Schema.Struct({
|
|
517
534
|
source: entrySourceFieldSchema("MCP server", "mcps"),
|
|
518
535
|
enabled: enabledFieldSchema,
|
|
519
|
-
authored: authoredFieldSchema,
|
|
520
536
|
env: Schema.optionalKey(McpServerEnvSchema),
|
|
521
537
|
}).annotate({
|
|
522
538
|
title: "MCP Server Entry Object",
|
|
523
|
-
description: "An MCP server entry with source and optional enabled/
|
|
539
|
+
description: "An MCP server entry with source and optional enabled/env fields.",
|
|
524
540
|
});
|
|
525
541
|
const McpServerVerboseEntryObjectSchema = Schema.Struct({
|
|
526
542
|
source: Schema.optionalKey(entrySourceFieldSchema("MCP server", "mcps")),
|
|
@@ -540,14 +556,13 @@ const McpServerVerboseEntryObjectSchema = Schema.Struct({
|
|
|
540
556
|
description: "HTTP headers for a remote MCP server. Prefer ${VAR} references for secrets.",
|
|
541
557
|
})),
|
|
542
558
|
enabled: enabledFieldSchema,
|
|
543
|
-
authored: authoredFieldSchema,
|
|
544
559
|
env: Schema.optionalKey(McpServerEnvSchema),
|
|
545
560
|
}).pipe(Schema.check(Schema.makeFilter((entry) => validateMcpTransportExclusivity(entry))));
|
|
546
561
|
/**
|
|
547
|
-
* Union of MCP server entry forms: plain source string or object with source + enabled +
|
|
562
|
+
* Union of MCP server entry forms: plain source string or object with source + enabled + env.
|
|
548
563
|
*
|
|
549
|
-
* Decodes to canonical `{ source, enabled,
|
|
550
|
-
* compact JSON representation
|
|
564
|
+
* Decodes to canonical `{ source, enabled, env }` form; encodes back to the most
|
|
565
|
+
* compact JSON representation.
|
|
551
566
|
*
|
|
552
567
|
* @experimental This API is unstable and may change without notice.
|
|
553
568
|
*/
|
|
@@ -558,11 +573,10 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
558
573
|
url: Schema.optional(Schema.String),
|
|
559
574
|
headers: Schema.optional(Schema.Record(Schema.String, Schema.String)),
|
|
560
575
|
enabled: Schema.Boolean,
|
|
561
|
-
authored: Schema.Boolean,
|
|
562
576
|
env: Schema.Record(Schema.String, Schema.String),
|
|
563
577
|
}), {
|
|
564
578
|
decode: (entry) => typeof entry === "string"
|
|
565
|
-
? { source: entry, enabled: true,
|
|
579
|
+
? { source: entry, enabled: true, env: {} }
|
|
566
580
|
: {
|
|
567
581
|
source: "source" in entry && entry.source !== undefined ? entry.source : "inline",
|
|
568
582
|
...("command" in entry && entry.command !== undefined
|
|
@@ -574,14 +588,10 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
574
588
|
? { headers: entry.headers }
|
|
575
589
|
: {}),
|
|
576
590
|
enabled: entry.enabled ?? true,
|
|
577
|
-
authored: entry.authored ?? false,
|
|
578
591
|
env: decodeMcpEnv(entry.env),
|
|
579
592
|
},
|
|
580
593
|
encode: (entry) => {
|
|
581
|
-
if (entry.source !== "inline" &&
|
|
582
|
-
entry.enabled &&
|
|
583
|
-
!entry.authored &&
|
|
584
|
-
Object.keys(entry.env).length === 0) {
|
|
594
|
+
if (entry.source !== "inline" && entry.enabled && Object.keys(entry.env).length === 0) {
|
|
585
595
|
return entry.source;
|
|
586
596
|
}
|
|
587
597
|
const obj = {};
|
|
@@ -598,15 +608,12 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
598
608
|
}
|
|
599
609
|
if (!entry.enabled)
|
|
600
610
|
obj.enabled = false;
|
|
601
|
-
if (entry.authored)
|
|
602
|
-
obj.authored = true;
|
|
603
611
|
if (Object.keys(entry.env).length > 0)
|
|
604
612
|
obj.env = entry.env;
|
|
605
613
|
if (entry.source !== "inline") {
|
|
606
614
|
return {
|
|
607
615
|
source: entry.source,
|
|
608
616
|
...(obj.enabled === undefined ? {} : { enabled: obj.enabled }),
|
|
609
|
-
...(obj.authored === undefined ? {} : { authored: obj.authored }),
|
|
610
617
|
...(obj.env === undefined ? {} : { env: obj.env }),
|
|
611
618
|
};
|
|
612
619
|
}
|
|
@@ -615,7 +622,6 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
615
622
|
command: entry.command,
|
|
616
623
|
...(obj.args === undefined ? {} : { args: obj.args }),
|
|
617
624
|
...(obj.enabled === undefined ? {} : { enabled: obj.enabled }),
|
|
618
|
-
...(obj.authored === undefined ? {} : { authored: obj.authored }),
|
|
619
625
|
...(obj.env === undefined ? {} : { env: obj.env }),
|
|
620
626
|
};
|
|
621
627
|
}
|
|
@@ -623,7 +629,6 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
623
629
|
url: entry.url ?? "",
|
|
624
630
|
...(obj.headers === undefined ? {} : { headers: obj.headers }),
|
|
625
631
|
...(obj.enabled === undefined ? {} : { enabled: obj.enabled }),
|
|
626
|
-
...(obj.authored === undefined ? {} : { authored: obj.authored }),
|
|
627
632
|
...(obj.env === undefined ? {} : { env: obj.env }),
|
|
628
633
|
};
|
|
629
634
|
},
|
|
@@ -645,7 +650,10 @@ export const McpServerEntrySchema = compactOrVerboseEntry(McpServerVerboseEntryO
|
|
|
645
650
|
*
|
|
646
651
|
* @experimental This API is unstable and may change without notice.
|
|
647
652
|
*/
|
|
648
|
-
export const McpServersMapSchema = Schema.Record(
|
|
653
|
+
export const McpServersMapSchema = Schema.Record(Schema.String, McpServerEntrySchema)
|
|
654
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
655
|
+
.check(workspaceEntriesMatch("mcps"))
|
|
656
|
+
.annotate({
|
|
649
657
|
identifier: "McpServersMap",
|
|
650
658
|
title: "MCP Servers Map",
|
|
651
659
|
description: "A map of MCP server names to MCP server entries.",
|
|
@@ -661,17 +669,15 @@ export const McpServersMapSchema = Schema.Record(ExtensionMapKeySchema, McpServe
|
|
|
661
669
|
export const SubagentEntryObjectSchema = Schema.Struct({
|
|
662
670
|
source: entrySourceFieldSchema("subagent", "subagents"),
|
|
663
671
|
enabled: enabledFieldSchema,
|
|
664
|
-
authored: authoredFieldSchema,
|
|
665
672
|
}).annotate({
|
|
666
673
|
title: "Subagent Entry Object",
|
|
667
|
-
description: "A subagent entry with source and optional enabled
|
|
674
|
+
description: "A subagent entry with source and an optional enabled flag.",
|
|
668
675
|
});
|
|
669
676
|
/**
|
|
670
|
-
* Union of subagent entry forms: plain source string or object with source + enabled
|
|
677
|
+
* Union of subagent entry forms: plain source string or object with source + enabled.
|
|
671
678
|
*
|
|
672
|
-
* Decodes to canonical `{ source, enabled
|
|
673
|
-
*
|
|
674
|
-
* authored, object otherwise).
|
|
679
|
+
* Decodes to canonical `{ source, enabled }` form; encodes back to the most
|
|
680
|
+
* compact JSON representation.
|
|
675
681
|
*
|
|
676
682
|
* @experimental This API is unstable and may change without notice.
|
|
677
683
|
*/
|
|
@@ -696,7 +702,10 @@ export const SubagentEntrySchema = compactEnabledEntry(SubagentEntryObjectSchema
|
|
|
696
702
|
*
|
|
697
703
|
* @experimental This API is unstable and may change without notice.
|
|
698
704
|
*/
|
|
699
|
-
export const SubagentsMapSchema = Schema.Record(
|
|
705
|
+
export const SubagentsMapSchema = Schema.Record(Schema.String, SubagentEntrySchema)
|
|
706
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
707
|
+
.check(workspaceEntriesMatch("subagents"))
|
|
708
|
+
.annotate({
|
|
700
709
|
identifier: "SubagentsMap",
|
|
701
710
|
title: "Subagents Map",
|
|
702
711
|
description: "A map of subagent names to subagent entries.",
|
|
@@ -711,35 +720,27 @@ export const SubagentsMapSchema = Schema.Record(ExtensionMapKeySchema, SubagentE
|
|
|
711
720
|
*/
|
|
712
721
|
export const PackEntryObjectSchema = Schema.Struct({
|
|
713
722
|
source: entrySourceFieldSchema("pack", "packs"),
|
|
714
|
-
authored: authoredFieldSchema,
|
|
715
723
|
}).annotate({
|
|
716
724
|
title: "Pack Entry Object",
|
|
717
|
-
description: "A pack entry with source
|
|
725
|
+
description: "A pack entry with a source.",
|
|
718
726
|
});
|
|
719
727
|
/**
|
|
720
|
-
* Union of pack entry forms: plain source string or object with source
|
|
728
|
+
* Union of pack entry forms: plain source string or object with source.
|
|
721
729
|
*
|
|
722
|
-
* Decodes to canonical `{ source
|
|
723
|
-
* compact JSON representation (plain string when not authored, object otherwise).
|
|
730
|
+
* Decodes to canonical `{ source }` form and encodes back to a source string.
|
|
724
731
|
*
|
|
725
732
|
* @experimental This API is unstable and may change without notice.
|
|
726
733
|
*/
|
|
727
734
|
export const PackEntrySchema = compactOrVerboseEntry(PackEntryObjectSchema, Schema.Struct({
|
|
728
735
|
source: Schema.String,
|
|
729
|
-
authored: Schema.Boolean,
|
|
730
736
|
}), {
|
|
731
|
-
decode: (entry) => typeof entry === "string"
|
|
732
|
-
|
|
733
|
-
: { source: entry.source, authored: entry.authored ?? false },
|
|
734
|
-
encode: (entry) => entry.authored ? { source: entry.source, authored: true } : entry.source,
|
|
737
|
+
decode: (entry) => typeof entry === "string" ? { source: entry } : { source: entry.source },
|
|
738
|
+
encode: (entry) => entry.source,
|
|
735
739
|
}, {
|
|
736
740
|
identifier: "PackEntry",
|
|
737
741
|
title: "Pack Entry",
|
|
738
|
-
description: "A pack entry: a source string, or an object with source
|
|
739
|
-
examples: [
|
|
740
|
-
"@acme/packs/typescript@^1.0.0",
|
|
741
|
-
{ source: "github:acme/agent-extensions", authored: true },
|
|
742
|
-
],
|
|
742
|
+
description: "A pack entry: a source string, or an object with a source.",
|
|
743
|
+
examples: ["@acme/packs/typescript@^1.0.0"],
|
|
743
744
|
});
|
|
744
745
|
/**
|
|
745
746
|
* Packs map - maps pack names to pack entries.
|
|
@@ -753,7 +754,10 @@ export const PackEntrySchema = compactOrVerboseEntry(PackEntryObjectSchema, Sche
|
|
|
753
754
|
*
|
|
754
755
|
* @experimental This API is unstable and may change without notice.
|
|
755
756
|
*/
|
|
756
|
-
export const PacksMapSchema = Schema.Record(
|
|
757
|
+
export const PacksMapSchema = Schema.Record(Schema.String, PackEntrySchema)
|
|
758
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
759
|
+
.check(workspaceEntriesMatch("packs"))
|
|
760
|
+
.annotate({
|
|
757
761
|
identifier: "PacksMap",
|
|
758
762
|
title: "Packs Map",
|
|
759
763
|
description: "A map of pack names to pack entries.",
|
|
@@ -772,38 +776,33 @@ export const LibraryEntryObjectSchema = Schema.Struct({
|
|
|
772
776
|
examples: ["@acme/libraries/frontend"],
|
|
773
777
|
})),
|
|
774
778
|
enabled: enabledFieldSchema,
|
|
775
|
-
authored: authoredFieldSchema,
|
|
776
779
|
}).annotate({
|
|
777
780
|
title: "Library Entry Object",
|
|
778
|
-
description: "A Library subscription entry with source and optional enabled
|
|
781
|
+
description: "A Library subscription entry with source and an optional enabled flag.",
|
|
779
782
|
});
|
|
780
783
|
/**
|
|
781
|
-
* Union of Library entry forms: plain Library ref or object with source + enabled
|
|
784
|
+
* Union of Library entry forms: plain Library ref or object with source + enabled.
|
|
782
785
|
*
|
|
783
786
|
* @experimental This API is unstable and may change without notice.
|
|
784
787
|
*/
|
|
785
788
|
export const LibraryEntrySchema = compactOrVerboseEntry(LibraryEntryObjectSchema, Schema.Struct({
|
|
786
789
|
source: LibraryRefSchema,
|
|
787
790
|
enabled: Schema.Boolean,
|
|
788
|
-
authored: Schema.Boolean,
|
|
789
791
|
}), {
|
|
790
792
|
decode: (entry) => typeof entry === "string"
|
|
791
|
-
? { source: entry, enabled: true
|
|
793
|
+
? { source: entry, enabled: true }
|
|
792
794
|
: {
|
|
793
795
|
source: entry.source,
|
|
794
796
|
enabled: entry.enabled ?? true,
|
|
795
|
-
authored: entry.authored ?? false,
|
|
796
797
|
},
|
|
797
798
|
encode: (entry) => {
|
|
798
|
-
if (entry.enabled
|
|
799
|
+
if (entry.enabled)
|
|
799
800
|
return entry.source;
|
|
800
801
|
const obj = {
|
|
801
802
|
source: entry.source,
|
|
802
803
|
};
|
|
803
804
|
if (!entry.enabled)
|
|
804
805
|
obj.enabled = false;
|
|
805
|
-
if (entry.authored)
|
|
806
|
-
obj.authored = true;
|
|
807
806
|
return obj;
|
|
808
807
|
},
|
|
809
808
|
}, {
|
|
@@ -817,7 +816,9 @@ export const LibraryEntrySchema = compactOrVerboseEntry(LibraryEntryObjectSchema
|
|
|
817
816
|
*
|
|
818
817
|
* @experimental This API is unstable and may change without notice.
|
|
819
818
|
*/
|
|
820
|
-
export const LibrariesMapSchema = Schema.Record(
|
|
819
|
+
export const LibrariesMapSchema = Schema.Record(Schema.String, LibraryEntrySchema)
|
|
820
|
+
.check(Schema.isPropertyNames(ExtensionMapKeySchema))
|
|
821
|
+
.annotate({
|
|
821
822
|
identifier: "LibrariesMap",
|
|
822
823
|
title: "Libraries Map",
|
|
823
824
|
description: "A map of Library subscription names to Library refs.",
|
|
@@ -1040,43 +1041,43 @@ export const SettingsSchema = Schema.Struct({
|
|
|
1040
1041
|
description: "Scalar workspace variables available to Context Files templates.",
|
|
1041
1042
|
})),
|
|
1042
1043
|
skills: Schema.optionalKey(Schema.Union([SkillsMapSchema]).annotate({
|
|
1043
|
-
description: "Your installed skills, keyed by workspace skill name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1044
|
+
description: "Your installed skills, keyed by workspace skill name. Prefer plain source strings; use the object form only to set `enabled: false`.",
|
|
1044
1045
|
})),
|
|
1045
1046
|
skillsConfig: Schema.optionalKey(Schema.Union([SkillsConfigSchema]).annotate({
|
|
1046
1047
|
description: "Feature-level options for skill management.",
|
|
1047
1048
|
})),
|
|
1048
1049
|
commands: Schema.optionalKey(Schema.Union([CommandsMapSchema]).annotate({
|
|
1049
|
-
description: "Your installed commands, keyed by workspace command name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1050
|
+
description: "Your installed commands, keyed by workspace command name. Prefer plain source strings; use the object form only to set `enabled: false`.",
|
|
1050
1051
|
})),
|
|
1051
1052
|
commandsConfig: Schema.optionalKey(Schema.Union([CommandsConfigSchema]).annotate({
|
|
1052
1053
|
description: "Feature-level options for command management.",
|
|
1053
1054
|
})),
|
|
1054
1055
|
files: Schema.optionalKey(Schema.Union([FilesMapSchema]).annotate({
|
|
1055
|
-
description: "Your installed Context Files packages, keyed by workspace package name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1056
|
+
description: "Your installed Context Files packages, keyed by workspace package name. Prefer plain source strings; use the object form only to set `enabled: false` or scalar `inputs`.",
|
|
1056
1057
|
})),
|
|
1057
1058
|
rules: Schema.optionalKey(Schema.Union([RulesMapSchema]).annotate({
|
|
1058
|
-
description: "Your installed rules, keyed by workspace rule name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1059
|
+
description: "Your installed rules, keyed by workspace rule name. Prefer plain source strings; use the object form only to set `enabled: false`.",
|
|
1059
1060
|
})),
|
|
1060
1061
|
hooks: Schema.optionalKey(Schema.Union([HooksMapSchema]).annotate({
|
|
1061
|
-
description: "Your installed hooks, keyed by workspace hook name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1062
|
+
description: "Your installed hooks, keyed by workspace hook name. Prefer plain source strings; use the object form only to set `enabled: false`.",
|
|
1062
1063
|
})),
|
|
1063
1064
|
subagents: Schema.optionalKey(Schema.Union([SubagentsMapSchema]).annotate({
|
|
1064
|
-
description: "Your installed subagents, keyed by workspace subagent name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1065
|
+
description: "Your installed subagents, keyed by workspace subagent name. Prefer plain source strings; use the object form only to set `enabled: false`.",
|
|
1065
1066
|
})),
|
|
1066
1067
|
subagentsConfig: Schema.optionalKey(Schema.Union([SubagentsConfigSchema]).annotate({
|
|
1067
1068
|
description: "Feature-level options for subagent management.",
|
|
1068
1069
|
})),
|
|
1069
1070
|
packs: Schema.optionalKey(Schema.Union([PacksMapSchema]).annotate({
|
|
1070
|
-
description: "Your installed packs, keyed by workspace pack name.
|
|
1071
|
+
description: "Your installed packs, keyed by workspace pack name. Pack entries do not support `enabled` yet.",
|
|
1071
1072
|
})),
|
|
1072
1073
|
packsConfig: Schema.optionalKey(Schema.Union([PacksConfigSchema]).annotate({
|
|
1073
1074
|
description: "Feature-level options for pack management.",
|
|
1074
1075
|
})),
|
|
1075
1076
|
libraries: Schema.optionalKey(Schema.Union([LibrariesMapSchema]).annotate({
|
|
1076
|
-
description: "Your Library subscriptions, keyed by workspace subscription name. Prefer plain Library refs; use the object form only to set `enabled: false
|
|
1077
|
+
description: "Your Library subscriptions, keyed by workspace subscription name. Prefer plain Library refs; use the object form only to set `enabled: false`. Libraries are always latest and do not accept version suffixes.",
|
|
1077
1078
|
})),
|
|
1078
1079
|
mcpServers: Schema.optionalKey(Schema.Union([McpServersMapSchema]).annotate({
|
|
1079
|
-
description: "Your installed MCP servers, keyed by workspace MCP server name. Prefer plain source strings; use the object form only to set `enabled: false
|
|
1080
|
+
description: "Your installed MCP servers, keyed by workspace MCP server name. Prefer plain source strings; use the object form only to set `enabled: false` or persisted `env` values.",
|
|
1080
1081
|
})),
|
|
1081
1082
|
mcpServersConfig: Schema.optionalKey(Schema.Union([McpServersConfigSchema]).annotate({
|
|
1082
1083
|
description: "Feature-level options for MCP server management.",
|
|
@@ -1092,7 +1093,7 @@ export const SettingsSchema = Schema.Struct({
|
|
|
1092
1093
|
// them in the encoded (compact) form so agents see the preferred shape:
|
|
1093
1094
|
// plain source strings, with the object form reserved for non-default flags.
|
|
1094
1095
|
// Assertion needed: `.annotate()` types examples against the decoded
|
|
1095
|
-
// canonical shape (where `enabled
|
|
1096
|
+
// canonical shape (where `enabled` is a required boolean), but
|
|
1096
1097
|
// emitting that shape would teach agents to write the very defaults we want
|
|
1097
1098
|
// them to omit.
|
|
1098
1099
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|