@lesliechan721/aw 0.1.0-beta.6 → 0.1.0-beta.60
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 -92
- package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -124
- 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 +552 -1142
- package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
- package/dist/native-runtime/reader-runtime.mjs +34 -0
- package/dist/native-runtime/reader.d.mts +6 -0
- package/dist/native-runtime/reader.mjs +11 -0
- 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 +19 -8
- 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/plugin-test-reporter.d.mts +2 -0
- package/dist/scripts/plugin-test-reporter.mjs +21 -0
- package/dist/scripts/plugin-test-reporter.mjs.map +1 -0
- package/dist/scripts/test-plugin-scripts.d.ts +5 -0
- package/dist/scripts/test-plugin-scripts.js +208 -89
- 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.d.ts +7 -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 +19 -1
- package/dist/src/authoring/workspace-commands.js +24 -5
- 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 +266 -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/managed-commands.d.ts +28 -0
- package/dist/src/commands/managed-commands.js +315 -0
- package/dist/src/commands/managed-commands.js.map +1 -0
- 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 +182 -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 +47 -0
- package/dist/src/commands/operation-planner.js +142 -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 +65 -4
- package/dist/src/commands/plugin-capabilities.js.map +1 -1
- package/dist/src/commands/rebuild-command.d.ts +78 -31
- package/dist/src/commands/rebuild-command.js +5229 -942
- package/dist/src/commands/rebuild-command.js.map +1 -1
- package/dist/src/commands/rebuild-integration.d.ts +143 -21
- package/dist/src/commands/rebuild-integration.js +3384 -1342
- package/dist/src/commands/rebuild-integration.js.map +1 -1
- package/dist/src/commands/rebuild-operations.d.ts +60 -30
- package/dist/src/commands/rebuild-operations.js +267 -320
- 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 +60 -0
- package/dist/src/commands/review-inspection.js +422 -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 +27 -53
- 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 +2785 -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 +254 -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 +136 -31
- package/dist/src/commands/write-commands.js.map +1 -1
- package/dist/src/constants.d.ts +7 -2
- package/dist/src/constants.js +7 -2
- package/dist/src/constants.js.map +1 -1
- package/dist/src/eval/manifest-v1.d.ts +68 -0
- package/dist/src/eval/manifest-v1.js +353 -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 +261 -109
- package/dist/src/generators/local-plugin.js.map +1 -1
- package/dist/src/generators/permissions.d.ts +5 -2
- package/dist/src/generators/permissions.js +28 -15
- package/dist/src/generators/permissions.js.map +1 -1
- package/dist/src/index.d.ts +10 -4
- package/dist/src/index.js +1774 -609
- package/dist/src/index.js.map +1 -1
- package/dist/src/output/command-receipt.d.ts +47 -46
- package/dist/src/output/command-receipt.js +277 -79
- 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 +15 -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 +186 -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 +26 -0
- package/dist/src/review/skill-materialization.js +217 -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 +19 -0
- package/dist/src/tui/config-leaf-editor.js +212 -0
- package/dist/src/tui/config-leaf-editor.js.map +1 -0
- package/dist/src/tui/config-references.d.ts +34 -0
- package/dist/src/tui/config-references.js +70 -0
- package/dist/src/tui/config-references.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 +9205 -1951
- 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 +3289 -388
- package/dist/src/tui/controller-runtime.js.map +1 -1
- package/dist/src/tui/controller.d.ts +622 -45
- package/dist/src/tui/controller.js +3589 -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 +595 -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 +224 -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 +1392 -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 +264 -21
- 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 +36 -7
- package/dist/src/utils/agent-version.js.map +1 -1
- package/dist/src/utils/artifact-plan.d.ts +8 -6
- package/dist/src/utils/artifact-plan.js +67 -13
- package/dist/src/utils/artifact-plan.js.map +1 -1
- package/dist/src/utils/artifact-renderer.d.ts +24 -10
- package/dist/src/utils/artifact-renderer.js +230 -220
- package/dist/src/utils/artifact-renderer.js.map +1 -1
- package/dist/src/utils/artifact-request.d.ts +32 -0
- package/dist/src/utils/artifact-request.js +90 -0
- package/dist/src/utils/artifact-request.js.map +1 -0
- package/dist/src/utils/artifact-sources.d.ts +4 -0
- package/dist/src/utils/artifact-sources.js +17 -0
- package/dist/src/utils/artifact-sources.js.map +1 -1
- 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 +29 -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/claude-skills-root.d.ts +8 -0
- package/dist/src/utils/claude-skills-root.js +76 -0
- package/dist/src/utils/claude-skills-root.js.map +1 -0
- 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 +735 -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-skills-root.d.ts +4 -0
- package/dist/src/utils/codex-skills-root.js +25 -0
- package/dist/src/utils/codex-skills-root.js.map +1 -0
- 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 +5 -0
- package/dist/src/utils/dynamic-skill-tree.js +56 -7
- 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 +27 -1
- package/dist/src/utils/local-marketplace.js +434 -84
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/managed-command-closure.d.ts +3 -0
- package/dist/src/utils/managed-command-closure.js +35 -0
- package/dist/src/utils/managed-command-closure.js.map +1 -0
- package/dist/src/utils/managed-command-evidence.d.ts +7 -0
- package/dist/src/utils/managed-command-evidence.js +86 -0
- package/dist/src/utils/managed-command-evidence.js.map +1 -0
- package/dist/src/utils/managed-command-materialization.d.ts +115 -0
- package/dist/src/utils/managed-command-materialization.js +359 -0
- package/dist/src/utils/managed-command-materialization.js.map +1 -0
- package/dist/src/utils/managed-command-runtime.d.ts +33 -0
- package/dist/src/utils/managed-command-runtime.js +121 -0
- package/dist/src/utils/managed-command-runtime.js.map +1 -0
- package/dist/src/utils/managed-command-store.d.ts +128 -0
- package/dist/src/utils/managed-command-store.js +589 -0
- package/dist/src/utils/managed-command-store.js.map +1 -0
- 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 +61 -7
- package/dist/src/utils/native-cli.js +426 -58
- package/dist/src/utils/native-cli.js.map +1 -1
- package/dist/src/utils/native-tool-context.d.ts +14 -0
- package/dist/src/utils/native-tool-context.js +38 -0
- package/dist/src/utils/native-tool-context.js.map +1 -0
- package/dist/src/utils/native-tool-review.d.ts +21 -0
- package/dist/src/utils/native-tool-review.js +102 -0
- package/dist/src/utils/native-tool-review.js.map +1 -0
- 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 +88 -20
- package/dist/src/utils/ownership.js +185 -223
- 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 +40 -0
- package/dist/src/utils/plugin-config-impact.js +373 -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 +1112 -298
- 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 +66 -125
- package/dist/src/utils/plugin-scripts.js +518 -526
- package/dist/src/utils/plugin-scripts.js.map +1 -1
- package/dist/src/utils/process-lock.js +14 -5
- package/dist/src/utils/process-lock.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/rendered-contract.js +18 -1
- package/dist/src/utils/rendered-contract.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/runtime-skill-closure.js +47 -6
- package/dist/src/utils/runtime-skill-closure.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/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 +100 -9
- package/dist/vitest.config.js.map +1 -1
- package/package.json +31 -21
- 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/review-publication.d.ts +0 -99
- package/dist/src/commands/review-publication.js +0 -904
- package/dist/src/commands/review-publication.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
|
@@ -4,14 +4,17 @@ import os from 'node:os';
|
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
6
|
import fs from 'fs-extra';
|
|
7
|
+
import { preparePluginNativeTools, validateManagedCommandSources } from '@lesliechan721/aw-plugin-core/manifest';
|
|
7
8
|
import { renderResolvedHooksArtifact } from './hooks.js';
|
|
8
9
|
import { buildGeneratedName } from './shared.js';
|
|
9
10
|
import { applyFileRules } from '../utils/file-rules.js';
|
|
10
11
|
import { calculateFileDigest } from '../utils/bundle-integrity.js';
|
|
11
12
|
import { resolveCanonicalRuntimeSourceIdentity } from '../utils/catalog-runtime-projection.js';
|
|
12
13
|
import { getArtifactSourceBundleRelativePath } from '../utils/artifact-sources.js';
|
|
14
|
+
import { validateManagedCommandPackageClosure } from '../utils/managed-command-closure.js';
|
|
13
15
|
import { resolvePlatformHookDefinitions } from '../utils/hooks-contract.js';
|
|
14
|
-
import { assertManifestPlatformSupport, assertPluginInputTree, createBundleSourceManifest, createPlatformManifestBase, isIgnoredPluginInputDirectory, normalizePluginRelativePath, readPluginManifest, } from '../utils/manifest.js';
|
|
16
|
+
import { assertManifestPlatformSupport, assertPluginInputTree, checkAwCapabilitySupport, computeAwCapabilitySetDigest, createAwPluginRequirementsReceipt, createBundleSourceManifest, createPlatformManifestBase, isIgnoredPluginInputDirectory, normalizePluginRelativePath, normalizeAwCapabilities, readPluginManifest, resolvePluginRequirements, } from '../utils/manifest.js';
|
|
17
|
+
import { AwCapabilityUnsupportedError, IMPLEMENTED_AW_CAPABILITIES, } from '../commands/aw-capabilities.js';
|
|
15
18
|
import { writeJsonFile } from '../utils/json.js';
|
|
16
19
|
import { resolveSupportedPlatforms } from '../utils/platform-support.js';
|
|
17
20
|
import { renderTemplate } from '../utils/template-engine.js';
|
|
@@ -21,7 +24,7 @@ import { isSkillAuthorOnlyPath, isSkillCollectionAuthorOnlyPath, } from '../util
|
|
|
21
24
|
import { assertTestWritablePath } from '../utils/test-path-fence.js';
|
|
22
25
|
import { resolveCliPackageRoot } from '../utils/paths.js';
|
|
23
26
|
import { validateRuntimeSkillClosuresRoot, validateSkillRuntimeProjectionFreshness, } from '../utils/runtime-skill-closure.js';
|
|
24
|
-
import { validatePortableSkillDirectoriesRoot } from '../utils/dynamic-skill-tree.js';
|
|
27
|
+
import { AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH, validatePortableSkillDirectoriesRoot, } from '../utils/dynamic-skill-tree.js';
|
|
25
28
|
import { renderClaudeSlashCommand, renderCodexSlashCommandOpenAiYaml, renderCodexSlashCommandSkillMarkdown, resolveSlashCommands, } from '../utils/slash-commands.js';
|
|
26
29
|
const execFileAsync = promisify(execFile);
|
|
27
30
|
const requireFromCli = createRequire(import.meta.url);
|
|
@@ -32,7 +35,7 @@ const PLATFORM_MANIFEST_DIRS = {
|
|
|
32
35
|
claude: '.claude-plugin',
|
|
33
36
|
codex: '.codex-plugin',
|
|
34
37
|
};
|
|
35
|
-
const
|
|
38
|
+
const EXACT_PNPM_VERSION_PATTERN = /^\d+\.\d+\.\d+$/u;
|
|
36
39
|
function assertLocalPluginStagingPathForTests(targetPath, source) {
|
|
37
40
|
return assertTestWritablePath(targetPath, source, '用 createIsolatedTestEnv() 生成默认 TMPDIR,或通过 registerWritableStateRoot() 登记 local plugin staging 路径。');
|
|
38
41
|
}
|
|
@@ -42,11 +45,14 @@ export async function validateStagingPackageManager(packageRoot) {
|
|
|
42
45
|
readJsonObject(path.join(resolveCliPackageRoot(), 'package.json'), '@lesliechan721/aw package.json'),
|
|
43
46
|
readJsonObject(path.join(packageRoot, 'package.json'), 'scripts.node.packageRoot.package.json'),
|
|
44
47
|
]);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
// pnpm pack removes packageManager, but preserves runtime dependencies.
|
|
49
|
+
const dependencies = cliPackageJson.dependencies;
|
|
50
|
+
const supportedPnpmVersion = dependencies?.pnpm;
|
|
51
|
+
if (typeof supportedPnpmVersion !== 'string'
|
|
52
|
+
|| !EXACT_PNPM_VERSION_PATTERN.test(supportedPnpmVersion)) {
|
|
53
|
+
throw new Error('Invalid @lesliechan721/aw dependencies.pnpm: expected an exact "<major>.<minor>.<patch>" version.');
|
|
49
54
|
}
|
|
55
|
+
const supportedPackageManager = `pnpm@${supportedPnpmVersion}`;
|
|
50
56
|
if (packageJson.packageManager !== supportedPackageManager) {
|
|
51
57
|
throw new Error('Invalid scripts.node.packageRoot.package.json.packageManager: '
|
|
52
58
|
+ `expected "${supportedPackageManager}".`);
|
|
@@ -98,34 +104,36 @@ async function resolveRuntimePnpmEntry(supportedPackageManager) {
|
|
|
98
104
|
const stats = await fs.stat(entryPath).catch(() => undefined);
|
|
99
105
|
return stats?.isFile() ? entryPath : undefined;
|
|
100
106
|
}
|
|
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
|
-
}
|
|
107
|
+
function createDefaultStagingRunner(commandEnv) {
|
|
108
|
+
return {
|
|
109
|
+
async installPackageRoot(packageRoot) {
|
|
110
|
+
const supportedPackageManager = await validateStagingPackageManager(packageRoot);
|
|
111
|
+
const fixedPnpmEntry = await resolveFixedPnpmEntry(supportedPackageManager, commandEnv)
|
|
112
|
+
?? await resolveRuntimePnpmEntry(supportedPackageManager);
|
|
113
|
+
if (!fixedPnpmEntry) {
|
|
114
|
+
throw new Error(`Cannot stage scripts.node.packageRoot: missing bundled ${supportedPackageManager} runtime dependency.`);
|
|
115
|
+
}
|
|
116
|
+
const args = [
|
|
117
|
+
fixedPnpmEntry,
|
|
118
|
+
'install',
|
|
119
|
+
'--frozen-lockfile',
|
|
120
|
+
'--ignore-scripts',
|
|
121
|
+
];
|
|
122
|
+
await execFileAsync(process.execPath, args, {
|
|
123
|
+
cwd: packageRoot,
|
|
124
|
+
env: commandEnv,
|
|
125
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
async runNodeBuild({ pluginRoot, scriptPath, args, env }) {
|
|
129
|
+
await execFileAsync(process.execPath, [path.join(pluginRoot, stripDotSlash(scriptPath)), ...args], {
|
|
130
|
+
cwd: pluginRoot,
|
|
131
|
+
env,
|
|
132
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
133
|
+
});
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
129
137
|
function stripDotSlash(value) {
|
|
130
138
|
return value.startsWith('./') ? value.slice(2) : value;
|
|
131
139
|
}
|
|
@@ -239,6 +247,9 @@ async function assertArtifactSourceTreePortable(rootDir, fieldName, relativeRoot
|
|
|
239
247
|
continue;
|
|
240
248
|
if (isMacOsMetadataName(entry.name))
|
|
241
249
|
continue;
|
|
250
|
+
if (relativePath === AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH) {
|
|
251
|
+
throw new Error(`Invalid ${fieldName}: source root cannot declare reserved file ${AW_PLUGIN_REQUIREMENTS_RECEIPT_PATH}.`);
|
|
252
|
+
}
|
|
242
253
|
const entryPath = path.join(rootDir, entry.name);
|
|
243
254
|
if (entry.isSymbolicLink()) {
|
|
244
255
|
throw new Error(`Invalid ${fieldName}: symbolic links are not supported (${entry.name}).`);
|
|
@@ -271,6 +282,19 @@ async function copyArtifactSourceDirectories(plugin, outputRoot) {
|
|
|
271
282
|
}
|
|
272
283
|
}
|
|
273
284
|
}
|
|
285
|
+
async function copyManagedCommandPackages(plugin, outputRoot) {
|
|
286
|
+
await validateManagedCommandSources(plugin.rootDir, plugin.manifest);
|
|
287
|
+
for (const commandPackage of plugin.manifest.managedCommands?.packages ?? []) {
|
|
288
|
+
const relativePath = stripDotSlash(commandPackage.sourceDir);
|
|
289
|
+
await fs.copy(path.join(plugin.rootDir, relativePath), path.join(outputRoot, relativePath), {
|
|
290
|
+
overwrite: true,
|
|
291
|
+
dereference: false,
|
|
292
|
+
});
|
|
293
|
+
const entries = (plugin.manifest.managedCommands?.sets ?? []).flatMap((set) => set.producer.kind === 'package' && set.producer.packageKey === commandPackage.key && set.mode === 'static' ? set.entries : []);
|
|
294
|
+
await validateManagedCommandPackageClosure(path.join(outputRoot, relativePath), entries);
|
|
295
|
+
}
|
|
296
|
+
await validateManagedCommandSources(outputRoot, plugin.manifest);
|
|
297
|
+
}
|
|
274
298
|
async function copyPortableStaticSkills(plugin, outputRoot) {
|
|
275
299
|
const skillsPath = plugin.manifest.distributions?.agentSkills?.skills;
|
|
276
300
|
if (!skillsPath)
|
|
@@ -289,6 +313,8 @@ async function copyPortableStaticSkills(plugin, outputRoot) {
|
|
|
289
313
|
}
|
|
290
314
|
async function resolveArtifactRuntimeImports(options) {
|
|
291
315
|
const manifest = createBundleSourceManifest(options.plugin);
|
|
316
|
+
const requiredCapabilities = [];
|
|
317
|
+
const projections = [];
|
|
292
318
|
for (const [targetIndex, target] of (manifest.artifacts?.targets ?? []).entries()) {
|
|
293
319
|
for (const [importIndex, runtimeImport] of (target.runtimeImports ?? []).entries()) {
|
|
294
320
|
if (!options.resolver) {
|
|
@@ -299,27 +325,64 @@ async function resolveArtifactRuntimeImports(options) {
|
|
|
299
325
|
reference: runtimeImport,
|
|
300
326
|
purpose: 'artifact-runtime',
|
|
301
327
|
});
|
|
328
|
+
requiredCapabilities.push(...resolution.requiredCapabilities);
|
|
302
329
|
const relativePath = `./.agents-plugin/runtime-imports/${target.id}/${runtimeImport.name}`;
|
|
303
330
|
const targetPath = path.join(options.outputRoot, stripDotSlash(relativePath));
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
331
|
+
const digest = resolution.sourceDigest;
|
|
332
|
+
projections.push({
|
|
333
|
+
sourcePath: resolution.sourcePath,
|
|
334
|
+
targetPath,
|
|
335
|
+
sourceDigest: resolution.sourceDigest,
|
|
336
|
+
label: `${target.id}/${runtimeImport.name}`,
|
|
337
|
+
});
|
|
310
338
|
runtimeImport.resolved = {
|
|
311
339
|
path: relativePath,
|
|
312
340
|
digest,
|
|
313
341
|
providerPluginId: resolution.provider,
|
|
314
342
|
providerVersion: resolution.providerVersion,
|
|
315
343
|
source: resolution.source,
|
|
344
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
345
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
316
346
|
};
|
|
317
347
|
}
|
|
318
348
|
}
|
|
319
349
|
if (manifest.distributions?.agentSkills?.skills) {
|
|
320
350
|
manifest.distributions.agentSkills.skills = './agent-skills/skills';
|
|
321
351
|
}
|
|
322
|
-
return
|
|
352
|
+
return {
|
|
353
|
+
manifest,
|
|
354
|
+
requiredCapabilities: normalizeAwCapabilities(requiredCapabilities),
|
|
355
|
+
projections,
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
async function materializeArtifactRuntimeImports(projections) {
|
|
359
|
+
for (const projection of projections) {
|
|
360
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
361
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
362
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.sourceDigest) {
|
|
363
|
+
throw new Error(`Artifact runtime import digest mismatch at "${projection.label}".`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
async function injectRequirementsReceipts(options) {
|
|
368
|
+
const receipt = createAwPluginRequirementsReceipt({ name: options.plugin.manifest.name, version: options.plugin.manifest.version }, options.requiredCapabilities);
|
|
369
|
+
for (const relativeRoot of ['claude/skills', 'codex/skills', 'agent-skills/skills']) {
|
|
370
|
+
const skillsRoot = path.join(options.outputRoot, relativeRoot);
|
|
371
|
+
if (!(await fs.pathExists(skillsRoot)))
|
|
372
|
+
continue;
|
|
373
|
+
for (const entry of await fs.readdir(skillsRoot, { withFileTypes: true })) {
|
|
374
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
375
|
+
continue;
|
|
376
|
+
const skillRoot = path.join(skillsRoot, entry.name);
|
|
377
|
+
if (!(await fs.pathExists(path.join(skillRoot, 'SKILL.md'))))
|
|
378
|
+
continue;
|
|
379
|
+
const receiptPath = path.join(skillRoot, 'aw-plugin-requirements.json');
|
|
380
|
+
if (await fs.pathExists(receiptPath)) {
|
|
381
|
+
throw new Error(`Reserved runtime requirements receipt conflicts with source content: ${receiptPath}`);
|
|
382
|
+
}
|
|
383
|
+
await writeJsonFile(receiptPath, receipt);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
323
386
|
}
|
|
324
387
|
async function copySlashCommandAsset(pluginRoot, outputRoot, skillName, sourceRelativePath, generatedRelativePath) {
|
|
325
388
|
const sourcePath = path.join(pluginRoot, sourceRelativePath);
|
|
@@ -433,30 +496,13 @@ async function addDeclaredLspServerFiles(plugin, value, targetFiles) {
|
|
|
433
496
|
}
|
|
434
497
|
return value;
|
|
435
498
|
}
|
|
436
|
-
function
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
function addLifecycleRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
441
|
-
const lifecycle = plugin.manifest.scripts?.lifecycle;
|
|
442
|
-
if (!lifecycle) {
|
|
499
|
+
function addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries) {
|
|
500
|
+
const entry = plugin.manifest.scripts?.preApply;
|
|
501
|
+
if (!entry)
|
|
443
502
|
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
|
-
}
|
|
503
|
+
const filePath = stripDotSlash(entry.path);
|
|
504
|
+
rootFiles.add(filePath);
|
|
505
|
+
nodeEntries.add(filePath);
|
|
460
506
|
}
|
|
461
507
|
function addHelperRuntimeEntries(plugin, rootFiles, nodeEntries) {
|
|
462
508
|
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
@@ -520,6 +566,9 @@ async function collectRuntimeClosureFiles(plugin, entryFiles) {
|
|
|
520
566
|
entryFiles,
|
|
521
567
|
dependencies,
|
|
522
568
|
devDependencies,
|
|
569
|
+
runtimeConfigSkillRoots: (plugin.manifest.artifacts?.targets ?? [])
|
|
570
|
+
.filter((target) => target.runtimeConfig !== undefined)
|
|
571
|
+
.flatMap((target) => target.sourceDirs ?? []),
|
|
523
572
|
});
|
|
524
573
|
if (scan.errors.length > 0) {
|
|
525
574
|
throw new Error(`Invalid scripts.node runtime imports:\n${scan.errors.join('\n')}`);
|
|
@@ -529,12 +578,25 @@ async function collectRuntimeClosureFiles(plugin, entryFiles) {
|
|
|
529
578
|
async function collectAwRuntimeFiles(plugin) {
|
|
530
579
|
const rootFiles = new Set();
|
|
531
580
|
const nodeEntries = new Set();
|
|
532
|
-
|
|
581
|
+
addPreApplyRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
533
582
|
addHelperRuntimeEntries(plugin, rootFiles, nodeEntries);
|
|
534
583
|
addArtifactRendererRuntimeEntry(plugin, rootFiles, nodeEntries);
|
|
535
|
-
|
|
584
|
+
if (plugin.manifest.nativeTools) {
|
|
585
|
+
rootFiles.add(stripDotSlash(plugin.manifest.nativeTools.reader));
|
|
586
|
+
}
|
|
587
|
+
const closureFiles = await collectRuntimeClosureFiles(plugin, [...nodeEntries]);
|
|
588
|
+
for (const filePath of closureFiles) {
|
|
536
589
|
rootFiles.add(filePath);
|
|
537
590
|
}
|
|
591
|
+
const configHelper = plugin.manifest.scripts?.helpers?.config;
|
|
592
|
+
if (configHelper) {
|
|
593
|
+
const helperDir = path.posix.dirname(stripDotSlash(configHelper));
|
|
594
|
+
const re2RuntimeRoot = path.posix.join(helperDir, 're2-wasm');
|
|
595
|
+
if (closureFiles.includes(path.posix.join(re2RuntimeRoot, 'build/src/re2.js'))) {
|
|
596
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'build/wasm/re2.wasm'));
|
|
597
|
+
rootFiles.add(path.posix.join(re2RuntimeRoot, 'LICENSE'));
|
|
598
|
+
}
|
|
599
|
+
}
|
|
538
600
|
return [...rootFiles].sort();
|
|
539
601
|
}
|
|
540
602
|
function packageRootPath(plugin) {
|
|
@@ -718,6 +780,8 @@ function toRuntimeImportProvenance(resolution) {
|
|
|
718
780
|
name: resolution.name,
|
|
719
781
|
source: resolution.source,
|
|
720
782
|
sourceDigest: resolution.sourceDigest,
|
|
783
|
+
requiredCapabilities: resolution.requiredCapabilities,
|
|
784
|
+
capabilitySetDigest: resolution.capabilitySetDigest,
|
|
721
785
|
};
|
|
722
786
|
}
|
|
723
787
|
async function resolveOwnSkillRuntimeSource(plugin, source) {
|
|
@@ -823,6 +887,8 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
823
887
|
name: entry.source,
|
|
824
888
|
source: entry.source,
|
|
825
889
|
sourceDigest,
|
|
890
|
+
requiredCapabilities: [],
|
|
891
|
+
capabilitySetDigest: computeAwCapabilitySetDigest([]),
|
|
826
892
|
};
|
|
827
893
|
}
|
|
828
894
|
else {
|
|
@@ -842,31 +908,37 @@ async function projectSkillRuntimeFiles(options) {
|
|
|
842
908
|
runtimeProvenance = toRuntimeImportProvenance(resolution);
|
|
843
909
|
}
|
|
844
910
|
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
911
|
projections.push({
|
|
855
912
|
bindingKey,
|
|
856
913
|
canonicalSource,
|
|
914
|
+
sourcePath,
|
|
915
|
+
targetPath,
|
|
857
916
|
provenance: {
|
|
858
917
|
...runtimeProvenance,
|
|
859
918
|
platform,
|
|
860
919
|
distribution,
|
|
861
920
|
skill: entry.skill,
|
|
862
921
|
target: entry.target,
|
|
863
|
-
targetDigest,
|
|
922
|
+
targetDigest: sourceDigest,
|
|
864
923
|
},
|
|
865
924
|
});
|
|
866
925
|
}
|
|
867
926
|
}
|
|
868
927
|
return projections;
|
|
869
928
|
}
|
|
929
|
+
async function materializeSkillRuntimeFiles(projections) {
|
|
930
|
+
for (const projection of projections) {
|
|
931
|
+
if (await fs.pathExists(projection.targetPath)) {
|
|
932
|
+
const surface = projection.provenance.platform ?? projection.provenance.distribution;
|
|
933
|
+
throw new Error(`Invalid buildConfig.skillRuntimeFiles: bundle target already exists at "${surface}:${projection.provenance.skill}/${projection.provenance.target}".`);
|
|
934
|
+
}
|
|
935
|
+
await fs.ensureDir(path.dirname(projection.targetPath));
|
|
936
|
+
await fs.copyFile(projection.sourcePath, projection.targetPath);
|
|
937
|
+
if (await calculateFileDigest(projection.targetPath) !== projection.provenance.sourceDigest) {
|
|
938
|
+
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
}
|
|
870
942
|
function hasSameCanonicalSource(left, right) {
|
|
871
943
|
return left.rootPath === right.rootPath
|
|
872
944
|
&& left.rootRealPath === right.rootRealPath
|
|
@@ -883,6 +955,9 @@ async function validateSkillRuntimeProjectionSources(projections) {
|
|
|
883
955
|
|| existing.provenance.name !== projection.provenance.name
|
|
884
956
|
|| existing.provenance.source !== projection.provenance.source
|
|
885
957
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
958
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
959
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
960
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
886
961
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
887
962
|
throw new Error(`Canonical source "${projection.provenance.source}" changed during runtime Skill projection.`);
|
|
888
963
|
}
|
|
@@ -912,6 +987,9 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
912
987
|
|| existing.provenance.name !== projection.provenance.name
|
|
913
988
|
|| existing.provenance.source !== projection.provenance.source
|
|
914
989
|
|| existing.provenance.sourceDigest !== projection.provenance.sourceDigest
|
|
990
|
+
|| existing.provenance.capabilitySetDigest !== projection.provenance.capabilitySetDigest
|
|
991
|
+
|| JSON.stringify(existing.provenance.requiredCapabilities)
|
|
992
|
+
!== JSON.stringify(projection.provenance.requiredCapabilities)
|
|
915
993
|
|| !hasSameCanonicalSource(existing.canonicalSource, projection.canonicalSource))) {
|
|
916
994
|
throw new Error(`Catalog runtime import "${projection.provenance.provider}/${projection.provenance.name}" changed during build import projection.`);
|
|
917
995
|
}
|
|
@@ -930,7 +1008,7 @@ async function validateBuildImportProjectionSources(projections) {
|
|
|
930
1008
|
}
|
|
931
1009
|
}
|
|
932
1010
|
}
|
|
933
|
-
async function createStagedPlugin(plugin, runner, resolver) {
|
|
1011
|
+
async function createStagedPlugin(plugin, runner, resolver, commandEnv = process.env) {
|
|
934
1012
|
const stagingRoot = await fs.mkdtemp(assertLocalPluginStagingPathForTests(path.join(os.tmpdir(), 'aw-plugin-staging-'), 'local plugin bundle staging root'));
|
|
935
1013
|
const stagingPluginRoot = assertLocalPluginStagingPathForTests(path.join(stagingRoot, 'plugin'), 'local plugin staged plugin root');
|
|
936
1014
|
try {
|
|
@@ -940,19 +1018,25 @@ async function createStagedPlugin(plugin, runner, resolver) {
|
|
|
940
1018
|
&& !isMacOsMetadataName(path.basename(source));
|
|
941
1019
|
},
|
|
942
1020
|
});
|
|
1021
|
+
const nativeReader = await preparePluginNativeTools(stagingPluginRoot, plugin.manifest);
|
|
943
1022
|
const sourceBuild = plugin.manifest.scripts?.node?.build;
|
|
944
1023
|
const declaredBuildImports = plugin.manifest.buildConfig?.buildImports ?? [];
|
|
945
1024
|
if (declaredBuildImports.length > 0 && !sourceBuild) {
|
|
946
1025
|
throw new Error(`Invalid plugin "${plugin.manifest.name}": buildConfig.buildImports requires scripts.node.build.`);
|
|
947
1026
|
}
|
|
948
|
-
const buildEnv = { ...
|
|
1027
|
+
const buildEnv = { ...commandEnv };
|
|
1028
|
+
for (const key of Object.keys(buildEnv))
|
|
1029
|
+
if (key.toUpperCase() === 'AW_PLUGIN_NATIVE_READER')
|
|
1030
|
+
delete buildEnv[key];
|
|
1031
|
+
if (nativeReader)
|
|
1032
|
+
buildEnv.AW_PLUGIN_NATIVE_READER = nativeReader;
|
|
949
1033
|
const buildImportProvenance = [];
|
|
950
1034
|
const buildImportProjections = [];
|
|
951
1035
|
for (const buildImport of declaredBuildImports) {
|
|
952
1036
|
if (!resolver) {
|
|
953
1037
|
throw new Error(`Cannot resolve buildConfig.buildImports for plugin "${plugin.manifest.name}": catalog runtime import resolver is required.`);
|
|
954
1038
|
}
|
|
955
|
-
if (Object.hasOwn(
|
|
1039
|
+
if (Object.hasOwn(commandEnv, buildImport.env)) {
|
|
956
1040
|
throw new Error(`Invalid buildConfig.buildImports env "${buildImport.env}": refusing to overwrite an existing environment variable.`);
|
|
957
1041
|
}
|
|
958
1042
|
const resolution = await resolver.resolve({
|
|
@@ -1044,34 +1128,119 @@ async function resolveBuildPlugin(plugin, options) {
|
|
|
1044
1128
|
cleanup: async () => { },
|
|
1045
1129
|
};
|
|
1046
1130
|
}
|
|
1047
|
-
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver);
|
|
1131
|
+
return createStagedPlugin(plugin, options.stagingRunner, options.runtimeResolver, options.commandEnv);
|
|
1048
1132
|
}
|
|
1049
1133
|
export async function prepareLocalPluginBundleSource(plugin, options = {}) {
|
|
1050
1134
|
await assertPluginInputTree(plugin.rootDir);
|
|
1051
1135
|
const buildOptions = {
|
|
1052
1136
|
buildMode: options.buildMode ?? 'staging',
|
|
1053
|
-
stagingRunner: options.stagingRunner
|
|
1137
|
+
stagingRunner: options.stagingRunner
|
|
1138
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1139
|
+
commandEnv: options.commandEnv,
|
|
1054
1140
|
runtimeResolver: options.runtimeResolver,
|
|
1055
1141
|
preparedRuntimeContext: undefined,
|
|
1056
1142
|
};
|
|
1057
1143
|
return resolveBuildPlugin(plugin, buildOptions);
|
|
1058
1144
|
}
|
|
1145
|
+
function assertPluginRequirementsSupported(pluginName, requirements, strictRequirements = false) {
|
|
1146
|
+
if (requirements.unsupportedByCurrentAw.length > 0) {
|
|
1147
|
+
throw new AwCapabilityUnsupportedError(pluginName, requirements.unsupportedByCurrentAw);
|
|
1148
|
+
}
|
|
1149
|
+
if (!strictRequirements)
|
|
1150
|
+
return;
|
|
1151
|
+
const satisfied = new Set([...requirements.declared, ...requirements.derived]);
|
|
1152
|
+
const strictObservations = requirements.observations.filter((observation) => (observation.code !== 'aw-command-detected'
|
|
1153
|
+
|| observation.capability === undefined
|
|
1154
|
+
|| !satisfied.has(observation.capability)));
|
|
1155
|
+
if (strictObservations.length > 0) {
|
|
1156
|
+
const error = new Error(`Official strict requirements failed: ${strictObservations.map((observation) => (`plugin=${JSON.stringify(pluginName)} path=${JSON.stringify(observation.path)} `
|
|
1157
|
+
+ `command=${JSON.stringify(observation.command ?? '<dynamic>')} `
|
|
1158
|
+
+ `capability=${JSON.stringify(observation.capability ?? (observation.code === 'aw-command-dynamic' ? '<dynamic>' : '<unmapped>'))}`)).join('; ')}`);
|
|
1159
|
+
error.code = 'awCapabilityStrictRequirements';
|
|
1160
|
+
error.observations = strictObservations;
|
|
1161
|
+
throw error;
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
function assertRequiredCapabilitiesSupported(pluginName, requiredCapabilities) {
|
|
1165
|
+
const support = checkAwCapabilitySupport(requiredCapabilities, IMPLEMENTED_AW_CAPABILITIES);
|
|
1166
|
+
if (!support.supported) {
|
|
1167
|
+
throw new AwCapabilityUnsupportedError(pluginName, support.missing);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1059
1170
|
export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
1171
|
+
const historicalComparison = options.runtimeSkillClosureValidation === 'historical';
|
|
1060
1172
|
const buildOptions = {
|
|
1061
1173
|
buildMode: options.buildMode ?? 'build-free',
|
|
1062
|
-
stagingRunner: options.stagingRunner
|
|
1174
|
+
stagingRunner: options.stagingRunner
|
|
1175
|
+
?? createDefaultStagingRunner(options.commandEnv ?? process.env),
|
|
1176
|
+
commandEnv: options.commandEnv,
|
|
1063
1177
|
runtimeResolver: options.runtimeResolver,
|
|
1064
1178
|
preparedRuntimeContext: options.preparedRuntimeContext,
|
|
1065
1179
|
};
|
|
1066
1180
|
await assertPluginInputTree(plugin.rootDir);
|
|
1181
|
+
const sourceRequirements = await resolvePluginRequirements({
|
|
1182
|
+
pluginRoot: plugin.rootDir,
|
|
1183
|
+
manifest: plugin.manifest,
|
|
1184
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1185
|
+
});
|
|
1186
|
+
if (!historicalComparison) {
|
|
1187
|
+
assertPluginRequirementsSupported(plugin.manifest.name, sourceRequirements, options.strictRequirements ?? false);
|
|
1188
|
+
}
|
|
1067
1189
|
await fs.remove(outputRoot);
|
|
1068
1190
|
const buildPlugin = await resolveBuildPlugin(plugin, buildOptions);
|
|
1069
1191
|
try {
|
|
1070
1192
|
plugin = buildPlugin.plugin;
|
|
1193
|
+
const requirements = await resolvePluginRequirements({
|
|
1194
|
+
pluginRoot: plugin.rootDir,
|
|
1195
|
+
manifest: plugin.manifest,
|
|
1196
|
+
implementedCapabilities: IMPLEMENTED_AW_CAPABILITIES,
|
|
1197
|
+
});
|
|
1198
|
+
if (!historicalComparison) {
|
|
1199
|
+
assertPluginRequirementsSupported(plugin.manifest.name, requirements, options.strictRequirements ?? false);
|
|
1200
|
+
}
|
|
1071
1201
|
assertManifestPlatformSupport(plugin.manifest.name, plugin.manifest);
|
|
1072
|
-
await fs.ensureDir(outputRoot);
|
|
1073
1202
|
const supportedPlatforms = resolveSupportedPlatforms(plugin.manifest);
|
|
1074
1203
|
await assertSkillRuntimeProjectionTargets(plugin);
|
|
1204
|
+
const skillRuntimeFileProjections = await projectSkillRuntimeFiles({
|
|
1205
|
+
plugin,
|
|
1206
|
+
outputRoot,
|
|
1207
|
+
supportedPlatforms,
|
|
1208
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1209
|
+
});
|
|
1210
|
+
const skillRuntimeFiles = skillRuntimeFileProjections.map(({ provenance }) => provenance);
|
|
1211
|
+
const portableRuntimeFiles = skillRuntimeFiles
|
|
1212
|
+
.filter((entry) => entry.distribution === 'agent-skills')
|
|
1213
|
+
.map((entry) => ({
|
|
1214
|
+
skill: entry.skill,
|
|
1215
|
+
target: entry.target,
|
|
1216
|
+
path: `./agent-skills/skills/${entry.skill}/${entry.target}`,
|
|
1217
|
+
digest: entry.targetDigest,
|
|
1218
|
+
provider: entry.provider,
|
|
1219
|
+
providerVersion: entry.providerVersion,
|
|
1220
|
+
exportName: entry.name,
|
|
1221
|
+
source: entry.source,
|
|
1222
|
+
sourceDigest: entry.sourceDigest,
|
|
1223
|
+
requiredCapabilities: entry.requiredCapabilities,
|
|
1224
|
+
capabilitySetDigest: entry.capabilitySetDigest,
|
|
1225
|
+
}));
|
|
1226
|
+
const artifactRuntimeProjection = await resolveArtifactRuntimeImports({
|
|
1227
|
+
plugin,
|
|
1228
|
+
outputRoot,
|
|
1229
|
+
resolver: buildPlugin.runtimeContext.resolver,
|
|
1230
|
+
});
|
|
1231
|
+
const finalEffective = normalizeAwCapabilities([
|
|
1232
|
+
...requirements.effective,
|
|
1233
|
+
...skillRuntimeFiles.flatMap((entry) => entry.requiredCapabilities),
|
|
1234
|
+
...artifactRuntimeProjection.requiredCapabilities,
|
|
1235
|
+
]);
|
|
1236
|
+
if (!historicalComparison) {
|
|
1237
|
+
assertRequiredCapabilitiesSupported(plugin.manifest.name, finalEffective);
|
|
1238
|
+
}
|
|
1239
|
+
artifactRuntimeProjection.manifest.requires = {
|
|
1240
|
+
aw: { capabilities: finalEffective },
|
|
1241
|
+
};
|
|
1242
|
+
const bundleManifest = artifactRuntimeProjection.manifest;
|
|
1243
|
+
await fs.ensureDir(outputRoot);
|
|
1075
1244
|
const platformFiles = {};
|
|
1076
1245
|
const platformManifests = {};
|
|
1077
1246
|
const buildConfig = plugin.manifest.buildConfig;
|
|
@@ -1186,26 +1355,7 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1186
1355
|
}
|
|
1187
1356
|
}
|
|
1188
1357
|
}
|
|
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
|
-
}));
|
|
1358
|
+
await materializeSkillRuntimeFiles(skillRuntimeFileProjections);
|
|
1209
1359
|
await copyPortableStaticSkills(plugin, outputRoot);
|
|
1210
1360
|
if (await fs.pathExists(path.join(plugin.rootDir, 'README.md'))) {
|
|
1211
1361
|
await copyBundleRootFile(plugin.rootDir, outputRoot, 'README.md');
|
|
@@ -1214,12 +1364,9 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1214
1364
|
await copyBundleRootFile(plugin.rootDir, outputRoot, filePath);
|
|
1215
1365
|
}
|
|
1216
1366
|
await copyArtifactSourceDirectories(plugin, outputRoot);
|
|
1367
|
+
await copyManagedCommandPackages(plugin, outputRoot);
|
|
1217
1368
|
await copyProductionPackageRoot(plugin, outputRoot);
|
|
1218
|
-
|
|
1219
|
-
plugin,
|
|
1220
|
-
outputRoot,
|
|
1221
|
-
resolver: buildPlugin.runtimeContext.resolver,
|
|
1222
|
-
});
|
|
1369
|
+
await materializeArtifactRuntimeImports(artifactRuntimeProjection.projections);
|
|
1223
1370
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'plugin.json'), bundleManifest);
|
|
1224
1371
|
if (portableRuntimeFiles.length > 0) {
|
|
1225
1372
|
await writeJsonFile(path.join(outputRoot, '.agents-plugin', 'portable-runtime-files.json'), portableRuntimeFiles);
|
|
@@ -1231,6 +1378,11 @@ export async function bundleLocalPlugin(plugin, outputRoot, options = {}) {
|
|
|
1231
1378
|
}
|
|
1232
1379
|
await writeJsonFile(path.join(outputRoot, PLATFORM_MANIFEST_DIRS[platform], 'plugin.json'), manifest);
|
|
1233
1380
|
}
|
|
1381
|
+
await injectRequirementsReceipts({
|
|
1382
|
+
outputRoot,
|
|
1383
|
+
plugin,
|
|
1384
|
+
requiredCapabilities: finalEffective,
|
|
1385
|
+
});
|
|
1234
1386
|
await validateSkillRuntimeProjectionSources(skillRuntimeFileProjections);
|
|
1235
1387
|
await validateSkillRuntimeProjectionFreshness(outputRoot, skillRuntimeFiles.filter((entry) => entry.platform !== undefined));
|
|
1236
1388
|
await validateGeneratedSkillRuntimeFiles(plugin, outputRoot, supportedPlatforms);
|