@lesliechan721/aw 0.1.0-beta.3 → 0.1.0-beta.30
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/authoring/assets/aw-config.mjs +100 -501
- package/dist/authoring/assets/aw-config.mjs.map +1 -1
- package/dist/authoring/scripts/add-skill.mjs +4 -4
- package/dist/authoring/scripts/add-skill.mjs.map +1 -1
- package/dist/authoring/scripts/init-plugin.mjs +67 -97
- package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
- package/dist/authoring/scripts/lib/plugin-version-check.d.mts +15 -0
- package/dist/authoring/scripts/lib/plugin-version-check.mjs +239 -232
- package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
- package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -90
- package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -120
- package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
- package/dist/authoring/scripts/plugin-status.mjs +8 -11
- package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
- package/dist/authoring/scripts/remove-plugin.mjs +367 -0
- package/dist/authoring/scripts/remove-plugin.mjs.map +1 -0
- package/dist/authoring/scripts/validate-plugin.mjs +307 -1173
- package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
- package/dist/scripts/aw-skill-eval-materializer.d.ts +26 -0
- package/dist/scripts/aw-skill-eval-materializer.js +306 -0
- package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
- package/dist/scripts/bundle-plugins.d.ts +1 -2
- package/dist/scripts/bundle-plugins.js +24 -7
- package/dist/scripts/bundle-plugins.js.map +1 -1
- package/dist/scripts/plugin-staging.d.ts +7 -24
- package/dist/scripts/plugin-staging.js +22 -142
- package/dist/scripts/plugin-staging.js.map +1 -1
- package/dist/scripts/test-plugin-scripts.d.ts +2 -0
- package/dist/scripts/test-plugin-scripts.js +27 -75
- package/dist/scripts/test-plugin-scripts.js.map +1 -1
- package/dist/src/adapters/helpers.js +2 -2
- package/dist/src/adapters/helpers.js.map +1 -1
- package/dist/src/authoring/workspace-commands.d.ts +26 -2
- package/dist/src/authoring/workspace-commands.js +44 -19
- package/dist/src/authoring/workspace-commands.js.map +1 -1
- package/dist/src/commands/aw-capabilities.d.ts +78 -0
- package/dist/src/commands/aw-capabilities.js +256 -0
- package/dist/src/commands/aw-capabilities.js.map +1 -0
- package/dist/src/commands/catalog-dev-source.d.ts +154 -0
- package/dist/src/commands/catalog-dev-source.js +655 -0
- package/dist/src/commands/catalog-dev-source.js.map +1 -0
- package/dist/src/commands/catalog-generation.d.ts +21 -0
- package/dist/src/commands/catalog-generation.js +9 -0
- package/dist/src/commands/catalog-generation.js.map +1 -0
- package/dist/src/commands/catalog-publication-inspection.d.ts +138 -0
- package/dist/src/commands/catalog-publication-inspection.js +757 -0
- package/dist/src/commands/catalog-publication-inspection.js.map +1 -0
- package/dist/src/commands/catalog-publication-journal.d.ts +68 -0
- package/dist/src/commands/catalog-publication-journal.js +292 -0
- package/dist/src/commands/catalog-publication-journal.js.map +1 -0
- package/dist/src/commands/catalog-publication-target.d.ts +18 -0
- package/dist/src/commands/catalog-publication-target.js +95 -0
- package/dist/src/commands/catalog-publication-target.js.map +1 -0
- package/dist/src/commands/catalog-publish.d.ts +77 -7
- package/dist/src/commands/catalog-publish.js +746 -316
- package/dist/src/commands/catalog-publish.js.map +1 -1
- package/dist/src/commands/catalog-source.d.ts +60 -22
- package/dist/src/commands/catalog-source.js +311 -91
- package/dist/src/commands/catalog-source.js.map +1 -1
- package/dist/src/commands/catalog-status.d.ts +56 -0
- package/dist/src/commands/catalog-status.js +217 -0
- package/dist/src/commands/catalog-status.js.map +1 -0
- package/dist/src/commands/catalog-store.d.ts +104 -0
- package/dist/src/commands/catalog-store.js +685 -0
- package/dist/src/commands/catalog-store.js.map +1 -0
- package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
- package/dist/src/commands/catalog-workspace-resolution.js +42 -0
- package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
- package/dist/src/commands/console.js +28 -17
- package/dist/src/commands/console.js.map +1 -1
- package/dist/src/commands/dependency-operation-plan.d.ts +52 -15
- package/dist/src/commands/dependency-operation-plan.js +289 -7
- package/dist/src/commands/dependency-operation-plan.js.map +1 -1
- package/dist/src/commands/init.d.ts +5 -11
- package/dist/src/commands/init.js +30 -51
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/offline-cleanup-evidence.d.ts +67 -0
- package/dist/src/commands/offline-cleanup-evidence.js +181 -0
- package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
- package/dist/src/commands/operation-plan.d.ts +127 -0
- package/dist/src/commands/operation-plan.js +71 -0
- package/dist/src/commands/operation-plan.js.map +1 -0
- package/dist/src/commands/operation-planner.d.ts +46 -0
- package/dist/src/commands/operation-planner.js +141 -0
- package/dist/src/commands/operation-planner.js.map +1 -0
- package/dist/src/commands/options.d.ts +9 -7
- package/dist/src/commands/options.js +83 -21
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/plugin-capabilities.d.ts +22 -0
- package/dist/src/commands/plugin-capabilities.js +159 -0
- package/dist/src/commands/plugin-capabilities.js.map +1 -0
- package/dist/src/commands/rebuild-command.d.ts +77 -30
- package/dist/src/commands/rebuild-command.js +3993 -711
- package/dist/src/commands/rebuild-command.js.map +1 -1
- package/dist/src/commands/rebuild-integration.d.ts +120 -21
- package/dist/src/commands/rebuild-integration.js +2765 -1326
- package/dist/src/commands/rebuild-integration.js.map +1 -1
- package/dist/src/commands/rebuild-operations.d.ts +58 -30
- package/dist/src/commands/rebuild-operations.js +259 -319
- package/dist/src/commands/rebuild-operations.js.map +1 -1
- package/dist/src/commands/reconcile-operation-plan.d.ts +28 -0
- package/dist/src/commands/reconcile-operation-plan.js +47 -0
- package/dist/src/commands/reconcile-operation-plan.js.map +1 -0
- package/dist/src/commands/review-inspection.d.ts +228 -0
- package/dist/src/commands/review-inspection.js +1341 -0
- package/dist/src/commands/review-inspection.js.map +1 -0
- package/dist/src/commands/review-preparation.d.ts +49 -0
- package/dist/src/commands/review-preparation.js +427 -0
- package/dist/src/commands/review-preparation.js.map +1 -0
- package/dist/src/commands/runtime.d.ts +1 -5
- package/dist/src/commands/runtime.js +24 -50
- package/dist/src/commands/runtime.js.map +1 -1
- package/dist/src/commands/skill-eval.d.ts +38 -0
- package/dist/src/commands/skill-eval.js +388 -0
- package/dist/src/commands/skill-eval.js.map +1 -0
- package/dist/src/commands/status-v6.d.ts +279 -0
- package/dist/src/commands/status-v6.js +2697 -0
- package/dist/src/commands/status-v6.js.map +1 -0
- package/dist/src/commands/sync-command.d.ts +40 -0
- package/dist/src/commands/sync-command.js +250 -0
- package/dist/src/commands/sync-command.js.map +1 -0
- package/dist/src/commands/wizard.d.ts +3 -4
- package/dist/src/commands/wizard.js +2 -2
- package/dist/src/commands/wizard.js.map +1 -1
- package/dist/src/commands/write-commands.d.ts +9 -3
- package/dist/src/commands/write-commands.js +124 -31
- package/dist/src/commands/write-commands.js.map +1 -1
- package/dist/src/constants.d.ts +7 -1
- package/dist/src/constants.js +7 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/eval/manifest-v1.d.ts +71 -0
- package/dist/src/eval/manifest-v1.js +370 -0
- package/dist/src/eval/manifest-v1.js.map +1 -0
- package/dist/src/generators/local-plugin.d.ts +5 -1
- package/dist/src/generators/local-plugin.js +225 -104
- package/dist/src/generators/local-plugin.js.map +1 -1
- package/dist/src/index.d.ts +10 -4
- package/dist/src/index.js +1787 -476
- package/dist/src/index.js.map +1 -1
- package/dist/src/output/command-receipt.d.ts +43 -46
- package/dist/src/output/command-receipt.js +256 -80
- package/dist/src/output/command-receipt.js.map +1 -1
- package/dist/src/output/model.d.ts +3 -44
- package/dist/src/output/model.js +1 -144
- package/dist/src/output/model.js.map +1 -1
- package/dist/src/output/rebuild-progress.js +1 -13
- package/dist/src/output/rebuild-progress.js.map +1 -1
- package/dist/src/portable/commands.d.ts +46 -7
- package/dist/src/portable/commands.js +349 -37
- package/dist/src/portable/commands.js.map +1 -1
- package/dist/src/portable/materializer.d.ts +17 -4
- package/dist/src/portable/materializer.js +160 -38
- package/dist/src/portable/materializer.js.map +1 -1
- package/dist/src/portable/skills-cli.d.ts +15 -7
- package/dist/src/portable/skills-cli.js +66 -19
- package/dist/src/portable/skills-cli.js.map +1 -1
- package/dist/src/review/eval-source-input.d.ts +43 -0
- package/dist/src/review/eval-source-input.js +207 -0
- package/dist/src/review/eval-source-input.js.map +1 -0
- package/dist/src/review/review-profile.d.ts +17 -0
- package/dist/src/review/review-profile.js +177 -0
- package/dist/src/review/review-profile.js.map +1 -0
- package/dist/src/review/review-selection.d.ts +30 -0
- package/dist/src/review/review-selection.js +527 -0
- package/dist/src/review/review-selection.js.map +1 -0
- package/dist/src/review/review-types.d.ts +68 -0
- package/dist/src/review/review-types.js +16 -0
- package/dist/src/review/review-types.js.map +1 -0
- package/dist/src/review/skill-materialization.d.ts +13 -0
- package/dist/src/review/skill-materialization.js +75 -0
- package/dist/src/review/skill-materialization.js.map +1 -0
- package/dist/src/review/source-binding.d.ts +182 -0
- package/dist/src/review/source-binding.js +682 -0
- package/dist/src/review/source-binding.js.map +1 -0
- package/dist/src/tui/catalog-freshness.d.ts +1 -0
- package/dist/src/tui/catalog-freshness.js +2 -0
- package/dist/src/tui/catalog-freshness.js.map +1 -0
- package/dist/src/tui/catalog-generation.d.ts +21 -0
- package/dist/src/tui/catalog-generation.js +156 -0
- package/dist/src/tui/catalog-generation.js.map +1 -0
- package/dist/src/tui/catalog-sources/projection.d.ts +4 -0
- package/dist/src/tui/catalog-sources/projection.js +17 -0
- package/dist/src/tui/catalog-sources/projection.js.map +1 -0
- package/dist/src/tui/catalog-sources/review.d.ts +3 -0
- package/dist/src/tui/catalog-sources/review.js +13 -0
- package/dist/src/tui/catalog-sources/review.js.map +1 -0
- package/dist/src/tui/catalog-sources/screens.d.ts +12 -0
- package/dist/src/tui/catalog-sources/screens.js +40 -0
- package/dist/src/tui/catalog-sources/screens.js.map +1 -0
- package/dist/src/tui/catalog-sources/session.d.ts +28 -0
- package/dist/src/tui/catalog-sources/session.js +295 -0
- package/dist/src/tui/catalog-sources/session.js.map +1 -0
- package/dist/src/tui/catalog-sources/types.d.ts +53 -0
- package/dist/src/tui/catalog-sources/types.js +2 -0
- package/dist/src/tui/catalog-sources/types.js.map +1 -0
- package/dist/src/tui/catalog-store-task.d.ts +16 -0
- package/dist/src/tui/catalog-store-task.js +19 -0
- package/dist/src/tui/catalog-store-task.js.map +1 -0
- package/dist/src/tui/components.d.ts +128 -0
- package/dist/src/tui/components.js +251 -7
- package/dist/src/tui/components.js.map +1 -1
- package/dist/src/tui/console-app-v4.d.ts +14 -4
- package/dist/src/tui/console-app-v4.js +9248 -1461
- package/dist/src/tui/console-app-v4.js.map +1 -1
- package/dist/src/tui/controller-runtime.d.ts +13 -1
- package/dist/src/tui/controller-runtime.js +3338 -410
- package/dist/src/tui/controller-runtime.js.map +1 -1
- package/dist/src/tui/controller.d.ts +614 -40
- package/dist/src/tui/controller.js +3478 -708
- package/dist/src/tui/controller.js.map +1 -1
- package/dist/src/tui/dependency-graph.d.ts +81 -0
- package/dist/src/tui/dependency-graph.js +455 -0
- package/dist/src/tui/dependency-graph.js.map +1 -0
- package/dist/src/tui/diagnostic-projection.d.ts +23 -0
- package/dist/src/tui/diagnostic-projection.js +567 -0
- package/dist/src/tui/diagnostic-projection.js.map +1 -0
- package/dist/src/tui/diagnostics.d.ts +30 -0
- package/dist/src/tui/diagnostics.js +76 -0
- package/dist/src/tui/diagnostics.js.map +1 -0
- package/dist/src/tui/glossary.d.ts +23 -0
- package/dist/src/tui/glossary.js +42 -0
- package/dist/src/tui/glossary.js.map +1 -0
- package/dist/src/tui/index.d.ts +11 -4
- package/dist/src/tui/index.js +8 -2
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/input-display.d.ts +8 -0
- package/dist/src/tui/input-display.js +36 -0
- package/dist/src/tui/input-display.js.map +1 -0
- package/dist/src/tui/keys.d.ts +44 -0
- package/dist/src/tui/keys.js +43 -15
- package/dist/src/tui/keys.js.map +1 -1
- package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
- package/dist/src/tui/lifecycle-action-view.js +36 -0
- package/dist/src/tui/lifecycle-action-view.js.map +1 -0
- package/dist/src/tui/model.d.ts +235 -27
- package/dist/src/tui/model.js +1652 -304
- package/dist/src/tui/model.js.map +1 -1
- package/dist/src/tui/operation-diagnostic-screens.d.ts +21 -0
- package/dist/src/tui/operation-diagnostic-screens.js +102 -0
- package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
- package/dist/src/tui/operation-history.d.ts +81 -0
- package/dist/src/tui/operation-history.js +135 -0
- package/dist/src/tui/operation-history.js.map +1 -0
- package/dist/src/tui/operation-review-planner.d.ts +21 -0
- package/dist/src/tui/operation-review-planner.js +1254 -0
- package/dist/src/tui/operation-review-planner.js.map +1 -0
- package/dist/src/tui/plugin-content.d.ts +23 -0
- package/dist/src/tui/plugin-content.js +336 -0
- package/dist/src/tui/plugin-content.js.map +1 -0
- package/dist/src/tui/plugin-write-task.d.ts +69 -0
- package/dist/src/tui/plugin-write-task.js +286 -0
- package/dist/src/tui/plugin-write-task.js.map +1 -0
- package/dist/src/tui/prompt.js +4 -15
- package/dist/src/tui/prompt.js.map +1 -1
- package/dist/src/tui/router.d.ts +183 -11
- package/dist/src/tui/router.js +352 -29
- package/dist/src/tui/router.js.map +1 -1
- package/dist/src/tui/screen-registry.d.ts +702 -0
- package/dist/src/tui/screen-registry.js +231 -0
- package/dist/src/tui/screen-registry.js.map +1 -0
- package/dist/src/tui/session-console-app.d.ts +6 -0
- package/dist/src/tui/session-console-app.js +13 -0
- package/dist/src/tui/session-console-app.js.map +1 -0
- package/dist/src/tui/session-host.d.ts +45 -0
- package/dist/src/tui/session-host.js +209 -0
- package/dist/src/tui/session-host.js.map +1 -0
- package/dist/src/tui/source-ref-presets.d.ts +3 -0
- package/dist/src/tui/source-ref-presets.js +11 -0
- package/dist/src/tui/source-ref-presets.js.map +1 -0
- package/dist/src/tui/theme.d.ts +18 -10
- package/dist/src/tui/theme.js +18 -10
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/viewport.d.ts +20 -0
- package/dist/src/tui/viewport.js +29 -0
- package/dist/src/tui/viewport.js.map +1 -0
- package/dist/src/tui/views.js +31 -3
- package/dist/src/tui/views.js.map +1 -1
- package/dist/src/tui/wizard.js +11 -9
- package/dist/src/tui/wizard.js.map +1 -1
- package/dist/src/types.d.ts +242 -20
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/agent-version.d.ts +7 -1
- package/dist/src/utils/agent-version.js +41 -8
- package/dist/src/utils/agent-version.js.map +1 -1
- package/dist/src/utils/artifact-plan.d.ts +5 -4
- package/dist/src/utils/artifact-plan.js +18 -7
- package/dist/src/utils/artifact-plan.js.map +1 -1
- package/dist/src/utils/artifact-renderer.d.ts +13 -7
- package/dist/src/utils/artifact-renderer.js +196 -219
- package/dist/src/utils/artifact-renderer.js.map +1 -1
- package/dist/src/utils/artifact-request.d.ts +21 -0
- package/dist/src/utils/artifact-request.js +82 -0
- package/dist/src/utils/artifact-request.js.map +1 -0
- package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
- package/dist/src/utils/aw-home-mutation-lock.js +32 -4
- package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
- package/dist/src/utils/bundle-integrity.d.ts +0 -1
- package/dist/src/utils/bundle-integrity.js +0 -25
- package/dist/src/utils/bundle-integrity.js.map +1 -1
- package/dist/src/utils/bundle-layout.js +14 -29
- package/dist/src/utils/bundle-layout.js.map +1 -1
- package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
- package/dist/src/utils/catalog-capability-projection.js +14 -0
- package/dist/src/utils/catalog-capability-projection.js.map +1 -0
- package/dist/src/utils/catalog-digests.d.ts +10 -0
- package/dist/src/utils/catalog-digests.js +50 -2
- package/dist/src/utils/catalog-digests.js.map +1 -1
- package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
- package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
- package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
- package/dist/src/utils/catalog-generation-error.d.ts +16 -0
- package/dist/src/utils/catalog-generation-error.js +30 -0
- package/dist/src/utils/catalog-generation-error.js.map +1 -0
- package/dist/src/utils/catalog-generation-resolver.d.ts +44 -0
- package/dist/src/utils/catalog-generation-resolver.js +273 -0
- package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
- package/dist/src/utils/catalog-generation-service.d.ts +172 -0
- package/dist/src/utils/catalog-generation-service.js +1271 -0
- package/dist/src/utils/catalog-generation-service.js.map +1 -0
- package/dist/src/utils/catalog-generation-state.d.ts +22 -0
- package/dist/src/utils/catalog-generation-state.js +192 -0
- package/dist/src/utils/catalog-generation-state.js.map +1 -0
- package/dist/src/utils/catalog-generation-store.d.ts +58 -0
- package/dist/src/utils/catalog-generation-store.js +452 -0
- package/dist/src/utils/catalog-generation-store.js.map +1 -0
- package/dist/src/utils/catalog-manifest-v7.d.ts +5 -0
- package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v7.js} +35 -43
- package/dist/src/utils/catalog-manifest-v7.js.map +1 -0
- package/dist/src/utils/catalog-operation-context.d.ts +20 -0
- package/dist/src/utils/catalog-operation-context.js +142 -0
- package/dist/src/utils/catalog-operation-context.js.map +1 -0
- package/dist/src/utils/catalog-public-error.d.ts +7 -3
- package/dist/src/utils/catalog-public-error.js +28 -8
- package/dist/src/utils/catalog-public-error.js.map +1 -1
- package/dist/src/utils/catalog-runtime-projection.d.ts +4 -7
- package/dist/src/utils/catalog-runtime-projection.js +7 -102
- package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
- package/dist/src/utils/catalog-snapshot.d.ts +5 -3
- package/dist/src/utils/catalog-snapshot.js +11 -3
- package/dist/src/utils/catalog-snapshot.js.map +1 -1
- package/dist/src/utils/catalog-source-identity.d.ts +1 -0
- package/dist/src/utils/catalog-source-identity.js +21 -2
- package/dist/src/utils/catalog-source-identity.js.map +1 -1
- package/dist/src/utils/catalog-source-impact.d.ts +21 -0
- package/dist/src/utils/catalog-source-impact.js +344 -0
- package/dist/src/utils/catalog-source-impact.js.map +1 -0
- package/dist/src/utils/catalog-source-references.d.ts +3 -2
- package/dist/src/utils/catalog-source-references.js +195 -347
- package/dist/src/utils/catalog-source-references.js.map +1 -1
- package/dist/src/utils/catalog-sources.d.ts +15 -1
- package/dist/src/utils/catalog-sources.js +206 -27
- package/dist/src/utils/catalog-sources.js.map +1 -1
- package/dist/src/utils/codex-config.d.ts +2 -0
- package/dist/src/utils/codex-config.js +26 -5
- package/dist/src/utils/codex-config.js.map +1 -1
- package/dist/src/utils/codex-manager.d.ts +79 -0
- package/dist/src/utils/codex-manager.js +745 -0
- package/dist/src/utils/codex-manager.js.map +1 -0
- package/dist/src/utils/codex-marketplace-path.d.ts +5 -0
- package/dist/src/utils/codex-marketplace-path.js +45 -0
- package/dist/src/utils/codex-marketplace-path.js.map +1 -0
- package/dist/src/utils/codex-native-observation.d.ts +49 -0
- package/dist/src/utils/codex-native-observation.js +154 -0
- package/dist/src/utils/codex-native-observation.js.map +1 -0
- package/dist/src/utils/codex-native-render-receipt.d.ts +40 -0
- package/dist/src/utils/codex-native-render-receipt.js +205 -0
- package/dist/src/utils/codex-native-render-receipt.js.map +1 -0
- package/dist/src/utils/codex-reconciler.d.ts +126 -0
- package/dist/src/utils/codex-reconciler.js +298 -0
- package/dist/src/utils/codex-reconciler.js.map +1 -0
- package/dist/src/utils/codex-shared-native.d.ts +43 -0
- package/dist/src/utils/codex-shared-native.js +81 -0
- package/dist/src/utils/codex-shared-native.js.map +1 -0
- package/dist/src/utils/codex-skill-staging.d.ts +2 -0
- package/dist/src/utils/codex-skill-staging.js.map +1 -1
- package/dist/src/utils/codex-surface-analysis.d.ts +46 -0
- package/dist/src/utils/codex-surface-analysis.js +247 -0
- package/dist/src/utils/codex-surface-analysis.js.map +1 -0
- package/dist/src/utils/dynamic-skill-tree.d.ts +4 -0
- package/dist/src/utils/dynamic-skill-tree.js +36 -6
- package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
- package/dist/src/utils/git-catalog-provider.d.ts +18 -0
- package/dist/src/utils/git-catalog-provider.js +170 -144
- package/dist/src/utils/git-catalog-provider.js.map +1 -1
- package/dist/src/utils/local-marketplace.d.ts +15 -1
- package/dist/src/utils/local-marketplace.js +307 -84
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/manifest.d.ts +1 -4
- package/dist/src/utils/manifest.js +1 -4
- package/dist/src/utils/manifest.js.map +1 -1
- package/dist/src/utils/multi-source-catalog.d.ts +3 -9
- package/dist/src/utils/multi-source-catalog.js +54 -110
- package/dist/src/utils/multi-source-catalog.js.map +1 -1
- package/dist/src/utils/native-cli.d.ts +55 -7
- package/dist/src/utils/native-cli.js +386 -57
- package/dist/src/utils/native-cli.js.map +1 -1
- package/dist/src/utils/orphan-marketplace-cleanup.js +0 -4
- package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
- package/dist/src/utils/ownership.d.ts +84 -20
- package/dist/src/utils/ownership.js +179 -222
- package/dist/src/utils/ownership.js.map +1 -1
- package/dist/src/utils/path-catalog-provider.d.ts +1 -1
- package/dist/src/utils/path-catalog-provider.js +54 -65
- package/dist/src/utils/path-catalog-provider.js.map +1 -1
- package/dist/src/utils/paths.d.ts +0 -1
- package/dist/src/utils/paths.js +0 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/plugin-config-impact.d.ts +33 -0
- package/dist/src/utils/plugin-config-impact.js +298 -0
- package/dist/src/utils/plugin-config-impact.js.map +1 -0
- package/dist/src/utils/plugin-config-write.d.ts +52 -27
- package/dist/src/utils/plugin-config-write.js +990 -298
- package/dist/src/utils/plugin-config-write.js.map +1 -1
- package/dist/src/utils/plugin-config.d.ts +140 -93
- package/dist/src/utils/plugin-config.js +992 -980
- package/dist/src/utils/plugin-config.js.map +1 -1
- package/dist/src/utils/plugin-intent-state.d.ts +49 -0
- package/dist/src/utils/plugin-intent-state.js +320 -0
- package/dist/src/utils/plugin-intent-state.js.map +1 -0
- package/dist/src/utils/plugin-scripts.d.ts +62 -125
- package/dist/src/utils/plugin-scripts.js +468 -525
- package/dist/src/utils/plugin-scripts.js.map +1 -1
- package/dist/src/utils/process-tree.d.ts +2 -2
- package/dist/src/utils/process-tree.js +1 -1
- package/dist/src/utils/process-tree.js.map +1 -1
- package/dist/src/utils/project-boundary.d.ts +11 -13
- package/dist/src/utils/project-boundary.js +28 -34
- package/dist/src/utils/project-boundary.js.map +1 -1
- package/dist/src/utils/safe-fs.d.ts +21 -0
- package/dist/src/utils/safe-fs.js +111 -0
- package/dist/src/utils/safe-fs.js.map +1 -0
- package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
- package/dist/src/utils/safe-operation-diagnostic.js +33 -0
- package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
- package/dist/src/utils/sensitive-content.d.ts +4 -0
- package/dist/src/utils/sensitive-content.js +36 -0
- package/dist/src/utils/sensitive-content.js.map +1 -0
- package/dist/src/utils/skill-validation.d.ts +1 -1
- package/dist/src/utils/skill-validation.js +1 -1
- package/dist/src/utils/skill-validation.js.map +1 -1
- package/dist/src/utils/state-paths.d.ts +1 -0
- package/dist/src/utils/state-paths.js +12 -2
- package/dist/src/utils/state-paths.js.map +1 -1
- package/dist/src/utils/target-eligibility.d.ts +8 -2
- package/dist/src/utils/target-eligibility.js +17 -8
- package/dist/src/utils/target-eligibility.js.map +1 -1
- package/dist/src/utils/windows-claude-shim.d.ts +9 -0
- package/dist/src/utils/windows-claude-shim.js +141 -0
- package/dist/src/utils/windows-claude-shim.js.map +1 -0
- package/dist/vitest.config.js +91 -10
- package/dist/vitest.config.js.map +1 -1
- package/package.json +22 -19
- package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
- package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
- package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
- package/dist/scripts/aw-skill-eval-engine.js +0 -31
- package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
- package/dist/scripts/codex-eval-app-server.d.ts +0 -89
- package/dist/scripts/codex-eval-app-server.js +0 -1228
- package/dist/scripts/codex-eval-app-server.js.map +0 -1
- package/dist/scripts/codex-eval-isolation.d.ts +0 -61
- package/dist/scripts/codex-eval-isolation.js +0 -318
- package/dist/scripts/codex-eval-isolation.js.map +0 -1
- package/dist/scripts/codex-eval-process-management.d.ts +0 -8
- package/dist/scripts/codex-eval-process-management.js +0 -69
- package/dist/scripts/codex-eval-process-management.js.map +0 -1
- package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
- package/dist/scripts/codex-eval-process-tree.js +0 -803
- package/dist/scripts/codex-eval-process-tree.js.map +0 -1
- package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
- package/dist/scripts/codex-eval-runtime-config.js +0 -843
- package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
- package/dist/scripts/codex-trigger-eval.d.ts +0 -84
- package/dist/scripts/codex-trigger-eval.js +0 -968
- package/dist/scripts/codex-trigger-eval.js.map +0 -1
- package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
- package/dist/scripts/eval-plugin-skills-audited.js +0 -261
- package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
- package/dist/scripts/eval-plugin-skills.d.ts +0 -45
- package/dist/scripts/eval-plugin-skills.js +0 -1586
- package/dist/scripts/eval-plugin-skills.js.map +0 -1
- package/dist/scripts/eval-run-layout.d.ts +0 -17
- package/dist/scripts/eval-run-layout.js +0 -26
- package/dist/scripts/eval-run-layout.js.map +0 -1
- package/dist/scripts/plugin-eval-contract.d.ts +0 -185
- package/dist/scripts/plugin-eval-contract.js +0 -695
- package/dist/scripts/plugin-eval-contract.js.map +0 -1
- package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
- package/dist/scripts/plugin-eval-materializer.js +0 -421
- package/dist/scripts/plugin-eval-materializer.js.map +0 -1
- package/dist/scripts/skill-reporting.d.ts +0 -212
- package/dist/scripts/skill-reporting.js +0 -922
- package/dist/scripts/skill-reporting.js.map +0 -1
- package/dist/src/commands/status-v4.d.ts +0 -102
- package/dist/src/commands/status-v4.js +0 -844
- package/dist/src/commands/status-v4.js.map +0 -1
- package/dist/src/commands/status.d.ts +0 -93
- package/dist/src/commands/status.js +0 -442
- package/dist/src/commands/status.js.map +0 -1
- package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
- package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
- package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
- package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
- package/dist/src/utils/catalog-manifest-v3.js +0 -3
- package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
- package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
- package/dist/src/utils/catalog-manifest-v4.js.map +0 -1
- package/dist/src/utils/catalog-source-cache.d.ts +0 -61
- package/dist/src/utils/catalog-source-cache.js +0 -276
- package/dist/src/utils/catalog-source-cache.js.map +0 -1
- package/dist/src/utils/codex-project-surface.d.ts +0 -3
- package/dist/src/utils/codex-project-surface.js +0 -49
- package/dist/src/utils/codex-project-surface.js.map +0 -1
- package/dist/src/utils/lifecycle-active-store.d.ts +0 -175
- package/dist/src/utils/lifecycle-active-store.js +0 -1276
- package/dist/src/utils/lifecycle-active-store.js.map +0 -1
- package/dist/src/utils/plugin-authoring-capabilities.d.ts +0 -23
- package/dist/src/utils/plugin-authoring-capabilities.js +0 -37
- package/dist/src/utils/plugin-authoring-capabilities.js.map +0 -1
- package/dist/src/utils/plugin-authoring-capabilities.json +0 -92
- package/dist/src/utils/plugin-release.d.ts +0 -2
- package/dist/src/utils/plugin-release.js +0 -2
- package/dist/src/utils/plugin-release.js.map +0 -1
- package/dist/src/utils/skill-frontmatter-capabilities.d.ts +0 -201
- package/dist/src/utils/skill-frontmatter-capabilities.js +0 -5
- package/dist/src/utils/skill-frontmatter-capabilities.js.map +0 -1
- package/dist/src/utils/skill-frontmatter-capabilities.json +0 -200
- /package/dist/authoring/scripts/{check-plugin-versions.d.mts → remove-plugin.d.mts} +0 -0
|
@@ -11,7 +11,8 @@ import { calculateFileDigest } from '../utils/bundle-integrity.js';
|
|
|
11
11
|
import { resolveCanonicalRuntimeSourceIdentity } from '../utils/catalog-runtime-projection.js';
|
|
12
12
|
import { getArtifactSourceBundleRelativePath } from '../utils/artifact-sources.js';
|
|
13
13
|
import { resolvePlatformHookDefinitions } from '../utils/hooks-contract.js';
|
|
14
|
-
import { assertManifestPlatformSupport, assertPluginInputTree, createBundleSourceManifest, createPlatformManifestBase, isIgnoredPluginInputDirectory, normalizePluginRelativePath, readPluginManifest, } from '../utils/manifest.js';
|
|
14
|
+
import { assertManifestPlatformSupport, assertPluginInputTree, checkAwCapabilitySupport, computeAwCapabilitySetDigest, createAwPluginRequirementsReceipt, createBundleSourceManifest, createPlatformManifestBase, isIgnoredPluginInputDirectory, normalizePluginRelativePath, normalizeAwCapabilities, readPluginManifest, resolvePluginRequirements, } from '../utils/manifest.js';
|
|
15
|
+
import { AwCapabilityUnsupportedError, IMPLEMENTED_AW_CAPABILITIES, } from '../commands/aw-capabilities.js';
|
|
15
16
|
import { writeJsonFile } from '../utils/json.js';
|
|
16
17
|
import { resolveSupportedPlatforms } from '../utils/platform-support.js';
|
|
17
18
|
import { renderTemplate } from '../utils/template-engine.js';
|
|
@@ -21,7 +22,7 @@ import { isSkillAuthorOnlyPath, isSkillCollectionAuthorOnlyPath, } from '../util
|
|
|
21
22
|
import { assertTestWritablePath } from '../utils/test-path-fence.js';
|
|
22
23
|
import { resolveCliPackageRoot } from '../utils/paths.js';
|
|
23
24
|
import { validateRuntimeSkillClosuresRoot, validateSkillRuntimeProjectionFreshness, } from '../utils/runtime-skill-closure.js';
|
|
24
|
-
import { validatePortableSkillDirectoriesRoot } from '../utils/dynamic-skill-tree.js';
|
|
25
|
+
import { AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH, validatePortableSkillDirectoriesRoot, } from '../utils/dynamic-skill-tree.js';
|
|
25
26
|
import { renderClaudeSlashCommand, renderCodexSlashCommandOpenAiYaml, renderCodexSlashCommandSkillMarkdown, resolveSlashCommands, } from '../utils/slash-commands.js';
|
|
26
27
|
const execFileAsync = promisify(execFile);
|
|
27
28
|
const requireFromCli = createRequire(import.meta.url);
|
|
@@ -98,34 +99,36 @@ async function resolveRuntimePnpmEntry(supportedPackageManager) {
|
|
|
98
99
|
const stats = await fs.stat(entryPath).catch(() => undefined);
|
|
99
100
|
return stats?.isFile() ? entryPath : undefined;
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
102
|
+
function createDefaultStagingRunner(commandEnv) {
|
|
103
|
+
return {
|
|
104
|
+
async installPackageRoot(packageRoot) {
|
|
105
|
+
const supportedPackageManager = await validateStagingPackageManager(packageRoot);
|
|
106
|
+
const fixedPnpmEntry = await resolveFixedPnpmEntry(supportedPackageManager, commandEnv)
|
|
107
|
+
?? await resolveRuntimePnpmEntry(supportedPackageManager);
|
|
108
|
+
if (!fixedPnpmEntry) {
|
|
109
|
+
throw new Error(`Cannot stage scripts.node.packageRoot: missing bundled ${supportedPackageManager} runtime dependency.`);
|
|
110
|
+
}
|
|
111
|
+
const args = [
|
|
112
|
+
fixedPnpmEntry,
|
|
113
|
+
'install',
|
|
114
|
+
'--frozen-lockfile',
|
|
115
|
+
'--ignore-scripts',
|
|
116
|
+
];
|
|
117
|
+
await execFileAsync(process.execPath, args, {
|
|
118
|
+
cwd: packageRoot,
|
|
119
|
+
env: commandEnv,
|
|
120
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
async runNodeBuild({ pluginRoot, scriptPath, args, env }) {
|
|
124
|
+
await execFileAsync(process.execPath, [path.join(pluginRoot, stripDotSlash(scriptPath)), ...args], {
|
|
125
|
+
cwd: pluginRoot,
|
|
126
|
+
env,
|
|
127
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
129
132
|
function stripDotSlash(value) {
|
|
130
133
|
return value.startsWith('./') ? value.slice(2) : value;
|
|
131
134
|
}
|
|
@@ -239,6 +242,9 @@ async function assertArtifactSourceTreePortable(rootDir, fieldName, relativeRoot
|
|
|
239
242
|
continue;
|
|
240
243
|
if (isMacOsMetadataName(entry.name))
|
|
241
244
|
continue;
|
|
245
|
+
if (relativePath === AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH) {
|
|
246
|
+
throw new Error(`Invalid ${fieldName}: source root cannot declare reserved file ${AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH}.`);
|
|
247
|
+
}
|
|
242
248
|
const entryPath = path.join(rootDir, entry.name);
|
|
243
249
|
if (entry.isSymbolicLink()) {
|
|
244
250
|
throw new Error(`Invalid ${fieldName}: symbolic links are not supported (${entry.name}).`);
|
|
@@ -289,6 +295,8 @@ async function copyPortableStaticSkills(plugin, outputRoot) {
|
|
|
289
295
|
}
|
|
290
296
|
async function resolveArtifactRuntimeImports(options) {
|
|
291
297
|
const manifest = createBundleSourceManifest(options.plugin);
|
|
298
|
+
const requiredCapabilities = [];
|
|
299
|
+
const projections = [];
|
|
292
300
|
for (const [targetIndex, target] of (manifest.artifacts?.targets ?? []).entries()) {
|
|
293
301
|
for (const [importIndex, runtimeImport] of (target.runtimeImports ?? []).entries()) {
|
|
294
302
|
if (!options.resolver) {
|
|
@@ -299,27 +307,64 @@ async function resolveArtifactRuntimeImports(options) {
|
|
|
299
307
|
reference: runtimeImport,
|
|
300
308
|
purpose: 'artifact-runtime',
|
|
301
309
|
});
|
|
310
|
+
requiredCapabilities.push(...resolution.requiredCapabilities);
|
|
302
311
|
const relativePath = `./.agents-plugin/runtime-imports/${target.id}/${runtimeImport.name}`;
|
|
303
312
|
const targetPath = path.join(options.outputRoot, stripDotSlash(relativePath));
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
313
|
+
const digest = resolution.sourceDigest;
|
|
314
|
+
projections.push({
|
|
315
|
+
sourcePath: resolution.sourcePath,
|
|
316
|
+
targetPath,
|
|
317
|
+
sourceDigest: resolution.sourceDigest,
|
|
318
|
+
label: `${target.id}/${runtimeImport.name}`,
|
|
319
|
+
});
|
|
310
320
|
runtimeImport.resolved = {
|
|
311
321
|
path: relativePath,
|
|
312
322
|
digest,
|
|
313
323
|
providerPluginId: resolution.provider,
|
|
314
324
|
providerVersion: resolution.providerVersion,
|
|
315
325
|
source: resolution.source,
|
|
326
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
327
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
316
328
|
};
|
|
317
329
|
}
|
|
318
330
|
}
|
|
319
331
|
if (manifest.distributions?.agentSkills?.skills) {
|
|
320
332
|
manifest.distributions.agentSkills.skills = './agent-skills/skills';
|
|
321
333
|
}
|
|
322
|
-
return
|
|
334
|
+
return {
|
|
335
|
+
manifest,
|
|
336
|
+
requiredCapabilities: normalizeAwCapabilities(requiredCapabilities),
|
|
337
|
+
projections,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
async function materializeArtifactRuntimeImports(projections) {
|
|
341
|
+
for (const projection of projections) {
|
|
342
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
343
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
344
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.sourceDigest) {
|
|
345
|
+
throw new Error(`Artifact runtime import digest mismatch at "${projection.label}".`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
async function injectRequirementsReceipts(options) {
|
|
350
|
+
const receipt = createAwPluginRequirementsReceipt({ name: options.plugin.manifest.name, version: options.plugin.manifest.version }, options.requiredCapabilities);
|
|
351
|
+
for (const relativeRoot of ['claude/skills', 'codex/skills', 'agent-skills/skills']) {
|
|
352
|
+
const skillsRoot = path.join(options.outputRoot, relativeRoot);
|
|
353
|
+
if (!(await fs.pathExists(skillsRoot)))
|
|
354
|
+
continue;
|
|
355
|
+
for (const entry of await fs.readdir(skillsRoot, { withFileTypes: true })) {
|
|
356
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
357
|
+
continue;
|
|
358
|
+
const skillRoot = path.join(skillsRoot, entry.name);
|
|
359
|
+
if (!(await fs.pathExists(path.join(skillRoot, 'SKILL.md'))))
|
|
360
|
+
continue;
|
|
361
|
+
const receiptPath = path.join(skillRoot, 'aw-plugin-requirements.json');
|
|
362
|
+
if (await fs.pathExists(receiptPath)) {
|
|
363
|
+
throw new Error(`Reserved runtime requirements receipt conflicts with source content: ${receiptPath}`);
|
|
364
|
+
}
|
|
365
|
+
await writeJsonFile(receiptPath, receipt);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
323
368
|
}
|
|
324
369
|
async function copySlashCommandAsset(pluginRoot, outputRoot, skillName, sourceRelativePath, generatedRelativePath) {
|
|
325
370
|
const sourcePath = path.join(pluginRoot, sourceRelativePath);
|
|
@@ -433,30 +478,13 @@ async function addDeclaredLspServerFiles(plugin, value, targetFiles) {
|
|
|
433
478
|
}
|
|
434
479
|
return value;
|
|
435
480
|
}
|
|
436
|
-
function
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
function addLifecycleRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
441
|
-
const lifecycle = plugin.manifest.scripts?.lifecycle;
|
|
442
|
-
if (!lifecycle) {
|
|
481
|
+
function addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries) {
|
|
482
|
+
const entry = plugin.manifest.scripts?.preApply;
|
|
483
|
+
if (!entry)
|
|
443
484
|
return;
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
continue;
|
|
448
|
-
}
|
|
449
|
-
for (const entry of Object.values(selector)) {
|
|
450
|
-
if (!entry) {
|
|
451
|
-
continue;
|
|
452
|
-
}
|
|
453
|
-
const filePath = stripDotSlash(entry.path);
|
|
454
|
-
rootFiles.add(filePath);
|
|
455
|
-
if (isNodeRuntimeEntry(entry)) {
|
|
456
|
-
nodeEntries.add(filePath);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
}
|
|
485
|
+
const filePath = stripDotSlash(entry.path);
|
|
486
|
+
rootFiles.add(filePath);
|
|
487
|
+
nodeEntries.add(filePath);
|
|
460
488
|
}
|
|
461
489
|
function addHelperRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
462
490
|
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
@@ -529,12 +557,22 @@ async function collectRuntimeClosureFiles(plugin, entryFiles) {
|
|
|
529
557
|
async function collectAwRuntimeFiles(plugin) {
|
|
530
558
|
const rootFiles = new Set();
|
|
531
559
|
const nodeEntries = new Set();
|
|
532
|
-
|
|
560
|
+
addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
533
561
|
addHelperRuntimeEntries(plugin, rootFiles, nodeEntries);
|
|
534
562
|
addArtifactRendererRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
535
|
-
|
|
563
|
+
const closureFiles = await collectRuntimeClosureFiles(plugin, [...nodeEntries]);
|
|
564
|
+
for (const filePath of closureFiles) {
|
|
536
565
|
rootFiles.add(filePath);
|
|
537
566
|
}
|
|
567
|
+
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
568
|
+
if (configHelper) {
|
|
569
|
+
const helperDir = path.posix.dirname(stripDotSlash(configHelper));
|
|
570
|
+
const re2RuntimeRoot = path.posix.join(helperDir, 're2-wasm');
|
|
571
|
+
if (closureFiles.includes(path.posix.join(re2RuntimeRoot, 'build/src/re2.js'))) {
|
|
572
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'build/wasm/re2.wasm'));
|
|
573
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'LICENSE'));
|
|
574
|
+
}
|
|
575
|
+
}
|
|
538
576
|
return [...rootFiles].sort();
|
|
539
577
|
}
|
|
540
578
|
function packageRootPath(plugin) {
|
|
@@ -718,6 +756,8 @@ function toRuntimeImportProvenance(resolution) {
|
|
|
718
756
|
name: resolution.name,
|
|
719
757
|
source: resolution.source,
|
|
720
758
|
sourceDigest: resolution.sourceDigest,
|
|
759
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
760
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
721
761
|
};
|
|
722
762
|
}
|
|
723
763
|
async function resolveOwnSkillRuntimeSource(plugin, source) {
|
|
@@ -823,6 +863,8 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
823
863
|
name: entry.source,
|
|
824
864
|
source: entry.source,
|
|
825
865
|
sourceDigest,
|
|
866
|
+
requiredCapabilities: [],
|
|
867
|
+
capabilitySetDigest: computeAwCapabilitySetDigest([]),
|
|
826
868
|
};
|
|
827
869
|
}
|
|
828
870
|
else {
|
|
@@ -842,31 +884,37 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
842
884
|
runtimeProvenance = toRuntimeImportProvenance(resolution);
|
|
843
885
|
}
|
|
844
886
|
const targetPath = path.join(options.outputRoot, platform ?? distribution, 'skills', entry.skill, ...entry.target.split('/'));
|
|
845
|
-
if (await fs.pathExists(targetPath)) {
|
|
846
|
-
throw new Error(`Invalid buildConfig.skillRuntimeFiles: bundle target already exists at "${claim}".`);
|
|
847
|
-
}
|
|
848
|
-
await fs.ensureDir(path.dirname(targetPath));
|
|
849
|
-
await fs.copyFile(sourcePath, targetPath);
|
|
850
|
-
const targetDigest = await calculateFileDigest(targetPath);
|
|
851
|
-
if (sourceDigest !== targetDigest) {
|
|
852
|
-
throw new Error(`Invalid buildConfig.skillRuntimeFiles: digest mismatch at "${claim}".`);
|
|
853
|
-
}
|
|
854
887
|
projections.push({
|
|
855
888
|
bindingKey,
|
|
856
889
|
canonicalSource,
|
|
890
|
+
sourcePath,
|
|
891
|
+
targetPath,
|
|
857
892
|
provenance: {
|
|
858
893
|
...runtimeProvenance,
|
|
859
894
|
platform,
|
|
860
895
|
distribution,
|
|
861
896
|
skill: entry.skill,
|
|
862
897
|
target: entry.target,
|
|
863
|
-
targetDigest,
|
|
898
|
+
targetDigest: sourceDigest,
|
|
864
899
|
},
|
|
865
900
|
});
|
|
866
901
|
}
|
|
867
902
|
}
|
|
868
903
|
return projections;
|
|
869
904
|
}
|
|
905
|
+
async function materializeSkillRuntimeFiles(projections) {
|
|
906
|
+
for (const projection of projections) {
|
|
907
|
+
if (await fs.pathExists(projection.targetPath)) {
|
|
908
|
+
const surface = projection.provenance.platform ?? projection.provenance.distribution;
|
|
909
|
+
throw new Error(`Invalid buildConfig.skillRuntimeFiles: bundle target already exists at "${surface}:${projection.provenance.skill}/${projection.provenance.target}".`);
|
|
910
|
+
}
|
|
911
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
912
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
913
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.provenance.sourceDigest) {
|
|
914
|
+
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
}
|
|
870
918
|
function hasSameCanonicalSource(left, right) {
|
|
871
919
|
return left.rootPath === right.rootPath
|
|
872
920
|
&& left.rootRealPath === right.rootRealPath
|
|
@@ -883,6 +931,9 @@ async function validateSkillRuntimeProjectionSources(projections) {
|
|
|
883
931
|
|| existing.provenance.name !== projection.provenance.name
|
|
884
932
|
|| existing.provenance.source !== projection.provenance.source
|
|
885
933
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
934
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
935
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
936
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
886
937
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
887
938
|
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
888
939
|
}
|
|
@@ -912,6 +963,9 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
912
963
|
|| existing.provenance.name !== projection.provenance.name
|
|
913
964
|
|| existing.provenance.source !== projection.provenance.source
|
|
914
965
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
966
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
967
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
968
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
915
969
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
916
970
|
throw new Error(`Catalog runtime import "${projection.provenance.provider}/${projection.provenance.name}" changed during build import projection.`);
|
|
917
971
|
}
|
|
@@ -930,7 +984,7 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
930
984
|
}
|
|
931
985
|
}
|
|
932
986
|
}
|
|
933
|
-
async function createStagedPlugin(plugin, runner, resolver) {
|
|
987
|
+
async function createStagedPlugin(plugin, runner, resolver, commandEnv = process.env) {
|
|
934
988
|
const stagingRoot = await fs.mkdtemp(assertLocalPluginStagingPathForTests(path.join(os.tmpdir(), 'aw-plugin-staging-'), 'local plugin bundle staging root'));
|
|
935
989
|
const stagingPluginRoot = assertLocalPluginStagingPathForTests(path.join(stagingRoot, 'plugin'), 'local plugin staged plugin root');
|
|
936
990
|
try {
|
|
@@ -945,14 +999,14 @@ async function createStagedPlugin(plugin, runner, resolver) {
|
|
|
945
999
|
if (declaredBuildImports.length > 0 && !sourceBuild) {
|
|
946
1000
|
throw new Error(`Invalid plugin "${plugin.manifest.name}": buildConfig.buildImports requires scripts.node.build.`);
|
|
947
1001
|
}
|
|
948
|
-
const buildEnv = { ...
|
|
1002
|
+
const buildEnv = { ...commandEnv };
|
|
949
1003
|
const buildImportProvenance = [];
|
|
950
1004
|
const buildImportProjections = [];
|
|
951
1005
|
for (const buildImport of declaredBuildImports) {
|
|
952
1006
|
if (!resolver) {
|
|
953
1007
|
throw new Error(`Cannot resolve buildConfig.buildImports for plugin "${plugin.manifest.name}": catalog runtime import resolver is required.`);
|
|
954
1008
|
}
|
|
955
|
-
if (Object.hasOwn(
|
|
1009
|
+
if (Object.hasOwn(commandEnv, buildImport.env)) {
|
|
956
1010
|
throw new Error(`Invalid buildConfig.buildImports env "${buildImport.env}": refusing to overwrite an existing environment variable.`);
|
|
957
1011
|
}
|
|
958
1012
|
const resolution = await resolver.resolve({
|
|
@@ -1044,34 +1098,119 @@ async function resolveBuildPlugin(plugin, options) {
|
|
|
1044
1098
|
cleanup: async () => { },
|
|
1045
1099
|
};
|
|
1046
1100
|
}
|
|
1047
|
-
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver);
|
|
1101
|
+
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver, options.commandEnv);
|
|
1048
1102
|
}
|
|
1049
1103
|
export async function prepareLocalPluginBundleSource(plugin, options = {}) {
|
|
1050
1104
|
await assertPluginInputTree(plugin.rootDir);
|
|
1051
1105
|
const buildOptions = {
|
|
1052
1106
|
buildMode: options.buildMode ?? 'staging',
|
|
1053
|
-
stagingRunner: options.stagingRunner
|
|
1107
|
+
stagingRunner: options.stagingRunner
|
|
1108
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1109
|
+
commandEnv: options.commandEnv,
|
|
1054
1110
|
runtimeResolver: options.runtimeResolver,
|
|
1055
1111
|
preparedRuntimeContext: undefined,
|
|
1056
1112
|
};
|
|
1057
1113
|
return resolveBuildPlugin(plugin, buildOptions);
|
|
1058
1114
|
}
|
|
1115
|
+
function assertPluginRequirementsSupported(pluginName, requirements, strictRequirements = false) {
|
|
1116
|
+
if (requirements.unsupportedByCurrentAw.length > 0) {
|
|
1117
|
+
throw new AwCapabilityUnsupportedError(pluginName, requirements.unsupportedByCurrentAw);
|
|
1118
|
+
}
|
|
1119
|
+
if (!strictRequirements)
|
|
1120
|
+
return;
|
|
1121
|
+
const satisfied = new Set([...requirements.declared, ...requirements.derived]);
|
|
1122
|
+
const strictObservations = requirements.observations.filter((observation) => (observation.code !== 'aw-command-detected'
|
|
1123
|
+
|| observation.capability === undefined
|
|
1124
|
+
|| !satisfied.has(observation.capability)));
|
|
1125
|
+
if (strictObservations.length > 0) {
|
|
1126
|
+
const error = new Error(`Official strict requirements failed: ${strictObservations.map((observation) => (`plugin=${JSON.stringify(pluginName)} path=${JSON.stringify(observation.path)} `
|
|
1127
|
+
+ `command=${JSON.stringify(observation.command ?? '<dynamic>')} `
|
|
1128
|
+
+ `capability=${JSON.stringify(observation.capability ?? (observation.code === 'aw-command-dynamic' ? '<dynamic>' : '<unmapped>'))}`)).join('; ')}`);
|
|
1129
|
+
error.code = 'awCapabilityStrictRequirements';
|
|
1130
|
+
error.observations = strictObservations;
|
|
1131
|
+
throw error;
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
function assertRequiredCapabilitiesSupported(pluginName, requiredCapabilities) {
|
|
1135
|
+
const support = checkAwCapabilitySupport(requiredCapabilities, IMPLEMENTED_AW_CAPABILITIES);
|
|
1136
|
+
if (!support.supported) {
|
|
1137
|
+
throw new AwCapabilityUnsupportedError(pluginName, support.missing);
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1059
1140
|
export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
1141
|
+
const historicalComparison = options.runtimeSkillClosureValidation === 'historical';
|
|
1060
1142
|
const buildOptions = {
|
|
1061
1143
|
buildMode: options.buildMode ?? 'build-free',
|
|
1062
|
-
stagingRunner: options.stagingRunner
|
|
1144
|
+
stagingRunner: options.stagingRunner
|
|
1145
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1146
|
+
commandEnv: options.commandEnv,
|
|
1063
1147
|
runtimeResolver: options.runtimeResolver,
|
|
1064
1148
|
preparedRuntimeContext: options.preparedRuntimeContext,
|
|
1065
1149
|
};
|
|
1066
1150
|
await assertPluginInputTree(plugin.rootDir);
|
|
1151
|
+
const sourceRequirements = await resolvePluginRequirements({
|
|
1152
|
+
pluginRoot: plugin.rootDir,
|
|
1153
|
+
manifest: plugin.manifest,
|
|
1154
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1155
|
+
});
|
|
1156
|
+
if (!historicalComparison) {
|
|
1157
|
+
assertPluginRequirementsSupported(plugin.manifest.name, sourceRequirements, options.strictRequirements ?? false);
|
|
1158
|
+
}
|
|
1067
1159
|
await fs.remove(outputRoot);
|
|
1068
1160
|
const buildPlugin = await resolveBuildPlugin(plugin, buildOptions);
|
|
1069
1161
|
try {
|
|
1070
1162
|
plugin = buildPlugin.plugin;
|
|
1163
|
+
const requirements = await resolvePluginRequirements({
|
|
1164
|
+
pluginRoot: plugin.rootDir,
|
|
1165
|
+
manifest: plugin.manifest,
|
|
1166
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1167
|
+
});
|
|
1168
|
+
if (!historicalComparison) {
|
|
1169
|
+
assertPluginRequirementsSupported(plugin.manifest.name, requirements, options.strictRequirements ?? false);
|
|
1170
|
+
}
|
|
1071
1171
|
assertManifestPlatformSupport(plugin.manifest.name, plugin.manifest);
|
|
1072
|
-
await fs.ensureDir(outputRoot);
|
|
1073
1172
|
const supportedPlatforms = resolveSupportedPlatforms(plugin.manifest);
|
|
1074
1173
|
await assertSkillRuntimeProjectionTargets(plugin);
|
|
1174
|
+
const skillRuntimeFileProjections = await projectSkillRuntimeFiles({
|
|
1175
|
+
plugin,
|
|
1176
|
+
outputRoot,
|
|
1177
|
+
supportedPlatforms,
|
|
1178
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1179
|
+
});
|
|
1180
|
+
const skillRuntimeFiles = skillRuntimeFileProjections.map(({ provenance }) => provenance);
|
|
1181
|
+
const portableRuntimeFiles = skillRuntimeFiles
|
|
1182
|
+
.filter((entry) => entry.distribution === 'agent-skills')
|
|
1183
|
+
.map((entry) => ({
|
|
1184
|
+
skill: entry.skill,
|
|
1185
|
+
target: entry.target,
|
|
1186
|
+
path: `./agent-skills/skills/${entry.skill}/${entry.target}`,
|
|
1187
|
+
digest: entry.targetDigest,
|
|
1188
|
+
provider: entry.provider,
|
|
1189
|
+
providerVersion: entry.providerVersion,
|
|
1190
|
+
exportName: entry.name,
|
|
1191
|
+
source: entry.source,
|
|
1192
|
+
sourceDigest: entry.sourceDigest,
|
|
1193
|
+
requiredCapabilities: entry.requiredCapabilities,
|
|
1194
|
+
capabilitySetDigest: entry.capabilitySetDigest,
|
|
1195
|
+
}));
|
|
1196
|
+
const artifactRuntimeProjection = await resolveArtifactRuntimeImports({
|
|
1197
|
+
plugin,
|
|
1198
|
+
outputRoot,
|
|
1199
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1200
|
+
});
|
|
1201
|
+
const finalEffective = normalizeAwCapabilities([
|
|
1202
|
+
...requirements.effective,
|
|
1203
|
+
...skillRuntimeFiles.flatMap((entry) => entry.requiredCapabilities),
|
|
1204
|
+
...artifactRuntimeProjection.requiredCapabilities,
|
|
1205
|
+
]);
|
|
1206
|
+
if (!historicalComparison) {
|
|
1207
|
+
assertRequiredCapabilitiesSupported(plugin.manifest.name, finalEffective);
|
|
1208
|
+
}
|
|
1209
|
+
artifactRuntimeProjection.manifest.requires = {
|
|
1210
|
+
aw: { capabilities: finalEffective },
|
|
1211
|
+
};
|
|
1212
|
+
const bundleManifest = artifactRuntimeProjection.manifest;
|
|
1213
|
+
await fs.ensureDir(outputRoot);
|
|
1075
1214
|
const platformFiles = {};
|
|
1076
1215
|
const platformManifests = {};
|
|
1077
1216
|
const buildConfig = plugin.manifest.buildConfig;
|
|
@@ -1186,26 +1325,7 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1186
1325
|
}
|
|
1187
1326
|
}
|
|
1188
1327
|
}
|
|
1189
|
-
|
|
1190
|
-
plugin,
|
|
1191
|
-
outputRoot,
|
|
1192
|
-
supportedPlatforms,
|
|
1193
|
-
resolver: buildPlugin.runtimeContext.resolver,
|
|
1194
|
-
});
|
|
1195
|
-
const skillRuntimeFiles = skillRuntimeFileProjections.map(({ provenance }) => provenance);
|
|
1196
|
-
const portableRuntimeFiles = skillRuntimeFiles
|
|
1197
|
-
.filter((entry) => entry.distribution === 'agent-skills')
|
|
1198
|
-
.map((entry) => ({
|
|
1199
|
-
skill: entry.skill,
|
|
1200
|
-
target: entry.target,
|
|
1201
|
-
path: `./agent-skills/skills/${entry.skill}/${entry.target}`,
|
|
1202
|
-
digest: entry.targetDigest,
|
|
1203
|
-
provider: entry.provider,
|
|
1204
|
-
providerVersion: entry.providerVersion,
|
|
1205
|
-
exportName: entry.name,
|
|
1206
|
-
source: entry.source,
|
|
1207
|
-
sourceDigest: entry.sourceDigest,
|
|
1208
|
-
}));
|
|
1328
|
+
await materializeSkillRuntimeFiles(skillRuntimeFileProjections);
|
|
1209
1329
|
await copyPortableStaticSkills(plugin, outputRoot);
|
|
1210
1330
|
if (await fs.pathExists(path.join(plugin.rootDir, 'README.md'))) {
|
|
1211
1331
|
await copyBundleRootFile(plugin.rootDir, outputRoot, 'README.md');
|
|
@@ -1215,11 +1335,7 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1215
1335
|
}
|
|
1216
1336
|
await copyArtifactSourceDirectories(plugin, outputRoot);
|
|
1217
1337
|
await copyProductionPackageRoot(plugin, outputRoot);
|
|
1218
|
-
|
|
1219
|
-
plugin,
|
|
1220
|
-
outputRoot,
|
|
1221
|
-
resolver: buildPlugin.runtimeContext.resolver,
|
|
1222
|
-
});
|
|
1338
|
+
await materializeArtifactRuntimeImports(artifactRuntimeProjection.projections);
|
|
1223
1339
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'plugin.json'), bundleManifest);
|
|
1224
1340
|
if (portableRuntimeFiles.length > 0) {
|
|
1225
1341
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'portable-runtime-files.json'), portableRuntimeFiles);
|
|
@@ -1231,6 +1347,11 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1231
1347
|
}
|
|
1232
1348
|
await writeJsonFile(path.join(outputRoot, PLATFORM_MANIFEST_DIRS[platform], 'plugin.json'), manifest);
|
|
1233
1349
|
}
|
|
1350
|
+
await injectRequirementsReceipts({
|
|
1351
|
+
outputRoot,
|
|
1352
|
+
plugin,
|
|
1353
|
+
requiredCapabilities: finalEffective,
|
|
1354
|
+
});
|
|
1234
1355
|
await validateSkillRuntimeProjectionSources(skillRuntimeFileProjections);
|
|
1235
1356
|
await validateSkillRuntimeProjectionFreshness(outputRoot, skillRuntimeFiles.filter((entry) => entry.platform !== undefined));
|
|
1236
1357
|
await validateGeneratedSkillRuntimeFiles(plugin, outputRoot, supportedPlatforms);
|