@lesliechan721/aw 0.1.0-beta.3
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.d.mts +2 -0
- package/dist/authoring/assets/aw-config.mjs +556 -0
- package/dist/authoring/assets/aw-config.mjs.map +1 -0
- package/dist/authoring/scripts/add-skill.d.mts +2 -0
- package/dist/authoring/scripts/add-skill.mjs +355 -0
- package/dist/authoring/scripts/add-skill.mjs.map +1 -0
- package/dist/authoring/scripts/check-plugin-versions.d.mts +2 -0
- package/dist/authoring/scripts/check-plugin-versions.mjs +5 -0
- package/dist/authoring/scripts/check-plugin-versions.mjs.map +1 -0
- package/dist/authoring/scripts/init-plugin.d.mts +2 -0
- package/dist/authoring/scripts/init-plugin.mjs +512 -0
- package/dist/authoring/scripts/init-plugin.mjs.map +1 -0
- package/dist/authoring/scripts/lib/javascript-import-scanner.d.mts +4 -0
- package/dist/authoring/scripts/lib/javascript-import-scanner.mjs +261 -0
- package/dist/authoring/scripts/lib/javascript-import-scanner.mjs.map +1 -0
- package/dist/authoring/scripts/lib/plugin-root.d.mts +26 -0
- package/dist/authoring/scripts/lib/plugin-root.mjs +125 -0
- package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -0
- package/dist/authoring/scripts/lib/plugin-version-check.d.mts +55 -0
- package/dist/authoring/scripts/lib/plugin-version-check.mjs +777 -0
- package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -0
- package/dist/authoring/scripts/lib/semver.d.mts +9 -0
- package/dist/authoring/scripts/lib/semver.mjs +63 -0
- package/dist/authoring/scripts/lib/semver.mjs.map +1 -0
- package/dist/authoring/scripts/lib/skill-scaffold.d.mts +124 -0
- package/dist/authoring/scripts/lib/skill-scaffold.mjs +374 -0
- package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -0
- package/dist/authoring/scripts/plugin-status.d.mts +2 -0
- package/dist/authoring/scripts/plugin-status.mjs +96 -0
- package/dist/authoring/scripts/plugin-status.mjs.map +1 -0
- package/dist/authoring/scripts/validate-plugin.d.mts +2 -0
- package/dist/authoring/scripts/validate-plugin.mjs +4442 -0
- package/dist/authoring/scripts/validate-plugin.mjs.map +1 -0
- package/dist/authoring/scripts/validate-skill.d.mts +2 -0
- package/dist/authoring/scripts/validate-skill.mjs +126 -0
- package/dist/authoring/scripts/validate-skill.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/scripts/aw-skill-eval-engine.d.ts +13 -0
- package/dist/scripts/aw-skill-eval-engine.js +31 -0
- package/dist/scripts/aw-skill-eval-engine.js.map +1 -0
- package/dist/scripts/bundle-plugins.d.ts +18 -0
- package/dist/scripts/bundle-plugins.js +123 -0
- package/dist/scripts/bundle-plugins.js.map +1 -0
- package/dist/scripts/codex-eval-app-server.d.ts +89 -0
- package/dist/scripts/codex-eval-app-server.js +1228 -0
- package/dist/scripts/codex-eval-app-server.js.map +1 -0
- package/dist/scripts/codex-eval-isolation.d.ts +61 -0
- package/dist/scripts/codex-eval-isolation.js +318 -0
- package/dist/scripts/codex-eval-isolation.js.map +1 -0
- package/dist/scripts/codex-eval-process-management.d.ts +8 -0
- package/dist/scripts/codex-eval-process-management.js +69 -0
- package/dist/scripts/codex-eval-process-management.js.map +1 -0
- package/dist/scripts/codex-eval-process-tree.d.ts +38 -0
- package/dist/scripts/codex-eval-process-tree.js +803 -0
- package/dist/scripts/codex-eval-process-tree.js.map +1 -0
- package/dist/scripts/codex-eval-runtime-config.d.ts +62 -0
- package/dist/scripts/codex-eval-runtime-config.js +843 -0
- package/dist/scripts/codex-eval-runtime-config.js.map +1 -0
- package/dist/scripts/codex-trigger-eval.d.ts +84 -0
- package/dist/scripts/codex-trigger-eval.js +968 -0
- package/dist/scripts/codex-trigger-eval.js.map +1 -0
- package/dist/scripts/eval-plugin-skills-audited.d.ts +6 -0
- package/dist/scripts/eval-plugin-skills-audited.js +261 -0
- package/dist/scripts/eval-plugin-skills-audited.js.map +1 -0
- package/dist/scripts/eval-plugin-skills.d.ts +45 -0
- package/dist/scripts/eval-plugin-skills.js +1586 -0
- package/dist/scripts/eval-plugin-skills.js.map +1 -0
- package/dist/scripts/eval-run-layout.d.ts +17 -0
- package/dist/scripts/eval-run-layout.js +26 -0
- package/dist/scripts/eval-run-layout.js.map +1 -0
- package/dist/scripts/plugin-eval-contract.d.ts +185 -0
- package/dist/scripts/plugin-eval-contract.js +695 -0
- package/dist/scripts/plugin-eval-contract.js.map +1 -0
- package/dist/scripts/plugin-eval-materializer.d.ts +13 -0
- package/dist/scripts/plugin-eval-materializer.js +421 -0
- package/dist/scripts/plugin-eval-materializer.js.map +1 -0
- package/dist/scripts/plugin-staging.d.ts +43 -0
- package/dist/scripts/plugin-staging.js +196 -0
- package/dist/scripts/plugin-staging.js.map +1 -0
- package/dist/scripts/skill-reporting.d.ts +212 -0
- package/dist/scripts/skill-reporting.js +922 -0
- package/dist/scripts/skill-reporting.js.map +1 -0
- package/dist/scripts/test-plugin-scripts.d.ts +7 -0
- package/dist/scripts/test-plugin-scripts.js +674 -0
- package/dist/scripts/test-plugin-scripts.js.map +1 -0
- package/dist/src/adapters/helpers.d.ts +44 -0
- package/dist/src/adapters/helpers.js +95 -0
- package/dist/src/adapters/helpers.js.map +1 -0
- package/dist/src/authoring/workspace-commands.d.ts +46 -0
- package/dist/src/authoring/workspace-commands.js +133 -0
- package/dist/src/authoring/workspace-commands.js.map +1 -0
- package/dist/src/commands/catalog-publish.d.ts +33 -0
- package/dist/src/commands/catalog-publish.js +374 -0
- package/dist/src/commands/catalog-publish.js.map +1 -0
- package/dist/src/commands/catalog-source.d.ts +111 -0
- package/dist/src/commands/catalog-source.js +266 -0
- package/dist/src/commands/catalog-source.js.map +1 -0
- package/dist/src/commands/console.d.ts +3 -0
- package/dist/src/commands/console.js +44 -0
- package/dist/src/commands/console.js.map +1 -0
- package/dist/src/commands/dependency-operation-plan.d.ts +28 -0
- package/dist/src/commands/dependency-operation-plan.js +15 -0
- package/dist/src/commands/dependency-operation-plan.js.map +1 -0
- package/dist/src/commands/init.d.ts +31 -0
- package/dist/src/commands/init.js +63 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/options.d.ts +68 -0
- package/dist/src/commands/options.js +146 -0
- package/dist/src/commands/options.js.map +1 -0
- package/dist/src/commands/rebuild-command.d.ts +77 -0
- package/dist/src/commands/rebuild-command.js +1681 -0
- package/dist/src/commands/rebuild-command.js.map +1 -0
- package/dist/src/commands/rebuild-integration.d.ts +94 -0
- package/dist/src/commands/rebuild-integration.js +3289 -0
- package/dist/src/commands/rebuild-integration.js.map +1 -0
- package/dist/src/commands/rebuild-operations.d.ts +110 -0
- package/dist/src/commands/rebuild-operations.js +791 -0
- package/dist/src/commands/rebuild-operations.js.map +1 -0
- package/dist/src/commands/review-publication.d.ts +99 -0
- package/dist/src/commands/review-publication.js +904 -0
- package/dist/src/commands/review-publication.js.map +1 -0
- package/dist/src/commands/runtime.d.ts +176 -0
- package/dist/src/commands/runtime.js +746 -0
- package/dist/src/commands/runtime.js.map +1 -0
- package/dist/src/commands/status-v4.d.ts +102 -0
- package/dist/src/commands/status-v4.js +844 -0
- package/dist/src/commands/status-v4.js.map +1 -0
- package/dist/src/commands/status.d.ts +93 -0
- package/dist/src/commands/status.js +442 -0
- package/dist/src/commands/status.js.map +1 -0
- package/dist/src/commands/wizard.d.ts +57 -0
- package/dist/src/commands/wizard.js +58 -0
- package/dist/src/commands/wizard.js.map +1 -0
- package/dist/src/commands/write-commands.d.ts +7 -0
- package/dist/src/commands/write-commands.js +167 -0
- package/dist/src/commands/write-commands.js.map +1 -0
- package/dist/src/constants.d.ts +25 -0
- package/dist/src/constants.js +26 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/generators/agents.d.ts +3 -0
- package/dist/src/generators/agents.js +46 -0
- package/dist/src/generators/agents.js.map +1 -0
- package/dist/src/generators/hooks.d.ts +15 -0
- package/dist/src/generators/hooks.js +76 -0
- package/dist/src/generators/hooks.js.map +1 -0
- package/dist/src/generators/instructions.d.ts +13 -0
- package/dist/src/generators/instructions.js +66 -0
- package/dist/src/generators/instructions.js.map +1 -0
- package/dist/src/generators/local-plugin.d.ts +53 -0
- package/dist/src/generators/local-plugin.js +1268 -0
- package/dist/src/generators/local-plugin.js.map +1 -0
- package/dist/src/generators/permissions.d.ts +10 -0
- package/dist/src/generators/permissions.js +37 -0
- package/dist/src/generators/permissions.js.map +1 -0
- package/dist/src/generators/shared.d.ts +2 -0
- package/dist/src/generators/shared.js +15 -0
- package/dist/src/generators/shared.js.map +1 -0
- package/dist/src/index.d.ts +35 -0
- package/dist/src/index.js +2344 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/output/command-receipt.d.ts +90 -0
- package/dist/src/output/command-receipt.js +129 -0
- package/dist/src/output/command-receipt.js.map +1 -0
- package/dist/src/output/debug-log.d.ts +4 -0
- package/dist/src/output/debug-log.js +97 -0
- package/dist/src/output/debug-log.js.map +1 -0
- package/dist/src/output/equivalent-command.d.ts +9 -0
- package/dist/src/output/equivalent-command.js +39 -0
- package/dist/src/output/equivalent-command.js.map +1 -0
- package/dist/src/output/model.d.ts +117 -0
- package/dist/src/output/model.js +145 -0
- package/dist/src/output/model.js.map +1 -0
- package/dist/src/output/rebuild-progress.d.ts +21 -0
- package/dist/src/output/rebuild-progress.js +138 -0
- package/dist/src/output/rebuild-progress.js.map +1 -0
- package/dist/src/output/redact.d.ts +3 -0
- package/dist/src/output/redact.js +39 -0
- package/dist/src/output/redact.js.map +1 -0
- package/dist/src/output/reporter.d.ts +9 -0
- package/dist/src/output/reporter.js +133 -0
- package/dist/src/output/reporter.js.map +1 -0
- package/dist/src/portable/commands.d.ts +120 -0
- package/dist/src/portable/commands.js +506 -0
- package/dist/src/portable/commands.js.map +1 -0
- package/dist/src/portable/materializer.d.ts +50 -0
- package/dist/src/portable/materializer.js +408 -0
- package/dist/src/portable/materializer.js.map +1 -0
- package/dist/src/portable/skills-cli.d.ts +43 -0
- package/dist/src/portable/skills-cli.js +148 -0
- package/dist/src/portable/skills-cli.js.map +1 -0
- package/dist/src/tui/components.d.ts +32 -0
- package/dist/src/tui/components.js +42 -0
- package/dist/src/tui/components.js.map +1 -0
- package/dist/src/tui/console-app-v4.d.ts +20 -0
- package/dist/src/tui/console-app-v4.js +2613 -0
- package/dist/src/tui/console-app-v4.js.map +1 -0
- package/dist/src/tui/controller-runtime.d.ts +11 -0
- package/dist/src/tui/controller-runtime.js +902 -0
- package/dist/src/tui/controller-runtime.js.map +1 -0
- package/dist/src/tui/controller.d.ts +367 -0
- package/dist/src/tui/controller.js +1724 -0
- package/dist/src/tui/controller.js.map +1 -0
- package/dist/src/tui/index.d.ts +13 -0
- package/dist/src/tui/index.js +14 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/keys.d.ts +12 -0
- package/dist/src/tui/keys.js +22 -0
- package/dist/src/tui/keys.js.map +1 -0
- package/dist/src/tui/layout.d.ts +12 -0
- package/dist/src/tui/layout.js +19 -0
- package/dist/src/tui/layout.js.map +1 -0
- package/dist/src/tui/model.d.ts +279 -0
- package/dist/src/tui/model.js +652 -0
- package/dist/src/tui/model.js.map +1 -0
- package/dist/src/tui/prompt.d.ts +8 -0
- package/dist/src/tui/prompt.js +242 -0
- package/dist/src/tui/prompt.js.map +1 -0
- package/dist/src/tui/router.d.ts +153 -0
- package/dist/src/tui/router.js +102 -0
- package/dist/src/tui/router.js.map +1 -0
- package/dist/src/tui/runner.d.ts +11 -0
- package/dist/src/tui/runner.js +71 -0
- package/dist/src/tui/runner.js.map +1 -0
- package/dist/src/tui/theme.d.ts +18 -0
- package/dist/src/tui/theme.js +20 -0
- package/dist/src/tui/theme.js.map +1 -0
- package/dist/src/tui/views.d.ts +57 -0
- package/dist/src/tui/views.js +173 -0
- package/dist/src/tui/views.js.map +1 -0
- package/dist/src/tui/wizard.d.ts +11 -0
- package/dist/src/tui/wizard.js +321 -0
- package/dist/src/tui/wizard.js.map +1 -0
- package/dist/src/types.d.ts +313 -0
- package/dist/src/types.js +33 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/active-marketplace-runtime-lock.d.ts +12 -0
- package/dist/src/utils/active-marketplace-runtime-lock.js +133 -0
- package/dist/src/utils/active-marketplace-runtime-lock.js.map +1 -0
- package/dist/src/utils/agent-version.d.ts +13 -0
- package/dist/src/utils/agent-version.js +172 -0
- package/dist/src/utils/agent-version.js.map +1 -0
- package/dist/src/utils/artifact-plan.d.ts +26 -0
- package/dist/src/utils/artifact-plan.js +444 -0
- package/dist/src/utils/artifact-plan.js.map +1 -0
- package/dist/src/utils/artifact-renderer.d.ts +124 -0
- package/dist/src/utils/artifact-renderer.js +442 -0
- package/dist/src/utils/artifact-renderer.js.map +1 -0
- package/dist/src/utils/artifact-sources.d.ts +8 -0
- package/dist/src/utils/artifact-sources.js +10 -0
- package/dist/src/utils/artifact-sources.js.map +1 -0
- package/dist/src/utils/aw-home-mutation-lock.d.ts +10 -0
- package/dist/src/utils/aw-home-mutation-lock.js +55 -0
- package/dist/src/utils/aw-home-mutation-lock.js.map +1 -0
- package/dist/src/utils/bundle-integrity.d.ts +3 -0
- package/dist/src/utils/bundle-integrity.js +88 -0
- package/dist/src/utils/bundle-integrity.js.map +1 -0
- package/dist/src/utils/bundle-layout.d.ts +4 -0
- package/dist/src/utils/bundle-layout.js +546 -0
- package/dist/src/utils/bundle-layout.js.map +1 -0
- package/dist/src/utils/catalog-digests.d.ts +8 -0
- package/dist/src/utils/catalog-digests.js +108 -0
- package/dist/src/utils/catalog-digests.js.map +1 -0
- package/dist/src/utils/catalog-manifest-v3.d.ts +2 -0
- package/dist/src/utils/catalog-manifest-v3.js +3 -0
- package/dist/src/utils/catalog-manifest-v3.js.map +1 -0
- package/dist/src/utils/catalog-manifest-v4.d.ts +5 -0
- package/dist/src/utils/catalog-manifest-v4.js +106 -0
- package/dist/src/utils/catalog-manifest-v4.js.map +1 -0
- package/dist/src/utils/catalog-public-error.d.ts +15 -0
- package/dist/src/utils/catalog-public-error.js +84 -0
- package/dist/src/utils/catalog-public-error.js.map +1 -0
- package/dist/src/utils/catalog-runtime-projection.d.ts +36 -0
- package/dist/src/utils/catalog-runtime-projection.js +172 -0
- package/dist/src/utils/catalog-runtime-projection.js.map +1 -0
- package/dist/src/utils/catalog-snapshot.d.ts +8 -0
- package/dist/src/utils/catalog-snapshot.js +12 -0
- package/dist/src/utils/catalog-snapshot.js.map +1 -0
- package/dist/src/utils/catalog-source-cache.d.ts +61 -0
- package/dist/src/utils/catalog-source-cache.js +276 -0
- package/dist/src/utils/catalog-source-cache.js.map +1 -0
- package/dist/src/utils/catalog-source-identity.d.ts +4 -0
- package/dist/src/utils/catalog-source-identity.js +118 -0
- package/dist/src/utils/catalog-source-identity.js.map +1 -0
- package/dist/src/utils/catalog-source-presentation.d.ts +1 -0
- package/dist/src/utils/catalog-source-presentation.js +32 -0
- package/dist/src/utils/catalog-source-presentation.js.map +1 -0
- package/dist/src/utils/catalog-source-references.d.ts +65 -0
- package/dist/src/utils/catalog-source-references.js +1418 -0
- package/dist/src/utils/catalog-source-references.js.map +1 -0
- package/dist/src/utils/catalog-sources.d.ts +39 -0
- package/dist/src/utils/catalog-sources.js +293 -0
- package/dist/src/utils/catalog-sources.js.map +1 -0
- package/dist/src/utils/codex-config.d.ts +124 -0
- package/dist/src/utils/codex-config.js +1011 -0
- package/dist/src/utils/codex-config.js.map +1 -0
- package/dist/src/utils/codex-project-surface.d.ts +3 -0
- package/dist/src/utils/codex-project-surface.js +49 -0
- package/dist/src/utils/codex-project-surface.js.map +1 -0
- package/dist/src/utils/codex-roles.d.ts +71 -0
- package/dist/src/utils/codex-roles.js +257 -0
- package/dist/src/utils/codex-roles.js.map +1 -0
- package/dist/src/utils/codex-skill-staging.d.ts +9 -0
- package/dist/src/utils/codex-skill-staging.js +8 -0
- package/dist/src/utils/codex-skill-staging.js.map +1 -0
- package/dist/src/utils/config-value.d.ts +3 -0
- package/dist/src/utils/config-value.js +23 -0
- package/dist/src/utils/config-value.js.map +1 -0
- package/dist/src/utils/dynamic-skill-tree.d.ts +32 -0
- package/dist/src/utils/dynamic-skill-tree.js +436 -0
- package/dist/src/utils/dynamic-skill-tree.js.map +1 -0
- package/dist/src/utils/file-rules.d.ts +1 -0
- package/dist/src/utils/file-rules.js +2 -0
- package/dist/src/utils/file-rules.js.map +1 -0
- package/dist/src/utils/git-catalog-provider.d.ts +7 -0
- package/dist/src/utils/git-catalog-provider.js +510 -0
- package/dist/src/utils/git-catalog-provider.js.map +1 -0
- package/dist/src/utils/hooks-contract.d.ts +1 -0
- package/dist/src/utils/hooks-contract.js +2 -0
- package/dist/src/utils/hooks-contract.js.map +1 -0
- package/dist/src/utils/json.d.ts +4 -0
- package/dist/src/utils/json.js +29 -0
- package/dist/src/utils/json.js.map +1 -0
- package/dist/src/utils/lifecycle-active-store.d.ts +175 -0
- package/dist/src/utils/lifecycle-active-store.js +1276 -0
- package/dist/src/utils/lifecycle-active-store.js.map +1 -0
- package/dist/src/utils/local-marketplace.d.ts +41 -0
- package/dist/src/utils/local-marketplace.js +317 -0
- package/dist/src/utils/local-marketplace.js.map +1 -0
- package/dist/src/utils/manifest.d.ts +14 -0
- package/dist/src/utils/manifest.js +36 -0
- package/dist/src/utils/manifest.js.map +1 -0
- package/dist/src/utils/marketplace.d.ts +3 -0
- package/dist/src/utils/marketplace.js +76 -0
- package/dist/src/utils/marketplace.js.map +1 -0
- package/dist/src/utils/multi-source-catalog.d.ts +72 -0
- package/dist/src/utils/multi-source-catalog.js +402 -0
- package/dist/src/utils/multi-source-catalog.js.map +1 -0
- package/dist/src/utils/native-cli.d.ts +75 -0
- package/dist/src/utils/native-cli.js +435 -0
- package/dist/src/utils/native-cli.js.map +1 -0
- package/dist/src/utils/orphan-marketplace-cleanup.d.ts +18 -0
- package/dist/src/utils/orphan-marketplace-cleanup.js +202 -0
- package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -0
- package/dist/src/utils/ownership.d.ts +130 -0
- package/dist/src/utils/ownership.js +766 -0
- package/dist/src/utils/ownership.js.map +1 -0
- package/dist/src/utils/path-catalog-provider.d.ts +7 -0
- package/dist/src/utils/path-catalog-provider.js +87 -0
- package/dist/src/utils/path-catalog-provider.js.map +1 -0
- package/dist/src/utils/paths.d.ts +41 -0
- package/dist/src/utils/paths.js +138 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/src/utils/platform-entries.d.ts +1 -0
- package/dist/src/utils/platform-entries.js +2 -0
- package/dist/src/utils/platform-entries.js.map +1 -0
- package/dist/src/utils/platform-support.d.ts +1 -0
- package/dist/src/utils/platform-support.js +2 -0
- package/dist/src/utils/platform-support.js.map +1 -0
- package/dist/src/utils/plugin-authoring-capabilities.d.ts +23 -0
- package/dist/src/utils/plugin-authoring-capabilities.js +37 -0
- package/dist/src/utils/plugin-authoring-capabilities.js.map +1 -0
- package/dist/src/utils/plugin-authoring-capabilities.json +92 -0
- package/dist/src/utils/plugin-config-write.d.ts +107 -0
- package/dist/src/utils/plugin-config-write.js +565 -0
- package/dist/src/utils/plugin-config-write.js.map +1 -0
- package/dist/src/utils/plugin-config.d.ts +396 -0
- package/dist/src/utils/plugin-config.js +1898 -0
- package/dist/src/utils/plugin-config.js.map +1 -0
- package/dist/src/utils/plugin-dependencies.d.ts +12 -0
- package/dist/src/utils/plugin-dependencies.js +162 -0
- package/dist/src/utils/plugin-dependencies.js.map +1 -0
- package/dist/src/utils/plugin-release.d.ts +2 -0
- package/dist/src/utils/plugin-release.js +2 -0
- package/dist/src/utils/plugin-release.js.map +1 -0
- package/dist/src/utils/plugin-script-contract.d.ts +1 -0
- package/dist/src/utils/plugin-script-contract.js +2 -0
- package/dist/src/utils/plugin-script-contract.js.map +1 -0
- package/dist/src/utils/plugin-scripts.d.ts +172 -0
- package/dist/src/utils/plugin-scripts.js +585 -0
- package/dist/src/utils/plugin-scripts.js.map +1 -0
- package/dist/src/utils/process-lock.d.ts +47 -0
- package/dist/src/utils/process-lock.js +532 -0
- package/dist/src/utils/process-lock.js.map +1 -0
- package/dist/src/utils/process-tree.d.ts +2 -0
- package/dist/src/utils/process-tree.js +2 -0
- package/dist/src/utils/process-tree.js.map +1 -0
- package/dist/src/utils/project-boundary.d.ts +21 -0
- package/dist/src/utils/project-boundary.js +95 -0
- package/dist/src/utils/project-boundary.js.map +1 -0
- package/dist/src/utils/rendered-contract.d.ts +8 -0
- package/dist/src/utils/rendered-contract.js +134 -0
- package/dist/src/utils/rendered-contract.js.map +1 -0
- package/dist/src/utils/runtime-skill-closure.d.ts +13 -0
- package/dist/src/utils/runtime-skill-closure.js +863 -0
- package/dist/src/utils/runtime-skill-closure.js.map +1 -0
- package/dist/src/utils/skill-authoring.d.ts +1 -0
- package/dist/src/utils/skill-authoring.js +2 -0
- package/dist/src/utils/skill-authoring.js.map +1 -0
- package/dist/src/utils/skill-frontmatter-capabilities.d.ts +201 -0
- package/dist/src/utils/skill-frontmatter-capabilities.js +5 -0
- package/dist/src/utils/skill-frontmatter-capabilities.js.map +1 -0
- package/dist/src/utils/skill-frontmatter-capabilities.json +200 -0
- package/dist/src/utils/skill-validation.d.ts +37 -0
- package/dist/src/utils/skill-validation.js +326 -0
- package/dist/src/utils/skill-validation.js.map +1 -0
- package/dist/src/utils/slash-commands.d.ts +1 -0
- package/dist/src/utils/slash-commands.js +2 -0
- package/dist/src/utils/slash-commands.js.map +1 -0
- package/dist/src/utils/state-paths.d.ts +13 -0
- package/dist/src/utils/state-paths.js +129 -0
- package/dist/src/utils/state-paths.js.map +1 -0
- package/dist/src/utils/target-eligibility.d.ts +7 -0
- package/dist/src/utils/target-eligibility.js +26 -0
- package/dist/src/utils/target-eligibility.js.map +1 -0
- package/dist/src/utils/target-order.d.ts +7 -0
- package/dist/src/utils/target-order.js +10 -0
- package/dist/src/utils/target-order.js.map +1 -0
- package/dist/src/utils/template-engine.d.ts +1 -0
- package/dist/src/utils/template-engine.js +2 -0
- package/dist/src/utils/template-engine.js.map +1 -0
- package/dist/src/utils/test-path-fence.d.ts +12 -0
- package/dist/src/utils/test-path-fence.js +31 -0
- package/dist/src/utils/test-path-fence.js.map +1 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { AgentVersionProbeResult, AgentVersionReasonCode, AgentVersionStatus, CodexProjectManagedKind, CommandAction, ManualNextStepKind, NextStepInstruction, NextStepsPayloadBoundary, PlatformName, RebuildActionEvent as SharedRebuildActionEvent, RebuildActionEventData as SharedRebuildActionEventData, Scope } from '../types.js';
|
|
2
|
+
export type OutputLevel = 'success' | 'info' | 'notice' | 'warning' | 'debug';
|
|
3
|
+
export type OutputTarget = 'stdout' | 'stderr' | 'debugLog';
|
|
4
|
+
export type NativeEventPhase = 'start' | 'success' | 'error';
|
|
5
|
+
export interface NativeMarketplaceEventData {
|
|
6
|
+
platform: PlatformName;
|
|
7
|
+
scope: Scope;
|
|
8
|
+
plugin: string;
|
|
9
|
+
marketplaceName: string;
|
|
10
|
+
marketplacePath: string;
|
|
11
|
+
operation: 'add' | 'list' | 'remove' | 'verify';
|
|
12
|
+
phase: NativeEventPhase;
|
|
13
|
+
errorCategory?: string;
|
|
14
|
+
suggestion?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface NativeRpcEventData {
|
|
17
|
+
platform: PlatformName;
|
|
18
|
+
scope: Scope;
|
|
19
|
+
plugin: string;
|
|
20
|
+
pluginId: string;
|
|
21
|
+
method: 'plugin/install' | 'plugin/uninstall' | 'codex plugin add' | 'codex plugin remove';
|
|
22
|
+
phase: NativeEventPhase;
|
|
23
|
+
durationMs: number;
|
|
24
|
+
nativeWriteSucceeded?: boolean;
|
|
25
|
+
errorCategory?: string;
|
|
26
|
+
suggestion?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface NativePostCheckEventData {
|
|
29
|
+
platform: PlatformName;
|
|
30
|
+
scope: Scope;
|
|
31
|
+
plugin: string;
|
|
32
|
+
pluginId: string;
|
|
33
|
+
operation: 'install' | 'uninstall';
|
|
34
|
+
phase: NativeEventPhase;
|
|
35
|
+
pluginEnabled: boolean | null;
|
|
36
|
+
configEntryPresent: boolean | null;
|
|
37
|
+
pluginInstalled: boolean | null;
|
|
38
|
+
activeCachePath: string | null;
|
|
39
|
+
errorCategory?: string;
|
|
40
|
+
suggestion?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface NativeSkippedEventData {
|
|
43
|
+
platform: PlatformName;
|
|
44
|
+
scope: Scope;
|
|
45
|
+
plugin: string;
|
|
46
|
+
reason: string;
|
|
47
|
+
requiresNativeRuntime: boolean;
|
|
48
|
+
repoManagedArtifactKinds: CodexProjectManagedKind[];
|
|
49
|
+
}
|
|
50
|
+
export type RebuildActionEventData = SharedRebuildActionEventData;
|
|
51
|
+
export type RebuildActionEvent = SharedRebuildActionEvent;
|
|
52
|
+
export type CommandEventType = 'native:marketplace' | 'native:rpc' | 'native:post-check' | 'native:skipped' | string;
|
|
53
|
+
export type CommandEventData = Record<string, unknown> | RebuildActionEventData | NativeMarketplaceEventData | NativeRpcEventData | NativePostCheckEventData | NativeSkippedEventData;
|
|
54
|
+
export interface CommandOutputSource {
|
|
55
|
+
platform?: PlatformName;
|
|
56
|
+
plugin?: string;
|
|
57
|
+
scope?: Scope;
|
|
58
|
+
action?: CommandAction | string;
|
|
59
|
+
}
|
|
60
|
+
export interface CommandEvent {
|
|
61
|
+
type: CommandEventType;
|
|
62
|
+
commandName?: string;
|
|
63
|
+
message?: string;
|
|
64
|
+
data?: CommandEventData;
|
|
65
|
+
source?: CommandOutputSource;
|
|
66
|
+
level?: OutputLevel;
|
|
67
|
+
target?: OutputTarget;
|
|
68
|
+
}
|
|
69
|
+
export interface CommandNotice {
|
|
70
|
+
level: OutputLevel;
|
|
71
|
+
message: string;
|
|
72
|
+
identity?: string;
|
|
73
|
+
target?: OutputTarget;
|
|
74
|
+
source?: CommandOutputSource;
|
|
75
|
+
}
|
|
76
|
+
export interface AgentVersionDiagnosticProjection {
|
|
77
|
+
platform: PlatformName;
|
|
78
|
+
command: string;
|
|
79
|
+
status: AgentVersionStatus;
|
|
80
|
+
detectedVersion?: string;
|
|
81
|
+
requiredMinVersion: string;
|
|
82
|
+
reasonCode?: AgentVersionReasonCode;
|
|
83
|
+
suggestedAction: string;
|
|
84
|
+
rawVersionOutput?: string;
|
|
85
|
+
details?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CommandReporter {
|
|
88
|
+
event: (event: CommandEvent) => void | Promise<void>;
|
|
89
|
+
notice: (notice: CommandNotice) => void | Promise<void>;
|
|
90
|
+
}
|
|
91
|
+
export interface DebugLogger {
|
|
92
|
+
readonly logFile?: string;
|
|
93
|
+
log: (event: CommandEvent) => void | Promise<void>;
|
|
94
|
+
flush?: () => void | Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
export declare function createAgentVersionSuggestedAction(result: AgentVersionProbeResult): string;
|
|
97
|
+
export declare function projectAgentVersionDiagnostic(result: AgentVersionProbeResult, options?: {
|
|
98
|
+
includeRawOutput?: boolean;
|
|
99
|
+
includeDetails?: boolean;
|
|
100
|
+
}): AgentVersionDiagnosticProjection;
|
|
101
|
+
export declare function createManualNextStep(label: string, description: string, options?: {
|
|
102
|
+
manualKind?: ManualNextStepKind;
|
|
103
|
+
}): NextStepInstruction;
|
|
104
|
+
export declare function createCliCommandNextStep(label: string, description: string, command: string): NextStepInstruction;
|
|
105
|
+
export declare function createUiActionNextStep(label: string, description: string, uiAction: string, command?: string): NextStepInstruction;
|
|
106
|
+
export declare function createLegacyNextStepText(step: NextStepInstruction): string;
|
|
107
|
+
export declare function dedupeNextSteps(steps: NextStepInstruction[]): NextStepInstruction[];
|
|
108
|
+
export declare function createNextStepsBoundary(steps: NextStepInstruction[], legacyNextSteps?: string[]): NextStepsPayloadBoundary;
|
|
109
|
+
export declare function createStructuredNextStepsBoundary(steps: NextStepInstruction[]): Pick<NextStepsPayloadBoundary, 'nextStepsSchemaVersion' | 'nextSteps'>;
|
|
110
|
+
export declare function formatNextStepForHuman(step: NextStepInstruction | string): string;
|
|
111
|
+
export declare function formatNextStepForUi(step: NextStepInstruction | string): string;
|
|
112
|
+
export declare function stripCommandFromNextStep(step: NextStepInstruction): NextStepInstruction;
|
|
113
|
+
export declare function createLegacyCommandNextStep(command: string, options?: {
|
|
114
|
+
label?: string;
|
|
115
|
+
description?: string;
|
|
116
|
+
uiAction?: string;
|
|
117
|
+
}): NextStepInstruction;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { getAgentVersionRequirement } from '../utils/agent-version.js';
|
|
2
|
+
export function createAgentVersionSuggestedAction(result) {
|
|
3
|
+
const requirement = getAgentVersionRequirement(result.platform);
|
|
4
|
+
if (result.status === 'missing') {
|
|
5
|
+
return `请安装 ${requirement.displayName},并确认 \`${requirement.command} --version\` 可用后重试。`;
|
|
6
|
+
}
|
|
7
|
+
if (result.status === 'tooOld') {
|
|
8
|
+
return `请将 ${requirement.displayName} 升级到 >= ${requirement.minVersion} 后重试。`;
|
|
9
|
+
}
|
|
10
|
+
if (result.status === 'supported') {
|
|
11
|
+
return `${requirement.displayName} 已满足 AW 插件写入最低版本要求。`;
|
|
12
|
+
}
|
|
13
|
+
return `请检查 \`${requirement.command} --version\` 输出,必要时重新安装或升级 ${requirement.displayName} 后重试。`;
|
|
14
|
+
}
|
|
15
|
+
export function projectAgentVersionDiagnostic(result, options = {}) {
|
|
16
|
+
return {
|
|
17
|
+
platform: result.platform,
|
|
18
|
+
command: result.command,
|
|
19
|
+
status: result.status,
|
|
20
|
+
...(result.detectedVersion ? { detectedVersion: result.detectedVersion } : {}),
|
|
21
|
+
requiredMinVersion: result.requiredMinVersion,
|
|
22
|
+
...(result.reasonCode ? { reasonCode: result.reasonCode } : {}),
|
|
23
|
+
suggestedAction: createAgentVersionSuggestedAction(result),
|
|
24
|
+
...(options.includeRawOutput && result.rawOutput.trim().length > 0
|
|
25
|
+
? { rawVersionOutput: result.rawOutput }
|
|
26
|
+
: {}),
|
|
27
|
+
...(options.includeDetails && result.details ? { details: result.details } : {}),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function ensureSentence(text) {
|
|
31
|
+
const normalized = text.trim();
|
|
32
|
+
if (normalized === '') {
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
return /[。!?]$/.test(normalized) ? normalized : `${normalized}。`;
|
|
36
|
+
}
|
|
37
|
+
export function createManualNextStep(label, description, options = {}) {
|
|
38
|
+
return {
|
|
39
|
+
kind: 'manual',
|
|
40
|
+
label,
|
|
41
|
+
description,
|
|
42
|
+
...(options.manualKind ? { manualKind: options.manualKind } : {}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function createCliCommandNextStep(label, description, command) {
|
|
46
|
+
return {
|
|
47
|
+
kind: 'cliCommand',
|
|
48
|
+
label,
|
|
49
|
+
description,
|
|
50
|
+
command,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function createUiActionNextStep(label, description, uiAction, command) {
|
|
54
|
+
return {
|
|
55
|
+
kind: 'uiAction',
|
|
56
|
+
label,
|
|
57
|
+
description,
|
|
58
|
+
uiAction,
|
|
59
|
+
...(command ? { command } : {}),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function createLegacyNextStepText(step) {
|
|
63
|
+
if (step.command) {
|
|
64
|
+
return `${step.label}:${step.command}`;
|
|
65
|
+
}
|
|
66
|
+
return step.description.trim() === '' ? step.label : `${step.label}:${step.description}`;
|
|
67
|
+
}
|
|
68
|
+
export function dedupeNextSteps(steps) {
|
|
69
|
+
const seen = new Set();
|
|
70
|
+
const deduped = [];
|
|
71
|
+
for (const step of steps) {
|
|
72
|
+
const key = [
|
|
73
|
+
step.kind,
|
|
74
|
+
step.label.trim(),
|
|
75
|
+
step.description.trim(),
|
|
76
|
+
step.uiAction ?? '',
|
|
77
|
+
step.command ?? '',
|
|
78
|
+
].join('\0');
|
|
79
|
+
if (seen.has(key)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
seen.add(key);
|
|
83
|
+
deduped.push(step);
|
|
84
|
+
}
|
|
85
|
+
return deduped;
|
|
86
|
+
}
|
|
87
|
+
export function createNextStepsBoundary(steps, legacyNextSteps) {
|
|
88
|
+
const nextSteps = dedupeNextSteps(steps);
|
|
89
|
+
const legacy = legacyNextSteps ?? [];
|
|
90
|
+
return {
|
|
91
|
+
nextStepsSchemaVersion: 1,
|
|
92
|
+
nextSteps,
|
|
93
|
+
...(legacy.length > 0 ? { legacyNextSteps: [...new Set(legacy)] } : {}),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function createStructuredNextStepsBoundary(steps) {
|
|
97
|
+
return {
|
|
98
|
+
nextStepsSchemaVersion: 1,
|
|
99
|
+
nextSteps: dedupeNextSteps(steps),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function formatNextStepForHuman(step) {
|
|
103
|
+
if (typeof step === 'string') {
|
|
104
|
+
return ensureSentence(step);
|
|
105
|
+
}
|
|
106
|
+
const label = ensureSentence(step.label);
|
|
107
|
+
if (step.command) {
|
|
108
|
+
return `${label}运行 ${step.command} 后,${ensureSentence(step.description)}`;
|
|
109
|
+
}
|
|
110
|
+
return `${label}${ensureSentence(step.description)}`;
|
|
111
|
+
}
|
|
112
|
+
export function formatNextStepForUi(step) {
|
|
113
|
+
if (typeof step === 'string') {
|
|
114
|
+
return step;
|
|
115
|
+
}
|
|
116
|
+
if (step.description.trim() === '') {
|
|
117
|
+
return step.label;
|
|
118
|
+
}
|
|
119
|
+
return `${step.label}:${step.description}`;
|
|
120
|
+
}
|
|
121
|
+
export function stripCommandFromNextStep(step) {
|
|
122
|
+
const base = {
|
|
123
|
+
label: step.label,
|
|
124
|
+
description: step.description,
|
|
125
|
+
};
|
|
126
|
+
if (step.kind === 'uiAction' && step.uiAction) {
|
|
127
|
+
return {
|
|
128
|
+
kind: 'uiAction',
|
|
129
|
+
...base,
|
|
130
|
+
uiAction: step.uiAction,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
kind: step.uiAction ? 'uiAction' : 'manual',
|
|
135
|
+
...base,
|
|
136
|
+
...(step.uiAction ? { uiAction: step.uiAction } : {}),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export function createLegacyCommandNextStep(command, options = {}) {
|
|
140
|
+
if (options.uiAction) {
|
|
141
|
+
return createUiActionNextStep(options.label ?? '继续处理', options.description ?? '可以进入下一步处理流程。', options.uiAction, command);
|
|
142
|
+
}
|
|
143
|
+
return createCliCommandNextStep(options.label ?? '继续处理', options.description ?? '可以进入下一步处理流程。', command);
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/output/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CommandEvent, CommandNotice } from './model.js';
|
|
2
|
+
export declare function projectTuiNotice(notice: CommandNotice): string;
|
|
3
|
+
export interface RebuildProgressCurrent {
|
|
4
|
+
target: string;
|
|
5
|
+
phase: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RebuildProgressSnapshot {
|
|
8
|
+
current?: RebuildProgressCurrent;
|
|
9
|
+
messages: string[];
|
|
10
|
+
startedAtMs?: number;
|
|
11
|
+
elapsedMs?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface RebuildProgressFeed {
|
|
14
|
+
addEvent: (event: CommandEvent) => void;
|
|
15
|
+
addNotice: (notice: CommandNotice) => void;
|
|
16
|
+
setCurrent: (current: RebuildProgressCurrent, message?: string) => void;
|
|
17
|
+
clearCurrent: () => void;
|
|
18
|
+
get: () => RebuildProgressSnapshot;
|
|
19
|
+
subscribe: (listener: (snapshot: RebuildProgressSnapshot) => void) => () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function createRebuildProgressFeed(limit?: number): RebuildProgressFeed;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
const ACTION_LABELS = {
|
|
2
|
+
'operation.lock': '获取操作锁',
|
|
3
|
+
'preflight.inspect': '检查当前组件',
|
|
4
|
+
'stale.cleanup': '清理过期组件',
|
|
5
|
+
'native.write': '写入平台插件',
|
|
6
|
+
'artifacts.write': '写入插件文件',
|
|
7
|
+
'active.prepare': '准备生命周期快照',
|
|
8
|
+
'active.discard': '丢弃生命周期快照',
|
|
9
|
+
'lifecycle.install': '运行安装生命周期',
|
|
10
|
+
'lifecycle.upgrade': '运行升级生命周期',
|
|
11
|
+
'lifecycle.uninstall': '运行卸载生命周期',
|
|
12
|
+
'active.promote': '启用生命周期快照',
|
|
13
|
+
'postcheck.inspect': '检查写入结果',
|
|
14
|
+
'marketplace.commit': '提交 marketplace generation',
|
|
15
|
+
'marketplace.rollback': '回滚 marketplace generation',
|
|
16
|
+
'recovery.cleanup': '清理失败写入',
|
|
17
|
+
'cleanup.owned': '清理 AW 组件',
|
|
18
|
+
'active.read': '读取生命周期快照',
|
|
19
|
+
'active.remove': '删除生命周期快照',
|
|
20
|
+
'active.release': '释放生命周期快照',
|
|
21
|
+
'operation.release': '释放操作锁',
|
|
22
|
+
};
|
|
23
|
+
const SAFE_PLUGIN_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
24
|
+
function safeNoticeSource(notice) {
|
|
25
|
+
const parts = [
|
|
26
|
+
notice.source?.platform === 'codex'
|
|
27
|
+
? 'Codex'
|
|
28
|
+
: notice.source?.platform === 'claude' ? 'Claude Code' : undefined,
|
|
29
|
+
typeof notice.source?.plugin === 'string' && SAFE_PLUGIN_NAME_PATTERN.test(notice.source.plugin)
|
|
30
|
+
? notice.source.plugin
|
|
31
|
+
: undefined,
|
|
32
|
+
notice.source?.scope === 'project'
|
|
33
|
+
? '当前项目'
|
|
34
|
+
: notice.source?.scope === 'user' ? '当前用户' : undefined,
|
|
35
|
+
].filter((part) => part !== undefined);
|
|
36
|
+
return parts.length > 0 ? parts.join(' / ') : undefined;
|
|
37
|
+
}
|
|
38
|
+
export function projectTuiNotice(notice) {
|
|
39
|
+
const source = safeNoticeSource(notice);
|
|
40
|
+
const kind = notice.level === 'warning' ? '警告' : '通知';
|
|
41
|
+
return `${kind}:${source ? `${source}:` : ''}收到${kind},详情请查看退出后的命令结果或调试日志。`;
|
|
42
|
+
}
|
|
43
|
+
function isRebuildActionEvent(event) {
|
|
44
|
+
if (event.type !== 'rebuild:action' || !event.source || !event.data)
|
|
45
|
+
return false;
|
|
46
|
+
const data = event.data;
|
|
47
|
+
return typeof event.source.plugin === 'string'
|
|
48
|
+
&& SAFE_PLUGIN_NAME_PATTERN.test(event.source.plugin)
|
|
49
|
+
&& (event.source.platform === 'codex' || event.source.platform === 'claude')
|
|
50
|
+
&& (event.source.scope === 'user' || event.source.scope === 'project')
|
|
51
|
+
&& typeof data.name === 'string'
|
|
52
|
+
&& Object.hasOwn(ACTION_LABELS, data.name)
|
|
53
|
+
&& (data.phase === 'start' || data.phase === 'success' || data.phase === 'failure');
|
|
54
|
+
}
|
|
55
|
+
function targetLabel(event) {
|
|
56
|
+
const platform = event.source.platform === 'codex' ? 'Codex' : 'Claude Code';
|
|
57
|
+
const scope = event.source.scope === 'project' ? '当前项目' : '当前用户';
|
|
58
|
+
return `${event.source.plugin} · ${platform}/${scope}`;
|
|
59
|
+
}
|
|
60
|
+
function actionLine(event) {
|
|
61
|
+
const target = targetLabel(event);
|
|
62
|
+
const action = ACTION_LABELS[event.data.name];
|
|
63
|
+
if (event.data.phase === 'start') {
|
|
64
|
+
return {
|
|
65
|
+
current: { target, phase: action },
|
|
66
|
+
line: `开始:${target} · ${action}`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const duration = `${Math.max(0, Math.round(event.data.durationMs))}ms`;
|
|
70
|
+
if (event.data.phase === 'success') {
|
|
71
|
+
return {
|
|
72
|
+
current: { target, phase: `${action}已完成` },
|
|
73
|
+
line: `完成:${target} · ${action} · ${duration}`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
current: { target, phase: `${action}失败` },
|
|
78
|
+
line: `失败:${target} · ${action}失败。 · ${duration} · 详细原因请查看退出后的命令结果或调试日志。`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export function createRebuildProgressFeed(limit = 50) {
|
|
82
|
+
let snapshot = { messages: [] };
|
|
83
|
+
const seenNoticeKeys = new Set();
|
|
84
|
+
const noticeKeyOrder = [];
|
|
85
|
+
const listeners = new Set();
|
|
86
|
+
function publish(next) {
|
|
87
|
+
snapshot = {
|
|
88
|
+
...(next.current ? { current: next.current } : {}),
|
|
89
|
+
messages: next.messages.slice(-limit),
|
|
90
|
+
};
|
|
91
|
+
for (const listener of listeners)
|
|
92
|
+
listener(snapshot);
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
addEvent(event) {
|
|
96
|
+
if (!isRebuildActionEvent(event))
|
|
97
|
+
return;
|
|
98
|
+
const entry = actionLine(event);
|
|
99
|
+
publish({ current: entry.current, messages: [...snapshot.messages, entry.line] });
|
|
100
|
+
},
|
|
101
|
+
addNotice(notice) {
|
|
102
|
+
const line = projectTuiNotice(notice);
|
|
103
|
+
const key = notice.identity ?? [
|
|
104
|
+
notice.level,
|
|
105
|
+
notice.source?.platform ?? '',
|
|
106
|
+
notice.source?.plugin ?? '',
|
|
107
|
+
notice.source?.scope ?? '',
|
|
108
|
+
notice.message,
|
|
109
|
+
].join(':');
|
|
110
|
+
if (seenNoticeKeys.has(key))
|
|
111
|
+
return;
|
|
112
|
+
seenNoticeKeys.add(key);
|
|
113
|
+
noticeKeyOrder.push(key);
|
|
114
|
+
while (noticeKeyOrder.length > limit) {
|
|
115
|
+
seenNoticeKeys.delete(noticeKeyOrder.shift());
|
|
116
|
+
}
|
|
117
|
+
publish({ ...snapshot, messages: [...snapshot.messages, line] });
|
|
118
|
+
},
|
|
119
|
+
setCurrent(current, message) {
|
|
120
|
+
publish({
|
|
121
|
+
current,
|
|
122
|
+
messages: message ? [...snapshot.messages, message] : snapshot.messages,
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
clearCurrent() {
|
|
126
|
+
seenNoticeKeys.clear();
|
|
127
|
+
noticeKeyOrder.length = 0;
|
|
128
|
+
publish({ messages: [] });
|
|
129
|
+
},
|
|
130
|
+
get: () => snapshot,
|
|
131
|
+
subscribe(listener) {
|
|
132
|
+
listeners.add(listener);
|
|
133
|
+
listener(snapshot);
|
|
134
|
+
return () => listeners.delete(listener);
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=rebuild-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebuild-progress.js","sourceRoot":"","sources":["../../../src/output/rebuild-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const SENSITIVE_KEY_PATTERN = /(token|password|passwd|secret|authorization|cookie|api[_-]?key|access[_-]?key|private[_-]?key|credential|session)/i;
|
|
2
|
+
const STRING_REDACTIONS = [
|
|
3
|
+
[/(authorization\s*[:=]\s*)(bearer\s+)?[^\s,;]+/gi, '$1$2[REDACTED]'],
|
|
4
|
+
[/(cookie\s*[:=]\s*)[^\r\n]+/gi, '$1[REDACTED]'],
|
|
5
|
+
[/((?:token|password|passwd|secret|api[_-]?key|access[_-]?key|private[_-]?key|credential)\s*[:=]\s*)[^\s,;&"']+/gi, '$1[REDACTED]'],
|
|
6
|
+
[/((?:TOKEN|PASSWORD|PASSWD|SECRET|API_KEY|ACCESS_KEY|PRIVATE_KEY|CREDENTIAL)=)[^\s,;&"']+/g, '$1[REDACTED]'],
|
|
7
|
+
];
|
|
8
|
+
function isSensitiveKey(key) {
|
|
9
|
+
return key !== undefined && SENSITIVE_KEY_PATTERN.test(key);
|
|
10
|
+
}
|
|
11
|
+
export function redactString(value) {
|
|
12
|
+
return STRING_REDACTIONS.reduce((next, [pattern, replacement]) => next.replace(pattern, replacement), value);
|
|
13
|
+
}
|
|
14
|
+
export function redactValue(value, key, seen = new WeakSet()) {
|
|
15
|
+
if (isSensitiveKey(key)) {
|
|
16
|
+
return '[REDACTED]';
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
return redactString(value);
|
|
20
|
+
}
|
|
21
|
+
if (value === null || typeof value !== 'object') {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
if (seen.has(value)) {
|
|
25
|
+
return '[Circular]';
|
|
26
|
+
}
|
|
27
|
+
seen.add(value);
|
|
28
|
+
if (Array.isArray(value)) {
|
|
29
|
+
return value.map((entry) => redactValue(entry, undefined, seen));
|
|
30
|
+
}
|
|
31
|
+
return Object.fromEntries(Object.entries(value).map(([entryKey, entryValue]) => [
|
|
32
|
+
entryKey,
|
|
33
|
+
redactValue(entryValue, entryKey, seen),
|
|
34
|
+
]));
|
|
35
|
+
}
|
|
36
|
+
export function stringifyRedacted(value) {
|
|
37
|
+
return JSON.stringify(redactValue(value));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=redact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/output/redact.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GACzB,oHAAoH,CAAC;AAEvH,MAAM,iBAAiB,GAA4B;IACjD,CAAC,iDAAiD,EAAE,gBAAgB,CAAC;IACrE,CAAC,8BAA8B,EAAE,cAAc,CAAC;IAChD,CAAC,iHAAiH,EAAE,cAAc,CAAC;IACnI,CAAC,2FAA2F,EAAE,cAAc,CAAC;CAC9G,CAAC;AAEF,SAAS,cAAc,CAAC,GAAuB;IAC7C,OAAO,GAAG,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EACpE,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAY,EAAE,OAAO,IAAI,OAAO,EAAU;IACpF,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;QAC/E,QAAQ;QACR,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC;KACxC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CliIo, CommandDiagnostics } from '../commands/runtime.js';
|
|
2
|
+
import type { CommandNotice, CommandReporter } from './model.js';
|
|
3
|
+
export declare function formatNotice(notice: CommandNotice): string;
|
|
4
|
+
export declare function formatWarningText(warning: string): string;
|
|
5
|
+
export declare function formatWarnings(warnings: string[], options?: {
|
|
6
|
+
actionableOnly?: boolean;
|
|
7
|
+
}): string[];
|
|
8
|
+
export declare function createIoReporter(io: CliIo, diagnostics: CommandDiagnostics): CommandReporter;
|
|
9
|
+
export declare function createNoopReporter(): CommandReporter;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { redactValue, stringifyRedacted } from './redact.js';
|
|
2
|
+
const PLATFORM_LABELS = {
|
|
3
|
+
codex: 'Codex',
|
|
4
|
+
claude: 'Claude Code',
|
|
5
|
+
};
|
|
6
|
+
function sanitizeHumanText(text) {
|
|
7
|
+
return text
|
|
8
|
+
.replaceAll('repo-managed', '当前仓库文件')
|
|
9
|
+
.replaceAll('app-server', '本地服务')
|
|
10
|
+
.replaceAll('RPC', '接口调用')
|
|
11
|
+
.replaceAll('rpc', '接口调用')
|
|
12
|
+
.replaceAll('marketplace', '插件目录')
|
|
13
|
+
.replaceAll('cache', '本地缓存')
|
|
14
|
+
.replaceAll('healthSource', '状态来源')
|
|
15
|
+
.replaceAll('config health', '配置状态')
|
|
16
|
+
.replaceAll('script health', '脚本状态')
|
|
17
|
+
.replaceAll('project scope', '当前项目')
|
|
18
|
+
.replaceAll('user scope', '当前用户');
|
|
19
|
+
}
|
|
20
|
+
function noticeIdentity(notice) {
|
|
21
|
+
return notice.identity ?? [
|
|
22
|
+
notice.level,
|
|
23
|
+
notice.source?.platform ?? '',
|
|
24
|
+
notice.source?.plugin ?? '',
|
|
25
|
+
notice.source?.scope ?? '',
|
|
26
|
+
notice.message,
|
|
27
|
+
].join(':');
|
|
28
|
+
}
|
|
29
|
+
function formatSource(notice) {
|
|
30
|
+
const parts = [
|
|
31
|
+
notice.source?.platform ? PLATFORM_LABELS[notice.source.platform] ?? notice.source.platform : undefined,
|
|
32
|
+
notice.source?.plugin,
|
|
33
|
+
notice.source?.scope ? (notice.source.scope === 'project' ? '当前项目' : '当前用户') : undefined,
|
|
34
|
+
].filter(Boolean);
|
|
35
|
+
return parts.length > 0 ? `${parts.join(' / ')}:` : '';
|
|
36
|
+
}
|
|
37
|
+
function formatEvent(event) {
|
|
38
|
+
const data = event.data ? ` ${stringifyRedacted(event.data)}` : '';
|
|
39
|
+
const message = event.message ? `:${event.message}` : '';
|
|
40
|
+
return `调试:${event.type}${message}${data}`;
|
|
41
|
+
}
|
|
42
|
+
function warningPrefix(level) {
|
|
43
|
+
return level === 'warning' ? '注意:' : '';
|
|
44
|
+
}
|
|
45
|
+
export function formatNotice(notice) {
|
|
46
|
+
const source = formatSource(notice);
|
|
47
|
+
const message = notice.level === 'warning'
|
|
48
|
+
? formatWarningText(notice.message)
|
|
49
|
+
: notice.message;
|
|
50
|
+
return `${warningPrefix(notice.level)}${source}${message}`;
|
|
51
|
+
}
|
|
52
|
+
function translateTrustWarning(message) {
|
|
53
|
+
if (message === '当前 repo trust 状态未知,project scope 会话可见性无法确定。' ||
|
|
54
|
+
message === '当前 repo trust 状态未知,部分 project scope 会话可见性无法确定。') {
|
|
55
|
+
return 'Codex 已写入当前仓库需要的项目文件;其中受信任状态影响的配置,在仓库被 Codex 信任前可能不会进入会话。';
|
|
56
|
+
}
|
|
57
|
+
if (message === '当前 repo 处于 untrusted 状态,project scope 产物不会进入会话。' ||
|
|
58
|
+
message === '当前 repo 处于 untrusted 状态,部分 project scope 产物不会进入会话。') {
|
|
59
|
+
return 'Codex 已写入当前仓库需要的项目文件;其中受信任状态影响的配置,在仓库被 Codex 信任前不会进入会话。';
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
export function formatWarningText(warning) {
|
|
64
|
+
const sourceMatch = warning.match(/^\[(codex|claude)\/([^\]]+)\]\s*(.+)$/);
|
|
65
|
+
if (sourceMatch) {
|
|
66
|
+
const [, platform, pluginName, rawMessage] = sourceMatch;
|
|
67
|
+
const translated = translateTrustWarning(rawMessage) ??
|
|
68
|
+
rawMessage;
|
|
69
|
+
return sanitizeHumanText(`${PLATFORM_LABELS[platform] ?? platform} / ${pluginName}:${translated}`);
|
|
70
|
+
}
|
|
71
|
+
return sanitizeHumanText(translateTrustWarning(warning) ??
|
|
72
|
+
warning
|
|
73
|
+
.replaceAll('plugin / marketplace', '插件 / 插件目录'));
|
|
74
|
+
}
|
|
75
|
+
function isActionableWarning(formattedWarning) {
|
|
76
|
+
return /请|失败|异常恢复|不会进入会话|可能不会进入会话|缺少|无法|重试|跳过/.test(formattedWarning);
|
|
77
|
+
}
|
|
78
|
+
export function formatWarnings(warnings, options = {}) {
|
|
79
|
+
const seen = new Set();
|
|
80
|
+
const lines = [];
|
|
81
|
+
for (const warning of warnings) {
|
|
82
|
+
const formatted = `注意:${formatWarningText(warning)}`;
|
|
83
|
+
if (options.actionableOnly && !isActionableWarning(formatted)) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (seen.has(formatted)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
seen.add(formatted);
|
|
90
|
+
lines.push(formatted);
|
|
91
|
+
}
|
|
92
|
+
return lines;
|
|
93
|
+
}
|
|
94
|
+
export function createIoReporter(io, diagnostics) {
|
|
95
|
+
const seenNotices = new Set();
|
|
96
|
+
return {
|
|
97
|
+
event: (event) => {
|
|
98
|
+
if (diagnostics.verbose) {
|
|
99
|
+
io.stderr(`${formatEvent(event)}\n`);
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
notice: (notice) => {
|
|
103
|
+
if (notice.level === 'debug' && !diagnostics.verbose) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const identity = noticeIdentity(notice);
|
|
107
|
+
if (seenNotices.has(identity)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
seenNotices.add(identity);
|
|
111
|
+
const target = notice.target ?? (notice.level === 'warning' ? 'stderr' : 'stdout');
|
|
112
|
+
const line = formatNotice({
|
|
113
|
+
...notice,
|
|
114
|
+
message: typeof notice.message === 'string'
|
|
115
|
+
? notice.message
|
|
116
|
+
: String(redactValue(notice.message)),
|
|
117
|
+
});
|
|
118
|
+
if (target === 'stderr') {
|
|
119
|
+
io.stderr(`${line}\n`);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
io.stdout(`${line}\n`);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function createNoopReporter() {
|
|
128
|
+
return {
|
|
129
|
+
event: () => { },
|
|
130
|
+
notice: () => { },
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/output/reporter.ts"],"names":[],"mappings":"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"}
|