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