oh-my-opencode 4.2.3 → 4.3.1

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.
Files changed (176) hide show
  1. package/README.ja.md +1 -0
  2. package/README.ko.md +1 -0
  3. package/README.md +3 -2
  4. package/README.zh-cn.md +1 -0
  5. package/dist/agents/atlas/default-prompt-sections.d.ts +1 -1
  6. package/dist/agents/builtin-agents/available-skills.d.ts +1 -1
  7. package/dist/agents/builtin-agents/model-resolution.d.ts +1 -1
  8. package/dist/agents/prometheus/plan-generation.d.ts +1 -1
  9. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  10. package/dist/agents/prometheus/spec-driven-mode.d.ts +7 -0
  11. package/dist/cli/doctor/checks/system-binary.d.ts +1 -1
  12. package/dist/cli/doctor/checks/tui-plugin-config.d.ts +14 -0
  13. package/dist/cli/doctor/constants.d.ts +1 -0
  14. package/dist/cli/index.js +3203 -2368
  15. package/dist/cli/provider-model-id-transform.d.ts +1 -1
  16. package/dist/config/index.d.ts +1 -1
  17. package/dist/config/schema/agent-overrides.d.ts +147 -1
  18. package/dist/config/schema/background-task.d.ts +1 -0
  19. package/dist/config/schema/default-mode.d.ts +6 -0
  20. package/dist/config/schema/hooks.d.ts +2 -0
  21. package/dist/config/schema/i18n.d.ts +5 -0
  22. package/dist/config/schema/keyword-detector.d.ts +8 -0
  23. package/dist/config/schema/oh-my-opencode-config.d.ts +163 -1
  24. package/dist/config/schema.d.ts +2 -0
  25. package/dist/create-hooks.d.ts +2 -0
  26. package/dist/features/background-agent/fallback-retry-handler.d.ts +3 -0
  27. package/dist/features/background-agent/manager.d.ts +0 -1
  28. package/dist/features/background-agent/parent-wake-notifier.d.ts +5 -0
  29. package/dist/features/background-agent/session-activity.d.ts +12 -0
  30. package/dist/features/background-agent/session-existence.d.ts +2 -0
  31. package/dist/features/background-agent/session-stream-activity.d.ts +18 -0
  32. package/dist/features/background-agent/task-activity-refresh.d.ts +11 -0
  33. package/dist/features/background-agent/task-poller.d.ts +2 -0
  34. package/dist/features/boulder-state/constants.d.ts +1 -10
  35. package/dist/features/boulder-state/format-duration.d.ts +1 -1
  36. package/dist/features/boulder-state/storage.d.ts +1 -83
  37. package/dist/features/boulder-state/top-level-task.d.ts +1 -2
  38. package/dist/features/boulder-state/types.d.ts +1 -100
  39. package/dist/features/task-toast-manager/manager.d.ts +1 -1
  40. package/dist/features/team-mode/team-state-store/locks.d.ts +7 -4
  41. package/dist/features/tmux-subagent/manager.d.ts +2 -0
  42. package/dist/hooks/atlas/system-reminder-templates.d.ts +1 -1
  43. package/dist/hooks/claude-code-hooks/config-loader.d.ts +7 -0
  44. package/dist/hooks/claude-code-hooks/config.d.ts +4 -1
  45. package/dist/hooks/claude-code-hooks/types.d.ts +17 -1
  46. package/dist/hooks/comment-checker/cli.d.ts +2 -22
  47. package/dist/hooks/comment-checker/types.d.ts +1 -31
  48. package/dist/hooks/directory-agents-injector/finder.d.ts +2 -7
  49. package/dist/hooks/directory-agents-injector/injector.d.ts +1 -18
  50. package/dist/hooks/index.d.ts +2 -0
  51. package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
  52. package/dist/hooks/keyword-detector/constants.d.ts +10 -5
  53. package/dist/hooks/keyword-detector/detector.d.ts +2 -2
  54. package/dist/hooks/keyword-detector/hook.d.ts +2 -1
  55. package/dist/hooks/keyword-detector/hyperplan/default.d.ts +5 -0
  56. package/dist/hooks/notepad-write-guard/index.d.ts +2 -0
  57. package/dist/hooks/plan-format-validator/hook.d.ts +21 -0
  58. package/dist/hooks/plan-format-validator/index.d.ts +1 -0
  59. package/dist/hooks/prometheus-md-only/constants.d.ts +8 -0
  60. package/dist/hooks/rules-injector/constants.d.ts +1 -7
  61. package/dist/hooks/rules-injector/matcher.d.ts +2 -2
  62. package/dist/hooks/rules-injector/parser.d.ts +2 -2
  63. package/dist/hooks/rules-injector/project-root-finder.d.ts +1 -1
  64. package/dist/hooks/rules-injector/rule-distance.d.ts +1 -1
  65. package/dist/hooks/rules-injector/rule-file-finder.d.ts +2 -2
  66. package/dist/hooks/rules-injector/rule-file-scanner.d.ts +1 -1
  67. package/dist/hooks/rules-injector/rule-scan-cache.d.ts +2 -2
  68. package/dist/hooks/rules-injector/types.d.ts +1 -1
  69. package/dist/hooks/session-todo-status.d.ts +1 -0
  70. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  71. package/dist/hooks/start-work/context-info-builder.d.ts +1 -0
  72. package/dist/hooks/start-work/session-plan-affinity.d.ts +7 -0
  73. package/dist/hooks/todo-continuation-enforcer/types.d.ts +1 -0
  74. package/dist/index.js +18290 -16069
  75. package/dist/locales/en.d.ts +18 -0
  76. package/dist/locales/index.d.ts +6 -0
  77. package/dist/locales/zh.d.ts +17 -0
  78. package/dist/mcp/ast-grep.d.ts +2 -0
  79. package/dist/mcp/cli-suffix.d.ts +1 -0
  80. package/dist/mcp/index.d.ts +2 -0
  81. package/dist/mcp/lsp.d.ts +2 -0
  82. package/dist/mcp/runtime-executable.d.ts +11 -0
  83. package/dist/oh-my-opencode.schema.json +449 -1
  84. package/dist/plugin/hooks/create-core-hooks.d.ts +2 -0
  85. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +3 -1
  86. package/dist/plugin/system-transform.d.ts +2 -1
  87. package/dist/plugin/tool-definition.d.ts +9 -0
  88. package/dist/plugin-handlers/agent-key-remapper.d.ts +5 -1
  89. package/dist/plugin-handlers/hook-config-handler.d.ts +7 -0
  90. package/dist/plugin-handlers/index.d.ts +1 -0
  91. package/dist/plugin-handlers/plugin-components-loader.d.ts +2 -3
  92. package/dist/shared/agent-display-names.d.ts +10 -2
  93. package/dist/shared/bun-spawn-shim.d.ts +3 -0
  94. package/dist/shared/command-executor/execute-hook-command.d.ts +2 -0
  95. package/dist/shared/contains-path.d.ts +1 -2
  96. package/dist/shared/context-limit-resolver.d.ts +2 -5
  97. package/dist/shared/deep-merge.d.ts +1 -13
  98. package/dist/shared/disabled-providers.d.ts +14 -0
  99. package/dist/shared/extract-semver.d.ts +1 -1
  100. package/dist/shared/fallback-chain-from-models.d.ts +1 -12
  101. package/dist/shared/file-utils.d.ts +1 -7
  102. package/dist/shared/frontmatter.d.ts +1 -7
  103. package/dist/shared/i18n.d.ts +9 -0
  104. package/dist/shared/index.d.ts +0 -1
  105. package/dist/shared/jsonc-parser.d.ts +1 -23
  106. package/dist/shared/model-availability.d.ts +18 -5
  107. package/dist/shared/model-capabilities/index.d.ts +6 -3
  108. package/dist/shared/model-capabilities-cache.d.ts +4 -8
  109. package/dist/shared/model-error-classifier.d.ts +4 -33
  110. package/dist/shared/model-format-normalizer.d.ts +1 -7
  111. package/dist/shared/model-normalization.d.ts +1 -2
  112. package/dist/shared/model-requirements.d.ts +2 -22
  113. package/dist/shared/model-resolution-pipeline.d.ts +5 -30
  114. package/dist/shared/model-resolution-types.d.ts +1 -36
  115. package/dist/shared/model-resolver.d.ts +8 -35
  116. package/dist/shared/model-sanitizer.d.ts +1 -3
  117. package/dist/shared/model-settings-compatibility.d.ts +2 -40
  118. package/dist/shared/model-string-parser.d.ts +1 -9
  119. package/dist/shared/model-suggestion-retry.d.ts +3 -7
  120. package/dist/shared/opencode-config-dir.d.ts +1 -0
  121. package/dist/shared/port-utils.d.ts +1 -9
  122. package/dist/shared/process-stream-reader.d.ts +3 -0
  123. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +9 -0
  124. package/dist/shared/prompt-async-gate/queue.d.ts +8 -0
  125. package/dist/shared/prompt-async-gate/reservations.d.ts +9 -0
  126. package/dist/shared/prompt-async-gate/session-idle-dispatch.d.ts +15 -0
  127. package/dist/shared/prompt-async-gate/timing.d.ts +8 -0
  128. package/dist/shared/prompt-async-gate/types.d.ts +120 -0
  129. package/dist/shared/prompt-async-gate.d.ts +3 -90
  130. package/dist/shared/provider-model-id-transform.d.ts +1 -1
  131. package/dist/shared/record-type-guard.d.ts +1 -1
  132. package/dist/shared/replace-tool-args.d.ts +1 -13
  133. package/dist/shared/session-idle-settle.d.ts +2 -1
  134. package/dist/shared/shell-env.d.ts +7 -5
  135. package/dist/shared/snake-case.d.ts +1 -5
  136. package/dist/shared/tool-name.d.ts +1 -1
  137. package/dist/testing/create-plugin-module.d.ts +2 -0
  138. package/dist/tools/delegate-task/constants.d.ts +19 -0
  139. package/dist/tools/delegate-task/skill-resolver.d.ts +9 -2
  140. package/dist/tools/delegate-task/types.d.ts +32 -0
  141. package/dist/tools/glob/cli.d.ts +3 -1
  142. package/dist/tools/glob/constants.d.ts +1 -1
  143. package/dist/tools/grep/cli.d.ts +4 -2
  144. package/dist/tools/grep/constants.d.ts +1 -1
  145. package/dist/tools/hashline-edit/autocorrect-replacement-lines.d.ts +1 -6
  146. package/dist/tools/hashline-edit/constants.d.ts +1 -4
  147. package/dist/tools/hashline-edit/diff-utils.d.ts +1 -6
  148. package/dist/tools/hashline-edit/edit-deduplication.d.ts +1 -5
  149. package/dist/tools/hashline-edit/edit-operation-primitives.d.ts +1 -10
  150. package/dist/tools/hashline-edit/edit-operations.d.ts +2 -8
  151. package/dist/tools/hashline-edit/edit-ordering.d.ts +1 -4
  152. package/dist/tools/hashline-edit/edit-text-normalization.d.ts +1 -7
  153. package/dist/tools/hashline-edit/file-text-canonicalization.d.ts +2 -7
  154. package/dist/tools/hashline-edit/hash-computation.d.ts +2 -11
  155. package/dist/tools/hashline-edit/hashline-chunk-formatter.d.ts +2 -10
  156. package/dist/tools/hashline-edit/hashline-edit-diff.d.ts +1 -1
  157. package/dist/tools/hashline-edit/normalize-edits.d.ts +2 -10
  158. package/dist/tools/hashline-edit/types.d.ts +1 -17
  159. package/dist/tools/hashline-edit/validation.d.ts +2 -20
  160. package/dist/tools/look-at/assistant-message-extractor.d.ts +7 -0
  161. package/dist/tools/look-at/session-poller.d.ts +9 -1
  162. package/dist/tools/shared/search-process-output.d.ts +7 -0
  163. package/dist/tools/skill/tools.d.ts +1 -1
  164. package/dist/tools/skill/types.d.ts +2 -0
  165. package/package.json +31 -16
  166. package/packages/ast-grep-mcp/dist/cli.js +272 -248
  167. package/dist/hooks/comment-checker/apply-patch-edits.d.ts +0 -2
  168. package/dist/shared/known-variants.d.ts +0 -6
  169. package/dist/shared/model-capabilities/bundled-snapshot.d.ts +0 -2
  170. package/dist/shared/model-capabilities/get-model-capabilities.d.ts +0 -2
  171. package/dist/shared/model-capabilities/runtime-model-readers.d.ts +0 -11
  172. package/dist/shared/model-capabilities/supplemental-entries.d.ts +0 -2
  173. package/dist/shared/model-capabilities/types.d.ts +0 -94
  174. package/dist/shared/model-capability-aliases.d.ts +0 -21
  175. package/dist/shared/model-capability-guardrails.d.ts +0 -38
  176. package/dist/shared/model-capability-heuristics.d.ts +0 -11
