maestro-flow 0.4.25 → 0.5.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/.agents/skills/learn-follow/SKILL.md +1 -1
- package/.agents/skills/learn-investigate/SKILL.md +2 -2
- package/.agents/skills/learn-second-opinion/SKILL.md +1 -1
- package/.agents/skills/maestro/SKILL.md +6 -3
- package/.agents/skills/maestro-analyze/SKILL.md +53 -2
- package/.agents/skills/maestro-blueprint/SKILL.md +36 -1
- package/.agents/skills/maestro-brainstorm/SKILL.md +40 -1
- package/.agents/skills/maestro-collab/SKILL.md +1 -1
- package/.agents/skills/maestro-companion/SKILL.md +4 -4
- package/.agents/skills/maestro-composer/SKILL.md +1 -1
- package/.agents/skills/maestro-execute/SKILL.md +29 -6
- package/.agents/skills/maestro-fork/SKILL.md +24 -0
- package/.agents/skills/maestro-grill/SKILL.md +38 -1
- package/.agents/skills/maestro-help/SKILL.md +5 -6
- package/.agents/skills/maestro-help/index/catalog.json +7 -9
- package/.agents/skills/maestro-help/phases/02-search-present.md +2 -4
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +7 -8
- package/.agents/skills/maestro-impeccable/SKILL.md +13 -0
- package/.agents/skills/maestro-init/SKILL.md +11 -0
- package/.agents/skills/maestro-merge/SKILL.md +17 -1
- package/.agents/skills/maestro-milestone-audit/SKILL.md +34 -2
- package/.agents/skills/maestro-milestone-complete/SKILL.md +19 -1
- package/.agents/skills/maestro-milestone-release/SKILL.md +18 -0
- package/.agents/skills/maestro-next/SKILL.md +8 -9
- package/.agents/skills/maestro-overlay/SKILL.md +3 -3
- package/.agents/skills/maestro-plan/SKILL.md +21 -3
- package/.agents/skills/maestro-quick/SKILL.md +13 -1
- package/.agents/skills/maestro-ralph/SKILL.md +18 -20
- package/.agents/skills/maestro-ralph-beta/SKILL.md +10 -16
- package/.agents/skills/maestro-ralph-execute/SKILL.md +1 -2
- package/.agents/skills/maestro-roadmap/SKILL.md +28 -2
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +2 -2
- package/.agents/skills/maestro-tools-register/SKILL.md +2 -2
- package/.agents/skills/maestro-ui-codify/SKILL.md +20 -0
- package/.agents/skills/maestro-update/SKILL.md +59 -116
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +3 -3
- package/.agents/skills/manage-harvest/SKILL.md +1 -1
- package/.agents/skills/manage-knowhow/SKILL.md +3 -1
- package/.agents/skills/manage-knowhow-capture/SKILL.md +3 -2
- package/.agents/skills/manage-wiki/SKILL.md +17 -8
- package/.agents/skills/quality-auto-test/SKILL.md +3 -3
- package/.agents/skills/quality-debug/SKILL.md +4 -4
- package/.agents/skills/quality-refactor/SKILL.md +2 -2
- package/.agents/skills/quality-retrospective/SKILL.md +5 -5
- package/.agents/skills/quality-review/SKILL.md +4 -4
- package/.agents/skills/quality-sync/SKILL.md +1 -0
- package/.agents/skills/quality-test/SKILL.md +4 -4
- package/.agents/skills/spec-add/SKILL.md +6 -4
- package/.agents/skills/spec-setup/SKILL.md +1 -1
- package/.agy/skills/learn-follow/SKILL.md +1 -1
- package/.agy/skills/learn-investigate/SKILL.md +2 -2
- package/.agy/skills/learn-second-opinion/SKILL.md +1 -1
- package/.agy/skills/maestro/SKILL.md +6 -3
- package/.agy/skills/maestro-analyze/SKILL.md +53 -2
- package/.agy/skills/maestro-blueprint/SKILL.md +36 -1
- package/.agy/skills/maestro-brainstorm/SKILL.md +40 -1
- package/.agy/skills/maestro-collab/SKILL.md +1 -1
- package/.agy/skills/maestro-companion/SKILL.md +4 -4
- package/.agy/skills/maestro-composer/SKILL.md +1 -1
- package/.agy/skills/maestro-execute/SKILL.md +29 -6
- package/.agy/skills/maestro-fork/SKILL.md +24 -0
- package/.agy/skills/maestro-grill/SKILL.md +38 -1
- package/.agy/skills/maestro-help/SKILL.md +5 -6
- package/.agy/skills/maestro-help/index/catalog.json +7 -9
- package/.agy/skills/maestro-help/phases/02-search-present.md +2 -4
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +7 -8
- package/.agy/skills/maestro-impeccable/SKILL.md +13 -0
- package/.agy/skills/maestro-init/SKILL.md +11 -0
- package/.agy/skills/maestro-merge/SKILL.md +17 -1
- package/.agy/skills/maestro-milestone-audit/SKILL.md +34 -2
- package/.agy/skills/maestro-milestone-complete/SKILL.md +19 -1
- package/.agy/skills/maestro-milestone-release/SKILL.md +18 -0
- package/.agy/skills/maestro-next/SKILL.md +8 -9
- package/.agy/skills/maestro-overlay/SKILL.md +3 -3
- package/.agy/skills/maestro-plan/SKILL.md +21 -3
- package/.agy/skills/maestro-quick/SKILL.md +13 -1
- package/.agy/skills/maestro-ralph/SKILL.md +18 -20
- package/.agy/skills/maestro-ralph-beta/SKILL.md +10 -16
- package/.agy/skills/maestro-ralph-execute/SKILL.md +1 -2
- package/.agy/skills/maestro-roadmap/SKILL.md +28 -2
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +2 -2
- package/.agy/skills/maestro-tools-register/SKILL.md +2 -2
- package/.agy/skills/maestro-ui-codify/SKILL.md +20 -0
- package/.agy/skills/maestro-update/SKILL.md +59 -116
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +3 -3
- package/.agy/skills/manage-harvest/SKILL.md +1 -1
- package/.agy/skills/manage-knowhow/SKILL.md +3 -1
- package/.agy/skills/manage-knowhow-capture/SKILL.md +3 -2
- package/.agy/skills/manage-wiki/SKILL.md +17 -8
- package/.agy/skills/quality-auto-test/SKILL.md +3 -3
- package/.agy/skills/quality-debug/SKILL.md +4 -4
- package/.agy/skills/quality-refactor/SKILL.md +2 -2
- package/.agy/skills/quality-retrospective/SKILL.md +5 -5
- package/.agy/skills/quality-review/SKILL.md +4 -4
- package/.agy/skills/quality-sync/SKILL.md +1 -0
- package/.agy/skills/quality-test/SKILL.md +4 -4
- package/.agy/skills/spec-add/SKILL.md +6 -4
- package/.agy/skills/spec-setup/SKILL.md +1 -1
- package/.claude/commands/learn-follow.md +1 -1
- package/.claude/commands/learn-investigate.md +2 -2
- package/.claude/commands/learn-second-opinion.md +1 -1
- package/.claude/commands/maestro-analyze.md +53 -2
- package/.claude/commands/maestro-blueprint.md +36 -1
- package/.claude/commands/maestro-brainstorm.md +40 -1
- package/.claude/commands/maestro-collab.md +1 -1
- package/.claude/commands/maestro-companion.md +4 -4
- package/.claude/commands/maestro-composer.md +1 -1
- package/.claude/commands/maestro-execute.md +29 -6
- package/.claude/commands/maestro-fork.md +24 -0
- package/.claude/commands/maestro-grill.md +38 -1
- package/.claude/commands/maestro-impeccable.md +13 -0
- package/.claude/commands/maestro-init.md +11 -0
- package/.claude/commands/maestro-merge.md +17 -1
- package/.claude/commands/maestro-milestone-audit.md +34 -2
- package/.claude/commands/maestro-milestone-complete.md +19 -1
- package/.claude/commands/maestro-milestone-release.md +18 -0
- package/.claude/commands/maestro-next.md +8 -9
- package/.claude/commands/maestro-overlay.md +3 -3
- package/.claude/commands/maestro-plan.md +21 -3
- package/.claude/commands/maestro-quick.md +13 -1
- package/.claude/commands/maestro-ralph-beta.md +8 -14
- package/.claude/commands/maestro-ralph-execute.md +1 -2
- package/.claude/commands/maestro-ralph.md +18 -20
- package/.claude/commands/maestro-roadmap.md +28 -2
- package/.claude/commands/maestro-swarm-workflow.md +2 -2
- package/.claude/commands/maestro-tools-register.md +2 -2
- package/.claude/commands/maestro-ui-codify.md +20 -0
- package/.claude/commands/maestro-update.md +59 -116
- package/.claude/commands/maestro.md +6 -3
- package/.claude/commands/manage-codebase-rebuild.md +3 -3
- package/.claude/commands/manage-harvest.md +1 -1
- package/.claude/commands/manage-knowhow-capture.md +3 -2
- package/.claude/commands/manage-knowhow.md +3 -1
- package/.claude/commands/manage-wiki.md +17 -8
- package/.claude/commands/quality-auto-test.md +3 -3
- package/.claude/commands/quality-debug.md +4 -4
- package/.claude/commands/quality-refactor.md +2 -2
- package/.claude/commands/quality-retrospective.md +5 -5
- package/.claude/commands/quality-review.md +4 -4
- package/.claude/commands/quality-sync.md +1 -0
- package/.claude/commands/quality-test.md +4 -4
- package/.claude/commands/spec-add.md +6 -4
- package/.claude/commands/spec-setup.md +1 -1
- package/.claude/skills/maestro-help/SKILL.md +5 -6
- package/.claude/skills/maestro-help/index/catalog.json +7 -9
- package/.claude/skills/maestro-help/phases/02-search-present.md +2 -4
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +7 -8
- package/.codex/skills/codify-to-knowhow/SKILL.md +5 -4
- package/.codex/skills/learn-decompose/SKILL.md +1 -1
- package/.codex/skills/learn-follow/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +1 -1
- package/.codex/skills/learn-second-opinion/SKILL.md +2 -2
- package/.codex/skills/maestro/SKILL.md +29 -31
- package/.codex/skills/maestro-analyze/SKILL.md +16 -3
- package/.codex/skills/maestro-blueprint/SKILL.md +8 -1
- package/.codex/skills/maestro-brainstorm/SKILL.md +8 -5
- package/.codex/skills/maestro-companion/SKILL.md +2 -2
- package/.codex/skills/maestro-composer/SKILL.md +0 -1
- package/.codex/skills/maestro-execute/SKILL.md +11 -8
- package/.codex/skills/maestro-fork/SKILL.md +4 -0
- package/.codex/skills/maestro-grill/SKILL.md +8 -2
- package/.codex/skills/maestro-help/SKILL.md +6 -9
- package/.codex/skills/maestro-help/catalog.json +6 -8
- package/.codex/skills/maestro-impeccable/SKILL.md +2 -0
- package/.codex/skills/maestro-init/SKILL.md +3 -0
- package/.codex/skills/maestro-merge/SKILL.md +5 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +14 -9
- package/.codex/skills/maestro-milestone-complete/SKILL.md +6 -1
- package/.codex/skills/maestro-milestone-release/SKILL.md +4 -0
- package/.codex/skills/maestro-next/SKILL.md +3 -4
- package/.codex/skills/maestro-plan/SKILL.md +5 -2
- package/.codex/skills/maestro-quick/SKILL.md +4 -1
- package/.codex/skills/maestro-ralph/SKILL.md +14 -20
- package/.codex/skills/maestro-ralph-beta/SKILL.md +13 -21
- package/.codex/skills/maestro-ralph-execute/SKILL.md +2 -2
- package/.codex/skills/maestro-roadmap/SKILL.md +5 -2
- package/.codex/skills/maestro-tools-register/SKILL.md +1 -1
- package/.codex/skills/maestro-ui-codify/SKILL.md +7 -4
- package/.codex/skills/maestro-update/SKILL.md +35 -130
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -2
- package/.codex/skills/manage-harvest/SKILL.md +2 -2
- package/.codex/skills/manage-knowhow/SKILL.md +1 -1
- package/.codex/skills/manage-status/SKILL.md +1 -2
- package/.codex/skills/quality-auto-test/SKILL.md +2 -2
- package/.codex/skills/quality-debug/SKILL.md +33 -27
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-retrospective/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +3 -4
- package/.codex/skills/security-audit/SKILL.md +17 -1
- package/.codex/skills/spec-add/SKILL.md +5 -3
- package/.codex/skills/spec-remove/SKILL.md +2 -2
- package/.codex/skills/team-coordinate/SKILL.md +1 -1
- package/.codex/skills/team-review/SKILL.md +2 -2
- package/.codex/skills/wiki-digest/SKILL.md +2 -2
- package/chains/brainstorm-driven.json +2 -34
- package/chains/full-lifecycle.json +2 -34
- package/chains/next-milestone.json +0 -7
- package/chains/quality-loop.json +3 -19
- package/chains/roadmap-driven.json +2 -34
- package/chains/spec-driven.json +2 -34
- package/chains/ui-craft-build.json +2 -23
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +9 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.test.js +346 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +8 -11
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +3 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +9 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +9 -4
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +3 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +4 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +5 -3
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +2 -0
- package/dist/src/agents/cli-agent-runner.d.ts +2 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +3 -0
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/cli.js +1 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts +2 -0
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +3 -1
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +55 -5
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +2 -1
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +16 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/kg.d.ts +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +285 -112
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/commands/knowhow.d.ts.map +1 -1
- package/dist/src/commands/knowhow.js +28 -37
- package/dist/src/commands/knowhow.js.map +1 -1
- package/dist/src/commands/ralph.js +1 -1
- package/dist/src/commands/ralph.js.map +1 -1
- package/dist/src/commands/search.d.ts +36 -0
- package/dist/src/commands/search.d.ts.map +1 -0
- package/dist/src/commands/search.js +120 -0
- package/dist/src/commands/search.js.map +1 -0
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +59 -8
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +7 -0
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +36 -9
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts +18 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +31 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/component-defs.d.ts +13 -0
- package/dist/src/core/component-defs.d.ts.map +1 -1
- package/dist/src/core/component-defs.js +37 -85
- package/dist/src/core/component-defs.js.map +1 -1
- package/dist/src/core/skill-converter.d.ts +25 -0
- package/dist/src/core/skill-converter.d.ts.map +1 -0
- package/dist/src/core/skill-converter.js +605 -0
- package/dist/src/core/skill-converter.js.map +1 -0
- package/dist/src/graph/codegraph-adapter.d.ts +147 -0
- package/dist/src/graph/codegraph-adapter.d.ts.map +1 -0
- package/dist/src/graph/codegraph-adapter.js +266 -0
- package/dist/src/graph/codegraph-adapter.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +4 -0
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +14 -1
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/context-format.d.ts +46 -0
- package/dist/src/hooks/context-format.d.ts.map +1 -0
- package/dist/src/hooks/context-format.js +58 -0
- package/dist/src/hooks/context-format.js.map +1 -0
- package/dist/src/hooks/index.d.ts +2 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +92 -7
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/kg-context-injector.d.ts +19 -0
- package/dist/src/hooks/kg-context-injector.d.ts.map +1 -0
- package/dist/src/hooks/kg-context-injector.js +139 -0
- package/dist/src/hooks/kg-context-injector.js.map +1 -0
- package/dist/src/hooks/kg-sync-hook.d.ts +22 -0
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -0
- package/dist/src/hooks/kg-sync-hook.js +139 -0
- package/dist/src/hooks/kg-sync-hook.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.js +2 -2
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +0 -1
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +66 -13
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts +8 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +45 -29
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/hooks/wiki-role-loader.js +1 -1
- package/dist/src/hooks/wiki-role-loader.js.map +1 -1
- package/dist/src/ralph/cmd-skills.d.ts.map +1 -1
- package/dist/src/ralph/cmd-skills.js +9 -2
- package/dist/src/ralph/cmd-skills.js.map +1 -1
- package/dist/src/ralph/skill-scanner.d.ts +1 -1
- package/dist/src/ralph/skill-scanner.d.ts.map +1 -1
- package/dist/src/ralph/skill-scanner.js +14 -0
- package/dist/src/ralph/skill-scanner.js.map +1 -1
- package/dist/src/ralph/status-schema.d.ts +1 -1
- package/dist/src/ralph/status-schema.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts +2 -1
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +7 -4
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +27 -3
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-writer.d.ts +10 -1
- package/dist/src/tools/spec-writer.d.ts.map +1 -1
- package/dist/src/tools/spec-writer.js +86 -7
- package/dist/src/tools/spec-writer.js.map +1 -1
- package/dist/src/tools/store-knowhow.d.ts.map +1 -1
- package/dist/src/tools/store-knowhow.js +27 -7
- package/dist/src/tools/store-knowhow.js.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.js +7 -1
- package/dist/src/tui/install-ui/ExecutionView.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +5 -1
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/types/index.d.ts +2 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/cli-format.d.ts +6 -0
- package/dist/src/utils/cli-format.d.ts.map +1 -1
- package/dist/src/utils/cli-format.js +25 -0
- package/dist/src/utils/cli-format.js.map +1 -1
- package/dist/src/utils/update-notices.js +29 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +5 -2
- package/templates/workflows/specs/node-catalog.md +0 -2
- package/workflows/analyze.md +9 -4
- package/workflows/auto-test.md +2 -2
- package/workflows/business-test.md +1 -1
- package/workflows/claude-instructions.md +23 -11
- package/workflows/codex-instructions.md +2 -3
- package/workflows/execute.md +153 -7
- package/workflows/fork.md +1 -1
- package/workflows/integration-test.md +1 -1
- package/workflows/maestro-super.md +1 -1
- package/workflows/maestro.codex.md +18 -34
- package/workflows/maestro.md +34 -42
- package/workflows/review.md +1 -1
- package/workflows/status.md +2 -2
- package/workflows/swarm/wf-verify.js +1 -1
- package/workflows/test-gen.md +2 -2
- package/workflows/test.md +1 -1
- package/workflows/updates/README.md +41 -0
- package/workflows/updates/update-v3-setup.md +79 -0
- package/workflows/verify.md +7 -1
- package/.agents/skills/learn-retro/SKILL.md +0 -159
- package/.agents/skills/maestro-learn/SKILL.md +0 -142
- package/.agents/skills/maestro-verify/SKILL.md +0 -146
- package/.agents/skills/manage-codebase-refresh/SKILL.md +0 -62
- package/.agents/skills/manage-learn/SKILL.md +0 -67
- package/.agents/skills/wiki-connect/SKILL.md +0 -64
- package/.agents/skills/wiki-digest/SKILL.md +0 -70
- package/.agy/skills/learn-retro/SKILL.md +0 -159
- package/.agy/skills/maestro-learn/SKILL.md +0 -142
- package/.agy/skills/maestro-verify/SKILL.md +0 -146
- package/.agy/skills/manage-codebase-refresh/SKILL.md +0 -62
- package/.agy/skills/manage-learn/SKILL.md +0 -64
- package/.agy/skills/wiki-connect/SKILL.md +0 -64
- package/.agy/skills/wiki-digest/SKILL.md +0 -70
- package/.claude/commands/learn-retro.md +0 -157
- package/.claude/commands/maestro-learn.md +0 -140
- package/.claude/commands/maestro-verify.md +0 -144
- package/.claude/commands/manage-codebase-refresh.md +0 -60
- package/.claude/commands/manage-learn.md +0 -65
- package/.claude/commands/wiki-connect.md +0 -62
- package/.claude/commands/wiki-digest.md +0 -68
- package/.codex/skills/maestro-verify/SKILL.md +0 -254
- package/chains/execute-verify.json +0 -59
- package/chains/singles/verify.json +0 -26
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter to use @colbymchenry/codegraph as the extraction engine.
|
|
3
|
+
*
|
|
4
|
+
* CodeGraph provides tree-sitter-based (WASM) code parsing with support for
|
|
5
|
+
* 19 languages and 21 framework resolvers. This adapter wraps its API for
|
|
6
|
+
* Maestro's use, translating between the two type systems.
|
|
7
|
+
*
|
|
8
|
+
* Falls back gracefully when the package is not installed: callers should
|
|
9
|
+
* check isAvailable() or isCodeGraphAvailable() before calling index/sync.
|
|
10
|
+
*/
|
|
11
|
+
export interface CodeGraphIndexResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
filesIndexed: number;
|
|
14
|
+
filesSkipped: number;
|
|
15
|
+
filesErrored: number;
|
|
16
|
+
nodeCount: number;
|
|
17
|
+
edgeCount: number;
|
|
18
|
+
durationMs: number;
|
|
19
|
+
errors: Array<{
|
|
20
|
+
message: string;
|
|
21
|
+
filePath?: string;
|
|
22
|
+
severity: string;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export interface CodeGraphSyncResult {
|
|
26
|
+
filesChecked: number;
|
|
27
|
+
filesAdded: number;
|
|
28
|
+
filesModified: number;
|
|
29
|
+
filesRemoved: number;
|
|
30
|
+
nodesUpdated: number;
|
|
31
|
+
durationMs: number;
|
|
32
|
+
changedFilePaths?: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface CodeGraphStatsResult {
|
|
35
|
+
nodeCount: number;
|
|
36
|
+
edgeCount: number;
|
|
37
|
+
fileCount: number;
|
|
38
|
+
nodesByKind: Record<string, number>;
|
|
39
|
+
edgesByKind: Record<string, number>;
|
|
40
|
+
filesByLanguage: Record<string, number>;
|
|
41
|
+
dbSizeBytes: number;
|
|
42
|
+
}
|
|
43
|
+
export interface CodeGraphProgress {
|
|
44
|
+
phase: 'scanning' | 'parsing' | 'storing' | 'resolving';
|
|
45
|
+
current: number;
|
|
46
|
+
total: number;
|
|
47
|
+
currentFile?: string;
|
|
48
|
+
}
|
|
49
|
+
export declare class CodeGraphAdapter {
|
|
50
|
+
private projectRoot;
|
|
51
|
+
private cgInstance;
|
|
52
|
+
private available;
|
|
53
|
+
constructor(projectRoot: string);
|
|
54
|
+
/**
|
|
55
|
+
* Check if the @colbymchenry/codegraph package can be loaded.
|
|
56
|
+
* Result is cached after the first successful probe.
|
|
57
|
+
*/
|
|
58
|
+
isAvailable(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Full project indexing with tree-sitter extraction.
|
|
61
|
+
*
|
|
62
|
+
* If the project has not been initialized with CodeGraph yet, this will
|
|
63
|
+
* call `CodeGraph.init()` (which creates the `.codegraph/` directory and
|
|
64
|
+
* database). Otherwise it opens the existing project and runs `indexAll()`.
|
|
65
|
+
*/
|
|
66
|
+
index(options?: {
|
|
67
|
+
onProgress?: (progress: CodeGraphProgress) => void;
|
|
68
|
+
signal?: AbortSignal;
|
|
69
|
+
verbose?: boolean;
|
|
70
|
+
}): Promise<CodeGraphIndexResult>;
|
|
71
|
+
/**
|
|
72
|
+
* Incremental sync -- re-index only changed files.
|
|
73
|
+
*/
|
|
74
|
+
sync(options?: {
|
|
75
|
+
onProgress?: (progress: CodeGraphProgress) => void;
|
|
76
|
+
}): Promise<CodeGraphSyncResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Get graph statistics.
|
|
79
|
+
*/
|
|
80
|
+
stats(): Promise<CodeGraphStatsResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Get detected frameworks in the project (e.g. "express", "react", "nestjs").
|
|
83
|
+
*/
|
|
84
|
+
getDetectedFrameworks(): Promise<string[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Check whether this project has already been initialized by CodeGraph
|
|
87
|
+
* (i.e. `.codegraph/` directory and database exist).
|
|
88
|
+
*/
|
|
89
|
+
isInitialized(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Resolve a Maestro-style node ID (e.g. "function:tools/spec-loader.ts:loadSpecs")
|
|
92
|
+
* to a CodeGraph node. Also accepts CodeGraph hash-based IDs directly.
|
|
93
|
+
*
|
|
94
|
+
* Returns the full CodeGraph node object, or null if not found.
|
|
95
|
+
*/
|
|
96
|
+
resolveNode(maestroId: string): Promise<any | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Get callers of a node, accepting either CodeGraph or Maestro-style IDs.
|
|
99
|
+
*/
|
|
100
|
+
getCallers(nodeId: string, maxDepth?: number): Promise<Array<{
|
|
101
|
+
node: any;
|
|
102
|
+
edge: any;
|
|
103
|
+
}>>;
|
|
104
|
+
/**
|
|
105
|
+
* Get callees of a node, accepting either CodeGraph or Maestro-style IDs.
|
|
106
|
+
*/
|
|
107
|
+
getCallees(nodeId: string, maxDepth?: number): Promise<Array<{
|
|
108
|
+
node: any;
|
|
109
|
+
edge: any;
|
|
110
|
+
}>>;
|
|
111
|
+
/**
|
|
112
|
+
* Get full context for a node (CodeGraph's getContext).
|
|
113
|
+
*/
|
|
114
|
+
getContext(nodeId: string): Promise<any | null>;
|
|
115
|
+
/**
|
|
116
|
+
* Search nodes in the CodeGraph index.
|
|
117
|
+
*/
|
|
118
|
+
searchNodes(query: string, options?: {
|
|
119
|
+
limit?: number;
|
|
120
|
+
kinds?: string[];
|
|
121
|
+
}): Promise<Array<{
|
|
122
|
+
node: any;
|
|
123
|
+
score: number;
|
|
124
|
+
}>>;
|
|
125
|
+
/**
|
|
126
|
+
* Get nodes in a specific file.
|
|
127
|
+
*/
|
|
128
|
+
getNodesInFile(filePath: string): Promise<any[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Release the underlying CodeGraph instance and database connection.
|
|
131
|
+
*/
|
|
132
|
+
close(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Ensure we have a live CodeGraph instance.
|
|
135
|
+
*
|
|
136
|
+
* - If the project is already initialized, opens it.
|
|
137
|
+
* - If `forWrite` and not initialized, initializes a fresh project.
|
|
138
|
+
* - If `!forWrite` and not initialized, throws.
|
|
139
|
+
*/
|
|
140
|
+
private ensureInstance;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if @colbymchenry/codegraph can be loaded in this environment.
|
|
144
|
+
* Useful for feature-gating without instantiating a full adapter.
|
|
145
|
+
*/
|
|
146
|
+
export declare function isCodeGraphAvailable(): boolean;
|
|
147
|
+
//# sourceMappingURL=codegraph-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegraph-adapter.d.ts","sourceRoot":"","sources":["../../../src/graph/codegraph-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter to use @colbymchenry/codegraph as the extraction engine.
|
|
3
|
+
*
|
|
4
|
+
* CodeGraph provides tree-sitter-based (WASM) code parsing with support for
|
|
5
|
+
* 19 languages and 21 framework resolvers. This adapter wraps its API for
|
|
6
|
+
* Maestro's use, translating between the two type systems.
|
|
7
|
+
*
|
|
8
|
+
* Falls back gracefully when the package is not installed: callers should
|
|
9
|
+
* check isAvailable() or isCodeGraphAvailable() before calling index/sync.
|
|
10
|
+
*/
|
|
11
|
+
import { createRequire } from 'node:module';
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Adapter class
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
export class CodeGraphAdapter {
|
|
17
|
+
projectRoot;
|
|
18
|
+
cgInstance = null;
|
|
19
|
+
available = null;
|
|
20
|
+
constructor(projectRoot) {
|
|
21
|
+
this.projectRoot = projectRoot;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if the @colbymchenry/codegraph package can be loaded.
|
|
25
|
+
* Result is cached after the first successful probe.
|
|
26
|
+
*/
|
|
27
|
+
isAvailable() {
|
|
28
|
+
if (this.available !== null)
|
|
29
|
+
return this.available;
|
|
30
|
+
try {
|
|
31
|
+
require('@colbymchenry/codegraph');
|
|
32
|
+
this.available = true;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
this.available = false;
|
|
36
|
+
}
|
|
37
|
+
return this.available;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Full project indexing with tree-sitter extraction.
|
|
41
|
+
*
|
|
42
|
+
* If the project has not been initialized with CodeGraph yet, this will
|
|
43
|
+
* call `CodeGraph.init()` (which creates the `.codegraph/` directory and
|
|
44
|
+
* database). Otherwise it opens the existing project and runs `indexAll()`.
|
|
45
|
+
*/
|
|
46
|
+
async index(options) {
|
|
47
|
+
const cg = await this.ensureInstance(/* forWrite */ true);
|
|
48
|
+
const result = await cg.indexAll({
|
|
49
|
+
onProgress: options?.onProgress,
|
|
50
|
+
signal: options?.signal,
|
|
51
|
+
verbose: options?.verbose,
|
|
52
|
+
});
|
|
53
|
+
// Run reference resolution after indexing for full edge coverage
|
|
54
|
+
cg.resolveReferences();
|
|
55
|
+
return {
|
|
56
|
+
success: result.success,
|
|
57
|
+
filesIndexed: result.filesIndexed,
|
|
58
|
+
filesSkipped: result.filesSkipped,
|
|
59
|
+
filesErrored: result.filesErrored,
|
|
60
|
+
nodeCount: result.nodesCreated,
|
|
61
|
+
edgeCount: result.edgesCreated,
|
|
62
|
+
durationMs: result.durationMs,
|
|
63
|
+
errors: result.errors.map((e) => ({
|
|
64
|
+
message: e.message,
|
|
65
|
+
filePath: e.filePath,
|
|
66
|
+
severity: e.severity,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Incremental sync -- re-index only changed files.
|
|
72
|
+
*/
|
|
73
|
+
async sync(options) {
|
|
74
|
+
const cg = await this.ensureInstance(/* forWrite */ true);
|
|
75
|
+
const result = await cg.sync({
|
|
76
|
+
onProgress: options?.onProgress,
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
filesChecked: result.filesChecked,
|
|
80
|
+
filesAdded: result.filesAdded,
|
|
81
|
+
filesModified: result.filesModified,
|
|
82
|
+
filesRemoved: result.filesRemoved,
|
|
83
|
+
nodesUpdated: result.nodesUpdated,
|
|
84
|
+
durationMs: result.durationMs,
|
|
85
|
+
changedFilePaths: result.changedFilePaths,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get graph statistics.
|
|
90
|
+
*/
|
|
91
|
+
async stats() {
|
|
92
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
93
|
+
const s = cg.getStats();
|
|
94
|
+
return {
|
|
95
|
+
nodeCount: s.nodeCount,
|
|
96
|
+
edgeCount: s.edgeCount,
|
|
97
|
+
fileCount: s.fileCount,
|
|
98
|
+
nodesByKind: s.nodesByKind,
|
|
99
|
+
edgesByKind: s.edgesByKind,
|
|
100
|
+
filesByLanguage: s.filesByLanguage,
|
|
101
|
+
dbSizeBytes: s.dbSizeBytes,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get detected frameworks in the project (e.g. "express", "react", "nestjs").
|
|
106
|
+
*/
|
|
107
|
+
async getDetectedFrameworks() {
|
|
108
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
109
|
+
return cg.getDetectedFrameworks();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check whether this project has already been initialized by CodeGraph
|
|
113
|
+
* (i.e. `.codegraph/` directory and database exist).
|
|
114
|
+
*/
|
|
115
|
+
isInitialized() {
|
|
116
|
+
if (!this.isAvailable())
|
|
117
|
+
return false;
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
119
|
+
const { isInitialized } = require('@colbymchenry/codegraph');
|
|
120
|
+
return isInitialized(this.projectRoot);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolve a Maestro-style node ID (e.g. "function:tools/spec-loader.ts:loadSpecs")
|
|
124
|
+
* to a CodeGraph node. Also accepts CodeGraph hash-based IDs directly.
|
|
125
|
+
*
|
|
126
|
+
* Returns the full CodeGraph node object, or null if not found.
|
|
127
|
+
*/
|
|
128
|
+
async resolveNode(maestroId) {
|
|
129
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
130
|
+
// Try direct lookup first (handles CodeGraph native IDs)
|
|
131
|
+
const direct = cg.getNode(maestroId);
|
|
132
|
+
if (direct)
|
|
133
|
+
return direct;
|
|
134
|
+
// Parse Maestro-style ID: "kind:filePath:name"
|
|
135
|
+
const parts = maestroId.split(':');
|
|
136
|
+
if (parts.length < 3)
|
|
137
|
+
return null;
|
|
138
|
+
const kind = parts[0];
|
|
139
|
+
const name = parts[parts.length - 1];
|
|
140
|
+
const filePath = parts.slice(1, -1).join(':');
|
|
141
|
+
// Search by name and filter by kind + file path
|
|
142
|
+
const results = cg.searchNodes(name, { limit: 50 });
|
|
143
|
+
for (const r of results) {
|
|
144
|
+
const node = r.node ?? r;
|
|
145
|
+
if (node.name === name &&
|
|
146
|
+
node.kind === kind &&
|
|
147
|
+
node.filePath &&
|
|
148
|
+
(node.filePath === filePath || node.filePath.endsWith(filePath) || filePath.endsWith(node.filePath))) {
|
|
149
|
+
return node;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Fallback: less strict match (name + kind only)
|
|
153
|
+
for (const r of results) {
|
|
154
|
+
const node = r.node ?? r;
|
|
155
|
+
if (node.name === name && node.kind === kind) {
|
|
156
|
+
return node;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get callers of a node, accepting either CodeGraph or Maestro-style IDs.
|
|
163
|
+
*/
|
|
164
|
+
async getCallers(nodeId, maxDepth = 2) {
|
|
165
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
166
|
+
const resolved = await this.resolveNode(nodeId);
|
|
167
|
+
if (!resolved)
|
|
168
|
+
return [];
|
|
169
|
+
return cg.getCallers(resolved.id, maxDepth);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get callees of a node, accepting either CodeGraph or Maestro-style IDs.
|
|
173
|
+
*/
|
|
174
|
+
async getCallees(nodeId, maxDepth = 2) {
|
|
175
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
176
|
+
const resolved = await this.resolveNode(nodeId);
|
|
177
|
+
if (!resolved)
|
|
178
|
+
return [];
|
|
179
|
+
return cg.getCallees(resolved.id, maxDepth);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get full context for a node (CodeGraph's getContext).
|
|
183
|
+
*/
|
|
184
|
+
async getContext(nodeId) {
|
|
185
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
186
|
+
const resolved = await this.resolveNode(nodeId);
|
|
187
|
+
if (!resolved)
|
|
188
|
+
return null;
|
|
189
|
+
return cg.getContext(resolved.id);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Search nodes in the CodeGraph index.
|
|
193
|
+
*/
|
|
194
|
+
async searchNodes(query, options) {
|
|
195
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
196
|
+
return cg.searchNodes(query, options);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get nodes in a specific file.
|
|
200
|
+
*/
|
|
201
|
+
async getNodesInFile(filePath) {
|
|
202
|
+
const cg = await this.ensureInstance(/* forWrite */ false);
|
|
203
|
+
return cg.getNodesInFile(filePath);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Release the underlying CodeGraph instance and database connection.
|
|
207
|
+
*/
|
|
208
|
+
close() {
|
|
209
|
+
if (this.cgInstance) {
|
|
210
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
211
|
+
this.cgInstance.close();
|
|
212
|
+
this.cgInstance = null;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// -----------------------------------------------------------------------
|
|
216
|
+
// Internal helpers
|
|
217
|
+
// -----------------------------------------------------------------------
|
|
218
|
+
/**
|
|
219
|
+
* Ensure we have a live CodeGraph instance.
|
|
220
|
+
*
|
|
221
|
+
* - If the project is already initialized, opens it.
|
|
222
|
+
* - If `forWrite` and not initialized, initializes a fresh project.
|
|
223
|
+
* - If `!forWrite` and not initialized, throws.
|
|
224
|
+
*/
|
|
225
|
+
async ensureInstance(forWrite) {
|
|
226
|
+
if (this.cgInstance)
|
|
227
|
+
return this.cgInstance;
|
|
228
|
+
// Use createRequire (defined at module level) for consistent CJS interop.
|
|
229
|
+
// Dynamic `await import()` wraps CJS differently than `require()`.
|
|
230
|
+
const pkg = require('@colbymchenry/codegraph');
|
|
231
|
+
const CG = pkg.CodeGraph;
|
|
232
|
+
const initialized = pkg.isInitialized(this.projectRoot);
|
|
233
|
+
if (initialized) {
|
|
234
|
+
this.cgInstance = await CG.open(this.projectRoot);
|
|
235
|
+
}
|
|
236
|
+
else if (forWrite) {
|
|
237
|
+
this.cgInstance = await CG.init(this.projectRoot);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
throw new Error(`CodeGraph not initialized for ${this.projectRoot}. ` +
|
|
241
|
+
'Run "maestro kg index" first to create the index.');
|
|
242
|
+
}
|
|
243
|
+
return this.cgInstance;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// ---------------------------------------------------------------------------
|
|
247
|
+
// Standalone availability check (no instance needed)
|
|
248
|
+
// ---------------------------------------------------------------------------
|
|
249
|
+
let _cachedAvailable = null;
|
|
250
|
+
/**
|
|
251
|
+
* Check if @colbymchenry/codegraph can be loaded in this environment.
|
|
252
|
+
* Useful for feature-gating without instantiating a full adapter.
|
|
253
|
+
*/
|
|
254
|
+
export function isCodeGraphAvailable() {
|
|
255
|
+
if (_cachedAvailable !== null)
|
|
256
|
+
return _cachedAvailable;
|
|
257
|
+
try {
|
|
258
|
+
require('@colbymchenry/codegraph');
|
|
259
|
+
_cachedAvailable = true;
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
_cachedAvailable = false;
|
|
263
|
+
}
|
|
264
|
+
return _cachedAvailable;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=codegraph-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegraph-adapter.js","sourceRoot":"","sources":["../../../src/graph/codegraph-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Active layout — 'compact' (default 2-line) or 'expanded' (3-line) */
|
|
2
|
+
export declare const STATUSLINE_LAYOUT: "compact" | "expanded";
|
|
1
3
|
/** Ignore bridge metrics older than this (seconds) */
|
|
2
4
|
export declare const STALE_SECONDS = 60;
|
|
3
5
|
/** Claude Code reserves ~16.5% for autocompact buffer */
|
|
@@ -10,6 +12,8 @@ export declare const NOTIFY_PREFIX = "maestro-notify-";
|
|
|
10
12
|
export declare const COORD_BRIDGE_PREFIX = "maestro-coord-";
|
|
11
13
|
/** Spec keyword injection dedup bridge file prefix in os.tmpdir() */
|
|
12
14
|
export declare const SPEC_KW_BRIDGE_PREFIX = "maestro-spec-kw-";
|
|
15
|
+
/** KG sync cooldown bridge file prefix in os.tmpdir() */
|
|
16
|
+
export declare const KG_SYNC_BRIDGE_PREFIX = "maestro-kg-sync-";
|
|
13
17
|
/** Max ms to wait for stdin before exiting (Windows pipe safety) */
|
|
14
18
|
export declare const STDIN_TIMEOUT_MS = 3000;
|
|
15
19
|
export declare const ICONS: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAmDA,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,wBAAmB,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,uDAAuD;AACvD,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAE/C,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AA8BrC,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;CAAkD,CAAC;AAErE,uBAAuB;AACvB,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AAMX,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAKrD;AAMD,wBAAgB,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAErE;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,UAAU,cAAY,CAAC;AACpC,eAAO,MAAM,QAAQ,cAAY,CAAC;AAClC,eAAO,MAAM,SAAS,cAAY,CAAC;AACnC,eAAO,MAAM,SAAS,eAAa,CAAC;AACpC,eAAO,MAAM,UAAU,cAAY,CAAC;AAMpC,KAAK,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C,UAAU,WAAW;IACnB,KAAK,EAAM,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAM,GAAG,CAAC;IACf,KAAK,EAAM,GAAG,CAAC;IACf,IAAI,EAAO,GAAG,CAAC;IACf,IAAI,EAAO,GAAG,CAAC;IACf,GAAG,EAAQ,GAAG,CAAC;IACf,GAAG,EAAQ,GAAG,CAAC;IACf,KAAK,EAAM,GAAG,CAAC;IACf,OAAO,EAAI,GAAG,CAAC;IACf,QAAQ,EAAG,GAAG,CAAC;IACf,OAAO,EAAI,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,2BAA2B;AAC3B,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA4E9C,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,WAAW,EAA0B,MAAM,EAAE,CAAC;AAE3D,yEAAyE;AACzE,eAAO,MAAM,WAAW,EAAE,WAAsD,CAAC;AAEjF,eAAO,MAAM,KAAK;;;;;CAKR,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,KAAK,CAAC;AAE3C,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAKvD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAKjD,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { homedir } from 'node:os';
|
|
|
5
5
|
function readStatuslineConfig() {
|
|
6
6
|
let nerdFont = false;
|
|
7
7
|
let theme = 'notion';
|
|
8
|
+
let layout = 'compact';
|
|
8
9
|
// Env overrides
|
|
9
10
|
if (process.env.MAESTRO_NERD_FONT === '1')
|
|
10
11
|
nerdFont = true;
|
|
@@ -12,6 +13,10 @@ function readStatuslineConfig() {
|
|
|
12
13
|
nerdFont = false;
|
|
13
14
|
if (process.env.MAESTRO_STATUSLINE_THEME)
|
|
14
15
|
theme = process.env.MAESTRO_STATUSLINE_THEME;
|
|
16
|
+
if (process.env.MAESTRO_STATUSLINE_LAYOUT === 'expanded')
|
|
17
|
+
layout = 'expanded';
|
|
18
|
+
else if (process.env.MAESTRO_STATUSLINE_LAYOUT === 'compact')
|
|
19
|
+
layout = 'compact';
|
|
15
20
|
// Config file
|
|
16
21
|
try {
|
|
17
22
|
const configPath = join(process.env.MAESTRO_HOME || join(homedir(), '.maestro'), 'config.json');
|
|
@@ -23,12 +28,18 @@ function readStatuslineConfig() {
|
|
|
23
28
|
nerdFont = false;
|
|
24
29
|
if (cfg.statusline?.theme && !process.env.MAESTRO_STATUSLINE_THEME)
|
|
25
30
|
theme = cfg.statusline.theme;
|
|
31
|
+
if (!process.env.MAESTRO_STATUSLINE_LAYOUT &&
|
|
32
|
+
(cfg.statusline?.layout === 'expanded' || cfg.statusline?.layout === 'compact')) {
|
|
33
|
+
layout = cfg.statusline.layout;
|
|
34
|
+
}
|
|
26
35
|
}
|
|
27
36
|
}
|
|
28
37
|
catch { /* ignore */ }
|
|
29
|
-
return { nerdFont, theme };
|
|
38
|
+
return { nerdFont, theme, layout };
|
|
30
39
|
}
|
|
31
40
|
const _slConfig = readStatuslineConfig();
|
|
41
|
+
/** Active layout — 'compact' (default 2-line) or 'expanded' (3-line) */
|
|
42
|
+
export const STATUSLINE_LAYOUT = _slConfig.layout;
|
|
32
43
|
/** Ignore bridge metrics older than this (seconds) */
|
|
33
44
|
export const STALE_SECONDS = 60;
|
|
34
45
|
/** Claude Code reserves ~16.5% for autocompact buffer */
|
|
@@ -41,6 +52,8 @@ export const NOTIFY_PREFIX = 'maestro-notify-';
|
|
|
41
52
|
export const COORD_BRIDGE_PREFIX = 'maestro-coord-';
|
|
42
53
|
/** Spec keyword injection dedup bridge file prefix in os.tmpdir() */
|
|
43
54
|
export const SPEC_KW_BRIDGE_PREFIX = 'maestro-spec-kw-';
|
|
55
|
+
/** KG sync cooldown bridge file prefix in os.tmpdir() */
|
|
56
|
+
export const KG_SYNC_BRIDGE_PREFIX = 'maestro-kg-sync-';
|
|
44
57
|
/** Max ms to wait for stdin before exiting (Windows pipe safety) */
|
|
45
58
|
export const STDIN_TIMEOUT_MS = 3000;
|
|
46
59
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Format — unified <maestro-context> container
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the shape of injected context across all hook
|
|
5
|
+
* injectors (spec-injector, keyword-spec-injector, kg-context-injector).
|
|
6
|
+
*
|
|
7
|
+
* Before this module each injector emitted its own wrapper tag
|
|
8
|
+
* (<spec-keyword-match>, <kg-symbol-context>, <kg-context>, or none).
|
|
9
|
+
* Now every injector builds `ContextSection[]` and calls `wrapMaestroContext`
|
|
10
|
+
* to produce one consistent, compact block:
|
|
11
|
+
*
|
|
12
|
+
* <maestro-context budget="used/max">
|
|
13
|
+
* ## label1
|
|
14
|
+
* - line
|
|
15
|
+
* - line
|
|
16
|
+
* ## label2
|
|
17
|
+
* - line
|
|
18
|
+
* </maestro-context>
|
|
19
|
+
*
|
|
20
|
+
* FUTURE WORK: budget coordination is still per-injector — each injector calls
|
|
21
|
+
* evaluateContextBudget independently and reports its own used/max here. A
|
|
22
|
+
* cross-injector budget pool (shared token accounting across all hooks in one
|
|
23
|
+
* turn) is intentionally NOT implemented yet to avoid behavioral risk; this
|
|
24
|
+
* change unifies the FORMAT only.
|
|
25
|
+
*/
|
|
26
|
+
export interface ContextSection {
|
|
27
|
+
/** Section heading shown after `## ` (e.g. 'specs', 'kg-symbols'). */
|
|
28
|
+
label: string;
|
|
29
|
+
/** Content lines; each rendered as a `- ` bullet. Empty lines are dropped. */
|
|
30
|
+
lines: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface ContextBudgetInfo {
|
|
33
|
+
used: number;
|
|
34
|
+
max: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Wrap context sections in a single compact <maestro-context> block.
|
|
38
|
+
*
|
|
39
|
+
* - Skips sections that have no non-empty lines.
|
|
40
|
+
* - Renders each line as a `- ` bullet, no blank lines between items.
|
|
41
|
+
* - Emits a `budget="used/max"` attribute on the opening tag.
|
|
42
|
+
*
|
|
43
|
+
* Returns an empty string when there is nothing to inject.
|
|
44
|
+
*/
|
|
45
|
+
export declare function wrapMaestroContext(sections: ContextSection[], budget: ContextBudgetInfo): string;
|
|
46
|
+
//# sourceMappingURL=context-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-format.d.ts","sourceRoot":"","sources":["../../../src/hooks/context-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAsBR"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Format — unified <maestro-context> container
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the shape of injected context across all hook
|
|
5
|
+
* injectors (spec-injector, keyword-spec-injector, kg-context-injector).
|
|
6
|
+
*
|
|
7
|
+
* Before this module each injector emitted its own wrapper tag
|
|
8
|
+
* (<spec-keyword-match>, <kg-symbol-context>, <kg-context>, or none).
|
|
9
|
+
* Now every injector builds `ContextSection[]` and calls `wrapMaestroContext`
|
|
10
|
+
* to produce one consistent, compact block:
|
|
11
|
+
*
|
|
12
|
+
* <maestro-context budget="used/max">
|
|
13
|
+
* ## label1
|
|
14
|
+
* - line
|
|
15
|
+
* - line
|
|
16
|
+
* ## label2
|
|
17
|
+
* - line
|
|
18
|
+
* </maestro-context>
|
|
19
|
+
*
|
|
20
|
+
* FUTURE WORK: budget coordination is still per-injector — each injector calls
|
|
21
|
+
* evaluateContextBudget independently and reports its own used/max here. A
|
|
22
|
+
* cross-injector budget pool (shared token accounting across all hooks in one
|
|
23
|
+
* turn) is intentionally NOT implemented yet to avoid behavioral risk; this
|
|
24
|
+
* change unifies the FORMAT only.
|
|
25
|
+
*/
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Public API
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Wrap context sections in a single compact <maestro-context> block.
|
|
31
|
+
*
|
|
32
|
+
* - Skips sections that have no non-empty lines.
|
|
33
|
+
* - Renders each line as a `- ` bullet, no blank lines between items.
|
|
34
|
+
* - Emits a `budget="used/max"` attribute on the opening tag.
|
|
35
|
+
*
|
|
36
|
+
* Returns an empty string when there is nothing to inject.
|
|
37
|
+
*/
|
|
38
|
+
export function wrapMaestroContext(sections, budget) {
|
|
39
|
+
const body = [];
|
|
40
|
+
for (const section of sections) {
|
|
41
|
+
const lines = section.lines
|
|
42
|
+
.map(l => l.trim())
|
|
43
|
+
.filter(l => l.length > 0);
|
|
44
|
+
if (lines.length === 0)
|
|
45
|
+
continue;
|
|
46
|
+
body.push(`## ${section.label}`);
|
|
47
|
+
for (const line of lines) {
|
|
48
|
+
// Avoid double-bulleting lines that already start with a marker.
|
|
49
|
+
body.push(line.startsWith('- ') ? line : `- ${line}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (body.length === 0)
|
|
53
|
+
return '';
|
|
54
|
+
const used = Number.isFinite(budget.used) ? budget.used : 0;
|
|
55
|
+
const max = Number.isFinite(budget.max) ? budget.max : 0;
|
|
56
|
+
return `<maestro-context budget="${used}/${max}">\n${body.join('\n')}\n</maestro-context>`;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=context-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-format.js","sourceRoot":"","sources":["../../../src/hooks/context-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAkBH,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA0B,EAC1B,MAAyB;IAEzB,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEjC,IAAI,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,iEAAiE;YACjE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO,4BAA4B,IAAI,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC7F,CAAC"}
|