@agentxm/client-core 0.2.0 → 0.3.2
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/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/extensions/operations.d.ts +1 -1
- package/dist/src/unstable/extensions/operations.d.ts.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/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/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/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/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/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/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/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/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/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.map +1 -1
- package/dist/src/unstable/workspace/index.d.ts +0 -5
- package/dist/src/unstable/workspace/index.d.ts.map +1 -1
- package/dist/src/unstable/workspace/index.js +3 -7
- package/dist/src/unstable/workspace/index.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/paths.d.ts +0 -18
- package/dist/src/unstable/workspace/paths.d.ts.map +1 -1
- package/dist/src/unstable/workspace/paths.js +12 -2
- 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/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/settings-validation/types.d.ts +11 -1
- package/dist/src/unstable/workspace/settings-validation/types.d.ts.map +1 -1
- package/package.json +10 -2
- package/site-content/__generated__/schemas/axm-lock.schema.json +727 -1124
- package/site-content/__generated__/schemas/axm-package-meta.schema.json +3 -16
- package/site-content/__generated__/schemas/command.schema.json +29 -130
- package/site-content/__generated__/schemas/extension-pack.schema.json +36 -154
- package/site-content/__generated__/schemas/mcp-server.schema.json +21 -134
- package/site-content/__generated__/schemas/settings.schema.json +111 -291
- package/site-content/__generated__/schemas/skill.schema.json +23 -143
- 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-active.d.ts +0 -4
- package/dist/src/unstable/workspace/doctor/checks/extensions-active.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/extensions-active.js +0 -238
- package/dist/src/unstable/workspace/doctor/checks/extensions-active.js.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts +0 -18
- package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/checks/extensions-current.js +0 -92
- package/dist/src/unstable/workspace/doctor/checks/extensions-current.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 -78
- 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 -127
- package/dist/src/unstable/workspace/doctor/types.d.ts.map +0 -1
- package/dist/src/unstable/workspace/doctor/types.js +0 -60
- 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,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/frontmatter-parseable` — SKILL.md frontmatter parses as a YAML
|
|
3
|
+
* mapping.
|
|
4
|
+
*
|
|
5
|
+
* Cascade (reports the first failure in the order below; later arms
|
|
6
|
+
* short-circuit):
|
|
7
|
+
*
|
|
8
|
+
* 1. SKILL.md begins with `---` at byte 0 (no BOM, no leading whitespace, no
|
|
9
|
+
* leading HTML comment). This is the arm that caught the
|
|
10
|
+
* `@agentxm/skills/axm` regression — an HTML comment preceded the
|
|
11
|
+
* frontmatter delimiter, so YAML parsers silently treated the content as
|
|
12
|
+
* body.
|
|
13
|
+
* 2. Frontmatter YAML parses without error.
|
|
14
|
+
* 3. Parsed frontmatter is a mapping (not a list, not a scalar).
|
|
15
|
+
*
|
|
16
|
+
* Presence is handled by `skill/skill-md-present`; this rule early-returns
|
|
17
|
+
* `[]` when `SKILL.md` is absent.
|
|
18
|
+
*
|
|
19
|
+
* Advisory-only — the cascade mixes one mechanically-fixable arm
|
|
20
|
+
* (strip-leading-bytes) with arms requiring human judgment (fix YAML
|
|
21
|
+
* syntax). Per `docs/design/lint-engine.md §10.skill (Notes)`, splitting by
|
|
22
|
+
* kind or adding a byte-range mutation Operation is deferred until a second
|
|
23
|
+
* mechanical arm justifies it.
|
|
24
|
+
*
|
|
25
|
+
* @experimental This API is unstable and may change without notice.
|
|
26
|
+
* @packageDocumentation
|
|
27
|
+
*/
|
|
28
|
+
import * as Effect from "effect/Effect";
|
|
29
|
+
import YAML from "yaml";
|
|
30
|
+
const RULE_ID = "skill/frontmatter-parseable";
|
|
31
|
+
const SKILL_MD = "SKILL.md";
|
|
32
|
+
const DELIMITER = "---";
|
|
33
|
+
// U+FEFF — UTF-8 BOM as a single code point. Escape form so the editor /
|
|
34
|
+
// formatter can't silently strip the literal.
|
|
35
|
+
const UTF8_BOM = "\uFEFF";
|
|
36
|
+
// `ignoreBOM: true` here means "pass the BOM through to the decoded string,
|
|
37
|
+
// don't strip it" — cascade arm 1 must see the BOM to flag it.
|
|
38
|
+
const decoder = new TextDecoder("utf-8", { fatal: false, ignoreBOM: true });
|
|
39
|
+
export const frontmatterParseableRule = {
|
|
40
|
+
id: RULE_ID,
|
|
41
|
+
description: "SKILL.md frontmatter parses as a YAML mapping.",
|
|
42
|
+
kind: "advisory",
|
|
43
|
+
severity: "error",
|
|
44
|
+
check: (context) => Effect.gen(function* () {
|
|
45
|
+
const exists = yield* context.files.exists(SKILL_MD);
|
|
46
|
+
if (!exists) {
|
|
47
|
+
// Presence is covered by `skill/skill-md-present`.
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
const bytesResult = yield* context.files.readBytes(SKILL_MD).pipe(Effect.map((bytes) => ({ kind: "ok", bytes })),
|
|
51
|
+
// Treat read errors the same as absence — presence rule already owns
|
|
52
|
+
// that path. If `exists` said true but read fails, the cascade can't
|
|
53
|
+
// run anyway; silence here keeps the finding count at one.
|
|
54
|
+
Effect.catch(() => Effect.succeed({ kind: "none" })));
|
|
55
|
+
if (bytesResult.kind === "none") {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
const content = decoder.decode(bytesResult.bytes);
|
|
59
|
+
return evaluateCascade(content);
|
|
60
|
+
}),
|
|
61
|
+
};
|
|
62
|
+
// -----------------------------------------------------------------------------
|
|
63
|
+
// Cascade
|
|
64
|
+
// -----------------------------------------------------------------------------
|
|
65
|
+
const evaluateCascade = (content) => {
|
|
66
|
+
const leading = detectLeadingBytes(content);
|
|
67
|
+
if (leading !== undefined) {
|
|
68
|
+
return [leading];
|
|
69
|
+
}
|
|
70
|
+
const parsed = parseFrontmatterYaml(content);
|
|
71
|
+
if (parsed === undefined) {
|
|
72
|
+
// No frontmatter block. Treat as bad (cascade arm 1 "begins with ---"
|
|
73
|
+
// already handled the "literally no ---" case; reaching here means the
|
|
74
|
+
// delimiter was found but the closing delimiter is missing).
|
|
75
|
+
return [
|
|
76
|
+
finding("SKILL.md frontmatter is malformed: opening `---` found but closing `---` is missing.", ["Add a closing `---` after the frontmatter YAML block."]),
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
if (parsed.kind === "parse-error") {
|
|
80
|
+
return [
|
|
81
|
+
finding(`SKILL.md frontmatter YAML is invalid: ${parsed.message}`, [
|
|
82
|
+
"Fix YAML syntax at the referenced location.",
|
|
83
|
+
]),
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
if (!isMapping(parsed.value)) {
|
|
87
|
+
return [
|
|
88
|
+
finding("SKILL.md frontmatter must be a YAML mapping (key: value pairs), not a list or scalar.", ["Rewrite the frontmatter block as `key: value` pairs."]),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
92
|
+
};
|
|
93
|
+
// -----------------------------------------------------------------------------
|
|
94
|
+
// Arm 1: leading bytes before `---`
|
|
95
|
+
// -----------------------------------------------------------------------------
|
|
96
|
+
const detectLeadingBytes = (content) => {
|
|
97
|
+
if (content.startsWith(UTF8_BOM)) {
|
|
98
|
+
return finding("SKILL.md begins with a UTF-8 BOM; frontmatter `---` must appear at byte 0.", ["Strip the UTF-8 BOM from the start of SKILL.md."], { line: 1 });
|
|
99
|
+
}
|
|
100
|
+
if (content.startsWith(DELIMITER)) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
// Any non-`---` leading content is a cascade-arm-1 violation. Detect the
|
|
104
|
+
// common HTML-comment case explicitly so the finding message is clear.
|
|
105
|
+
if (/^\s*<!--/.test(content)) {
|
|
106
|
+
return finding("SKILL.md begins with an HTML comment before the frontmatter `---`; the delimiter must appear at byte 0.", ["Strip leading bytes before the first `---`."], { line: 1 });
|
|
107
|
+
}
|
|
108
|
+
return finding("SKILL.md frontmatter `---` must appear at byte 0; leading whitespace or other content is not allowed.", ["Strip leading bytes before the first `---`."], { line: 1 });
|
|
109
|
+
};
|
|
110
|
+
const parseFrontmatterYaml = (content) => {
|
|
111
|
+
// content starts with `---` (arm 1 guaranteed). Find closing delimiter on a
|
|
112
|
+
// new line.
|
|
113
|
+
const afterOpening = content.indexOf("\n");
|
|
114
|
+
if (afterOpening === -1) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
const closingIndex = content.indexOf(`\n${DELIMITER}`, afterOpening);
|
|
118
|
+
if (closingIndex === -1) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
const yamlContent = content.slice(afterOpening + 1, closingIndex);
|
|
122
|
+
try {
|
|
123
|
+
// YAML.parse returns `null | undefined` for empty input; we care about
|
|
124
|
+
// shape, not emptiness at this arm.
|
|
125
|
+
const value = YAML.parse(yamlContent);
|
|
126
|
+
return { kind: "parsed", value };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return {
|
|
130
|
+
kind: "parse-error",
|
|
131
|
+
message: error instanceof Error ? error.message : String(error),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const isMapping = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
136
|
+
// -----------------------------------------------------------------------------
|
|
137
|
+
// Finding helpers
|
|
138
|
+
// -----------------------------------------------------------------------------
|
|
139
|
+
const finding = (message, suggestions, position) => ({
|
|
140
|
+
kind: "advisory",
|
|
141
|
+
ruleId: RULE_ID,
|
|
142
|
+
severity: "error",
|
|
143
|
+
message,
|
|
144
|
+
suggestions,
|
|
145
|
+
location: {
|
|
146
|
+
file: SKILL_MD,
|
|
147
|
+
...(position?.line !== undefined ? { line: position.line } : {}),
|
|
148
|
+
...(position?.column !== undefined ? { column: position.column } : {}),
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=frontmatter-parseable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-parseable.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/frontmatter-parseable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-keys-recognized` — `skill.json` contains only keys
|
|
3
|
+
* declared by `SkillManifestSchema`.
|
|
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
|
+
* Allowed-keys set is derived from `SkillManifestSchema.fields` — no
|
|
10
|
+
* copy-paste of field names. A schema gain (or rename) automatically updates
|
|
11
|
+
* the allowlist.
|
|
12
|
+
*
|
|
13
|
+
* Early-return arms (no findings):
|
|
14
|
+
*
|
|
15
|
+
* - `subject.isNative === false` — non-native skills have no manifest to
|
|
16
|
+
* check.
|
|
17
|
+
* - `subject.skillJson === undefined` / non-object — nothing to enumerate;
|
|
18
|
+
* `skill/manifest-present` owns the absence case.
|
|
19
|
+
*
|
|
20
|
+
* @experimental This API is unstable and may change without notice.
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import type { SkillRuleContext } from "../../context.js";
|
|
24
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
25
|
+
export declare const manifestKeysRecognizedRule: AdvisoryRule<SkillRuleContext>;
|
|
26
|
+
//# sourceMappingURL=manifest-keys-recognized.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-keys-recognized.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,eAAO,MAAM,0BAA0B,EAAE,YAAY,CAAC,gBAAgB,CAmBrE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-keys-recognized` — `skill.json` contains only keys
|
|
3
|
+
* declared by `SkillManifestSchema`.
|
|
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
|
+
* Allowed-keys set is derived from `SkillManifestSchema.fields` — no
|
|
10
|
+
* copy-paste of field names. A schema gain (or rename) automatically updates
|
|
11
|
+
* the allowlist.
|
|
12
|
+
*
|
|
13
|
+
* Early-return arms (no findings):
|
|
14
|
+
*
|
|
15
|
+
* - `subject.isNative === false` — non-native skills have no manifest to
|
|
16
|
+
* check.
|
|
17
|
+
* - `subject.skillJson === undefined` / non-object — nothing to enumerate;
|
|
18
|
+
* `skill/manifest-present` owns the absence case.
|
|
19
|
+
*
|
|
20
|
+
* @experimental This API is unstable and may change without notice.
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import * as Effect from "effect/Effect";
|
|
24
|
+
import { SkillManifestSchema } from "../../../skills/manifest-schema.js";
|
|
25
|
+
import { enumerateUnknownTopLevelKeys, structFieldKeys } from "../shared/schema-rule.js";
|
|
26
|
+
const RULE_ID = "skill/manifest-keys-recognized";
|
|
27
|
+
const SKILL_JSON = "skill.json";
|
|
28
|
+
const allowedKeys = structFieldKeys(SkillManifestSchema);
|
|
29
|
+
export const manifestKeysRecognizedRule = {
|
|
30
|
+
id: RULE_ID,
|
|
31
|
+
description: "skill.json contains only keys recognized by SkillManifestSchema.",
|
|
32
|
+
kind: "advisory",
|
|
33
|
+
severity: "warning",
|
|
34
|
+
check: (context) => {
|
|
35
|
+
if (!context.subject.isNative) {
|
|
36
|
+
return Effect.succeed([]);
|
|
37
|
+
}
|
|
38
|
+
return Effect.succeed(enumerateUnknownTopLevelKeys(RULE_ID, "warning", SKILL_JSON, allowedKeys, context.subject.skillJson));
|
|
39
|
+
},
|
|
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/skill/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACjD,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,WAAW,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,kEAAkE;IAC/E,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CACnB,4BAA4B,CAC1B,OAAO,EACP,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-present` — native skills must have a `skill.json` at the
|
|
3
|
+
* skill root.
|
|
4
|
+
*
|
|
5
|
+
* Native-only via `check` early-return: when `subject.isNative === false`
|
|
6
|
+
* (managed-external skills without a declared manifest), the rule produces
|
|
7
|
+
* no findings. No separate `applies` predicate per
|
|
8
|
+
* `docs/design/lint-engine.md §3`.
|
|
9
|
+
*
|
|
10
|
+
* Advisory-only — scaffolding a manifest is a user-authored action.
|
|
11
|
+
*
|
|
12
|
+
* @experimental This API is unstable and may change without notice.
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
import type { SkillRuleContext } from "../../context.js";
|
|
16
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
17
|
+
export declare const manifestPresentRule: AdvisoryRule<SkillRuleContext>;
|
|
18
|
+
//# sourceMappingURL=manifest-present.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,gBAAgB,CA+B9D,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-present` — native skills must have a `skill.json` at the
|
|
3
|
+
* skill root.
|
|
4
|
+
*
|
|
5
|
+
* Native-only via `check` early-return: when `subject.isNative === false`
|
|
6
|
+
* (managed-external skills without a declared manifest), the rule produces
|
|
7
|
+
* no findings. No separate `applies` predicate per
|
|
8
|
+
* `docs/design/lint-engine.md §3`.
|
|
9
|
+
*
|
|
10
|
+
* Advisory-only — scaffolding a manifest is a user-authored action.
|
|
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 = "skill/manifest-present";
|
|
17
|
+
const SKILL_JSON = "skill.json";
|
|
18
|
+
export const manifestPresentRule = {
|
|
19
|
+
id: RULE_ID,
|
|
20
|
+
description: "Native skill has a skill.json manifest at its root.",
|
|
21
|
+
kind: "advisory",
|
|
22
|
+
severity: "error",
|
|
23
|
+
check: (context) => {
|
|
24
|
+
if (!context.subject.isNative) {
|
|
25
|
+
return Effect.succeed([]);
|
|
26
|
+
}
|
|
27
|
+
return Effect.map(context.files.exists(SKILL_JSON), (present) => {
|
|
28
|
+
if (present) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
kind: "advisory",
|
|
34
|
+
ruleId: RULE_ID,
|
|
35
|
+
severity: "error",
|
|
36
|
+
message: "skill.json is missing; native skills must expose a manifest at the skill root.",
|
|
37
|
+
suggestions: [
|
|
38
|
+
`Create ${SKILL_JSON} with the required manifest fields (owner, type, name, version).`,
|
|
39
|
+
],
|
|
40
|
+
location: { file: SKILL_JSON },
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=manifest-present.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,wBAAwB,CAAC;AACzC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CACf,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAChC,CAAC,OAAO,EAAkC,EAAE;YAC1C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,gFAAgF;oBAClF,WAAW,EAAE;wBACX,UAAU,UAAU,kEAAkE;qBACvF;oBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;iBAC/B;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-schema-valid` — `skill.json` conforms to
|
|
3
|
+
* `SkillManifestSchema`.
|
|
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 arms (no findings):
|
|
10
|
+
*
|
|
11
|
+
* - `subject.isNative === false` — non-native skills have no manifest to
|
|
12
|
+
* check (complement of `skill/manifest-present`).
|
|
13
|
+
* - `subject.skillJson === undefined` — manifest is absent (covered by
|
|
14
|
+
* `skill/manifest-present`).
|
|
15
|
+
*
|
|
16
|
+
* @experimental This API is unstable and may change without notice.
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
*/
|
|
19
|
+
import type { SkillRuleContext } from "../../context.js";
|
|
20
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
21
|
+
export declare const manifestSchemaValidRule: AdvisoryRule<SkillRuleContext>;
|
|
22
|
+
//# 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/skill/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,gBAAgB,CAmBlE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/manifest-schema-valid` — `skill.json` conforms to
|
|
3
|
+
* `SkillManifestSchema`.
|
|
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 arms (no findings):
|
|
10
|
+
*
|
|
11
|
+
* - `subject.isNative === false` — non-native skills have no manifest to
|
|
12
|
+
* check (complement of `skill/manifest-present`).
|
|
13
|
+
* - `subject.skillJson === undefined` — manifest is absent (covered by
|
|
14
|
+
* `skill/manifest-present`).
|
|
15
|
+
*
|
|
16
|
+
* @experimental This API is unstable and may change without notice.
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
*/
|
|
19
|
+
import { SkillManifestSchema } from "../../../skills/manifest-schema.js";
|
|
20
|
+
import { schemaDecodeFindings } from "../shared/schema-rule.js";
|
|
21
|
+
const RULE_ID = "skill/manifest-schema-valid";
|
|
22
|
+
const SKILL_JSON = "skill.json";
|
|
23
|
+
export const manifestSchemaValidRule = {
|
|
24
|
+
id: RULE_ID,
|
|
25
|
+
description: "skill.json conforms to SkillManifestSchema.",
|
|
26
|
+
kind: "advisory",
|
|
27
|
+
severity: "error",
|
|
28
|
+
check: (context) => {
|
|
29
|
+
if (!context.subject.isNative) {
|
|
30
|
+
// Non-native skills have no skill.json to schema-validate. The
|
|
31
|
+
// presence rule (manifest-present) does not fire for non-native either.
|
|
32
|
+
return schemaDecodeFindings(RULE_ID, "error", SKILL_JSON, SkillManifestSchema, undefined);
|
|
33
|
+
}
|
|
34
|
+
return schemaDecodeFindings(RULE_ID, "error", SKILL_JSON, SkillManifestSchema, context.subject.skillJson);
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=manifest-schema-valid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAC9C,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,6CAA6C;IAC1D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,wEAAwE;YACxE,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,oBAAoB,CACzB,OAAO,EACP,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/skill-md-present` — every skill must have a `SKILL.md` at its root.
|
|
3
|
+
*
|
|
4
|
+
* Applies to every skill context (native and non-native). Upstream-required
|
|
5
|
+
* by the agentskills specification; also the precondition for the
|
|
6
|
+
* `skill/frontmatter-parseable` cascade.
|
|
7
|
+
*
|
|
8
|
+
* Advisory-only (no autofix). Scaffolding `SKILL.md` is a user-authored action
|
|
9
|
+
* per `docs/design/lint-engine.md §6`.
|
|
10
|
+
*
|
|
11
|
+
* @experimental This API is unstable and may change without notice.
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import type { SkillRuleContext } from "../../context.js";
|
|
15
|
+
import type { AdvisoryRule } from "../../rule.js";
|
|
16
|
+
export declare const skillMdPresentRule: AdvisoryRule<SkillRuleContext>;
|
|
17
|
+
//# sourceMappingURL=skill-md-present.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/skill-md-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAqB7D,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill/skill-md-present` — every skill must have a `SKILL.md` at its root.
|
|
3
|
+
*
|
|
4
|
+
* Applies to every skill context (native and non-native). Upstream-required
|
|
5
|
+
* by the agentskills specification; also the precondition for the
|
|
6
|
+
* `skill/frontmatter-parseable` cascade.
|
|
7
|
+
*
|
|
8
|
+
* Advisory-only (no autofix). Scaffolding `SKILL.md` is a user-authored action
|
|
9
|
+
* per `docs/design/lint-engine.md §6`.
|
|
10
|
+
*
|
|
11
|
+
* @experimental This API is unstable and may change without notice.
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import * as Effect from "effect/Effect";
|
|
15
|
+
const RULE_ID = "skill/skill-md-present";
|
|
16
|
+
const SKILL_MD = "SKILL.md";
|
|
17
|
+
export const skillMdPresentRule = {
|
|
18
|
+
id: RULE_ID,
|
|
19
|
+
description: "Skill has a SKILL.md at its root.",
|
|
20
|
+
kind: "advisory",
|
|
21
|
+
severity: "error",
|
|
22
|
+
check: (context) => Effect.map(context.files.exists(SKILL_MD), (present) => {
|
|
23
|
+
if (present) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
kind: "advisory",
|
|
29
|
+
ruleId: RULE_ID,
|
|
30
|
+
severity: "error",
|
|
31
|
+
message: "SKILL.md is missing; every skill must expose a SKILL.md at its root.",
|
|
32
|
+
suggestions: [`Create ${SKILL_MD} with required frontmatter (name, description).`],
|
|
33
|
+
location: { file: SKILL_MD },
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=skill-md-present.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/skill-md-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,wBAAwB,CAAC;AACzC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAkC,EAAE;QACrF,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,EAAE,sEAAsE;gBAC/E,WAAW,EAAE,CAAC,UAAU,QAAQ,iDAAiD,CAAC;gBAClF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC7B;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildSkillRuleContexts` — build `SkillRuleContext[]` from a
|
|
3
|
+
* `WorkspaceIndex`-shaped input.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3c owns `WorkspaceIndex`; Phase 3a pins the minimal shape
|
|
6
|
+
* `buildSkillRuleContexts` 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 skill:
|
|
9
|
+
*
|
|
10
|
+
* - `isNative` — whether the skill is expected to expose `skill.json`
|
|
11
|
+
* (registry-installed natives: `true`; managed external: `false`).
|
|
12
|
+
* - `skillJson` — pre-decoded `skill.json` when present (caller decodes
|
|
13
|
+
* once per skill, so rules don't re-read + re-parse).
|
|
14
|
+
* - `displayRoot` — posix-relative root used by the renderer; the caller
|
|
15
|
+
* picks per provenance (see the table below).
|
|
16
|
+
* - `files` — the pre-bound `SkillFileAccessor`. The caller chooses VFT or
|
|
17
|
+
* platform-backed.
|
|
18
|
+
*
|
|
19
|
+
* Provenance → `displayRoot` table:
|
|
20
|
+
*
|
|
21
|
+
* | Surface | `displayRoot` |
|
|
22
|
+
* | ----------------------------------------- | --------------------------------------------- |
|
|
23
|
+
* | Publish (Phase 4) | `""` |
|
|
24
|
+
* | Registry-installed native skill | `.axm/extensions/<@owner>/skills/<name>/src` |
|
|
25
|
+
* | External skill | `.axm/extensions/external/skills/<name>` |
|
|
26
|
+
*
|
|
27
|
+
* @experimental This API is unstable and may change without notice.
|
|
28
|
+
* @packageDocumentation
|
|
29
|
+
*/
|
|
30
|
+
import type { SkillFileAccessor, SkillRuleContext } from "../../context.js";
|
|
31
|
+
/**
|
|
32
|
+
* Minimal structural shape `buildSkillRuleContexts` needs per installed
|
|
33
|
+
* skill. Phase 3c's `WorkspaceIndex` satisfies this by construction — its
|
|
34
|
+
* `installedSkills` field is `ReadonlyArray<InstalledSkillInfo>`.
|
|
35
|
+
*
|
|
36
|
+
* @experimental This API is unstable and may change without notice.
|
|
37
|
+
*/
|
|
38
|
+
export interface InstalledSkillInfo {
|
|
39
|
+
readonly isNative: boolean;
|
|
40
|
+
readonly skillJson: unknown;
|
|
41
|
+
readonly displayRoot: string;
|
|
42
|
+
readonly files: SkillFileAccessor;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Minimal structural shape of the WorkspaceIndex subset `buildSkillRuleContexts`
|
|
46
|
+
* consumes. Keeping the function input narrow keeps Phase 3a and Phase 3c
|
|
47
|
+
* decoupled: the index implementation (Phase 3c) can add more methods
|
|
48
|
+
* without affecting this call site.
|
|
49
|
+
*
|
|
50
|
+
* @experimental This API is unstable and may change without notice.
|
|
51
|
+
*/
|
|
52
|
+
export interface SkillIndexView {
|
|
53
|
+
readonly installedSkills: ReadonlyArray<InstalledSkillInfo>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Project an index's `installedSkills` into `SkillRuleContext`s with their
|
|
57
|
+
* `displayRoot` and `subject` fields pre-populated.
|
|
58
|
+
*
|
|
59
|
+
* Publish callers bypass this helper and construct a single context directly
|
|
60
|
+
* — they have exactly one skill in play and no workspace.
|
|
61
|
+
*
|
|
62
|
+
* @experimental This API is unstable and may change without notice.
|
|
63
|
+
*/
|
|
64
|
+
export declare const buildSkillRuleContexts: (index: SkillIndexView) => ReadonlyArray<SkillRuleContext>;
|
|
65
|
+
//# sourceMappingURL=contexts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAM5E;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC7D;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,cAAc,KAAG,aAAa,CAAC,gBAAgB,CAU1F,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildSkillRuleContexts` — build `SkillRuleContext[]` from a
|
|
3
|
+
* `WorkspaceIndex`-shaped input.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3c owns `WorkspaceIndex`; Phase 3a pins the minimal shape
|
|
6
|
+
* `buildSkillRuleContexts` 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 skill:
|
|
9
|
+
*
|
|
10
|
+
* - `isNative` — whether the skill is expected to expose `skill.json`
|
|
11
|
+
* (registry-installed natives: `true`; managed external: `false`).
|
|
12
|
+
* - `skillJson` — pre-decoded `skill.json` when present (caller decodes
|
|
13
|
+
* once per skill, so rules don't re-read + re-parse).
|
|
14
|
+
* - `displayRoot` — posix-relative root used by the renderer; the caller
|
|
15
|
+
* picks per provenance (see the table below).
|
|
16
|
+
* - `files` — the pre-bound `SkillFileAccessor`. The caller chooses VFT or
|
|
17
|
+
* platform-backed.
|
|
18
|
+
*
|
|
19
|
+
* Provenance → `displayRoot` table:
|
|
20
|
+
*
|
|
21
|
+
* | Surface | `displayRoot` |
|
|
22
|
+
* | ----------------------------------------- | --------------------------------------------- |
|
|
23
|
+
* | Publish (Phase 4) | `""` |
|
|
24
|
+
* | Registry-installed native skill | `.axm/extensions/<@owner>/skills/<name>/src` |
|
|
25
|
+
* | External skill | `.axm/extensions/external/skills/<name>` |
|
|
26
|
+
*
|
|
27
|
+
* @experimental This API is unstable and may change without notice.
|
|
28
|
+
* @packageDocumentation
|
|
29
|
+
*/
|
|
30
|
+
// -----------------------------------------------------------------------------
|
|
31
|
+
// buildSkillRuleContexts
|
|
32
|
+
// -----------------------------------------------------------------------------
|
|
33
|
+
/**
|
|
34
|
+
* Project an index's `installedSkills` into `SkillRuleContext`s with their
|
|
35
|
+
* `displayRoot` and `subject` fields pre-populated.
|
|
36
|
+
*
|
|
37
|
+
* Publish callers bypass this helper and construct a single context directly
|
|
38
|
+
* — they have exactly one skill in play and no workspace.
|
|
39
|
+
*
|
|
40
|
+
* @experimental This API is unstable and may change without notice.
|
|
41
|
+
*/
|
|
42
|
+
export const buildSkillRuleContexts = (index) => index.installedSkills.map((info) => ({
|
|
43
|
+
subject: {
|
|
44
|
+
isNative: info.isNative,
|
|
45
|
+
skillJson: info.skillJson,
|
|
46
|
+
},
|
|
47
|
+
files: info.files,
|
|
48
|
+
displayRoot: info.displayRoot,
|
|
49
|
+
}));
|
|
50
|
+
//# sourceMappingURL=contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkCH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAqB,EAAmC,EAAE,CAC/F,KAAK,CAAC,eAAe,CAAC,GAAG,CACvB,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC;IAC3B,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B;IACD,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,WAAW,EAAE,IAAI,CAAC,WAAW;CAC9B,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-backed `SkillFileAccessor` for `axm lint`.
|
|
3
|
+
*
|
|
4
|
+
* Maps accessor-relative posix paths to on-disk absolute paths rooted at
|
|
5
|
+
* the caller-supplied skill-root directory. Layout conventions per
|
|
6
|
+
* `docs/design/lint-engine.md §3` "Skill accessor root":
|
|
7
|
+
*
|
|
8
|
+
* - **Native (registry-installed):**
|
|
9
|
+
* `<workspaceRoot>/.axm/extensions/<@owner>/skills/<sanitized-name>/src/`
|
|
10
|
+
* - **Non-native (managed external):**
|
|
11
|
+
* `<workspaceRoot>/.axm/extensions/external/skills/<sanitized-name>/`
|
|
12
|
+
*
|
|
13
|
+
* The accessor is provenance-agnostic — rules see one uniform contract and
|
|
14
|
+
* never branch on native-vs-non-native. The caller (`buildSkillRuleContexts`
|
|
15
|
+
* or the CLI entry point) picks the root.
|
|
16
|
+
*
|
|
17
|
+
* Bounds enforcement:
|
|
18
|
+
*
|
|
19
|
+
* - No `..` segments in accessor-relative paths.
|
|
20
|
+
* - No absolute paths (posix or Windows drive letters).
|
|
21
|
+
* - Resolved absolute paths are verified to stay under the accessor root.
|
|
22
|
+
*
|
|
23
|
+
* The accessor is built via a factory that captures a pre-resolved
|
|
24
|
+
* `FileSystem.FileSystem` + `Path.Path` services and an absolute root, so
|
|
25
|
+
* `SkillFileAccessor` stays Layer-free at rule-evaluation time (per
|
|
26
|
+
* `lint-engine` spec "Rule contexts expose narrow caller-bound accessors").
|
|
27
|
+
*
|
|
28
|
+
* @experimental This API is unstable and may change without notice.
|
|
29
|
+
* @packageDocumentation
|
|
30
|
+
*/
|
|
31
|
+
import type * as FileSystem from "effect/FileSystem";
|
|
32
|
+
import type * as Path from "effect/Path";
|
|
33
|
+
import type { SkillFileAccessor } from "../../context.js";
|
|
34
|
+
/**
|
|
35
|
+
* Platform services needed by the platform-backed skill accessor.
|
|
36
|
+
*/
|
|
37
|
+
export interface SkillAccessorPlatform {
|
|
38
|
+
readonly fs: FileSystem.FileSystem;
|
|
39
|
+
readonly path: Path.Path;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Build a platform-backed `SkillFileAccessor` rooted at `absoluteRoot`.
|
|
43
|
+
*
|
|
44
|
+
* `absoluteRoot` SHOULD be the absolute path to the skill root directory
|
|
45
|
+
* (either `.../src/` for native, or `.../external/skills/<name>/` for
|
|
46
|
+
* non-native). The caller typically sources it from `computeSkillPaths` in
|
|
47
|
+
* `../../../skills/paths.ts`.
|
|
48
|
+
*
|
|
49
|
+
* @experimental This API is unstable and may change without notice.
|
|
50
|
+
*/
|
|
51
|
+
export declare const makePlatformSkillFileAccessor: (platform: SkillAccessorPlatform, absoluteRoot: string) => SkillFileAccessor;
|
|
52
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CAC1B;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,qBAAqB,EAC/B,cAAc,MAAM,KACnB,iBA2DF,CAAC"}
|