@tacuchi/agent-workflow-cli 25.8.0 → 26.0.0
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/CHANGELOG.md +106 -0
- package/README.md +6 -3
- package/dist/adapters/git-cli.js +225 -17
- package/dist/adapters/git-cli.js.map +1 -1
- package/dist/adapters/node-file-system.js +48 -0
- package/dist/adapters/node-file-system.js.map +1 -1
- package/dist/application/amend-service.js +51 -14
- package/dist/application/amend-service.js.map +1 -1
- package/dist/application/branch-resolver.js +6 -3
- package/dist/application/branch-resolver.js.map +1 -1
- package/dist/application/capability/design-handler.js +218 -43
- package/dist/application/capability/design-handler.js.map +1 -1
- package/dist/application/capability/dispatcher.js +182 -19
- package/dist/application/capability/dispatcher.js.map +1 -1
- package/dist/application/capability/durable-effect.js +3 -0
- package/dist/application/capability/durable-effect.js.map +1 -1
- package/dist/application/capability/readiness.js +8 -54
- package/dist/application/capability/readiness.js.map +1 -1
- package/dist/application/capability/resolution.js +124 -192
- package/dist/application/capability/resolution.js.map +1 -1
- package/dist/application/check-branch-service.js +158 -19
- package/dist/application/check-branch-service.js.map +1 -1
- package/dist/application/checkpoint/markdown.js +2 -2
- package/dist/application/checkpoint/markdown.js.map +1 -1
- package/dist/application/checkpoint/state-reader.js +12 -0
- package/dist/application/checkpoint/state-reader.js.map +1 -1
- package/dist/application/checkpoint-service.js +12 -4
- package/dist/application/checkpoint-service.js.map +1 -1
- package/dist/application/checkpoint-write-service.js +91 -17
- package/dist/application/checkpoint-write-service.js.map +1 -1
- package/dist/application/claims-ledger.js +137 -11
- package/dist/application/claims-ledger.js.map +1 -1
- package/dist/application/claims-recovery.js +85 -44
- package/dist/application/claims-recovery.js.map +1 -1
- package/dist/application/database-tool-catalog.js +33 -0
- package/dist/application/database-tool-catalog.js.map +1 -1
- package/dist/application/design/consumer-document.js +2 -2
- package/dist/application/design/consumer-document.js.map +1 -1
- package/dist/application/design/design-content-gate-service.js +20 -2
- package/dist/application/design/design-content-gate-service.js.map +1 -1
- package/dist/application/design/design-gate-service.js +2 -0
- package/dist/application/design/design-gate-service.js.map +1 -1
- package/dist/application/design/design-index-service.js +4 -0
- package/dist/application/design/design-index-service.js.map +1 -1
- package/dist/application/design/design-publish-service.js +1 -4
- package/dist/application/design/design-publish-service.js.map +1 -1
- package/dist/application/design/design-record-service.js +13 -7
- package/dist/application/design/design-record-service.js.map +1 -1
- package/dist/application/design/design-resolver-service.js +22 -3
- package/dist/application/design/design-resolver-service.js.map +1 -1
- package/dist/application/design/design-simple-service.js +24 -5
- package/dist/application/design/design-simple-service.js.map +1 -1
- package/dist/application/design/digest.js +41 -0
- package/dist/application/design/digest.js.map +1 -0
- package/dist/application/dev-only-services.js +166 -20
- package/dist/application/dev-only-services.js.map +1 -1
- package/dist/application/doc-branch-ledger.js +145 -0
- package/dist/application/doc-branch-ledger.js.map +1 -0
- package/dist/application/docs-canon-service.js +1 -1
- package/dist/application/docs-canon-service.js.map +1 -1
- package/dist/application/doctor/dist-integrity.js +113 -0
- package/dist/application/doctor/dist-integrity.js.map +1 -0
- package/dist/application/doctor/hosts.js +5 -2
- package/dist/application/doctor/hosts.js.map +1 -1
- package/dist/application/doctor/prepare.js +3 -3
- package/dist/application/doctor/prepare.js.map +1 -1
- package/dist/application/doctor/provider-installation.js +39 -19
- package/dist/application/doctor/provider-installation.js.map +1 -1
- package/dist/application/doctor/provider-mcps.js +9 -1
- package/dist/application/doctor/provider-mcps.js.map +1 -1
- package/dist/application/doctor/provider-skills.js +29 -115
- package/dist/application/doctor/provider-skills.js.map +1 -1
- package/dist/application/doctor/provider-visibility.js +76 -3
- package/dist/application/doctor/provider-visibility.js.map +1 -1
- package/dist/application/doctor/provider-workspace-block.js +156 -0
- package/dist/application/doctor/provider-workspace-block.js.map +1 -0
- package/dist/application/doctor/repair-runner.js +36 -39
- package/dist/application/doctor/repair-runner.js.map +1 -1
- package/dist/application/doctor/report.js +24 -4
- package/dist/application/doctor/report.js.map +1 -1
- package/dist/application/export-catalog-check.js +200 -0
- package/dist/application/export-catalog-check.js.map +1 -0
- package/dist/application/export-service.js +716 -79
- package/dist/application/export-service.js.map +1 -1
- package/dist/application/fix-git-service.js +285 -64
- package/dist/application/fix-git-service.js.map +1 -1
- package/dist/application/flow/advance.js +202 -25
- package/dist/application/flow/advance.js.map +1 -1
- package/dist/application/flow/annul-service.js +3 -1
- package/dist/application/flow/annul-service.js.map +1 -1
- package/dist/application/flow/batch-commit.js +189 -0
- package/dist/application/flow/batch-commit.js.map +1 -0
- package/dist/application/flow/checkout-observation.js +63 -10
- package/dist/application/flow/checkout-observation.js.map +1 -1
- package/dist/application/flow/close-artifacts.js +105 -0
- package/dist/application/flow/close-artifacts.js.map +1 -0
- package/dist/application/flow/close-at-boundary.js +25 -14
- package/dist/application/flow/close-at-boundary.js.map +1 -1
- package/dist/application/flow/close-document-guidance.js +70 -0
- package/dist/application/flow/close-document-guidance.js.map +1 -0
- package/dist/application/flow/flow-service.js +46 -3
- package/dist/application/flow/flow-service.js.map +1 -1
- package/dist/application/flow/internal-actions.js +300 -82
- package/dist/application/flow/internal-actions.js.map +1 -1
- package/dist/application/flow/internal-drive.js +24 -1
- package/dist/application/flow/internal-drive.js.map +1 -1
- package/dist/application/flow/plan-entry.js +82 -0
- package/dist/application/flow/plan-entry.js.map +1 -0
- package/dist/application/flow/prove.js +32 -1
- package/dist/application/flow/prove.js.map +1 -1
- package/dist/application/flow/quick-checkouts.js +48 -0
- package/dist/application/flow/quick-checkouts.js.map +1 -0
- package/dist/application/flow/reinfer-batch.js +177 -0
- package/dist/application/flow/reinfer-batch.js.map +1 -0
- package/dist/application/flow/reopen-run.js +12 -5
- package/dist/application/flow/reopen-run.js.map +1 -1
- package/dist/application/flow/run-state-service.js +2 -0
- package/dist/application/flow/run-state-service.js.map +1 -1
- package/dist/application/flow/submit.js +584 -117
- package/dist/application/flow/submit.js.map +1 -1
- package/dist/application/generate-launch-service.js +16 -6
- package/dist/application/generate-launch-service.js.map +1 -1
- package/dist/application/git-flow-service.js +34 -3
- package/dist/application/git-flow-service.js.map +1 -1
- package/dist/application/history-publications.js +24 -0
- package/dist/application/history-publications.js.map +1 -1
- package/dist/application/history-reconcile-service.js +45 -0
- package/dist/application/history-reconcile-service.js.map +1 -0
- package/dist/application/history-table.js +61 -12
- package/dist/application/history-table.js.map +1 -1
- package/dist/application/history-update-service.js +25 -4
- package/dist/application/history-update-service.js.map +1 -1
- package/dist/application/hook-branch-check.js +25 -3
- package/dist/application/hook-branch-check.js.map +1 -1
- package/dist/application/hook-git-commit-advisor.js +3 -4
- package/dist/application/hook-git-commit-advisor.js.map +1 -1
- package/dist/application/hook-turn-start.js +51 -0
- package/dist/application/hook-turn-start.js.map +1 -0
- package/dist/application/host-memory/codex.js +1 -1
- package/dist/application/host-memory/codex.js.map +1 -1
- package/dist/application/hub-registry.js +135 -0
- package/dist/application/hub-registry.js.map +1 -0
- package/dist/application/local-proposal.js +72 -19
- package/dist/application/local-proposal.js.map +1 -1
- package/dist/application/mcp-host-reader.js +1 -1
- package/dist/application/mcp-host-reader.js.map +1 -1
- package/dist/application/mcp-host-writer.js +16 -10
- package/dist/application/mcp-host-writer.js.map +1 -1
- package/dist/application/merge-state-service.js +150 -34
- package/dist/application/merge-state-service.js.map +1 -1
- package/dist/application/multiroot/claude.js +17 -10
- package/dist/application/multiroot/claude.js.map +1 -1
- package/dist/application/multiroot/codex.js +17 -11
- package/dist/application/multiroot/codex.js.map +1 -1
- package/dist/application/multiroot-service.js +52 -28
- package/dist/application/multiroot-service.js.map +1 -1
- package/dist/application/parsers/execution-batches.js +64 -0
- package/dist/application/parsers/execution-batches.js.map +1 -0
- package/dist/application/parsers/phases.js +23 -2
- package/dist/application/parsers/phases.js.map +1 -1
- package/dist/application/parsers/project-block.js +146 -17
- package/dist/application/parsers/project-block.js.map +1 -1
- package/dist/application/parsers/tasks.js +16 -2
- package/dist/application/parsers/tasks.js.map +1 -1
- package/dist/application/parsers/toml.js +19 -0
- package/dist/application/parsers/toml.js.map +1 -0
- package/dist/application/paths-service.js +13 -16
- package/dist/application/paths-service.js.map +1 -1
- package/dist/application/persist-service.js +118 -5
- package/dist/application/persist-service.js.map +1 -1
- package/dist/application/plan-exec-batch-service.js +162 -22
- package/dist/application/plan-exec-batch-service.js.map +1 -1
- package/dist/application/plan-exec-decision-service.js +61 -12
- package/dist/application/plan-exec-decision-service.js.map +1 -1
- package/dist/application/plan-exec-plan-diff.js +105 -0
- package/dist/application/plan-exec-plan-diff.js.map +1 -0
- package/dist/application/plan-lint-service.js +33 -5
- package/dist/application/plan-lint-service.js.map +1 -1
- package/dist/application/plan-passes.js +41 -0
- package/dist/application/plan-passes.js.map +1 -0
- package/dist/application/preparation-receipts.js +58 -0
- package/dist/application/preparation-receipts.js.map +1 -0
- package/dist/application/project-md-upsert-service.js +191 -52
- package/dist/application/project-md-upsert-service.js.map +1 -1
- package/dist/application/project-tab-data.js +40 -10
- package/dist/application/project-tab-data.js.map +1 -1
- package/dist/application/release-data/artifacts.js +15 -7
- package/dist/application/release-data/artifacts.js.map +1 -1
- package/dist/application/release-data/bundles.js +52 -6
- package/dist/application/release-data/bundles.js.map +1 -1
- package/dist/application/release-data/common.js +2 -2
- package/dist/application/release-data/common.js.map +1 -1
- package/dist/application/release-data/rollback.js +7 -0
- package/dist/application/release-data/rollback.js.map +1 -0
- package/dist/application/release-data/sessions.js +2 -2
- package/dist/application/release-data/sessions.js.map +1 -1
- package/dist/application/release-pass-ledger.js +1 -1
- package/dist/application/render/history-row.js +2 -0
- package/dist/application/render/history-row.js.map +1 -1
- package/dist/application/render/project-block.js +28 -11
- package/dist/application/render/project-block.js.map +1 -1
- package/dist/application/reseal-service.js +1 -0
- package/dist/application/reseal-service.js.map +1 -1
- package/dist/application/resume-service.js +55 -8
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/retirement/apply.js +25 -7
- package/dist/application/retirement/apply.js.map +1 -1
- package/dist/application/retirement/attribution.js +122 -50
- package/dist/application/retirement/attribution.js.map +1 -1
- package/dist/application/retirement/prepare.js +17 -11
- package/dist/application/retirement/prepare.js.map +1 -1
- package/dist/application/retirement/preview.js +2 -1
- package/dist/application/retirement/preview.js.map +1 -1
- package/dist/application/self/clean-legacy.js +1 -2
- package/dist/application/self/clean-legacy.js.map +1 -1
- package/dist/application/self/codex-plugin.js +1 -1
- package/dist/application/self/codex-plugin.js.map +1 -1
- package/dist/application/self/host-states.js +3 -3
- package/dist/application/self/host-states.js.map +1 -1
- package/dist/application/self/install-hooks.js +1 -1
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.js +5 -49
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/mcp-config.js +19 -11
- package/dist/application/self/mcp-config.js.map +1 -1
- package/dist/application/self/opencode-plugin.js +1 -0
- package/dist/application/self/opencode-plugin.js.map +1 -1
- package/dist/application/self/skill-files.js +29 -0
- package/dist/application/self/skill-files.js.map +1 -0
- package/dist/application/self/uninstall.js +1 -1
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/semantic-operation/protocol.js +66 -5
- package/dist/application/semantic-operation/protocol.js.map +1 -1
- package/dist/application/session-archive-service.js +113 -0
- package/dist/application/session-archive-service.js.map +1 -0
- package/dist/application/session-binding-service.js +35 -0
- package/dist/application/session-binding-service.js.map +1 -1
- package/dist/application/session-close-service.js +390 -54
- package/dist/application/session-close-service.js.map +1 -1
- package/dist/application/session-create-service.js +97 -5
- package/dist/application/session-create-service.js.map +1 -1
- package/dist/application/session-custody-recorder.js +15 -12
- package/dist/application/session-custody-recorder.js.map +1 -1
- package/dist/application/session-custody-service.js +1 -0
- package/dist/application/session-custody-service.js.map +1 -1
- package/dist/application/session-narrative.js +42 -12
- package/dist/application/session-narrative.js.map +1 -1
- package/dist/application/session-pause-service.js +46 -0
- package/dist/application/session-pause-service.js.map +1 -0
- package/dist/application/session-resolver.js +36 -11
- package/dist/application/session-resolver.js.map +1 -1
- package/dist/application/session-resume-service.js +134 -13
- package/dist/application/session-resume-service.js.map +1 -1
- package/dist/application/sessions-service.js +4 -0
- package/dist/application/sessions-service.js.map +1 -1
- package/dist/application/sessions-sweep-service.js +77 -0
- package/dist/application/sessions-sweep-service.js.map +1 -0
- package/dist/application/settle-service.js +3 -1
- package/dist/application/settle-service.js.map +1 -1
- package/dist/application/skills-resolver-service.js +6 -92
- package/dist/application/skills-resolver-service.js.map +1 -1
- package/dist/application/source-add-service.js +37 -0
- package/dist/application/source-add-service.js.map +1 -0
- package/dist/application/source-boundary-policy.js +105 -8
- package/dist/application/source-boundary-policy.js.map +1 -1
- package/dist/application/source-pipeline.js +68 -0
- package/dist/application/source-pipeline.js.map +1 -0
- package/dist/application/source-remove-service.js +15 -3
- package/dist/application/source-remove-service.js.map +1 -1
- package/dist/application/sources-service.js +71 -16
- package/dist/application/sources-service.js.map +1 -1
- package/dist/application/status-service.js +55 -5
- package/dist/application/status-service.js.map +1 -1
- package/dist/application/unit-dependencies.js +100 -0
- package/dist/application/unit-dependencies.js.map +1 -0
- package/dist/application/unit-membership.js +37 -0
- package/dist/application/unit-membership.js.map +1 -0
- package/dist/application/unit-residue.js +72 -0
- package/dist/application/unit-residue.js.map +1 -0
- package/dist/application/visibility-doctor-service.js +66 -4
- package/dist/application/visibility-doctor-service.js.map +1 -1
- package/dist/application/working-branch-service.js +6 -0
- package/dist/application/working-branch-service.js.map +1 -1
- package/dist/application/workline-graph.js +1 -1
- package/dist/application/workline-graph.js.map +1 -1
- package/dist/application/workline-index-service.js +118 -17
- package/dist/application/workline-index-service.js.map +1 -1
- package/dist/application/workspace-commit-service.js +218 -0
- package/dist/application/workspace-commit-service.js.map +1 -0
- package/dist/application/workspace-init-service.js +64 -34
- package/dist/application/workspace-init-service.js.map +1 -1
- package/dist/application/workspace-local-config.js +90 -0
- package/dist/application/workspace-local-config.js.map +1 -0
- package/dist/application/workspace-materialization-service.js +52 -3
- package/dist/application/workspace-materialization-service.js.map +1 -1
- package/dist/application/workspace-migrate/apply.js +525 -4
- package/dist/application/workspace-migrate/apply.js.map +1 -1
- package/dist/application/workspace-migrate/markers.js +9 -6
- package/dist/application/workspace-migrate/markers.js.map +1 -1
- package/dist/application/workspace-migrate/plan.js +97 -5
- package/dist/application/workspace-migrate/plan.js.map +1 -1
- package/dist/application/workspace-move-service.js +270 -0
- package/dist/application/workspace-move-service.js.map +1 -0
- package/dist/application/workspace-untrack-service.js +28 -0
- package/dist/application/workspace-untrack-service.js.map +1 -0
- package/dist/application/worktree-service.js +654 -105
- package/dist/application/worktree-service.js.map +1 -1
- package/dist/cli/ascii.js +2 -0
- package/dist/cli/ascii.js.map +1 -1
- package/dist/cli/commands/add-source.js +38 -0
- package/dist/cli/commands/add-source.js.map +1 -0
- package/dist/cli/commands/amend.js +14 -3
- package/dist/cli/commands/amend.js.map +1 -1
- package/dist/cli/commands/capability.js +23 -4
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/designs.js +14 -5
- package/dist/cli/commands/designs.js.map +1 -1
- package/dist/cli/commands/dev-only.js +19 -6
- package/dist/cli/commands/dev-only.js.map +1 -1
- package/dist/cli/commands/doc-branch.js +184 -0
- package/dist/cli/commands/doc-branch.js.map +1 -0
- package/dist/cli/commands/doctor.js +5 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/export.js +78 -18
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/fix-git.js +89 -14
- package/dist/cli/commands/fix-git.js.map +1 -1
- package/dist/cli/commands/flow.js +120 -15
- package/dist/cli/commands/flow.js.map +1 -1
- package/dist/cli/commands/generate-launch.js +14 -2
- package/dist/cli/commands/generate-launch.js.map +1 -1
- package/dist/cli/commands/history-update.js +1 -1
- package/dist/cli/commands/history-update.js.map +1 -1
- package/dist/cli/commands/history.js +14 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/hook.js +15 -2
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/index.js +18 -5
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/merge-state.js +2 -2
- package/dist/cli/commands/merge-state.js.map +1 -1
- package/dist/cli/commands/persist.js +6 -5
- package/dist/cli/commands/persist.js.map +1 -1
- package/dist/cli/commands/project-md-upsert.js +5 -3
- package/dist/cli/commands/project-md-upsert.js.map +1 -1
- package/dist/cli/commands/release-pass.js +3 -3
- package/dist/cli/commands/release-pass.js.map +1 -1
- package/dist/cli/commands/resume.js +12 -3
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/self.js +8 -24
- package/dist/cli/commands/self.js.map +1 -1
- package/dist/cli/commands/session-close.js +64 -9
- package/dist/cli/commands/session-close.js.map +1 -1
- package/dist/cli/commands/session-create.js +4 -2
- package/dist/cli/commands/session-create.js.map +1 -1
- package/dist/cli/commands/session-pause.js +14 -0
- package/dist/cli/commands/session-pause.js.map +1 -0
- package/dist/cli/commands/sessions.js +16 -3
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/commands/set-branch.js +28 -4
- package/dist/cli/commands/set-branch.js.map +1 -1
- package/dist/cli/commands/set-edit-mode.js +20 -0
- package/dist/cli/commands/set-edit-mode.js.map +1 -0
- package/dist/cli/commands/set-pipeline.js +35 -0
- package/dist/cli/commands/set-pipeline.js.map +1 -0
- package/dist/cli/commands/skills.js +4 -11
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/sources.js +4 -0
- package/dist/cli/commands/sources.js.map +1 -1
- package/dist/cli/commands/status.js +35 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/unknown-flags.js +1 -0
- package/dist/cli/commands/unknown-flags.js.map +1 -1
- package/dist/cli/commands/visibility.js +1 -0
- package/dist/cli/commands/visibility.js.map +1 -1
- package/dist/cli/commands/workspace-commit.js +62 -0
- package/dist/cli/commands/workspace-commit.js.map +1 -0
- package/dist/cli/commands/workspace-init.js +39 -2
- package/dist/cli/commands/workspace-init.js.map +1 -1
- package/dist/cli/commands/workspace-migrate.js +31 -3
- package/dist/cli/commands/workspace-migrate.js.map +1 -1
- package/dist/cli/commands/workspace-move.js +42 -0
- package/dist/cli/commands/workspace-move.js.map +1 -0
- package/dist/cli/commands/worktree.js +4 -4
- package/dist/cli/commands/worktree.js.map +1 -1
- package/dist/cli/context-id.js +6 -0
- package/dist/cli/context-id.js.map +1 -1
- package/dist/cli/full-cli.js +555 -0
- package/dist/cli/full-cli.js.map +1 -0
- package/dist/cli/help-groups.js +76 -19
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/hook-stdin-cache.js +12 -0
- package/dist/cli/hook-stdin-cache.js.map +1 -0
- package/dist/cli/main.js +47 -453
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/parser.js +4 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/app.js +3 -4
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +2 -13
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/components/tabs-config.js +1 -2
- package/dist/cli/tui/components/tabs-config.js.map +1 -1
- package/dist/cli/tui/components/workspace-init-form.js +4 -1
- package/dist/cli/tui/components/workspace-init-form.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +6 -1
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +4 -3
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +7 -2
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/cli/tui/tui-prefs.js +2 -0
- package/dist/cli/tui/tui-prefs.js.map +1 -1
- package/dist/dist-manifest.json +3973 -0
- package/dist/domain/capability/protocol.js +3 -1
- package/dist/domain/capability/protocol.js.map +1 -1
- package/dist/domain/decision-note.js +13 -0
- package/dist/domain/decision-note.js.map +1 -1
- package/dist/domain/design/artifact.js +22 -3
- package/dist/domain/design/artifact.js.map +1 -1
- package/dist/domain/design/capability.js +1 -0
- package/dist/domain/design/capability.js.map +1 -1
- package/dist/domain/design/expansion.js +1 -1
- package/dist/domain/design/expansion.js.map +1 -1
- package/dist/domain/design/maturity.js +16 -0
- package/dist/domain/design/maturity.js.map +1 -1
- package/dist/domain/design/reference.js +5 -0
- package/dist/domain/design/reference.js.map +1 -1
- package/dist/domain/doctor/operations.js +20 -12
- package/dist/domain/doctor/operations.js.map +1 -1
- package/dist/domain/effective-contract.js +3 -1
- package/dist/domain/effective-contract.js.map +1 -1
- package/dist/domain/elicitation.js +1 -1
- package/dist/domain/flow/answer.js +265 -130
- package/dist/domain/flow/answer.js.map +1 -1
- package/dist/domain/flow/authority.js +194 -37
- package/dist/domain/flow/authority.js.map +1 -1
- package/dist/domain/flow/batch-review.js +65 -0
- package/dist/domain/flow/batch-review.js.map +1 -0
- package/dist/domain/flow/decision-schema.js +47 -0
- package/dist/domain/flow/decision-schema.js.map +1 -0
- package/dist/domain/flow/directive.js +16 -0
- package/dist/domain/flow/directive.js.map +1 -1
- package/dist/domain/flow/execution-result.js +91 -2
- package/dist/domain/flow/execution-result.js.map +1 -1
- package/dist/domain/flow/run-state.js +352 -24
- package/dist/domain/flow/run-state.js.map +1 -1
- package/dist/domain/flow/test-run-evidence.js +285 -0
- package/dist/domain/flow/test-run-evidence.js.map +1 -0
- package/dist/domain/flow/unchanged-phase.js +15 -0
- package/dist/domain/flow/unchanged-phase.js.map +1 -0
- package/dist/domain/harnesses.js +14 -5
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/isolation-unit.js +2 -2
- package/dist/domain/isolation-unit.js.map +1 -1
- package/dist/domain/lineage.js +7 -2
- package/dist/domain/lineage.js.map +1 -1
- package/dist/domain/obligation-correspondence.js +4 -2
- package/dist/domain/obligation-correspondence.js.map +1 -1
- package/dist/domain/plan-handoff.js +5 -0
- package/dist/domain/plan-handoff.js.map +1 -0
- package/dist/domain/proposal.js +18 -7
- package/dist/domain/proposal.js.map +1 -1
- package/dist/domain/reservation.js +5 -3
- package/dist/domain/reservation.js.map +1 -1
- package/dist/domain/retirement/proposal.js +1 -0
- package/dist/domain/retirement/proposal.js.map +1 -1
- package/dist/domain/session/custody.js +10 -6
- package/dist/domain/session/custody.js.map +1 -1
- package/dist/domain/session/narrative.js +4 -1
- package/dist/domain/session/narrative.js.map +1 -1
- package/dist/domain/skills.js +4 -6
- package/dist/domain/skills.js.map +1 -1
- package/dist/domain/sql-lexer.js +1 -1
- package/dist/domain/sql-lexer.js.map +1 -1
- package/dist/runtime/namespace-resolver.js +4 -0
- package/dist/runtime/namespace-resolver.js.map +1 -1
- package/dist/runtime/workline-marker.js +35 -8
- package/dist/runtime/workline-marker.js.map +1 -1
- package/dist/runtime/workspace-resolution.js +123 -0
- package/dist/runtime/workspace-resolution.js.map +1 -0
- package/package.json +6 -5
- package/skills/w/SKILL.md +12 -17
- package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +1 -1
- package/skills/w/artifacts/artifacts-core/SCRIPTS.rollback.sql +8 -0
- package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +4 -8
- package/skills/w/commands/export-diagrams.md +3 -3
- package/skills/w/commands/export-manuals.md +6 -6
- package/skills/w/commands/export-reports.md +3 -3
- package/skills/w/commands/export-scripts.md +5 -5
- package/skills/w/commands/fix-git.md +12 -13
- package/skills/w/commands/persist.md +2 -2
- package/skills/w/commands/plan-exec.md +4 -2
- package/skills/w/commands/spec-new.md +1 -1
- package/skills/w/commands/workspace-init.md +2 -0
- package/skills/w/context/MANIFEST.json +1 -1
- package/skills/w/exports/README.md +4 -4
- package/skills/w/exports/export-diagrams/EXPORT.md +4 -4
- package/skills/w/exports/export-manuals/EXPORT.md +14 -16
- package/skills/w/exports/export-reports/EXPORT.md +3 -3
- package/skills/w/exports/export-scripts/EXPORT.md +46 -22
- package/skills/w/harness/HARNESS.md +4 -7
- package/skills/w/hooks/hooks.template.json +6 -4
- package/skills/w/loops/CHASSIS.md +12 -6
- package/skills/w/loops/CODE-POLICIES.md +8 -5
- package/skills/w/loops/README.md +2 -2
- package/skills/w/loops/plan-exec-loop/LOOP.md +23 -22
- package/skills/w/loops/plan-new-loop/LOOP.md +23 -31
- package/skills/w/loops/plan-refine-loop/LOOP.md +8 -2
- package/skills/w/loops/quick-loop/LOOP.md +7 -6
- package/skills/w/loops/spec-refine-loop/LOOP.md +1 -1
- package/skills/w/modules/DESIGN-REFERENCES.md +9 -11
- package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +4 -4
- package/skills/w/modules/SESSION-NUMBERING.md +2 -0
- package/skills/w/roles/README.md +11 -47
- package/skills/w/roles/design/CONTRACT.md +6 -4
- package/skills/w/roles/design/ROLE.md +7 -3
- package/skills/w/roles/diagrams/ROLE.md +1 -1
- package/skills/w/roles/git/ROLE.md +17 -10
- package/skills/w/roles/research/ROLE.md +2 -2
- package/skills/w/roles/sql/ROLE.md +17 -15
- package/skills/w/schemas/design/ui-screen.v1.schema.json +9 -0
- package/dist/application/capability/descriptor-loader.js +0 -109
- package/dist/application/capability/descriptor-loader.js.map +0 -1
- package/dist/application/capability/installed-inventory.js +0 -168
- package/dist/application/capability/installed-inventory.js.map +0 -1
- package/dist/application/self/install-plugin-skills-git.js +0 -226
- package/dist/application/self/install-plugin-skills-git.js.map +0 -1
- package/dist/application/self/install-plugin-skills.js +0 -203
- package/dist/application/self/install-plugin-skills.js.map +0 -1
- package/dist/application/self/plugin-cache-clear.js +0 -133
- package/dist/application/self/plugin-cache-clear.js.map +0 -1
- package/dist/application/self/plugin-cache-reload.js +0 -141
- package/dist/application/self/plugin-cache-reload.js.map +0 -1
- package/dist/application/self/skills-apply.js +0 -623
- package/dist/application/self/skills-apply.js.map +0 -1
- package/dist/application/self/skills-catalog.js +0 -35
- package/dist/application/self/skills-catalog.js.map +0 -1
- package/dist/application/self/skills-change.js +0 -479
- package/dist/application/self/skills-change.js.map +0 -1
- package/dist/application/self/skills-discovery.js +0 -275
- package/dist/application/self/skills-discovery.js.map +0 -1
- package/dist/application/self/skills-manager.js +0 -253
- package/dist/application/self/skills-manager.js.map +0 -1
- package/dist/application/self/skills-payload.js +0 -566
- package/dist/application/self/skills-payload.js.map +0 -1
- package/dist/application/self/skills-registry.js +0 -107
- package/dist/application/self/skills-registry.js.map +0 -1
- package/dist/application/skill-index-service.js +0 -78
- package/dist/application/skill-index-service.js.map +0 -1
- package/dist/cli/commands/plugin-cache.js +0 -25
- package/dist/cli/commands/plugin-cache.js.map +0 -1
- package/dist/cli/commands/skill-index.js +0 -19
- package/dist/cli/commands/skill-index.js.map +0 -1
- package/dist/cli/tui/data/recommended-skills.js +0 -482
- package/dist/cli/tui/data/recommended-skills.js.map +0 -1
- package/dist/cli/tui/tabs/skills-tab.js +0 -664
- package/dist/cli/tui/tabs/skills-tab.js.map +0 -1
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { preserveBoundaryClose } from "../../application/flow/close-artifacts.js";
|
|
1
3
|
import { markCloseAtBoundary, settleCloseAtBoundary, withdrawCloseAtBoundary, } from "../../application/flow/close-at-boundary.js";
|
|
2
|
-
import { locateRun } from "../../application/flow/run-state-service.js";
|
|
4
|
+
import { locateRun, readRun, } from "../../application/flow/run-state-service.js";
|
|
3
5
|
import { runSessionClose, } from "../../application/session-close-service.js";
|
|
6
|
+
import { writeSessionNarrative } from "../../application/session-narrative.js";
|
|
4
7
|
import { resolveSessionTarget } from "../../application/session-resolver.js";
|
|
5
|
-
import { runWorktree } from "../../application/worktree-service.js";
|
|
8
|
+
import { classifyListedUnits, runWorktree } from "../../application/worktree-service.js";
|
|
6
9
|
import { fail, failSessionResolution } from "../render.js";
|
|
7
10
|
// `--name` belongs to `session-create`, where it is mandatory; here it names
|
|
8
11
|
// nothing, and being ignored is how an invocation that meant something else
|
|
9
12
|
// came back as a clean close.
|
|
10
13
|
const FLAGS = {
|
|
11
|
-
known: ["code", "refs"],
|
|
12
|
-
usage: "aw session-close --code <sesión> [--refs <csv>]",
|
|
14
|
+
known: ["code", "refs", "force", "abandon", "with-evidence"],
|
|
15
|
+
usage: "aw session-close --code <sesión> [--refs <csv>] [--force] [--abandon] [--with-evidence]",
|
|
13
16
|
};
|
|
14
17
|
export const sessionCloseCommand = {
|
|
15
18
|
name: "session-close",
|
|
@@ -25,6 +28,12 @@ export const sessionCloseCommand = {
|
|
|
25
28
|
const refs = args.values.get("refs");
|
|
26
29
|
if (refs !== undefined)
|
|
27
30
|
input.refs = refs;
|
|
31
|
+
if (args.flags.has("--force"))
|
|
32
|
+
input.force = true;
|
|
33
|
+
if (args.flags.has("--abandon"))
|
|
34
|
+
input.abandon = true;
|
|
35
|
+
if (args.flags.has("--with-evidence"))
|
|
36
|
+
input.withEvidence = true;
|
|
28
37
|
const location = await runLocation(ctx, code);
|
|
29
38
|
const intent = location === null ? null : await markCloseAtBoundary(ctx.fs, location);
|
|
30
39
|
if (intent?.kind === "failed") {
|
|
@@ -37,7 +46,18 @@ export const sessionCloseCommand = {
|
|
|
37
46
|
});
|
|
38
47
|
}
|
|
39
48
|
if (location === null || intent?.kind !== "marked") {
|
|
40
|
-
|
|
49
|
+
// A repeated close still owns the proposal's bases, even after finalize
|
|
50
|
+
// was settled and no new close intention is necessary.
|
|
51
|
+
if (location !== null) {
|
|
52
|
+
const read = await readRun(ctx.fs, location);
|
|
53
|
+
if (!read.ok && read.failure.code !== "FLOW_RUN_ABSENT") {
|
|
54
|
+
return fail(read.failure.code, read.failure.message);
|
|
55
|
+
}
|
|
56
|
+
input.preserveReservations = read.ok
|
|
57
|
+
? (read.state.proposal?.artifacts.filter((a) => a.reserved).map((a) => a.path) ?? [])
|
|
58
|
+
: [];
|
|
59
|
+
}
|
|
60
|
+
return rendered(await runSessionClose(ctx.fs, ctx.paths, input, unitsOf(ctx), ctx.git, ctx.process, unitReleaser(ctx)));
|
|
41
61
|
}
|
|
42
62
|
return closeAtBoundary(ctx, input, location, intent);
|
|
43
63
|
},
|
|
@@ -53,18 +73,39 @@ export const sessionCloseCommand = {
|
|
|
53
73
|
async function closeAtBoundary(ctx, input, location, intent) {
|
|
54
74
|
const { boundary } = intent;
|
|
55
75
|
const withdraw = (refusal) => withdrawn(ctx, location, intent, refusal);
|
|
56
|
-
|
|
76
|
+
const checkpointPath = join(location.dir, "CHECKPOINT.md");
|
|
77
|
+
if (!input.force &&
|
|
78
|
+
!input.abandon &&
|
|
79
|
+
!(await ctx.fs.exists(join(location.dir, ".closed"))) &&
|
|
80
|
+
(await ctx.fs.exists(checkpointPath))) {
|
|
81
|
+
const checkpoint = await ctx.fs.readText(checkpointPath);
|
|
82
|
+
if (/_\[AI:[^\n]*\]_/.test(checkpoint)) {
|
|
83
|
+
return withdraw(fail("CHECKPOINT_INCOMPLETE", "CHECKPOINT contiene placeholders sin llenar"));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
let inventory;
|
|
57
87
|
try {
|
|
58
|
-
|
|
88
|
+
inventory = await unitsOf(ctx)();
|
|
59
89
|
}
|
|
60
90
|
catch (error) {
|
|
61
91
|
return withdraw(fail("SESSION_UNITS_UNREADABLE", `la sesión no se cerró: no se pudieron leer sus unidades de aislamiento — ${error instanceof Error ? error.message : String(error)}`, {
|
|
62
92
|
action: `revisá el estado de git con 'aw worktree list' y volvé a correr 'aw session-close --code ${location.session}'`,
|
|
63
93
|
}));
|
|
64
94
|
}
|
|
95
|
+
const units = Array.isArray(inventory) ? inventory : inventory.units;
|
|
96
|
+
const unreadable = Array.isArray(inventory) ? [] : inventory.unreadable;
|
|
65
97
|
let data;
|
|
98
|
+
let pending = [];
|
|
66
99
|
try {
|
|
67
|
-
|
|
100
|
+
const read = await readRun(ctx.fs, location);
|
|
101
|
+
if (!read.ok)
|
|
102
|
+
return withdraw(fail(read.failure.code, read.failure.message));
|
|
103
|
+
pending = await preserveBoundaryClose(ctx.fs, ctx.paths, ctx.git, read.state, units, unreadable);
|
|
104
|
+
data = await runSessionClose(ctx.fs, ctx.paths, {
|
|
105
|
+
...input,
|
|
106
|
+
final: false,
|
|
107
|
+
preserveReservations: read.state.proposal?.artifacts.filter((a) => a.reserved).map((a) => a.path) ?? [],
|
|
108
|
+
}, async () => inventory, ctx.git, ctx.process, unitReleaser(ctx));
|
|
68
109
|
}
|
|
69
110
|
catch (error) {
|
|
70
111
|
// The close's own error is the one worth reporting; a failed withdraw here
|
|
@@ -75,10 +116,13 @@ async function closeAtBoundary(ctx, input, location, intent) {
|
|
|
75
116
|
}
|
|
76
117
|
if (!("sessionClose" in data))
|
|
77
118
|
return withdraw(rendered(data));
|
|
119
|
+
data.sessionClose.pending_work = pending;
|
|
120
|
+
data.sessionClose.reopen = `aw session-resume --code ${location.session} --reopen`;
|
|
78
121
|
const settled = await settleCloseAtBoundary(ctx.fs, location, data.sessionClose);
|
|
79
122
|
if (settled !== null) {
|
|
80
123
|
return fail(settled.code, `la sesión cerró, pero la corrida no asentó su finalize en '${boundary}': ${settled.message}`, { ...data.sessionClose, action: retry(location) });
|
|
81
124
|
}
|
|
125
|
+
await writeSessionNarrative(ctx.fs, ctx.paths, { folder: location.session, path: location.dir });
|
|
82
126
|
return {
|
|
83
127
|
ok: true,
|
|
84
128
|
data: { ...data.sessionClose, run: { closed_at: boundary, finalize: "applied" } },
|
|
@@ -131,7 +175,18 @@ function unitsOf(ctx) {
|
|
|
131
175
|
// receipt reports, not as "this session held nothing".
|
|
132
176
|
if (!("units" in listed))
|
|
133
177
|
throw new Error(JSON.stringify(listed));
|
|
134
|
-
return
|
|
178
|
+
return {
|
|
179
|
+
units: await classifyListedUnits({ fs: ctx.fs, env: ctx.env, git: ctx.git, paths: ctx.paths }, listed.units),
|
|
180
|
+
unreadable: listed.unreadable ?? [],
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function unitReleaser(ctx) {
|
|
185
|
+
return async (alias, folder) => {
|
|
186
|
+
const result = await runWorktree({ fs: ctx.fs, env: ctx.env, git: ctx.git, paths: ctx.paths }, { action: "release", alias, sessionCode: folder });
|
|
187
|
+
if ("error" in result || "released" in result)
|
|
188
|
+
return result;
|
|
189
|
+
return { error: "unit_unresolved", message: `no se pudo liberar ${alias} de ${folder}` };
|
|
135
190
|
};
|
|
136
191
|
}
|
|
137
192
|
function rendered(data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-close.js","sourceRoot":"","sources":["../../../src/cli/commands/session-close.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"session-close.js","sourceRoot":"","sources":["../../../src/cli/commands/session-close.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { readContextId } from "../context-id.js";
|
|
|
4
4
|
import { fail } from "../render.js";
|
|
5
5
|
export const sessionCreateCommand = {
|
|
6
6
|
name: "session-create",
|
|
7
|
-
flags: { known: ["type", "name", "objetivo", "from", "input"] },
|
|
7
|
+
flags: { known: ["type", "name", "objetivo", "from", "input", "allow-repeat"] },
|
|
8
8
|
describe: `Create an internal session folder + SESSION.md and seal its custody (typed parents + byte-exact baseline of every declared input). Without --input the run's own document is DERIVED from the descriptor (\`<slug>-spec-refine\`/\`-plan-new\` seal ${DEFAULT_CORE_DOCS_CANON.spec}/NNN-spec-<slug>.md; \`-plan-refine\`/\`-plan-exec\` seal ${DEFAULT_CORE_DOCS_CANON.plan}/NNN-plan-<slug>.md); \`inputs_from\` reports which road was taken and \`inputs_note\` why none was. Flags: --type {research|refine|exec|quick} --name <folder> --objetivo <text> [--from <origin>] [--input <ruta-relativa> (repeatable)].`,
|
|
9
9
|
async execute(args, ctx) {
|
|
10
10
|
const input = {};
|
|
@@ -26,7 +26,9 @@ export const sessionCreateCommand = {
|
|
|
26
26
|
const contextId = readContextId(ctx.env);
|
|
27
27
|
if (contextId !== undefined)
|
|
28
28
|
input.contextId = contextId;
|
|
29
|
-
|
|
29
|
+
if (args.flags.has("--allow-repeat"))
|
|
30
|
+
input.allowRepeat = true;
|
|
31
|
+
const data = await runSessionCreate(ctx.rawFs ?? ctx.fs, ctx.paths, input, ctx.git);
|
|
30
32
|
if ("error" in data) {
|
|
31
33
|
return fail(data.code ?? "INVALID_INPUT", data.error, data);
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-create.js","sourceRoot":"","sources":["../../../src/cli/commands/session-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC9C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAC/
|
|
1
|
+
{"version":3,"file":"session-create.js","sourceRoot":"","sources":["../../../src/cli/commands/session-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC9C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE;IAC/E,QAAQ,EAAE,uPAAuP,uBAAuB,CAAC,IAAI,6DAA6D,uBAAuB,CAAC,IAAI,6OAA6O;IACnmB,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { runSessionPause } from "../../application/session-pause-service.js";
|
|
2
|
+
import { fail } from "../render.js";
|
|
3
|
+
export const sessionPauseCommand = {
|
|
4
|
+
name: "session-pause",
|
|
5
|
+
flags: { known: ["code"], usage: "aw session-pause --code <sesión>" },
|
|
6
|
+
describe: "Mark a session as paused at the user's request. Usage: aw session-pause --code <sesión>.",
|
|
7
|
+
async execute(args, ctx) {
|
|
8
|
+
const result = await runSessionPause(ctx.fs, ctx.paths, args.values.get("code"));
|
|
9
|
+
if ("error" in result)
|
|
10
|
+
return fail(result.code, result.error);
|
|
11
|
+
return { ok: true, data: result, exitCode: 0 };
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=session-pause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-pause.js","sourceRoot":"","sources":["../../../src/cli/commands/session-pause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE;IACrE,QAAQ,EACN,0FAA0F;IAC5F,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,IAAI,OAAO,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjD,CAAC;CACF,CAAC"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { SessionsService } from "../../application/sessions-service.js";
|
|
2
|
+
import { runSessionsSweep, } from "../../application/sessions-sweep-service.js";
|
|
2
3
|
export const sessionsCommand = {
|
|
3
4
|
name: "sessions",
|
|
4
|
-
flags: { known: ["all", "state", "include-legacy", "verbose"] },
|
|
5
|
+
flags: { known: ["all", "state", "include-legacy", "verbose", "sweep", "apply"] },
|
|
5
6
|
describe: "List sessions with counts and next correlative. " +
|
|
6
7
|
"Usage: aw sessions [--state <estado>] [--all] [--include-legacy] [--verbose].",
|
|
7
8
|
async execute(args, ctx) {
|
|
9
|
+
if (args.flags.has("--sweep")) {
|
|
10
|
+
const result = await runSessionsSweep(ctx.fs, ctx.paths, args.flags.has("--apply"), ctx.process);
|
|
11
|
+
if ("error" in result)
|
|
12
|
+
return { ok: false, error: { code: "SWEEP_BLOCKED", message: result.error }, exitCode: 1 };
|
|
13
|
+
return { ok: true, data: result, exitCode: 0 };
|
|
14
|
+
}
|
|
15
|
+
if (args.flags.has("--apply"))
|
|
16
|
+
return {
|
|
17
|
+
ok: false,
|
|
18
|
+
error: { code: "INVALID_INPUT", message: "--apply requiere --sweep" },
|
|
19
|
+
exitCode: 1,
|
|
20
|
+
};
|
|
8
21
|
const includeLegacy = args.flags.has("--include-legacy");
|
|
9
22
|
const verbose = args.flags.has("--verbose");
|
|
10
23
|
const showAll = args.flags.has("--all");
|
|
@@ -21,8 +34,8 @@ export const sessionsCommand = {
|
|
|
21
34
|
};
|
|
22
35
|
function normalizeState(value) {
|
|
23
36
|
const v = value.trim().toLowerCase();
|
|
24
|
-
if (v === "active" || v === "closed" || v === "all")
|
|
37
|
+
if (v === "active" || v === "closed" || v === "paused" || v === "abandoned" || v === "all")
|
|
25
38
|
return v;
|
|
26
|
-
throw new Error(`--state must be active|closed|all (got '${value}')`);
|
|
39
|
+
throw new Error(`--state must be active|closed|paused|abandoned|all (got '${value}')`);
|
|
27
40
|
}
|
|
28
41
|
//# sourceMappingURL=sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAEL,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AAMrD,MAAM,CAAC,MAAM,eAAe,GAAwD;IAClF,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IACjF,QAAQ,EACN,kDAAkD;QAClD,+EAA+E;IACjF,KAAK,CAAC,OAAO,CACX,IAAgB,EAChB,GAAe;QAEf,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,KAAK,EACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EACzB,GAAG,CAAC,OAAO,CACZ,CAAC;YACF,IAAI,OAAO,IAAI,MAAM;gBACnB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC7F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAC3B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,0BAA0B,EAAE;gBACrE,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAqC,QAAQ;YACtD,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC1B,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK;QACxF,OAAO,CAAC,CAAC;IACX,MAAM,IAAI,KAAK,CAAC,4DAA4D,KAAK,IAAI,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveSourceBranches } from "../../application/branch-resolver.js";
|
|
2
|
-
import { readWorkspaceBlock } from "../../application/parsers/project-block.js";
|
|
2
|
+
import { readWorkspaceBlock, requireSourcePath } from "../../application/parsers/project-block.js";
|
|
3
3
|
import { runProjectMdUpsertWrite } from "../../application/project-md-upsert-service.js";
|
|
4
4
|
import { ensureWorkingBranch, } from "../../application/working-branch-service.js";
|
|
5
5
|
import { fail } from "../render.js";
|
|
@@ -15,7 +15,7 @@ function makeSetBranchCommand(name, label, key, prepare) {
|
|
|
15
15
|
async execute(args, ctx) {
|
|
16
16
|
const alias = args.rest[0];
|
|
17
17
|
const rama = args.rest[1];
|
|
18
|
-
if (!alias || !rama) {
|
|
18
|
+
if (!alias || !rama || args.rest.length !== 2) {
|
|
19
19
|
return fail("INVALID_INPUT", `Usage: aw ${name} <alias> <rama>`);
|
|
20
20
|
}
|
|
21
21
|
const check = prepare ? await prepare(alias, rama, ctx) : null;
|
|
@@ -24,7 +24,11 @@ function makeSetBranchCommand(name, label, key, prepare) {
|
|
|
24
24
|
const branches = { [alias]: rama };
|
|
25
25
|
const data = await runProjectMdUpsertWrite(ctx.fs, ctx.env, ctx.paths, {
|
|
26
26
|
op: "init",
|
|
27
|
-
...(key === "workingBranches"
|
|
27
|
+
...(key === "workingBranches"
|
|
28
|
+
? { workingBranches: branches }
|
|
29
|
+
: key === "qaBranches"
|
|
30
|
+
? { qaBranches: branches }
|
|
31
|
+
: { exceptionBranches: branches }),
|
|
28
32
|
verbose: args.flags.has("--verbose"),
|
|
29
33
|
});
|
|
30
34
|
if ("error" in data) {
|
|
@@ -52,8 +56,15 @@ const ensureDeclaredWorkingBranch = async (alias, rama, ctx) => {
|
|
|
52
56
|
notice: `${alias} no es una fuente declarada: la rama ${rama} se registró sin comprobarla ni crearla`,
|
|
53
57
|
};
|
|
54
58
|
}
|
|
59
|
+
let path;
|
|
60
|
+
try {
|
|
61
|
+
path = await requireSourcePath(ctx.fs, source);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
return { refusal: fail("SOURCE_PATH_MISSING", err.message) };
|
|
65
|
+
}
|
|
55
66
|
const prod = resolveSourceBranches(source, block).prod;
|
|
56
|
-
const resolution = await ensureWorkingBranch(ctx.git, source, rama, prod);
|
|
67
|
+
const resolution = await ensureWorkingBranch(ctx.git, { ...source, path }, rama, prod);
|
|
57
68
|
if (!resolution.ok) {
|
|
58
69
|
return {
|
|
59
70
|
refusal: fail("WORKING_BRANCH_UNRESOLVED", `no se registró ${rama} para ${alias}: ${resolution.reason}`, resolution),
|
|
@@ -63,4 +74,17 @@ const ensureDeclaredWorkingBranch = async (alias, rama, ctx) => {
|
|
|
63
74
|
};
|
|
64
75
|
export const setWorkingBranchCommand = makeSetBranchCommand("set-working-branch", "WORKING", "workingBranches", ensureDeclaredWorkingBranch);
|
|
65
76
|
export const setQaBranchCommand = makeSetBranchCommand("set-qa-branch", "QA", "qaBranches");
|
|
77
|
+
const checkExceptionBranch = async (alias, rama, ctx) => {
|
|
78
|
+
const block = await readWorkspaceBlock(ctx.fs, ctx.paths.workspaceDir(), ctx.paths.blockMarkers());
|
|
79
|
+
const source = block?.fuentes.find((entry) => entry.alias === alias);
|
|
80
|
+
if (!source || !rama.trim())
|
|
81
|
+
return { refusal: fail("INVALID_INPUT", `fuente ${alias} desconocida o rama vacía`) };
|
|
82
|
+
const { dev, prod } = resolveSourceBranches(source, block);
|
|
83
|
+
if (rama === dev || rama === prod)
|
|
84
|
+
return {
|
|
85
|
+
refusal: fail("INVALID_INPUT", `${rama} es la rama de desarrollo o PROD; no puede declararse excepción`),
|
|
86
|
+
};
|
|
87
|
+
return { notice: `rama de excepción ${rama} declarada para ${alias}` };
|
|
88
|
+
};
|
|
89
|
+
export const setExceptionBranchCommand = makeSetBranchCommand("set-exception-branch", "exception", "exceptionBranches", checkExceptionBranch);
|
|
66
90
|
//# sourceMappingURL=set-branch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-branch.js","sourceRoot":"","sources":["../../../src/cli/commands/set-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"set-branch.js","sourceRoot":"","sources":["../../../src/cli/commands/set-branch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { runProjectMdUpsertWrite } from "../../application/project-md-upsert-service.js";
|
|
2
|
+
import { fail } from "../render.js";
|
|
3
|
+
export const setEditModeCommand = {
|
|
4
|
+
name: "set-edit-mode",
|
|
5
|
+
flags: { known: [] },
|
|
6
|
+
describe: "Declare the workspace edit mode. Usage: aw set-edit-mode in-place|unit.",
|
|
7
|
+
async execute(args, ctx) {
|
|
8
|
+
const mode = args.rest[0];
|
|
9
|
+
if (args.rest.length !== 1 || (mode !== "in-place" && mode !== "unit"))
|
|
10
|
+
return fail("INVALID_INPUT", "Usage: aw set-edit-mode in-place|unit");
|
|
11
|
+
const result = await runProjectMdUpsertWrite(ctx.fs, ctx.env, ctx.paths, {
|
|
12
|
+
op: "init",
|
|
13
|
+
editMode: mode,
|
|
14
|
+
});
|
|
15
|
+
if ("error" in result)
|
|
16
|
+
return fail("INVALID_INPUT", result.error);
|
|
17
|
+
return { ok: result.ok, data: result, exitCode: result.ok ? 0 : 1 };
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=set-edit-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-edit-mode.js","sourceRoot":"","sources":["../../../src/cli/commands/set-edit-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACpB,QAAQ,EAAE,yEAAyE;IACnF,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC;YACpE,OAAO,IAAI,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;YACvE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,OAAO,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { readWorkspaceBlock } from "../../application/parsers/project-block.js";
|
|
2
|
+
import { runProjectMdUpsertWrite } from "../../application/project-md-upsert-service.js";
|
|
3
|
+
import { fail } from "../render.js";
|
|
4
|
+
const usage = "aw set-pipeline <alias> <build|test> <comando|ninguno>";
|
|
5
|
+
export const setPipelineCommand = {
|
|
6
|
+
name: "set-pipeline",
|
|
7
|
+
flags: { known: [], usage },
|
|
8
|
+
describe: `Declara el build o test versionado de una fuente en ambos espejos. Usage: ${usage}.`,
|
|
9
|
+
async execute(args, ctx) {
|
|
10
|
+
const [alias, field, command] = args.rest;
|
|
11
|
+
if (!alias ||
|
|
12
|
+
!/^[^:\s`]+$/.test(alias) ||
|
|
13
|
+
(field !== "build" && field !== "test") ||
|
|
14
|
+
!command?.trim() ||
|
|
15
|
+
args.rest.length !== 3 ||
|
|
16
|
+
/[\r\n`]/.test(command)) {
|
|
17
|
+
return fail("INVALID_INPUT", `Uso: ${usage}`);
|
|
18
|
+
}
|
|
19
|
+
const block = await readWorkspaceBlock(ctx.fs, ctx.paths.workspaceDir(), ctx.paths.blockMarkers());
|
|
20
|
+
if (!block?.fuentes.some((source) => source.alias === alias)) {
|
|
21
|
+
return fail("SOURCE_UNKNOWN", `${alias} no es una fuente declarada`, {
|
|
22
|
+
aliases: block?.fuentes.map((source) => source.alias) ?? [],
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const result = await runProjectMdUpsertWrite(ctx.fs, ctx.env, ctx.paths, {
|
|
26
|
+
op: "init",
|
|
27
|
+
pipeline: { [alias]: { [field]: command.trim() } },
|
|
28
|
+
verbose: true,
|
|
29
|
+
});
|
|
30
|
+
if ("error" in result)
|
|
31
|
+
return fail("INVALID_INPUT", result.error);
|
|
32
|
+
return { ok: result.ok, data: result, exitCode: result.ok ? 0 : 1 };
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=set-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-pipeline.js","sourceRoot":"","sources":["../../../src/cli/commands/set-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAIzF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,KAAK,GAAG,wDAAwD,CAAC;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAC3B,QAAQ,EAAE,6EAA6E,KAAK,GAAG;IAC/F,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1C,IACE,CAAC,KAAK;YACN,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC;YACvC,CAAC,OAAO,EAAE,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EACvB,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CACpC,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EACxB,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CACzB,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,6BAA6B,EAAE;gBACnE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;YACvE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;YAClD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,OAAO,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;CACF,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "../../application/capability/design-handler.js";
|
|
2
2
|
import { capabilityReadiness, } from "../../application/capability/readiness.js";
|
|
3
3
|
import { isHarnessId, runHarness } from "../../application/dev-only-services.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveSkills } from "../../application/skills-resolver-service.js";
|
|
5
5
|
export const skillsCommand = {
|
|
6
6
|
name: "skills",
|
|
7
7
|
flags: { known: ["host"] },
|
|
8
|
-
describe: "
|
|
8
|
+
describe: "Diagnóstico de capacidades y bundle propios (skills.toml). Usage: aw skills [--detail] — " +
|
|
9
9
|
"con --detail agrega readiness por capacidad, exposición y operación, la instancia exacta o el " +
|
|
10
10
|
"floor, y la forma de invocación que el host soporta de verdad.",
|
|
11
11
|
async execute(args, ctx) {
|
|
@@ -21,12 +21,10 @@ export const skillsCommand = {
|
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
const resolution = await resolveSkills(ctx.fs, ctx.paths);
|
|
24
|
-
const validation = await checkInstalledBindings(ctx.fs, ctx.env, resolution, ctx.paths.workspaceDir());
|
|
25
24
|
const data = {
|
|
26
25
|
skills: resolution.skills,
|
|
27
26
|
sources: resolution.sources,
|
|
28
|
-
|
|
29
|
-
warnings: [...resolution.warnings, ...validation.warnings],
|
|
27
|
+
warnings: resolution.warnings,
|
|
30
28
|
capabilities: await capabilityReadiness({
|
|
31
29
|
fs: ctx.fs,
|
|
32
30
|
env: ctx.env,
|
|
@@ -64,18 +62,13 @@ function renderReport(report) {
|
|
|
64
62
|
if (report.action !== null)
|
|
65
63
|
lines.push(` siguiente: ${report.action}`);
|
|
66
64
|
lines.push(` invocación (${report.invocation.host}): ${report.invocation.form ?? "no disponible"} — ${report.invocation.note}`);
|
|
67
|
-
lines.push(report.floor.running
|
|
68
|
-
? ` ejecuta el floor incorporado (${report.floor.kind})`
|
|
69
|
-
: ` instancia: ${report.instance?.name ?? "—"}@${report.instance?.digest ?? "—"}`);
|
|
65
|
+
lines.push(` floor propio (${report.floor.kind}): ${report.floor.running ? "disponible" : "desactivado"}`);
|
|
70
66
|
for (const [route, verdict] of Object.entries(report.exposures)) {
|
|
71
67
|
lines.push(` ${route}: ${verdict.state}${verdict.reason === null ? "" : ` — ${verdict.reason}`}`);
|
|
72
68
|
}
|
|
73
69
|
for (const op of report.operations) {
|
|
74
70
|
lines.push(` · ${op.operation.padEnd(9)} ${op.state.padEnd(13)} ${op.workspace} · efectos: ${op.effects.join(", ")}`);
|
|
75
71
|
}
|
|
76
|
-
for (const improvement of report.improvements) {
|
|
77
|
-
lines.push(` mejora ${improvement.name}: ${improvement.eligible ? "elegible" : `descartada — ${improvement.why}`}`);
|
|
78
|
-
}
|
|
79
72
|
return lines;
|
|
80
73
|
}
|
|
81
74
|
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAgD,CAAC;AACxD,OAAO,EAEL,mBAAmB,GACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { runSources } from "../../application/sources-service.js";
|
|
2
|
+
import { readContextId } from "../context-id.js";
|
|
2
3
|
import { sessionCodeFlag } from "../parser.js";
|
|
3
4
|
import { fail } from "../render.js";
|
|
4
5
|
export const sourcesCommand = {
|
|
@@ -16,6 +17,9 @@ export const sourcesCommand = {
|
|
|
16
17
|
const input = {};
|
|
17
18
|
if (session.code !== undefined)
|
|
18
19
|
input.sessionCode = session.code;
|
|
20
|
+
const contextId = readContextId(ctx.env);
|
|
21
|
+
if (contextId !== undefined)
|
|
22
|
+
input.contextId = contextId;
|
|
19
23
|
if (scopeRaw !== undefined) {
|
|
20
24
|
input.scope = scopeRaw
|
|
21
25
|
.split(",")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/cli/commands/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;IACnE,QAAQ,EACN,mEAAmE;QACnE,4EAA4E;IAC9E,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAqC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ;iBACnB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/cli/commands/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;IACnE,QAAQ,EACN,mEAAmE;QACnE,4EAA4E;IAC9E,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAqC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjE,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ;iBACnB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { runStatusCommand, } from "../../application/status-service.js";
|
|
2
|
+
import { specDetail } from "../../application/workline-index-service.js";
|
|
2
3
|
export const statusCommand = {
|
|
3
4
|
name: "status",
|
|
4
5
|
flags: { known: [] },
|
|
@@ -20,12 +21,35 @@ export const statusCommand = {
|
|
|
20
21
|
return "";
|
|
21
22
|
const header = `${data.workspace.name} · ${data.workspace.path}`;
|
|
22
23
|
const lines = [header, ""];
|
|
24
|
+
if (data.last_activity !== null)
|
|
25
|
+
lines.push(`Última actividad: ${data.last_activity}`, "");
|
|
23
26
|
lines.push(...renderPipeline(data.pipeline, context.detail));
|
|
24
27
|
// A broken design reference is PENDING work, not history: it stays in the
|
|
25
28
|
// default view for the same reason an open plan does. Valid references and
|
|
26
29
|
// orphaned packages are inventory and wait for `--detail`.
|
|
27
30
|
lines.push(...renderDesignAlerts(data, lines.at(-1)));
|
|
28
31
|
lines.push(...renderLooseSessions(data, lines.at(-1)));
|
|
32
|
+
if (data.counts.sessions_paused || data.counts.sessions_abandoned) {
|
|
33
|
+
lines.push(`Sesiones apartadas: ${data.counts.sessions_paused} pausada(s), ${data.counts.sessions_abandoned} abandonada(s)`, "");
|
|
34
|
+
}
|
|
35
|
+
if (data.history_remote_rows.length > 0 || data.history_collisions.length > 0) {
|
|
36
|
+
lines.push("HISTORY: sesiones de otra máquina o números compartidos");
|
|
37
|
+
for (const row of data.history_remote_rows)
|
|
38
|
+
lines.push(` sin carpeta local: ${row}`);
|
|
39
|
+
for (const collision of data.history_collisions) {
|
|
40
|
+
lines.push(` ${collision.local} comparte número con ${collision.registered} → ${collision.action}`);
|
|
41
|
+
}
|
|
42
|
+
lines.push("");
|
|
43
|
+
}
|
|
44
|
+
if (data.unreadable_sources?.length || data.isolation_error) {
|
|
45
|
+
lines.push("Fuentes sin ruta o unidades no verificables");
|
|
46
|
+
for (const source of data.unreadable_sources ?? []) {
|
|
47
|
+
lines.push(` ${source.alias}: ${source.error}`);
|
|
48
|
+
}
|
|
49
|
+
if (data.isolation_error)
|
|
50
|
+
lines.push(` ${data.isolation_error}`);
|
|
51
|
+
lines.push("");
|
|
52
|
+
}
|
|
29
53
|
// A held correlative is not pending work — nobody should weigh it against an
|
|
30
54
|
// open plan — but it must be VISIBLE. Leaving it out of the human view took
|
|
31
55
|
// the board from wrong (it used to offer `/w:plan-exec` on a bare marker) to
|
|
@@ -35,7 +59,7 @@ export const statusCommand = {
|
|
|
35
59
|
lines.push(...renderAssuranceAlerts(data, lines.at(-1)));
|
|
36
60
|
// An implicit Workline root is still a valid read-only workspace. Empty
|
|
37
61
|
// means exactly no pending work; it never suggests a mandatory init gate.
|
|
38
|
-
if (lines.length === 2) {
|
|
62
|
+
if (lines.length === 2 && !context.detail) {
|
|
39
63
|
return `${header} — sin pendientes\n`;
|
|
40
64
|
}
|
|
41
65
|
if (context.detail)
|
|
@@ -48,6 +72,7 @@ const GROUP_TITLES = {
|
|
|
48
72
|
"spec-unplanned": "Specs sin plan",
|
|
49
73
|
"plan-open": "Planes abiertos",
|
|
50
74
|
"plan-handoff": "Planes cerrados con traspaso vigente",
|
|
75
|
+
"plan-pass": "Planes cerrados con pase pendiente",
|
|
51
76
|
// Kept because the model keeps the class: a loose checkpoint is reported as a
|
|
52
77
|
// notice now, so nothing reaches this row — and the day something does, it is
|
|
53
78
|
// titled rather than rendered as a blank group.
|
|
@@ -59,6 +84,7 @@ const KIND_NOUNS = {
|
|
|
59
84
|
"spec-unplanned": "spec",
|
|
60
85
|
"plan-open": "plan",
|
|
61
86
|
"plan-handoff": "traspaso",
|
|
87
|
+
"plan-pass": "pase",
|
|
62
88
|
"checkpoint-orphan": "sesión",
|
|
63
89
|
};
|
|
64
90
|
/**
|
|
@@ -218,8 +244,11 @@ function renderDetail(data) {
|
|
|
218
244
|
const done = data.plans.filter((p) => p.plan_state === "done");
|
|
219
245
|
const lines = [
|
|
220
246
|
`Terminado: ${done.length} plan(es) done de ${data.plans.length}`,
|
|
221
|
-
`Sesiones: ${data.counts.sessions_active} activa(s), ${data.counts.sessions_closed} cerrada(s)`,
|
|
247
|
+
`Sesiones: ${data.counts.sessions_active} activa(s), ${data.counts.sessions_paused} pausada(s), ${data.counts.sessions_abandoned} abandonada(s), ${data.counts.sessions_closed} cerrada(s)`,
|
|
222
248
|
];
|
|
249
|
+
for (const spec of data.specs.filter((item) => item.status === "superseded")) {
|
|
250
|
+
lines.push(` · spec ${spec.number} — ${specDetail(spec, data.plans).next}`);
|
|
251
|
+
}
|
|
223
252
|
for (const plan of done.filter((p) => p.assurance !== null && p.assurance !== "verified")) {
|
|
224
253
|
lines.push(` · plan ${plan.number} — done · no verificado (${plan.assurance})`);
|
|
225
254
|
}
|
|
@@ -231,6 +260,10 @@ function renderDetail(data) {
|
|
|
231
260
|
if (session.flow !== null)
|
|
232
261
|
lines.push(` ${session.flow.summary}`);
|
|
233
262
|
}
|
|
263
|
+
for (const session of data.sessions.paused)
|
|
264
|
+
lines.push(` · ${session.folder} — pausada`);
|
|
265
|
+
for (const session of data.sessions.abandoned)
|
|
266
|
+
lines.push(` · ${session.folder} — abandonada`);
|
|
234
267
|
if (data.discarded.length > 0) {
|
|
235
268
|
lines.push(`Descartados: ${data.discarded.length}`);
|
|
236
269
|
for (const item of data.discarded) {
|