@skj1724/oh-my-opencode 3.11.8 → 3.17.5

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 (371) hide show
  1. package/README.ja.md +8 -4
  2. package/README.ko.md +8 -4
  3. package/README.md +20 -10
  4. package/README.ru.md +8 -4
  5. package/README.zh-cn.md +8 -4
  6. package/bin/oh-my-opencode.js +11 -0
  7. package/bin/platform.js +13 -13
  8. package/bin/platform.test.ts +15 -0
  9. package/dist/agents/atlas/agent.d.ts +1 -1
  10. package/dist/agents/atlas/default-prompt-sections.d.ts +6 -0
  11. package/dist/agents/atlas/default.d.ts +0 -9
  12. package/dist/agents/atlas/gemini-prompt-sections.d.ts +6 -0
  13. package/dist/agents/atlas/gpt-prompt-sections.d.ts +6 -0
  14. package/dist/agents/atlas/gpt.d.ts +0 -9
  15. package/dist/agents/atlas/prompt-section-builder.d.ts +2 -3
  16. package/dist/agents/atlas/shared-prompt.d.ts +9 -0
  17. package/dist/agents/dynamic-agent-category-skills-guide.d.ts +2 -0
  18. package/dist/agents/dynamic-agent-core-sections.d.ts +17 -0
  19. package/dist/agents/dynamic-agent-policy-sections.d.ts +6 -0
  20. package/dist/agents/dynamic-agent-prompt-builder.d.ts +5 -35
  21. package/dist/agents/dynamic-agent-prompt-types.d.ts +20 -0
  22. package/dist/agents/dynamic-agent-tool-categorization.d.ts +3 -0
  23. package/dist/agents/gpt-apply-patch-guard.d.ts +2 -0
  24. package/dist/agents/hephaestus/agent.d.ts +1 -1
  25. package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +10 -11
  26. package/dist/agents/hephaestus/gpt-5-4.d.ts +22 -1
  27. package/dist/agents/hephaestus/gpt.d.ts +1 -1
  28. package/dist/agents/metis.d.ts +6 -6
  29. package/dist/agents/momus.d.ts +8 -11
  30. package/dist/agents/prometheus/behavioral-summary.d.ts +3 -3
  31. package/dist/agents/prometheus/gemini.d.ts +7 -7
  32. package/dist/agents/prometheus/gpt.d.ts +6 -6
  33. package/dist/agents/prometheus/identity-constraints.d.ts +2 -2
  34. package/dist/agents/prometheus/plan-generation.d.ts +2 -2
  35. package/dist/agents/prometheus/plan-template.d.ts +4 -4
  36. package/dist/agents/sisyphus/gemini.d.ts +10 -10
  37. package/dist/agents/sisyphus/gpt-5-4.d.ts +17 -17
  38. package/dist/agents/sisyphus/index.d.ts +1 -1
  39. package/dist/agents/sisyphus-junior/gemini.d.ts +6 -6
  40. package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +4 -4
  41. package/dist/agents/sisyphus-junior/gpt-5-4.d.ts +7 -7
  42. package/dist/agents/sisyphus-junior/gpt.d.ts +5 -5
  43. package/dist/agents/sisyphus.d.ts +1 -1
  44. package/dist/agents/types.d.ts +1 -0
  45. package/dist/cli/config-manager/backup-config.d.ts +6 -0
  46. package/dist/cli/config-manager/version-compatibility.d.ts +9 -0
  47. package/dist/cli/config-manager.d.ts +4 -0
  48. package/dist/cli/doctor/checks/system.d.ts +15 -2
  49. package/dist/cli/doctor/constants.d.ts +1 -1
  50. package/dist/cli/doctor/spawn-with-timeout.d.ts +8 -0
  51. package/dist/cli/index.js +27570 -18945
  52. package/dist/cli/install-validators.d.ts +1 -0
  53. package/dist/cli/mcp-oauth/login.d.ts +6 -1
  54. package/dist/cli/minimum-opencode-version.d.ts +1 -0
  55. package/dist/cli/model-fallback-types.d.ts +4 -0
  56. package/dist/cli/provider-model-id-transform.d.ts +1 -1
  57. package/dist/cli/run/continuation-state.d.ts +2 -1
  58. package/dist/cli/run/event-state.d.ts +0 -2
  59. package/dist/cli/run/types.d.ts +0 -1
  60. package/dist/cli/types.d.ts +4 -0
  61. package/dist/config/schema/agent-definitions.d.ts +3 -0
  62. package/dist/config/schema/agent-names.d.ts +2 -0
  63. package/dist/config/schema/agent-overrides.d.ts +330 -15
  64. package/dist/config/schema/background-task.d.ts +2 -1
  65. package/dist/config/schema/categories.d.ts +44 -2
  66. package/dist/config/schema/commands.d.ts +1 -0
  67. package/dist/config/schema/experimental.d.ts +1 -0
  68. package/dist/config/schema/fallback-models.d.ts +67 -1
  69. package/dist/config/schema/hooks.d.ts +3 -0
  70. package/dist/config/schema/oh-my-opencode-config.d.ts +345 -17
  71. package/dist/config/schema/sisyphus-agent.d.ts +1 -0
  72. package/dist/config/schema/tmux.d.ts +11 -0
  73. package/dist/create-hooks.d.ts +8 -0
  74. package/dist/create-managers.d.ts +16 -0
  75. package/dist/create-runtime-tmux-config.d.ts +10 -0
  76. package/dist/create-tools.d.ts +3 -2
  77. package/dist/features/background-agent/abort-with-timeout.d.ts +2 -0
  78. package/dist/features/background-agent/background-task-notification-template.d.ts +10 -4
  79. package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +5 -2
  80. package/dist/features/background-agent/constants.d.ts +1 -0
  81. package/dist/features/background-agent/fallback-retry-handler.d.ts +1 -1
  82. package/dist/features/background-agent/index.d.ts +2 -0
  83. package/dist/features/background-agent/manager.d.ts +10 -0
  84. package/dist/features/background-agent/process-cleanup.d.ts +1 -1
  85. package/dist/features/background-agent/session-existence.d.ts +3 -0
  86. package/dist/features/background-agent/spawner.d.ts +3 -0
  87. package/dist/features/background-agent/subagent-spawn-limits.d.ts +1 -8
  88. package/dist/features/background-agent/task-poller.d.ts +2 -0
  89. package/dist/features/background-agent/types.d.ts +2 -0
  90. package/dist/features/background-agent/wait-for-task-session.d.ts +17 -0
  91. package/dist/features/boulder-state/storage.d.ts +8 -1
  92. package/dist/features/boulder-state/types.d.ts +1 -0
  93. package/dist/features/builtin-commands/commands.d.ts +5 -1
  94. package/dist/features/builtin-commands/templates/handoff.d.ts +1 -1
  95. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
  96. package/dist/features/builtin-commands/templates/ralph-loop.d.ts +3 -3
  97. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -0
  98. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  99. package/dist/features/builtin-commands/types.d.ts +1 -1
  100. package/dist/features/builtin-skills/skills/ai-slop-remover.d.ts +2 -0
  101. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -0
  102. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -0
  103. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -0
  104. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -0
  105. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -0
  106. package/dist/features/builtin-skills/skills/index.d.ts +2 -0
  107. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +5 -5
  108. package/dist/features/builtin-skills/skills/review-work.d.ts +2 -0
  109. package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +3 -0
  110. package/dist/features/claude-code-agent-loader/index.d.ts +3 -0
  111. package/dist/features/claude-code-agent-loader/json-agent-loader.d.ts +2 -0
  112. package/dist/features/claude-code-agent-loader/loader.d.ts +2 -0
  113. package/dist/features/claude-code-agent-loader/opencode-config-agents-reader.d.ts +2 -0
  114. package/dist/features/claude-code-agent-loader/types.d.ts +9 -1
  115. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
  116. package/dist/features/claude-code-mcp-loader/env-expander.d.ts +5 -2
  117. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
  118. package/dist/features/claude-code-mcp-loader/scope-filter.d.ts +2 -0
  119. package/dist/features/claude-code-mcp-loader/types.d.ts +8 -4
  120. package/dist/features/claude-code-plugin-loader/discovery.d.ts +2 -1
  121. package/dist/features/claude-code-plugin-loader/loader.d.ts +16 -0
  122. package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +2 -0
  123. package/dist/features/claude-code-plugin-loader/types.d.ts +21 -0
  124. package/dist/features/claude-code-session-state/state.d.ts +3 -0
  125. package/dist/features/context-injector/collector.d.ts +1 -0
  126. package/dist/features/mcp-oauth/provider.d.ts +1 -0
  127. package/dist/features/mcp-oauth/refresh-mutex.d.ts +26 -0
  128. package/dist/features/opencode-skill-loader/async-loader.d.ts +2 -2
  129. package/dist/features/skill-mcp-manager/connection.d.ts +3 -4
  130. package/dist/features/skill-mcp-manager/error-redaction.d.ts +10 -0
  131. package/dist/features/skill-mcp-manager/http-client.d.ts +17 -3
  132. package/dist/features/skill-mcp-manager/manager.d.ts +5 -3
  133. package/dist/features/skill-mcp-manager/oauth-handler.d.ts +12 -4
  134. package/dist/features/skill-mcp-manager/stdio-client.d.ts +16 -3
  135. package/dist/features/skill-mcp-manager/types.d.ts +25 -6
  136. package/dist/features/team-mode/index.d.ts +2 -0
  137. package/dist/features/team-mode/team-worktree/cleanup.d.ts +3 -0
  138. package/dist/features/team-mode/team-worktree/index.d.ts +2 -0
  139. package/dist/features/team-mode/team-worktree/manager.d.ts +15 -0
  140. package/dist/features/team-mode/types.d.ts +210 -0
  141. package/dist/features/tmux-subagent/manager.d.ts +16 -13
  142. package/dist/features/tmux-subagent/polling-manager.d.ts +5 -0
  143. package/dist/features/tmux-subagent/types.d.ts +2 -0
  144. package/dist/features/tool-metadata-store/index.d.ts +7 -0
  145. package/dist/features/tool-metadata-store/publish-tool-metadata.d.ts +9 -0
  146. package/dist/features/tool-metadata-store/recover-tool-metadata.d.ts +3 -0
  147. package/dist/features/tool-metadata-store/resolve-tool-call-id.d.ts +6 -0
  148. package/dist/features/tool-metadata-store/task-metadata-contract.d.ts +10 -0
  149. package/dist/hooks/agent-usage-reminder/constants.d.ts +1 -1
  150. package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +4 -1
  151. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.d.ts +10 -0
  152. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.d.ts +29 -0
  153. package/dist/hooks/anthropic-context-window-limit-recovery/session-timeout-map.d.ts +2 -0
  154. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +2 -0
  155. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +1 -0
  156. package/dist/hooks/atlas/background-launch-session-tracking.d.ts +11 -0
  157. package/dist/hooks/atlas/boulder-continuation-injector.d.ts +2 -1
  158. package/dist/hooks/atlas/session-last-agent.d.ts +10 -1
  159. package/dist/hooks/atlas/subagent-session-id.d.ts +1 -0
  160. package/dist/hooks/atlas/system-reminder-templates.d.ts +2 -2
  161. package/dist/hooks/atlas/task-context.d.ts +7 -0
  162. package/dist/hooks/atlas/types.d.ts +2 -0
  163. package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
  164. package/dist/hooks/auto-slash-command/hook.d.ts +1 -0
  165. package/dist/hooks/auto-update-checker/checker/sync-package-json.d.ts +1 -1
  166. package/dist/hooks/auto-update-checker/constants.d.ts +19 -3
  167. package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +29 -1
  168. package/dist/hooks/auto-update-checker/hook.d.ts +22 -1
  169. package/dist/hooks/bash-file-read-guard.d.ts +2 -0
  170. package/dist/hooks/claude-code-hooks/claude-code-hooks-hook.d.ts +1 -0
  171. package/dist/hooks/claude-code-hooks/config-loader.d.ts +1 -0
  172. package/dist/hooks/claude-code-hooks/config.d.ts +1 -0
  173. package/dist/hooks/claude-code-hooks/handlers/session-event-handler.d.ts +3 -1
  174. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  175. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +2 -0
  176. package/dist/hooks/claude-code-hooks/transcript.d.ts +1 -3
  177. package/dist/hooks/comment-checker/cli-runner.d.ts +4 -1
  178. package/dist/hooks/comment-checker/hook.d.ts +1 -0
  179. package/dist/hooks/comment-checker/pending-calls.d.ts +1 -0
  180. package/dist/hooks/directory-agents-injector/hook.d.ts +7 -7
  181. package/dist/hooks/directory-readme-injector/hook.d.ts +7 -7
  182. package/dist/hooks/edit-error-recovery/hook.d.ts +1 -1
  183. package/dist/hooks/index.d.ts +4 -1
  184. package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
  185. package/dist/hooks/keyword-detector/hook.d.ts +2 -1
  186. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +3 -4
  187. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +11 -12
  188. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +4 -5
  189. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -2
  190. package/dist/hooks/legacy-plugin-toast/auto-migrate-runner.d.ts +2 -0
  191. package/dist/hooks/legacy-plugin-toast/auto-migrate.d.ts +7 -0
  192. package/dist/hooks/legacy-plugin-toast/hook.d.ts +18 -0
  193. package/dist/hooks/legacy-plugin-toast/index.d.ts +1 -0
  194. package/dist/hooks/legacy-plugin-toast/plugin-entry-migrator.d.ts +1 -0
  195. package/dist/hooks/model-fallback/chat-message-fallback-handler.d.ts +23 -0
  196. package/dist/hooks/model-fallback/controller-accessor.d.ts +8 -0
  197. package/dist/hooks/model-fallback/fallback-state-controller.d.ts +26 -0
  198. package/dist/hooks/model-fallback/hook.d.ts +21 -16
  199. package/dist/hooks/model-fallback/index.d.ts +2 -0
  200. package/dist/hooks/model-fallback/next-fallback.d.ts +14 -0
  201. package/dist/hooks/preemptive-compaction-trigger.d.ts +13 -0
  202. package/dist/hooks/preemptive-compaction-types.d.ts +53 -0
  203. package/dist/hooks/preemptive-compaction.d.ts +3 -15
  204. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +11 -0
  205. package/dist/hooks/ralph-loop/constants.d.ts +1 -0
  206. package/dist/hooks/ralph-loop/oracle-verification-detector.d.ts +8 -0
  207. package/dist/hooks/read-image-resizer/image-resizer.d.ts +3 -1
  208. package/dist/hooks/read-image-resizer/png-fallback-resizer.d.ts +2 -0
  209. package/dist/hooks/rules-injector/constants.d.ts +1 -0
  210. package/dist/hooks/rules-injector/finder.d.ts +1 -1
  211. package/dist/hooks/rules-injector/hook.d.ts +2 -0
  212. package/dist/hooks/rules-injector/injector.d.ts +14 -0
  213. package/dist/hooks/rules-injector/rule-file-finder.d.ts +9 -1
  214. package/dist/hooks/runtime-fallback/auto-retry-signal.d.ts +4 -0
  215. package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -5
  216. package/dist/hooks/runtime-fallback/fallback-models.d.ts +1 -1
  217. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +5 -1
  218. package/dist/hooks/session-notification-event-properties.d.ts +5 -0
  219. package/dist/hooks/session-recovery/types.d.ts +2 -0
  220. package/dist/hooks/start-work/context-info-builder.d.ts +12 -0
  221. package/dist/hooks/start-work/start-work-hook.d.ts +6 -0
  222. package/dist/hooks/start-work/worktree-block.d.ts +1 -0
  223. package/dist/hooks/todo-continuation-enforcer/pending-question-detection.d.ts +1 -1
  224. package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +2 -2
  225. package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +4 -3
  226. package/dist/hooks/todo-continuation-enforcer/token-limit-detection.d.ts +4 -0
  227. package/dist/hooks/todo-continuation-enforcer/types.d.ts +14 -0
  228. package/dist/hooks/todo-description-override/description.d.ts +1 -1
  229. package/dist/hooks/tool-pair-validator/hook.d.ts +28 -0
  230. package/dist/hooks/tool-pair-validator/index.d.ts +1 -0
  231. package/dist/hooks/unstable-agent-babysitter/task-message-analyzer.d.ts +1 -0
  232. package/dist/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.d.ts +2 -0
  233. package/dist/hooks/write-existing-file-guard/hook.d.ts +12 -0
  234. package/dist/hooks/write-existing-file-guard/session-read-permissions.d.ts +3 -0
  235. package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +15 -0
  236. package/dist/index.d.ts +3 -3
  237. package/dist/index.js +83174 -93787
  238. package/dist/mcp/websearch.d.ts +2 -2
  239. package/dist/oh-my-opencode.schema.json +1059 -8
  240. package/dist/openclaw/config.d.ts +1 -1
  241. package/dist/openclaw/dispatcher.d.ts +9 -13
  242. package/dist/openclaw/gateway-url-validation.d.ts +1 -0
  243. package/dist/openclaw/reply-listener-discord.d.ts +4 -0
  244. package/dist/openclaw/reply-listener-injection.d.ts +10 -0
  245. package/dist/openclaw/reply-listener-log.d.ts +2 -0
  246. package/dist/openclaw/reply-listener-paths.d.ts +7 -0
  247. package/dist/openclaw/reply-listener-process.d.ts +4 -0
  248. package/dist/openclaw/reply-listener-spawn.d.ts +5 -0
  249. package/dist/openclaw/reply-listener-startup.d.ts +12 -0
  250. package/dist/openclaw/reply-listener-state.d.ts +29 -0
  251. package/dist/openclaw/reply-listener-telegram.d.ts +4 -0
  252. package/dist/openclaw/reply-listener.d.ts +5 -18
  253. package/dist/openclaw/runtime-dispatch.d.ts +17 -0
  254. package/dist/openclaw/types.d.ts +4 -0
  255. package/dist/plugin/chat-params.d.ts +1 -0
  256. package/dist/plugin/command-execute-before.d.ts +19 -0
  257. package/dist/plugin/hooks/create-core-hooks.d.ts +5 -0
  258. package/dist/plugin/hooks/create-session-hooks.d.ts +4 -1
  259. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +2 -1
  260. package/dist/plugin/hooks/create-transform-hooks.d.ts +4 -1
  261. package/dist/plugin/tool-registry.d.ts +26 -1
  262. package/dist/plugin/types.d.ts +1 -0
  263. package/dist/plugin-handlers/agent-priority-order.d.ts +11 -0
  264. package/dist/shared/agent-display-names.d.ts +23 -2
  265. package/dist/shared/agent-tool-restrictions.d.ts +0 -5
  266. package/dist/shared/archive-entry-validator.d.ts +6 -0
  267. package/dist/shared/background-output-consumption.d.ts +5 -0
  268. package/dist/shared/compaction-marker.d.ts +13 -0
  269. package/dist/shared/connected-providers-cache.d.ts +2 -1
  270. package/dist/shared/contains-path.d.ts +2 -0
  271. package/dist/shared/external-plugin-detector.d.ts +14 -0
  272. package/dist/shared/index.d.ts +9 -0
  273. package/dist/shared/internal-initiator-marker.d.ts +1 -0
  274. package/dist/shared/is-abort-error.d.ts +1 -0
  275. package/dist/shared/json-file-cache-store.d.ts +16 -0
  276. package/dist/shared/jsonc-parser.d.ts +1 -0
  277. package/dist/shared/legacy-plugin-warning.d.ts +7 -0
  278. package/dist/shared/load-opencode-plugins.d.ts +1 -0
  279. package/dist/shared/log-legacy-plugin-startup-warning.d.ts +10 -0
  280. package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
  281. package/dist/shared/migrate-legacy-plugin-entry.d.ts +1 -0
  282. package/dist/shared/migration/migrations-sidecar.d.ts +41 -0
  283. package/dist/shared/model-capabilities/bundled-snapshot.d.ts +2 -0
  284. package/dist/shared/model-capabilities/get-model-capabilities.d.ts +2 -0
  285. package/dist/shared/model-capabilities/index.d.ts +3 -0
  286. package/dist/shared/model-capabilities/runtime-model-readers.d.ts +11 -0
  287. package/dist/shared/{model-capabilities.d.ts → model-capabilities/types.d.ts} +35 -32
  288. package/dist/shared/model-suggestion-retry.d.ts +0 -9
  289. package/dist/shared/opencode-provider-auth.d.ts +3 -0
  290. package/dist/shared/parse-tools-config.d.ts +6 -0
  291. package/dist/shared/permission-compat.d.ts +1 -1
  292. package/dist/shared/plugin-entry-migrator.d.ts +3 -0
  293. package/dist/shared/plugin-identity.d.ts +6 -3
  294. package/dist/shared/posthog-activity-state.d.ts +8 -0
  295. package/dist/shared/posthog.d.ts +14 -0
  296. package/dist/shared/resolve-agent-definition-paths.d.ts +1 -0
  297. package/dist/shared/ripgrep-cli.d.ts +8 -0
  298. package/dist/shared/session-category-registry.d.ts +0 -24
  299. package/dist/shared/session-cursor.d.ts +6 -0
  300. package/dist/shared/session-prompt-params-state.d.ts +1 -0
  301. package/dist/shared/shell-env.d.ts +6 -2
  302. package/dist/shared/skill-path-resolver.d.ts +0 -8
  303. package/dist/shared/task-system-enabled.d.ts +6 -0
  304. package/dist/shared/tmux/tmux-utils/server-health.d.ts +1 -0
  305. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +3 -0
  306. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +3 -0
  307. package/dist/shared/tmux/tmux-utils.d.ts +3 -1
  308. package/dist/shared/write-file-atomically.d.ts +1 -0
  309. package/dist/shared/zip-entry-listing/powershell-zip-entry-listing.d.ts +4 -0
  310. package/dist/shared/zip-entry-listing/python-zip-entry-listing.d.ts +3 -0
  311. package/dist/shared/zip-entry-listing/read-zip-symlink-target.d.ts +1 -0
  312. package/dist/shared/zip-entry-listing/tar-zip-entry-listing.d.ts +3 -0
  313. package/dist/shared/zip-entry-listing/zipinfo-zip-entry-listing.d.ts +4 -0
  314. package/dist/shared/zip-entry-listing.d.ts +4 -0
  315. package/dist/testing/module-mock-lifecycle.d.ts +21 -0
  316. package/dist/tools/background-task/constants.d.ts +3 -3
  317. package/dist/tools/call-omo-agent/agent-resolver.d.ts +17 -0
  318. package/dist/tools/call-omo-agent/background-executor.d.ts +2 -1
  319. package/dist/tools/call-omo-agent/constants.d.ts +1 -1
  320. package/dist/tools/call-omo-agent/sync-executor.d.ts +4 -4
  321. package/dist/tools/call-omo-agent/tools.d.ts +2 -1
  322. package/dist/tools/delegate-task/anthropic-categories.d.ts +2 -0
  323. package/dist/tools/delegate-task/builtin-categories.d.ts +4 -0
  324. package/dist/tools/delegate-task/builtin-category-definition.d.ts +7 -0
  325. package/dist/tools/delegate-task/constants.d.ts +3 -14
  326. package/dist/tools/delegate-task/delegated-model-config.d.ts +3 -0
  327. package/dist/tools/delegate-task/executor-types.d.ts +4 -1
  328. package/dist/tools/delegate-task/fallback-entry-resolution.d.ts +12 -0
  329. package/dist/tools/delegate-task/fallback-entry-settings.d.ts +7 -0
  330. package/dist/tools/delegate-task/google-categories.d.ts +2 -0
  331. package/dist/tools/delegate-task/kimi-categories.d.ts +2 -0
  332. package/dist/tools/delegate-task/openai-categories.d.ts +2 -0
  333. package/dist/tools/delegate-task/prompt-builder.d.ts +1 -1
  334. package/dist/tools/delegate-task/resolve-metadata-model.d.ts +8 -0
  335. package/dist/tools/delegate-task/subagent-discovery.d.ts +15 -0
  336. package/dist/tools/delegate-task/sync-continuation.d.ts +2 -2
  337. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -0
  338. package/dist/tools/delegate-task/sync-task-fallback.d.ts +12 -0
  339. package/dist/tools/delegate-task/task-id.d.ts +2 -0
  340. package/dist/tools/delegate-task/tool-argument-preparation.d.ts +2 -0
  341. package/dist/tools/delegate-task/tool-description.d.ts +9 -0
  342. package/dist/tools/delegate-task/types.d.ts +5 -2
  343. package/dist/tools/glob/constants.d.ts +1 -1
  344. package/dist/tools/grep/cli.d.ts +3 -2
  345. package/dist/tools/grep/constants.d.ts +0 -9
  346. package/dist/tools/hashline-edit/tool-description.d.ts +1 -1
  347. package/dist/tools/look-at/constants.d.ts +1 -1
  348. package/dist/tools/look-at/look-at-input-preparer.d.ts +22 -0
  349. package/dist/tools/look-at/look-at-prompt.d.ts +2 -0
  350. package/dist/tools/look-at/look-at-session-runner.d.ts +12 -0
  351. package/dist/tools/lsp/infer-extension.d.ts +1 -0
  352. package/dist/tools/session-manager/file-storage.d.ts +8 -0
  353. package/dist/tools/session-manager/sdk-storage.d.ts +8 -0
  354. package/dist/tools/session-manager/sdk-unavailable.d.ts +1 -0
  355. package/dist/tools/session-manager/storage.d.ts +1 -1
  356. package/dist/tools/session-manager/tools.d.ts +19 -1
  357. package/dist/tools/skill/constants.d.ts +2 -2
  358. package/dist/tools/skill/description-formatter.d.ts +3 -0
  359. package/dist/tools/skill/mcp-capability-formatter.d.ts +3 -0
  360. package/dist/tools/skill/native-skills.d.ts +12 -0
  361. package/dist/tools/skill/scope-priority.d.ts +4 -0
  362. package/dist/tools/skill/skill-body.d.ts +2 -0
  363. package/dist/tools/skill/skill-matcher.d.ts +5 -0
  364. package/dist/tools/skill/types.d.ts +30 -2
  365. package/dist/tools/skill-mcp/parse-skill-mcp-arguments.d.ts +1 -0
  366. package/dist/tools/skill-mcp/tools.d.ts +1 -1
  367. package/package.json +26 -25
  368. package/postinstall.mjs +75 -1
  369. package/dist/hooks/openclaw.d.ts +0 -11
  370. package/dist/plugin-dispose.d.ts +0 -10
  371. /package/dist/{tools/delegate-task → shared}/model-string-parser.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Prometheus Plan Template
