@agentxm/client-core 0.1.6 → 0.3.1
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/agents/coding-agent.d.ts +1 -1
- package/dist/src/unstable/agents/coding-agent.d.ts.map +1 -1
- package/dist/src/unstable/agents/coding-agent.js +1 -1
- package/dist/src/unstable/agents/coding-agent.js.map +1 -1
- package/dist/src/unstable/auth/auth-client.d.ts +1 -1
- package/dist/src/unstable/auth/auth-client.d.ts.map +1 -1
- package/dist/src/unstable/auth/auth-client.js +1 -1
- package/dist/src/unstable/auth/auth-client.js.map +1 -1
- package/dist/src/unstable/auth/credential-store.d.ts +1 -1
- package/dist/src/unstable/auth/credential-store.d.ts.map +1 -1
- package/dist/src/unstable/auth/credential-store.js +1 -1
- package/dist/src/unstable/auth/credential-store.js.map +1 -1
- package/dist/src/unstable/auth/device-login.d.ts +1 -1
- package/dist/src/unstable/auth/device-login.d.ts.map +1 -1
- package/dist/src/unstable/auth/device-login.js +1 -1
- package/dist/src/unstable/auth/device-login.js.map +1 -1
- package/dist/src/unstable/auth/guard-interaction.d.ts +1 -1
- package/dist/src/unstable/auth/guard-interaction.d.ts.map +1 -1
- package/dist/src/unstable/auth/guard-interaction.js +1 -1
- package/dist/src/unstable/auth/guard-interaction.js.map +1 -1
- package/dist/src/unstable/auth/login-interaction.d.ts +1 -1
- package/dist/src/unstable/auth/login-interaction.d.ts.map +1 -1
- package/dist/src/unstable/auth/login-interaction.js +1 -1
- package/dist/src/unstable/auth/login-interaction.js.map +1 -1
- package/dist/src/unstable/auth/registry-url.d.ts +1 -1
- package/dist/src/unstable/auth/registry-url.d.ts.map +1 -1
- package/dist/src/unstable/auth/registry-url.js +1 -1
- package/dist/src/unstable/auth/registry-url.js.map +1 -1
- package/dist/src/unstable/auth/schema.d.ts +3 -3
- package/dist/src/unstable/cli-flags/verbosity.d.ts +1 -1
- package/dist/src/unstable/cli-flags/verbosity.d.ts.map +1 -1
- package/dist/src/unstable/cli-flags/verbosity.js +1 -1
- package/dist/src/unstable/cli-flags/verbosity.js.map +1 -1
- package/dist/src/unstable/cli-renderer/cli-renderer.d.ts +1 -1
- package/dist/src/unstable/cli-renderer/cli-renderer.d.ts.map +1 -1
- package/dist/src/unstable/cli-renderer/cli-renderer.js +1 -1
- package/dist/src/unstable/cli-renderer/cli-renderer.js.map +1 -1
- package/dist/src/unstable/cli-runtime/command-argv.d.ts +1 -1
- package/dist/src/unstable/cli-runtime/command-argv.d.ts.map +1 -1
- package/dist/src/unstable/cli-runtime/command-argv.js +1 -1
- package/dist/src/unstable/cli-runtime/command-argv.js.map +1 -1
- package/dist/src/unstable/cli-runtime/graceful-shutdown.js +1 -1
- package/dist/src/unstable/cli-runtime/graceful-shutdown.js.map +1 -1
- package/dist/src/unstable/cli-runtime/telemetry.d.ts +1 -1
- package/dist/src/unstable/cli-runtime/telemetry.d.ts.map +1 -1
- package/dist/src/unstable/cli-runtime/telemetry.js +1 -1
- package/dist/src/unstable/cli-runtime/telemetry.js.map +1 -1
- package/dist/src/unstable/commands/manager.d.ts +1 -1
- package/dist/src/unstable/commands/manager.d.ts.map +1 -1
- package/dist/src/unstable/commands/manager.js +1 -1
- package/dist/src/unstable/commands/manager.js.map +1 -1
- package/dist/src/unstable/commands/operations/disable.d.ts +2 -2
- package/dist/src/unstable/commands/operations/disable.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/enable.d.ts +2 -2
- package/dist/src/unstable/commands/operations/enable.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/install.d.ts +1 -1
- package/dist/src/unstable/commands/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/new-command.d.ts +2 -2
- package/dist/src/unstable/commands/operations/new-command.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/publish.d.ts +1 -1
- package/dist/src/unstable/commands/operations/publish.d.ts.map +1 -1
- package/dist/src/unstable/commands/operations/uninstall.d.ts +1 -1
- package/dist/src/unstable/commands/operations/uninstall.d.ts.map +1 -1
- package/dist/src/unstable/date-time.d.ts +2 -2
- package/dist/src/unstable/date-time.d.ts.map +1 -1
- package/dist/src/unstable/extensions/operations.d.ts +1 -1
- package/dist/src/unstable/extensions/operations.d.ts.map +1 -1
- package/dist/src/unstable/install-meta/install-meta.d.ts +1 -1
- package/dist/src/unstable/install-meta/install-meta.d.ts.map +1 -1
- package/dist/src/unstable/install-meta/install-meta.js +1 -1
- package/dist/src/unstable/install-meta/install-meta.js.map +1 -1
- package/dist/src/unstable/install-method/install-method.d.ts +1 -1
- package/dist/src/unstable/install-method/install-method.d.ts.map +1 -1
- package/dist/src/unstable/install-method/install-method.js +1 -1
- package/dist/src/unstable/install-method/install-method.js.map +1 -1
- package/dist/src/unstable/lint/catalog/index.d.ts +39 -0
- package/dist/src/unstable/lint/catalog/index.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/index.js +49 -0
- package/dist/src/unstable/lint/catalog/index.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts +31 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +41 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts +18 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-present.js +41 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-present.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts +26 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +34 -0
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts +61 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js +46 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts +53 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/platform.js +90 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/platform.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts +60 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.js +85 -0
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.js.map +1 -0
- package/dist/src/unstable/lint/catalog/pack.d.ts +37 -0
- package/dist/src/unstable/lint/catalog/pack.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/pack.js +47 -0
- package/dist/src/unstable/lint/catalog/pack.js.map +1 -0
- package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts +59 -0
- package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/shared/schema-rule.js +99 -0
- package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts +31 -0
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +151 -0
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts +26 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +41 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts +18 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-present.js +46 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-present.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts +22 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +37 -0
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts +17 -0
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +38 -0
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts +65 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js +50 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts +52 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/platform.js +89 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/platform.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts +58 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.js +83 -0
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.js.map +1 -0
- package/dist/src/unstable/lint/catalog/skill.d.ts +38 -0
- package/dist/src/unstable/lint/catalog/skill.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/skill.js +52 -0
- package/dist/src/unstable/lint/catalog/skill.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts +23 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js +75 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts +23 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js +76 -0
- package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts +18 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js +16 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts +133 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js +149 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts +25 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js +30 -0
- package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts +22 -0
- package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/initialized.js +55 -0
- package/dist/src/unstable/lint/catalog/workspace/initialized.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts +33 -0
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js +125 -0
- package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts +19 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +145 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts +17 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js +107 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts +22 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js +163 -0
- package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts +28 -0
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js +67 -0
- package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts +30 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js +232 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts +26 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +129 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts +26 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +151 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts +29 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js +149 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts +29 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +242 -0
- package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts +141 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js +123 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts +38 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js +311 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts +60 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js +201 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts +65 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js +95 -0
- package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace.d.ts +47 -0
- package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -0
- package/dist/src/unstable/lint/catalog/workspace.js +80 -0
- package/dist/src/unstable/lint/catalog/workspace.js.map +1 -0
- package/dist/src/unstable/lint/cli.d.ts +297 -0
- package/dist/src/unstable/lint/cli.d.ts.map +1 -0
- package/dist/src/unstable/lint/cli.js +388 -0
- package/dist/src/unstable/lint/cli.js.map +1 -0
- package/dist/src/unstable/lint/compose-path.d.ts +27 -0
- package/dist/src/unstable/lint/compose-path.d.ts.map +1 -0
- package/dist/src/unstable/lint/compose-path.js +61 -0
- package/dist/src/unstable/lint/compose-path.js.map +1 -0
- package/dist/src/unstable/lint/config.d.ts +103 -0
- package/dist/src/unstable/lint/config.d.ts.map +1 -0
- package/dist/src/unstable/lint/config.js +137 -0
- package/dist/src/unstable/lint/config.js.map +1 -0
- package/dist/src/unstable/lint/context.d.ts +265 -0
- package/dist/src/unstable/lint/context.d.ts.map +1 -0
- package/dist/src/unstable/lint/context.js +21 -0
- package/dist/src/unstable/lint/context.js.map +1 -0
- package/dist/src/unstable/lint/evaluate.d.ts +68 -0
- package/dist/src/unstable/lint/evaluate.d.ts.map +1 -0
- package/dist/src/unstable/lint/evaluate.js +147 -0
- package/dist/src/unstable/lint/evaluate.js.map +1 -0
- package/dist/src/unstable/lint/index.d.ts +28 -0
- package/dist/src/unstable/lint/index.d.ts.map +1 -0
- package/dist/src/unstable/lint/index.js +35 -0
- package/dist/src/unstable/lint/index.js.map +1 -0
- package/dist/src/unstable/lint/issues-to-findings.d.ts +35 -0
- package/dist/src/unstable/lint/issues-to-findings.d.ts.map +1 -0
- package/dist/src/unstable/lint/issues-to-findings.js +97 -0
- package/dist/src/unstable/lint/issues-to-findings.js.map +1 -0
- package/dist/src/unstable/lint/rule.d.ts +139 -0
- package/dist/src/unstable/lint/rule.d.ts.map +1 -0
- package/dist/src/unstable/lint/rule.js +25 -0
- package/dist/src/unstable/lint/rule.js.map +1 -0
- package/dist/src/unstable/lockfile/schema.d.ts +404 -404
- package/dist/src/unstable/mcp-servers/manager.d.ts +1 -1
- package/dist/src/unstable/mcp-servers/manager.d.ts.map +1 -1
- package/dist/src/unstable/mcp-servers/manager.js +1 -1
- package/dist/src/unstable/mcp-servers/manager.js.map +1 -1
- package/dist/src/unstable/mcp-servers/operations/install.d.ts +1 -1
- package/dist/src/unstable/mcp-servers/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/mcp-servers/operations/publish.d.ts +1 -1
- package/dist/src/unstable/mcp-servers/operations/publish.d.ts.map +1 -1
- package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts +1 -1
- package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts.map +1 -1
- package/dist/src/unstable/packs/manager.d.ts +1 -1
- package/dist/src/unstable/packs/manager.d.ts.map +1 -1
- package/dist/src/unstable/packs/manager.js +1 -1
- package/dist/src/unstable/packs/manager.js.map +1 -1
- package/dist/src/unstable/packs/operations/add-to-pack.d.ts +2 -2
- package/dist/src/unstable/packs/operations/add-to-pack.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/install.d.ts +2 -2
- package/dist/src/unstable/packs/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/install.js +41 -0
- package/dist/src/unstable/packs/operations/install.js.map +1 -1
- package/dist/src/unstable/packs/operations/new-pack.d.ts +2 -2
- package/dist/src/unstable/packs/operations/new-pack.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/publish.d.ts +2 -2
- package/dist/src/unstable/packs/operations/publish.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/publish.js +1 -0
- package/dist/src/unstable/packs/operations/publish.js.map +1 -1
- package/dist/src/unstable/packs/operations/remove-from-pack.d.ts +2 -2
- package/dist/src/unstable/packs/operations/remove-from-pack.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/uninstall.d.ts +2 -2
- package/dist/src/unstable/packs/operations/uninstall.d.ts.map +1 -1
- package/dist/src/unstable/packs/operations/unpack.d.ts +2 -2
- package/dist/src/unstable/packs/operations/unpack.d.ts.map +1 -1
- package/dist/src/unstable/{workspace → plan}/apply-plan.d.ts +9 -0
- package/dist/src/unstable/plan/apply-plan.d.ts.map +1 -0
- package/dist/src/unstable/{workspace → plan}/apply-plan.js +10 -1
- package/dist/src/unstable/plan/apply-plan.js.map +1 -0
- package/dist/src/unstable/plan/index.d.ts +24 -0
- package/dist/src/unstable/plan/index.d.ts.map +1 -0
- package/dist/src/unstable/plan/index.js +28 -0
- package/dist/src/unstable/plan/index.js.map +1 -0
- package/dist/src/unstable/{workspace → plan}/plan.d.ts +6 -0
- package/dist/src/unstable/plan/plan.d.ts.map +1 -0
- package/dist/src/unstable/{workspace → plan}/plan.js +6 -0
- package/dist/src/unstable/plan/plan.js.map +1 -0
- package/dist/src/unstable/{workspace → plan}/resolve-plan.d.ts +30 -2
- package/dist/src/unstable/plan/resolve-plan.d.ts.map +1 -0
- package/dist/src/unstable/{workspace → plan}/resolve-plan.js +37 -6
- package/dist/src/unstable/plan/resolve-plan.js.map +1 -0
- package/dist/src/unstable/publish/manifest-policy.d.ts +8 -8
- package/dist/src/unstable/registry/__generated__/registry-client.d.ts +675 -518
- package/dist/src/unstable/registry/__generated__/registry-client.d.ts.map +1 -1
- package/dist/src/unstable/registry/__generated__/registry-client.js +546 -396
- package/dist/src/unstable/registry/__generated__/registry-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 +123 -18
- package/dist/src/unstable/registry/remote-client.js.map +1 -1
- package/dist/src/unstable/registry/schema.d.ts +2 -2
- package/dist/src/unstable/settings/index.d.ts +2 -0
- package/dist/src/unstable/settings/index.d.ts.map +1 -1
- package/dist/src/unstable/settings/index.js +1 -0
- package/dist/src/unstable/settings/index.js.map +1 -1
- package/dist/src/unstable/settings/schema.d.ts +3 -0
- package/dist/src/unstable/settings/schema.d.ts.map +1 -1
- package/dist/src/unstable/settings/schema.js +3 -0
- package/dist/src/unstable/settings/schema.js.map +1 -1
- package/dist/src/unstable/settings/settings.d.ts +10 -0
- package/dist/src/unstable/settings/settings.d.ts.map +1 -1
- package/dist/src/unstable/skills/manager.d.ts +1 -1
- package/dist/src/unstable/skills/manager.d.ts.map +1 -1
- package/dist/src/unstable/skills/manager.js +2 -2
- package/dist/src/unstable/skills/manager.js.map +1 -1
- package/dist/src/unstable/skills/materialization.js +1 -1
- package/dist/src/unstable/skills/materialization.js.map +1 -1
- package/dist/src/unstable/skills/operations/copy.d.ts +2 -2
- package/dist/src/unstable/skills/operations/copy.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/disable.d.ts +2 -2
- package/dist/src/unstable/skills/operations/disable.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/enable.d.ts +2 -2
- package/dist/src/unstable/skills/operations/enable.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/install.d.ts +2 -2
- package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/install.js +1 -1
- package/dist/src/unstable/skills/operations/install.js.map +1 -1
- package/dist/src/unstable/skills/operations/new-skill.d.ts +2 -2
- package/dist/src/unstable/skills/operations/new-skill.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/publish.d.ts +2 -2
- package/dist/src/unstable/skills/operations/publish.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/rename.d.ts +2 -2
- package/dist/src/unstable/skills/operations/rename.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/uninstall.d.ts +2 -2
- package/dist/src/unstable/skills/operations/uninstall.d.ts.map +1 -1
- package/dist/src/unstable/skills/operations/uninstall.js +1 -1
- package/dist/src/unstable/skills/operations/uninstall.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 +1 -1
- package/dist/src/unstable/source-resolution/service.js.map +1 -1
- package/dist/src/unstable/sources/types.d.ts +29 -29
- package/dist/src/unstable/sources/types.d.ts.map +1 -1
- package/dist/src/unstable/subagents/manager.d.ts +1 -1
- package/dist/src/unstable/subagents/manager.d.ts.map +1 -1
- package/dist/src/unstable/subagents/manager.js +4 -4
- package/dist/src/unstable/subagents/manager.js.map +1 -1
- package/dist/src/unstable/subagents/manifest-schema.js +2 -2
- package/dist/src/unstable/subagents/manifest-schema.js.map +1 -1
- package/dist/src/unstable/subagents/operations/disable.d.ts +2 -2
- package/dist/src/unstable/subagents/operations/disable.d.ts.map +1 -1
- package/dist/src/unstable/subagents/operations/enable.d.ts +2 -2
- package/dist/src/unstable/subagents/operations/enable.d.ts.map +1 -1
- package/dist/src/unstable/subagents/operations/publish.d.ts +2 -2
- package/dist/src/unstable/subagents/operations/publish.d.ts.map +1 -1
- package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts +20 -12
- package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts.map +1 -1
- package/dist/src/unstable/telemetry/__generated__/telemetry-client.js +11 -3
- package/dist/src/unstable/telemetry/__generated__/telemetry-client.js.map +1 -1
- package/dist/src/unstable/telemetry/client.d.ts +1 -1
- package/dist/src/unstable/telemetry/client.d.ts.map +1 -1
- package/dist/src/unstable/telemetry/client.js +1 -1
- package/dist/src/unstable/telemetry/client.js.map +1 -1
- package/dist/src/unstable/update-check/update-check.d.ts +1 -1
- package/dist/src/unstable/update-check/update-check.d.ts.map +1 -1
- package/dist/src/unstable/update-check/update-check.js +1 -1
- package/dist/src/unstable/update-check/update-check.js.map +1 -1
- package/dist/src/unstable/utils/fs-helpers.d.ts +7 -6
- package/dist/src/unstable/utils/fs-helpers.d.ts.map +1 -1
- package/dist/src/unstable/utils/fs-helpers.js +9 -9
- package/dist/src/unstable/utils/fs-helpers.js.map +1 -1
- package/dist/src/unstable/workflows/install-command/workflow.d.ts +1 -1
- package/dist/src/unstable/workflows/install-command/workflow.d.ts.map +1 -1
- package/dist/src/unstable/workflows/install-command/workflow.js +1 -1
- package/dist/src/unstable/workflows/install-command/workflow.js.map +1 -1
- package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts +1 -1
- 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/augment-plan.d.ts +1 -1
- package/dist/src/unstable/workspace/augment-plan.d.ts.map +1 -1
- package/dist/src/unstable/workspace/display-plan.d.ts +1 -1
- package/dist/src/unstable/workspace/display-plan.d.ts.map +1 -1
- package/dist/src/unstable/workspace/display-plan.js +1 -1
- package/dist/src/unstable/workspace/display-plan.js.map +1 -1
- package/dist/src/unstable/workspace/index.d.ts +1 -5
- package/dist/src/unstable/workspace/index.d.ts.map +1 -1
- package/dist/src/unstable/workspace/index.js +5 -7
- package/dist/src/unstable/workspace/index.js.map +1 -1
- package/dist/src/unstable/workspace/initialization-interaction.d.ts +1 -1
- package/dist/src/unstable/workspace/initialization-interaction.d.ts.map +1 -1
- package/dist/src/unstable/workspace/initialization-interaction.js +1 -1
- package/dist/src/unstable/workspace/initialization-interaction.js.map +1 -1
- package/dist/src/unstable/workspace/initialization.d.ts +15 -0
- package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
- package/dist/src/unstable/workspace/initialization.js +2 -2
- package/dist/src/unstable/workspace/initialization.js.map +1 -1
- package/dist/src/unstable/workspace/paths.d.ts +4 -21
- package/dist/src/unstable/workspace/paths.d.ts.map +1 -1
- package/dist/src/unstable/workspace/paths.js +19 -8
- package/dist/src/unstable/workspace/paths.js.map +1 -1
- package/dist/src/unstable/workspace/reconciliation.d.ts +1 -1
- package/dist/src/unstable/workspace/reconciliation.d.ts.map +1 -1
- package/dist/src/unstable/workspace/resolve-plan-interaction.d.ts +1 -1
- package/dist/src/unstable/workspace/resolve-plan-interaction.d.ts.map +1 -1
- package/dist/src/unstable/workspace/resolve-plan-interaction.js +1 -1
- package/dist/src/unstable/workspace/resolve-plan-interaction.js.map +1 -1
- package/dist/src/unstable/workspace/scan-plan-readiness.d.ts +1 -1
- package/dist/src/unstable/workspace/scan-plan-readiness.d.ts.map +1 -1
- package/dist/src/unstable/workspace/service-interface.d.ts +3 -1
- package/dist/src/unstable/workspace/service-interface.d.ts.map +1 -1
- package/dist/src/unstable/workspace/service-interface.js +1 -1
- package/dist/src/unstable/workspace/service-interface.js.map +1 -1
- package/dist/src/unstable/workspace/service.js +1 -1
- package/dist/src/unstable/workspace/service.js.map +1 -1
- package/dist/src/unstable/workspace/settings-validation/types.d.ts +11 -1
- package/dist/src/unstable/workspace/settings-validation/types.d.ts.map +1 -1
- package/dist/src/unstable/workspace/version-currency/check-currency.d.ts +41 -0
- package/dist/src/unstable/workspace/version-currency/check-currency.d.ts.map +1 -0
- package/dist/src/unstable/workspace/version-currency/check-currency.js +50 -0
- package/dist/src/unstable/workspace/version-currency/check-currency.js.map +1 -0
- package/dist/src/unstable/workspace/version-currency/collectors.d.ts +55 -0
- package/dist/src/unstable/workspace/version-currency/collectors.d.ts.map +1 -0
- package/dist/src/unstable/workspace/version-currency/collectors.js +127 -0
- package/dist/src/unstable/workspace/version-currency/collectors.js.map +1 -0
- package/dist/src/unstable/workspace/version-currency/index.d.ts +11 -0
- package/dist/src/unstable/workspace/version-currency/index.d.ts.map +1 -0
- package/dist/src/unstable/workspace/version-currency/index.js +11 -0
- package/dist/src/unstable/workspace/version-currency/index.js.map +1 -0
- package/dist/src/unstable/workspace/version-currency/test-stubs.d.ts +5 -0
- package/dist/src/unstable/workspace/version-currency/test-stubs.d.ts.map +1 -0
- package/dist/src/unstable/workspace/version-currency/test-stubs.js +31 -0
- package/dist/src/unstable/workspace/version-currency/test-stubs.js.map +1 -0
- package/package.json +14 -6
- package/dist/src/unstable/workspace/apply-plan.d.ts.map +0 -1
- package/dist/src/unstable/workspace/apply-plan.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/check-def.d.ts +0 -29
- package/dist/src/unstable/workspace/doctor/check-def.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/check-def.js +0 -17
- package/dist/src/unstable/workspace/doctor/check-def.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts +0 -5
- package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/agents-configured.js +0 -170
- package/dist/src/unstable/workspace/doctor/checks/agents-configured.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts +0 -5
- package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js +0 -472
- package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts +0 -5
- package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js +0 -201
- package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/diagnose.d.ts +0 -49
- package/dist/src/unstable/workspace/doctor/diagnose.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/diagnose.js +0 -65
- package/dist/src/unstable/workspace/doctor/diagnose.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/index.d.ts +0 -8
- package/dist/src/unstable/workspace/doctor/index.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/index.js +0 -6
- package/dist/src/unstable/workspace/doctor/index.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/rollup.d.ts +0 -4
- package/dist/src/unstable/workspace/doctor/rollup.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/rollup.js +0 -28
- package/dist/src/unstable/workspace/doctor/rollup.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/runner.d.ts +0 -6
- package/dist/src/unstable/workspace/doctor/runner.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/runner.js +0 -179
- package/dist/src/unstable/workspace/doctor/runner.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/types.d.ts +0 -125
- package/dist/src/unstable/workspace/doctor/types.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/types.js +0 -58
- package/dist/src/unstable/workspace/doctor/types.js.map +0 -1
- package/dist/src/unstable/workspace/plan.d.ts.map +0 -1
- package/dist/src/unstable/workspace/plan.js.map +0 -1
- package/dist/src/unstable/workspace/resolve-plan.d.ts.map +0 -1
- package/dist/src/unstable/workspace/resolve-plan.js.map +0 -1
- package/dist/src/unstable/workspace/sync.d.ts +0 -17
- package/dist/src/unstable/workspace/sync.d.ts.map +0 -1
- package/dist/src/unstable/workspace/sync.js +0 -142
- package/dist/src/unstable/workspace/sync.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pack/manifest-keys-recognized` — `extension-pack.json` contains only keys
|
|
3
|
+
* declared by `ExtensionPackManifestSchema`.
|
|
4
|
+
*
|
|
5
|
+
* The paired `-schema-valid` rule ignores excess properties by construction
|
|
6
|
+
* (`onExcessProperty: "ignore"`); this rule surfaces them at warning severity
|
|
7
|
+
* so newer-schema manifests can roll out ahead of registry deploys.
|
|
8
|
+
*
|
|
9
|
+
* A forbidden `packs:` dependency section (ONTOLOGY D015 "Cross-Domain
|
|
10
|
+
* Extension Pack Semantics") decodes as an unrecognized top-level key here
|
|
11
|
+
* and surfaces at warning severity in v1; there is no dedicated error-severity
|
|
12
|
+
* rule for the `packs:` case — see `docs/design/lint-engine.md §10.pack
|
|
13
|
+
* (Notes)`. A stricter error-severity enforcement can ship in v1.5+ if real
|
|
14
|
+
* publish traffic motivates it.
|
|
15
|
+
*
|
|
16
|
+
* Allowed-keys set is derived from `ExtensionPackManifestSchema.fields` — no
|
|
17
|
+
* copy-paste of field names. A schema gain (or rename) automatically updates
|
|
18
|
+
* the allowlist.
|
|
19
|
+
*
|
|
20
|
+
* Early-return arm (no findings):
|
|
21
|
+
*
|
|
22
|
+
* - `subject.packJson === undefined` / non-object — nothing to enumerate;
|
|
23
|
+
* `pack/manifest-present` owns the absence case.
|
|
24
|
+
*
|
|
25
|
+
* @experimental This API is unstable and may change without notice.
|
|
26
|
+
* @packageDocumentation
|
|
27
|
+
*/
|
|
28
|
+
import * as Effect from "effect/Effect";
|
|
29
|
+
import { ExtensionPackManifestSchema } from "../../../packs/manifest-schema.js";
|
|
30
|
+
import { enumerateUnknownTopLevelKeys, structFieldKeys } from "../shared/schema-rule.js";
|
|
31
|
+
const RULE_ID = "pack/manifest-keys-recognized";
|
|
32
|
+
const EXTENSION_PACK_JSON = "extension-pack.json";
|
|
33
|
+
const allowedKeys = structFieldKeys(ExtensionPackManifestSchema);
|
|
34
|
+
export const manifestKeysRecognizedRule = {
|
|
35
|
+
id: RULE_ID,
|
|
36
|
+
description: "extension-pack.json contains only keys recognized by ExtensionPackManifestSchema.",
|
|
37
|
+
kind: "advisory",
|
|
38
|
+
severity: "warning",
|
|
39
|
+
check: (context) => Effect.succeed(enumerateUnknownTopLevelKeys(RULE_ID, "warning", EXTENSION_PACK_JSON, allowedKeys, context.subject.packJson)),
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=manifest-keys-recognized.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-keys-recognized.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,OAAO,GAAG,+BAA+B,CAAC;AAChD,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,MAAM,WAAW,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,0BAA0B,GAAkC;IACvE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,mFAAmF;IAChG,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,OAAO,CACZ,4BAA4B,CAC1B,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,OAAO,CAAC,OAAO,CAAC,QAAQ,CACzB,CACF;CACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pack/manifest-present` — packs must have an `extension-pack.json` at the
|
|
3
|
+
* pack root.
|
|
4
|
+
*
|
|
5
|
+
* Packs are registry-only at v1; every pack context is expected to expose a
|
|
6
|
+
* manifest. Unlike `skill/manifest-present`, there is no native-vs-non-native
|
|
7
|
+
* split — the rule applies to every pack context unconditionally.
|
|
8
|
+
*
|
|
9
|
+
* Advisory-only — scaffolding a manifest is `axm packs new` (a user-authored
|
|
10
|
+
* action) per `docs/design/lint-engine.md §10.pack (Notes)`.
|
|
11
|
+
*
|
|
12
|
+
* @experimental This API is unstable and may change without notice.
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
import type { PackRuleContext } from "../../context.js";
|
|
16
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
17
|
+
export declare const manifestPresentRule: AdvisoryRule<PackRuleContext>;
|
|
18
|
+
//# sourceMappingURL=manifest-present.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack/manifest-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,eAAe,CA2B7D,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pack/manifest-present` — packs must have an `extension-pack.json` at the
|
|
3
|
+
* pack root.
|
|
4
|
+
*
|
|
5
|
+
* Packs are registry-only at v1; every pack context is expected to expose a
|
|
6
|
+
* manifest. Unlike `skill/manifest-present`, there is no native-vs-non-native
|
|
7
|
+
* split — the rule applies to every pack context unconditionally.
|
|
8
|
+
*
|
|
9
|
+
* Advisory-only — scaffolding a manifest is `axm packs new` (a user-authored
|
|
10
|
+
* action) per `docs/design/lint-engine.md §10.pack (Notes)`.
|
|
11
|
+
*
|
|
12
|
+
* @experimental This API is unstable and may change without notice.
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
import * as Effect from "effect/Effect";
|
|
16
|
+
const RULE_ID = "pack/manifest-present";
|
|
17
|
+
const EXTENSION_PACK_JSON = "extension-pack.json";
|
|
18
|
+
export const manifestPresentRule = {
|
|
19
|
+
id: RULE_ID,
|
|
20
|
+
description: "Pack has an extension-pack.json manifest at its root.",
|
|
21
|
+
kind: "advisory",
|
|
22
|
+
severity: "error",
|
|
23
|
+
check: (context) => Effect.map(context.files.exists(EXTENSION_PACK_JSON), (present) => {
|
|
24
|
+
if (present) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
kind: "advisory",
|
|
30
|
+
ruleId: RULE_ID,
|
|
31
|
+
severity: "error",
|
|
32
|
+
message: "extension-pack.json is missing; every pack must expose a manifest at the pack root.",
|
|
33
|
+
suggestions: [
|
|
34
|
+
`Create ${EXTENSION_PACK_JSON} with the required manifest fields (owner, type, name, version).`,
|
|
35
|
+
],
|
|
36
|
+
location: { file: EXTENSION_PACK_JSON },
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=manifest-present.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack/manifest-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,uBAAuB,CAAC;AACxC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,uDAAuD;IACpE,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CACR,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACzC,CAAC,OAAO,EAAkC,EAAE;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,qFAAqF;gBACvF,WAAW,EAAE;oBACX,UAAU,mBAAmB,kEAAkE;iBAChG;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;aACxC;SACF,CAAC;IACJ,CAAC,CACF;CACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pack/manifest-schema-valid` — `extension-pack.json` conforms to
|
|
3
|
+
* `ExtensionPackManifestSchema`.
|
|
4
|
+
*
|
|
5
|
+
* Delegates to Effect Schema per `docs/design/lint-engine.md §4`
|
|
6
|
+
* ("Schema-valid rules delegate to Effect Schema"). Issues map 1:1 to
|
|
7
|
+
* findings via `issuesToFindings`.
|
|
8
|
+
*
|
|
9
|
+
* Early-return arm (no findings):
|
|
10
|
+
*
|
|
11
|
+
* - `subject.packJson === undefined` — manifest is absent (covered by
|
|
12
|
+
* `pack/manifest-present`).
|
|
13
|
+
*
|
|
14
|
+
* Dependency-map FQN grammar and `VersionConstraint` decode arms are owned by
|
|
15
|
+
* `ExtensionPackManifestSchema` itself — the dependency sections are typed
|
|
16
|
+
* `Record<FQN, VersionConstraint>` so unknown FQNs, malformed grammar, and
|
|
17
|
+
* bad semver ranges surface as normal schema issues through the shared
|
|
18
|
+
* `schemaDecodeFindings` plumbing.
|
|
19
|
+
*
|
|
20
|
+
* @experimental This API is unstable and may change without notice.
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import type { PackRuleContext } from "../../context.js";
|
|
24
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
25
|
+
export declare const manifestSchemaValidRule: AdvisoryRule<PackRuleContext>;
|
|
26
|
+
//# sourceMappingURL=manifest-schema-valid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,eAAe,CAajE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pack/manifest-schema-valid` — `extension-pack.json` conforms to
|
|
3
|
+
* `ExtensionPackManifestSchema`.
|
|
4
|
+
*
|
|
5
|
+
* Delegates to Effect Schema per `docs/design/lint-engine.md §4`
|
|
6
|
+
* ("Schema-valid rules delegate to Effect Schema"). Issues map 1:1 to
|
|
7
|
+
* findings via `issuesToFindings`.
|
|
8
|
+
*
|
|
9
|
+
* Early-return arm (no findings):
|
|
10
|
+
*
|
|
11
|
+
* - `subject.packJson === undefined` — manifest is absent (covered by
|
|
12
|
+
* `pack/manifest-present`).
|
|
13
|
+
*
|
|
14
|
+
* Dependency-map FQN grammar and `VersionConstraint` decode arms are owned by
|
|
15
|
+
* `ExtensionPackManifestSchema` itself — the dependency sections are typed
|
|
16
|
+
* `Record<FQN, VersionConstraint>` so unknown FQNs, malformed grammar, and
|
|
17
|
+
* bad semver ranges surface as normal schema issues through the shared
|
|
18
|
+
* `schemaDecodeFindings` plumbing.
|
|
19
|
+
*
|
|
20
|
+
* @experimental This API is unstable and may change without notice.
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import { ExtensionPackManifestSchema } from "../../../packs/manifest-schema.js";
|
|
24
|
+
import { schemaDecodeFindings } from "../shared/schema-rule.js";
|
|
25
|
+
const RULE_ID = "pack/manifest-schema-valid";
|
|
26
|
+
const EXTENSION_PACK_JSON = "extension-pack.json";
|
|
27
|
+
export const manifestSchemaValidRule = {
|
|
28
|
+
id: RULE_ID,
|
|
29
|
+
description: "extension-pack.json conforms to ExtensionPackManifestSchema.",
|
|
30
|
+
kind: "advisory",
|
|
31
|
+
severity: "error",
|
|
32
|
+
check: (context) => schemaDecodeFindings(RULE_ID, "error", EXTENSION_PACK_JSON, ExtensionPackManifestSchema, context.subject.packJson),
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=manifest-schema-valid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,OAAO,GAAG,4BAA4B,CAAC;AAC7C,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAkC;IACpE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,8DAA8D;IAC3E,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,oBAAoB,CAClB,OAAO,EACP,OAAO,EACP,mBAAmB,EACnB,2BAA2B,EAC3B,OAAO,CAAC,OAAO,CAAC,QAAQ,CACzB;CACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildPackRuleContexts` — build `PackRuleContext[]` from a
|
|
3
|
+
* `WorkspaceIndex`-shaped input.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3c owns `WorkspaceIndex`; Phase 3b pins the minimal shape
|
|
6
|
+
* `buildPackRuleContexts` consumes so Phase 3c can satisfy it without
|
|
7
|
+
* renegotiation. The minimal shape is **exactly** the set of fields the
|
|
8
|
+
* function reads per installed pack:
|
|
9
|
+
*
|
|
10
|
+
* - `packJson` — pre-decoded `extension-pack.json` when present (caller
|
|
11
|
+
* decodes once per pack, so rules don't re-read + re-parse).
|
|
12
|
+
* - `displayRoot` — posix-relative root used by the renderer; the caller
|
|
13
|
+
* picks per provenance (see the table below).
|
|
14
|
+
* - `files` — the pre-bound `PackFileAccessor`. The caller chooses VFT or
|
|
15
|
+
* platform-backed.
|
|
16
|
+
*
|
|
17
|
+
* Provenance → `displayRoot` table:
|
|
18
|
+
*
|
|
19
|
+
* | Surface | `displayRoot` |
|
|
20
|
+
* | ---------------------------------- | ----------------------------------------- |
|
|
21
|
+
* | Publish (Phase 4) | `""` |
|
|
22
|
+
* | Registry-installed pack | `.axm/extensions/<@owner>/packs/<name>` |
|
|
23
|
+
*
|
|
24
|
+
* @experimental This API is unstable and may change without notice.
|
|
25
|
+
* @packageDocumentation
|
|
26
|
+
*/
|
|
27
|
+
import type { PackFileAccessor, PackRuleContext } from "../../context.js";
|
|
28
|
+
/**
|
|
29
|
+
* Minimal structural shape `buildPackRuleContexts` needs per installed
|
|
30
|
+
* pack. Phase 3c's `WorkspaceIndex` satisfies this by construction — its
|
|
31
|
+
* `installedPacks` field is `ReadonlyArray<InstalledPackInfo>`.
|
|
32
|
+
*
|
|
33
|
+
* @experimental This API is unstable and may change without notice.
|
|
34
|
+
*/
|
|
35
|
+
export interface InstalledPackInfo {
|
|
36
|
+
readonly packJson: unknown;
|
|
37
|
+
readonly displayRoot: string;
|
|
38
|
+
readonly files: PackFileAccessor;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Minimal structural shape of the WorkspaceIndex subset `buildPackRuleContexts`
|
|
42
|
+
* consumes. Keeping the function input narrow keeps Phase 3b and Phase 3c
|
|
43
|
+
* decoupled: the index implementation (Phase 3c) can add more methods
|
|
44
|
+
* without affecting this call site.
|
|
45
|
+
*
|
|
46
|
+
* @experimental This API is unstable and may change without notice.
|
|
47
|
+
*/
|
|
48
|
+
export interface PackIndexView {
|
|
49
|
+
readonly installedPacks: ReadonlyArray<InstalledPackInfo>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Project an index's `installedPacks` into `PackRuleContext`s with their
|
|
53
|
+
* `displayRoot` and `subject` fields pre-populated.
|
|
54
|
+
*
|
|
55
|
+
* Publish callers bypass this helper and construct a single context directly
|
|
56
|
+
* — they have exactly one pack in play and no workspace.
|
|
57
|
+
*
|
|
58
|
+
* @experimental This API is unstable and may change without notice.
|
|
59
|
+
*/
|
|
60
|
+
export declare const buildPackRuleContexts: (index: PackIndexView) => ReadonlyArray<PackRuleContext>;
|
|
61
|
+
//# sourceMappingURL=contexts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAM1E;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC3D;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,aAAa,KAAG,aAAa,CAAC,eAAe,CASvF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildPackRuleContexts` — build `PackRuleContext[]` from a
|
|
3
|
+
* `WorkspaceIndex`-shaped input.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3c owns `WorkspaceIndex`; Phase 3b pins the minimal shape
|
|
6
|
+
* `buildPackRuleContexts` consumes so Phase 3c can satisfy it without
|
|
7
|
+
* renegotiation. The minimal shape is **exactly** the set of fields the
|
|
8
|
+
* function reads per installed pack:
|
|
9
|
+
*
|
|
10
|
+
* - `packJson` — pre-decoded `extension-pack.json` when present (caller
|
|
11
|
+
* decodes once per pack, so rules don't re-read + re-parse).
|
|
12
|
+
* - `displayRoot` — posix-relative root used by the renderer; the caller
|
|
13
|
+
* picks per provenance (see the table below).
|
|
14
|
+
* - `files` — the pre-bound `PackFileAccessor`. The caller chooses VFT or
|
|
15
|
+
* platform-backed.
|
|
16
|
+
*
|
|
17
|
+
* Provenance → `displayRoot` table:
|
|
18
|
+
*
|
|
19
|
+
* | Surface | `displayRoot` |
|
|
20
|
+
* | ---------------------------------- | ----------------------------------------- |
|
|
21
|
+
* | Publish (Phase 4) | `""` |
|
|
22
|
+
* | Registry-installed pack | `.axm/extensions/<@owner>/packs/<name>` |
|
|
23
|
+
*
|
|
24
|
+
* @experimental This API is unstable and may change without notice.
|
|
25
|
+
* @packageDocumentation
|
|
26
|
+
*/
|
|
27
|
+
// -----------------------------------------------------------------------------
|
|
28
|
+
// buildPackRuleContexts
|
|
29
|
+
// -----------------------------------------------------------------------------
|
|
30
|
+
/**
|
|
31
|
+
* Project an index's `installedPacks` into `PackRuleContext`s with their
|
|
32
|
+
* `displayRoot` and `subject` fields pre-populated.
|
|
33
|
+
*
|
|
34
|
+
* Publish callers bypass this helper and construct a single context directly
|
|
35
|
+
* — they have exactly one pack in play and no workspace.
|
|
36
|
+
*
|
|
37
|
+
* @experimental This API is unstable and may change without notice.
|
|
38
|
+
*/
|
|
39
|
+
export const buildPackRuleContexts = (index) => index.installedPacks.map((info) => ({
|
|
40
|
+
subject: {
|
|
41
|
+
packJson: info.packJson,
|
|
42
|
+
},
|
|
43
|
+
files: info.files,
|
|
44
|
+
displayRoot: info.displayRoot,
|
|
45
|
+
}));
|
|
46
|
+
//# sourceMappingURL=contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAiCH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAoB,EAAkC,EAAE,CAC5F,KAAK,CAAC,cAAc,CAAC,GAAG,CACtB,CAAC,IAAI,EAAmB,EAAE,CAAC,CAAC;IAC1B,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB;IACD,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,WAAW,EAAE,IAAI,CAAC,WAAW;CAC9B,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-backed `PackFileAccessor` for `axm lint`.
|
|
3
|
+
*
|
|
4
|
+
* Maps accessor-relative posix paths to on-disk absolute paths rooted at
|
|
5
|
+
* the caller-supplied pack-root directory. Layout conventions per
|
|
6
|
+
* `docs/design/lint-engine.md §3` "Pack accessor root":
|
|
7
|
+
*
|
|
8
|
+
* - **Registry-installed:**
|
|
9
|
+
* `<workspaceRoot>/.axm/extensions/<@owner>/packs/<sanitized-name>/`
|
|
10
|
+
*
|
|
11
|
+
* Packs are registry-only at v1 — there is no non-native variant. The caller
|
|
12
|
+
* (`buildPackRuleContexts` or the CLI entry point) picks the root from
|
|
13
|
+
* `computeExtensionPackPaths` in `../../../packs/paths.ts`.
|
|
14
|
+
*
|
|
15
|
+
* The `extension-pack.json` sits directly under `canonicalPath`; there is no
|
|
16
|
+
* `src/` subdirectory like skills have — see
|
|
17
|
+
* `../../../packs/operations/install.ts` for the authoritative layout.
|
|
18
|
+
*
|
|
19
|
+
* Bounds enforcement:
|
|
20
|
+
*
|
|
21
|
+
* - No `..` segments in accessor-relative paths.
|
|
22
|
+
* - No absolute paths (posix or Windows drive letters).
|
|
23
|
+
* - Resolved absolute paths are verified to stay under the accessor root.
|
|
24
|
+
*
|
|
25
|
+
* The accessor is built via a factory that captures a pre-resolved
|
|
26
|
+
* `FileSystem.FileSystem` + `Path.Path` services and an absolute root, so
|
|
27
|
+
* `PackFileAccessor` stays Layer-free at rule-evaluation time (per
|
|
28
|
+
* `lint-engine` spec "Rule contexts expose narrow caller-bound accessors").
|
|
29
|
+
*
|
|
30
|
+
* @experimental This API is unstable and may change without notice.
|
|
31
|
+
* @packageDocumentation
|
|
32
|
+
*/
|
|
33
|
+
import type * as FileSystem from "effect/FileSystem";
|
|
34
|
+
import type * as Path from "effect/Path";
|
|
35
|
+
import type { PackFileAccessor } from "../../context.js";
|
|
36
|
+
/**
|
|
37
|
+
* Platform services needed by the platform-backed pack accessor.
|
|
38
|
+
*/
|
|
39
|
+
export interface PackAccessorPlatform {
|
|
40
|
+
readonly fs: FileSystem.FileSystem;
|
|
41
|
+
readonly path: Path.Path;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build a platform-backed `PackFileAccessor` rooted at `absoluteRoot`.
|
|
45
|
+
*
|
|
46
|
+
* `absoluteRoot` SHOULD be the absolute path to the pack root directory
|
|
47
|
+
* (`canonicalPath` from `computeExtensionPackPaths` in
|
|
48
|
+
* `../../../packs/paths.ts`).
|
|
49
|
+
*
|
|
50
|
+
* @experimental This API is unstable and may change without notice.
|
|
51
|
+
*/
|
|
52
|
+
export declare const makePlatformPackFileAccessor: (platform: PackAccessorPlatform, absoluteRoot: string) => PackFileAccessor;
|
|
53
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CAC1B;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GACvC,UAAU,oBAAoB,EAC9B,cAAc,MAAM,KACnB,gBA2DF,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-backed `PackFileAccessor` for `axm lint`.
|
|
3
|
+
*
|
|
4
|
+
* Maps accessor-relative posix paths to on-disk absolute paths rooted at
|
|
5
|
+
* the caller-supplied pack-root directory. Layout conventions per
|
|
6
|
+
* `docs/design/lint-engine.md §3` "Pack accessor root":
|
|
7
|
+
*
|
|
8
|
+
* - **Registry-installed:**
|
|
9
|
+
* `<workspaceRoot>/.axm/extensions/<@owner>/packs/<sanitized-name>/`
|
|
10
|
+
*
|
|
11
|
+
* Packs are registry-only at v1 — there is no non-native variant. The caller
|
|
12
|
+
* (`buildPackRuleContexts` or the CLI entry point) picks the root from
|
|
13
|
+
* `computeExtensionPackPaths` in `../../../packs/paths.ts`.
|
|
14
|
+
*
|
|
15
|
+
* The `extension-pack.json` sits directly under `canonicalPath`; there is no
|
|
16
|
+
* `src/` subdirectory like skills have — see
|
|
17
|
+
* `../../../packs/operations/install.ts` for the authoritative layout.
|
|
18
|
+
*
|
|
19
|
+
* Bounds enforcement:
|
|
20
|
+
*
|
|
21
|
+
* - No `..` segments in accessor-relative paths.
|
|
22
|
+
* - No absolute paths (posix or Windows drive letters).
|
|
23
|
+
* - Resolved absolute paths are verified to stay under the accessor root.
|
|
24
|
+
*
|
|
25
|
+
* The accessor is built via a factory that captures a pre-resolved
|
|
26
|
+
* `FileSystem.FileSystem` + `Path.Path` services and an absolute root, so
|
|
27
|
+
* `PackFileAccessor` stays Layer-free at rule-evaluation time (per
|
|
28
|
+
* `lint-engine` spec "Rule contexts expose narrow caller-bound accessors").
|
|
29
|
+
*
|
|
30
|
+
* @experimental This API is unstable and may change without notice.
|
|
31
|
+
* @packageDocumentation
|
|
32
|
+
*/
|
|
33
|
+
import * as Effect from "effect/Effect";
|
|
34
|
+
/**
|
|
35
|
+
* Build a platform-backed `PackFileAccessor` rooted at `absoluteRoot`.
|
|
36
|
+
*
|
|
37
|
+
* `absoluteRoot` SHOULD be the absolute path to the pack root directory
|
|
38
|
+
* (`canonicalPath` from `computeExtensionPackPaths` in
|
|
39
|
+
* `../../../packs/paths.ts`).
|
|
40
|
+
*
|
|
41
|
+
* @experimental This API is unstable and may change without notice.
|
|
42
|
+
*/
|
|
43
|
+
export const makePlatformPackFileAccessor = (platform, absoluteRoot) => {
|
|
44
|
+
const { fs, path } = platform;
|
|
45
|
+
const normalizedRoot = path.resolve(absoluteRoot);
|
|
46
|
+
const resolveWithinRoot = (input) => {
|
|
47
|
+
if (input === "" || input === "." || input === "./") {
|
|
48
|
+
return { kind: "ok", absolute: normalizedRoot };
|
|
49
|
+
}
|
|
50
|
+
if (/^[a-z]:[\\/]/i.test(input) || input.startsWith("/") || input.startsWith("\\")) {
|
|
51
|
+
return { kind: "escape" };
|
|
52
|
+
}
|
|
53
|
+
const normalized = input.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
54
|
+
for (const segment of normalized.split("/")) {
|
|
55
|
+
if (segment === "..") {
|
|
56
|
+
return { kind: "escape" };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const absolute = path.resolve(normalizedRoot, normalized);
|
|
60
|
+
if (absolute !== normalizedRoot && !absolute.startsWith(`${normalizedRoot}${path.sep}`)) {
|
|
61
|
+
return { kind: "escape" };
|
|
62
|
+
}
|
|
63
|
+
return { kind: "ok", absolute };
|
|
64
|
+
};
|
|
65
|
+
const makeAccessError = (p, reason, message) => ({
|
|
66
|
+
_tag: "FileAccessError",
|
|
67
|
+
path: p,
|
|
68
|
+
reason,
|
|
69
|
+
message,
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
exists: (p) => {
|
|
73
|
+
const resolved = resolveWithinRoot(p);
|
|
74
|
+
if (resolved.kind !== "ok") {
|
|
75
|
+
return Effect.succeed(false);
|
|
76
|
+
}
|
|
77
|
+
return fs.exists(resolved.absolute).pipe(Effect.catch(() => Effect.succeed(false)));
|
|
78
|
+
},
|
|
79
|
+
readBytes: (p) => {
|
|
80
|
+
const resolved = resolveWithinRoot(p);
|
|
81
|
+
if (resolved.kind === "escape") {
|
|
82
|
+
return Effect.fail(makeAccessError(p, "path-escape", `path escapes the accessor root: ${p}`));
|
|
83
|
+
}
|
|
84
|
+
return fs
|
|
85
|
+
.readFile(resolved.absolute)
|
|
86
|
+
.pipe(Effect.mapError((cause) => makeAccessError(p, "read-error", `read failed at ${p}: ${String(cause)}`)));
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAqBxC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,QAA8B,EAC9B,YAAoB,EACF,EAAE;IACpB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAiB,EAAE;QACzD,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,KAAK,cAAc,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,CAAS,EACT,MAAiC,EACjC,OAAe,EACE,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,iBAA0B;QAChC,IAAI,EAAE,CAAC;QACP,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC,IAAI,CAChB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,mCAAmC,CAAC,EAAE,CAAC,CAC1E,CAAC;YACJ,CAAC;YACD,OAAO,EAAE;iBACN,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBAC3B,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1E,CACF,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VFT-backed `PackFileAccessor` for publish callers.
|
|
3
|
+
*
|
|
4
|
+
* A Virtual File Tree (VFT) is an in-memory representation of an extracted
|
|
5
|
+
* archive — the registry publish pipeline extracts an upload into a VFT, then
|
|
6
|
+
* passes that tree into Phase 4 decode/lint. The VFT's schema and bounds
|
|
7
|
+
* (max size, file count, path depth) are owned by the registry extract phase
|
|
8
|
+
* (Phase 4 concern); this accessor treats the tree as a read-only
|
|
9
|
+
* `path -> Uint8Array` map and enforces its own rooted-read + no-`..`-escape
|
|
10
|
+
* invariants at the rule boundary.
|
|
11
|
+
*
|
|
12
|
+
* Bounds enforcement here:
|
|
13
|
+
*
|
|
14
|
+
* - Paths are normalized to posix, `./` prefixes are stripped.
|
|
15
|
+
* - Empty path resolves to the accessor root itself.
|
|
16
|
+
* - Any path containing a `..` segment raises `FileAccessError {
|
|
17
|
+
* reason: "path-escape" }` from `readBytes` and resolves to `false` from
|
|
18
|
+
* `exists`.
|
|
19
|
+
* - Absolute paths (starting with `/` or a Windows drive letter) are
|
|
20
|
+
* treated as escape attempts.
|
|
21
|
+
*
|
|
22
|
+
* Mirrors the skill VFT accessor (`../skill-accessor/vft.ts`). The VFTNode
|
|
23
|
+
* interface is intentionally the same so a publish caller can extract a
|
|
24
|
+
* single archive once and pass the same tree to either accessor factory.
|
|
25
|
+
*
|
|
26
|
+
* @experimental This API is unstable and may change without notice.
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import type { PackFileAccessor } from "../../context.js";
|
|
30
|
+
/**
|
|
31
|
+
* Minimal shape of a Virtual File Tree consumed by the accessor.
|
|
32
|
+
*
|
|
33
|
+
* Shape-compatible with `../skill-accessor/vft.ts#VFTNode`; kept as a local
|
|
34
|
+
* declaration to avoid a cross-subfolder import and to document what this
|
|
35
|
+
* accessor uses.
|
|
36
|
+
*
|
|
37
|
+
* @experimental This API is unstable and may change without notice.
|
|
38
|
+
*/
|
|
39
|
+
export interface PackVFTNode {
|
|
40
|
+
/**
|
|
41
|
+
* Whether the given posix path points to a file within the tree.
|
|
42
|
+
*/
|
|
43
|
+
readonly hasFile: (posixPath: string) => boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Return the bytes for the given posix path, or `undefined` when the path
|
|
46
|
+
* does not resolve to a file (missing, directory, or outside the tree).
|
|
47
|
+
*/
|
|
48
|
+
readonly getFile: (posixPath: string) => Uint8Array | undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build a VFT-backed `PackFileAccessor` rooted at the tree's root.
|
|
52
|
+
*
|
|
53
|
+
* Callers that root the pack at a sub-path of the archive should pre-strip
|
|
54
|
+
* that sub-path before constructing the tree — the accessor enforces no
|
|
55
|
+
* `..` escape above the root it was given.
|
|
56
|
+
*
|
|
57
|
+
* @experimental This API is unstable and may change without notice.
|
|
58
|
+
*/
|
|
59
|
+
export declare const makeVftPackFileAccessor: (tree: PackVFTNode) => PackFileAccessor;
|
|
60
|
+
//# sourceMappingURL=vft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vft.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/vft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAM1E;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,WAAW,KAAG,gBAqB3D,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VFT-backed `PackFileAccessor` for publish callers.
|
|
3
|
+
*
|
|
4
|
+
* A Virtual File Tree (VFT) is an in-memory representation of an extracted
|
|
5
|
+
* archive — the registry publish pipeline extracts an upload into a VFT, then
|
|
6
|
+
* passes that tree into Phase 4 decode/lint. The VFT's schema and bounds
|
|
7
|
+
* (max size, file count, path depth) are owned by the registry extract phase
|
|
8
|
+
* (Phase 4 concern); this accessor treats the tree as a read-only
|
|
9
|
+
* `path -> Uint8Array` map and enforces its own rooted-read + no-`..`-escape
|
|
10
|
+
* invariants at the rule boundary.
|
|
11
|
+
*
|
|
12
|
+
* Bounds enforcement here:
|
|
13
|
+
*
|
|
14
|
+
* - Paths are normalized to posix, `./` prefixes are stripped.
|
|
15
|
+
* - Empty path resolves to the accessor root itself.
|
|
16
|
+
* - Any path containing a `..` segment raises `FileAccessError {
|
|
17
|
+
* reason: "path-escape" }` from `readBytes` and resolves to `false` from
|
|
18
|
+
* `exists`.
|
|
19
|
+
* - Absolute paths (starting with `/` or a Windows drive letter) are
|
|
20
|
+
* treated as escape attempts.
|
|
21
|
+
*
|
|
22
|
+
* Mirrors the skill VFT accessor (`../skill-accessor/vft.ts`). The VFTNode
|
|
23
|
+
* interface is intentionally the same so a publish caller can extract a
|
|
24
|
+
* single archive once and pass the same tree to either accessor factory.
|
|
25
|
+
*
|
|
26
|
+
* @experimental This API is unstable and may change without notice.
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import * as Effect from "effect/Effect";
|
|
30
|
+
/**
|
|
31
|
+
* Build a VFT-backed `PackFileAccessor` rooted at the tree's root.
|
|
32
|
+
*
|
|
33
|
+
* Callers that root the pack at a sub-path of the archive should pre-strip
|
|
34
|
+
* that sub-path before constructing the tree — the accessor enforces no
|
|
35
|
+
* `..` escape above the root it was given.
|
|
36
|
+
*
|
|
37
|
+
* @experimental This API is unstable and may change without notice.
|
|
38
|
+
*/
|
|
39
|
+
export const makeVftPackFileAccessor = (tree) => {
|
|
40
|
+
return {
|
|
41
|
+
exists: (path) => {
|
|
42
|
+
const normalized = normalizeAndCheck(path);
|
|
43
|
+
if (normalized.kind !== "ok") {
|
|
44
|
+
return Effect.succeed(false);
|
|
45
|
+
}
|
|
46
|
+
return Effect.succeed(tree.hasFile(normalized.path));
|
|
47
|
+
},
|
|
48
|
+
readBytes: (path) => {
|
|
49
|
+
const normalized = normalizeAndCheck(path);
|
|
50
|
+
if (normalized.kind === "escape") {
|
|
51
|
+
return failFileAccess(path, "path-escape", `path escapes the accessor root: ${path}`);
|
|
52
|
+
}
|
|
53
|
+
const bytes = tree.getFile(normalized.path);
|
|
54
|
+
if (bytes === undefined) {
|
|
55
|
+
return failFileAccess(path, "read-error", `file not found at ${path}`);
|
|
56
|
+
}
|
|
57
|
+
return Effect.succeed(bytes);
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const normalizeAndCheck = (path) => {
|
|
62
|
+
if (path === "" || path === "." || path === "./") {
|
|
63
|
+
return { kind: "ok", path: "" };
|
|
64
|
+
}
|
|
65
|
+
// Windows drive letters (`C:/`) and absolute posix paths both count as
|
|
66
|
+
// escape attempts at a pack-rooted accessor.
|
|
67
|
+
if (/^[a-z]:[\\/]/i.test(path) || path.startsWith("/") || path.startsWith("\\")) {
|
|
68
|
+
return { kind: "escape" };
|
|
69
|
+
}
|
|
70
|
+
const normalized = path.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
71
|
+
const segments = normalized.split("/");
|
|
72
|
+
for (const segment of segments) {
|
|
73
|
+
if (segment === "..") {
|
|
74
|
+
return { kind: "escape" };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return { kind: "ok", path: normalized };
|
|
78
|
+
};
|
|
79
|
+
const failFileAccess = (path, reason, message) => Effect.fail({
|
|
80
|
+
_tag: "FileAccessError",
|
|
81
|
+
path,
|
|
82
|
+
reason,
|
|
83
|
+
message,
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=vft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vft.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/pack-accessor/vft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AA4BxC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAiB,EAAoB,EAAE;IAC7E,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,mCAAmC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAmB,EAAE;IAC1D,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,uEAAuE;IACvE,6CAA6C;IAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,MAAiC,EACjC,OAAe,EAC6B,EAAE,CAC9C,MAAM,CAAC,IAAI,CAAC;IACV,IAAI,EAAE,iBAA0B;IAChC,IAAI;IACJ,MAAM;IACN,OAAO;CACR,CAAC,CAAC"}
|