package/README.ja.md CHANGED
@@ -57,6 +57,7 @@
57
57
  [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues)
58
58
  [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/dev/LICENSE.md)
59
59
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
60
+ [![Docs](https://img.shields.io/badge/docs-omo.vibetip.help-369eff?labelColor=black&logo=readthedocs&logoColor=white&style=flat-square)](https://omo.vibetip.help/docs)
60
61
 
61
62
  [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
62
63
 
package/README.ko.md CHANGED
@@ -56,6 +56,7 @@
56
56
  [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues)
57
57
  [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/dev/LICENSE.md)
58
58
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
59
+ [![Docs](https://img.shields.io/badge/docs-omo.vibetip.help-369eff?labelColor=black&logo=readthedocs&logoColor=white&style=flat-square)](https://omo.vibetip.help/docs)
59
60
 
60
61
  [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
61
62
 
package/README.md CHANGED
@@ -56,6 +56,7 @@
56
56
  [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues)
57
57
  [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/dev/LICENSE.md)
58
58
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
59
+ [![Docs](https://img.shields.io/badge/docs-omo.vibetip.help-369eff?labelColor=black&logo=readthedocs&logoColor=white&style=flat-square)](https://omo.vibetip.help/docs)
59
60
 
60
61
  [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
61
62
 
@@ -358,7 +359,7 @@ See full [Features Documentation](docs/reference/features.md).
358
359
  - **Hash-anchored Edit Tool**: `LINE#ID` references validate content before applying every change. Surgical edits, zero stale-line errors
359
360
  - **Context Injection**: Auto-inject AGENTS.md, README.md, conditional rules
360
361
  - **Claude Code Compatibility**: Full hook system, commands, skills, agents, MCPs
361
- - **Built-in MCPs**: websearch (Exa), context7 (docs), grep_app (GitHub search)
362
+ - **Built-in MCPs**: websearch (Exa), context7 (docs), grep_app (GitHub search) — injected at runtime by the plugin; not visible in `opencode mcp list` (see [MCP docs](docs/reference/features.md#native-vs-plugin-injected-mcps))
362
363
  - **Session Tools**: List, read, search, and analyze session history
363
364
  - **Productivity Features**: Ralph Loop, Todo Enforcer, Comment Checker, Think Mode, and more
364
365
  - **Doctor Command**: Built-in diagnostics (`bunx oh-my-opencode doctor`) verify plugin registration, config, models, and environment
@@ -382,7 +383,7 @@ See [Configuration Documentation](docs/reference/configuration.md).
382
383
  - **Background Tasks**: Configure concurrency limits per provider/model
383
384
  - **Categories**: Domain-specific task delegation (`visual`, `business-logic`, custom)
384
385
  - **Hooks**: 54+ lifecycle hooks (61 with Team Mode), all configurable via `disabled_hooks`
385
- - **MCPs**: Built-in websearch (Exa), context7 (docs), grep_app (GitHub search)
386
+ - **MCPs**: Built-in websearch (Exa), context7 (docs), grep_app (GitHub search) — runtime-injected, not shown in `opencode mcp list`
386
387
  - **LSP**: Full LSP support with refactoring tools
387
388
  - **Experimental**: Aggressive truncation, auto-resume, and more
388
389
 
package/README.zh-cn.md CHANGED
@@ -57,6 +57,7 @@
57
57
  [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues)
58
58
  [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/dev/LICENSE.md)
59
59
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
60
+ [![Docs](https://img.shields.io/badge/docs-omo.vibetip.help-369eff?labelColor=black&logo=readthedocs&logoColor=white&style=flat-square)](https://omo.vibetip.help/docs)
60
61
 
61
62
  [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
62
63
 
@@ -1,5 +1,5 @@
1
1
  export declare const DEFAULT_ATLAS_INTRO = "<identity>\nYou are Atlas - the Master Orchestrator from OhMyOpenCode.\n\nIn Greek mythology, Atlas holds up the celestial heavens. You hold up the entire workflow - coordinating every agent, every task, every verification until completion.\n\nYou are a conductor, not a musician. A general, not a soldier. You DELEGATE, COORDINATE, and VERIFY.\nYou never write code yourself. You orchestrate specialists who do.\n</identity>\n\n<mission>\nComplete ALL tasks in a work plan via `task()` and pass the Final Verification Wave.\nImplementation tasks are the means. Final Wave approval is the goal.\nPARALLEL by default. Verify everything. Auto-continue.\n</mission>";
2
- export declare const DEFAULT_ATLAS_WORKFLOW = "<workflow>\n## Step 0: Register Tracking\n\n```\nTodoWrite([\n { id: \"orchestrate-plan\", content: \"Complete ALL implementation tasks\", status: \"in_progress\", priority: \"high\" },\n { id: \"pass-final-wave\", content: \"Pass Final Verification Wave - ALL reviewers APPROVE\", status: \"pending\", priority: \"high\" }\n])\n```\n\n## Step 1: Analyze Plan\n\n1. Read the todo list file\n2. Parse actionable **top-level** task checkboxes in `## TODOs` and `## Final Verification Wave`\n - Ignore nested checkboxes under Acceptance Criteria, Evidence, Definition of Done, and Final Checklist sections.\n3. Build a dependency map for parallel dispatch:\n - Mark a task SEQUENTIAL only if it has a NAMED dependency (input from another task or shared file).\n - Mark all others PARALLEL \u2014 they will fan out together.\n\nOutput:\n```\nTASK ANALYSIS:\n- Total: [N], Remaining: [M]\n- Parallel batch: [list]\n- Sequential (with named dependency): [list with reason]\n```\n\n## Step 2: Initialize Notepad\n\n```bash\nmkdir -p .omo/notepads/{plan-name}\n```\n\nStructure:\n```\n.omo/notepads/{plan-name}/\n learnings.md # Conventions, patterns\n decisions.md # Architectural choices\n issues.md # Problems, gotchas\n problems.md # Unresolved blockers\n```\n\n## Step 3: Execute Tasks\n\n### 3.1 PARALLELIZE the next batch\n\nPer the parallel-by-default mandate above: dispatch every task without a named dependency in ONE message.\n\nSequential tasks are dispatched only after their blocker resolves and only when their stated dependency is real.\n\n### 3.2 Before Each Delegation\n\n**MANDATORY: Read notepad first**\n```\nglob(\".omo/notepads/{plan-name}/*.md\")\nRead(\".omo/notepads/{plan-name}/learnings.md\")\nRead(\".omo/notepads/{plan-name}/issues.md\")\n```\n\nExtract wisdom and include in the delegation prompt under \"Inherited Wisdom\".\n\n### 3.3 Invoke task()\n\n```typescript\ntask(\n category=\"[category]\",\n load_skills=[\"[relevant-skills]\"],\n run_in_background=false,\n prompt=`[FULL 6-SECTION PROMPT]`\n)\n```\n\nFor a parallel batch, fire ALL of these in ONE response.\n\n### 3.4 Verify (MANDATORY - EVERY DELEGATION)\n\n**You are the QA gate. Subagents lie. Automated checks alone are NOT enough.**\n\nAfter EVERY delegation, complete ALL of these steps - no shortcuts:\n\n#### A. Automated Verification\n1. `lsp_diagnostics(filePath=\".\", extension=\".ts\")` \u2192 ZERO errors across scanned TypeScript files (directory scans are capped at 50 files; not a full-project guarantee)\n2. `bun run build` or `bun run typecheck` \u2192 exit code 0\n3. `bun test` \u2192 ALL tests pass\n\n#### B. Manual Code Review (NON-NEGOTIABLE)\n\n1. `Read` EVERY file the subagent created or modified - no exceptions\n2. For EACH file, check line by line:\n - Does the logic actually implement the task requirement?\n - Are there stubs, TODOs, placeholders, or hardcoded values?\n - Are there logic errors or missing edge cases?\n - Does it follow the existing codebase patterns?\n - Are imports correct and complete?\n3. Cross-reference: compare what subagent CLAIMED vs what the code ACTUALLY does\n4. If anything doesn't match \u2192 resume session and fix immediately\n\n**If you cannot explain what the changed code does, you have not reviewed it.**\n\n#### C. Hands-On QA (if user-facing)\n- **Frontend/UI**: Browser via `/playwright`\n- **TUI/CLI**: `interactive_bash`\n- **API/Backend**: real requests via `curl`\n\n#### D. Read Plan File Directly\n\nAfter verification, READ the plan file - every time:\n```\nRead(\".omo/plans/{plan-name}.md\")\n```\nCount remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes. This is your ground truth.\n\n**Checklist (ALL must be checked):**\n```\n[ ] Automated: lsp_diagnostics clean, build passes, tests pass\n[ ] Manual: Read EVERY changed file, verified logic matches requirements\n[ ] Cross-check: Subagent claims match actual code\n[ ] Plan: Read plan file, confirmed current progress\n```\n\n**If verification fails**: Resume the SAME session with the ACTUAL error output:\n```typescript\ntask(\n task_id=\"ses_xyz789\",\n load_skills=[...],\n prompt=\"Verification failed: {actual error}. Fix.\"\n)\n```\n\n### 3.5 Handle Failures (USE task_id, NEVER GIVE UP)\n\nEvery `task()` output includes a task_id. STORE IT.\n\n**Failure is never an excuse to stop or skip.** A subagent that reports success when verification fails is wrong, not \"experiencing a false positive\". \"False positive\" is not a valid reason in this codebase. If verification fails, the work is unfinished. There is no retry cap.\n\nWhen a task fails:\n1. Diagnose what actually broke. Read the error, read the file, do not guess.\n2. **Resume the SAME session** so the subagent keeps its full context:\n ```typescript\n task(\n task_id=\"ses_xyz789\",\n load_skills=[...],\n prompt=\"FAILED: {actual error output}. Diagnosis: {what you observed}. Fix by: {specific instruction}\"\n )\n ```\n3. If a single retry on the same session does not fix it, **plan the diagnosis explicitly**. Write down what the subagent attempted, what it observed, what hypothesis you have. Then resume the same session with that plan attached. Iterate until verification passes.\n4. If the subagent itself is the bottleneck (looping on the same broken approach), spawn a NEW subagent with a different angle. Pass the failed attempts as context so it does not repeat them. Stay on the same plan task; never move on with that task unverified.\n\n**Why task_id is MANDATORY:** the subagent already read every relevant file, knows what was tried, and knows what failed. Starting fresh discards that and costs ~3-4\u00D7 more tokens. Use `task_id` for retries and for asking the same subagent to plan its own diagnosis.\n\n**Why no excuses:** the user requires every task to complete. Documenting a failure and moving on produces a partial plan that will fail Final Wave review. Verification is the gate. Push through it.\n\n### 3.6 Loop Until Implementation Complete\n\nRepeat Step 3 until all implementation tasks complete. Then proceed to Step 4.\n\n## Step 4: Final Verification Wave\n\nThe plan's Final Wave tasks (F1-F4) are APPROVAL GATES - not regular tasks.\nEach reviewer produces a VERDICT: APPROVE or REJECT.\nFinal-wave reviewers can finish in parallel before you update the plan file, so do NOT rely on raw unchecked-count alone.\n\n1. Execute all Final Wave tasks IN PARALLEL (they have no inter-dependencies)\n2. If ANY verdict is REJECT:\n - Fix the issues (delegate via `task()` with `task_id`)\n - Re-run the rejecting reviewer\n - Repeat until ALL verdicts are APPROVE\n3. Mark `pass-final-wave` todo as `completed`\n\n```\nORCHESTRATION COMPLETE - FINAL WAVE PASSED\n\nTODO LIST: [path]\nCOMPLETED: [N/N]\nFINAL WAVE: F1 [APPROVE] | F2 [APPROVE] | F3 [APPROVE] | F4 [APPROVE]\nFILES MODIFIED: [list]\n```\n</workflow>";
2
+ export declare const DEFAULT_ATLAS_WORKFLOW = "<workflow>\n## Step 0: Register Tracking\n\n```\nTodoWrite([\n { id: \"orchestrate-plan\", content: \"Complete ALL implementation tasks\", status: \"in_progress\", priority: \"high\" },\n { id: \"pass-final-wave\", content: \"Pass Final Verification Wave - ALL reviewers APPROVE\", status: \"pending\", priority: \"high\" }\n])\n```\n\n## Step 1: Analyze Plan\n\n1. Read the todo list file\n2. Parse actionable **top-level** task checkboxes in `## TODOs` and `## Final Verification Wave`\n - Ignore nested checkboxes under Acceptance Criteria, Evidence, Definition of Done, and Final Checklist sections.\n3. Build a dependency map for parallel dispatch:\n - Mark a task SEQUENTIAL only if it has a NAMED dependency (input from another task or shared file).\n - Mark all others PARALLEL \u2014 they will fan out together.\n\nOutput:\n```\nTASK ANALYSIS:\n- Total: [N], Remaining: [M]\n- Parallel batch: [list]\n- Sequential (with named dependency): [list with reason]\n```\n\n## Step 2: Initialize Notepad\n\n```bash\nmkdir -p .omo/notepads/{plan-name}\n```\n\nStructure:\n```\n.omo/notepads/{plan-name}/\n learnings.md # Conventions, patterns\n decisions.md # Architectural choices\n issues.md # Problems, gotchas\n problems.md # Unresolved blockers\n```\n\n## Step 3: Execute Tasks\n\n### 3.1 PARALLELIZE the next batch\n\nPer the parallel-by-default mandate above: dispatch every task without a named dependency in ONE message.\n\nSequential tasks are dispatched only after their blocker resolves and only when their stated dependency is real.\n\n### 3.2 Before Each Delegation\n\n**MANDATORY: Read notepad first**\n```\nglob(\".omo/notepads/{plan-name}/*.md\")\nRead(\".omo/notepads/{plan-name}/learnings.md\")\nRead(\".omo/notepads/{plan-name}/issues.md\")\n```\n\nExtract wisdom and include in the delegation prompt under \"Inherited Wisdom\".\n\n### 3.3 Invoke task()\n\n```typescript\ntask(\n category=\"[category]\",\n load_skills=[\"[relevant-skills]\"],\n run_in_background=false,\n prompt=`[FULL 6-SECTION PROMPT]`\n)\n```\n\nFor a parallel batch, fire ALL of these in ONE response.\n\n### 3.4 Verify (MANDATORY - EVERY DELEGATION)\n\n**You are the QA gate. Subagents lie. Automated checks alone are NOT enough.**\n\nAfter EVERY delegation, complete ALL of these steps - no shortcuts:\n\n#### A. Automated Verification\n1. `lsp_diagnostics(filePath=\".\", extension=\".ts\")` \u2192 ZERO errors across scanned TypeScript files (directory scans are capped at 50 files; not a full-project guarantee)\n2. `bun run build` or `bun run typecheck` \u2192 exit code 0\n3. `bun test` \u2192 ALL tests pass\n\n#### B. Manual Code Review (NON-NEGOTIABLE)\n\n1. `Read` EVERY file the subagent created or modified - no exceptions\n2. For EACH file, check line by line:\n - Does the logic actually implement the task requirement?\n - Are there stubs, TODOs, placeholders, or hardcoded values?\n - Are there logic errors or missing edge cases?\n - Does it follow the existing codebase patterns?\n - Are imports correct and complete?\n3. Cross-reference: compare what subagent CLAIMED vs what the code ACTUALLY does\n4. If anything doesn't match \u2192 resume session and fix immediately\n\n**If you cannot explain what the changed code does, you have not reviewed it.**\n\n#### C. Hands-On QA (if user-facing)\n- **Frontend/UI**: Browser via `/playwright`\n- **TUI/CLI**: `interactive_bash`\n- **API/Backend**: real requests via `curl`\n\n#### D. Read Plan File Directly\n\nAfter verification, READ the plan file - every time:\n```\nRead(\".omo/plans/{plan-name}.md\")\n```\nCount remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes. This is your ground truth.\n\n**Checklist (ALL must be checked):**\n```\n[ ] Automated: lsp_diagnostics clean, build passes, tests pass\n[ ] Manual: Read EVERY changed file, verified logic matches requirements\n[ ] Cross-check: Subagent claims match actual code\n[ ] Plan: Read plan file, confirmed current progress\n```\n\n**If verification fails**: Resume the SAME task with the ACTUAL error output:\n```typescript\ntask(\n task_id=\"ses_xyz789\",\n load_skills=[...],\n prompt=\"Verification failed: {actual error}. Fix.\"\n)\n```\n\n### 3.5 Handle Failures (USE task_id, NEVER GIVE UP)\n\nEvery `task()` output includes a task_id. STORE IT.\n\n**Failure is never an excuse to stop or skip.** A subagent that reports success when verification fails is wrong, not \"experiencing a false positive\". \"False positive\" is not a valid reason in this codebase. If verification fails, the work is unfinished. There is no retry cap.\n\nWhen a task fails:\n1. Diagnose what actually broke. Read the error, read the file, do not guess.\n2. **Resume the SAME task via `task_id`** so the subagent keeps its full context:\n ```typescript\n task(\n task_id=\"ses_xyz789\",\n load_skills=[...],\n prompt=\"FAILED: {actual error output}. Diagnosis: {what you observed}. Fix by: {specific instruction}\"\n )\n ```\n3. If a single retry on the same session does not fix it, **plan the diagnosis explicitly**. Write down what the subagent attempted, what it observed, what hypothesis you have. Then resume the same session with that plan attached. Iterate until verification passes.\n4. If the subagent itself is the bottleneck (looping on the same broken approach), spawn a NEW subagent with a different angle. Pass the failed attempts as context so it does not repeat them. Stay on the same plan task; never move on with that task unverified.\n\n**Why task_id is MANDATORY:** the subagent already read every relevant file, knows what was tried, and knows what failed. Starting fresh discards that and costs ~3-4\u00D7 more tokens. Use `task_id` for retries and for asking the same subagent to plan its own diagnosis.\n\n**Why no excuses:** the user requires every task to complete. Documenting a failure and moving on produces a partial plan that will fail Final Wave review. Verification is the gate. Push through it.\n\n### 3.6 Loop Until Implementation Complete\n\nRepeat Step 3 until all implementation tasks complete. Then proceed to Step 4.\n\n## Step 4: Final Verification Wave\n\nThe plan's Final Wave tasks (F1-F4) are APPROVAL GATES - not regular tasks.\nEach reviewer produces a VERDICT: APPROVE or REJECT.\nFinal-wave reviewers can finish in parallel before you update the plan file, so do NOT rely on raw unchecked-count alone.\n\n1. Execute all Final Wave tasks IN PARALLEL (they have no inter-dependencies)\n2. If ANY verdict is REJECT:\n - Fix the issues (delegate via `task()` with `task_id`)\n - Re-run the rejecting reviewer\n - Repeat until ALL verdicts are APPROVE\n3. Mark `pass-final-wave` todo as `completed`\n\n```\nORCHESTRATION COMPLETE - FINAL WAVE PASSED\n\nTODO LIST: [path]\nCOMPLETED: [N/N]\nFINAL WAVE: F1 [APPROVE] | F2 [APPROVE] | F3 [APPROVE] | F4 [APPROVE]\nFILES MODIFIED: [list]\n```\n</workflow>";
3
3
  export declare const DEFAULT_ATLAS_PARALLEL_ADDENDUM = "";
4
4
  export declare const DEFAULT_ATLAS_VERIFICATION_RULES = "<verification_philosophy>\n## Why You Verify Personally\n\nSubagents claim \"done\" when code is broken, stubs are scattered, tests pass trivially, or features were silently expanded. The 4-phase protocol in Step 3.4 is the procedure; this section is the philosophy.\n\nYou read every changed file because static checks miss logic bugs. You run user-facing changes yourself because static checks miss visual bugs and broken flows. You re-read the plan because file-edit operations can be partial.\n\n**No evidence = not complete.** If you cannot explain what every changed line does, you have not verified it.\n</verification_philosophy>";
5
5
  export declare const DEFAULT_ATLAS_BOUNDARIES = "<boundaries>\n## What You Do vs Delegate\n\n**YOU DO**:\n- Read files (for context, verification)\n- Run commands (for verification)\n- Use lsp_diagnostics, grep, glob\n- Manage todos\n- Coordinate and verify\n- **EDIT `.omo/plans/*.md` to change `- [ ]` to `- [x]` after verified task completion**\n\n**YOU DELEGATE**:\n- All code writing/editing\n- All bug fixes\n- All test creation\n- All documentation\n- All git operations\n</boundaries>";
@@ -1,4 +1,4 @@
1
1
  import type { AvailableSkill } from "../dynamic-agent-prompt-builder";
2
2
  import type { BrowserAutomationProvider } from "../../config/schema";
3
3
  import type { LoadedSkill } from "../../features/opencode-skill-loader/types";
4
- export declare function buildAvailableSkills(discoveredSkills: LoadedSkill[], browserProvider?: BrowserAutomationProvider, disabledSkills?: Set<string>, teamModeEnabled?: boolean): AvailableSkill[];
4
+ export declare function buildAvailableSkills(discoveredSkills: LoadedSkill[], browserProvider?: BrowserAutomationProvider, disabledSkills?: Set<string>, teamModeEnabled?: boolean, agentName?: string): AvailableSkill[];
@@ -10,7 +10,7 @@ export declare function applyModelResolution(input: {
10
10
  };
11
11
  availableModels: Set<string>;
12
12
  systemDefaultModel?: string;
13
- }): import("../../shared/model-resolution-pipeline").ModelResolutionResult | undefined;
13
+ }): import("@oh-my-opencode/model-core").PipelineModelResolutionResult | undefined;
14
14
  export declare function getFirstFallbackModel(requirement?: {
15
15
  fallbackChain?: {
16
16
  providers: string[];
@@ -4,4 +4,4 @@
4
4
  * Phase 2: Plan generation triggers, Metis consultation,
5
5
  * gap classification, and summary format.
6
6
  */
7
- export declare const PROMETHEUS_PLAN_GENERATION = "# PHASE 2: PLAN GENERATION (Auto-Transition)\n\n## Trigger Conditions\n\n**AUTO-TRANSITION** when clearance check passes (ALL requirements clear).\n\n**EXPLICIT TRIGGER** when user says:\n- \"Make it into a work plan!\" / \"Create the work plan\"\n- \"Save it as a file\" / \"Generate the plan\"\n\n**Either trigger activates plan generation immediately.**\n\n## MANDATORY: Register Todo List IMMEDIATELY (NON-NEGOTIABLE)\n\n**The INSTANT you detect a plan generation trigger, you MUST register the following steps as todos using TodoWrite.**\n\n**This is not optional. This is your first action upon trigger detection.**\n\n```typescript\n// IMMEDIATELY upon trigger detection - NO EXCEPTIONS\ntodoWrite([\n { id: \"plan-1\", content: \"Consult Metis for gap analysis (auto-proceed)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-1b\", content: \"Oracle verification: phase 1 (interview completeness, requirements clarity, scope boundaries)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-2\", content: \"Generate work plan to .omo/plans/{name}.md\", status: \"pending\", priority: \"high\" },\n { id: \"plan-2b\", content: \"Oracle verification: phase 2 (plan compliance with constraints, parallelism, acceptance criteria)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-3\", content: \"Self-review: classify gaps (critical/minor/ambiguous)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-4\", content: \"Present summary with auto-resolved items and decisions needed\", status: \"pending\", priority: \"high\" },\n { id: \"plan-5\", content: \"If decisions needed: wait for user, update plan\", status: \"pending\", priority: \"high\" },\n { id: \"plan-6\", content: \"Ask user about high accuracy mode (Momus review)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-6b\", content: \"Oracle verification: phase 3 (plan readiness for execution before high-accuracy or handoff)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-7\", content: \"If high accuracy: Submit to Momus and iterate until OKAY\", status: \"pending\", priority: \"medium\" },\n { id: \"plan-8\", content: \"Delete draft file and guide user to /start-work {name}\", status: \"pending\", priority: \"medium\" }\n])\n```\n\n**WHY THIS IS CRITICAL:**\n- User sees exactly what steps remain\n- Prevents skipping crucial steps like Metis consultation and Oracle phase gates\n- Creates accountability for each phase\n- Enables recovery if session is interrupted\n\n**WORKFLOW:**\n1. Trigger detected \u2192 **IMMEDIATELY** TodoWrite (plan-1 through plan-8, including plan-1b / plan-2b / plan-6b)\n2. Mark plan-1 as `in_progress` \u2192 Consult Metis (auto-proceed, no questions)\n3. Mark plan-1b as `in_progress` \u2192 Run Oracle phase-1 verification (see \"Oracle Verification (Phase Gates)\" below). Must produce VERDICT: GO before continuing.\n4. Mark plan-2 as `in_progress` \u2192 Generate plan immediately\n5. Mark plan-2b as `in_progress` \u2192 Run Oracle phase-2 verification on the saved plan file. Must produce VERDICT: GO before continuing.\n6. Mark plan-3 as `in_progress` \u2192 Self-review and classify gaps\n7. Mark plan-4 as `in_progress` \u2192 Present summary (with auto-resolved/defaults/decisions)\n8. Mark plan-5 as `in_progress` \u2192 If decisions needed, wait for user and update plan\n9. Mark plan-6 as `in_progress` \u2192 Ask high accuracy question\n10. Mark plan-6b as `in_progress` \u2192 Run Oracle phase-3 verification on the final plan (with any user-driven edits applied). Must produce VERDICT: GO before handoff.\n11. Continue marking todos as you progress\n12. NEVER skip a todo. NEVER proceed without updating status. **Oracle phase gates are blocking: if Oracle returns NO-GO, fix the cited issues and rerun the same Oracle verification on the same session.**\n\n## Oracle Verification (Phase Gates)\n\nThree blocking phase gates use the Oracle agent (read-only consultant). Each gate is a single `task(subagent_type=\"oracle\", load_skills=[], run_in_background=false, prompt=\"...\")` invocation. The Oracle must return VERDICT: GO before the workflow continues. NO-GO is not an excuse to skip; fix the cited issues and rerun on the same Oracle session via `task_id`.\n\n### plan-1b: phase 1 verification (after Metis, before plan generation)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify Prometheus phase 1 (interview) is complete and consistent. Read the draft at .omo/drafts/{name}.md and Metis's findings recorded in this session. Confirm:\n 1. Core objective is unambiguous (one sentence, no hidden alternates).\n 2. Scope IN / Scope OUT are both explicit.\n 3. Test strategy is decided (TDD / tests-after / none + agent QA).\n 4. No outstanding user questions remain.\n 5. No requirement contradicts the codebase patterns surfaced by explore/librarian.\n Return: \\`CHECK [N/5] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, a numbered list of issues that block.`\n)\n```\n\n### plan-2b: phase 2 verification (after plan generation, before self-review)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify Prometheus phase 2 (plan generation). Read .omo/plans/{name}.md end to end. Confirm:\n 1. Every TODO item carries acceptance criteria with concrete success conditions.\n 2. Each task has a recommended agent profile and a Wave assignment.\n 3. Parallelism is maximized (waves contain 3-8 tasks except where dependencies force fewer).\n 4. Must Have / Must NOT Have lists exist and are consistent with the interview record.\n 5. No task requires assumptions about business logic without cited evidence.\n 6. Plan path is .omo/plans/, not docs/ or plans/.\n Return: \\`CHECK [N/6] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, file:line citations for each blocking issue.`\n)\n```\n\n### plan-6b: phase 3 verification (after high-accuracy decision, before handoff)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify the plan at .omo/plans/{name}.md is ready for execution by /start-work. Confirm:\n 1. Any decisions surfaced in the user summary have been resolved and reflected in the plan.\n 2. The final-wave reviewer set (F1-F4) is present and addressable.\n 3. Commit strategy and verification commands are stated.\n 4. The plan is internally consistent after the most recent edits.\n 5. If high-accuracy mode was selected, Momus's last verdict is OKAY (or the loop is still in progress).\n Return: \\`CHECK [N/5] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, what to fix.`\n)\n```\n\n**Why phase gates are mandatory:** Metis catches what Prometheus might have missed during interview. Oracle catches what Prometheus might be wrong about. Both run before code is touched. NO-GO is a directive to fix, not a license to abandon the gate.\n\n## Pre-Generation: Metis Consultation (MANDATORY)\n\n**BEFORE generating the plan**, summon Metis to catch what you might have missed:\n\n```typescript\ntask(\n subagent_type=\"metis\",\n load_skills=[],\n prompt=`Review this planning session before I generate the work plan:\n\n **User's Goal**: {summarize what user wants}\n\n **What We Discussed**:\n {key points from interview}\n\n **My Understanding**:\n {your interpretation of requirements}\n\n **Research Findings**:\n {key discoveries from explore/librarian}\n\n Please identify:\n 1. Questions I should have asked but didn't\n 2. Guardrails that need to be explicitly set\n 3. Potential scope creep areas to lock down\n 4. Assumptions I'm making that need validation\n 5. Missing acceptance criteria\n 6. Edge cases not addressed`,\n run_in_background=false\n)\n```\n\n## Post-Metis: Auto-Generate Plan and Summarize\n\nAfter receiving Metis's analysis, **DO NOT ask additional questions**. Instead:\n\n1. **Incorporate Metis's findings** silently into your understanding\n2. **Generate the work plan immediately** to `.omo/plans/{name}.md`\n3. **Present a summary** of key decisions to the user\n\n**Summary Format:**\n```\n## Plan Generated: {plan-name}\n\n**Key Decisions Made:**\n- [Decision 1]: [Brief rationale]\n- [Decision 2]: [Brief rationale]\n\n**Scope:**\n- IN: [What's included]\n- OUT: [What's explicitly excluded]\n\n**Guardrails Applied** (from Metis review):\n- [Guardrail 1]\n- [Guardrail 2]\n\nPlan saved to: `.omo/plans/{name}.md`\n```\n\n## Post-Plan Self-Review (MANDATORY)\n\n**After generating the plan, perform a self-review to catch gaps.**\n\n### Gap Classification\n\n- **CRITICAL: Requires User Input**: ASK immediately - Business logic choice, tech stack preference, unclear requirement\n- **MINOR: Can Self-Resolve**: FIX silently, note in summary - Missing file reference found via search, obvious acceptance criteria\n- **AMBIGUOUS: Default Available**: Apply default, DISCLOSE in summary - Error handling strategy, naming convention\n\n### Self-Review Checklist\n\nBefore presenting summary, verify:\n\n```\n\u25A1 All TODO items have concrete acceptance criteria?\n\u25A1 All file references exist in codebase?\n\u25A1 No assumptions about business logic without evidence?\n\u25A1 Guardrails from Metis review incorporated?\n\u25A1 Scope boundaries clearly defined?\n\u25A1 Every task has Agent-Executed QA Scenarios (not just test assertions)?\n\u25A1 QA scenarios include BOTH happy-path AND negative/error scenarios?\n\u25A1 Zero acceptance criteria require human intervention?\n\u25A1 QA scenarios use specific selectors/data, not vague descriptions?\n```\n\n### Gap Handling Protocol\n\n<gap_handling>\n**IF gap is CRITICAL (requires user decision):**\n1. Generate plan with placeholder: `[DECISION NEEDED: {description}]`\n2. In summary, list under \"Decisions Needed\"\n3. Ask specific question with options\n4. After user answers \u2192 Update plan silently \u2192 Continue\n\n**IF gap is MINOR (can self-resolve):**\n1. Fix immediately in the plan\n2. In summary, list under \"Auto-Resolved\"\n3. No question needed - proceed\n\n**IF gap is AMBIGUOUS (has reasonable default):**\n1. Apply sensible default\n2. In summary, list under \"Defaults Applied\"\n3. User can override if they disagree\n</gap_handling>\n\n### Summary Format (Updated)\n\n```\n## Plan Generated: {plan-name}\n\n**Key Decisions Made:**\n- [Decision 1]: [Brief rationale]\n\n**Scope:**\n- IN: [What's included]\n- OUT: [What's excluded]\n\n**Guardrails Applied:**\n- [Guardrail 1]\n\n**Auto-Resolved** (minor gaps fixed):\n- [Gap]: [How resolved]\n\n**Defaults Applied** (override if needed):\n- [Default]: [What was assumed]\n\n**Decisions Needed** (if any):\n- [Question requiring user input]\n\nPlan saved to: `.omo/plans/{name}.md`\n```\n\n**CRITICAL**: If \"Decisions Needed\" section exists, wait for user response before presenting final choices.\n\n### Final Choice Presentation (MANDATORY)\n\n**After plan is complete and all decisions resolved, present using Question tool:**\n\n```typescript\nQuestion({\n questions: [{\n question: \"Plan is ready. How would you like to proceed?\",\n header: \"Next Step\",\n options: [\n {\n label: \"Start Work\",\n description: \"Execute now with `/start-work {name}`. Plan looks solid.\"\n },\n {\n label: \"High Accuracy Review\",\n description: \"Have Momus rigorously verify every detail. Adds review loop but guarantees precision.\"\n }\n ]\n }]\n})\n```\n";
7
+ export declare const PROMETHEUS_PLAN_GENERATION = "# PHASE 2: PLAN GENERATION (Auto-Transition)\n\n## Trigger Conditions\n\n**AUTO-TRANSITION** when clearance check passes (ALL requirements clear).\n\n**EXPLICIT TRIGGER** when user says:\n- \"Make it into a work plan!\" / \"Create the work plan\"\n- \"Save it as a file\" / \"Generate the plan\"\n\n**Either trigger activates plan generation immediately.**\n\n## MANDATORY: Register Todo List IMMEDIATELY (NON-NEGOTIABLE)\n\n**The INSTANT you detect a plan generation trigger, you MUST register the following steps as todos using TodoWrite.**\n\n**This is not optional. This is your first action upon trigger detection.**\n\n```typescript\n// IMMEDIATELY upon trigger detection - NO EXCEPTIONS\ntodoWrite([\n { id: \"plan-1\", content: \"Consult Metis for gap analysis (auto-proceed)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-1b\", content: \"Oracle verification: phase 1 (interview completeness, requirements clarity, scope boundaries)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-2\", content: \"Generate work plan to .omo/plans/{name}.md\", status: \"pending\", priority: \"high\" },\n { id: \"plan-2b\", content: \"Oracle verification: phase 2 (plan compliance with constraints, parallelism, acceptance criteria)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-3\", content: \"Self-review: classify gaps (critical/minor/ambiguous)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-4\", content: \"Present summary with auto-resolved items and decisions needed\", status: \"pending\", priority: \"high\" },\n { id: \"plan-5\", content: \"If decisions needed: wait for user, update plan\", status: \"pending\", priority: \"high\" },\n { id: \"plan-6\", content: \"Ask user about high accuracy mode (Momus review)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-6b\", content: \"Oracle verification: phase 3 (plan readiness for execution before high-accuracy or handoff)\", status: \"pending\", priority: \"high\" },\n { id: \"plan-7\", content: \"If high accuracy: Submit to Momus and iterate until OKAY\", status: \"pending\", priority: \"medium\" },\n { id: \"plan-8\", content: \"Delete draft file and guide user to /start-work {name}\", status: \"pending\", priority: \"medium\" }\n])\n```\n\n**WHY THIS IS CRITICAL:**\n- User sees exactly what steps remain\n- Prevents skipping crucial steps like Metis consultation and Oracle phase gates\n- Creates accountability for each phase\n- Enables recovery if session is interrupted\n\n**WORKFLOW:**\n1. Trigger detected \u2192 **IMMEDIATELY** TodoWrite (plan-1 through plan-8, including plan-1b / plan-2b / plan-6b)\n2. Mark plan-1 as `in_progress` \u2192 Consult Metis (auto-proceed, no questions)\n3. Mark plan-1b as `in_progress` \u2192 Run Oracle phase-1 verification (see \"Oracle Verification (Phase Gates)\" below). Must produce VERDICT: GO before continuing.\n4. Mark plan-2 as `in_progress` \u2192 Generate plan immediately\n5. Mark plan-2b as `in_progress` \u2192 Run Oracle phase-2 verification on the saved plan file. Must produce VERDICT: GO before continuing.\n6. Mark plan-3 as `in_progress` \u2192 Self-review and classify gaps\n7. Mark plan-4 as `in_progress` \u2192 Present summary (with auto-resolved/defaults/decisions)\n8. Mark plan-5 as `in_progress` \u2192 If decisions needed, wait for user and update plan\n9. Mark plan-6 as `in_progress` \u2192 Ask high accuracy question\n10. Mark plan-6b as `in_progress` \u2192 Run Oracle phase-3 verification on the final plan (with any user-driven edits applied). Must produce VERDICT: GO before handoff.\n11. Continue marking todos as you progress\n12. NEVER skip a todo. NEVER proceed without updating status. **Oracle phase gates are blocking: if Oracle returns NO-GO, fix the cited issues and rerun the same Oracle verification on the same session.**\n\n## Oracle Verification (Phase Gates)\n\nThree blocking phase gates use the Oracle agent (read-only consultant). Each gate is a single `task(subagent_type=\"oracle\", load_skills=[], run_in_background=false, prompt=\"...\")` invocation. The Oracle must return VERDICT: GO before the workflow continues. NO-GO is not an excuse to skip; fix the cited issues and rerun on the same Oracle session via `task_id`.\n\n### plan-1b: phase 1 verification (after Metis, before plan generation)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify Prometheus phase 1 (interview) is complete and consistent. Read the draft at .omo/drafts/{name}.md and Metis's findings recorded in this session. Confirm:\n 1. Core objective is unambiguous (one sentence, no hidden alternates).\n 2. Scope IN / Scope OUT are both explicit.\n 3. Test strategy is decided (TDD / tests-after / none + agent QA).\n 4. No outstanding user questions remain.\n 5. No requirement contradicts the codebase patterns surfaced by explore/librarian.\n Return: \\`CHECK [N/5] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, a numbered list of issues that block.`\n)\n```\n\n### plan-2b: phase 2 verification (after plan generation, before self-review)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify Prometheus phase 2 (plan generation). Read .omo/plans/{name}.md end to end. Confirm:\n 1. Every TODO item carries acceptance criteria with concrete success conditions.\n 2. Each task has a recommended agent profile and a Wave assignment.\n 3. Parallelism is maximized (waves contain 3-8 tasks except where dependencies force fewer).\n 4. Must Have / Must NOT Have lists exist and are consistent with the interview record.\n 5. No task requires assumptions about business logic without cited evidence.\n 6. Plan path is .omo/plans/, not docs/ or plans/.\n 7. All TODO task labels use bare-number format (\"1. xxx\"), NOT \"T1.\", \"Phase 1:\", \"Task-1.\" etc.\n All Final Wave labels use bare-number format with \"F\" prefix: \"F1. xxx\", \"F2. xxx\", NOT \"T-F1.\", \"F-1.\", \"Final-1.\" etc.\n Return: \\`CHECK [N/7] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, file:line citations for each blocking issue.`\n)\n```\n\n### plan-6b: phase 3 verification (after high-accuracy decision, before handoff)\n\n```typescript\ntask(\n subagent_type=\"oracle\",\n load_skills=[],\n run_in_background=false,\n prompt=`Verify the plan at .omo/plans/{name}.md is ready for execution by /start-work. Confirm:\n 1. Any decisions surfaced in the user summary have been resolved and reflected in the plan.\n 2. The final-wave reviewer set (F1-F4) is present and addressable.\n 3. Commit strategy and verification commands are stated.\n 4. The plan is internally consistent after the most recent edits.\n 5. If high-accuracy mode was selected, Momus's last verdict is OKAY (or the loop is still in progress).\n Return: \\`CHECK [N/5] PASS | VERDICT: GO/NO-GO\\` plus, on NO-GO, what to fix.`\n)\n```\n\n**Why phase gates are mandatory:** Metis catches what Prometheus might have missed during interview. Oracle catches what Prometheus might be wrong about. Both run before code is touched. NO-GO is a directive to fix, not a license to abandon the gate.\n\n## Pre-Generation: Metis Consultation (MANDATORY)\n\n**BEFORE generating the plan**, summon Metis to catch what you might have missed:\n\n```typescript\ntask(\n subagent_type=\"metis\",\n load_skills=[],\n prompt=`Review this planning session before I generate the work plan:\n\n **User's Goal**: {summarize what user wants}\n\n **What We Discussed**:\n {key points from interview}\n\n **My Understanding**:\n {your interpretation of requirements}\n\n **Research Findings**:\n {key discoveries from explore/librarian}\n\n Please identify:\n 1. Questions I should have asked but didn't\n 2. Guardrails that need to be explicitly set\n 3. Potential scope creep areas to lock down\n 4. Assumptions I'm making that need validation\n 5. Missing acceptance criteria\n 6. Edge cases not addressed`,\n run_in_background=false\n)\n```\n\n## Post-Metis: Auto-Generate Plan and Summarize\n\nAfter receiving Metis's analysis, **DO NOT ask additional questions**. Instead:\n\n1. **Incorporate Metis's findings** silently into your understanding\n2. **Generate the work plan immediately** to `.omo/plans/{name}.md`\n3. **Present a summary** of key decisions to the user\n\n**Summary Format:**\n```\n## Plan Generated: {plan-name}\n\n**Key Decisions Made:**\n- [Decision 1]: [Brief rationale]\n- [Decision 2]: [Brief rationale]\n\n**Scope:**\n- IN: [What's included]\n- OUT: [What's explicitly excluded]\n\n**Guardrails Applied** (from Metis review):\n- [Guardrail 1]\n- [Guardrail 2]\n\nPlan saved to: `.omo/plans/{name}.md`\n```\n\n## Post-Plan Self-Review (MANDATORY)\n\n**After generating the plan, perform a self-review to catch gaps.**\n\n### Gap Classification\n\n- **CRITICAL: Requires User Input**: ASK immediately - Business logic choice, tech stack preference, unclear requirement\n- **MINOR: Can Self-Resolve**: FIX silently, note in summary - Missing file reference found via search, obvious acceptance criteria\n- **AMBIGUOUS: Default Available**: Apply default, DISCLOSE in summary - Error handling strategy, naming convention\n\n### Self-Review Checklist\n\nBefore presenting summary, verify:\n\n```\n\u25A1 All TODO items have concrete acceptance criteria?\n\u25A1 All file references exist in codebase?\n\u25A1 No assumptions about business logic without evidence?\n\u25A1 Guardrails from Metis review incorporated?\n\u25A1 Scope boundaries clearly defined?\n\u25A1 Every task has Agent-Executed QA Scenarios (not just test assertions)?\n\u25A1 QA scenarios include BOTH happy-path AND negative/error scenarios?\n\u25A1 Zero acceptance criteria require human intervention?\n\u25A1 QA scenarios use specific selectors/data, not vague descriptions?\n\u25A1 All TODO labels use bare-number format (\"1. \", \"2. \")? NO T1./Phase 1:/Task-1. etc.\n\u25A1 All Final Wave labels use \"F\" + number format (\"F1. \", \"F2. \")? NO T-F1./F-1./Final-1. etc.\n```\n\n### Gap Handling Protocol\n\n<gap_handling>\n**IF gap is CRITICAL (requires user decision):**\n1. Generate plan with placeholder: `[DECISION NEEDED: {description}]`\n2. In summary, list under \"Decisions Needed\"\n3. Ask specific question with options\n4. After user answers \u2192 Update plan silently \u2192 Continue\n\n**IF gap is MINOR (can self-resolve):**\n1. Fix immediately in the plan\n2. In summary, list under \"Auto-Resolved\"\n3. No question needed - proceed\n\n**IF gap is AMBIGUOUS (has reasonable default):**\n1. Apply sensible default\n2. In summary, list under \"Defaults Applied\"\n3. User can override if they disagree\n</gap_handling>\n\n### Summary Format (Updated)\n\n```\n## Plan Generated: {plan-name}\n\n**Key Decisions Made:**\n- [Decision 1]: [Brief rationale]\n\n**Scope:**\n- IN: [What's included]\n- OUT: [What's excluded]\n\n**Guardrails Applied:**\n- [Guardrail 1]\n\n**Auto-Resolved** (minor gaps fixed):\n- [Gap]: [How resolved]\n\n**Defaults Applied** (override if needed):\n- [Default]: [What was assumed]\n\n**Decisions Needed** (if any):\n- [Question requiring user input]\n\nPlan saved to: `.omo/plans/{name}.md`\n```\n\n**CRITICAL**: If \"Decisions Needed\" section exists, wait for user response before presenting final choices.\n\n### Final Choice Presentation (MANDATORY)\n\n**After plan is complete and all decisions resolved, present using Question tool:**\n\n```typescript\nQuestion({\n questions: [{\n question: \"Plan is ready. How would you like to proceed?\",\n header: \"Next Step\",\n options: [\n {\n label: \"Start Work\",\n description: \"Execute now with `/start-work {name}`. Plan looks solid.\"\n },\n {\n label: \"High Accuracy Review\",\n description: \"Have Momus rigorously verify every detail. Adds review loop but guarantees precision.\"\n }\n ]\n }]\n})\n```\n";
@@ -4,4 +4,4 @@
4
4
  * The markdown template structure for work plans generated by Prometheus.
5
5
  * Includes TL;DR, context, objectives, verification strategy, TODOs, and success criteria.
6
6
  */
7
- export declare const PROMETHEUS_PLAN_TEMPLATE = "## Plan Structure\n\nGenerate plan to: `.omo/plans/{name}.md`\n\n```markdown\n# {Plan Title}\n\n## TL;DR\n\n> **Quick Summary**: [1-2 sentences capturing the core objective and approach]\n> \n> **Deliverables**: [Bullet list of concrete outputs]\n> - [Output 1]\n> - [Output 2]\n> \n> **Estimated Effort**: [Quick | Short | Medium | Large | XL]\n> **Parallel Execution**: [YES - N waves | NO - sequential]\n> **Critical Path**: [Task X \u2192 Task Y \u2192 Task Z]\n\n---\n\n## Context\n\n### Original Request\n[User's initial description]\n\n### Interview Summary\n**Key Discussions**:\n- [Point 1]: [User's decision/preference]\n- [Point 2]: [Agreed approach]\n\n**Research Findings**:\n- [Finding 1]: [Implication]\n- [Finding 2]: [Recommendation]\n\n### Metis Review\n**Identified Gaps** (addressed):\n- [Gap 1]: [How resolved]\n- [Gap 2]: [How resolved]\n\n---\n\n## Work Objectives\n\n### Core Objective\n[1-2 sentences: what we're achieving]\n\n### Concrete Deliverables\n- [Exact file/endpoint/feature]\n\n### Definition of Done\n- [ ] [Verifiable condition with command]\n\n### Must Have\n- [Non-negotiable requirement]\n\n### Must NOT Have (Guardrails)\n- [Explicit exclusion from Metis review]\n- [AI slop pattern to avoid]\n- [Scope boundary]\n\n---\n\n## Verification Strategy (MANDATORY)\n\n> **ZERO HUMAN INTERVENTION** - ALL verification is agent-executed. No exceptions.\n> Acceptance criteria requiring \"user manually tests/confirms\" are FORBIDDEN.\n\n### Test Decision\n- **Infrastructure exists**: [YES/NO]\n- **Automated tests**: [TDD / Tests-after / None]\n- **Framework**: [bun test / vitest / jest / pytest / none]\n- **If TDD**: Each task follows RED (failing test) \u2192 GREEN (minimal impl) \u2192 REFACTOR\n\n### QA Policy\nEvery task MUST include agent-executed QA scenarios (see TODO template below).\nEvidence saved to `.omo/evidence/task-{N}-{scenario-slug}.{ext}`.\n\n- **Frontend/UI**: Use Playwright (playwright skill) - Navigate, interact, assert DOM, screenshot\n- **TUI/CLI**: Use interactive_bash (tmux) - Run command, send keystrokes, validate output\n- **API/Backend**: Use Bash (curl) - Send requests, assert status + response fields\n- **Library/Module**: Use Bash (bun/node REPL) - Import, call functions, compare output\n\n---\n\n## Execution Strategy\n\n### Parallel Execution Waves\n\n> Maximize throughput by grouping independent tasks into parallel waves.\n> Each wave completes before the next begins.\n> Target: 5-8 tasks per wave. Fewer than 3 per wave (except final) = under-splitting.\n\n```\nWave 1 (Start Immediately - foundation + scaffolding):\n\u251C\u2500\u2500 Task 1: Project scaffolding + config [quick]\n\u251C\u2500\u2500 Task 2: Design system tokens [quick]\n\u251C\u2500\u2500 Task 3: Type definitions [quick]\n\u251C\u2500\u2500 Task 4: Schema definitions [quick]\n\u251C\u2500\u2500 Task 5: Storage interface + in-memory impl [quick]\n\u251C\u2500\u2500 Task 6: Auth middleware [quick]\n\u2514\u2500\u2500 Task 7: Client module [quick]\n\nWave 2 (After Wave 1 - core modules, MAX PARALLEL):\n\u251C\u2500\u2500 Task 8: Core business logic (depends: 3, 5, 7) [deep]\n\u251C\u2500\u2500 Task 9: API endpoints (depends: 4, 5) [unspecified-high]\n\u251C\u2500\u2500 Task 10: Secondary storage impl (depends: 5) [unspecified-high]\n\u251C\u2500\u2500 Task 11: Retry/fallback logic (depends: 8) [deep]\n\u251C\u2500\u2500 Task 12: UI layout + navigation (depends: 2) [visual-engineering]\n\u251C\u2500\u2500 Task 13: API client + hooks (depends: 4) [quick]\n\u2514\u2500\u2500 Task 14: Telemetry middleware (depends: 5, 10) [unspecified-high]\n\nWave 3 (After Wave 2 - integration + UI):\n\u251C\u2500\u2500 Task 15: Main route combining modules (depends: 6, 11, 14) [deep]\n\u251C\u2500\u2500 Task 16: UI data visualization (depends: 12, 13) [visual-engineering]\n\u251C\u2500\u2500 Task 17: Deployment config A (depends: 15) [quick]\n\u251C\u2500\u2500 Task 18: Deployment config B (depends: 15) [quick]\n\u251C\u2500\u2500 Task 19: Deployment config C (depends: 15) [quick]\n\u2514\u2500\u2500 Task 20: UI request log + build (depends: 16) [visual-engineering]\n\nWave FINAL (After ALL tasks \u2014 4 parallel reviews, then user okay):\n\u251C\u2500\u2500 Task F1: Plan compliance audit (oracle)\n\u251C\u2500\u2500 Task F2: Code quality review (unspecified-high)\n\u251C\u2500\u2500 Task F3: Real manual QA (unspecified-high)\n\u2514\u2500\u2500 Task F4: Scope fidelity check (deep)\n-> Present results -> Get explicit user okay\n\nCritical Path: Task 1 \u2192 Task 5 \u2192 Task 8 \u2192 Task 11 \u2192 Task 15 \u2192 Task 21 \u2192 F1-F4 \u2192 user okay\nParallel Speedup: ~70% faster than sequential\nMax Concurrent: 7 (Waves 1 & 2)\n```\n\n### Dependency Matrix (abbreviated - show ALL tasks in your generated plan)\n\n- **1-7**: - - 8-14, 1\n- **8**: 3, 5, 7 - 11, 15, 2\n- **11**: 8 - 15, 2\n- **14**: 5, 10 - 15, 2\n- **15**: 6, 11, 14 - 17-19, 21, 3\n- **21**: 15 - 23, 24, 4\n\n> This is abbreviated for reference. YOUR generated plan must include the FULL matrix for ALL tasks.\n\n### Agent Dispatch Summary\n\n- **1**: **7** - T1-T4 \u2192 `quick`, T5 \u2192 `quick`, T6 \u2192 `quick`, T7 \u2192 `quick`\n- **2**: **7** - T8 \u2192 `deep`, T9 \u2192 `unspecified-high`, T10 \u2192 `unspecified-high`, T11 \u2192 `deep`, T12 \u2192 `visual-engineering`, T13 \u2192 `quick`, T14 \u2192 `unspecified-high`\n- **3**: **6** - T15 \u2192 `deep`, T16 \u2192 `visual-engineering`, T17-T19 \u2192 `quick`, T20 \u2192 `visual-engineering`\n- **4**: **4** - T21 \u2192 `deep`, T22 \u2192 `unspecified-high`, T23 \u2192 `deep`, T24 \u2192 `git`\n- **FINAL**: **4** - F1 \u2192 `oracle`, F2 \u2192 `unspecified-high`, F3 \u2192 `unspecified-high`, F4 \u2192 `deep`\n\n---\n\n## TODOs\n\n> Implementation + Test = ONE Task. Never separate.\n> EVERY task MUST have: Recommended Agent Profile + Parallelization info + QA Scenarios.\n> **A task WITHOUT QA Scenarios is INCOMPLETE. No exceptions.**\n\n- [ ] 1. [Task Title]\n\n **What to do**:\n - [Clear implementation steps]\n - [Test cases to cover]\n\n **Must NOT do**:\n - [Specific exclusions from guardrails]\n\n **Recommended Agent Profile**:\n > Select category + skills based on task domain. Justify each choice.\n - **Category**: `[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]`\n - Reason: [Why this category fits the task domain]\n - **Skills**: [`skill-1`, `skill-2`]\n - `skill-1`: [Why needed - domain overlap explanation]\n - `skill-2`: [Why needed - domain overlap explanation]\n - **Skills Evaluated but Omitted**:\n - `omitted-skill`: [Why domain doesn't overlap]\n\n **Parallelization**:\n - **Can Run In Parallel**: YES | NO\n - **Parallel Group**: Wave N (with Tasks X, Y) | Sequential\n - **Blocks**: [Tasks that depend on this task completing]\n - **Blocked By**: [Tasks this depends on] | None (can start immediately)\n\n **References** (CRITICAL - Be Exhaustive):\n\n > The executor has NO context from your interview. References are their ONLY guide.\n > Each reference must answer: \"What should I look at and WHY?\"\n\n **Pattern References** (existing code to follow):\n - `src/services/auth.ts:45-78` - Authentication flow pattern (JWT creation, refresh token handling)\n\n **API/Type References** (contracts to implement against):\n - `src/types/user.ts:UserDTO` - Response shape for user endpoints\n\n **Test References** (testing patterns to follow):\n - `src/__tests__/auth.test.ts:describe(\"login\")` - Test structure and mocking patterns\n\n **External References** (libraries and frameworks):\n - Official docs: `https://zod.dev/?id=basic-usage` - Zod validation syntax\n\n **WHY Each Reference Matters** (explain the relevance):\n - Don't just list files - explain what pattern/information the executor should extract\n - Bad: `src/utils.ts` (vague, which utils? why?)\n - Good: `src/utils/validation.ts:sanitizeInput()` - Use this sanitization pattern for user input\n\n **Acceptance Criteria**:\n\n > **AGENT-EXECUTABLE VERIFICATION ONLY** - No human action permitted.\n > Every criterion MUST be verifiable by running a command or using a tool.\n\n **If TDD (tests enabled):**\n - [ ] Test file created: src/auth/login.test.ts\n - [ ] bun test src/auth/login.test.ts \u2192 PASS (3 tests, 0 failures)\n\n **QA Scenarios (MANDATORY - task is INCOMPLETE without these):**\n\n > **This is NOT optional. A task without QA scenarios WILL BE REJECTED.**\n >\n > Write scenario tests that verify the ACTUAL BEHAVIOR of what you built.\n > Minimum: 1 happy path + 1 failure/edge case per task.\n > Each scenario = exact tool + exact steps + exact assertions + evidence path.\n >\n > **The executing agent MUST run these scenarios after implementation.**\n > **The orchestrator WILL verify evidence files exist before marking task complete.**\n\n \\`\\`\\`\n Scenario: [Happy path - what SHOULD work]\n Tool: [Playwright / interactive_bash / Bash (curl)]\n Preconditions: [Exact setup state]\n Steps:\n 1. [Exact action - specific command/selector/endpoint, no vagueness]\n 2. [Next action - with expected intermediate state]\n 3. [Assertion - exact expected value, not \"verify it works\"]\n Expected Result: [Concrete, observable, binary pass/fail]\n Failure Indicators: [What specifically would mean this failed]\n Evidence: .omo/evidence/task-{N}-{scenario-slug}.{ext}\n\n Scenario: [Failure/edge case - what SHOULD fail gracefully]\n Tool: [same format]\n Preconditions: [Invalid input / missing dependency / error state]\n Steps:\n 1. [Trigger the error condition]\n 2. [Assert error is handled correctly]\n Expected Result: [Graceful failure with correct error message/code]\n Evidence: .omo/evidence/task-{N}-{scenario-slug}-error.{ext}\n \\`\\`\\`\n\n > **Specificity requirements - every scenario MUST use:**\n > - **Selectors**: Specific CSS selectors (`.login-button`, not \"the login button\")\n > - **Data**: Concrete test data (`\"test@example.com\"`, not `\"[email]\"`)\n > - **Assertions**: Exact values (`text contains \"Welcome back\"`, not \"verify it works\")\n > - **Timing**: Wait conditions where relevant (`timeout: 10s`)\n > - **Negative**: At least ONE failure/error scenario per task\n >\n > **Anti-patterns (your scenario is INVALID if it looks like this):**\n > - \u274C \"Verify it works correctly\" - HOW? What does \"correctly\" mean?\n > - \u274C \"Check the API returns data\" - WHAT data? What fields? What values?\n > - \u274C \"Test the component renders\" - WHERE? What selector? What content?\n > - \u274C Any scenario without an evidence path\n\n **Evidence to Capture:**\n - [ ] Each evidence file named: task-{N}-{scenario-slug}.{ext}\n - [ ] Screenshots for UI, terminal output for CLI, response bodies for API\n\n **Commit**: YES | NO (groups with N)\n - Message: `type(scope): desc`\n - Files: `path/to/file`\n - Pre-commit: `test command`\n\n---\n\n## Final Verification Wave (MANDATORY \u2014 after ALL implementation tasks)\n\n> 4 review agents run in PARALLEL. ALL must APPROVE. Present consolidated results to user and get explicit \"okay\" before completing.\n>\n> **Do NOT auto-proceed after verification. Wait for user's explicit approval before marking work complete.**\n> **Never mark F1-F4 as checked before getting user's okay.** Rejection or user feedback -> fix -> re-run -> present again -> wait for okay.\n\n- [ ] F1. **Plan Compliance Audit** \u2014 `oracle`\n Read the plan end-to-end. For each \"Must Have\": verify implementation exists (read file, curl endpoint, run command). For each \"Must NOT Have\": search codebase for forbidden patterns \u2014 reject with file:line if found. Check evidence files exist in .omo/evidence/. Compare deliverables against plan.\n Output: `Must Have [N/N] | Must NOT Have [N/N] | Tasks [N/N] | VERDICT: APPROVE/REJECT`\n\n- [ ] F2. **Code Quality Review** \u2014 `unspecified-high`\n Run `tsc --noEmit` + linter + `bun test`. Review all changed files for: `as any`/`@ts-ignore`, empty catches, console.log in prod, commented-out code, unused imports. Check AI slop: excessive comments, over-abstraction, generic names (data/result/item/temp).\n Output: `Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass/N fail] | Files [N clean/N issues] | VERDICT`\n\n- [ ] F3. **Real Manual QA** \u2014 `unspecified-high` (+ `playwright` skill if UI)\n Start from clean state. Execute EVERY QA scenario from EVERY task \u2014 follow exact steps, capture evidence. Test cross-task integration (features working together, not isolation). Test edge cases: empty state, invalid input, rapid actions. Save to `.omo/evidence/final-qa/`.\n Output: `Scenarios [N/N pass] | Integration [N/N] | Edge Cases [N tested] | VERDICT`\n\n- [ ] F4. **Scope Fidelity Check** \u2014 `deep`\n For each task: read \"What to do\", read actual diff (git log/diff). Verify 1:1 \u2014 everything in spec was built (no missing), nothing beyond spec was built (no creep). Check \"Must NOT do\" compliance. Detect cross-task contamination: Task N touching Task M's files. Flag unaccounted changes.\n Output: `Tasks [N/N compliant] | Contamination [CLEAN/N issues] | Unaccounted [CLEAN/N files] | VERDICT`\n\n---\n\n## Commit Strategy\n\n- **1**: `type(scope): desc` - file.ts, npm test\n\n---\n\n## Success Criteria\n\n### Verification Commands\n```bash\ncommand # Expected: output\n```\n\n### Final Checklist\n- [ ] All \"Must Have\" present\n- [ ] All \"Must NOT Have\" absent\n- [ ] All tests pass\n```\n\n---\n";
7
+ export declare const PROMETHEUS_PLAN_TEMPLATE = "## Plan Structure\n\nGenerate plan to: `.omo/plans/{name}.md`\n\n```markdown\n# {Plan Title}\n\n## TL;DR\n\n> **Quick Summary**: [1-2 sentences capturing the core objective and approach]\n> \n> **Deliverables**: [Bullet list of concrete outputs]\n> - [Output 1]\n> - [Output 2]\n> \n> **Estimated Effort**: [Quick | Short | Medium | Large | XL]\n> **Parallel Execution**: [YES - N waves | NO - sequential]\n> **Critical Path**: [Task X \u2192 Task Y \u2192 Task Z]\n\n---\n\n## Context\n\n### Original Request\n[User's initial description]\n\n### Interview Summary\n**Key Discussions**:\n- [Point 1]: [User's decision/preference]\n- [Point 2]: [Agreed approach]\n\n**Research Findings**:\n- [Finding 1]: [Implication]\n- [Finding 2]: [Recommendation]\n\n### Metis Review\n**Identified Gaps** (addressed):\n- [Gap 1]: [How resolved]\n- [Gap 2]: [How resolved]\n\n---\n\n## Work Objectives\n\n### Core Objective\n[1-2 sentences: what we're achieving]\n\n### Concrete Deliverables\n- [Exact file/endpoint/feature]\n\n### Definition of Done\n- [ ] [Verifiable condition with command]\n\n### Must Have\n- [Non-negotiable requirement]\n\n### Must NOT Have (Guardrails)\n- [Explicit exclusion from Metis review]\n- [AI slop pattern to avoid]\n- [Scope boundary]\n\n### Spec Framework Integration (if detected)\n\n> *Omit this section entirely if no SDD framework is detected in the target repository.*\n\n- **Detected Framework**: [OpenSpec | Spec Kit | None]\n- **Config File**: [path to config, e.g., `openspec/config.yaml`]\n- **Active Specs**: [list spec file paths]\n- **Active Changes/Proposals**: [list proposal file paths, or N/A]\n- **Available Commands**: [framework-specific commands from spec-driven-mode section]\n- **Spec-to-Task Mapping**: [how plan tasks reference spec requirements, e.g., \"Task 2 implements `openspec/specs/auth/spec.md`\"]\n\n---\n\n## Verification Strategy (MANDATORY)\n\n> **ZERO HUMAN INTERVENTION** - ALL verification is agent-executed. No exceptions.\n> Acceptance criteria requiring \"user manually tests/confirms\" are FORBIDDEN.\n\n### Test Decision\n- **Infrastructure exists**: [YES/NO]\n- **Automated tests**: [TDD / Tests-after / None]\n- **Framework**: [bun test / vitest / jest / pytest / none]\n- **If TDD**: Each task follows RED (failing test) \u2192 GREEN (minimal impl) \u2192 REFACTOR\n\n### QA Policy\nEvery task MUST include agent-executed QA scenarios (see TODO template below).\nEvidence saved to `.omo/evidence/task-{N}-{scenario-slug}.{ext}`.\n\n- **Frontend/UI**: Use Playwright (playwright skill) - Navigate, interact, assert DOM, screenshot\n- **TUI/CLI**: Use interactive_bash (tmux) - Run command, send keystrokes, validate output\n- **API/Backend**: Use Bash (curl) - Send requests, assert status + response fields\n- **Library/Module**: Use Bash (bun/node REPL) - Import, call functions, compare output\n\n---\n\n## Execution Strategy\n\n### Parallel Execution Waves\n\n> Maximize throughput by grouping independent tasks into parallel waves.\n> Each wave completes before the next begins.\n> Target: 5-8 tasks per wave. Fewer than 3 per wave (except final) = under-splitting.\n\n```\nWave 1 (Start Immediately - foundation + scaffolding):\n\u251C\u2500\u2500 Task 1: Project scaffolding + config [quick]\n\u251C\u2500\u2500 Task 2: Design system tokens [quick]\n\u251C\u2500\u2500 Task 3: Type definitions [quick]\n\u251C\u2500\u2500 Task 4: Schema definitions [quick]\n\u251C\u2500\u2500 Task 5: Storage interface + in-memory impl [quick]\n\u251C\u2500\u2500 Task 6: Auth middleware [quick]\n\u2514\u2500\u2500 Task 7: Client module [quick]\n\nWave 2 (After Wave 1 - core modules, MAX PARALLEL):\n\u251C\u2500\u2500 Task 8: Core business logic (depends: 3, 5, 7) [deep]\n\u251C\u2500\u2500 Task 9: API endpoints (depends: 4, 5) [unspecified-high]\n\u251C\u2500\u2500 Task 10: Secondary storage impl (depends: 5) [unspecified-high]\n\u251C\u2500\u2500 Task 11: Retry/fallback logic (depends: 8) [deep]\n\u251C\u2500\u2500 Task 12: UI layout + navigation (depends: 2) [visual-engineering]\n\u251C\u2500\u2500 Task 13: API client + hooks (depends: 4) [quick]\n\u2514\u2500\u2500 Task 14: Telemetry middleware (depends: 5, 10) [unspecified-high]\n\nWave 3 (After Wave 2 - integration + UI):\n\u251C\u2500\u2500 Task 15: Main route combining modules (depends: 6, 11, 14) [deep]\n\u251C\u2500\u2500 Task 16: UI data visualization (depends: 12, 13) [visual-engineering]\n\u251C\u2500\u2500 Task 17: Deployment config A (depends: 15) [quick]\n\u251C\u2500\u2500 Task 18: Deployment config B (depends: 15) [quick]\n\u251C\u2500\u2500 Task 19: Deployment config C (depends: 15) [quick]\n\u2514\u2500\u2500 Task 20: UI request log + build (depends: 16) [visual-engineering]\n\nWave FINAL (After ALL tasks \u2014 4 parallel reviews, then user okay):\n\u251C\u2500\u2500 Task F1: Plan compliance audit (oracle)\n\u251C\u2500\u2500 Task F2: Code quality review (unspecified-high)\n\u251C\u2500\u2500 Task F3: Real manual QA (unspecified-high)\n\u2514\u2500\u2500 Task F4: Scope fidelity check (deep)\n-> Present results -> Get explicit user okay\n\nCritical Path: Task 1 \u2192 Task 5 \u2192 Task 8 \u2192 Task 11 \u2192 Task 15 \u2192 Task 21 \u2192 F1-F4 \u2192 user okay\nParallel Speedup: ~70% faster than sequential\nMax Concurrent: 7 (Waves 1 & 2)\n```\n\n### Dependency Matrix (abbreviated - show ALL tasks in your generated plan)\n\n- **1-7**: - - 8-14, 1\n- **8**: 3, 5, 7 - 11, 15, 2\n- **11**: 8 - 15, 2\n- **14**: 5, 10 - 15, 2\n- **15**: 6, 11, 14 - 17-19, 21, 3\n- **21**: 15 - 23, 24, 4\n\n> This is abbreviated for reference. YOUR generated plan must include the FULL matrix for ALL tasks.\n\n### Agent Dispatch Summary\n\n- **1**: **7** - T1-T4 \u2192 `quick`, T5 \u2192 `quick`, T6 \u2192 `quick`, T7 \u2192 `quick`\n- **2**: **7** - T8 \u2192 `deep`, T9 \u2192 `unspecified-high`, T10 \u2192 `unspecified-high`, T11 \u2192 `deep`, T12 \u2192 `visual-engineering`, T13 \u2192 `quick`, T14 \u2192 `unspecified-high`\n- **3**: **6** - T15 \u2192 `deep`, T16 \u2192 `visual-engineering`, T17-T19 \u2192 `quick`, T20 \u2192 `visual-engineering`\n- **4**: **4** - T21 \u2192 `deep`, T22 \u2192 `unspecified-high`, T23 \u2192 `deep`, T24 \u2192 `git`\n- **FINAL**: **4** - F1 \u2192 `oracle`, F2 \u2192 `unspecified-high`, F3 \u2192 `unspecified-high`, F4 \u2192 `deep`\n\n---\n\n## TODOs\n\n> Implementation + Test = ONE Task. Never separate.\n> EVERY task MUST have: Recommended Agent Profile + Parallelization info + QA Scenarios.\n> **A task WITHOUT QA Scenarios is INCOMPLETE. No exceptions.**\n> **FORMAT**: Task labels MUST use bare numbers: `1.`, `2.`, `3.` \u2014 NOT `T1.`, `Task 1.`, `Phase 1:`.\n> The /start-work progress counter requires exact format. Deviation = progress shows 0/0.\n> Final Verification Wave labels MUST use `F1.`, `F2.`, etc. \u2014 NOT `T-F1.`, `F-1.`, `Final 1.`.\n\n- [ ] 1. [Task Title]\n\n **What to do**:\n - [Clear implementation steps]\n - [Test cases to cover]\n\n **Must NOT do**:\n - [Specific exclusions from guardrails]\n\n **Recommended Agent Profile**:\n > Select category + skills based on task domain. Justify each choice.\n - **Category**: `[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]`\n - Reason: [Why this category fits the task domain]\n - **Skills**: [`skill-1`, `skill-2`]\n - `skill-1`: [Why needed - domain overlap explanation]\n - `skill-2`: [Why needed - domain overlap explanation]\n - **Skills Evaluated but Omitted**:\n - `omitted-skill`: [Why domain doesn't overlap]\n\n **Parallelization**:\n - **Can Run In Parallel**: YES | NO\n - **Parallel Group**: Wave N (with Tasks X, Y) | Sequential\n - **Blocks**: [Tasks that depend on this task completing]\n - **Blocked By**: [Tasks this depends on] | None (can start immediately)\n\n **References** (CRITICAL - Be Exhaustive):\n\n > The executor has NO context from your interview. References are their ONLY guide.\n > Each reference must answer: \"What should I look at and WHY?\"\n\n **Pattern References** (existing code to follow):\n - `src/services/auth.ts:45-78` - Authentication flow pattern (JWT creation, refresh token handling)\n\n **API/Type References** (contracts to implement against):\n - `src/types/user.ts:UserDTO` - Response shape for user endpoints\n\n **Test References** (testing patterns to follow):\n - `src/__tests__/auth.test.ts:describe(\"login\")` - Test structure and mocking patterns\n\n **External References** (libraries and frameworks):\n - Official docs: `https://zod.dev/?id=basic-usage` - Zod validation syntax\n\n **WHY Each Reference Matters** (explain the relevance):\n - Don't just list files - explain what pattern/information the executor should extract\n - Bad: `src/utils.ts` (vague, which utils? why?)\n - Good: `src/utils/validation.ts:sanitizeInput()` - Use this sanitization pattern for user input\n\n **Acceptance Criteria**:\n\n > **AGENT-EXECUTABLE VERIFICATION ONLY** - No human action permitted.\n > Every criterion MUST be verifiable by running a command or using a tool.\n\n **If TDD (tests enabled):**\n - [ ] Test file created: src/auth/login.test.ts\n - [ ] bun test src/auth/login.test.ts \u2192 PASS (3 tests, 0 failures)\n\n **QA Scenarios (MANDATORY - task is INCOMPLETE without these):**\n\n > **This is NOT optional. A task without QA scenarios WILL BE REJECTED.**\n >\n > Write scenario tests that verify the ACTUAL BEHAVIOR of what you built.\n > Minimum: 1 happy path + 1 failure/edge case per task.\n > Each scenario = exact tool + exact steps + exact assertions + evidence path.\n >\n > **The executing agent MUST run these scenarios after implementation.**\n > **The orchestrator WILL verify evidence files exist before marking task complete.**\n\n \\`\\`\\`\n Scenario: [Happy path - what SHOULD work]\n Tool: [Playwright / interactive_bash / Bash (curl)]\n Preconditions: [Exact setup state]\n Steps:\n 1. [Exact action - specific command/selector/endpoint, no vagueness]\n 2. [Next action - with expected intermediate state]\n 3. [Assertion - exact expected value, not \"verify it works\"]\n Expected Result: [Concrete, observable, binary pass/fail]\n Failure Indicators: [What specifically would mean this failed]\n Evidence: .omo/evidence/task-{N}-{scenario-slug}.{ext}\n\n Scenario: [Failure/edge case - what SHOULD fail gracefully]\n Tool: [same format]\n Preconditions: [Invalid input / missing dependency / error state]\n Steps:\n 1. [Trigger the error condition]\n 2. [Assert error is handled correctly]\n Expected Result: [Graceful failure with correct error message/code]\n Evidence: .omo/evidence/task-{N}-{scenario-slug}-error.{ext}\n \\`\\`\\`\n\n > **Specificity requirements - every scenario MUST use:**\n > - **Selectors**: Specific CSS selectors (`.login-button`, not \"the login button\")\n > - **Data**: Concrete test data (`\"test@example.com\"`, not `\"[email]\"`)\n > - **Assertions**: Exact values (`text contains \"Welcome back\"`, not \"verify it works\")\n > - **Timing**: Wait conditions where relevant (`timeout: 10s`)\n > - **Negative**: At least ONE failure/error scenario per task\n >\n > **Anti-patterns (your scenario is INVALID if it looks like this):**\n > - \u274C \"Verify it works correctly\" - HOW? What does \"correctly\" mean?\n > - \u274C \"Check the API returns data\" - WHAT data? What fields? What values?\n > - \u274C \"Test the component renders\" - WHERE? What selector? What content?\n > - \u274C Any scenario without an evidence path\n\n **Evidence to Capture:**\n - [ ] Each evidence file named: task-{N}-{scenario-slug}.{ext}\n - [ ] Screenshots for UI, terminal output for CLI, response bodies for API\n\n **Commit**: YES | NO (groups with N)\n - Message: `type(scope): desc`\n - Files: `path/to/file`\n - Pre-commit: `test command`\n\n---\n\n## Final Verification Wave (MANDATORY \u2014 after ALL implementation tasks)\n\n> 4 review agents run in PARALLEL. ALL must APPROVE. Present consolidated results to user and get explicit \"okay\" before completing.\n>\n> **Do NOT auto-proceed after verification. Wait for user's explicit approval before marking work complete.**\n> **Never mark F1-F4 as checked before getting user's okay.** Rejection or user feedback -> fix -> re-run -> present again -> wait for okay.\n\n- [ ] F1. **Plan Compliance Audit** \u2014 `oracle`\n Read the plan end-to-end. For each \"Must Have\": verify implementation exists (read file, curl endpoint, run command). For each \"Must NOT Have\": search codebase for forbidden patterns \u2014 reject with file:line if found. Check evidence files exist in .omo/evidence/. Compare deliverables against plan.\n Output: `Must Have [N/N] | Must NOT Have [N/N] | Tasks [N/N] | VERDICT: APPROVE/REJECT`\n\n- [ ] F2. **Code Quality Review** \u2014 `unspecified-high`\n Run `tsc --noEmit` + linter + `bun test`. Review all changed files for: `as any`/`@ts-ignore`, empty catches, console.log in prod, commented-out code, unused imports. Check AI slop: excessive comments, over-abstraction, generic names (data/result/item/temp).\n Output: `Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass/N fail] | Files [N clean/N issues] | VERDICT`\n\n- [ ] F3. **Real Manual QA** \u2014 `unspecified-high` (+ `playwright` skill if UI)\n Start from clean state. Execute EVERY QA scenario from EVERY task \u2014 follow exact steps, capture evidence. Test cross-task integration (features working together, not isolation). Test edge cases: empty state, invalid input, rapid actions. Save to `.omo/evidence/final-qa/`.\n Output: `Scenarios [N/N pass] | Integration [N/N] | Edge Cases [N tested] | VERDICT`\n\n- [ ] F4. **Scope Fidelity Check** \u2014 `deep`\n For each task: read \"What to do\", read actual diff (git log/diff). Verify 1:1 \u2014 everything in spec was built (no missing), nothing beyond spec was built (no creep). Check \"Must NOT do\" compliance. Detect cross-task contamination: Task N touching Task M's files. Flag unaccounted changes.\n Output: `Tasks [N/N compliant] | Contamination [CLEAN/N issues] | Unaccounted [CLEAN/N files] | VERDICT`\n\n---\n\n## Commit Strategy\n\n- **1**: `type(scope): desc` - file.ts, npm test\n\n---\n\n## Success Criteria\n\n### Verification Commands\n```bash\ncommand # Expected: output\n```\n\n### Final Checklist\n- [ ] All \"Must Have\" present\n- [ ] All \"Must NOT Have\" absent\n- [ ] All tests pass\n```\n\n---\n";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Prometheus Spec-Driven Mode
3
+ *
4
+ * SDD framework awareness for OpenSpec, Spec Kit,
5
+ * and BMAD detection plus command guidance.
6
+ */
7
+ export declare const PROMETHEUS_SPEC_DRIVEN_MODE = "# SDD FRAMEWORK AWARENESS\n\n## Framework Detection\n\nAt the START of every Prometheus session, check the target repo for SDD framework directories:\n\n| Framework | Detection Directory | Notes |\n|-----------|-------------------|-------|\n| OpenSpec (Fission-AI) | `openspec/` | config.yaml is optional; detect on directory presence |\n| GitHub Spec Kit | `.specify/` | NOT `.spec-kit` (dot-spec-kit) - that is the wrong directory name |\n| BMAD Method | `_bmad/` | NOT `.bmad` (dot-bmad) - planned future support, do not add adapter yet |\n\nRun: `ls openspec/ .specify/ 2>/dev/null` or use bash to check directory existence.\n\n**Announce detection immediately**: \"I detected [Framework Name] in this repository. Reading specs before we begin...\"\n\n## Reading Specs When Detected\n\n### If OpenSpec detected (`openspec/`):\nRead in order:\n1. `openspec/config.yaml` - project configuration (if present)\n2. `openspec/specs/*/spec.md` - active spec definitions\n3. `openspec/changes/*/proposal.md` - open proposals\n4. `openspec/changes/*/tasks.md` - spec-linked task lists\n\n### If Spec Kit detected (`.specify/`):\nRead in order:\n1. `.specify/constitution.md` - project constitution and principles\n2. `.specify/specs/*.md` - active specs\n3. `.specify/plans/*.md` - current plans\n\n## Spec-Driven Interview Behavior\n\nWhen a framework is detected, adjust your interview behavior:\n- **Shorten the interview**: Specs already answer many discovery questions. Do not re-ask what the spec already defines.\n- **Pre-fill clearance**: Extract scope, constraints, and requirements from spec content. Present them to the user for confirmation rather than asking from scratch.\n- **Reference spec IDs**: In plan tasks, reference the relevant spec by name/path (e.g., \"per `openspec/specs/auth/spec.md`\").\n- **Suggest framework commands**: In each TODO section, suggest the relevant framework command the executor should use.\n\n## Available Framework Commands Reference\n\n### OpenSpec commands (core profile \u2014 available by default):\n- `/opsx:propose` - Create a change and generate all planning artifacts in one step\n- `/opsx:explore` - Think through ideas, investigate problems, compare approaches\n- `/opsx:apply` - Implement tasks from tasks.md, checking off as you go\n- `/opsx:archive` - Archive a completed change (optionally syncs delta specs)\n\n### OpenSpec commands (expanded profile \u2014 requires `openspec config profile` + `openspec update`):\n- `/opsx:new` - Scaffold a new change folder (no artifacts generated yet)\n- `/opsx:continue` - Create the next single artifact in the dependency chain\n- `/opsx:ff` - Fast-forward: create ALL planning artifacts at once\n- `/opsx:verify` - Validate implementation matches artifacts\n- `/opsx:sync` - Merge delta specs into main specs\n- `/opsx:bulk-archive` - Archive multiple completed changes with conflict detection\n- `/opsx:onboard` - Interactive guided tutorial using the actual codebase\n\n### Spec Kit commands:\n- `specify spec` - Create or update a spec\n- `specify plan` - Generate a plan from specs\n- `specify task` - Create tasks from a plan\n\n## Suggesting Commands in Plans\n\nWhen generating a work plan for a spec-driven repo, add to relevant TODO items:\n\n```\n> **Spec Framework**: [Framework Name] detected. Suggested command: `[command]`\n```\n\nExample for OpenSpec:\n> **Spec Framework**: OpenSpec detected. Run `/opsx:apply` after implementing to update the change status.\n\n## Extensibility\n\nTo add a new SDD framework adapter in the future:\n1. Add a row to the Framework Detection table above\n2. Add a \"If [Framework] detected\" reading section\n3. Add a \"[Framework] commands\" section to the commands reference\n4. The adapter is purely prompt-described - no runtime TypeScript code needed";
@@ -10,6 +10,6 @@ export declare function parseBinaryPaths(output: string): string[];
10
10
  export declare function selectBinaryPath(paths: string[], platform: NodeJS.Platform): string | null;
11
11
  export declare function buildVersionCommand(binaryPath: string, platform: NodeJS.Platform): string[];
12
12
  export declare function findDesktopBinary(platform?: NodeJS.Platform, checkExists?: (path: string) => boolean): OpenCodeBinaryInfo | null;
13
- export declare function findOpenCodeBinary(): Promise<OpenCodeBinaryInfo | null>;
13
+ export declare function findOpenCodeBinary(platform?: NodeJS.Platform, checkExists?: (path: string) => boolean): Promise<OpenCodeBinaryInfo | null>;
14
14
  export declare function getOpenCodeVersion(binaryPath: string, platform?: NodeJS.Platform): Promise<string | null>;
15
15
  export declare function compareVersions(current: string, minimum: string): boolean;
@@ -0,0 +1,14 @@
1
+ import type { CheckResult } from "../types";
2
+ interface ServerPluginInfo {
3
+ registered: boolean;
4
+ configPath: string | null;
5
+ }
6
+ interface TuiPluginInfo {
7
+ registered: boolean;
8
+ configPath: string | null;
9
+ exists: boolean;
10
+ }
11
+ export declare function detectServerPluginRegistration(): ServerPluginInfo;
12
+ export declare function detectTuiPluginRegistration(): TuiPluginInfo;
13
+ export declare function checkTuiPluginConfig(): Promise<CheckResult>;
14
+ export {};
@@ -16,6 +16,7 @@ export declare const STATUS_COLORS: {
16
16
  export declare const CHECK_IDS: {
17
17
  readonly SYSTEM: "system";
18
18
  readonly CONFIG: "config";
19
+ readonly TUI_PLUGIN: "tui-plugin";
19
20
  readonly TOOLS: "tools";
20
21
  readonly MODELS: "models";
21
22
  readonly TEAM_MODE: "team-mode";