2
+ * Prometheus 计划模板
3
3
  *
4
- * The markdown template structure for work plans generated by Prometheus.
5
- * Includes TL;DR, context, objectives, verification strategy, TODOs, and success criteria.
4
+ * Prometheus 生成的工作计划的 markdown 模板结构。
5
+ * 包含 TL;DR、上下文、目标、验证策略、TODOs 和成功标准。
6
6
  */
7
- export declare const PROMETHEUS_PLAN_TEMPLATE = "## \u8BA1\u5212\u7ED3\u6784\n\n\u751F\u6210\u8BA1\u5212\u81F3\uFF1A`.sisyphus/plans/{name}.md`\n\n```markdown\n# {\u8BA1\u5212\u6807\u9898}\n\n## TL;DR\n\n> **\u5FEB\u901F\u6458\u8981**\uFF1A[1-2 \u53E5\u8BDD\u6982\u62EC\u6838\u5FC3\u76EE\u6807\u548C\u65B9\u6848]\n>\n> **\u4EA4\u4ED8\u7269**\uFF1A[\u5177\u4F53\u8F93\u51FA\u7684\u5217\u8868]\n> - [\u8F93\u51FA 1]\n> - [\u8F93\u51FA 2]\n>\n> **\u9884\u4F30\u5DE5\u4F5C\u91CF**\uFF1A[Quick | Short | Medium | Large | XL]\n> **\u5E76\u884C\u6267\u884C**\uFF1A[YES - N \u6CE2\u6B21 | NO - \u4E32\u884C]\n> **\u5173\u952E\u8DEF\u5F84**\uFF1A[\u4EFB\u52A1 X \u2192 \u4EFB\u52A1 Y \u2192 \u4EFB\u52A1 Z]\n\n---\n\n## Context\n\n### \u539F\u59CB\u8BF7\u6C42\n[\u7528\u6237\u7684\u521D\u59CB\u63CF\u8FF0]\n\n### \u8BBF\u8C08\u603B\u7ED3\n**\u5173\u952E\u8BA8\u8BBA**\uFF1A\n- [\u8981\u70B9 1]\uFF1A[\u7528\u6237\u7684\u51B3\u5B9A/\u504F\u597D]\n- [\u8981\u70B9 2]\uFF1A[\u7EA6\u5B9A\u7684\u65B9\u6848]\n\n**\u7814\u7A76\u53D1\u73B0**\uFF1A\n- [\u53D1\u73B0 1]\uFF1A[\u542B\u4E49]\n- [\u53D1\u73B0 2]\uFF1A[\u5EFA\u8BAE]\n\n### Metis \u5BA1\u6838\n**\u5DF2\u8BC6\u522B\u7684\u7F3A\u53E3**\uFF08\u5DF2\u5904\u7406\uFF09\uFF1A\n- [\u7F3A\u53E3 1]\uFF1A[\u5982\u4F55\u89E3\u51B3]\n- [\u7F3A\u53E3 2]\uFF1A[\u5982\u4F55\u89E3\u51B3]\n\n---\n\n## Work Objectives\n\n### \u6838\u5FC3\u76EE\u6807\n[1-2 \u53E5\u8BDD\uFF1A\u6211\u4EEC\u5B9E\u73B0\u4EC0\u4E48]\n\n### \u5177\u4F53\u4EA4\u4ED8\u7269\n- [\u786E\u5207\u7684\u6587\u4EF6/\u7AEF\u70B9/\u529F\u80FD]\n\n### \u5B8C\u6210\u5B9A\u4E49\n- [ ] [\u53EF\u9A8C\u8BC1\u7684\u6761\u4EF6\uFF0C\u542B\u547D\u4EE4]\n\n### \u5FC5\u987B\u6709\n- [\u4E0D\u53EF\u534F\u5546\u7684\u9700\u6C42]\n\n### \u7981\u6B62\u6709\uFF08\u62A4\u680F\uFF09\n- [\u6765\u81EA Metis \u5BA1\u6838\u7684\u660E\u786E\u6392\u9664\u9879]\n- [\u8981\u907F\u514D\u7684 AI \u6577\u884D\u6A21\u5F0F]\n- [\u8303\u56F4\u8FB9\u754C]\n\n---\n\n## Verification Strategy\uFF08\u5F3A\u5236\u6267\u884C\uFF09\n\n> **\u96F6\u4EBA\u5DE5\u5E72\u9884** \u2014 \u6240\u6709\u9A8C\u8BC1\u5747\u7531 agent \u6267\u884C\u3002\u65E0\u4F8B\u5916\u3002\n> \u8981\u6C42\"\u7528\u6237\u624B\u52A8\u6D4B\u8BD5/\u786E\u8BA4\"\u7684\u9A8C\u6536\u6807\u51C6\u662F\u7981\u6B62\u7684\u3002\n\n### \u6D4B\u8BD5\u51B3\u7B56\n- **\u57FA\u7840\u8BBE\u65BD\u5B58\u5728**\uFF1A[YES/NO]\n- **\u81EA\u52A8\u5316\u6D4B\u8BD5**\uFF1A[TDD / Tests-after / None]\n- **\u6846\u67B6**\uFF1A[bun test / vitest / jest / pytest / none]\n- **\u82E5 TDD**\uFF1A\u6BCF\u4E2A\u4EFB\u52A1\u9075\u5FAA RED\uFF08\u5931\u8D25\u6D4B\u8BD5\uFF09\u2192 GREEN\uFF08\u6700\u5C0F\u5B9E\u73B0\uFF09\u2192 REFACTOR\n\n### QA \u7B56\u7565\n\u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u5305\u542B agent \u6267\u884C\u7684 QA \u573A\u666F\uFF08\u89C1\u4E0B\u65B9 TODO \u6A21\u677F\uFF09\u3002\n\u8BC1\u636E\u4FDD\u5B58\u81F3 `.sisyphus/evidence/task-{N}-{scenario-slug}.{ext}`\u3002\n\n- **\u524D\u7AEF/UI**\uFF1A\u4F7F\u7528 Playwright\uFF08playwright skill\uFF09\u2014\u2014 \u5BFC\u822A\u3001\u4EA4\u4E92\u3001\u65AD\u8A00 DOM\u3001\u622A\u56FE\n- **TUI/CLI**\uFF1A\u4F7F\u7528 interactive_bash\uFF08tmux\uFF09\u2014\u2014 \u8FD0\u884C\u547D\u4EE4\u3001\u53D1\u9001\u6309\u952E\u3001\u9A8C\u8BC1\u8F93\u51FA\n- **API/\u540E\u7AEF**\uFF1A\u4F7F\u7528 Bash\uFF08curl\uFF09\u2014\u2014 \u53D1\u9001\u8BF7\u6C42\u3001\u65AD\u8A00\u72B6\u6001 + \u54CD\u5E94\u5B57\u6BB5\n- **\u5E93/\u6A21\u5757**\uFF1A\u4F7F\u7528 Bash\uFF08bun/node REPL\uFF09\u2014\u2014 \u5BFC\u5165\u3001\u8C03\u7528\u51FD\u6570\u3001\u6BD4\u8F83\u8F93\u51FA\n\n---\n\n## Execution Strategy\n\n### \u5E76\u884C\u6267\u884C\u6CE2\u6B21\n\n> \u901A\u8FC7\u5C06\u72EC\u7ACB\u4EFB\u52A1\u5206\u7EC4\u5230\u5E76\u884C\u6CE2\u6B21\u4E2D\u6765\u6700\u5927\u5316\u541E\u5410\u91CF\u3002\n> \u6BCF\u6CE2\u5B8C\u6210\u540E\u518D\u5F00\u59CB\u4E0B\u4E00\u6CE2\u3002\n> \u76EE\u6807\uFF1A\u6BCF\u6CE2 5-8 \u4E2A\u4EFB\u52A1\u3002\u9664\u672B\u6CE2\u5916\u6BCF\u6CE2\u5C11\u4E8E 3 \u4E2A = \u5207\u5206\u4E0D\u8DB3\u3002\n\n```\nWave 1\uFF08\u7ACB\u5373\u5F00\u59CB\u2014\u2014\u57FA\u7840 + \u811A\u624B\u67B6\uFF09\uFF1A\n\u251C\u2500\u2500 Task 1: \u9879\u76EE\u811A\u624B\u67B6 + \u914D\u7F6E [quick]\n\u251C\u2500\u2500 Task 2: \u8BBE\u8BA1\u7CFB\u7EDF tokens [quick]\n\u251C\u2500\u2500 Task 3: \u7C7B\u578B\u5B9A\u4E49 [quick]\n\u251C\u2500\u2500 Task 4: Schema \u5B9A\u4E49 [quick]\n\u251C\u2500\u2500 Task 5: \u5B58\u50A8\u63A5\u53E3 + \u5185\u5B58\u5B9E\u73B0 [quick]\n\u251C\u2500\u2500 Task 6: \u8BA4\u8BC1\u4E2D\u95F4\u4EF6 [quick]\n\u2514\u2500\u2500 Task 7: \u5BA2\u6237\u7AEF\u6A21\u5757 [quick]\n\nWave 2\uFF08Wave 1 \u4E4B\u540E\u2014\u2014\u6838\u5FC3\u6A21\u5757\uFF0C\u6700\u5927\u5E76\u884C\uFF09\uFF1A\n\u251C\u2500\u2500 Task 8: \u6838\u5FC3\u4E1A\u52A1\u903B\u8F91\uFF08\u4F9D\u8D56\uFF1A3, 5, 7\uFF09[deep]\n\u251C\u2500\u2500 Task 9: API \u7AEF\u70B9\uFF08\u4F9D\u8D56\uFF1A4, 5\uFF09[unspecified-high]\n\u251C\u2500\u2500 Task 10: \u6B21\u8981\u5B58\u50A8\u5B9E\u73B0\uFF08\u4F9D\u8D56\uFF1A5\uFF09[unspecified-high]\n\u251C\u2500\u2500 Task 11: \u91CD\u8BD5/\u56DE\u9000\u903B\u8F91\uFF08\u4F9D\u8D56\uFF1A8\uFF09[deep]\n\u251C\u2500\u2500 Task 12: UI \u5E03\u5C40 + \u5BFC\u822A\uFF08\u4F9D\u8D56\uFF1A2\uFF09[visual-engineering]\n\u251C\u2500\u2500 Task 13: API \u5BA2\u6237\u7AEF + hooks\uFF08\u4F9D\u8D56\uFF1A4\uFF09[quick]\n\u2514\u2500\u2500 Task 14: \u9065\u6D4B\u4E2D\u95F4\u4EF6\uFF08\u4F9D\u8D56\uFF1A5, 10\uFF09[unspecified-high]\n\nWave 3\uFF08Wave 2 \u4E4B\u540E\u2014\u2014\u96C6\u6210 + UI\uFF09\uFF1A\n\u251C\u2500\u2500 Task 15: \u7EC4\u5408\u6A21\u5757\u7684\u4E3B\u8DEF\u7531\uFF08\u4F9D\u8D56\uFF1A6, 11, 14\uFF09[deep]\n\u251C\u2500\u2500 Task 16: UI \u6570\u636E\u53EF\u89C6\u5316\uFF08\u4F9D\u8D56\uFF1A12, 13\uFF09[visual-engineering]\n\u251C\u2500\u2500 Task 17: \u90E8\u7F72\u914D\u7F6E A\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u251C\u2500\u2500 Task 18: \u90E8\u7F72\u914D\u7F6E B\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u251C\u2500\u2500 Task 19: \u90E8\u7F72\u914D\u7F6E C\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u2514\u2500\u2500 Task 20: UI \u8BF7\u6C42\u65E5\u5FD7 + \u6784\u5EFA\uFF08\u4F9D\u8D56\uFF1A16\uFF09[visual-engineering]\n\nWave FINAL\uFF08\u6240\u6709\u4EFB\u52A1\u4E4B\u540E\u2014\u20144 \u4E2A\u5E76\u884C\u5BA1\u6838\uFF0C\u7136\u540E\u7528\u6237 okay\uFF09\uFF1A\n\u251C\u2500\u2500 Task F1: \u8BA1\u5212\u5408\u89C4\u5BA1\u8BA1\uFF08oracle\uFF09\n\u251C\u2500\u2500 Task F2: \u4EE3\u7801\u8D28\u91CF\u5BA1\u6838\uFF08unspecified-high\uFF09\n\u251C\u2500\u2500 Task F3: \u771F\u5B9E\u4EBA\u5DE5 QA\uFF08unspecified-high\uFF09\n\u2514\u2500\u2500 Task F4: \u8303\u56F4\u771F\u5B9E\u6027\u68C0\u67E5\uFF08deep\uFF09\n-> \u5448\u73B0\u7ED3\u679C -> \u83B7\u5F97\u7528\u6237\u660E\u786E okay\n\n\u5173\u952E\u8DEF\u5F84: Task 1 \u2192 Task 5 \u2192 Task 8 \u2192 Task 11 \u2192 Task 15 \u2192 Task 21 \u2192 F1-F4 \u2192 user okay\n\u5E76\u884C\u52A0\u901F: ~70% \u5FEB\u4E8E\u4E32\u884C\n\u6700\u5927\u5E76\u53D1: 7\uFF08Wave 1 & 2\uFF09\n```\n\n### \u4F9D\u8D56\u77E9\u9635\uFF08\u7F29\u7565\u7248\u2014\u2014\u5728\u751F\u6210\u7684\u8BA1\u5212\u4E2D\u663E\u793A\u6240\u6709\u4EFB\u52A1\uFF09\n\n- **1-7**: \u2014 \u2014 8-14, 1\n- **8**: 3, 5, 7 \u2014 11, 15, 2\n- **11**: 8 \u2014 15, 2\n- **14**: 5, 10 \u2014 15, 2\n- **15**: 6, 11, 14 \u2014 17-19, 21, 3\n- **21**: 15 \u2014 23, 24, 4\n\n> \u8FD9\u662F\u53C2\u8003\u7528\u7684\u7F29\u7565\u7248\u3002\u4F60\u751F\u6210\u7684\u8BA1\u5212\u5FC5\u987B\u5305\u542B\u6240\u6709\u4EFB\u52A1\u7684\u5B8C\u6574\u77E9\u9635\u3002\n\n### Agent \u8C03\u5EA6\u603B\u7ED3\n\n- **1**: **7** \u2014 T1-T4 \u2192 `quick`, T5 \u2192 `quick`, T6 \u2192 `quick`, T7 \u2192 `quick`\n- **2**: **7** \u2014 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** \u2014 T15 \u2192 `deep`, T16 \u2192 `visual-engineering`, T17-T19 \u2192 `quick`, T20 \u2192 `visual-engineering`\n- **4**: **4** \u2014 T21 \u2192 `deep`, T22 \u2192 `unspecified-high`, T23 \u2192 `deep`, T24 \u2192 `git`\n- **FINAL**: **4** \u2014 F1 \u2192 `oracle`, F2 \u2192 `unspecified-high`, F3 \u2192 `unspecified-high`, F4 \u2192 `deep`\n\n---\n\n## TODOs\n\n> \u5B9E\u73B0 + \u6D4B\u8BD5 = \u4E00\u4E2A\u4EFB\u52A1\u3002\u7EDD\u4E0D\u5206\u5F00\u3002\n> \u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u6709\uFF1A\u63A8\u8350\u7684 Agent Profile + \u5E76\u884C\u5316\u4FE1\u606F + QA \u573A\u666F\u3002\n> **\u6CA1\u6709 QA \u573A\u666F\u7684\u4EFB\u52A1\u662F\u4E0D\u5B8C\u6574\u7684\u3002\u65E0\u4F8B\u5916\u3002**\n\n- [ ] 1. [\u4EFB\u52A1\u6807\u9898]\n\n **What to do**\uFF1A\n - [\u6E05\u6670\u7684\u5B9E\u73B0\u6B65\u9AA4]\n - [\u8981\u8986\u76D6\u7684\u6D4B\u8BD5\u7528\u4F8B]\n\n **Must NOT do**\uFF1A\n - [\u6765\u81EA\u62A4\u680F\u7684\u660E\u786E\u6392\u9664\u9879]\n\n **Recommended Agent Profile**\uFF1A\n > \u6839\u636E\u4EFB\u52A1\u9886\u57DF\u9009\u62E9\u5206\u7C7B + \u6280\u80FD\u3002\u4E3A\u6BCF\u4E2A\u9009\u62E9\u63D0\u4F9B\u7406\u7531\u3002\n - **Category**\uFF1A`[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]`\n - Reason\uFF1A[\u4E3A\u4EC0\u4E48\u8FD9\u4E2A\u5206\u7C7B\u9002\u5408\u4EFB\u52A1\u9886\u57DF]\n - **Skills**\uFF1A[`skill-1`, `skill-2`]\n - `skill-1`\uFF1A[\u4E3A\u4EC0\u4E48\u9700\u8981\u2014\u2014\u9886\u57DF\u91CD\u53E0\u8BF4\u660E]\n - `skill-2`\uFF1A[\u4E3A\u4EC0\u4E48\u9700\u8981\u2014\u2014\u9886\u57DF\u91CD\u53E0\u8BF4\u660E]\n - **Skills Evaluated but Omitted**\uFF1A\n - `omitted-skill`\uFF1A[\u4E3A\u4EC0\u4E48\u9886\u57DF\u4E0D\u91CD\u53E0]\n\n **Parallelization**\uFF1A\n - **Can Run In Parallel**\uFF1AYES | NO\n - **Parallel Group**\uFF1AWave N\uFF08\u4E0E Tasks X, Y \u4E00\u8D77\uFF09| Sequential\n - **Blocks**\uFF1A[\u4F9D\u8D56\u6B64\u4EFB\u52A1\u5B8C\u6210\u7684\u4EFB\u52A1]\n - **Blocked By**\uFF1A[\u6B64\u4EFB\u52A1\u4F9D\u8D56\u7684\u4EFB\u52A1] | None\uFF08\u53EF\u7ACB\u5373\u5F00\u59CB\uFF09\n\n **References**\uFF08\u5173\u952E - \u8981\u7A77\u5C3D\uFF09\uFF1A\n\n > \u6267\u884C\u8005\u6CA1\u6709\u4F60\u8BBF\u8C08\u7684\u4EFB\u4F55\u4E0A\u4E0B\u6587\u3002\u5F15\u7528\u662F\u4ED6\u4EEC\u552F\u4E00\u7684\u6307\u5357\u3002\n > \u6BCF\u4E2A\u5F15\u7528\u5FC5\u987B\u56DE\u7B54\uFF1A\"\u6211\u5E94\u8BE5\u770B\u4EC0\u4E48\uFF0C\u4E3A\u4EC0\u4E48\uFF1F\"\n\n **Pattern References**\uFF08\u8981\u9075\u5FAA\u7684\u73B0\u6709\u4EE3\u7801\uFF09\uFF1A\n - `src/services/auth.ts:45-78` - \u8BA4\u8BC1\u6D41\u7A0B\u6A21\u5F0F\uFF08JWT \u521B\u5EFA\u3001\u5237\u65B0\u4EE4\u724C\u5904\u7406\uFF09\n\n **API/Type References**\uFF08\u8981\u5B9E\u73B0\u7684\u5951\u7EA6\uFF09\uFF1A\n - `src/types/user.ts:UserDTO` - \u7528\u6237\u7AEF\u70B9\u7684\u54CD\u5E94\u7ED3\u6784\n\n **Test References**\uFF08\u8981\u9075\u5FAA\u7684\u6D4B\u8BD5\u6A21\u5F0F\uFF09\uFF1A\n - `src/__tests__/auth.test.ts:describe(\"login\")` - \u6D4B\u8BD5\u7ED3\u6784\u548C mock \u6A21\u5F0F\n\n **External References**\uFF08\u5E93\u548C\u6846\u67B6\uFF09\uFF1A\n - Official docs\uFF1A`https://zod.dev/?id=basic-usage` - Zod \u9A8C\u8BC1\u8BED\u6CD5\n\n **WHY Each Reference Matters**\uFF08\u89E3\u91CA\u76F8\u5173\u6027\uFF09\uFF1A\n - \u4E0D\u8981\u53EA\u5217\u51FA\u6587\u4EF6\u2014\u2014\u8981\u89E3\u91CA\u6267\u884C\u8005\u5E94\u8BE5\u4ECE\u4E2D\u63D0\u53D6\u4EC0\u4E48\u6A21\u5F0F/\u4FE1\u606F\n - \u5DEE\u7684\uFF1A`src/utils.ts`\uFF08\u6A21\u7CCA\uFF0C\u54EA\u4E2A utils\uFF1F\u4E3A\u4EC0\u4E48\uFF1F\uFF09\n - \u597D\u7684\uFF1A`src/utils/validation.ts:sanitizeInput()` - \u4F7F\u7528\u6B64\u6D88\u6BD2\u6A21\u5F0F\u5904\u7406\u7528\u6237\u8F93\u5165\n\n **Acceptance Criteria**\uFF1A\n\n > **\u4EC5\u9650 AGENT \u53EF\u6267\u884C\u7684\u9A8C\u8BC1** \u2014 \u4E0D\u5141\u8BB8\u4EBA\u5DE5\u64CD\u4F5C\u3002\n > \u6BCF\u4E2A\u6807\u51C6\u5FC5\u987B\u53EF\u4EE5\u901A\u8FC7\u8FD0\u884C\u547D\u4EE4\u6216\u4F7F\u7528\u5DE5\u5177\u6765\u9A8C\u8BC1\u3002\n\n **If TDD\uFF08\u542F\u7528\u4E86\u6D4B\u8BD5\uFF09\uFF1A**\n - [ ] \u6D4B\u8BD5\u6587\u4EF6\u5DF2\u521B\u5EFA\uFF1Asrc/auth/login.test.ts\n - [ ] bun test src/auth/login.test.ts \u2192 PASS\uFF083 \u4E2A\u6D4B\u8BD5\uFF0C0 \u4E2A\u5931\u8D25\uFF09\n\n **QA Scenarios\uFF08\u5F3A\u5236\u2014\u2014\u65E0\u6B64\u5219\u4EFB\u52A1\u4E0D\u5B8C\u6574\uFF09\uFF1A**\n\n > **\u8FD9\u4E0D\u662F\u53EF\u9009\u9879\u3002\u6CA1\u6709 QA \u573A\u666F\u7684\u4EFB\u52A1\u4F1A\u88AB\u62D2\u7EDD\u3002**\n >\n > \u7F16\u5199\u9A8C\u8BC1\u4F60\u6784\u5EFA\u5185\u5BB9\u7684\u5B9E\u9645\u884C\u4E3A\u7684\u573A\u666F\u6D4B\u8BD5\u3002\n > \u6700\u5C11\uFF1A\u6BCF\u4E2A\u4EFB\u52A1 1 \u4E2A\u6B63\u5411\u8DEF\u5F84 + 1 \u4E2A\u5931\u8D25/\u8FB9\u754C\u60C5\u51B5\u3002\n > \u6BCF\u4E2A\u573A\u666F = \u786E\u5207\u7684\u5DE5\u5177 + \u786E\u5207\u7684\u6B65\u9AA4 + \u786E\u5207\u7684\u65AD\u8A00 + \u8BC1\u636E\u8DEF\u5F84\u3002\n >\n > **\u6267\u884C agent \u5728\u5B9E\u73B0\u540E\u5FC5\u987B\u8FD0\u884C\u8FD9\u4E9B\u573A\u666F\u3002**\n > **orchestrator \u5728\u6807\u8BB0\u4EFB\u52A1\u5B8C\u6210\u524D\u4F1A\u9A8C\u8BC1\u8BC1\u636E\u6587\u4EF6\u662F\u5426\u5B58\u5728\u3002**\n\n \\`\\`\\`\n Scenario\uFF1A[Happy path \u2014 \u4EC0\u4E48\u5E94\u8BE5\u6B63\u5E38\u5DE5\u4F5C]\n Tool\uFF1A[Playwright / interactive_bash / Bash (curl)]\n Preconditions\uFF1A[\u786E\u5207\u7684\u524D\u7F6E\u6761\u4EF6]\n Steps\uFF1A\n 1. [\u786E\u5207\u7684\u64CD\u4F5C\u2014\u2014\u5177\u4F53\u7684\u547D\u4EE4/\u9009\u62E9\u5668/\u7AEF\u70B9\uFF0C\u4E0D\u8981\u6A21\u7CCA]\n 2. [\u4E0B\u4E00\u6B65\u64CD\u4F5C\u2014\u2014\u542B\u9884\u671F\u7684\u4E2D\u95F4\u72B6\u6001]\n 3. [\u65AD\u8A00\u2014\u2014\u786E\u5207\u671F\u671B\u7684\u503C\uFF0C\u4E0D\u8981\"\u9A8C\u8BC1\u5B83\u80FD\u5DE5\u4F5C\"]\n Expected Result\uFF1A[\u5177\u4F53\u7684\u3001\u53EF\u89C2\u5BDF\u7684\u3001\u4E8C\u5143\u7684 pass/fail]\n Failure Indicators\uFF1A[\u5177\u4F53\u4EC0\u4E48\u610F\u5473\u7740\u5931\u8D25]\n Evidence\uFF1A.sisyphus/evidence/task-{N}-{scenario-slug}.{ext}\n\n Scenario\uFF1A[Failure/edge case \u2014 \u4EC0\u4E48\u5E94\u8BE5\u4F18\u96C5\u5730\u5931\u8D25]\n Tool\uFF1A[same format]\n Preconditions\uFF1A[\u65E0\u6548\u8F93\u5165 / \u7F3A\u5931\u4F9D\u8D56 / \u9519\u8BEF\u72B6\u6001]\n Steps\uFF1A\n 1. [\u89E6\u53D1\u9519\u8BEF\u6761\u4EF6]\n 2. [\u65AD\u8A00\u9519\u8BEF\u88AB\u6B63\u786E\u5904\u7406]\n Expected Result\uFF1A[\u4F18\u96C5\u7684\u5931\u8D25\uFF0C\u9519\u8BEF\u6D88\u606F/\u4EE3\u7801\u6B63\u786E]\n Evidence\uFF1A.sisyphus/evidence/task-{N}-{scenario-slug}-error.{ext}\n \\`\\`\\`\n\n > **\u5177\u4F53\u6027\u8981\u6C42\u2014\u2014\u6BCF\u4E2A\u573A\u666F\u5FC5\u987B\u4F7F\u7528\uFF1A**\n > - **\u9009\u62E9\u5668**\uFF1A\u5177\u4F53\u7684 CSS \u9009\u62E9\u5668\uFF08`.login-button`\uFF0C\u4E0D\u662F\"\u767B\u5F55\u6309\u94AE\"\uFF09\n > - **\u6570\u636E**\uFF1A\u5177\u4F53\u7684\u6D4B\u8BD5\u6570\u636E\uFF08`\"test@example.com\"`\uFF0C\u4E0D\u662F`\"[email]\"`\uFF09\n > - **\u65AD\u8A00**\uFF1A\u786E\u5207\u7684\u503C\uFF08`text contains \"Welcome back\"`\uFF0C\u4E0D\u662F\"\u9A8C\u8BC1\u5B83\u80FD\u5DE5\u4F5C\"\uFF09\n > - **\u65F6\u673A**\uFF1A\u76F8\u5173\u65F6\u7684\u7B49\u5F85\u6761\u4EF6\uFF08`timeout: 10s`\uFF09\n > - **\u8D1F\u9762**\uFF1A\u6BCF\u4E2A\u4EFB\u52A1\u81F3\u5C11\u4E00\u4E2A\u5931\u8D25/\u9519\u8BEF\u573A\u666F\n >\n > **\u53CD\u6A21\u5F0F\uFF08\u4F60\u7684\u573A\u666F\u5982\u679C\u50CF\u8FD9\u6837\u5C31\u662F\u65E0\u6548\u7684\uFF09\uFF1A**\n > - \u274C \"\u9A8C\u8BC1\u5B83\u80FD\u6B63\u5E38\u5DE5\u4F5C\"\u2014\u2014\u5982\u4F55\uFF1F\"\u6B63\u5E38\"\u662F\u4EC0\u4E48\u610F\u601D\uFF1F\n > - \u274C \"\u68C0\u67E5 API \u8FD4\u56DE\u6570\u636E\"\u2014\u2014\u4EC0\u4E48\u6570\u636E\uFF1F\u4EC0\u4E48\u5B57\u6BB5\uFF1F\u4EC0\u4E48\u503C\uFF1F\n > - \u274C \"\u6D4B\u8BD5\u7EC4\u4EF6\u6E32\u67D3\"\u2014\u2014\u5728\u54EA\u91CC\uFF1F\u4EC0\u4E48\u9009\u62E9\u5668\uFF1F\u4EC0\u4E48\u5185\u5BB9\uFF1F\n > - \u274C \u4EFB\u4F55\u6CA1\u6709\u8BC1\u636E\u8DEF\u5F84\u7684\u573A\u666F\n\n **Evidence to Capture\uFF1A**\n - [ ] \u6BCF\u4E2A\u8BC1\u636E\u6587\u4EF6\u547D\u540D\uFF1Atask-{N}-{scenario-slug}.{ext}\n - [ ] UI \u622A\u56FE\uFF0CCLI \u7EC8\u7AEF\u8F93\u51FA\uFF0CAPI \u54CD\u5E94\u4F53\n\n **Commit**\uFF1AYES | NO\uFF08\u4E0E N \u7EC4\uFF09\n - Message\uFF1A`type(scope): desc`\n - Files\uFF1A`path/to/file`\n - Pre-commit\uFF1A`test command`\n\n---\n\n## Final Verification Wave\uFF08\u5F3A\u5236\u2014\u2014\u6240\u6709\u5B9E\u73B0\u4EFB\u52A1\u4E4B\u540E\uFF09\n\n> 4 \u4E2A\u5BA1\u6838 agent \u5E76\u884C\u8FD0\u884C\u3002\u5168\u90E8\u5FC5\u987B\u6279\u51C6\u3002\u5411\u7528\u6237\u5448\u73B0\u6C47\u603B\u7ED3\u679C\uFF0C\u83B7\u5F97\u660E\u786E\"okay\"\u540E\u624D\u7B97\u5B8C\u6210\u3002\n>\n> \u5BA1\u6838\u540E\u4E0D\u8981\u81EA\u52A8\u7EE7\u7EED\u3002\u5728\u6807\u8BB0\u5DE5\u4F5C\u5B8C\u6210\u4E4B\u524D\uFF0C\u5FC5\u987B\u7B49\u5F85\u7528\u6237\u660E\u786E\u6279\u51C6\u3002\n> \u5728\u83B7\u5F97\u7528\u6237 okay \u4E4B\u524D\u4E0D\u8981\u5C06 F1-F4 \u6807\u8BB0\u4E3A\u5DF2\u68C0\u67E5\u3002\u9A73\u56DE\u6216\u7528\u6237\u53CD\u9988 \u2192 \u4FEE\u590D \u2192 \u91CD\u65B0\u8FD0\u884C \u2192 \u91CD\u65B0\u5448\u73B0 \u2192 \u7B49\u5F85 okay\u3002\n\n- [ ] F1. **\u8BA1\u5212\u5408\u89C4\u5BA1\u8BA1** \u2014 `oracle`\n \u4ECE\u5934\u5230\u5C3E\u9605\u8BFB\u8BA1\u5212\u3002\u5BF9\u4E8E\u6BCF\u4E2A\"\u5FC5\u987B\u6709\"\uFF1A\u9A8C\u8BC1\u5B9E\u73B0\u5B58\u5728\uFF08\u8BFB\u6587\u4EF6\u3001curl \u7AEF\u70B9\u3001\u8FD0\u884C\u547D\u4EE4\uFF09\u3002\u5BF9\u4E8E\u6BCF\u4E2A\"\u7981\u6B62\u6709\"\uFF1A\u641C\u7D22\u4EE3\u7801\u5E93\u4E2D\u7684\u7981\u6B62\u6A21\u5F0F\u2014\u2014\u5982\u53D1\u73B0\u5219\u62D2\u7EDD\u5E76\u7ED9\u51FA file:line\u3002\u68C0\u67E5 .sisyphus/evidence/ \u4E2D\u8BC1\u636E\u6587\u4EF6\u662F\u5426\u5B58\u5728\u3002\u6BD4\u8F83\u4EA4\u4ED8\u7269\u4E0E\u8BA1\u5212\u3002\n \u8F93\u51FA\uFF1A`Must Have [N/N] | Must NOT Have [N/N] | Tasks [N/N] | VERDICT: APPROVE/REJECT`\n\n- [ ] F2. **\u4EE3\u7801\u8D28\u91CF\u5BA1\u6838** \u2014 `unspecified-high`\n \u8FD0\u884C `tsc --noEmit` + linter + `bun test`\u3002\u5BA1\u67E5\u6240\u6709\u53D8\u66F4\u6587\u4EF6\uFF1A`as any`/`@ts-ignore`\u3001\u7A7A catch\u3001prod \u4E2D\u7684 console.log\u3001\u6CE8\u91CA\u6389\u7684\u4EE3\u7801\u3001\u672A\u4F7F\u7528\u7684 imports\u3002\u68C0\u67E5 AI \u6577\u884D\uFF1A\u8FC7\u591A\u6CE8\u91CA\u3001\u8FC7\u5EA6\u62BD\u8C61\u3001\u901A\u7528\u540D\u79F0\uFF08data/result/item/temp\uFF09\u3002\n \u8F93\u51FA\uFF1A`Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass/N fail] | Files [N clean/N issues] | VERDICT`\n\n- [ ] F3. **\u771F\u5B9E\u4EBA\u5DE5 QA** \u2014 `unspecified-high`\uFF08+ `playwright` skill \u5982\u6709 UI\uFF09\n \u4ECE\u5E72\u51C0\u72B6\u6001\u5F00\u59CB\u3002\u6267\u884C\u6BCF\u4E2A\u4EFB\u52A1\u4E2D\u6BCF\u4E2A QA \u573A\u666F\u2014\u2014\u9075\u5FAA\u786E\u5207\u6B65\u9AA4\uFF0C\u6355\u83B7\u8BC1\u636E\u3002\u6D4B\u8BD5\u8DE8\u4EFB\u52A1\u96C6\u6210\uFF08\u529F\u80FD\u4E00\u8D77\u5DE5\u4F5C\uFF0C\u800C\u975E\u5B64\u7ACB\uFF09\u3002\u6D4B\u8BD5\u8FB9\u754C\u60C5\u51B5\uFF1A\u7A7A\u72B6\u6001\u3001\u65E0\u6548\u8F93\u5165\u3001\u5FEB\u901F\u64CD\u4F5C\u3002\u4FDD\u5B58\u81F3 `.sisyphus/evidence/final-qa/`\u3002\n \u8F93\u51FA\uFF1A`Scenarios [N/N pass] | Integration [N/N] | Edge Cases [N tested] | VERDICT`\n\n- [ ] F4. **\u8303\u56F4\u771F\u5B9E\u6027\u68C0\u67E5** \u2014 `deep`\n \u5BF9\u4E8E\u6BCF\u4E2A\u4EFB\u52A1\uFF1A\u8BFB\"What to do\"\u3001\u8BFB\u5B9E\u9645 diff\uFF08git log/diff\uFF09\u3002\u9A8C\u8BC1 1:1 \u2014\u2014 \u89C4\u683C\u4E2D\u7684\u4E00\u5207\u90FD\u5DF2\u6784\u5EFA\uFF08\u65E0\u7F3A\u5931\uFF09\uFF0C\u89C4\u683C\u5916\u7684\u4EFB\u4F55\u5185\u5BB9\u90FD\u6CA1\u6709\u6784\u5EFA\uFF08\u65E0\u8513\u5EF6\uFF09\u3002\u68C0\u67E5\"Must NOT do\"\u5408\u89C4\u6027\u3002\u68C0\u6D4B\u8DE8\u4EFB\u52A1\u6C61\u67D3\uFF1A\u4EFB\u52A1 N \u89E6\u78B0\u4E86\u4EFB\u52A1 M \u7684\u6587\u4EF6\u3002\u6807\u8BB0\u672A\u8BB0\u5F55\u7684\u53D8\u66F4\u3002\n \u8F93\u51FA\uFF1A`Tasks [N/N compliant] | Contamination [CLEAN/N issues] | Unaccounted [CLEAN/N files] | VERDICT`\n\n---\n\n## Commit Strategy\n\n- **1**\uFF1A`type(scope): desc` \u2014 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- [ ] \u6240\u6709\"\u5FC5\u987B\u6709\"\u90FD\u5B58\u5728\n- [ ] \u6240\u6709\"\u7981\u6B62\u6709\"\u90FD\u4E0D\u5B58\u5728\n- [ ] \u6240\u6709\u6D4B\u8BD5\u901A\u8FC7\n```\n\n---\n";
7
+ export declare const PROMETHEUS_PLAN_TEMPLATE = "## \u8BA1\u5212\u7ED3\u6784\n\n\u751F\u6210\u8BA1\u5212\u81F3\uFF1A`.sisyphus/plans/{name}.md`\n\n```markdown\n# {\u8BA1\u5212\u6807\u9898}\n\n## TL;DR\n\n> **\u5FEB\u901F\u6458\u8981**\uFF1A[1-2 \u53E5\u8BDD\uFF0C\u6982\u62EC\u6838\u5FC3\u76EE\u6807\u548C\u65B9\u6848]\n>\n> **\u4EA4\u4ED8\u7269**\uFF1A[\u5177\u4F53\u8F93\u51FA\u7684\u9879\u76EE\u7B26\u53F7\u5217\u8868]\n> - [\u8F93\u51FA 1]\n> - [\u8F93\u51FA 2]\n>\n> **\u9884\u4F30\u5DE5\u4F5C\u91CF**\uFF1A[\u5FEB\u901F | \u77ED\u671F | \u4E2D\u671F | \u5927\u578B | \u8D85\u5927]\n> **\u5E76\u884C\u6267\u884C**\uFF1A[\u662F - N \u6CE2 | \u5426 - \u987A\u5E8F\u6267\u884C]\n> **\u5173\u952E\u8DEF\u5F84**\uFF1A[\u4EFB\u52A1 X \u2192 \u4EFB\u52A1 Y \u2192 \u4EFB\u52A1 Z]\n\n---\n\n## \u4E0A\u4E0B\u6587\n\n### \u539F\u59CB\u8BF7\u6C42\n[\u7528\u6237\u7684\u521D\u59CB\u63CF\u8FF0]\n\n### \u8BBF\u8C08\u6458\u8981\n**\u5173\u952E\u8BA8\u8BBA**\uFF1A\n- [\u8981\u70B9 1]\uFF1A[\u7528\u6237\u7684\u51B3\u7B56/\u504F\u597D]\n- [\u8981\u70B9 2]\uFF1A[\u7EA6\u5B9A\u7684\u65B9\u6848]\n\n**\u7814\u7A76\u53D1\u73B0**\uFF1A\n- [\u53D1\u73B0 1]\uFF1A[\u5F71\u54CD]\n- [\u53D1\u73B0 2]\uFF1A[\u5EFA\u8BAE]\n\n### Metis \u5BA1\u67E5\n**\u8BC6\u522B\u7684\u7F3A\u53E3**\uFF08\u5DF2\u89E3\u51B3\uFF09\uFF1A\n- [\u7F3A\u53E3 1]\uFF1A[\u5982\u4F55\u89E3\u51B3]\n- [\u7F3A\u53E3 2]\uFF1A[\u5982\u4F55\u89E3\u51B3]\n\n---\n\n## \u5DE5\u4F5C\u76EE\u6807\n\n### \u6838\u5FC3\u76EE\u6807\n[1-2 \u53E5\u8BDD\uFF1A\u6211\u4EEC\u6B63\u5728\u5B9E\u73B0\u4EC0\u4E48]\n\n### \u5177\u4F53\u4EA4\u4ED8\u7269\n- [\u786E\u5207\u7684\u6587\u4EF6/\u7AEF\u70B9/\u529F\u80FD]\n\n### \u5B8C\u6210\u5B9A\u4E49\n- [ ] [\u5E26\u547D\u4EE4\u7684\u53EF\u9A8C\u8BC1\u6761\u4EF6]\n\n### \u5FC5\u987B\u6709\n- [\u4E0D\u53EF\u534F\u5546\u7684\u9700\u6C42]\n\n### \u7981\u6B62\u6709\uFF08\u9632\u62A4\u680F\uFF09\n- [\u6765\u81EA Metis \u5BA1\u67E5\u7684\u660E\u786E\u6392\u9664]\n- [\u9700\u8981\u907F\u514D\u7684 AI-Slop \u6A21\u5F0F]\n- [\u8303\u56F4\u8FB9\u754C]\n\n---\n\n## \u9A8C\u8BC1\u7B56\u7565\uFF08\u5F3A\u5236\uFF09\n\n> **\u96F6\u4EBA\u5DE5\u5E72\u9884** \u2014\u2014 \u6240\u6709\u9A8C\u8BC1\u5747\u4E3A agent \u6267\u884C\u3002\u65E0\u4F8B\u5916\u3002\n> \u8981\u6C42\"\u7528\u6237\u624B\u52A8\u6D4B\u8BD5/\u786E\u8BA4\"\u7684\u9A8C\u6536\u6807\u51C6\u662F\u7981\u6B62\u7684\u3002\n\n### \u6D4B\u8BD5\u51B3\u7B56\n- **\u57FA\u7840\u8BBE\u65BD\u5B58\u5728**\uFF1A[\u662F/\u5426]\n- **\u81EA\u52A8\u5316\u6D4B\u8BD5**\uFF1A[TDD / \u6D4B\u8BD5\u540E\u7F6E / \u65E0]\n- **\u6846\u67B6**\uFF1A[bun test / vitest / jest / pytest / \u65E0]\n- **\u5982 TDD**\uFF1A\u6BCF\u4E2A\u4EFB\u52A1\u9075\u5FAA RED\uFF08\u5931\u8D25\u6D4B\u8BD5\uFF09\u2192 GREEN\uFF08\u6700\u5C0F\u5316\u5B9E\u73B0\uFF09\u2192 REFACTOR\n\n### QA \u7B56\u7565\n\u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u5305\u542B agent \u6267\u884C\u7684 QA \u573A\u666F\uFF08\u89C1\u4E0B\u65B9 TODO \u6A21\u677F\uFF09\u3002\n\u8BC1\u636E\u4FDD\u5B58\u81F3 `.sisyphus/evidence/task-{N}-{scenario-slug}.{ext}`\u3002\n\n- **\u524D\u7AEF/UI**\uFF1A\u4F7F\u7528 Playwright\uFF08playwright skill\uFF09\u2014\u2014 \u5BFC\u822A\u3001\u4EA4\u4E92\u3001\u65AD\u8A00 DOM\u3001\u622A\u56FE\n- **TUI/CLI**\uFF1A\u4F7F\u7528 interactive_bash\uFF08tmux\uFF09\u2014\u2014 \u8FD0\u884C\u547D\u4EE4\u3001\u53D1\u9001\u6309\u952E\u3001\u9A8C\u8BC1\u8F93\u51FA\n- **API/\u540E\u7AEF**\uFF1A\u4F7F\u7528 Bash\uFF08curl\uFF09\u2014\u2014 \u53D1\u9001\u8BF7\u6C42\u3001\u65AD\u8A00\u72B6\u6001\u548C\u54CD\u5E94\u5B57\u6BB5\n- **\u5E93/\u6A21\u5757**\uFF1A\u4F7F\u7528 Bash\uFF08bun/node REPL\uFF09\u2014\u2014 \u5BFC\u5165\u3001\u8C03\u7528\u51FD\u6570\u3001\u6BD4\u8F83\u8F93\u51FA\n\n---\n\n## \u6267\u884C\u7B56\u7565\n\n### \u5E76\u884C\u6267\u884C\u6CE2\u6B21\n\n> \u901A\u8FC7\u5C06\u72EC\u7ACB\u4EFB\u52A1\u5206\u7EC4\u4E3A\u5E76\u884C\u6CE2\u6B21\u6765\u6700\u5927\u5316\u541E\u5410\u91CF\u3002\n> \u6BCF\u4E2A\u6CE2\u6B21\u5B8C\u6210\u540E\u624D\u5F00\u59CB\u4E0B\u4E00\u4E2A\u3002\n> \u76EE\u6807\uFF1A\u6BCF\u6CE2 5-8 \u4E2A\u4EFB\u52A1\u3002\u6BCF\u6CE2\u5C11\u4E8E 3 \u4E2A\uFF08\u6700\u7EC8\u6CE2\u9664\u5916\uFF09= \u62C6\u5206\u4E0D\u8DB3\u3002\n\n```\nWave 1\uFF08\u7ACB\u5373\u5F00\u59CB \u2014\u2014 \u57FA\u7840 + \u811A\u624B\u67B6\uFF09\uFF1A\n\u251C\u2500\u2500 Task 1: \u9879\u76EE\u811A\u624B\u67B6 + \u914D\u7F6E [quick]\n\u251C\u2500\u2500 Task 2: \u8BBE\u8BA1\u7CFB\u7EDF token [quick]\n\u251C\u2500\u2500 Task 3: \u7C7B\u578B\u5B9A\u4E49 [quick]\n\u251C\u2500\u2500 Task 4: Schema \u5B9A\u4E49 [quick]\n\u251C\u2500\u2500 Task 5: \u5B58\u50A8\u63A5\u53E3 + \u5185\u5B58\u5B9E\u73B0 [quick]\n\u251C\u2500\u2500 Task 6: Auth \u4E2D\u95F4\u4EF6 [quick]\n\u2514\u2500\u2500 Task 7: \u5BA2\u6237\u7AEF\u6A21\u5757 [quick]\n\nWave 2\uFF08Wave 1 \u4E4B\u540E \u2014\u2014 \u6838\u5FC3\u6A21\u5757\uFF0C\u6700\u5927\u5E76\u884C\uFF09\uFF1A\n\u251C\u2500\u2500 Task 8: \u6838\u5FC3\u4E1A\u52A1\u903B\u8F91\uFF08\u4F9D\u8D56\uFF1A3, 5, 7\uFF09[deep]\n\u251C\u2500\u2500 Task 9: API \u7AEF\u70B9\uFF08\u4F9D\u8D56\uFF1A4, 5\uFF09[unspecified-high]\n\u251C\u2500\u2500 Task 10: \u6B21\u8981\u5B58\u50A8\u5B9E\u73B0\uFF08\u4F9D\u8D56\uFF1A5\uFF09[unspecified-high]\n\u251C\u2500\u2500 Task 11: \u91CD\u8BD5/\u56DE\u9000\u903B\u8F91\uFF08\u4F9D\u8D56\uFF1A8\uFF09[deep]\n\u251C\u2500\u2500 Task 12: UI \u5E03\u5C40 + \u5BFC\u822A\uFF08\u4F9D\u8D56\uFF1A2\uFF09[visual-engineering]\n\u251C\u2500\u2500 Task 13: API \u5BA2\u6237\u7AEF + hooks\uFF08\u4F9D\u8D56\uFF1A4\uFF09[quick]\n\u2514\u2500\u2500 Task 14: \u9065\u6D4B\u4E2D\u95F4\u4EF6\uFF08\u4F9D\u8D56\uFF1A5, 10\uFF09[unspecified-high]\n\nWave 3\uFF08Wave 2 \u4E4B\u540E \u2014\u2014 \u96C6\u6210 + UI\uFF09\uFF1A\n\u251C\u2500\u2500 Task 15: \u7EC4\u5408\u6A21\u5757\u7684\u4E3B\u8DEF\u7531\uFF08\u4F9D\u8D56\uFF1A6, 11, 14\uFF09[deep]\n\u251C\u2500\u2500 Task 16: UI \u6570\u636E\u53EF\u89C6\u5316\uFF08\u4F9D\u8D56\uFF1A12, 13\uFF09[visual-engineering]\n\u251C\u2500\u2500 Task 17: \u90E8\u7F72\u914D\u7F6E A\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u251C\u2500\u2500 Task 18: \u90E8\u7F72\u914D\u7F6E B\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u251C\u2500\u2500 Task 19: \u90E8\u7F72\u914D\u7F6E C\uFF08\u4F9D\u8D56\uFF1A15\uFF09[quick]\n\u2514\u2500\u2500 Task 20: UI \u8BF7\u6C42\u65E5\u5FD7 + \u6784\u5EFA\uFF08\u4F9D\u8D56\uFF1A16\uFF09[visual-engineering]\n\nWave FINAL\uFF08\u6240\u6709\u4EFB\u52A1\u4E4B\u540E \u2014\u2014 4 \u4E2A\u5E76\u884C\u5BA1\u67E5\uFF0C\u7136\u540E\u7528\u6237\u786E\u8BA4\uFF09\uFF1A\n\u251C\u2500\u2500 Task F1: \u8BA1\u5212\u5408\u89C4\u5BA1\u67E5\uFF08oracle\uFF09\n\u251C\u2500\u2500 Task F2: \u4EE3\u7801\u8D28\u91CF\u5BA1\u67E5\uFF08unspecified-high\uFF09\n\u251C\u2500\u2500 Task F3: \u771F\u5B9E\u624B\u52A8 QA\uFF08unspecified-high\uFF09\n\u2514\u2500\u2500 Task F4: \u8303\u56F4\u4FDD\u771F\u5EA6\u68C0\u67E5\uFF08deep\uFF09\n-> \u5448\u73B0\u7ED3\u679C -> \u83B7\u5F97\u7528\u6237\u660E\u786E\u786E\u8BA4\n\n\u5173\u952E\u8DEF\u5F84\uFF1ATask 1 \u2192 Task 5 \u2192 Task 8 \u2192 Task 11 \u2192 Task 15 \u2192 Task 21 \u2192 F1-F4 \u2192 user okay\n\u5E76\u884C\u52A0\u901F\uFF1A\u6BD4\u987A\u5E8F\u6267\u884C\u5FEB\u7EA6 70%\n\u6700\u5927\u5E76\u53D1\uFF1A7\uFF08Wave 1 & 2\uFF09\n```\n\n### \u4F9D\u8D56\u77E9\u9635\uFF08\u7F29\u5199 \u2014\u2014 \u5728\u751F\u6210\u7684\u8BA1\u5212\u4E2D\u663E\u793A\u6240\u6709\u4EFB\u52A1\uFF09\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> \u8FD9\u662F\u4F9B\u4F60\u53C2\u8003\u7684\u7F29\u5199\u7248\u672C\u3002\u4F60\u751F\u6210\u7684\u8BA1\u5212\u5FC5\u987B\u5305\u542B\u6240\u6709\u4EFB\u52A1\u7684\u5B8C\u6574\u77E9\u9635\u3002\n\n### Agent \u8C03\u5EA6\u6458\u8981\n\n- **1**\uFF1A**7** - T1-T4 \u2192 `quick`\uFF0CT5 \u2192 `quick`\uFF0CT6 \u2192 `quick`\uFF0CT7 \u2192 `quick`\n- **2**\uFF1A**7** - T8 \u2192 `deep`\uFF0CT9 \u2192 `unspecified-high`\uFF0CT10 \u2192 `unspecified-high`\uFF0CT11 \u2192 `deep`\uFF0CT12 \u2192 `visual-engineering`\uFF0CT13 \u2192 `quick`\uFF0CT14 \u2192 `unspecified-high`\n- **3**\uFF1A**6** - T15 \u2192 `deep`\uFF0CT16 \u2192 `visual-engineering`\uFF0CT17-T19 \u2192 `quick`\uFF0CT20 \u2192 `visual-engineering`\n- **4**\uFF1A**4** - T21 \u2192 `deep`\uFF0CT22 \u2192 `unspecified-high`\uFF0CT23 \u2192 `deep`\uFF0CT24 \u2192 `git`\n- **FINAL**\uFF1A**4** - F1 \u2192 `oracle`\uFF0CF2 \u2192 `unspecified-high`\uFF0CF3 \u2192 `unspecified-high`\uFF0CF4 \u2192 `deep`\n\n---\n\n## TODOs\n\n> \u5B9E\u73B0 + \u6D4B\u8BD5 = \u4E00\u4E2A\u4EFB\u52A1\u3002\u7EDD\u4E0D\u5206\u5F00\u3002\n> \u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u6709\uFF1A\u63A8\u8350\u7684 Agent Profile + \u5E76\u884C\u5316\u4FE1\u606F + QA \u573A\u666F\u3002\n> **\u6CA1\u6709 QA \u573A\u666F\u7684\u4EFB\u52A1\u662F\u4E0D\u5B8C\u6574\u7684\u3002\u65E0\u4F8B\u5916\u3002**\n\n- [ ] 1. [\u4EFB\u52A1\u6807\u9898]\n\n **\u505A\u4EC0\u4E48**\uFF1A\n - [\u6E05\u6670\u7684\u5B9E\u73B0\u6B65\u9AA4]\n - [\u8981\u8986\u76D6\u7684\u6D4B\u8BD5\u7528\u4F8B]\n\n **\u7981\u6B62\u505A\u4EC0\u4E48**\uFF1A\n - [\u6765\u81EA\u9632\u62A4\u680F\u7684\u660E\u786E\u6392\u9664]\n\n **\u63A8\u8350\u7684 Agent Profile**\uFF1A\n > \u6839\u636E\u4EFB\u52A1\u9886\u57DF\u9009\u62E9 category + skills\u3002\u4E3A\u6BCF\u4E2A\u9009\u62E9\u63D0\u4F9B\u7406\u7531\u3002\n - **Category**\uFF1A[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]\n - \u7406\u7531\uFF1A[\u4E3A\u4EC0\u4E48\u6B64 category \u9002\u5408\u4EFB\u52A1\u9886\u57DF]\n - **Skills**\uFF1A[`skill-1`\uFF0C`skill-2`]\n - `skill-1`\uFF1A[\u4E3A\u4EC0\u4E48\u9700\u8981 - \u9886\u57DF\u91CD\u53E0\u89E3\u91CA]\n - `skill-2`\uFF1A[\u4E3A\u4EC0\u4E48\u9700\u8981 - \u9886\u57DF\u91CD\u53E0\u89E3\u91CA]\n - **\u5DF2\u8BC4\u4F30\u4F46\u7701\u7565\u7684 Skills**\uFF1A\n - `omitted-skill`\uFF1A[\u4E3A\u4EC0\u4E48\u9886\u57DF\u4E0D\u91CD\u53E0]\n\n **\u5E76\u884C\u5316**\uFF1A\n - **\u53EF\u4EE5\u5E76\u884C\u8FD0\u884C**\uFF1A\u662F | \u5426\n - **\u5E76\u884C\u7EC4**\uFF1AWave N\uFF08\u4E0E\u4EFB\u52A1 X, Y \u4E00\u8D77\uFF09| \u987A\u5E8F\u6267\u884C\n - **\u963B\u585E**\uFF1A[\u4F9D\u8D56\u6B64\u4EFB\u52A1\u5B8C\u6210\u7684\u4EFB\u52A1]\n - **\u88AB\u963B\u585E**\uFF1A[\u6B64\u4EFB\u52A1\u4F9D\u8D56\u7684\u4EFB\u52A1] | \u65E0\uFF08\u53EF\u7ACB\u5373\u5F00\u59CB\uFF09\n\n **\u53C2\u8003\u8D44\u6599**\uFF08\u5173\u952E \u2014\u2014 \u8981\u8BE6\u5C3D\uFF09\uFF1A\n\n > \u6267\u884C\u8005\u6CA1\u6709\u4F60\u8BBF\u8C08\u7684\u4EFB\u4F55\u4E0A\u4E0B\u6587\u3002\u53C2\u8003\u8D44\u6599\u662F\u4ED6\u4EEC\u7684\u552F\u4E00\u6307\u5357\u3002\n > \u6BCF\u4E2A\u53C2\u8003\u8D44\u6599\u5FC5\u987B\u56DE\u7B54\uFF1A\"\u6211\u5E94\u8BE5\u67E5\u770B\u4EC0\u4E48\uFF0C\u4E3A\u4EC0\u4E48\uFF1F\"\n\n **\u6A21\u5F0F\u53C2\u8003\u8D44\u6599**\uFF08\u8981\u9075\u5FAA\u7684\u73B0\u6709\u4EE3\u7801\uFF09\uFF1A\n - `src/services/auth.ts:45-78` - \u8BA4\u8BC1\u6D41\u7A0B\u6A21\u5F0F\uFF08JWT \u521B\u5EFA\u3001\u5237\u65B0 token \u5904\u7406\uFF09\n\n **API/\u7C7B\u578B\u53C2\u8003\u8D44\u6599**\uFF08\u8981\u5B9E\u73B0\u7684\u5951\u7EA6\uFF09\uFF1A\n - `src/types/user.ts:UserDTO` - \u7528\u6237\u7AEF\u70B9\u7684\u54CD\u5E94\u5F62\u72B6\n\n **\u6D4B\u8BD5\u53C2\u8003\u8D44\u6599**\uFF08\u8981\u9075\u5FAA\u7684\u6D4B\u8BD5\u6A21\u5F0F\uFF09\uFF1A\n - `src/__tests__/auth.test.ts:describe(\"login\")` - \u6D4B\u8BD5\u7ED3\u6784\u548C mock \u6A21\u5F0F\n\n **\u5916\u90E8\u53C2\u8003\u8D44\u6599**\uFF08\u5E93\u548C\u6846\u67B6\uFF09\uFF1A\n - \u5B98\u65B9\u6587\u6863\uFF1A`https://zod.dev/?id=basic-usage` - Zod \u9A8C\u8BC1\u8BED\u6CD5\n\n **\u4E3A\u4EC0\u4E48\u6BCF\u4E2A\u53C2\u8003\u8D44\u6599\u90FD\u5F88\u91CD\u8981**\uFF08\u89E3\u91CA\u76F8\u5173\u6027\uFF09\uFF1A\n - \u4E0D\u8981\u53EA\u5217\u51FA\u6587\u4EF6 \u2014\u2014 \u89E3\u91CA\u6267\u884C\u8005\u5E94\u8BE5\u63D0\u53D6\u4EC0\u4E48\u6A21\u5F0F/\u4FE1\u606F\n - \u4E0D\u597D\uFF1A`src/utils.ts`\uFF08\u6A21\u7CCA\uFF0C\u54EA\u4E2A utils\uFF1F\u4E3A\u4EC0\u4E48\uFF1F\uFF09\n - \u597D\uFF1A`src/utils/validation.ts:sanitizeInput()` - \u4F7F\u7528\u6B64\u6D88\u6BD2\u6A21\u5F0F\u5904\u7406\u7528\u6237\u8F93\u5165\n\n **\u9A8C\u6536\u6807\u51C6**\uFF1A\n\n > **\u4EC5\u9650 AGENT \u53EF\u6267\u884C\u7684\u9A8C\u8BC1** \u2014\u2014 \u4E0D\u5141\u8BB8\u4EBA\u5DE5\u64CD\u4F5C\u3002\n > \u6BCF\u4E2A\u6807\u51C6\u5FC5\u987B\u53EF\u901A\u8FC7\u8FD0\u884C\u547D\u4EE4\u6216\u4F7F\u7528\u5DE5\u5177\u6765\u9A8C\u8BC1\u3002\n\n **\u5982\u679C TDD\uFF08\u6D4B\u8BD5\u542F\u7528\uFF09\uFF1A**\n - [ ] \u6D4B\u8BD5\u6587\u4EF6\u5DF2\u521B\u5EFA\uFF1Asrc/auth/login.test.ts\n - [ ] bun test src/auth/login.test.ts \u2192 PASS\uFF083 \u4E2A\u6D4B\u8BD5\uFF0C0 \u4E2A\u5931\u8D25\uFF09\n\n **QA \u573A\u666F\uFF08\u5F3A\u5236 \u2014\u2014 \u6CA1\u6709\u8FD9\u4E9B\u4EFB\u52A1\u4E0D\u5B8C\u6574\uFF09\uFF1A**\n\n > **\u8FD9\u4E0D\u662F\u53EF\u9009\u9879\u3002\u6CA1\u6709 QA \u573A\u666F\u7684\u4EFB\u52A1\u5C06\u88AB\u62D2\u7EDD\u3002**\n >\n > \u7F16\u5199\u573A\u666F\u6D4B\u8BD5\u6765\u9A8C\u8BC1\u4F60\u6784\u5EFA\u7684\u5B9E\u9645\u884C\u4E3A\u3002\n > \u6700\u5C11\uFF1A\u6BCF\u4E2A\u4EFB\u52A1 1 \u4E2A\u6B63\u9762\u8DEF\u5F84 + 1 \u4E2A\u5931\u8D25/\u8FB9\u7F18\u60C5\u51B5\u3002\n > \u6BCF\u4E2A\u573A\u666F = \u786E\u5207\u5DE5\u5177 + \u786E\u5207\u6B65\u9AA4 + \u786E\u5207\u65AD\u8A00 + \u8BC1\u636E\u8DEF\u5F84\u3002\n >\n > **\u6267\u884C agent \u5FC5\u987B\u5728\u5B9E\u73B0\u540E\u8FD0\u884C\u8FD9\u4E9B\u573A\u666F\u3002**\n > **orchestrator \u5C06\u5728\u6807\u8BB0\u4EFB\u52A1\u5B8C\u6210\u4E4B\u524D\u9A8C\u8BC1\u8BC1\u636E\u6587\u4EF6\u5B58\u5728\u3002**\n\n \\`\\`\\`\n Scenario: [\u6B63\u9762\u8DEF\u5F84 \u2014\u2014 \u5E94\u8BE5\u6B63\u5E38\u5DE5\u4F5C]\n Tool: [Playwright / interactive_bash / Bash (curl)]\n Preconditions: [\u786E\u5207\u8BBE\u7F6E\u72B6\u6001]\n Steps:\n 1. [\u786E\u5207\u52A8\u4F5C \u2014\u2014 \u5177\u4F53\u547D\u4EE4/\u9009\u62E9\u5668/\u7AEF\u70B9\uFF0C\u4E0D\u6A21\u7CCA]\n 2. [\u4E0B\u4E00\u6B65 \u2014\u2014 \u9884\u671F\u4E2D\u95F4\u72B6\u6001]\n 3. [\u65AD\u8A00 \u2014\u2014 \u786E\u5207\u9884\u671F\u503C\uFF0C\u4E0D\u662F\"\u9A8C\u8BC1\u5B83\u80FD\u5DE5\u4F5C\"]\n Expected Result: [\u5177\u4F53\u7684\u3001\u53EF\u89C2\u5BDF\u7684\u3001\u4E8C\u5143\u7684\u901A\u8FC7/\u5931\u8D25]\n Failure Indicators: [\u5177\u4F53\u610F\u5473\u7740\u5931\u8D25\u7684\u6307\u6807]\n Evidence: .sisyphus/evidence/task-{N}-{scenario-slug}.{ext}\n\n Scenario: [\u5931\u8D25/\u8FB9\u7F18\u60C5\u51B5 \u2014\u2014 \u5E94\u8BE5\u4F18\u96C5\u5730\u5931\u8D25]\n Tool: [\u540C\u4E0A\u683C\u5F0F]\n Preconditions: [\u65E0\u6548\u8F93\u5165 / \u7F3A\u5931\u4F9D\u8D56 / \u9519\u8BEF\u72B6\u6001]\n Steps:\n 1. [\u89E6\u53D1\u9519\u8BEF\u6761\u4EF6]\n 2. [\u65AD\u8A00\u9519\u8BEF\u88AB\u6B63\u786E\u5904\u7406]\n Expected Result: [\u4F18\u96C5\u5931\u8D25\u5E76\u5E26\u6709\u6B63\u786E\u7684\u9519\u8BEF\u6D88\u606F/\u4EE3\u7801]\n Evidence: .sisyphus/evidence/task-{N}-{scenario-slug}-error.{ext}\n \\`\\`\\`\n\n > **\u5177\u4F53\u6027\u8981\u6C42 \u2014\u2014 \u6BCF\u4E2A\u573A\u666F\u5FC5\u987B\u4F7F\u7528\uFF1A**\n > - **\u9009\u62E9\u5668**\uFF1A\u5177\u4F53 CSS \u9009\u62E9\u5668\uFF08`.login-button`\uFF0C\u4E0D\u662F\"\u767B\u5F55\u6309\u94AE\"\uFF09\n > - **\u6570\u636E**\uFF1A\u5177\u4F53\u6D4B\u8BD5\u6570\u636E\uFF08`\"test@example.com\"`\uFF0C\u4E0D\u662F`\"[email]\"`\uFF09\n > - **\u65AD\u8A00**\uFF1A\u786E\u5207\u503C\uFF08`text contains \"Welcome back\"`\uFF0C\u4E0D\u662F\"\u9A8C\u8BC1\u5B83\u80FD\u5DE5\u4F5C\"\uFF09\n > - **\u65F6\u673A**\uFF1A\u76F8\u5173\u65F6\u7684\u7B49\u5F85\u6761\u4EF6\uFF08`timeout: 10s`\uFF09\n > - **\u8D1F\u9762**\uFF1A\u6BCF\u4E2A\u4EFB\u52A1\u81F3\u5C11\u4E00\u4E2A\u5931\u8D25/\u9519\u8BEF\u573A\u666F\n >\n > **\u53CD\u6A21\u5F0F\uFF08\u4F60\u7684\u573A\u666F\u5982\u679C\u50CF\u8FD9\u6837\u5219\u662F\u65E0\u6548\u7684\uFF09\uFF1A**\n > - \u274C \"\u9A8C\u8BC1\u5B83\u80FD\u6B63\u786E\u5DE5\u4F5C\"\u2014\u2014 \u600E\u4E48\u505A\uFF1F\"\u6B63\u786E\"\u662F\u4EC0\u4E48\u610F\u601D\uFF1F\n > - \u274C \"\u68C0\u67E5 API \u8FD4\u56DE\u6570\u636E\"\u2014\u2014 \u4EC0\u4E48\u6570\u636E\uFF1F\u4EC0\u4E48\u5B57\u6BB5\uFF1F\u4EC0\u4E48\u503C\uFF1F\n > - \u274C \"\u6D4B\u8BD5\u7EC4\u4EF6\u6E32\u67D3\"\u2014\u2014 \u5728\u54EA\u91CC\uFF1F\u4EC0\u4E48\u9009\u62E9\u5668\uFF1F\u4EC0\u4E48\u5185\u5BB9\uFF1F\n > - \u274C \u4EFB\u4F55\u6CA1\u6709\u8BC1\u636E\u8DEF\u5F84\u7684\u573A\u666F\n\n **\u8981\u6355\u83B7\u7684\u8BC1\u636E\uFF1A**\n - [ ] \u6BCF\u4E2A\u8BC1\u636E\u6587\u4EF6\u547D\u540D\u4E3A\uFF1Atask-{N}-{scenario-slug}.{ext}\n - [ ] UI \u622A\u56FE\u3001CLI \u7EC8\u7AEF\u8F93\u51FA\u3001API \u54CD\u5E94\u4F53\n\n **Commit**\uFF1A\u662F | \u5426\uFF08\u4E0E N \u7EC4\u5408\uFF09\n - \u6D88\u606F\uFF1A`type(scope): desc`\n - \u6587\u4EF6\uFF1A`path/to/file`\n - Pre-commit\uFF1A`test command`\n\n---\n\n## \u6700\u7EC8\u9A8C\u8BC1\u6CE2\uFF08\u5F3A\u5236 \u2014\u2014 \u6240\u6709\u5B9E\u73B0\u4EFB\u52A1\u4E4B\u540E\uFF09\n\n> 4 \u4E2A\u5BA1\u67E5 agent \u5E76\u884C\u8FD0\u884C\u3002\u6240\u6709\u5FC5\u987B\u6279\u51C6\u3002\u5411\u7528\u6237\u5448\u73B0\u7EFC\u5408\u7ED3\u679C\u5E76\u83B7\u5F97\u660E\u786E\"\u786E\u8BA4\"\u540E\u624D\u5B8C\u6210\u3002\n>\n> **\u9A8C\u8BC1\u540E\u4E0D\u8981\u81EA\u52A8\u7EE7\u7EED\u3002\u7B49\u5F85\u7528\u6237\u7684\u660E\u786E\u6279\u51C6\u540E\u624D\u6807\u8BB0\u5DE5\u4F5C\u5B8C\u6210\u3002**\n> **\u5728\u83B7\u5F97\u7528\u6237\u786E\u8BA4\u4E4B\u524D\uFF0C\u4E0D\u8981\u5C06 F1-F4 \u6807\u8BB0\u4E3A\u5DF2\u68C0\u67E5\u3002** \u62D2\u7EDD\u6216\u7528\u6237\u53CD\u9988 \u2192 \u4FEE\u590D \u2192 \u91CD\u65B0\u8FD0\u884C \u2192 \u518D\u6B21\u5448\u73B0 \u2192 \u7B49\u5F85\u786E\u8BA4\u3002\n\n- [ ] F1. **\u8BA1\u5212\u5408\u89C4\u5BA1\u67E5** \u2014\u2014 `oracle`\n \u4ECE\u5934\u5230\u5C3E\u9605\u8BFB\u8BA1\u5212\u3002\u5BF9\u4E8E\u6BCF\u4E2A\"\u5FC5\u987B\u6709\"\uFF1A\u9A8C\u8BC1\u5B9E\u73B0\u5B58\u5728\uFF08\u8BFB\u6587\u4EF6\u3001curl \u7AEF\u70B9\u3001\u8FD0\u884C\u547D\u4EE4\uFF09\u3002\u5BF9\u4E8E\u6BCF\u4E2A\"\u7981\u6B62\u6709\"\uFF1A\u641C\u7D22 codebase \u4E2D\u7684\u7981\u6B62\u6A21\u5F0F \u2014\u2014 \u5982\u53D1\u73B0\u5219\u62D2\u7EDD\u5E76\u7ED9\u51FA file:line\u3002\u68C0\u67E5 .sisyphus/evidence/ \u4E2D\u8BC1\u636E\u6587\u4EF6\u5B58\u5728\u3002\u5C06\u4EA4\u4ED8\u7269\u4E0E\u8BA1\u5212\u5BF9\u6BD4\u3002\n \u8F93\u51FA\uFF1A`Must Have [N/N] | Must NOT Have [N/N] | Tasks [N/N] | VERDICT: APPROVE/REJECT`\n\n- [ ] F2. **\u4EE3\u7801\u8D28\u91CF\u5BA1\u67E5** \u2014\u2014 `unspecified-high`\n \u8FD0\u884C `tsc --noEmit` + linter + `bun test`\u3002\u5BA1\u67E5\u6240\u6709\u53D8\u66F4\u6587\u4EF6\uFF1A`as any`/`@ts-ignore`\u3001\u7A7A catch\u3001prod \u4E2D\u7684 console.log\u3001\u6CE8\u91CA\u6389\u7684\u4EE3\u7801\u3001\u672A\u4F7F\u7528\u7684 import\u3002\u68C0\u67E5 AI slop\uFF1A\u8FC7\u5EA6\u6CE8\u91CA\u3001\u8FC7\u5EA6\u62BD\u8C61\u3001\u901A\u7528\u540D\u79F0\uFF08data/result/item/temp\uFF09\u3002\n \u8F93\u51FA\uFF1A`Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass/N fail] | Files [N clean/N issues] | VERDICT`\n\n- [ ] F3. **\u771F\u5B9E\u624B\u52A8 QA** \u2014\u2014 `unspecified-high`\uFF08\u5982 UI \u52A0\u4E0A `playwright` skill\uFF09\n \u4ECE\u5E72\u51C0\u72B6\u6001\u5F00\u59CB\u3002\u6267\u884C\u6BCF\u4E2A\u4EFB\u52A1\u7684\u6BCF\u4E2A QA \u573A\u666F \u2014\u2014 \u9075\u5FAA\u786E\u5207\u6B65\u9AA4\uFF0C\u6355\u83B7\u8BC1\u636E\u3002\u6D4B\u8BD5\u8DE8\u4EFB\u52A1\u96C6\u6210\uFF08\u529F\u80FD\u534F\u540C\u5DE5\u4F5C\uFF0C\u4E0D\u662F\u9694\u79BB\uFF09\u3002\u6D4B\u8BD5\u8FB9\u7F18\u60C5\u51B5\uFF1A\u7A7A\u72B6\u6001\u3001\u65E0\u6548\u8F93\u5165\u3001\u5FEB\u901F\u64CD\u4F5C\u3002\u4FDD\u5B58\u81F3 `.sisyphus/evidence/final-qa/`\u3002\n \u8F93\u51FA\uFF1A`Scenarios [N/N pass] | Integration [N/N] | Edge Cases [N tested] | VERDICT`\n\n- [ ] F4. **\u8303\u56F4\u4FDD\u771F\u5EA6\u68C0\u67E5** \u2014\u2014 `deep`\n \u5BF9\u4E8E\u6BCF\u4E2A\u4EFB\u52A1\uFF1A\u8BFB\"What to do\"\uFF0C\u8BFB\u5B9E\u9645 diff\uFF08git log/diff\uFF09\u3002\u9A8C\u8BC1 1:1 \u2014\u2014 \u89C4\u8303\u4E2D\u7684\u4E00\u5207\u90FD\u5DF2\u6784\u5EFA\uFF08\u65E0\u7F3A\u5931\uFF09\uFF0C\u89C4\u8303\u4E4B\u5916\u6CA1\u6709\u4EFB\u4F55\u6784\u5EFA\uFF08\u65E0\u8513\u5EF6\uFF09\u3002\u68C0\u67E5\"Must NOT do\"\u5408\u89C4\u6027\u3002\u68C0\u6D4B\u8DE8\u4EFB\u52A1\u6C61\u67D3\uFF1ATask N \u89E6\u53CA Task M \u7684\u6587\u4EF6\u3002\u6807\u8BB0\u672A\u8BB0\u5F55\u7684\u53D8\u66F4\u3002\n \u8F93\u51FA\uFF1A`Tasks [N/N compliant] | Contamination [CLEAN/N issues] | Unaccounted [CLEAN/N files] | VERDICT`\n\n---\n\n## \u63D0\u4EA4\u7B56\u7565\n\n- **1**\uFF1A`type(scope): desc` - file.ts, npm test\n\n---\n\n## \u6210\u529F\u6807\u51C6\n\n### \u9A8C\u8BC1\u547D\u4EE4\n```bash\ncommand # \u9884\u671F\uFF1A\u8F93\u51FA\n```\n\n### \u6700\u7EC8\u68C0\u67E5\u6E05\u5355\n- [ ] \u6240\u6709\"\u5FC5\u987B\u6709\"\u90FD\u5B58\u5728\n- [ ] \u6240\u6709\"\u7981\u6B62\u6709\"\u90FD\u4E0D\u5B58\u5728\n- [ ] \u6240\u6709\u6D4B\u8BD5\u901A\u8FC7\n```\n\n---\n";
@@ -1,16 +1,16 @@
1
1
  /**
2
- * Gemini 专用 Sisyphus prompt 覆盖 sections
2
+ * Gemini 专用叠加段落,用于 Sisyphus prompt。
3
3
  *
4
- * Gemini 模型天生过度乐观,倾向于:
5
- * - 用内部推理替代 tool calls
6
- * - 回避委托,偏好亲力亲为
7
- * - 声称完成但未经验证
8
- * - 将约束视为建议
9
- * - 跳过 intent 分类 gate(直接跳到行动)
10
- * - 混淆调查与实现("查一下 X" → 开始写代码)
4
+ * Gemini 模型天生具有强烈的乐观倾向,容易:
5
+ * - 跳过工具调用,转而进行内部推理
6
+ * - 回避委托,倾向于亲自动手
7
+ * - 声称已完成但未经核实
8
+ * - 将约束条件视为建议
9
+ * - 跳过意图分类关卡(直接跳到行动)
10
+ * - 将调查与实现混为一谈("调查 X" → 直接开始编码)
11
11
  *
12
- * 这些覆盖层在动态 Sisyphus prompt 的战略位置注入纠正性 sections,
13
- * 以对抗上述倾向。
12
+ * 这些叠加段落在动态 Sisyphus prompt 的关键位置注入校正性内容,
13
+ * 用以对抗上述倾向。
14
14
  */
