@lesliechan721/aw 0.1.0-beta.5 → 0.1.0-beta.50
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/assets/aw-runtime-config.d.mts +13 -0
- package/dist/authoring/assets/aw-runtime-config.mjs +199 -0
- package/dist/authoring/assets/aw-runtime-config.mjs.map +1 -0
- 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-root.mjs +4 -4
- package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -1
- package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
- package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
- 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 +3 -2
- package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
- package/dist/authoring/scripts/validate-plugin.mjs +346 -1131
- 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 -0
- package/dist/scripts/bundle-plugins.js +20 -5
- package/dist/scripts/bundle-plugins.js.map +1 -1
- package/dist/scripts/plugin-staging.d.ts +7 -9
- package/dist/scripts/plugin-staging.js +18 -29
- 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 +47 -76
- package/dist/scripts/test-plugin-scripts.js.map +1 -1
- package/dist/scripts/test-workers.d.mts +24 -0
- package/dist/scripts/test-workers.mjs +59 -0
- package/dist/scripts/test-workers.mjs.map +1 -0
- 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 +17 -1
- package/dist/src/authoring/workspace-commands.js +21 -4
- 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 +264 -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 +71 -30
- package/dist/src/commands/catalog-publication-inspection.js +475 -63
- package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
- 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 +73 -15
- package/dist/src/commands/catalog-publish.js +701 -212
- 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 +18 -22
- package/dist/src/commands/catalog-status.js +81 -115
- package/dist/src/commands/catalog-status.js.map +1 -1
- 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 +146 -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.js +23 -3
- package/dist/src/commands/plugin-capabilities.js.map +1 -1
- package/dist/src/commands/rebuild-command.d.ts +77 -31
- package/dist/src/commands/rebuild-command.js +4862 -729
- package/dist/src/commands/rebuild-command.js.map +1 -1
- package/dist/src/commands/rebuild-integration.d.ts +131 -21
- package/dist/src/commands/rebuild-integration.js +2866 -1339
- 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 +260 -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 +39 -0
- package/dist/src/commands/skill-eval.js +400 -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 +2787 -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 +8 -5
- package/dist/src/commands/wizard.js +6 -4
- 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 +127 -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 +236 -109
- package/dist/src/generators/local-plugin.js.map +1 -1
- package/dist/src/index.d.ts +10 -4
- package/dist/src/index.js +1793 -486
- 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 +179 -41
- 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 +74 -20
- 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 +234 -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 +183 -0
- package/dist/src/review/source-binding.js +708 -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 +32 -0
- package/dist/src/tui/catalog-sources/session.js +300 -0
- package/dist/src/tui/catalog-sources/session.js.map +1 -0
- package/dist/src/tui/catalog-sources/types.d.ts +54 -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/clipboard.d.ts +13 -0
- package/dist/src/tui/clipboard.js +95 -0
- package/dist/src/tui/clipboard.js.map +1 -0
- package/dist/src/tui/components.d.ts +110 -3
- package/dist/src/tui/components.js +183 -36
- package/dist/src/tui/components.js.map +1 -1
- package/dist/src/tui/config-array-draft.d.ts +29 -0
- package/dist/src/tui/config-array-draft.js +48 -0
- package/dist/src/tui/config-array-draft.js.map +1 -0
- package/dist/src/tui/config-leaf-editor.d.ts +16 -0
- package/dist/src/tui/config-leaf-editor.js +206 -0
- package/dist/src/tui/config-leaf-editor.js.map +1 -0
- package/dist/src/tui/config-value-presentation.d.ts +20 -0
- package/dist/src/tui/config-value-presentation.js +104 -0
- package/dist/src/tui/config-value-presentation.js.map +1 -0
- package/dist/src/tui/console-app-v4.d.ts +14 -4
- package/dist/src/tui/console-app-v4.js +8941 -1872
- package/dist/src/tui/console-app-v4.js.map +1 -1
- package/dist/src/tui/content-item-card.d.ts +13 -0
- package/dist/src/tui/content-item-card.js +51 -0
- package/dist/src/tui/content-item-card.js.map +1 -0
- package/dist/src/tui/controller-runtime.d.ts +10 -2
- package/dist/src/tui/controller-runtime.js +3211 -388
- package/dist/src/tui/controller-runtime.js.map +1 -1
- package/dist/src/tui/controller.d.ts +615 -45
- package/dist/src/tui/controller.js +3558 -768
- package/dist/src/tui/controller.js.map +1 -1
- package/dist/src/tui/dependency-graph-view.d.ts +39 -0
- package/dist/src/tui/dependency-graph-view.js +121 -0
- package/dist/src/tui/dependency-graph-view.js.map +1 -0
- package/dist/src/tui/dependency-graph.d.ts +81 -0
- package/dist/src/tui/dependency-graph.js +452 -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 +3 -3
- package/dist/src/tui/diagnostics.js +14 -2
- package/dist/src/tui/diagnostics.js.map +1 -1
- package/dist/src/tui/entity-cards.d.ts +55 -0
- package/dist/src/tui/entity-cards.js +220 -0
- package/dist/src/tui/entity-cards.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 +6 -1
- package/dist/src/tui/index.js +5 -1
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/input-display.d.ts +9 -0
- package/dist/src/tui/input-display.js +58 -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 +223 -31
- package/dist/src/tui/model.js +1510 -397
- package/dist/src/tui/model.js.map +1 -1
- package/dist/src/tui/operation-diagnostic-screens.d.ts +8 -0
- package/dist/src/tui/operation-diagnostic-screens.js +71 -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 +136 -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 +1295 -0
- package/dist/src/tui/operation-review-planner.js.map +1 -0
- package/dist/src/tui/plugin-content.d.ts +31 -0
- package/dist/src/tui/plugin-content.js +680 -0
- package/dist/src/tui/plugin-content.js.map +1 -0
- package/dist/src/tui/plugin-detail.d.ts +52 -0
- package/dist/src/tui/plugin-detail.js +165 -0
- package/dist/src/tui/plugin-detail.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/project-inventory.d.ts +68 -0
- package/dist/src/tui/project-inventory.js +203 -0
- package/dist/src/tui/project-inventory.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/query-header.d.ts +30 -0
- package/dist/src/tui/query-header.js +40 -0
- package/dist/src/tui/query-header.js.map +1 -0
- package/dist/src/tui/reader.d.ts +37 -0
- package/dist/src/tui/reader.js +47 -0
- package/dist/src/tui/reader.js.map +1 -0
- package/dist/src/tui/router.d.ts +197 -10
- package/dist/src/tui/router.js +338 -50
- package/dist/src/tui/router.js.map +1 -1
- package/dist/src/tui/screen-registry.d.ts +701 -0
- package/dist/src/tui/screen-registry.js +230 -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-detail-card.d.ts +29 -0
- package/dist/src/tui/source-detail-card.js +45 -0
- package/dist/src/tui/source-detail-card.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 +12 -0
- package/dist/src/tui/theme.js +12 -0
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/viewport.d.ts +1 -0
- package/dist/src/tui/viewport.js +23 -0
- package/dist/src/tui/viewport.js.map +1 -1
- package/dist/src/tui/views.js +31 -3
- package/dist/src/tui/views.js.map +1 -1
- package/dist/src/tui/wizard.js +37 -13
- package/dist/src/tui/wizard.js.map +1 -1
- package/dist/src/types.d.ts +244 -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 +17 -7
- package/dist/src/utils/artifact-renderer.js +214 -216
- 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 +78 -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 +22 -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 +57 -20
- 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 +3 -0
- package/dist/src/utils/catalog-runtime-projection.js +5 -40
- 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 +747 -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 +35 -5
- package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
- package/dist/src/utils/git-catalog-provider.d.ts +16 -0
- package/dist/src/utils/git-catalog-provider.js +177 -145
- package/dist/src/utils/git-catalog-provider.js.map +1 -1
- package/dist/src/utils/local-marketplace.d.ts +18 -1
- package/dist/src/utils/local-marketplace.js +354 -84
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/manifest.d.ts +1 -3
- package/dist/src/utils/manifest.js +1 -3
- 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 +400 -58
- 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 +1000 -296
- package/dist/src/utils/plugin-config-write.js.map +1 -1
- package/dist/src/utils/plugin-config.d.ts +153 -93
- package/dist/src/utils/plugin-config.js +1116 -968
- 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 +65 -125
- package/dist/src/utils/plugin-scripts.js +484 -524
- 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/runtime-config.d.ts +20 -0
- package/dist/src/utils/runtime-config.js +75 -0
- package/dist/src/utils/runtime-config.js.map +1 -0
- 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/state-paths.js +7 -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 +7 -0
- package/dist/src/utils/windows-claude-shim.js +10 -0
- package/dist/src/utils/windows-claude-shim.js.map +1 -0
- package/dist/src/utils/windows-npm-shim.d.ts +14 -0
- package/dist/src/utils/windows-npm-shim.js +140 -0
- package/dist/src/utils/windows-npm-shim.js.map +1 -0
- package/dist/vitest.config.js +92 -10
- package/dist/vitest.config.js.map +1 -1
- package/package.json +27 -18
- package/dist/authoring/scripts/check-plugin-versions.d.mts +0 -2
- 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 -123
- package/dist/src/commands/status-v4.js +0 -905
- 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 -62
- package/dist/src/utils/catalog-source-cache.js +0 -296
- 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-release.d.ts +0 -2
- package/dist/src/utils/plugin-release.js +0 -2
- package/dist/src/utils/plugin-release.js.map +0 -1
|
@@ -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);
|
|
@@ -32,7 +33,7 @@ const PLATFORM_MANIFEST_DIRS = {
|
|
|
32
33
|
claude: '.claude-plugin',
|
|
33
34
|
codex: '.codex-plugin',
|
|
34
35
|
};
|
|
35
|
-
const
|
|
36
|
+
const EXACT_PNPM_VERSION_PATTERN = /^\d+\.\d+\.\d+$/u;
|
|
36
37
|
function assertLocalPluginStagingPathForTests(targetPath, source) {
|
|
37
38
|
return assertTestWritablePath(targetPath, source, '用 createIsolatedTestEnv() 生成默认 TMPDIR,或通过 registerWritableStateRoot() 登记 local plugin staging 路径。');
|
|
38
39
|
}
|
|
@@ -42,11 +43,14 @@ export async function validateStagingPackageManager(packageRoot) {
|
|
|
42
43
|
readJsonObject(path.join(resolveCliPackageRoot(), 'package.json'), '@lesliechan721/aw package.json'),
|
|
43
44
|
readJsonObject(path.join(packageRoot, 'package.json'), 'scripts.node.packageRoot.package.json'),
|
|
44
45
|
]);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
// pnpm pack removes packageManager, but preserves runtime dependencies.
|
|
47
|
+
const dependencies = cliPackageJson.dependencies;
|
|
48
|
+
const supportedPnpmVersion = dependencies?.pnpm;
|
|
49
|
+
if (typeof supportedPnpmVersion !== 'string'
|
|
50
|
+
|| !EXACT_PNPM_VERSION_PATTERN.test(supportedPnpmVersion)) {
|
|
51
|
+
throw new Error('Invalid @lesliechan721/aw dependencies.pnpm: expected an exact "<major>.<minor>.<patch>" version.');
|
|
49
52
|
}
|
|
53
|
+
const supportedPackageManager = `pnpm@${supportedPnpmVersion}`;
|
|
50
54
|
if (packageJson.packageManager !== supportedPackageManager) {
|
|
51
55
|
throw new Error('Invalid scripts.node.packageRoot.package.json.packageManager: '
|
|
52
56
|
+ `expected "${supportedPackageManager}".`);
|
|
@@ -98,34 +102,36 @@ async function resolveRuntimePnpmEntry(supportedPackageManager) {
|
|
|
98
102
|
const stats = await fs.stat(entryPath).catch(() => undefined);
|
|
99
103
|
return stats?.isFile() ? entryPath : undefined;
|
|
100
104
|
}
|
|
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
|
-
}
|
|
105
|
+
function createDefaultStagingRunner(commandEnv) {
|
|
106
|
+
return {
|
|
107
|
+
async installPackageRoot(packageRoot) {
|
|
108
|
+
const supportedPackageManager = await validateStagingPackageManager(packageRoot);
|
|
109
|
+
const fixedPnpmEntry = await resolveFixedPnpmEntry(supportedPackageManager, commandEnv)
|
|
110
|
+
?? await resolveRuntimePnpmEntry(supportedPackageManager);
|
|
111
|
+
if (!fixedPnpmEntry) {
|
|
112
|
+
throw new Error(`Cannot stage scripts.node.packageRoot: missing bundled ${supportedPackageManager} runtime dependency.`);
|
|
113
|
+
}
|
|
114
|
+
const args = [
|
|
115
|
+
fixedPnpmEntry,
|
|
116
|
+
'install',
|
|
117
|
+
'--frozen-lockfile',
|
|
118
|
+
'--ignore-scripts',
|
|
119
|
+
];
|
|
120
|
+
await execFileAsync(process.execPath, args, {
|
|
121
|
+
cwd: packageRoot,
|
|
122
|
+
env: commandEnv,
|
|
123
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
async runNodeBuild({ pluginRoot, scriptPath, args, env }) {
|
|
127
|
+
await execFileAsync(process.execPath, [path.join(pluginRoot, stripDotSlash(scriptPath)), ...args], {
|
|
128
|
+
cwd: pluginRoot,
|
|
129
|
+
env,
|
|
130
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
131
|
+
});
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
129
135
|
function stripDotSlash(value) {
|
|
130
136
|
return value.startsWith('./') ? value.slice(2) : value;
|
|
131
137
|
}
|
|
@@ -239,6 +245,9 @@ async function assertArtifactSourceTreePortable(rootDir, fieldName, relativeRoot
|
|
|
239
245
|
continue;
|
|
240
246
|
if (isMacOsMetadataName(entry.name))
|
|
241
247
|
continue;
|
|
248
|
+
if (relativePath === AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH) {
|
|
249
|
+
throw new Error(`Invalid ${fieldName}: source root cannot declare reserved file ${AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH}.`);
|
|
250
|
+
}
|
|
242
251
|
const entryPath = path.join(rootDir, entry.name);
|
|
243
252
|
if (entry.isSymbolicLink()) {
|
|
244
253
|
throw new Error(`Invalid ${fieldName}: symbolic links are not supported (${entry.name}).`);
|
|
@@ -289,6 +298,8 @@ async function copyPortableStaticSkills(plugin, outputRoot) {
|
|
|
289
298
|
}
|
|
290
299
|
async function resolveArtifactRuntimeImports(options) {
|
|
291
300
|
const manifest = createBundleSourceManifest(options.plugin);
|
|
301
|
+
const requiredCapabilities = [];
|
|
302
|
+
const projections = [];
|
|
292
303
|
for (const [targetIndex, target] of (manifest.artifacts?.targets ?? []).entries()) {
|
|
293
304
|
for (const [importIndex, runtimeImport] of (target.runtimeImports ?? []).entries()) {
|
|
294
305
|
if (!options.resolver) {
|
|
@@ -299,27 +310,64 @@ async function resolveArtifactRuntimeImports(options) {
|
|
|
299
310
|
reference: runtimeImport,
|
|
300
311
|
purpose: 'artifact-runtime',
|
|
301
312
|
});
|
|
313
|
+
requiredCapabilities.push(...resolution.requiredCapabilities);
|
|
302
314
|
const relativePath = `./.agents-plugin/runtime-imports/${target.id}/${runtimeImport.name}`;
|
|
303
315
|
const targetPath = path.join(options.outputRoot, stripDotSlash(relativePath));
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
316
|
+
const digest = resolution.sourceDigest;
|
|
317
|
+
projections.push({
|
|
318
|
+
sourcePath: resolution.sourcePath,
|
|
319
|
+
targetPath,
|
|
320
|
+
sourceDigest: resolution.sourceDigest,
|
|
321
|
+
label: `${target.id}/${runtimeImport.name}`,
|
|
322
|
+
});
|
|
310
323
|
runtimeImport.resolved = {
|
|
311
324
|
path: relativePath,
|
|
312
325
|
digest,
|
|
313
326
|
providerPluginId: resolution.provider,
|
|
314
327
|
providerVersion: resolution.providerVersion,
|
|
315
328
|
source: resolution.source,
|
|
329
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
330
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
316
331
|
};
|
|
317
332
|
}
|
|
318
333
|
}
|
|
319
334
|
if (manifest.distributions?.agentSkills?.skills) {
|
|
320
335
|
manifest.distributions.agentSkills.skills = './agent-skills/skills';
|
|
321
336
|
}
|
|
322
|
-
return
|
|
337
|
+
return {
|
|
338
|
+
manifest,
|
|
339
|
+
requiredCapabilities: normalizeAwCapabilities(requiredCapabilities),
|
|
340
|
+
projections,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
async function materializeArtifactRuntimeImports(projections) {
|
|
344
|
+
for (const projection of projections) {
|
|
345
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
346
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
347
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.sourceDigest) {
|
|
348
|
+
throw new Error(`Artifact runtime import digest mismatch at "${projection.label}".`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
async function injectRequirementsReceipts(options) {
|
|
353
|
+
const receipt = createAwPluginRequirementsReceipt({ name: options.plugin.manifest.name, version: options.plugin.manifest.version }, options.requiredCapabilities);
|
|
354
|
+
for (const relativeRoot of ['claude/skills', 'codex/skills', 'agent-skills/skills']) {
|
|
355
|
+
const skillsRoot = path.join(options.outputRoot, relativeRoot);
|
|
356
|
+
if (!(await fs.pathExists(skillsRoot)))
|
|
357
|
+
continue;
|
|
358
|
+
for (const entry of await fs.readdir(skillsRoot, { withFileTypes: true })) {
|
|
359
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
360
|
+
continue;
|
|
361
|
+
const skillRoot = path.join(skillsRoot, entry.name);
|
|
362
|
+
if (!(await fs.pathExists(path.join(skillRoot, 'SKILL.md'))))
|
|
363
|
+
continue;
|
|
364
|
+
const receiptPath = path.join(skillRoot, 'aw-plugin-requirements.json');
|
|
365
|
+
if (await fs.pathExists(receiptPath)) {
|
|
366
|
+
throw new Error(`Reserved runtime requirements receipt conflicts with source content: ${receiptPath}`);
|
|
367
|
+
}
|
|
368
|
+
await writeJsonFile(receiptPath, receipt);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
323
371
|
}
|
|
324
372
|
async function copySlashCommandAsset(pluginRoot, outputRoot, skillName, sourceRelativePath, generatedRelativePath) {
|
|
325
373
|
const sourcePath = path.join(pluginRoot, sourceRelativePath);
|
|
@@ -433,30 +481,13 @@ async function addDeclaredLspServerFiles(plugin, value, targetFiles) {
|
|
|
433
481
|
}
|
|
434
482
|
return value;
|
|
435
483
|
}
|
|
436
|
-
function
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
function addLifecycleRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
441
|
-
const lifecycle = plugin.manifest.scripts?.lifecycle;
|
|
442
|
-
if (!lifecycle) {
|
|
484
|
+
function addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries) {
|
|
485
|
+
const entry = plugin.manifest.scripts?.preApply;
|
|
486
|
+
if (!entry)
|
|
443
487
|
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
|
-
}
|
|
488
|
+
const filePath = stripDotSlash(entry.path);
|
|
489
|
+
rootFiles.add(filePath);
|
|
490
|
+
nodeEntries.add(filePath);
|
|
460
491
|
}
|
|
461
492
|
function addHelperRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
462
493
|
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
@@ -520,6 +551,9 @@ async function collectRuntimeClosureFiles(plugin, entryFiles) {
|
|
|
520
551
|
entryFiles,
|
|
521
552
|
dependencies,
|
|
522
553
|
devDependencies,
|
|
554
|
+
runtimeConfigSkillRoots: (plugin.manifest.artifacts?.targets ?? [])
|
|
555
|
+
.filter((target) => target.runtimeConfig !== undefined)
|
|
556
|
+
.flatMap((target) => target.sourceDirs ?? []),
|
|
523
557
|
});
|
|
524
558
|
if (scan.errors.length > 0) {
|
|
525
559
|
throw new Error(`Invalid scripts.node runtime imports:\n${scan.errors.join('\n')}`);
|
|
@@ -529,12 +563,22 @@ async function collectRuntimeClosureFiles(plugin, entryFiles) {
|
|
|
529
563
|
async function collectAwRuntimeFiles(plugin) {
|
|
530
564
|
const rootFiles = new Set();
|
|
531
565
|
const nodeEntries = new Set();
|
|
532
|
-
|
|
566
|
+
addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
533
567
|
addHelperRuntimeEntries(plugin, rootFiles, nodeEntries);
|
|
534
568
|
addArtifactRendererRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
535
|
-
|
|
569
|
+
const closureFiles = await collectRuntimeClosureFiles(plugin, [...nodeEntries]);
|
|
570
|
+
for (const filePath of closureFiles) {
|
|
536
571
|
rootFiles.add(filePath);
|
|
537
572
|
}
|
|
573
|
+
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
574
|
+
if (configHelper) {
|
|
575
|
+
const helperDir = path.posix.dirname(stripDotSlash(configHelper));
|
|
576
|
+
const re2RuntimeRoot = path.posix.join(helperDir, 're2-wasm');
|
|
577
|
+
if (closureFiles.includes(path.posix.join(re2RuntimeRoot, 'build/src/re2.js'))) {
|
|
578
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'build/wasm/re2.wasm'));
|
|
579
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'LICENSE'));
|
|
580
|
+
}
|
|
581
|
+
}
|
|
538
582
|
return [...rootFiles].sort();
|
|
539
583
|
}
|
|
540
584
|
function packageRootPath(plugin) {
|
|
@@ -718,6 +762,8 @@ function toRuntimeImportProvenance(resolution) {
|
|
|
718
762
|
name: resolution.name,
|
|
719
763
|
source: resolution.source,
|
|
720
764
|
sourceDigest: resolution.sourceDigest,
|
|
765
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
766
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
721
767
|
};
|
|
722
768
|
}
|
|
723
769
|
async function resolveOwnSkillRuntimeSource(plugin, source) {
|
|
@@ -823,6 +869,8 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
823
869
|
name: entry.source,
|
|
824
870
|
source: entry.source,
|
|
825
871
|
sourceDigest,
|
|
872
|
+
requiredCapabilities: [],
|
|
873
|
+
capabilitySetDigest: computeAwCapabilitySetDigest([]),
|
|
826
874
|
};
|
|
827
875
|
}
|
|
828
876
|
else {
|
|
@@ -842,31 +890,37 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
842
890
|
runtimeProvenance = toRuntimeImportProvenance(resolution);
|
|
843
891
|
}
|
|
844
892
|
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
893
|
projections.push({
|
|
855
894
|
bindingKey,
|
|
856
895
|
canonicalSource,
|
|
896
|
+
sourcePath,
|
|
897
|
+
targetPath,
|
|
857
898
|
provenance: {
|
|
858
899
|
...runtimeProvenance,
|
|
859
900
|
platform,
|
|
860
901
|
distribution,
|
|
861
902
|
skill: entry.skill,
|
|
862
903
|
target: entry.target,
|
|
863
|
-
targetDigest,
|
|
904
|
+
targetDigest: sourceDigest,
|
|
864
905
|
},
|
|
865
906
|
});
|
|
866
907
|
}
|
|
867
908
|
}
|
|
868
909
|
return projections;
|
|
869
910
|
}
|
|
911
|
+
async function materializeSkillRuntimeFiles(projections) {
|
|
912
|
+
for (const projection of projections) {
|
|
913
|
+
if (await fs.pathExists(projection.targetPath)) {
|
|
914
|
+
const surface = projection.provenance.platform ?? projection.provenance.distribution;
|
|
915
|
+
throw new Error(`Invalid buildConfig.skillRuntimeFiles: bundle target already exists at "${surface}:${projection.provenance.skill}/${projection.provenance.target}".`);
|
|
916
|
+
}
|
|
917
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
918
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
919
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.provenance.sourceDigest) {
|
|
920
|
+
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
870
924
|
function hasSameCanonicalSource(left, right) {
|
|
871
925
|
return left.rootPath === right.rootPath
|
|
872
926
|
&& left.rootRealPath === right.rootRealPath
|
|
@@ -883,6 +937,9 @@ async function validateSkillRuntimeProjectionSources(projections) {
|
|
|
883
937
|
|| existing.provenance.name !== projection.provenance.name
|
|
884
938
|
|| existing.provenance.source !== projection.provenance.source
|
|
885
939
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
940
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
941
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
942
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
886
943
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
887
944
|
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
888
945
|
}
|
|
@@ -912,6 +969,9 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
912
969
|
|| existing.provenance.name !== projection.provenance.name
|
|
913
970
|
|| existing.provenance.source !== projection.provenance.source
|
|
914
971
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
972
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
973
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
974
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
915
975
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
916
976
|
throw new Error(`Catalog runtime import "${projection.provenance.provider}/${projection.provenance.name}" changed during build import projection.`);
|
|
917
977
|
}
|
|
@@ -930,7 +990,7 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
930
990
|
}
|
|
931
991
|
}
|
|
932
992
|
}
|
|
933
|
-
async function createStagedPlugin(plugin, runner, resolver) {
|
|
993
|
+
async function createStagedPlugin(plugin, runner, resolver, commandEnv = process.env) {
|
|
934
994
|
const stagingRoot = await fs.mkdtemp(assertLocalPluginStagingPathForTests(path.join(os.tmpdir(), 'aw-plugin-staging-'), 'local plugin bundle staging root'));
|
|
935
995
|
const stagingPluginRoot = assertLocalPluginStagingPathForTests(path.join(stagingRoot, 'plugin'), 'local plugin staged plugin root');
|
|
936
996
|
try {
|
|
@@ -945,14 +1005,14 @@ async function createStagedPlugin(plugin, runner, resolver) {
|
|
|
945
1005
|
if (declaredBuildImports.length > 0 && !sourceBuild) {
|
|
946
1006
|
throw new Error(`Invalid plugin "${plugin.manifest.name}": buildConfig.buildImports requires scripts.node.build.`);
|
|
947
1007
|
}
|
|
948
|
-
const buildEnv = { ...
|
|
1008
|
+
const buildEnv = { ...commandEnv };
|
|
949
1009
|
const buildImportProvenance = [];
|
|
950
1010
|
const buildImportProjections = [];
|
|
951
1011
|
for (const buildImport of declaredBuildImports) {
|
|
952
1012
|
if (!resolver) {
|
|
953
1013
|
throw new Error(`Cannot resolve buildConfig.buildImports for plugin "${plugin.manifest.name}": catalog runtime import resolver is required.`);
|
|
954
1014
|
}
|
|
955
|
-
if (Object.hasOwn(
|
|
1015
|
+
if (Object.hasOwn(commandEnv, buildImport.env)) {
|
|
956
1016
|
throw new Error(`Invalid buildConfig.buildImports env "${buildImport.env}": refusing to overwrite an existing environment variable.`);
|
|
957
1017
|
}
|
|
958
1018
|
const resolution = await resolver.resolve({
|
|
@@ -1044,34 +1104,119 @@ async function resolveBuildPlugin(plugin, options) {
|
|
|
1044
1104
|
cleanup: async () => { },
|
|
1045
1105
|
};
|
|
1046
1106
|
}
|
|
1047
|
-
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver);
|
|
1107
|
+
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver, options.commandEnv);
|
|
1048
1108
|
}
|
|
1049
1109
|
export async function prepareLocalPluginBundleSource(plugin, options = {}) {
|
|
1050
1110
|
await assertPluginInputTree(plugin.rootDir);
|
|
1051
1111
|
const buildOptions = {
|
|
1052
1112
|
buildMode: options.buildMode ?? 'staging',
|
|
1053
|
-
stagingRunner: options.stagingRunner
|
|
1113
|
+
stagingRunner: options.stagingRunner
|
|
1114
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1115
|
+
commandEnv: options.commandEnv,
|
|
1054
1116
|
runtimeResolver: options.runtimeResolver,
|
|
1055
1117
|
preparedRuntimeContext: undefined,
|
|
1056
1118
|
};
|
|
1057
1119
|
return resolveBuildPlugin(plugin, buildOptions);
|
|
1058
1120
|
}
|
|
1121
|
+
function assertPluginRequirementsSupported(pluginName, requirements, strictRequirements = false) {
|
|
1122
|
+
if (requirements.unsupportedByCurrentAw.length > 0) {
|
|
1123
|
+
throw new AwCapabilityUnsupportedError(pluginName, requirements.unsupportedByCurrentAw);
|
|
1124
|
+
}
|
|
1125
|
+
if (!strictRequirements)
|
|
1126
|
+
return;
|
|
1127
|
+
const satisfied = new Set([...requirements.declared, ...requirements.derived]);
|
|
1128
|
+
const strictObservations = requirements.observations.filter((observation) => (observation.code !== 'aw-command-detected'
|
|
1129
|
+
|| observation.capability === undefined
|
|
1130
|
+
|| !satisfied.has(observation.capability)));
|
|
1131
|
+
if (strictObservations.length > 0) {
|
|
1132
|
+
const error = new Error(`Official strict requirements failed: ${strictObservations.map((observation) => (`plugin=${JSON.stringify(pluginName)} path=${JSON.stringify(observation.path)} `
|
|
1133
|
+
+ `command=${JSON.stringify(observation.command ?? '<dynamic>')} `
|
|
1134
|
+
+ `capability=${JSON.stringify(observation.capability ?? (observation.code === 'aw-command-dynamic' ? '<dynamic>' : '<unmapped>'))}`)).join('; ')}`);
|
|
1135
|
+
error.code = 'awCapabilityStrictRequirements';
|
|
1136
|
+
error.observations = strictObservations;
|
|
1137
|
+
throw error;
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
function assertRequiredCapabilitiesSupported(pluginName, requiredCapabilities) {
|
|
1141
|
+
const support = checkAwCapabilitySupport(requiredCapabilities, IMPLEMENTED_AW_CAPABILITIES);
|
|
1142
|
+
if (!support.supported) {
|
|
1143
|
+
throw new AwCapabilityUnsupportedError(pluginName, support.missing);
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1059
1146
|
export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
1147
|
+
const historicalComparison = options.runtimeSkillClosureValidation === 'historical';
|
|
1060
1148
|
const buildOptions = {
|
|
1061
1149
|
buildMode: options.buildMode ?? 'build-free',
|
|
1062
|
-
stagingRunner: options.stagingRunner
|
|
1150
|
+
stagingRunner: options.stagingRunner
|
|
1151
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1152
|
+
commandEnv: options.commandEnv,
|
|
1063
1153
|
runtimeResolver: options.runtimeResolver,
|
|
1064
1154
|
preparedRuntimeContext: options.preparedRuntimeContext,
|
|
1065
1155
|
};
|
|
1066
1156
|
await assertPluginInputTree(plugin.rootDir);
|
|
1157
|
+
const sourceRequirements = await resolvePluginRequirements({
|
|
1158
|
+
pluginRoot: plugin.rootDir,
|
|
1159
|
+
manifest: plugin.manifest,
|
|
1160
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1161
|
+
});
|
|
1162
|
+
if (!historicalComparison) {
|
|
1163
|
+
assertPluginRequirementsSupported(plugin.manifest.name, sourceRequirements, options.strictRequirements ?? false);
|
|
1164
|
+
}
|
|
1067
1165
|
await fs.remove(outputRoot);
|
|
1068
1166
|
const buildPlugin = await resolveBuildPlugin(plugin, buildOptions);
|
|
1069
1167
|
try {
|
|
1070
1168
|
plugin = buildPlugin.plugin;
|
|
1169
|
+
const requirements = await resolvePluginRequirements({
|
|
1170
|
+
pluginRoot: plugin.rootDir,
|
|
1171
|
+
manifest: plugin.manifest,
|
|
1172
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1173
|
+
});
|
|
1174
|
+
if (!historicalComparison) {
|
|
1175
|
+
assertPluginRequirementsSupported(plugin.manifest.name, requirements, options.strictRequirements ?? false);
|
|
1176
|
+
}
|
|
1071
1177
|
assertManifestPlatformSupport(plugin.manifest.name, plugin.manifest);
|
|
1072
|
-
await fs.ensureDir(outputRoot);
|
|
1073
1178
|
const supportedPlatforms = resolveSupportedPlatforms(plugin.manifest);
|
|
1074
1179
|
await assertSkillRuntimeProjectionTargets(plugin);
|
|
1180
|
+
const skillRuntimeFileProjections = await projectSkillRuntimeFiles({
|
|
1181
|
+
plugin,
|
|
1182
|
+
outputRoot,
|
|
1183
|
+
supportedPlatforms,
|
|
1184
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1185
|
+
});
|
|
1186
|
+
const skillRuntimeFiles = skillRuntimeFileProjections.map(({ provenance }) => provenance);
|
|
1187
|
+
const portableRuntimeFiles = skillRuntimeFiles
|
|
1188
|
+
.filter((entry) => entry.distribution === 'agent-skills')
|
|
1189
|
+
.map((entry) => ({
|
|
1190
|
+
skill: entry.skill,
|
|
1191
|
+
target: entry.target,
|
|
1192
|
+
path: `./agent-skills/skills/${entry.skill}/${entry.target}`,
|
|
1193
|
+
digest: entry.targetDigest,
|
|
1194
|
+
provider: entry.provider,
|
|
1195
|
+
providerVersion: entry.providerVersion,
|
|
1196
|
+
exportName: entry.name,
|
|
1197
|
+
source: entry.source,
|
|
1198
|
+
sourceDigest: entry.sourceDigest,
|
|
1199
|
+
requiredCapabilities: entry.requiredCapabilities,
|
|
1200
|
+
capabilitySetDigest: entry.capabilitySetDigest,
|
|
1201
|
+
}));
|
|
1202
|
+
const artifactRuntimeProjection = await resolveArtifactRuntimeImports({
|
|
1203
|
+
plugin,
|
|
1204
|
+
outputRoot,
|
|
1205
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1206
|
+
});
|
|
1207
|
+
const finalEffective = normalizeAwCapabilities([
|
|
1208
|
+
...requirements.effective,
|
|
1209
|
+
...skillRuntimeFiles.flatMap((entry) => entry.requiredCapabilities),
|
|
1210
|
+
...artifactRuntimeProjection.requiredCapabilities,
|
|
1211
|
+
]);
|
|
1212
|
+
if (!historicalComparison) {
|
|
1213
|
+
assertRequiredCapabilitiesSupported(plugin.manifest.name, finalEffective);
|
|
1214
|
+
}
|
|
1215
|
+
artifactRuntimeProjection.manifest.requires = {
|
|
1216
|
+
aw: { capabilities: finalEffective },
|
|
1217
|
+
};
|
|
1218
|
+
const bundleManifest = artifactRuntimeProjection.manifest;
|
|
1219
|
+
await fs.ensureDir(outputRoot);
|
|
1075
1220
|
const platformFiles = {};
|
|
1076
1221
|
const platformManifests = {};
|
|
1077
1222
|
const buildConfig = plugin.manifest.buildConfig;
|
|
@@ -1186,26 +1331,7 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1186
1331
|
}
|
|
1187
1332
|
}
|
|
1188
1333
|
}
|
|
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
|
-
}));
|
|
1334
|
+
await materializeSkillRuntimeFiles(skillRuntimeFileProjections);
|
|
1209
1335
|
await copyPortableStaticSkills(plugin, outputRoot);
|
|
1210
1336
|
if (await fs.pathExists(path.join(plugin.rootDir, 'README.md'))) {
|
|
1211
1337
|
await copyBundleRootFile(plugin.rootDir, outputRoot, 'README.md');
|
|
@@ -1215,11 +1341,7 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1215
1341
|
}
|
|
1216
1342
|
await copyArtifactSourceDirectories(plugin, outputRoot);
|
|
1217
1343
|
await copyProductionPackageRoot(plugin, outputRoot);
|
|
1218
|
-
|
|
1219
|
-
plugin,
|
|
1220
|
-
outputRoot,
|
|
1221
|
-
resolver: buildPlugin.runtimeContext.resolver,
|
|
1222
|
-
});
|
|
1344
|
+
await materializeArtifactRuntimeImports(artifactRuntimeProjection.projections);
|
|
1223
1345
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'plugin.json'), bundleManifest);
|
|
1224
1346
|
if (portableRuntimeFiles.length > 0) {
|
|
1225
1347
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'portable-runtime-files.json'), portableRuntimeFiles);
|
|
@@ -1231,6 +1353,11 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1231
1353
|
}
|
|
1232
1354
|
await writeJsonFile(path.join(outputRoot, PLATFORM_MANIFEST_DIRS[platform], 'plugin.json'), manifest);
|
|
1233
1355
|
}
|
|
1356
|
+
await injectRequirementsReceipts({
|
|
1357
|
+
outputRoot,
|
|
1358
|
+
plugin,
|
|
1359
|
+
requiredCapabilities: finalEffective,
|
|
1360
|
+
});
|
|
1234
1361
|
await validateSkillRuntimeProjectionSources(skillRuntimeFileProjections);
|
|
1235
1362
|
await validateSkillRuntimeProjectionFreshness(outputRoot, skillRuntimeFiles.filter((entry) => entry.platform !== undefined));
|
|
1236
1363
|
await validateGeneratedSkillRuntimeFiles(plugin, outputRoot, supportedPlatforms);
|