@tacuchi/agent-workflow-cli 25.7.0 → 25.9.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 +110 -0
- package/README.md +5 -1
- package/dist/adapters/git-cli.js +311 -24
- 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 +124 -43
- package/dist/application/capability/design-handler.js.map +1 -1
- package/dist/application/capability/dispatcher.js +4 -1
- 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 +26 -10
- package/dist/application/capability/readiness.js.map +1 -1
- package/dist/application/capability/wrapper.js +10 -3
- package/dist/application/capability/wrapper.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 +171 -27
- 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 +4 -1
- 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 +10 -2
- package/dist/application/doctor/provider-mcps.js.map +1 -1
- package/dist/application/doctor/provider-skills.js +25 -0
- 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 +47 -3
- 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/doctor/skills-toml-migrate.js +76 -0
- package/dist/application/doctor/skills-toml-migrate.js.map +1 -0
- 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 +241 -30
- 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 +110 -8
- 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 +155 -0
- package/dist/application/flow/close-at-boundary.js.map +1 -0
- 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 +49 -5
- package/dist/application/flow/flow-service.js.map +1 -1
- package/dist/application/flow/internal-actions.js +361 -80
- package/dist/application/flow/internal-actions.js.map +1 -1
- package/dist/application/flow/internal-drive.js +47 -19
- 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 +159 -0
- package/dist/application/flow/reopen-run.js.map +1 -0
- package/dist/application/flow/run-journey.js +11 -8
- package/dist/application/flow/run-journey.js.map +1 -1
- package/dist/application/flow/run-projection.js +16 -5
- package/dist/application/flow/run-projection.js.map +1 -1
- package/dist/application/flow/run-state-service.js +3 -1
- package/dist/application/flow/run-state-service.js.map +1 -1
- package/dist/application/flow/submit.js +731 -154
- 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-sql-mutation-guard.js +147 -12
- package/dist/application/hook-sql-mutation-guard.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 +2 -0
- 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 +121 -48
- 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/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 +35 -11
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/install-targets.js +73 -2
- package/dist/application/self/install-targets.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/uninstall.js +22 -8
- 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 +51 -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 +190 -20
- 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 +1 -1
- 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 +97 -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 +86 -0
- package/dist/cli/ascii.js.map +1 -0
- 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 -2
- package/dist/cli/commands/amend.js.map +1 -1
- package/dist/cli/commands/capability.js +26 -0
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/check-branch.js +1 -0
- package/dist/cli/commands/check-branch.js.map +1 -1
- package/dist/cli/commands/checkpoint-read.js +1 -0
- package/dist/cli/commands/checkpoint-read.js.map +1 -1
- package/dist/cli/commands/checkpoint-write.js +4 -1
- package/dist/cli/commands/checkpoint-write.js.map +1 -1
- package/dist/cli/commands/claims.js +1 -0
- package/dist/cli/commands/claims.js.map +1 -1
- package/dist/cli/commands/code-scan.js +1 -0
- package/dist/cli/commands/code-scan.js.map +1 -1
- package/dist/cli/commands/context-budget.js +1 -0
- package/dist/cli/commands/context-budget.js.map +1 -1
- package/dist/cli/commands/context-plan.js +1 -0
- package/dist/cli/commands/context-plan.js.map +1 -1
- package/dist/cli/commands/cut-intent.js +1 -0
- package/dist/cli/commands/cut-intent.js.map +1 -1
- package/dist/cli/commands/designs.js +15 -5
- package/dist/cli/commands/designs.js.map +1 -1
- package/dist/cli/commands/dev-only.js +22 -5
- 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 +9 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/export.js +89 -16
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/fix-git.js +89 -13
- package/dist/cli/commands/fix-git.js.map +1 -1
- package/dist/cli/commands/flow.js +129 -13
- package/dist/cli/commands/flow.js.map +1 -1
- package/dist/cli/commands/generate-launch.js +15 -2
- package/dist/cli/commands/generate-launch.js.map +1 -1
- package/dist/cli/commands/git-flow.js +1 -0
- package/dist/cli/commands/git-flow.js.map +1 -1
- package/dist/cli/commands/history-update.js +7 -9
- 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 +26 -5
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/host-doctor.js +1 -0
- package/dist/cli/commands/host-doctor.js.map +1 -1
- package/dist/cli/commands/host-memory.js +2 -9
- package/dist/cli/commands/host-memory.js.map +1 -1
- package/dist/cli/commands/index.js +18 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/mcp.js +30 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/merge-state.js +3 -2
- package/dist/cli/commands/merge-state.js.map +1 -1
- package/dist/cli/commands/multiroot.js +16 -0
- package/dist/cli/commands/multiroot.js.map +1 -1
- package/dist/cli/commands/persist.js +7 -5
- package/dist/cli/commands/persist.js.map +1 -1
- package/dist/cli/commands/plan.js +1 -0
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/plugin-cache.js +4 -0
- package/dist/cli/commands/plugin-cache.js.map +1 -1
- package/dist/cli/commands/plugin-doctor.js +3 -0
- package/dist/cli/commands/plugin-doctor.js.map +1 -1
- package/dist/cli/commands/project-md-upsert.js +8 -3
- package/dist/cli/commands/project-md-upsert.js.map +1 -1
- package/dist/cli/commands/release-data.js +12 -0
- package/dist/cli/commands/release-data.js.map +1 -1
- package/dist/cli/commands/release-pass.js +13 -3
- package/dist/cli/commands/release-pass.js.map +1 -1
- package/dist/cli/commands/remove-source.js +1 -0
- package/dist/cli/commands/remove-source.js.map +1 -1
- package/dist/cli/commands/reseal.js +1 -0
- package/dist/cli/commands/reseal.js.map +1 -1
- package/dist/cli/commands/resume-summary.js +5 -0
- package/dist/cli/commands/resume-summary.js.map +1 -1
- package/dist/cli/commands/resume.js +13 -3
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/retirement.js +1 -0
- package/dist/cli/commands/retirement.js.map +1 -1
- package/dist/cli/commands/self.js +39 -1
- package/dist/cli/commands/self.js.map +1 -1
- package/dist/cli/commands/session-artifacts.js +1 -0
- package/dist/cli/commands/session-artifacts.js.map +1 -1
- package/dist/cli/commands/session-close.js +185 -31
- package/dist/cli/commands/session-close.js.map +1 -1
- package/dist/cli/commands/session-create.js +4 -1
- 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/session-resume.js +1 -0
- package/dist/cli/commands/session-resume.js.map +1 -1
- package/dist/cli/commands/sessions.js +16 -2
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/commands/set-branch.js +29 -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/settle.js +1 -0
- package/dist/cli/commands/settle.js.map +1 -1
- package/dist/cli/commands/skill-index.js +1 -0
- package/dist/cli/commands/skill-index.js.map +1 -1
- package/dist/cli/commands/skills.js +1 -0
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/sources.js +5 -0
- package/dist/cli/commands/sources.js.map +1 -1
- package/dist/cli/commands/stack.js +1 -0
- package/dist/cli/commands/stack.js.map +1 -1
- package/dist/cli/commands/status.js +36 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/tool.js +5 -21
- package/dist/cli/commands/tool.js.map +1 -1
- package/dist/cli/commands/unknown-flags.js +68 -16
- package/dist/cli/commands/unknown-flags.js.map +1 -1
- package/dist/cli/commands/visibility.js +2 -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 +51 -2
- package/dist/cli/commands/workspace-init.js.map +1 -1
- package/dist/cli/commands/workspace-migrate.js +31 -14
- 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 +5 -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 +108 -14
- 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 -471
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output-mode.js +11 -2
- package/dist/cli/output-mode.js.map +1 -1
- package/dist/cli/parser.js +18 -5
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli/render.js +30 -1
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/tui/app.js +1 -1
- package/dist/cli/tui/app.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/recommended-skills.js +2 -2
- package/dist/cli/tui/data/recommended-skills.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/dist-manifest.json +4117 -0
- 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 +28 -2
- 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 +273 -130
- package/dist/domain/flow/answer.js.map +1 -1
- package/dist/domain/flow/authority.js +330 -44
- 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 +169 -9
- package/dist/domain/flow/execution-result.js.map +1 -1
- package/dist/domain/flow/route.js.map +1 -1
- package/dist/domain/flow/rules.js +5 -6
- package/dist/domain/flow/rules.js.map +1 -1
- package/dist/domain/flow/run-state.js +531 -47
- 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 +22 -6
- 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 +2 -0
- package/dist/domain/skills.js.map +1 -1
- package/dist/domain/sql-lexer.js +15 -2
- 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 +5 -4
- package/skills/w/SKILL.md +3 -1
- 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/export-diagrams/EXPORT.md +3 -3
- 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 +45 -21
- package/skills/w/harness/HARNESS.md +5 -3
- package/skills/w/hooks/hooks.template.json +6 -4
- package/skills/w/loops/CHASSIS.md +12 -6
- package/skills/w/loops/CODE-POLICIES.md +7 -4
- 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 +6 -5
- 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/design/CONTRACT.md +16 -7
- package/skills/w/roles/design/ROLE.md +4 -2
- package/skills/w/roles/git/ROLE.md +16 -9
- package/skills/w/roles/research/ROLE.md +1 -1
- package/skills/w/roles/sql/ROLE.md +16 -14
- package/skills/w/schemas/design/ui-screen.v1.schema.json +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-lexer.js","sourceRoot":"","sources":["../../src/domain/sql-lexer.ts"],"names":[],"mappings":"AAAA,uGAAuG;
|
|
1
|
+
{"version":3,"file":"sql-lexer.js","sourceRoot":"","sources":["../../src/domain/sql-lexer.ts"],"names":[],"mappings":"AAAA,uGAAuG;AA8CvG,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,iBAAiB,KAAK,CAAC;QAClC,CAAC,CAAC;YACE,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B;QACH,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACpB,CAAC;AAaD,SAAS,kBAAkB;IACzB,OAAO;QACL,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;QACb,qBAAqB,EAAE,KAAK;QAC5B,KAAK,EAAE,EAAE;QACT,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB,EAAE,GAAW;IACtD,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;IAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,IAAI,CAAC,KAAmB,EAAE,KAAqB;IACtD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,KAAmB;IACxD,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAChC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,KAAmB,EAAE,IAAY,EAAE,IAAY;IACrF,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/C,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2DAA2D;AAC3D,SAAS,gBAAgB,CAAC,GAAW,EAAE,KAAmB;IACxD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IACpE,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAC7B,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,SAAS,iBAAiB,CAAC,GAAW,EAAE,KAAmB,EAAE,IAAY;IACvE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5E,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAmB,EAAE,IAAY;IACjE,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACpB,OAAO;IACT,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACxE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW,EAAE,KAAmB;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAmB;IAC1D,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1F,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmB,EAAE,IAAY,EAAE,IAAY;IAChF,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO;IACtE,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IAC7E,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,KAAmB,EAAE,KAAgB;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,sBAAsB,GAAG,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;IAClF,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACzE,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,2EAA2E;IAC3E,0DAA0D;IAC1D,IAAI,CAAC,sBAAsB,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACjC,CAAC;IACD,6EAA6E;IAC7E,oCAAoC;IACpC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAID,SAAS,sBAAsB,CAAC,GAAW,EAAE,KAAmB;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAC;IACrD,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,mBAAmB;IACnB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC;IACrC,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChD,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IACxC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,sFAAsF;AACtF,SAAS,mBAAmB,CAAC,GAAW,EAAE,KAAmB;IAC3D,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtE,6EAA6E;IAC7E,wEAAwE;IACxE,4CAA4C;IAC5C,OAAO,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACxC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CACjB,GAAW,EACX,KAAa,EACb,KAAgB,EAChB,sBAA+B;IAE/B,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,OAAO,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,sBAAsB,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAClD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,KAAa;IAC/C,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC7D,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC;IACzE,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -97,6 +97,8 @@ export class NamespaceResolver {
|
|
|
97
97
|
async detectFromWorkspace(cwd) {
|
|
98
98
|
let dir = cwd;
|
|
99
99
|
while (true) {
|
|
100
|
+
if (dir === this.env.homeDir())
|
|
101
|
+
return null;
|
|
100
102
|
const matches = await this.namespacesAt(dir);
|
|
101
103
|
if (matches.length > 1)
|
|
102
104
|
throw new WorklineDirectoryError(dir, matches);
|
|
@@ -112,6 +114,8 @@ export class NamespaceResolver {
|
|
|
112
114
|
async findMarkerForNamespace(cwd, namespace) {
|
|
113
115
|
let dir = cwd;
|
|
114
116
|
while (true) {
|
|
117
|
+
if (dir === this.env.homeDir())
|
|
118
|
+
return null;
|
|
115
119
|
if (await isWorklineRoot(this.fs, dir, namespace))
|
|
116
120
|
return dir;
|
|
117
121
|
const parent = dirname(dir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace-resolver.js","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"namespace-resolver.js","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readdir, stat } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { NAMESPACE_REGEX } from "./namespace.js";
|
|
2
4
|
/**
|
|
3
5
|
* What tells a Workline workspace apart from a directory that merely shares the
|
|
4
6
|
* name of a subfolder.
|
|
@@ -32,13 +34,6 @@ export const LEGACY_WORKLINE_FILES = [
|
|
|
32
34
|
export function worklineMarkerContent(namespace) {
|
|
33
35
|
return `${JSON.stringify({ workline: 1, namespace }, null, 2)}\n`;
|
|
34
36
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Whether `dir` holds the Workline workspace of `namespace`.
|
|
37
|
-
*
|
|
38
|
-
* Fails CLOSED in the direction that matters: a directory that only looks like
|
|
39
|
-
* one — `sessions/` and nothing of Workline's beside it — is not adopted as a
|
|
40
|
-
* workspace, so the command's own path is, which is what the person asked for.
|
|
41
|
-
*/
|
|
42
37
|
export async function isWorklineRoot(fs, dir, namespace) {
|
|
43
38
|
const root = join(dir, `.${namespace}`);
|
|
44
39
|
if (await isFile(fs, join(root, WORKLINE_MARKER_FILE)))
|
|
@@ -67,4 +62,36 @@ async function isDir(fs, path) {
|
|
|
67
62
|
return false;
|
|
68
63
|
}
|
|
69
64
|
}
|
|
65
|
+
/** The hook entry needs only marker reads, before any CLI services are loaded. */
|
|
66
|
+
export async function hasWorklineMarker(start) {
|
|
67
|
+
const fs = {
|
|
68
|
+
stat: async (path) => {
|
|
69
|
+
const info = await stat(path);
|
|
70
|
+
return { type: info.isFile() ? "file" : info.isDirectory() ? "dir" : "other" };
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
let dir = start;
|
|
74
|
+
while (true) {
|
|
75
|
+
// Reuse the resolver's exact marker/legacy rule for every candidate namespace.
|
|
76
|
+
let entries;
|
|
77
|
+
try {
|
|
78
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// An unreadable ancestor must not suppress a hook that might need to run.
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
for (const entry of entries) {
|
|
85
|
+
if (!entry.isDirectory() || !entry.name.startsWith("."))
|
|
86
|
+
continue;
|
|
87
|
+
const namespace = entry.name.slice(1);
|
|
88
|
+
if (NAMESPACE_REGEX.test(namespace) && (await isWorklineRoot(fs, dir, namespace)))
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
const parent = dirname(dir);
|
|
92
|
+
if (parent === dir)
|
|
93
|
+
return false;
|
|
94
|
+
dir = parent;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
70
97
|
//# sourceMappingURL=workline-marker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workline-marker.js","sourceRoot":"","sources":["../../src/runtime/workline-marker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workline-marker.js","sourceRoot":"","sources":["../../src/runtime/workline-marker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { access, realpath, stat } from "node:fs/promises";
|
|
2
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { declaringHubs, gitCommonDirectory, registerHub } from "../application/hub-registry.js";
|
|
4
|
+
import { PathsService } from "../application/paths-service.js";
|
|
5
|
+
import { hubUnitPaths } from "../application/unit-membership.js";
|
|
6
|
+
import { isWorklineRoot } from "./workline-marker.js";
|
|
7
|
+
export class WorkspaceResolutionError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
roots;
|
|
10
|
+
constructor(code, message, roots = []) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.roots = roots;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function contains(parent, child) {
|
|
17
|
+
const path = relative(parent, child);
|
|
18
|
+
return path === "" || (path !== ".." && !path.startsWith(`..${sep}`) && !isAbsolute(path));
|
|
19
|
+
}
|
|
20
|
+
/** Real repository boundary, not the common git directory shared with its units. */
|
|
21
|
+
export async function repositoryRoot(from) {
|
|
22
|
+
let dir = resolve(from);
|
|
23
|
+
while (true) {
|
|
24
|
+
try {
|
|
25
|
+
await stat(join(dir, ".git"));
|
|
26
|
+
return dir;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
/* ancestor search */
|
|
30
|
+
}
|
|
31
|
+
const parent = dirname(dir);
|
|
32
|
+
if (parent === dir)
|
|
33
|
+
return null;
|
|
34
|
+
dir = parent;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export async function resolveWorkspaceDirectory(fs, directory, cwd, home, explicit) {
|
|
38
|
+
const namespace = directory.namespace;
|
|
39
|
+
const repo = await repositoryRoot(cwd);
|
|
40
|
+
if (explicit !== undefined) {
|
|
41
|
+
const root = resolve(cwd, explicit);
|
|
42
|
+
try {
|
|
43
|
+
if (!(await stat(root)).isDirectory())
|
|
44
|
+
throw new Error("no es directorio");
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
throw new WorkspaceResolutionError("WORKSPACE_INVALID", `El workspace ${root} no existe.`);
|
|
48
|
+
}
|
|
49
|
+
const marked = await isWorklineRoot(fs, root, namespace);
|
|
50
|
+
if (root === home ||
|
|
51
|
+
contains(join(home, `.${namespace}`, "worktrees"), root) ||
|
|
52
|
+
(repo !== null && contains(repo, root) && root !== repo && !marked)) {
|
|
53
|
+
throw new WorkspaceResolutionError("WORKSPACE_INVALID", `La carpeta ${root} no es una raíz de workspace válida.`);
|
|
54
|
+
}
|
|
55
|
+
if (!marked &&
|
|
56
|
+
(await repositoryRoot(root)) !== null &&
|
|
57
|
+
(await declaringHubs(fs, home, namespace, root)).some((hub) => hub.root !== root)) {
|
|
58
|
+
throw new WorkspaceResolutionError("WORKSPACE_INVALID", `${root} es una fuente declarada; indica la raíz del hub, no la fuente.`);
|
|
59
|
+
}
|
|
60
|
+
let parent = dirname(root);
|
|
61
|
+
while (parent !== dirname(parent)) {
|
|
62
|
+
if (parent !== home && (await isWorklineRoot(fs, parent, namespace))) {
|
|
63
|
+
throw new WorkspaceResolutionError("WORKSPACE_INVALID", `${root} está dentro del workspace ${parent}; --workspace nombra la raíz exacta.`);
|
|
64
|
+
}
|
|
65
|
+
parent = dirname(parent);
|
|
66
|
+
}
|
|
67
|
+
return { ...directory, root: await realpath(root), materialized: marked };
|
|
68
|
+
}
|
|
69
|
+
// A marker above the git boundary (particularly ~/.workflow) is not the
|
|
70
|
+
// source's own workspace. A marker within the repository wins over claims.
|
|
71
|
+
if (directory.materialized &&
|
|
72
|
+
directory.root !== home &&
|
|
73
|
+
(repo === null || contains(repo, directory.root)))
|
|
74
|
+
return { ...directory, root: await realpath(directory.root) };
|
|
75
|
+
if (repo !== null && (await gitCommonDirectory(repo)) !== null) {
|
|
76
|
+
const hubs = await declaringHubs(fs, home, namespace, repo);
|
|
77
|
+
const first = hubs[0];
|
|
78
|
+
if (hubs.length === 1 && first)
|
|
79
|
+
return { ...directory, root: first.root, materialized: true };
|
|
80
|
+
if (hubs.length > 1) {
|
|
81
|
+
const roots = [...new Set(hubs.map((hub) => hub.root))];
|
|
82
|
+
if (roots.length === 1 && roots[0])
|
|
83
|
+
return { ...directory, root: roots[0], materialized: true };
|
|
84
|
+
const units = join(home, `.${namespace}`, "worktrees");
|
|
85
|
+
const unitsRoot = await realpath(units).catch(() => units);
|
|
86
|
+
const unitRepo = await realpath(repo).catch(() => repo);
|
|
87
|
+
if (contains(unitsRoot, unitRepo)) {
|
|
88
|
+
const owners = [];
|
|
89
|
+
for (const root of roots) {
|
|
90
|
+
const owns = await hubUnitPaths(fs, new PathsService(namespace, home, root), unitsRoot);
|
|
91
|
+
if (owns(unitRepo))
|
|
92
|
+
owners.push(root);
|
|
93
|
+
}
|
|
94
|
+
if (owners.length === 1 && owners[0])
|
|
95
|
+
return { ...directory, root: owners[0], materialized: true };
|
|
96
|
+
}
|
|
97
|
+
throw new WorkspaceResolutionError("WORKSPACE_AMBIGUOUS", `El checkout es fuente de ${roots.join(", ")}; indica --workspace <ruta>.`, roots);
|
|
98
|
+
}
|
|
99
|
+
if (directory.root === home || (await isWorklineRoot(fs, home, namespace)))
|
|
100
|
+
throw new WorkspaceResolutionError("WORKSPACE_UNRESOLVED", `No hay hub registrado para ${repo}; indica --workspace o ejecuta aw en el hub.`);
|
|
101
|
+
}
|
|
102
|
+
if (cwd === home)
|
|
103
|
+
throw new WorkspaceResolutionError("WORKSPACE_INVALID", "$HOME no es un workspace; indica --workspace <ruta>.");
|
|
104
|
+
if (directory.root === home) {
|
|
105
|
+
if (repo !== null)
|
|
106
|
+
throw new WorkspaceResolutionError("WORKSPACE_UNRESOLVED", `No hay hub registrado para ${repo}; indica --workspace o ejecuta aw en el hub.`);
|
|
107
|
+
return { ...directory, root: cwd, materialized: false };
|
|
108
|
+
}
|
|
109
|
+
return { ...directory, root: directory.materialized ? directory.root : cwd };
|
|
110
|
+
}
|
|
111
|
+
export async function registerResolvedWorkspace(fs, home, directory) {
|
|
112
|
+
if (directory.root === home || !(await isWorklineRoot(fs, directory.root, directory.namespace)))
|
|
113
|
+
return null;
|
|
114
|
+
try {
|
|
115
|
+
await access(directory.root);
|
|
116
|
+
await registerHub(fs, new PathsService(directory.namespace, home, directory.root), directory.root);
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
return `No se pudo registrar el hub ${directory.root}: ${String(error)}`;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=workspace-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-resolution.js","sourceRoot":"","sources":["../../src/runtime/workspace-resolution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tacuchi/agent-workflow-cli",
|
|
3
|
-
"version": "25.
|
|
3
|
+
"version": "25.9.0",
|
|
4
4
|
"description": "Runtime CLI for Workline — the stages + loops + artifacts system for agent work. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, persist, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills resolve through `.workflow/skills.toml`. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": ["dist", "skills", "LICENSE", "README.md", "CHANGELOG.md"],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"build": "node scripts/clean-dist.mjs && tsc",
|
|
12
|
+
"build": "node scripts/clean-dist.mjs && tsc && node scripts/write-dist-manifest.mjs",
|
|
13
13
|
"build:watch": "node scripts/clean-dist.mjs && tsc --watch",
|
|
14
14
|
"test": "vitest run",
|
|
15
15
|
"test:watch": "vitest",
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"@types/react": "^18.3.28",
|
|
53
53
|
"ink-testing-library": "^4.0.0",
|
|
54
54
|
"typescript": "^5.7.3",
|
|
55
|
-
"
|
|
55
|
+
"vite": "^8.3.1",
|
|
56
|
+
"vitest": "^5.0.2"
|
|
56
57
|
},
|
|
57
58
|
"publishConfig": {
|
|
58
59
|
"access": "public"
|
|
@@ -64,6 +65,6 @@
|
|
|
64
65
|
"pg": "^8.23.0",
|
|
65
66
|
"pg-cursor": "^2.22.0",
|
|
66
67
|
"react": "^18.3.1",
|
|
67
|
-
"smol-toml": "^1.
|
|
68
|
+
"smol-toml": "^1.9.0"
|
|
68
69
|
}
|
|
69
70
|
}
|
package/skills/w/SKILL.md
CHANGED
|
@@ -68,7 +68,7 @@ Typical chain: prompt → `spec-new` generates `docs/specs/NNN-spec-<slug>.md`
|
|
|
68
68
|
|
|
69
69
|
> **A plan is a sequence of functional states.** Every `### Fn` phase names a verifiable state of the system, carries its own primary proof, and — **only when the change carries one** — declares where a temporary simulation lives and when it retires. Its `> Estado:` line (`pendiente` | `en ejecución` | `bloqueada` | `validada`) is machine state that `aw status` counts **alongside** the checkbox progress: ticking every checkbox is **not** validation, and neither is a proof nobody ran — a phase whose check could not be executed stays `bloqueada` until it runs and passes, stating on its `> Bloqueo:` line what it waits on. Execution runs those states without redesigning them — a structural deviation returns to `plan-refine`, a functional one to `spec-refine`.
|
|
70
70
|
|
|
71
|
-
> **Three axes, and none stands in for another.** A **task completed** is work done (checkboxes); a **phase validated** is a functional state
|
|
71
|
+
> **Three axes, and none stands in for another.** A **task completed** is work done (checkboxes); a **phase validated** is a demonstrated functional state (`> Estado: validada`); a **plan closed** is the validated solution — title-level `> Estado: done`, CLI-sealed `> Cierre:` with run evidence and `> Assurance:` with the verification verdict. All tasks or phases green do not imply final validation; `done` with open work is `inconsistent` in `aw status`. The runtime derives `plan_state` from both declaration and counters.
|
|
72
72
|
|
|
73
73
|
QUICK can **escalate live to SPEC** when the objective exceeds a quick (entry size gate) or the task grows mid-loop: with consent via structured-choice, the work line moves to the SPEC flow (draft via the `spec-new` procedure + `spec-refine-loop` directly); escalation to PLAN stays **deferred** (seed + pointer). See `loops/quick-loop/LOOP.md` § *QUICK delta*.
|
|
74
74
|
|
|
@@ -76,6 +76,8 @@ Both authoring entry points can **split** with consent: `spec-new` may split a m
|
|
|
76
76
|
|
|
77
77
|
### Operating context — where everything lands
|
|
78
78
|
|
|
79
|
+
`aw workspace-init --source alias:path[:rama]` adds local sources; `--workspace <dir>` selects the exact hub from a source checkout (no silent parent fallback). `aw workspace-move <destino>` moves a hub; `--repair` reconciles an external move. Source paths are local and portable. A document's registered branch takes precedence over the source's work branch; never fall back to `development`.
|
|
80
|
+
|
|
79
81
|
Before any loop, the AI resolves the **workspace root** on every prompt (closest `.<ns>/sessions/` ancestor, otherwise the invoked directory) and then the session to continue. The marker is evidence of materialization, not permission to use Workline; pure reads stay byte-identical. That decides where artifacts land:
|
|
80
82
|
|
|
81
83
|
| Trigger | → Behavior + routing |
|
|
@@ -16,7 +16,7 @@ What already happened: finished phases/tasks/gaps with their outcome (ref: plan-
|
|
|
16
16
|
> **Implemented is not validated (exec sessions).** A phase lands here only once the plan-doc's `> Estado: validada` was flipped. Work that is written but not yet proven stays in `Pending / Next` with its validation pending — a full set of ticked tasks never promotes a phase into this section. Continuous-batch phases move together only after their combined validation/review. Each closed phase records the **functional state reached** and, **only when the change carries one**, the **simulation boundary in force** — that, not the list of files touched, is what a resume actually needs.
|
|
17
17
|
|
|
18
18
|
## Pending / Next
|
|
19
|
-
The intent: what remains and what comes immediately next (seeded BEFORE executing — artifact-first). A resume starts here. In exec, record
|
|
19
|
+
The intent: what remains and what comes immediately next (seeded BEFORE executing — artifact-first). A resume starts here. In exec, record each effective batch (`id` · mode · phases), declared-vs-live regrouping, checks and its approved commit proposal/receipts, then the next functional state. A phase left `bloqueada` states here **what is missing to validate it**, so the next run knows what to execute before flipping the state.
|
|
20
20
|
|
|
21
21
|
## Open questions
|
|
22
22
|
Live doubts not yet resolved — the section exists only while there are any (rule 1). Deferred ones move to the session's `BACKLOG` or the flow doc's `## Open questions`.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- SCRIPTS.rollback.sql — reverse of the type-B migrations in SCRIPTS.sql.
|
|
2
|
+
-- NEVER run with a forward; a human/DBA applies the exported rollback if needed.
|
|
3
|
+
-- Each marker corresponds to a forward in SCRIPTS.sql. Type-A reads have no reverse.
|
|
4
|
+
|
|
5
|
+
-- [M1] <migration> — inverse of SCRIPTS.sql#M1
|
|
6
|
+
-- @category: 01-ddl-tablas
|
|
7
|
+
-- @stmt: 01-revertir-tabla
|
|
8
|
+
ALTER TABLE ... ;
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
-- What it is: SQL and remote-read context produced by a session. TWO roles are distinguished:
|
|
4
4
|
-- A) READ-ONLY remote queries: research context captured before plan approval, never
|
|
5
5
|
-- execution validation or a closing proof.
|
|
6
|
-
-- B) DDL/DML migrations
|
|
7
|
-
--
|
|
8
|
-
-- rollback) for a human/DBA to apply.
|
|
6
|
+
-- B) DDL/DML migrations: the AI DRAFTS the forwards here, NEVER executes them;
|
|
7
|
+
-- their reverses live in SCRIPTS.rollback.sql. A human/DBA applies the export.
|
|
9
8
|
--
|
|
10
9
|
-- Golden rule: the AI only EXECUTES type A (read-only). The sql-mutation-guard BLOCKS
|
|
11
10
|
-- execution of DML/DDL — that is why type B is DELIVERED, not run.
|
|
@@ -34,11 +33,8 @@ SELECT ...;
|
|
|
34
33
|
SELECT ...;
|
|
35
34
|
|
|
36
35
|
-- ============================================================
|
|
37
|
-
-- [M1] <migration> | Type: B — DO NOT EXECUTE (
|
|
38
|
-
-- exported to docs/scripts/ via export-*)
|
|
36
|
+
-- [M1] <migration> | Type: B — DO NOT EXECUTE (external application is handoff)
|
|
39
37
|
-- DB/MCP: <which> | Origin: <plan task>
|
|
40
38
|
-- ------------------------------------------------------------
|
|
41
|
-
-- forward:
|
|
42
39
|
ALTER TABLE ... ;
|
|
43
|
-
-- rollback
|
|
44
|
-
-- ALTER TABLE ... ;
|
|
40
|
+
-- Reverse: SCRIPTS.rollback.sql#M1 (separate artifact; never inline).
|
|
@@ -7,9 +7,9 @@ allowed-tools: ["Bash", "Read"]
|
|
|
7
7
|
## Run
|
|
8
8
|
|
|
9
9
|
1. `aw export-diagrams prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
-
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim**
|
|
11
|
-
3.
|
|
12
|
-
4. `
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** (including `scope.seal`), `state: "proposed"`, `artifacts` = `{ path, content }` per file. The approved `NNN` is immutable; 3 and 4 need no scope flags.
|
|
11
|
+
3. Write JSON with the file tool; `aw export-diagrams validate --format human < <file>` → preview + digest; confirm scope.
|
|
12
|
+
4. `aw export-diagrams apply --approval <digest> < <file>`. Rejected? Fix and revalidate.
|
|
13
13
|
|
|
14
14
|
## What it produces
|
|
15
15
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Use to promote
|
|
2
|
+
description: Use to promote manuals from N sessions into `docs/manuals` or `[docs] manuals`. The response selects an index, flat Markdown files or a numbered dossier. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
4
|
allowed-tools: ["Bash", "Read"]
|
|
5
5
|
---
|
|
@@ -7,14 +7,14 @@ allowed-tools: ["Bash", "Read"]
|
|
|
7
7
|
## Run
|
|
8
8
|
|
|
9
9
|
1. `aw export-manuals prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
-
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim**
|
|
11
|
-
3.
|
|
12
|
-
4. `
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** (including `scope.seal`), `state: "proposed"`, `artifacts` = `{ path, content }` per file. The approved `NNN` is immutable; 3 and 4 need no scope flags.
|
|
11
|
+
3. Write JSON with the file tool; `aw export-manuals validate --format human < <file>` → preview + digest; confirm scope.
|
|
12
|
+
4. `aw export-manuals apply --approval <digest> [--overwrite] < <file>`. Rejected? Fix and revalidate.
|
|
13
13
|
|
|
14
14
|
## What it produces
|
|
15
15
|
|
|
16
|
-
- `
|
|
17
|
-
-
|
|
16
|
+
- `INDEX.md` alone publishes the index (complement); direct `<slug>.md` files form the flat canon; a numbered dossier with README.md is regenerate. Destination: `docs/manuals` or `[docs] manuals`.
|
|
17
|
+
- Validate lists every replaced file; each requires `--overwrite`.
|
|
18
18
|
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
19
19
|
- Authoring ref: no longer loaded on the normal path.
|
|
20
20
|
|
|
@@ -7,9 +7,9 @@ allowed-tools: ["Bash", "Read"]
|
|
|
7
7
|
## Run
|
|
8
8
|
|
|
9
9
|
1. `aw export-reports prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
-
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim**
|
|
11
|
-
3.
|
|
12
|
-
4. `
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** (including `scope.seal`), `state: "proposed"`, `artifacts` = `{ path, content }` per file. The approved `NNN` is immutable; 3 and 4 need no scope flags.
|
|
11
|
+
3. Write JSON with the file tool; `aw export-reports validate --format human < <file>` → preview + digest; confirm scope.
|
|
12
|
+
4. `aw export-reports apply --approval <digest> < <file>`. Rejected? Fix and revalidate.
|
|
13
13
|
|
|
14
14
|
## What it produces
|
|
15
15
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Use to consolidate the workspace's pending SQL into a docs/scripts/ bundle from a declared origin — continuous forwards plus rollback. `aw export-scripts` checks shape and NEVER executes SQL. Never automatic.
|
|
3
|
-
argument-hint: "[--from sessions|bundles|workspace] [--exclude <nombre>] [--environment <ambiente>] [--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
3
|
+
argument-hint: "[--code <session>] [--from sessions|bundles|workspace] [--exclude <nombre>] [--environment <ambiente>] [--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
4
|
allowed-tools: ["Bash", "Read"]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Run
|
|
8
8
|
|
|
9
9
|
1. `aw export-scripts prepare --format human` (+ the flags above) → origin, material, destination, `input_digest`.
|
|
10
|
-
2. Answer with one JSON — `aw export-scripts --help` publishes the envelope. Copy
|
|
11
|
-
3.
|
|
12
|
-
4. `
|
|
10
|
+
2. Answer with one JSON — `aw export-scripts --help` publishes the envelope. Copy `scope` **verbatim**, including `scope.seal`; 3 and 4 never repeat flags. The approved `NNN` is immutable.
|
|
11
|
+
3. Write JSON with the file tool; `aw export-scripts validate --format human < <file>` → preview + digest; confirm scope.
|
|
12
|
+
4. `aw export-scripts apply --approval <digest> < <file>`. Rejected? Fix and revalidate.
|
|
13
13
|
|
|
14
14
|
## What it produces
|
|
15
15
|
|
|
16
|
-
-
|
|
16
|
+
- Bundle: README; forwards `01-ddl-tablas/`…`05-grants/NN-<nombre>.sql`; reverses in `rollback/<categoría>/`, global in `rollback/00-global/00-ROLLBACK.sql`.
|
|
17
17
|
- Nothing here executes SQL: applying the bundle is a handoff to an authorized operator.
|
|
18
18
|
- Never write into `docs/` with a file tool: one pass, all or nothing; no session touched.
|
|
19
19
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Use
|
|
2
|
+
description: Use for merge conflicts. `aw fix-git` summarizes, shows versions on demand, resolves partially and builds before commit; stops on recreated upstreams.
|
|
3
3
|
argument-hint: "[--source <alias> | --path <ruta>]"
|
|
4
4
|
allowed-tools: ["Bash", "Read"]
|
|
5
5
|
---
|
|
@@ -10,25 +10,24 @@ No loop, no session, never writes `docs/`. Any repo; output in the user's langua
|
|
|
10
10
|
|
|
11
11
|
**Hard floor:**
|
|
12
12
|
|
|
13
|
-
1. **
|
|
13
|
+
1. **the CLI owns the effects.** Never edit a conflicted file or `git add`/`commit` by hand. Binary/deletion → `resolutions`.
|
|
14
14
|
2. **Only unambiguous resolutions** — what evidence cannot settle is `state: "ambiguous"`; never take a whole side blind.
|
|
15
|
-
3. **
|
|
16
|
-
4. **Recreated upstream = STOP.**
|
|
15
|
+
3. **Commit separately**: preview, approval, `--confirm`; long build timeout. Never `--no-verify`/`--amend`/push/`--force`/`reset --hard`/`merge --abort` — proposed, never run.
|
|
16
|
+
4. **Recreated upstream = STOP.** `git fetch`: `forced update` → verify `git rev-list --left-right --count HEAD...@{upstream}` both > 0. Never merge/push retired commits; propose re-sync (backup `respaldo-<fecha>` + `reset --hard @{upstream}`). Check `<branch>...<branch>@{upstream}` too. No upstream → warn.
|
|
17
17
|
|
|
18
18
|
## Run
|
|
19
19
|
|
|
20
|
-
1.
|
|
21
|
-
2. Resolve
|
|
22
|
-
3.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
5. Propose the merge commit; on approval `aw fix-git commit --message "<mensaje>" --confirm`.
|
|
20
|
+
1. `aw fix-git prepare [--source <alias> | --path <ruta>]` summarizes kind, binary, bytes, EOL, allowed choices/cap and virtual base. Repeat `--show <ruta>` for versions; `--adapt <ruta>` includes tracked clean files, even after conflicts end.
|
|
21
|
+
2. Resolve by intent (`base`/`ours`/`theirs`); inspect code and `git log --merge -p -- <file>` if unclear.
|
|
22
|
+
3. Reply JSON copying `version`, `operation`, `input_digest`, any `scope`, `state: "proposed"`, and a subset of `artifacts: [{path,content}]` and/or `resolutions: [{path,choice}]`. Binary → `ours|theirs`; absent stage → `delete`; doubt → `ambiguous` with `reason`.
|
|
23
|
+
4. Write file-tool JSON → `aw fix-git apply [--source …] < <file>`. Partial? Repeat; no manual `git add`. No shell JSON.
|
|
24
|
+
5. Preview `aw fix-git commit --message "<mensaje>"`: build, included, `left_out`. After approval add `--confirm`; missing/failed build refuses. `ninguno` or `--skip-build "<motivo>"` reports skipped + origin. Use a long host timeout.
|
|
26
25
|
|
|
27
26
|
## What the CLI decides
|
|
28
27
|
|
|
29
|
-
- **Writable
|
|
30
|
-
- **Resolved**:
|
|
31
|
-
- **
|
|
28
|
+
- **Writable**: sealed conflicts + requested adaptations; stale stages fail.
|
|
29
|
+
- **Resolved**: `<<<<<<<`/`=======`/`>>>>>>>` fails; apply may be partial.
|
|
30
|
+
- **Close**: unmerged files or failed/missing build (without explicit skip) refuse commit.
|
|
32
31
|
|
|
33
32
|
## More context
|
|
34
33
|
|
|
@@ -32,9 +32,9 @@ Captures **work already produced in this conversation** — with or without host
|
|
|
32
32
|
- `state` — `proposed`, or `ambiguous` when the inventory already holds this work (explain in `reason`; the CLI turns that into a question, never a write);
|
|
33
33
|
- `decisions` — `{ category, slug, mode }`, plus `target` + `target_digest` when `mode` is `update`;
|
|
34
34
|
- `artifacts` — exactly one `{ path, content }`.
|
|
35
|
-
3.
|
|
35
|
+
3. Write JSON with the file tool; `aw persist validate --format human < <file>` → preview + digest.
|
|
36
36
|
4. **Confirm classification and destination** with the user via structured-choice, showing that preview.
|
|
37
|
-
5. `
|
|
37
|
+
5. `aw persist apply --approval <digest> --format human < <file>`.
|
|
38
38
|
|
|
39
39
|
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
40
40
|
|
|
@@ -20,8 +20,8 @@ checkboxes and `> Estado:` line in the living plan.
|
|
|
20
20
|
> **Hard floor — applies even if you read nothing beyond this file:**
|
|
21
21
|
>
|
|
22
22
|
> 1. **Session first** — create/resume the run's session before touching code: `aw session-create --type exec --name <slug>-plan-exec --objetivo "<one-line objective>"`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next`; `## Open questions` only while live doubts exist).
|
|
23
|
-
> 2. **Git/DB** — branch-check before a batch;
|
|
24
|
-
> checks/review
|
|
23
|
+
> 2. **Git/DB** — branch-check before a batch; the CLI commits exact changed paths once per source
|
|
24
|
+
> after batch checks/review and that batch's approval.
|
|
25
25
|
> Never `push`/`--amend`/`--no-verify`; DML/DDL stays in `SCRIPTS.sql`.
|
|
26
26
|
> 3. **Ask, don't invent** — user-dependent decisions go through questions with a recommended option first (≤3 content questions + the `flow` control `Compactar`/`Cerrar`).
|
|
27
27
|
> 4. **Language** — everything user-facing (questions, option labels, reports) goes in the **user's language**.
|
|
@@ -32,6 +32,8 @@ checkboxes and `> Estado:` line in the living plan.
|
|
|
32
32
|
2. Follow it end to end: check executability, infer live batches, execute each without internal
|
|
33
33
|
validation pauses, then validate/review/commit at its close.
|
|
34
34
|
|
|
35
|
+
`aw flow advance --session <NNN> --flow plan-exec --adopt` resumes an adopted plan. At a stuck frontier use `aw flow recover` (no effects) or `aw flow restart`; `aw flow annul` reopens a miscredited batch. After validation use `aw flow prove --session <NNN> --source <alias>` for each batch source before `aw flow submit`.
|
|
36
|
+
|
|
35
37
|
> `plan-exec-loop` is **not** a skill invocable by name — it is this command's operating manual. The command **is** the entry; the loop is its body. It is **resumable**: an existing CHECKPOINT continues from there.
|
|
36
38
|
|
|
37
39
|
## Two gates that send work back
|
|
@@ -97,7 +97,7 @@ with PLAN as destination. Neither belongs in Scope or acceptance criteria.
|
|
|
97
97
|
- The **gaps** the loop detects = weak sections of the schema (vague Requirement, Scope without `Out`, criteria whose outcome is not observable, open questions, undeclared assumptions, contradictions) **+ UI unspecified** when the requirement involves UI.
|
|
98
98
|
- Equivalent alternative: the user writes the draft by hand. Both paths produce the same file.
|
|
99
99
|
|
|
100
|
-
> **Reuse by escalation:** the live escalation from `/w:quick` (see [`../loops/quick-loop/LOOP.md`](../loops/quick-loop/LOOP.md) § *QUICK delta*) materializes its draft with **this same procedure** (same schema, same single-pass hard rule — **NO RESEARCH**, no reconnaissance: objective and context arrive adopted), with `## Origin` = "escalated from `/w:quick`" + the original prompt. The consent in the structured-choice equals invoking this command.
|
|
100
|
+
> **Reuse by escalation:** the live escalation from `/w:quick` (see [`../loops/quick-loop/LOOP.md`](../loops/quick-loop/LOOP.md) § *QUICK delta*) materializes its draft with **this same procedure** (same schema, same single-pass hard rule — **NO RESEARCH**, no reconnaissance: objective and context arrive adopted), with `## Origin` = "escalated from `/w:quick`" + the original prompt. The consent in the structured-choice equals invoking this command. Once published, copy each own quick branch to the new spec with `aw doc-branch set --doc spec:<NNN> --source <alias> --from quick:<NNN>`.
|
|
101
101
|
>
|
|
102
102
|
> **Reuse by adoption:** [`/w:persist`](persist.md) (requirement-shaped content) materializes its spec draft the same way, with `## Origin` = "adopted from host conversation" + attribution. Paraphrasing conclusions **already established in this conversation** is still single-pass and needs no reconnaissance — adoption is transcription, not investigation.
|
|
103
103
|
|
|
@@ -22,6 +22,8 @@ Without sources, it only materializes the minimal runtime under the lock: the CL
|
|
|
22
22
|
|
|
23
23
|
With `--source`, it configures/reconciles the metadata, branches and multiroot visibility. `workspace` is the reserved implicit source pointing at the root and cannot be configured as an alias. A workspace `skills.toml` is created only when there is a real capability override.
|
|
24
24
|
|
|
25
|
+
After declaring a source, use `aw set-pipeline <alias> <build|test> <comando|ninguno>` for each field. Both mirrors keep its versioned `## Pipeline` record; `ninguno` declares an explicit omission.
|
|
26
|
+
|
|
25
27
|
Both modes are idempotent. A normal first mutation also materializes the same runtime automatically, so this command is optional rather than a gate.
|
|
26
28
|
|
|
27
29
|
Done → the user can run `/w:spec-new`, `/w:plan-new` or `/w:quick`.
|