15
15
  export declare function buildGeminiToolMandate(): string;
16
16
  export declare function buildGeminiToolGuide(): string;
@@ -1,24 +1,24 @@
1
1
  /**
2
- * GPT-5.4 原生 Sisyphus prompt 采用 8-block 架构重写。
2
+ * GPT-5.4 原生 Sisyphus prompt - 采用 8-block 架构重写。
3
3
  *
4
- * 设计原则(源自 OpenAI 的 GPT-5.4 prompt 指导):
5
- * - 使用 XML 标签 + 命名 sub-anchors 的紧凑块结构 prompts
6
- * - reasoning.effort 默认为 "none" 需要显式鼓励思考
7
- * - GPT-5.4 原生生成开场白 不要添加 preamble 指令
8
- * - GPT-5.4 指令遵循度高 减少重复,减少威胁式表达
4
+ * 设计原则(源自 OpenAI 的 GPT-5.4 提示工程指南):
5
+ * - 紧凑的、块结构的 prompt,使用 XML 标签 + 命名子锚点
6
+ * - reasoning.effort 默认为 "none" - 需要明确的思考激励
7
+ * - GPT-5.4 原生生成 preambles - 不要添加 preamble 指令
8
+ * - GPT-5.4 指令遵循性好 - 减少重复,少用威胁
9
9
  * - GPT-5.4 受益于:output contracts、verification loops、dependency checks、completeness contracts
10
- * - GPT-5.4 可能过于字面 添加 intent inference 层以实现细腻行为
11
- * - "使用通过 evals 的最小 prompt" 保持高密度
10
+ * - GPT-5.4 可能过于字面 - 添加意图推断层以处理微妙行为
11
+ * - "从最小的通过 evals prompt 开始" - 保持高密度
12
12
  *
13
- * 架构(8 blocks,约 9 个命名 sub-anchors):
14
- * 1. <identity> 角色、指令优先级、编排器倾向
15
- * 2. <constraints> Hard blocks + anti-patterns(前置以引起 GPT-5.4 关注)
16
- * 3. <intent> — Think-first + intent gate + autonomy(合并,domain_guess 路由)
17
- * 4. <explore> 代码库评估 + 研究 + tool 规则(保留命名 sub-anchors)
18
- * 5. <execution_loop> EXPLORE→PLAN→ROUTE→EXECUTE_OR_SUPERVISE→VERIFY→RETRY→DONE(prompt 核心)
19
- * 6. <delegation> Category+skills、6 段式 prompt、session 连续性、oracle
20
- * 7. <tasks> Task/todo 管理
21
- * 8. <style> 语气(prose)+ output contract + 进度更新
13
+ * 架构(8 个块,约 9 个命名子锚点):
14
+ * 1. <identity> - 角色、指令优先级、编排器偏向
15
+ * 2. <constraints> - 硬性阻止 + 反模式(早期放置以抓住 GPT-5.4 注意力)
16
+ * 3. <intent> - 先思考 + 意图门 + 自主性(合并,domain_guess 路由)
17
+ * 4. <explore> - Codebase 评估 + 研究 + 工具规则(保留命名子锚点)
18
+ * 5. <execution_loop> - EXPLORE→PLAN→ROUTE→EXECUTE_OR_SUPERVISE→VERIFY→RETRY→DONE(prompt 的核心)
19
+ * 6. <delegation> - Category+skills、6段式 prompt、会话连续性、oracle
20
+ * 7. <tasks> - Task/todo 管理
21
+ * 8. <style> - 语调(prose)+ output contract + 进度更新
22
22
  */
