@tacuchi/agent-workflow-cli 4.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/README.md +70 -0
- package/dist/adapters/git-cli.d.ts +13 -0
- package/dist/adapters/git-cli.d.ts.map +1 -0
- package/dist/adapters/git-cli.js +73 -0
- package/dist/adapters/git-cli.js.map +1 -0
- package/dist/adapters/node-env.d.ts +7 -0
- package/dist/adapters/node-env.d.ts.map +1 -0
- package/dist/adapters/node-env.js +13 -0
- package/dist/adapters/node-env.js.map +1 -0
- package/dist/adapters/node-file-system.d.ts +10 -0
- package/dist/adapters/node-file-system.d.ts.map +1 -0
- package/dist/adapters/node-file-system.js +35 -0
- package/dist/adapters/node-file-system.js.map +1 -0
- package/dist/adapters/node-process.d.ts +6 -0
- package/dist/adapters/node-process.d.ts.map +1 -0
- package/dist/adapters/node-process.js +53 -0
- package/dist/adapters/node-process.js.map +1 -0
- package/dist/application/artifacts-service.d.ts +58 -0
- package/dist/application/artifacts-service.d.ts.map +1 -0
- package/dist/application/artifacts-service.js +129 -0
- package/dist/application/artifacts-service.js.map +1 -0
- package/dist/application/auto-plan.d.ts +19 -0
- package/dist/application/auto-plan.d.ts.map +1 -0
- package/dist/application/auto-plan.js +190 -0
- package/dist/application/auto-plan.js.map +1 -0
- package/dist/application/check-branch-service.d.ts +31 -0
- package/dist/application/check-branch-service.d.ts.map +1 -0
- package/dist/application/check-branch-service.js +140 -0
- package/dist/application/check-branch-service.js.map +1 -0
- package/dist/application/checkpoint-service.d.ts +77 -0
- package/dist/application/checkpoint-service.d.ts.map +1 -0
- package/dist/application/checkpoint-service.js +259 -0
- package/dist/application/checkpoint-service.js.map +1 -0
- package/dist/application/checkpoint-write-service.d.ts +42 -0
- package/dist/application/checkpoint-write-service.d.ts.map +1 -0
- package/dist/application/checkpoint-write-service.js +354 -0
- package/dist/application/checkpoint-write-service.js.map +1 -0
- package/dist/application/code-scan-service.d.ts +44 -0
- package/dist/application/code-scan-service.d.ts.map +1 -0
- package/dist/application/code-scan-service.js +211 -0
- package/dist/application/code-scan-service.js.map +1 -0
- package/dist/application/decisiones-service.d.ts +22 -0
- package/dist/application/decisiones-service.d.ts.map +1 -0
- package/dist/application/decisiones-service.js +31 -0
- package/dist/application/decisiones-service.js.map +1 -0
- package/dist/application/dependencias-service.d.ts +21 -0
- package/dist/application/dependencias-service.d.ts.map +1 -0
- package/dist/application/dependencias-service.js +31 -0
- package/dist/application/dependencias-service.js.map +1 -0
- package/dist/application/dev-bootstrap-dsn-service.d.ts +16 -0
- package/dist/application/dev-bootstrap-dsn-service.d.ts.map +1 -0
- package/dist/application/dev-bootstrap-dsn-service.js +31 -0
- package/dist/application/dev-bootstrap-dsn-service.js.map +1 -0
- package/dist/application/dev-graduate-service.d.ts +33 -0
- package/dist/application/dev-graduate-service.d.ts.map +1 -0
- package/dist/application/dev-graduate-service.js +116 -0
- package/dist/application/dev-graduate-service.js.map +1 -0
- package/dist/application/dev-only-services.d.ts +50 -0
- package/dist/application/dev-only-services.d.ts.map +1 -0
- package/dist/application/dev-only-services.js +155 -0
- package/dist/application/dev-only-services.js.map +1 -0
- package/dist/application/handoff.d.ts +19 -0
- package/dist/application/handoff.d.ts.map +1 -0
- package/dist/application/handoff.js +98 -0
- package/dist/application/handoff.js.map +1 -0
- package/dist/application/history-data-service.d.ts +26 -0
- package/dist/application/history-data-service.d.ts.map +1 -0
- package/dist/application/history-data-service.js +61 -0
- package/dist/application/history-data-service.js.map +1 -0
- package/dist/application/history-table.d.ts +16 -0
- package/dist/application/history-table.d.ts.map +1 -0
- package/dist/application/history-table.js +49 -0
- package/dist/application/history-table.js.map +1 -0
- package/dist/application/history-update-service.d.ts +24 -0
- package/dist/application/history-update-service.d.ts.map +1 -0
- package/dist/application/history-update-service.js +47 -0
- package/dist/application/history-update-service.js.map +1 -0
- package/dist/application/hook-branch-check.d.ts +22 -0
- package/dist/application/hook-branch-check.d.ts.map +1 -0
- package/dist/application/hook-branch-check.js +152 -0
- package/dist/application/hook-branch-check.js.map +1 -0
- package/dist/application/hook-sql-mutation-guard.d.ts +13 -0
- package/dist/application/hook-sql-mutation-guard.d.ts.map +1 -0
- package/dist/application/hook-sql-mutation-guard.js +119 -0
- package/dist/application/hook-sql-mutation-guard.js.map +1 -0
- package/dist/application/markdown.d.ts +4 -0
- package/dist/application/markdown.d.ts.map +1 -0
- package/dist/application/markdown.js +53 -0
- package/dist/application/markdown.js.map +1 -0
- package/dist/application/mcp-dbhub-launcher.d.ts +31 -0
- package/dist/application/mcp-dbhub-launcher.d.ts.map +1 -0
- package/dist/application/mcp-dbhub-launcher.js +84 -0
- package/dist/application/mcp-dbhub-launcher.js.map +1 -0
- package/dist/application/multiroot-service.d.ts +83 -0
- package/dist/application/multiroot-service.d.ts.map +1 -0
- package/dist/application/multiroot-service.js +440 -0
- package/dist/application/multiroot-service.js.map +1 -0
- package/dist/application/objetivo-service.d.ts +23 -0
- package/dist/application/objetivo-service.d.ts.map +1 -0
- package/dist/application/objetivo-service.js +32 -0
- package/dist/application/objetivo-service.js.map +1 -0
- package/dist/application/orchestration.d.ts +29 -0
- package/dist/application/orchestration.d.ts.map +1 -0
- package/dist/application/orchestration.js +291 -0
- package/dist/application/orchestration.js.map +1 -0
- package/dist/application/parsers/decisiones.d.ts +9 -0
- package/dist/application/parsers/decisiones.d.ts.map +1 -0
- package/dist/application/parsers/decisiones.js +55 -0
- package/dist/application/parsers/decisiones.js.map +1 -0
- package/dist/application/parsers/dependencias.d.ts +7 -0
- package/dist/application/parsers/dependencias.d.ts.map +1 -0
- package/dist/application/parsers/dependencias.js +76 -0
- package/dist/application/parsers/dependencias.js.map +1 -0
- package/dist/application/parsers/objetivo.d.ts +11 -0
- package/dist/application/parsers/objetivo.d.ts.map +1 -0
- package/dist/application/parsers/objetivo.js +73 -0
- package/dist/application/parsers/objetivo.js.map +1 -0
- package/dist/application/parsers/project-block.d.ts +35 -0
- package/dist/application/parsers/project-block.d.ts.map +1 -0
- package/dist/application/parsers/project-block.js +188 -0
- package/dist/application/parsers/project-block.js.map +1 -0
- package/dist/application/parsers/tasks.d.ts +17 -0
- package/dist/application/parsers/tasks.d.ts.map +1 -0
- package/dist/application/parsers/tasks.js +40 -0
- package/dist/application/parsers/tasks.js.map +1 -0
- package/dist/application/paths-service.d.ts +28 -0
- package/dist/application/paths-service.d.ts.map +1 -0
- package/dist/application/paths-service.js +67 -0
- package/dist/application/paths-service.js.map +1 -0
- package/dist/application/paths.d.ts +2 -0
- package/dist/application/paths.d.ts.map +1 -0
- package/dist/application/paths.js +12 -0
- package/dist/application/paths.js.map +1 -0
- package/dist/application/phase-detect-service.d.ts +28 -0
- package/dist/application/phase-detect-service.d.ts.map +1 -0
- package/dist/application/phase-detect-service.js +141 -0
- package/dist/application/phase-detect-service.js.map +1 -0
- package/dist/application/phase-next-service.d.ts +20 -0
- package/dist/application/phase-next-service.d.ts.map +1 -0
- package/dist/application/phase-next-service.js +97 -0
- package/dist/application/phase-next-service.js.map +1 -0
- package/dist/application/plugin-doctor-service.d.ts +60 -0
- package/dist/application/plugin-doctor-service.d.ts.map +1 -0
- package/dist/application/plugin-doctor-service.js +651 -0
- package/dist/application/plugin-doctor-service.js.map +1 -0
- package/dist/application/project-md-service.d.ts +13 -0
- package/dist/application/project-md-service.d.ts.map +1 -0
- package/dist/application/project-md-service.js +27 -0
- package/dist/application/project-md-service.js.map +1 -0
- package/dist/application/project-md-upsert-service.d.ts +48 -0
- package/dist/application/project-md-upsert-service.d.ts.map +1 -0
- package/dist/application/project-md-upsert-service.js +182 -0
- package/dist/application/project-md-upsert-service.js.map +1 -0
- package/dist/application/release-data-service.d.ts +81 -0
- package/dist/application/release-data-service.d.ts.map +1 -0
- package/dist/application/release-data-service.js +305 -0
- package/dist/application/release-data-service.js.map +1 -0
- package/dist/application/render/history-row.d.ts +10 -0
- package/dist/application/render/history-row.d.ts.map +1 -0
- package/dist/application/render/history-row.js +47 -0
- package/dist/application/render/history-row.js.map +1 -0
- package/dist/application/render/project-block.d.ts +17 -0
- package/dist/application/render/project-block.d.ts.map +1 -0
- package/dist/application/render/project-block.js +129 -0
- package/dist/application/render/project-block.js.map +1 -0
- package/dist/application/self/doctor-self.d.ts +27 -0
- package/dist/application/self/doctor-self.d.ts.map +1 -0
- package/dist/application/self/doctor-self.js +44 -0
- package/dist/application/self/doctor-self.js.map +1 -0
- package/dist/application/self/install-skill.d.ts +25 -0
- package/dist/application/self/install-skill.d.ts.map +1 -0
- package/dist/application/self/install-skill.js +176 -0
- package/dist/application/self/install-skill.js.map +1 -0
- package/dist/application/self/namespace-info.d.ts +8 -0
- package/dist/application/self/namespace-info.d.ts.map +1 -0
- package/dist/application/self/namespace-info.js +11 -0
- package/dist/application/self/namespace-info.js.map +1 -0
- package/dist/application/self/update-self.d.ts +10 -0
- package/dist/application/self/update-self.d.ts.map +1 -0
- package/dist/application/self/update-self.js +31 -0
- package/dist/application/self/update-self.js.map +1 -0
- package/dist/application/session-close-service.d.ts +30 -0
- package/dist/application/session-close-service.d.ts.map +1 -0
- package/dist/application/session-close-service.js +64 -0
- package/dist/application/session-close-service.js.map +1 -0
- package/dist/application/session-create-service.d.ts +40 -0
- package/dist/application/session-create-service.d.ts.map +1 -0
- package/dist/application/session-create-service.js +197 -0
- package/dist/application/session-create-service.js.map +1 -0
- package/dist/application/session-resolver.d.ts +39 -0
- package/dist/application/session-resolver.d.ts.map +1 -0
- package/dist/application/session-resolver.js +192 -0
- package/dist/application/session-resolver.js.map +1 -0
- package/dist/application/session-resume-service.d.ts +23 -0
- package/dist/application/session-resume-service.d.ts.map +1 -0
- package/dist/application/session-resume-service.js +44 -0
- package/dist/application/session-resume-service.js.map +1 -0
- package/dist/application/sessions-service.d.ts +31 -0
- package/dist/application/sessions-service.d.ts.map +1 -0
- package/dist/application/sessions-service.js +74 -0
- package/dist/application/sessions-service.js.map +1 -0
- package/dist/application/skill-index-service.d.ts +27 -0
- package/dist/application/skill-index-service.d.ts.map +1 -0
- package/dist/application/skill-index-service.js +99 -0
- package/dist/application/skill-index-service.js.map +1 -0
- package/dist/application/sources-service.d.ts +43 -0
- package/dist/application/sources-service.d.ts.map +1 -0
- package/dist/application/sources-service.js +176 -0
- package/dist/application/sources-service.js.map +1 -0
- package/dist/application/stack-detect.d.ts +7 -0
- package/dist/application/stack-detect.d.ts.map +1 -0
- package/dist/application/stack-detect.js +52 -0
- package/dist/application/stack-detect.js.map +1 -0
- package/dist/application/stack-service.d.ts +14 -0
- package/dist/application/stack-service.d.ts.map +1 -0
- package/dist/application/stack-service.js +13 -0
- package/dist/application/stack-service.js.map +1 -0
- package/dist/application/tasks-service.d.ts +27 -0
- package/dist/application/tasks-service.d.ts.map +1 -0
- package/dist/application/tasks-service.js +45 -0
- package/dist/application/tasks-service.js.map +1 -0
- package/dist/application/templates/objetivo.d.ts +3 -0
- package/dist/application/templates/objetivo.d.ts.map +1 -0
- package/dist/application/templates/objetivo.js +77 -0
- package/dist/application/templates/objetivo.js.map +1 -0
- package/dist/application/upgrade-hub-mode-service.d.ts +27 -0
- package/dist/application/upgrade-hub-mode-service.d.ts.map +1 -0
- package/dist/application/upgrade-hub-mode-service.js +114 -0
- package/dist/application/upgrade-hub-mode-service.js.map +1 -0
- package/dist/application/workspace-mode-service.d.ts +17 -0
- package/dist/application/workspace-mode-service.d.ts.map +1 -0
- package/dist/application/workspace-mode-service.js +39 -0
- package/dist/application/workspace-mode-service.js.map +1 -0
- package/dist/cli/commands/checkpoint-write.d.ts +4 -0
- package/dist/cli/commands/checkpoint-write.d.ts.map +1 -0
- package/dist/cli/commands/checkpoint-write.js +25 -0
- package/dist/cli/commands/checkpoint-write.js.map +1 -0
- package/dist/cli/commands/decisiones-list.d.ts +3 -0
- package/dist/cli/commands/decisiones-list.d.ts.map +1 -0
- package/dist/cli/commands/decisiones-list.js +17 -0
- package/dist/cli/commands/decisiones-list.js.map +1 -0
- package/dist/cli/commands/dependencias-list.d.ts +3 -0
- package/dist/cli/commands/dependencias-list.d.ts.map +1 -0
- package/dist/cli/commands/dependencias-list.js +11 -0
- package/dist/cli/commands/dependencias-list.js.map +1 -0
- package/dist/cli/commands/dev-only.d.ts +6 -0
- package/dist/cli/commands/dev-only.d.ts.map +1 -0
- package/dist/cli/commands/dev-only.js +51 -0
- package/dist/cli/commands/dev-only.js.map +1 -0
- package/dist/cli/commands/history-data.d.ts +3 -0
- package/dist/cli/commands/history-data.d.ts.map +1 -0
- package/dist/cli/commands/history-data.js +17 -0
- package/dist/cli/commands/history-data.js.map +1 -0
- package/dist/cli/commands/history-update.d.ts +3 -0
- package/dist/cli/commands/history-update.d.ts.map +1 -0
- package/dist/cli/commands/history-update.js +37 -0
- package/dist/cli/commands/history-update.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +3 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +53 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +56 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/multiroot.d.ts +4 -0
- package/dist/cli/commands/multiroot.d.ts.map +1 -0
- package/dist/cli/commands/multiroot.js +50 -0
- package/dist/cli/commands/multiroot.js.map +1 -0
- package/dist/cli/commands/objetivo-data.d.ts +3 -0
- package/dist/cli/commands/objetivo-data.d.ts.map +1 -0
- package/dist/cli/commands/objetivo-data.js +11 -0
- package/dist/cli/commands/objetivo-data.js.map +1 -0
- package/dist/cli/commands/orchestration.d.ts +5 -0
- package/dist/cli/commands/orchestration.d.ts.map +1 -0
- package/dist/cli/commands/orchestration.js +84 -0
- package/dist/cli/commands/orchestration.js.map +1 -0
- package/dist/cli/commands/plugin-doctor.d.ts +3 -0
- package/dist/cli/commands/plugin-doctor.d.ts.map +1 -0
- package/dist/cli/commands/plugin-doctor.js +29 -0
- package/dist/cli/commands/plugin-doctor.js.map +1 -0
- package/dist/cli/commands/project-md-upsert.d.ts +3 -0
- package/dist/cli/commands/project-md-upsert.d.ts.map +1 -0
- package/dist/cli/commands/project-md-upsert.js +132 -0
- package/dist/cli/commands/project-md-upsert.js.map +1 -0
- package/dist/cli/commands/release-data.d.ts +3 -0
- package/dist/cli/commands/release-data.d.ts.map +1 -0
- package/dist/cli/commands/release-data.js +27 -0
- package/dist/cli/commands/release-data.js.map +1 -0
- package/dist/cli/commands/self.d.ts +3 -0
- package/dist/cli/commands/self.d.ts.map +1 -0
- package/dist/cli/commands/self.js +41 -0
- package/dist/cli/commands/self.js.map +1 -0
- package/dist/cli/commands/session-artifacts.d.ts +3 -0
- package/dist/cli/commands/session-artifacts.d.ts.map +1 -0
- package/dist/cli/commands/session-artifacts.js +17 -0
- package/dist/cli/commands/session-artifacts.js.map +1 -0
- package/dist/cli/commands/session-close.d.ts +3 -0
- package/dist/cli/commands/session-close.d.ts.map +1 -0
- package/dist/cli/commands/session-close.js +43 -0
- package/dist/cli/commands/session-close.js.map +1 -0
- package/dist/cli/commands/session-create.d.ts +3 -0
- package/dist/cli/commands/session-create.d.ts.map +1 -0
- package/dist/cli/commands/session-create.js +42 -0
- package/dist/cli/commands/session-create.js.map +1 -0
- package/dist/cli/commands/session-resume.d.ts +3 -0
- package/dist/cli/commands/session-resume.d.ts.map +1 -0
- package/dist/cli/commands/session-resume.js +11 -0
- package/dist/cli/commands/session-resume.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +4 -0
- package/dist/cli/commands/sessions.d.ts.map +1 -0
- package/dist/cli/commands/sessions.js +26 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/commands/tasks-data.d.ts +3 -0
- package/dist/cli/commands/tasks-data.d.ts.map +1 -0
- package/dist/cli/commands/tasks-data.js +20 -0
- package/dist/cli/commands/tasks-data.js.map +1 -0
- package/dist/cli/commands/wave2-extras.d.ts +7 -0
- package/dist/cli/commands/wave2-extras.d.ts.map +1 -0
- package/dist/cli/commands/wave2-extras.js +87 -0
- package/dist/cli/commands/wave2-extras.js.map +1 -0
- package/dist/cli/commands/wave2-final.d.ts +8 -0
- package/dist/cli/commands/wave2-final.d.ts.map +1 -0
- package/dist/cli/commands/wave2-final.js +134 -0
- package/dist/cli/commands/wave2-final.js.map +1 -0
- package/dist/cli/commands/wave4d-simple.d.ts +6 -0
- package/dist/cli/commands/wave4d-simple.d.ts.map +1 -0
- package/dist/cli/commands/wave4d-simple.js +133 -0
- package/dist/cli/commands/wave4d-simple.js.map +1 -0
- package/dist/cli/interactive-menu.d.ts +9 -0
- package/dist/cli/interactive-menu.d.ts.map +1 -0
- package/dist/cli/interactive-menu.js +17 -0
- package/dist/cli/interactive-menu.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +208 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/parser.d.ts +17 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +125 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/registry.d.ts +15 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +16 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/render.d.ts +6 -0
- package/dist/cli/render.d.ts.map +1 -0
- package/dist/cli/render.js +13 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/cli/types.d.ts +17 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/domain/plugin.d.ts +21 -0
- package/dist/domain/plugin.d.ts.map +1 -0
- package/dist/domain/plugin.js +2 -0
- package/dist/domain/plugin.js.map +1 -0
- package/dist/domain/project.d.ts +22 -0
- package/dist/domain/project.d.ts.map +1 -0
- package/dist/domain/project.js +2 -0
- package/dist/domain/project.js.map +1 -0
- package/dist/domain/session.d.ts +39 -0
- package/dist/domain/session.d.ts.map +1 -0
- package/dist/domain/session.js +2 -0
- package/dist/domain/session.js.map +1 -0
- package/dist/domain/types.d.ts +16 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +2 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/ports/env.d.ts +6 -0
- package/dist/ports/env.d.ts.map +1 -0
- package/dist/ports/env.js +2 -0
- package/dist/ports/env.js.map +1 -0
- package/dist/ports/file-system.d.ts +20 -0
- package/dist/ports/file-system.d.ts.map +1 -0
- package/dist/ports/file-system.js +2 -0
- package/dist/ports/file-system.js.map +1 -0
- package/dist/ports/git.d.ts +15 -0
- package/dist/ports/git.d.ts.map +1 -0
- package/dist/ports/git.js +2 -0
- package/dist/ports/git.js.map +1 -0
- package/dist/ports/process.d.ts +16 -0
- package/dist/ports/process.d.ts.map +1 -0
- package/dist/ports/process.js +2 -0
- package/dist/ports/process.js.map +1 -0
- package/dist/runtime/config-service.d.ts +19 -0
- package/dist/runtime/config-service.d.ts.map +1 -0
- package/dist/runtime/config-service.js +145 -0
- package/dist/runtime/config-service.js.map +1 -0
- package/dist/runtime/namespace-resolver.d.ts +18 -0
- package/dist/runtime/namespace-resolver.d.ts.map +1 -0
- package/dist/runtime/namespace-resolver.js +58 -0
- package/dist/runtime/namespace-resolver.js.map +1 -0
- package/dist/runtime/namespace.d.ts +7 -0
- package/dist/runtime/namespace.d.ts.map +1 -0
- package/dist/runtime/namespace.js +12 -0
- package/dist/runtime/namespace.js.map +1 -0
- package/dist/runtime/types.d.ts +43 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +8 -0
- package/dist/runtime/types.js.map +1 -0
- package/package.json +57 -0
- package/skills/agent-workflow/LICENSE +21 -0
- package/skills/agent-workflow/MANUAL-FUNCIONAL.md +298 -0
- package/skills/agent-workflow/MANUAL-TECNICO.md +271 -0
- package/skills/agent-workflow/README.md +74 -0
- package/skills/agent-workflow/SKILL.md +111 -0
- package/skills/agent-workflow/docs/TEST-PLAN.md +163 -0
- package/skills/agent-workflow/references/checkpoint.md +59 -0
- package/skills/agent-workflow/references/dev-only.md +50 -0
- package/skills/agent-workflow/references/doctor.md +61 -0
- package/skills/agent-workflow/references/history.md +40 -0
- package/skills/agent-workflow/references/hooks.md +35 -0
- package/skills/agent-workflow/references/mcp.md +31 -0
- package/skills/agent-workflow/references/objetivo-tasks.md +64 -0
- package/skills/agent-workflow/references/orchestration.md +86 -0
- package/skills/agent-workflow/references/self.md +68 -0
- package/skills/agent-workflow/references/session-mgmt.md +109 -0
- package/skills/agent-workflow/references/sources.md +102 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { runMultiroot } from "../../application/multiroot-service.js";
|
|
2
|
+
function buildInput(args) {
|
|
3
|
+
const input = {};
|
|
4
|
+
// Repeated --path support via argv scan (the parser overwrites map values).
|
|
5
|
+
const repeatedPaths = collectRepeated(process.argv.slice(2), "--path");
|
|
6
|
+
if (repeatedPaths.length > 0)
|
|
7
|
+
input.paths = repeatedPaths;
|
|
8
|
+
const csv = args.values.get("paths");
|
|
9
|
+
if (csv !== undefined)
|
|
10
|
+
input.pathsCsv = csv;
|
|
11
|
+
if (args.flags.has("--from-sources"))
|
|
12
|
+
input.fromSources = true;
|
|
13
|
+
if (args.flags.has("--global"))
|
|
14
|
+
input.useGlobal = true;
|
|
15
|
+
const ws = args.values.get("workspace");
|
|
16
|
+
if (ws !== undefined)
|
|
17
|
+
input.workspace = ws;
|
|
18
|
+
if (args.flags.has("--skip-claude"))
|
|
19
|
+
input.skipClaude = true;
|
|
20
|
+
if (args.flags.has("--skip-codex"))
|
|
21
|
+
input.skipCodex = true;
|
|
22
|
+
return input;
|
|
23
|
+
}
|
|
24
|
+
function collectRepeated(argv, flag) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (let i = 0; i < argv.length; i++) {
|
|
27
|
+
if (argv[i] === flag && i + 1 < argv.length) {
|
|
28
|
+
out.push(argv[i + 1] ?? "");
|
|
29
|
+
i += 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return out.filter((p) => p.length > 0);
|
|
33
|
+
}
|
|
34
|
+
export const attachMultirootCommand = {
|
|
35
|
+
name: "attach-multiroot",
|
|
36
|
+
describe: "Configura visibilidad multi-root en Claude Code y Codex CLI.",
|
|
37
|
+
async execute(args, ctx) {
|
|
38
|
+
const data = await runMultiroot(ctx.fs, ctx.env, ctx.paths, "attach", buildInput(args));
|
|
39
|
+
return { ok: true, data, exitCode: 0 };
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const detachMultirootCommand = {
|
|
43
|
+
name: "detach-multiroot",
|
|
44
|
+
describe: "Quita visibilidad multi-root previamente configurada.",
|
|
45
|
+
async execute(args, ctx) {
|
|
46
|
+
const data = await runMultiroot(ctx.fs, ctx.env, ctx.paths, "detach", buildInput(args));
|
|
47
|
+
return { ok: true, data, exitCode: 0 };
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=multiroot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiroot.js","sourceRoot":"","sources":["../../../src/cli/commands/multiroot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objetivo-data.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/objetivo-data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,mBAAmB,EAAE,UAcjC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { runObjetivoCommand } from "../../application/objetivo-service.js";
|
|
2
|
+
export const objetivoDataCommand = {
|
|
3
|
+
name: "objetivo-data",
|
|
4
|
+
describe: "Parse OBJETIVO.md of a session into structured JSON.",
|
|
5
|
+
async execute(args, ctx) {
|
|
6
|
+
const code = args.values.get("code");
|
|
7
|
+
const data = await runObjetivoCommand(ctx.fs, ctx.env, ctx.paths, code !== undefined ? { code } : {}, ctx.runtime);
|
|
8
|
+
return { ok: true, data, exitCode: 0 };
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=objetivo-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objetivo-data.js","sourceRoot":"","sources":["../../../src/cli/commands/objetivo-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAM3E,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,sDAAsD;IAChE,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CACnC,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,KAAK,EACT,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAClC,GAAG,CAAC,OAAO,CACZ,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { QtcCommand } from "../registry.js";
|
|
2
|
+
export declare const autoPlanDecideCommand: QtcCommand;
|
|
3
|
+
export declare const topicChangeCheckCommand: QtcCommand;
|
|
4
|
+
export declare const specialtyChooseCommand: QtcCommand;
|
|
5
|
+
//# sourceMappingURL=orchestration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/orchestration.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAiBjD,eAAO,MAAM,qBAAqB,EAAE,UAUnC,CAAC;AASF,eAAO,MAAM,uBAAuB,EAAE,UAmBrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,UA0BpC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { shouldSkipFullPlan } from "../../application/auto-plan.js";
|
|
3
|
+
import { chooseSpecialty, detectTopicChange } from "../../application/orchestration.js";
|
|
4
|
+
import { writeStdout } from "../render.js";
|
|
5
|
+
async function readObjetivoIfPresent(args) {
|
|
6
|
+
const inline = args.values.get("objetivo");
|
|
7
|
+
if (inline !== undefined)
|
|
8
|
+
return inline;
|
|
9
|
+
const file = args.values.get("objetivo-file");
|
|
10
|
+
if (file !== undefined) {
|
|
11
|
+
try {
|
|
12
|
+
return await readFile(file, "utf8");
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
export const autoPlanDecideCommand = {
|
|
21
|
+
name: "auto-plan-decide",
|
|
22
|
+
describe: "Decide plan scope (skip|lite|full) for an OBJETIVO.",
|
|
23
|
+
async execute(args) {
|
|
24
|
+
const objetivo = await readObjetivoIfPresent(args);
|
|
25
|
+
const result = shouldSkipFullPlan(objetivo ?? "");
|
|
26
|
+
// Mirror Python json.dumps which emits floats with `.0` suffix even when integral.
|
|
27
|
+
writeStdout(`${stringifyWithFloatField(result, "eta_hours")}\n`);
|
|
28
|
+
return { ok: true, exitCode: 0 };
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
function stringifyWithFloatField(value, floatField) {
|
|
32
|
+
const json = JSON.stringify(value, null, 2);
|
|
33
|
+
// Replace `"floatField": <integer>` with `"floatField": <integer>.0` (preserve Python repr).
|
|
34
|
+
const re = new RegExp(`("${floatField}":\\s+)(-?\\d+)(,?)$`, "gm");
|
|
35
|
+
return json.replace(re, "$1$2.0$3");
|
|
36
|
+
}
|
|
37
|
+
export const topicChangeCheckCommand = {
|
|
38
|
+
name: "topic-change-check",
|
|
39
|
+
describe: "Check whether the current request diverges from session OBJETIVO.",
|
|
40
|
+
async execute(args) {
|
|
41
|
+
const objetivo = await readObjetivoIfPresent(args);
|
|
42
|
+
const request = args.values.get("request");
|
|
43
|
+
if (!objetivo || !request) {
|
|
44
|
+
return {
|
|
45
|
+
ok: false,
|
|
46
|
+
error: {
|
|
47
|
+
code: "INVALID_INPUT",
|
|
48
|
+
message: "se requieren --objetivo (o --objetivo-file) y --request",
|
|
49
|
+
},
|
|
50
|
+
data: { error: "se requieren --objetivo (o --objetivo-file) y --request" },
|
|
51
|
+
exitCode: 1,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return { ok: true, data: detectTopicChange(objetivo, request), exitCode: 0 };
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
export const specialtyChooseCommand = {
|
|
58
|
+
name: "specialty-choose",
|
|
59
|
+
describe: "Recommend specialty skills for a phase + OBJETIVO.",
|
|
60
|
+
async execute(args) {
|
|
61
|
+
const phase = args.values.get("phase");
|
|
62
|
+
if (!phase) {
|
|
63
|
+
return {
|
|
64
|
+
ok: false,
|
|
65
|
+
error: { code: "INVALID_INPUT", message: "--phase es obligatorio" },
|
|
66
|
+
data: { error: "--phase es obligatorio" },
|
|
67
|
+
exitCode: 1,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const objetivo = await readObjetivoIfPresent(args);
|
|
71
|
+
const result = chooseSpecialty(phase, objetivo ?? "");
|
|
72
|
+
return {
|
|
73
|
+
ok: true,
|
|
74
|
+
data: {
|
|
75
|
+
phase,
|
|
76
|
+
suggestions: result.suggestions,
|
|
77
|
+
rationale: result.rationale,
|
|
78
|
+
invoke_explicitly: result.invoke_explicitly,
|
|
79
|
+
},
|
|
80
|
+
exitCode: 0,
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=orchestration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../../src/cli/commands/orchestration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin-doctor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,mBAAmB,EAAE,UA2BjC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { runPluginDoctor, } from "../../application/plugin-doctor-service.js";
|
|
2
|
+
export const pluginDoctorCommand = {
|
|
3
|
+
name: "plugin-doctor",
|
|
4
|
+
describe: "Health check del plugin (frontmatter, manifests, hooks, MCP, exports).",
|
|
5
|
+
async execute(args, ctx) {
|
|
6
|
+
const input = {};
|
|
7
|
+
const root = args.values.get("plugin-root") ?? args.plugin.pluginRoot;
|
|
8
|
+
if (root !== undefined)
|
|
9
|
+
input.pluginRoot = root;
|
|
10
|
+
const flow = args.plugin.flow;
|
|
11
|
+
if (flow !== undefined)
|
|
12
|
+
input.flow = flow;
|
|
13
|
+
const pluginVersion = args.plugin.pluginVersion ?? args.values.get("plugin-version");
|
|
14
|
+
if (pluginVersion !== undefined)
|
|
15
|
+
input.pluginVersion = pluginVersion;
|
|
16
|
+
const pluginName = args.values.get("plugin-name");
|
|
17
|
+
if (pluginName !== undefined)
|
|
18
|
+
input.pluginName = pluginName;
|
|
19
|
+
const compatRange = args.plugin.compat ?? args.values.get("compat-range");
|
|
20
|
+
if (compatRange !== undefined)
|
|
21
|
+
input.compatRange = compatRange;
|
|
22
|
+
const exportsFile = args.values.get("exports-file");
|
|
23
|
+
if (exportsFile !== undefined)
|
|
24
|
+
input.exportsFile = exportsFile;
|
|
25
|
+
const { data, hasError } = await runPluginDoctor(ctx.fs, ctx.env, ctx.paths, ctx.runtime, input);
|
|
26
|
+
return { ok: true, data, exitCode: hasError ? 1 : 0 };
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=plugin-doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,4CAA4C,CAAC;AAMpD,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,wEAAwE;IAClF,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACtE,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACrF,IAAI,aAAa,KAAK,SAAS;YAAE,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAC9C,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,OAAO,EACX,KAAK,CACN,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-md-upsert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/project-md-upsert.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,sBAAsB,EAAE,UAqEpC,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { runProjectMdRead } from "../../application/project-md-service.js";
|
|
2
|
+
import { runProjectMdUpsertWrite, } from "../../application/project-md-upsert-service.js";
|
|
3
|
+
export const projectMdUpsertCommand = {
|
|
4
|
+
name: "project-md-upsert",
|
|
5
|
+
describe: "Read or update the QTC-PROJECT block in CLAUDE.md/AGENTS.md.",
|
|
6
|
+
async execute(args, ctx) {
|
|
7
|
+
const verbose = args.flags.has("--verbose");
|
|
8
|
+
if (args.flags.has("--read")) {
|
|
9
|
+
const data = await runProjectMdRead(ctx.fs, ctx.env, ctx.paths, { verbose });
|
|
10
|
+
return { ok: true, data, exitCode: 0 };
|
|
11
|
+
}
|
|
12
|
+
const opAndFolder = pickOperation(args);
|
|
13
|
+
if (!opAndFolder) {
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
error: {
|
|
17
|
+
code: "INVALID_INPUT",
|
|
18
|
+
message: "Especifica una operación: --init | --add-session | --remove-session | --update-phase | --read",
|
|
19
|
+
},
|
|
20
|
+
exitCode: 1,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const input = {
|
|
24
|
+
op: opAndFolder.op,
|
|
25
|
+
verbose,
|
|
26
|
+
};
|
|
27
|
+
if (opAndFolder.folder !== undefined)
|
|
28
|
+
input.sessionFolder = opAndFolder.folder;
|
|
29
|
+
const phase = args.values.get("phase");
|
|
30
|
+
if (phase !== undefined)
|
|
31
|
+
input.phase = phase;
|
|
32
|
+
const branchesRaw = args.values.get("branches");
|
|
33
|
+
if (branchesRaw !== undefined) {
|
|
34
|
+
input.branches = branchesRaw
|
|
35
|
+
.split(",")
|
|
36
|
+
.map((s) => s.trim())
|
|
37
|
+
.filter((s) => s.length > 0);
|
|
38
|
+
}
|
|
39
|
+
const proyecto = args.values.get("proyecto");
|
|
40
|
+
if (proyecto !== undefined)
|
|
41
|
+
input.proyecto = proyecto;
|
|
42
|
+
const mode = args.values.get("mode");
|
|
43
|
+
if (mode === "hub" || mode === "project")
|
|
44
|
+
input.mode = mode;
|
|
45
|
+
const workingBranches = parseWorkingBranches(args.valuesMulti.get("working-branch") ?? []);
|
|
46
|
+
if (workingBranches !== undefined)
|
|
47
|
+
input.workingBranches = workingBranches;
|
|
48
|
+
const fuentesParsed = parseFuentesSpecs(args.valuesMulti.get("fuente") ?? []);
|
|
49
|
+
if ("error" in fuentesParsed) {
|
|
50
|
+
return {
|
|
51
|
+
ok: false,
|
|
52
|
+
error: { code: "INVALID_INPUT", message: fuentesParsed.error },
|
|
53
|
+
exitCode: 1,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (fuentesParsed.fuentes.length > 0)
|
|
57
|
+
input.fuentes = fuentesParsed.fuentes;
|
|
58
|
+
const mainBranch = args.values.get("main-branch");
|
|
59
|
+
if (mainBranch !== undefined && mainBranch.length > 0)
|
|
60
|
+
input.mainBranch = mainBranch;
|
|
61
|
+
const data = await runProjectMdUpsertWrite(ctx.fs, ctx.env, ctx.paths, input);
|
|
62
|
+
if ("error" in data) {
|
|
63
|
+
return {
|
|
64
|
+
ok: false,
|
|
65
|
+
error: { code: "INVALID_INPUT", message: data.error },
|
|
66
|
+
data,
|
|
67
|
+
exitCode: 1,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return { ok: data.ok, data, exitCode: data.ok ? 0 : 1 };
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
function pickOperation(args) {
|
|
74
|
+
if (args.flags.has("--init"))
|
|
75
|
+
return { op: "init" };
|
|
76
|
+
for (const op of ["add-session", "remove-session", "update-phase"]) {
|
|
77
|
+
const folder = args.values.get(op);
|
|
78
|
+
if (folder !== undefined)
|
|
79
|
+
return { op, folder };
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
function parseWorkingBranches(specs) {
|
|
84
|
+
const out = {};
|
|
85
|
+
for (const raw of specs) {
|
|
86
|
+
const idx = raw.indexOf(":");
|
|
87
|
+
if (idx <= 0)
|
|
88
|
+
continue;
|
|
89
|
+
const alias = raw.slice(0, idx).trim();
|
|
90
|
+
const branch = raw.slice(idx + 1).trim();
|
|
91
|
+
if (alias && branch)
|
|
92
|
+
out[alias] = branch;
|
|
93
|
+
}
|
|
94
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
95
|
+
}
|
|
96
|
+
function parseFuentesSpecs(specs) {
|
|
97
|
+
const out = [];
|
|
98
|
+
for (const raw of specs) {
|
|
99
|
+
const trimmed = raw.trim();
|
|
100
|
+
const firstColon = trimmed.indexOf(":");
|
|
101
|
+
if (firstColon <= 0) {
|
|
102
|
+
return {
|
|
103
|
+
error: `--fuente formato inválido '${raw}': se esperaba 'alias:path[:rama-principal]'`,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const alias = trimmed.slice(0, firstColon).trim();
|
|
107
|
+
const rest = trimmed.slice(firstColon + 1);
|
|
108
|
+
const lastColon = rest.lastIndexOf(":");
|
|
109
|
+
let path;
|
|
110
|
+
let rama;
|
|
111
|
+
if (lastColon < 0) {
|
|
112
|
+
path = rest.trim();
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
path = rest.slice(0, lastColon).trim();
|
|
116
|
+
const ramaCandidate = rest.slice(lastColon + 1).trim();
|
|
117
|
+
if (ramaCandidate.length > 0)
|
|
118
|
+
rama = ramaCandidate;
|
|
119
|
+
}
|
|
120
|
+
if (!alias || !path) {
|
|
121
|
+
return {
|
|
122
|
+
error: `--fuente formato inválido '${raw}': alias y path son obligatorios`,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const entry = { alias, path };
|
|
126
|
+
if (rama !== undefined)
|
|
127
|
+
entry.mainBranch = rama;
|
|
128
|
+
out.push(entry);
|
|
129
|
+
}
|
|
130
|
+
return { fuentes: out };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=project-md-upsert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-md-upsert.js","sourceRoot":"","sources":["../../../src/cli/commands/project-md-upsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-data.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/release-data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,kBAAkB,EAAE,UAkBhC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { runReleaseData } from "../../application/release-data-service.js";
|
|
2
|
+
export const releaseDataCommand = {
|
|
3
|
+
name: "release-data",
|
|
4
|
+
describe: "Dump consolidado para los skills release y release-scripts.",
|
|
5
|
+
async execute(args, ctx) {
|
|
6
|
+
const input = {};
|
|
7
|
+
const since = args.values.get("since");
|
|
8
|
+
if (since !== undefined)
|
|
9
|
+
input.since = since;
|
|
10
|
+
const source = args.values.get("source");
|
|
11
|
+
if (source !== undefined)
|
|
12
|
+
input.sourceAlias = source;
|
|
13
|
+
if (args.flags.has("--include-graduated"))
|
|
14
|
+
input.includeGraduated = true;
|
|
15
|
+
if (args.flags.has("--no-open"))
|
|
16
|
+
input.includeOpen = false;
|
|
17
|
+
if (args.flags.has("--no-closed"))
|
|
18
|
+
input.includeClosed = false;
|
|
19
|
+
if (args.flags.has("--skip-content"))
|
|
20
|
+
input.skipContent = true;
|
|
21
|
+
if (args.flags.has("--verbose"))
|
|
22
|
+
input.verbose = true;
|
|
23
|
+
const data = await runReleaseData(ctx.fs, ctx.env, ctx.paths, input, ctx.runtime);
|
|
24
|
+
return { ok: true, data, exitCode: 0 };
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=release-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-data.js","sourceRoot":"","sources":["../../../src/cli/commands/release-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAM3E,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,6DAA6D;IACvE,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,KAAK,GAAyC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACzE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAEtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,WAAW,EAAE,UAmCzB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { selfDoctor } from "../../application/self/doctor-self.js";
|
|
2
|
+
import { selfInstallSkill } from "../../application/self/install-skill.js";
|
|
3
|
+
import { selfNamespace } from "../../application/self/namespace-info.js";
|
|
4
|
+
import { selfUpdate } from "../../application/self/update-self.js";
|
|
5
|
+
export const selfCommand = {
|
|
6
|
+
name: "self",
|
|
7
|
+
describe: "Manage the agent-workflow CLI itself (namespace, doctor, update, install-skill).",
|
|
8
|
+
async execute(args, ctx) {
|
|
9
|
+
const sub = args.rest[0];
|
|
10
|
+
switch (sub) {
|
|
11
|
+
case "namespace":
|
|
12
|
+
return selfNamespace(ctx);
|
|
13
|
+
case "doctor":
|
|
14
|
+
return selfDoctor(ctx);
|
|
15
|
+
case "update":
|
|
16
|
+
return selfUpdate(ctx);
|
|
17
|
+
case "install-skill":
|
|
18
|
+
return selfInstallSkill(args, ctx);
|
|
19
|
+
case undefined:
|
|
20
|
+
case "":
|
|
21
|
+
return {
|
|
22
|
+
ok: false,
|
|
23
|
+
error: {
|
|
24
|
+
code: "INVALID_INPUT",
|
|
25
|
+
message: "uso: self <namespace|doctor|update|install-skill>",
|
|
26
|
+
},
|
|
27
|
+
exitCode: 1,
|
|
28
|
+
};
|
|
29
|
+
default:
|
|
30
|
+
return {
|
|
31
|
+
ok: false,
|
|
32
|
+
error: {
|
|
33
|
+
code: "INVALID_INPUT",
|
|
34
|
+
message: `unknown self subcommand: '${sub}'. uso: self <namespace|doctor|update|install-skill>`,
|
|
35
|
+
},
|
|
36
|
+
exitCode: 1,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=self.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMnE,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,kFAAkF;IAC5F,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,eAAe;gBAClB,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC;YACf,KAAK,EAAE;gBACL,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,mDAAmD;qBAC7D;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;YACJ;gBACE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,6BAA6B,GAAG,sDAAsD;qBAChG;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;QACN,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-artifacts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session-artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,uBAAuB,EAAE,UAYrC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { runArtifactsCommand } from "../../application/artifacts-service.js";
|
|
2
|
+
export const sessionArtifactsCommand = {
|
|
3
|
+
name: "session-artifacts",
|
|
4
|
+
describe: "Consolidated dump of a session's artifacts (objetivo + tasks + flags).",
|
|
5
|
+
async execute(args, ctx) {
|
|
6
|
+
const code = args.values.get("code");
|
|
7
|
+
const verbose = args.flags.has("--verbose");
|
|
8
|
+
const input = {};
|
|
9
|
+
if (code !== undefined)
|
|
10
|
+
input.code = code;
|
|
11
|
+
if (verbose)
|
|
12
|
+
input.verbose = true;
|
|
13
|
+
const data = await runArtifactsCommand(ctx.fs, ctx.env, ctx.paths, input);
|
|
14
|
+
return { ok: true, data, exitCode: 0 };
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=session-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-artifacts.js","sourceRoot":"","sources":["../../../src/cli/commands/session-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAM7E,MAAM,CAAC,MAAM,uBAAuB,GAAe;IACjD,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,wEAAwE;IAClF,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAyC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,EAAE,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-close.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session-close.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,eAAO,MAAM,mBAAmB,EAAE,UAiCjC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { runSessionClose, } from "../../application/session-close-service.js";
|
|
2
|
+
import { writeStdout } from "../render.js";
|
|
3
|
+
export const sessionCloseCommand = {
|
|
4
|
+
name: "session-close",
|
|
5
|
+
describe: "Close a session: mark HISTORY as closed and remove from QTC-PROJECT.",
|
|
6
|
+
async execute(args, ctx) {
|
|
7
|
+
const input = {};
|
|
8
|
+
const code = args.values.get("code");
|
|
9
|
+
if (code !== undefined)
|
|
10
|
+
input.code = code;
|
|
11
|
+
const dec = args.values.get("graduated-decisions");
|
|
12
|
+
if (dec !== undefined)
|
|
13
|
+
input.graduatedDecisions = dec;
|
|
14
|
+
const plan = args.values.get("graduated-plan");
|
|
15
|
+
if (plan !== undefined)
|
|
16
|
+
input.graduatedPlan = plan;
|
|
17
|
+
const scripts = args.values.get("graduated-scripts");
|
|
18
|
+
if (scripts !== undefined)
|
|
19
|
+
input.graduatedScripts = scripts;
|
|
20
|
+
const design = args.values.get("graduated-design");
|
|
21
|
+
if (design !== undefined)
|
|
22
|
+
input.graduatedDesign = design;
|
|
23
|
+
const rfc = args.values.get("graduated-rfc");
|
|
24
|
+
if (rfc !== undefined)
|
|
25
|
+
input.graduatedRfc = rfc;
|
|
26
|
+
const refs = args.values.get("refs");
|
|
27
|
+
if (refs !== undefined)
|
|
28
|
+
input.refs = refs;
|
|
29
|
+
const data = await runSessionClose(ctx.fs, ctx.env, ctx.paths, input);
|
|
30
|
+
if ("error" in data) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
error: { code: "INVALID_INPUT", message: data.error },
|
|
34
|
+
data,
|
|
35
|
+
exitCode: 1,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Mirror Python: cmd_project_md_upsert prints first, then cmd_session_close prints.
|
|
39
|
+
writeStdout(`${JSON.stringify(data.projectMd, null, 2)}\n`);
|
|
40
|
+
return { ok: true, data: data.sessionClose, exitCode: 0 };
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=session-close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-close.js","sourceRoot":"","sources":["../../../src/cli/commands/session-close.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,sEAAsE;IAChF,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,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,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,YAAY,GAAG,GAAG,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;QAE1C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;gBACrD,IAAI;gBACJ,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,oFAAoF;QACpF,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-create.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session-create.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,eAAO,MAAM,oBAAoB,EAAE,UAgClC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { runSessionCreate, } from "../../application/session-create-service.js";
|
|
2
|
+
import { writeStdout } from "../render.js";
|
|
3
|
+
export const sessionCreateCommand = {
|
|
4
|
+
name: "session-create",
|
|
5
|
+
describe: "Create a new session: folder + OBJETIVO + HISTORY row + QTC-PROJECT entry.",
|
|
6
|
+
async execute(args, ctx) {
|
|
7
|
+
const input = {};
|
|
8
|
+
const flow = args.values.get("flow") ?? args.plugin.flow;
|
|
9
|
+
if (flow !== undefined)
|
|
10
|
+
input.flow = flow;
|
|
11
|
+
const name = args.values.get("name");
|
|
12
|
+
if (name !== undefined)
|
|
13
|
+
input.name = name;
|
|
14
|
+
const objetivo = args.values.get("objetivo");
|
|
15
|
+
if (objetivo !== undefined)
|
|
16
|
+
input.objetivo = objetivo;
|
|
17
|
+
const branches = args.values.get("branches");
|
|
18
|
+
if (branches !== undefined)
|
|
19
|
+
input.branchesRaw = branches;
|
|
20
|
+
const from = args.values.get("from");
|
|
21
|
+
if (from !== undefined)
|
|
22
|
+
input.origenRaw = from;
|
|
23
|
+
const tipo = args.values.get("tipo");
|
|
24
|
+
if (tipo !== undefined)
|
|
25
|
+
input.tipo = tipo;
|
|
26
|
+
const modalidad = args.values.get("modalidad");
|
|
27
|
+
if (modalidad !== undefined)
|
|
28
|
+
input.modalidad = modalidad;
|
|
29
|
+
const data = await runSessionCreate(ctx.fs, ctx.env, ctx.paths, input);
|
|
30
|
+
if ("error" in data) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
error: { code: "INVALID_INPUT", message: data.error },
|
|
34
|
+
data,
|
|
35
|
+
exitCode: 1,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
writeStdout(`${JSON.stringify(data.projectMd, null, 2)}\n`);
|
|
39
|
+
return { ok: true, data: data.sessionCreate, exitCode: 0 };
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=session-create.js.map
|
|
@@ -0,0 +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;AAIrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC9C,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,4EAA4E;IACtF,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACzD,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,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC;QACzD,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,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,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;gBACrD,IAAI;gBACJ,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;CACF,CAAC"}
|