23
23
  import type { AvailableAgent, AvailableTool, AvailableSkill, AvailableCategory } from "../dynamic-agent-prompt-builder";
24
24
  import { categorizeTools } from "../dynamic-agent-prompt-builder";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Sisyphus agent multi-model orchestrator.
2
+ * Sisyphus agent - multi-model orchestrator.
3
3
  *
4
4
  * This directory contains model-specific prompt variants:
5
5
  * - default.ts: Base implementation for Claude and general models
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Gemini-optimized Sisyphus-Junior System Prompt
2
+ * Gemini 优化的 Sisyphus-Junior System Prompt
3
3
  *
4
- * Key differences from Claude/GPT variants:
5
- * - Aggressive tool-call enforcement (Gemini skips tools in favor of reasoning)
6
- * - Anti-optimism checkpoints (Gemini claims "done" prematurely)
7
- * - Repeated verification mandates (Gemini treats verification as optional)
8
- * - Stronger scope discipline (Gemini's creativity causes scope creep)
4
+ * Claude/GPT 变体的关键差异:
5
+ * - 强制工具调用(Gemini 倾向于推理而跳过工具)
6
+ * - 反乐观检查点(Gemini 过早声称"完成"
7
+ * - 重复验证要求(Gemini 将验证视为可选)
8
+ * - 更强的范围纪律(Gemini 的创造力导致范围蔓延)
9
9
  */
10
10
  export declare function buildGeminiSisyphusJuniorPrompt(useTaskSystem: boolean, promptAppend?: string): string;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * GPT-5.3-Codex Optimized Sisyphus-Junior System Prompt
2
+ * GPT-5.3-Codex 优化的 Sisyphus-Junior System Prompt
3
3
  *
4
- * Hephaestus-style prompt adapted for a focused executor:
5
- * - Same autonomy, reporting, parallelism, and tool usage patterns
6
- * - CAN spawn explore/librarian via call_omo_agent for research
4
+ * Hephaestus 风格的 prompt,专注文档执行者调整:
5
+ * - 相同的自主性、报告、并行性和工具使用模式
6
+ * - 可以通过 call_omo_agent 生成 explore/librarian 进行研究
7
7
  */
8
8
  export declare function buildGpt53CodexSisyphusJuniorPrompt(useTaskSystem: boolean, promptAppend?: string): string;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * GPT-5.4 Optimized Sisyphus-Junior System Prompt
2
+ * GPT-5.4 优化的 Sisyphus-Junior System Prompt
3
3
  *
4
- * Tuned for GPT-5.4 system prompt design principles:
5
- * - Expert coding agent framing with approach-first mentality
6
- * - Deterministic tool usage (always/never, not try/maybe)
7
- * - Prose-first output style
8
- * - Nuanced autonomy (focus unless directly conflicting)
9
- * - CAN spawn explore/librarian via call_omo_agent for research
4
+ * 按照 GPT-5.4 system prompt 设计原则调优:
5
+ * - 专家编码 agent 框架,方法优先心态
6
+ * - 确定性工具使用(始终/绝不,不是尝试/可能)
7
+ * - 散文优先输出风格
8
+ * - 细致入微的自主性(除非直接冲突否则专注)
9
+ * - 可以通过 call_omo_agent 生成 explore/librarian 进行研究
10
10
  */
11
11
  export declare function buildGpt54SisyphusJuniorPrompt(useTaskSystem: boolean, promptAppend?: string): string;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Generic GPT Sisyphus-Junior System Prompt
2
+ * 通用 GPT Sisyphus-Junior System Prompt
3
3
  *
4
- * Hephaestus-style prompt adapted for a focused executor:
5
- * - Same autonomy, reporting, parallelism, and tool usage patterns
6
- * - CAN spawn explore/librarian via call_omo_agent for research
7
- * - Used as fallback for GPT models without a model-specific prompt
4
+ * Hephaestus 风格的 prompt,专注文档执行者调整:
5
+ * - 相同的自主性、报告、并行性和工具使用模式
6
+ * - 可以通过 call_omo_agent 生成 explore/librarian 进行研究
7
+ * - 作为没有模型特定 prompt GPT 模型的备用
8
8
  */
9
9
  export declare function buildGptSisyphusJuniorPrompt(useTaskSystem: boolean, promptAppend?: string): string;
@@ -4,5 +4,5 @@ export declare const SISYPHUS_PROMPT_METADATA: AgentPromptMetadata;
4
4
  import type { AvailableAgent, AvailableSkill, AvailableCategory } from "./dynamic-agent-prompt-builder";
5
5
  export declare function createSisyphusAgent(model: string, availableAgents?: AvailableAgent[], availableToolNames?: string[], availableSkills?: AvailableSkill[], availableCategories?: AvailableCategory[], useTaskSystem?: boolean): AgentConfig;
6
6
  export declare namespace createSisyphusAgent {
7
- var mode: "all";
7
+ var mode: "primary";
8
8
  }
@@ -56,6 +56,7 @@ export declare function isGptModel(model: string): boolean;
56
56
  export declare function isGpt5_4Model(model: string): boolean;
57
57
  export declare function isGpt5_3CodexModel(model: string): boolean;
58
58
  export declare function isMiniMaxModel(model: string): boolean;
59
+ export declare function isGlmModel(model: string): boolean;
59
60
  export declare function isGeminiModel(model: string): boolean;
60
61
  export type BuiltinAgentName = "sisyphus" | "hephaestus" | "oracle" | "librarian" | "explore" | "multimodal-looker" | "metis" | "momus" | "atlas" | "sisyphus-junior";
61
62
  export type OverridableAgentName = "build" | BuiltinAgentName;
@@ -0,0 +1,6 @@
1
+ export interface BackupResult {
2
+ success: boolean;
3
+ backupPath?: string;
4
+ error?: string;
5
+ }
6
+ export declare function backupConfigFile(configPath: string): BackupResult;
@@ -0,0 +1,9 @@
1
+ export interface VersionCompatibility {
2
+ canUpgrade: boolean;
3
+ reason?: string;
4
+ isDowngrade: boolean;
5
+ isMajorBump: boolean;
6
+ requiresMigration: boolean;
7
+ }
8
+ export declare function checkVersionCompatibility(currentVersion: string | null, newVersion: string): VersionCompatibility;
9
+ export declare function extractVersionFromPluginEntry(entry: string): string | null;
@@ -9,3 +9,7 @@ export { isOpenCodeInstalled, getOpenCodeVersion } from "./config-manager/openco
9
9
  export { detectCurrentConfig } from "./config-manager/detect-current-config";
10
10
  export type { BunInstallResult } from "./config-manager/bun-install";
11
11
  export { runBunInstall, runBunInstallWithDetails } from "./config-manager/bun-install";
12
+ export type { VersionCompatibility } from "./config-manager/version-compatibility";
13
+ export { checkVersionCompatibility, extractVersionFromPluginEntry, } from "./config-manager/version-compatibility";
14
+ export type { BackupResult } from "./config-manager/backup-config";
15
+ export { backupConfigFile } from "./config-manager/backup-config";
@@ -1,3 +1,16 @@
1
1
  import type { CheckResult, SystemInfo } from "../types";
2
- export declare function gatherSystemInfo(): Promise<SystemInfo>;
3
- export declare function checkSystem(): Promise<CheckResult>;
2
+ import { findOpenCodeBinary, getOpenCodeVersion, compareVersions } from "./system-binary";
3
+ import { getPluginInfo } from "./system-plugin";
4
+ import { getLatestPluginVersion, getLoadedPluginVersion, getSuggestedInstallTag } from "./system-loaded-version";
5
+ interface SystemCheckDeps {
6
+ findOpenCodeBinary: typeof findOpenCodeBinary;
7
+ getOpenCodeVersion: typeof getOpenCodeVersion;
8
+ compareVersions: typeof compareVersions;
9
+ getPluginInfo: typeof getPluginInfo;
10
+ getLoadedPluginVersion: typeof getLoadedPluginVersion;
11
+ getLatestPluginVersion: typeof getLatestPluginVersion;
12
+ getSuggestedInstallTag: typeof getSuggestedInstallTag;
13
+ }
14
+ export declare function gatherSystemInfo(deps?: SystemCheckDeps): Promise<SystemInfo>;
15
+ export declare function checkSystem(deps?: SystemCheckDeps): Promise<CheckResult>;
16
+ export {};
@@ -24,6 +24,6 @@ export declare const EXIT_CODES: {
24
24
  readonly SUCCESS: 0;
25
25
  readonly FAILURE: 1;
26
26
  };
27
- export declare const MIN_OPENCODE_VERSION = "1.0.150";
27
+ export declare const MIN_OPENCODE_VERSION = "1.4.0";
28
28
  export declare const PACKAGE_NAME = "oh-my-opencode";
29
29
  export declare const OPENCODE_BINARIES: readonly ["opencode", "opencode-desktop"];
@@ -0,0 +1,8 @@
1
+ import type { SpawnOptions } from "../../shared/spawn-with-windows-hide";
2
+ export interface SpawnWithTimeoutResult {
3
+ stdout: string;
4
+ stderr: string;
5
+ exitCode: number;
6
+ timedOut: boolean;
7
+ }
8
+ export declare function spawnWithTimeout(command: string[], options: SpawnOptions, timeoutMs?: number): Promise<SpawnWithTimeoutResult>;