@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.
- package/README.ja.md +8 -4
- package/README.ko.md +8 -4
- package/README.md +20 -10
- package/README.ru.md +8 -4
- package/README.zh-cn.md +8 -4
- package/bin/oh-my-opencode.js +11 -0
- package/bin/platform.js +13 -13
- package/bin/platform.test.ts +15 -0
- package/dist/agents/atlas/agent.d.ts +1 -1
- package/dist/agents/atlas/default-prompt-sections.d.ts +6 -0
- package/dist/agents/atlas/default.d.ts +0 -9
- package/dist/agents/atlas/gemini-prompt-sections.d.ts +6 -0
- package/dist/agents/atlas/gpt-prompt-sections.d.ts +6 -0
- package/dist/agents/atlas/gpt.d.ts +0 -9
- package/dist/agents/atlas/prompt-section-builder.d.ts +2 -3
- package/dist/agents/atlas/shared-prompt.d.ts +9 -0
- package/dist/agents/dynamic-agent-category-skills-guide.d.ts +2 -0
- package/dist/agents/dynamic-agent-core-sections.d.ts +17 -0
- package/dist/agents/dynamic-agent-policy-sections.d.ts +6 -0
- package/dist/agents/dynamic-agent-prompt-builder.d.ts +5 -35
- package/dist/agents/dynamic-agent-prompt-types.d.ts +20 -0
- package/dist/agents/dynamic-agent-tool-categorization.d.ts +3 -0
- package/dist/agents/gpt-apply-patch-guard.d.ts +2 -0
- package/dist/agents/hephaestus/agent.d.ts +1 -1
- package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +10 -11
- package/dist/agents/hephaestus/gpt-5-4.d.ts +22 -1
- package/dist/agents/hephaestus/gpt.d.ts +1 -1
- package/dist/agents/metis.d.ts +6 -6
- package/dist/agents/momus.d.ts +8 -11
- package/dist/agents/prometheus/behavioral-summary.d.ts +3 -3
- package/dist/agents/prometheus/gemini.d.ts +7 -7
- package/dist/agents/prometheus/gpt.d.ts +6 -6
- package/dist/agents/prometheus/identity-constraints.d.ts +2 -2
- package/dist/agents/prometheus/plan-generation.d.ts +2 -2
- package/dist/agents/prometheus/plan-template.d.ts +4 -4
- package/dist/agents/sisyphus/gemini.d.ts +10 -10
- package/dist/agents/sisyphus/gpt-5-4.d.ts +17 -17
- package/dist/agents/sisyphus/index.d.ts +1 -1
- package/dist/agents/sisyphus-junior/gemini.d.ts +6 -6
- package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +4 -4
- package/dist/agents/sisyphus-junior/gpt-5-4.d.ts +7 -7
- package/dist/agents/sisyphus-junior/gpt.d.ts +5 -5
- package/dist/agents/sisyphus.d.ts +1 -1
- package/dist/agents/types.d.ts +1 -0
- package/dist/cli/config-manager/backup-config.d.ts +6 -0
- package/dist/cli/config-manager/version-compatibility.d.ts +9 -0
- package/dist/cli/config-manager.d.ts +4 -0
- package/dist/cli/doctor/checks/system.d.ts +15 -2
- package/dist/cli/doctor/constants.d.ts +1 -1
- package/dist/cli/doctor/spawn-with-timeout.d.ts +8 -0
- package/dist/cli/index.js +27570 -18945
- package/dist/cli/install-validators.d.ts +1 -0
- package/dist/cli/mcp-oauth/login.d.ts +6 -1
- package/dist/cli/minimum-opencode-version.d.ts +1 -0
- package/dist/cli/model-fallback-types.d.ts +4 -0
- package/dist/cli/provider-model-id-transform.d.ts +1 -1
- package/dist/cli/run/continuation-state.d.ts +2 -1
- package/dist/cli/run/event-state.d.ts +0 -2
- package/dist/cli/run/types.d.ts +0 -1
- package/dist/cli/types.d.ts +4 -0
- package/dist/config/schema/agent-definitions.d.ts +3 -0
- package/dist/config/schema/agent-names.d.ts +2 -0
- package/dist/config/schema/agent-overrides.d.ts +330 -15
- package/dist/config/schema/background-task.d.ts +2 -1
- package/dist/config/schema/categories.d.ts +44 -2
- package/dist/config/schema/commands.d.ts +1 -0
- package/dist/config/schema/experimental.d.ts +1 -0
- package/dist/config/schema/fallback-models.d.ts +67 -1
- package/dist/config/schema/hooks.d.ts +3 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +345 -17
- package/dist/config/schema/sisyphus-agent.d.ts +1 -0
- package/dist/config/schema/tmux.d.ts +11 -0
- package/dist/create-hooks.d.ts +8 -0
- package/dist/create-managers.d.ts +16 -0
- package/dist/create-runtime-tmux-config.d.ts +10 -0
- package/dist/create-tools.d.ts +3 -2
- package/dist/features/background-agent/abort-with-timeout.d.ts +2 -0
- package/dist/features/background-agent/background-task-notification-template.d.ts +10 -4
- package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +5 -2
- package/dist/features/background-agent/constants.d.ts +1 -0
- package/dist/features/background-agent/fallback-retry-handler.d.ts +1 -1
- package/dist/features/background-agent/index.d.ts +2 -0
- package/dist/features/background-agent/manager.d.ts +10 -0
- package/dist/features/background-agent/process-cleanup.d.ts +1 -1
- package/dist/features/background-agent/session-existence.d.ts +3 -0
- package/dist/features/background-agent/spawner.d.ts +3 -0
- package/dist/features/background-agent/subagent-spawn-limits.d.ts +1 -8
- package/dist/features/background-agent/task-poller.d.ts +2 -0
- package/dist/features/background-agent/types.d.ts +2 -0
- package/dist/features/background-agent/wait-for-task-session.d.ts +17 -0
- package/dist/features/boulder-state/storage.d.ts +8 -1
- package/dist/features/boulder-state/types.d.ts +1 -0
- package/dist/features/builtin-commands/commands.d.ts +5 -1
- package/dist/features/builtin-commands/templates/handoff.d.ts +1 -1
- package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
- package/dist/features/builtin-commands/templates/ralph-loop.d.ts +3 -3
- package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/builtin-commands/types.d.ts +1 -1
- package/dist/features/builtin-skills/skills/ai-slop-remover.d.ts +2 -0
- package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -0
- package/dist/features/builtin-skills/skills/index.d.ts +2 -0
- package/dist/features/builtin-skills/skills/playwright-cli.d.ts +5 -5
- package/dist/features/builtin-skills/skills/review-work.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +3 -0
- package/dist/features/claude-code-agent-loader/index.d.ts +3 -0
- package/dist/features/claude-code-agent-loader/json-agent-loader.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/loader.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/opencode-config-agents-reader.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/types.d.ts +9 -1
- package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
- package/dist/features/claude-code-mcp-loader/env-expander.d.ts +5 -2
- package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
- package/dist/features/claude-code-mcp-loader/scope-filter.d.ts +2 -0
- package/dist/features/claude-code-mcp-loader/types.d.ts +8 -4
- package/dist/features/claude-code-plugin-loader/discovery.d.ts +2 -1
- package/dist/features/claude-code-plugin-loader/loader.d.ts +16 -0
- package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +2 -0
- package/dist/features/claude-code-plugin-loader/types.d.ts +21 -0
- package/dist/features/claude-code-session-state/state.d.ts +3 -0
- package/dist/features/context-injector/collector.d.ts +1 -0
- package/dist/features/mcp-oauth/provider.d.ts +1 -0
- package/dist/features/mcp-oauth/refresh-mutex.d.ts +26 -0
- package/dist/features/opencode-skill-loader/async-loader.d.ts +2 -2
- package/dist/features/skill-mcp-manager/connection.d.ts +3 -4
- package/dist/features/skill-mcp-manager/error-redaction.d.ts +10 -0
- package/dist/features/skill-mcp-manager/http-client.d.ts +17 -3
- package/dist/features/skill-mcp-manager/manager.d.ts +5 -3
- package/dist/features/skill-mcp-manager/oauth-handler.d.ts +12 -4
- package/dist/features/skill-mcp-manager/stdio-client.d.ts +16 -3
- package/dist/features/skill-mcp-manager/types.d.ts +25 -6
- package/dist/features/team-mode/index.d.ts +2 -0
- package/dist/features/team-mode/team-worktree/cleanup.d.ts +3 -0
- package/dist/features/team-mode/team-worktree/index.d.ts +2 -0
- package/dist/features/team-mode/team-worktree/manager.d.ts +15 -0
- package/dist/features/team-mode/types.d.ts +210 -0
- package/dist/features/tmux-subagent/manager.d.ts +16 -13
- package/dist/features/tmux-subagent/polling-manager.d.ts +5 -0
- package/dist/features/tmux-subagent/types.d.ts +2 -0
- package/dist/features/tool-metadata-store/index.d.ts +7 -0
- package/dist/features/tool-metadata-store/publish-tool-metadata.d.ts +9 -0
- package/dist/features/tool-metadata-store/recover-tool-metadata.d.ts +3 -0
- package/dist/features/tool-metadata-store/resolve-tool-call-id.d.ts +6 -0
- package/dist/features/tool-metadata-store/task-metadata-contract.d.ts +10 -0
- package/dist/hooks/agent-usage-reminder/constants.d.ts +1 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +4 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.d.ts +10 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.d.ts +29 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/session-timeout-map.d.ts +2 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +2 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +1 -0
- package/dist/hooks/atlas/background-launch-session-tracking.d.ts +11 -0
- package/dist/hooks/atlas/boulder-continuation-injector.d.ts +2 -1
- package/dist/hooks/atlas/session-last-agent.d.ts +10 -1
- package/dist/hooks/atlas/subagent-session-id.d.ts +1 -0
- package/dist/hooks/atlas/system-reminder-templates.d.ts +2 -2
- package/dist/hooks/atlas/task-context.d.ts +7 -0
- package/dist/hooks/atlas/types.d.ts +2 -0
- package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
- package/dist/hooks/auto-slash-command/hook.d.ts +1 -0
- package/dist/hooks/auto-update-checker/checker/sync-package-json.d.ts +1 -1
- package/dist/hooks/auto-update-checker/constants.d.ts +19 -3
- package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +29 -1
- package/dist/hooks/auto-update-checker/hook.d.ts +22 -1
- package/dist/hooks/bash-file-read-guard.d.ts +2 -0
- package/dist/hooks/claude-code-hooks/claude-code-hooks-hook.d.ts +1 -0
- package/dist/hooks/claude-code-hooks/config-loader.d.ts +1 -0
- package/dist/hooks/claude-code-hooks/config.d.ts +1 -0
- package/dist/hooks/claude-code-hooks/handlers/session-event-handler.d.ts +3 -1
- package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
- package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +2 -0
- package/dist/hooks/claude-code-hooks/transcript.d.ts +1 -3
- package/dist/hooks/comment-checker/cli-runner.d.ts +4 -1
- package/dist/hooks/comment-checker/hook.d.ts +1 -0
- package/dist/hooks/comment-checker/pending-calls.d.ts +1 -0
- package/dist/hooks/directory-agents-injector/hook.d.ts +7 -7
- package/dist/hooks/directory-readme-injector/hook.d.ts +7 -7
- package/dist/hooks/edit-error-recovery/hook.d.ts +1 -1
- package/dist/hooks/index.d.ts +4 -1
- package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
- package/dist/hooks/keyword-detector/hook.d.ts +2 -1
- package/dist/hooks/keyword-detector/ultrawork/default.d.ts +3 -4
- package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +11 -12
- package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +4 -5
- package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -2
- package/dist/hooks/legacy-plugin-toast/auto-migrate-runner.d.ts +2 -0
- package/dist/hooks/legacy-plugin-toast/auto-migrate.d.ts +7 -0
- package/dist/hooks/legacy-plugin-toast/hook.d.ts +18 -0
- package/dist/hooks/legacy-plugin-toast/index.d.ts +1 -0
- package/dist/hooks/legacy-plugin-toast/plugin-entry-migrator.d.ts +1 -0
- package/dist/hooks/model-fallback/chat-message-fallback-handler.d.ts +23 -0
- package/dist/hooks/model-fallback/controller-accessor.d.ts +8 -0
- package/dist/hooks/model-fallback/fallback-state-controller.d.ts +26 -0
- package/dist/hooks/model-fallback/hook.d.ts +21 -16
- package/dist/hooks/model-fallback/index.d.ts +2 -0
- package/dist/hooks/model-fallback/next-fallback.d.ts +14 -0
- package/dist/hooks/preemptive-compaction-trigger.d.ts +13 -0
- package/dist/hooks/preemptive-compaction-types.d.ts +53 -0
- package/dist/hooks/preemptive-compaction.d.ts +3 -15
- package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +11 -0
- package/dist/hooks/ralph-loop/constants.d.ts +1 -0
- package/dist/hooks/ralph-loop/oracle-verification-detector.d.ts +8 -0
- package/dist/hooks/read-image-resizer/image-resizer.d.ts +3 -1
- package/dist/hooks/read-image-resizer/png-fallback-resizer.d.ts +2 -0
- package/dist/hooks/rules-injector/constants.d.ts +1 -0
- package/dist/hooks/rules-injector/finder.d.ts +1 -1
- package/dist/hooks/rules-injector/hook.d.ts +2 -0
- package/dist/hooks/rules-injector/injector.d.ts +14 -0
- package/dist/hooks/rules-injector/rule-file-finder.d.ts +9 -1
- package/dist/hooks/runtime-fallback/auto-retry-signal.d.ts +4 -0
- package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -5
- package/dist/hooks/runtime-fallback/fallback-models.d.ts +1 -1
- package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +5 -1
- package/dist/hooks/session-notification-event-properties.d.ts +5 -0
- package/dist/hooks/session-recovery/types.d.ts +2 -0
- package/dist/hooks/start-work/context-info-builder.d.ts +12 -0
- package/dist/hooks/start-work/start-work-hook.d.ts +6 -0
- package/dist/hooks/start-work/worktree-block.d.ts +1 -0
- package/dist/hooks/todo-continuation-enforcer/pending-question-detection.d.ts +1 -1
- package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +2 -2
- package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +4 -3
- package/dist/hooks/todo-continuation-enforcer/token-limit-detection.d.ts +4 -0
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +14 -0
- package/dist/hooks/todo-description-override/description.d.ts +1 -1
- package/dist/hooks/tool-pair-validator/hook.d.ts +28 -0
- package/dist/hooks/tool-pair-validator/index.d.ts +1 -0
- package/dist/hooks/unstable-agent-babysitter/task-message-analyzer.d.ts +1 -0
- package/dist/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.d.ts +2 -0
- package/dist/hooks/write-existing-file-guard/hook.d.ts +12 -0
- package/dist/hooks/write-existing-file-guard/session-read-permissions.d.ts +3 -0
- package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +15 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +83174 -93787
- package/dist/mcp/websearch.d.ts +2 -2
- package/dist/oh-my-opencode.schema.json +1059 -8
- package/dist/openclaw/config.d.ts +1 -1
- package/dist/openclaw/dispatcher.d.ts +9 -13
- package/dist/openclaw/gateway-url-validation.d.ts +1 -0
- package/dist/openclaw/reply-listener-discord.d.ts +4 -0
- package/dist/openclaw/reply-listener-injection.d.ts +10 -0
- package/dist/openclaw/reply-listener-log.d.ts +2 -0
- package/dist/openclaw/reply-listener-paths.d.ts +7 -0
- package/dist/openclaw/reply-listener-process.d.ts +4 -0
- package/dist/openclaw/reply-listener-spawn.d.ts +5 -0
- package/dist/openclaw/reply-listener-startup.d.ts +12 -0
- package/dist/openclaw/reply-listener-state.d.ts +29 -0
- package/dist/openclaw/reply-listener-telegram.d.ts +4 -0
- package/dist/openclaw/reply-listener.d.ts +5 -18
- package/dist/openclaw/runtime-dispatch.d.ts +17 -0
- package/dist/openclaw/types.d.ts +4 -0
- package/dist/plugin/chat-params.d.ts +1 -0
- package/dist/plugin/command-execute-before.d.ts +19 -0
- package/dist/plugin/hooks/create-core-hooks.d.ts +5 -0
- package/dist/plugin/hooks/create-session-hooks.d.ts +4 -1
- package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +2 -1
- package/dist/plugin/hooks/create-transform-hooks.d.ts +4 -1
- package/dist/plugin/tool-registry.d.ts +26 -1
- package/dist/plugin/types.d.ts +1 -0
- package/dist/plugin-handlers/agent-priority-order.d.ts +11 -0
- package/dist/shared/agent-display-names.d.ts +23 -2
- package/dist/shared/agent-tool-restrictions.d.ts +0 -5
- package/dist/shared/archive-entry-validator.d.ts +6 -0
- package/dist/shared/background-output-consumption.d.ts +5 -0
- package/dist/shared/compaction-marker.d.ts +13 -0
- package/dist/shared/connected-providers-cache.d.ts +2 -1
- package/dist/shared/contains-path.d.ts +2 -0
- package/dist/shared/external-plugin-detector.d.ts +14 -0
- package/dist/shared/index.d.ts +9 -0
- package/dist/shared/internal-initiator-marker.d.ts +1 -0
- package/dist/shared/is-abort-error.d.ts +1 -0
- package/dist/shared/json-file-cache-store.d.ts +16 -0
- package/dist/shared/jsonc-parser.d.ts +1 -0
- package/dist/shared/legacy-plugin-warning.d.ts +7 -0
- package/dist/shared/load-opencode-plugins.d.ts +1 -0
- package/dist/shared/log-legacy-plugin-startup-warning.d.ts +10 -0
- package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
- package/dist/shared/migrate-legacy-plugin-entry.d.ts +1 -0
- package/dist/shared/migration/migrations-sidecar.d.ts +41 -0
- package/dist/shared/model-capabilities/bundled-snapshot.d.ts +2 -0
- package/dist/shared/model-capabilities/get-model-capabilities.d.ts +2 -0
- package/dist/shared/model-capabilities/index.d.ts +3 -0
- package/dist/shared/model-capabilities/runtime-model-readers.d.ts +11 -0
- package/dist/shared/{model-capabilities.d.ts → model-capabilities/types.d.ts} +35 -32
- package/dist/shared/model-suggestion-retry.d.ts +0 -9
- package/dist/shared/opencode-provider-auth.d.ts +3 -0
- package/dist/shared/parse-tools-config.d.ts +6 -0
- package/dist/shared/permission-compat.d.ts +1 -1
- package/dist/shared/plugin-entry-migrator.d.ts +3 -0
- package/dist/shared/plugin-identity.d.ts +6 -3
- package/dist/shared/posthog-activity-state.d.ts +8 -0
- package/dist/shared/posthog.d.ts +14 -0
- package/dist/shared/resolve-agent-definition-paths.d.ts +1 -0
- package/dist/shared/ripgrep-cli.d.ts +8 -0
- package/dist/shared/session-category-registry.d.ts +0 -24
- package/dist/shared/session-cursor.d.ts +6 -0
- package/dist/shared/session-prompt-params-state.d.ts +1 -0
- package/dist/shared/shell-env.d.ts +6 -2
- package/dist/shared/skill-path-resolver.d.ts +0 -8
- package/dist/shared/task-system-enabled.d.ts +6 -0
- package/dist/shared/tmux/tmux-utils/server-health.d.ts +1 -0
- package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +3 -0
- package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +3 -0
- package/dist/shared/tmux/tmux-utils.d.ts +3 -1
- package/dist/shared/write-file-atomically.d.ts +1 -0
- package/dist/shared/zip-entry-listing/powershell-zip-entry-listing.d.ts +4 -0
- package/dist/shared/zip-entry-listing/python-zip-entry-listing.d.ts +3 -0
- package/dist/shared/zip-entry-listing/read-zip-symlink-target.d.ts +1 -0
- package/dist/shared/zip-entry-listing/tar-zip-entry-listing.d.ts +3 -0
- package/dist/shared/zip-entry-listing/zipinfo-zip-entry-listing.d.ts +4 -0
- package/dist/shared/zip-entry-listing.d.ts +4 -0
- package/dist/testing/module-mock-lifecycle.d.ts +21 -0
- package/dist/tools/background-task/constants.d.ts +3 -3
- package/dist/tools/call-omo-agent/agent-resolver.d.ts +17 -0
- package/dist/tools/call-omo-agent/background-executor.d.ts +2 -1
- package/dist/tools/call-omo-agent/constants.d.ts +1 -1
- package/dist/tools/call-omo-agent/sync-executor.d.ts +4 -4
- package/dist/tools/call-omo-agent/tools.d.ts +2 -1
- package/dist/tools/delegate-task/anthropic-categories.d.ts +2 -0
- package/dist/tools/delegate-task/builtin-categories.d.ts +4 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +7 -0
- package/dist/tools/delegate-task/constants.d.ts +3 -14
- package/dist/tools/delegate-task/delegated-model-config.d.ts +3 -0
- package/dist/tools/delegate-task/executor-types.d.ts +4 -1
- package/dist/tools/delegate-task/fallback-entry-resolution.d.ts +12 -0
- package/dist/tools/delegate-task/fallback-entry-settings.d.ts +7 -0
- package/dist/tools/delegate-task/google-categories.d.ts +2 -0
- package/dist/tools/delegate-task/kimi-categories.d.ts +2 -0
- package/dist/tools/delegate-task/openai-categories.d.ts +2 -0
- package/dist/tools/delegate-task/prompt-builder.d.ts +1 -1
- package/dist/tools/delegate-task/resolve-metadata-model.d.ts +8 -0
- package/dist/tools/delegate-task/subagent-discovery.d.ts +15 -0
- package/dist/tools/delegate-task/sync-continuation.d.ts +2 -2
- package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -0
- package/dist/tools/delegate-task/sync-task-fallback.d.ts +12 -0
- package/dist/tools/delegate-task/task-id.d.ts +2 -0
- package/dist/tools/delegate-task/tool-argument-preparation.d.ts +2 -0
- package/dist/tools/delegate-task/tool-description.d.ts +9 -0
- package/dist/tools/delegate-task/types.d.ts +5 -2
- package/dist/tools/glob/constants.d.ts +1 -1
- package/dist/tools/grep/cli.d.ts +3 -2
- package/dist/tools/grep/constants.d.ts +0 -9
- package/dist/tools/hashline-edit/tool-description.d.ts +1 -1
- package/dist/tools/look-at/constants.d.ts +1 -1
- package/dist/tools/look-at/look-at-input-preparer.d.ts +22 -0
- package/dist/tools/look-at/look-at-prompt.d.ts +2 -0
- package/dist/tools/look-at/look-at-session-runner.d.ts +12 -0
- package/dist/tools/lsp/infer-extension.d.ts +1 -0
- package/dist/tools/session-manager/file-storage.d.ts +8 -0
- package/dist/tools/session-manager/sdk-storage.d.ts +8 -0
- package/dist/tools/session-manager/sdk-unavailable.d.ts +1 -0
- package/dist/tools/session-manager/storage.d.ts +1 -1
- package/dist/tools/session-manager/tools.d.ts +19 -1
- package/dist/tools/skill/constants.d.ts +2 -2
- package/dist/tools/skill/description-formatter.d.ts +3 -0
- package/dist/tools/skill/mcp-capability-formatter.d.ts +3 -0
- package/dist/tools/skill/native-skills.d.ts +12 -0
- package/dist/tools/skill/scope-priority.d.ts +4 -0
- package/dist/tools/skill/skill-body.d.ts +2 -0
- package/dist/tools/skill/skill-matcher.d.ts +5 -0
- package/dist/tools/skill/types.d.ts +30 -2
- package/dist/tools/skill-mcp/parse-skill-mcp-arguments.d.ts +1 -0
- package/dist/tools/skill-mcp/tools.d.ts +1 -1
- package/package.json +26 -25
- package/postinstall.mjs +75 -1
- package/dist/hooks/openclaw.d.ts +0 -11
- package/dist/plugin-dispose.d.ts +0 -10
- /package/dist/{tools/delegate-task → shared}/model-string-parser.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Prometheus
|
|
2
|
+
* Prometheus 计划模板
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
2
|
+
* Gemini 专用叠加段落,用于 Sisyphus prompt。
|
|
3
3
|
*
|
|
4
|
-
* Gemini
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
4
|
+
* Gemini 模型天生具有强烈的乐观倾向,容易:
|
|
5
|
+
* - 跳过工具调用,转而进行内部推理
|
|
6
|
+
* - 回避委托,倾向于亲自动手
|
|
7
|
+
* - 声称已完成但未经核实
|
|
8
|
+
* - 将约束条件视为建议
|
|
9
|
+
* - 跳过意图分类关卡(直接跳到行动)
|
|
10
|
+
* - 将调查与实现混为一谈("调查 X" → 直接开始编码)
|
|
11
11
|
*
|
|
12
|
-
*
|
|
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
|
|
2
|
+
* GPT-5.4 原生 Sisyphus prompt - 采用 8-block 架构重写。
|
|
3
3
|
*
|
|
4
|
-
* 设计原则(源自 OpenAI 的 GPT-5.4
|
|
5
|
-
* -
|
|
6
|
-
* - reasoning.effort 默认为 "none"
|
|
7
|
-
* - GPT-5.4
|
|
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 可能过于字面
|
|
11
|
-
* - "
|
|
10
|
+
* - GPT-5.4 可能过于字面 - 添加意图推断层以处理微妙行为
|
|
11
|
+
* - "从最小的通过 evals 的 prompt 开始" - 保持高密度
|
|
12
12
|
*
|
|
13
|
-
* 架构(8
|
|
14
|
-
* 1. <identity>
|
|
15
|
-
* 2. <constraints>
|
|
16
|
-
* 3. <intent>
|
|
17
|
-
* 4. <explore>
|
|
18
|
-
* 5. <execution_loop>
|
|
19
|
-
* 6. <delegation>
|
|
20
|
-
* 7. <tasks>
|
|
21
|
-
* 8. <style>
|
|
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,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Gemini
|
|
2
|
+
* Gemini 优化的 Sisyphus-Junior System Prompt
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
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
|
|
2
|
+
* GPT-5.3-Codex 优化的 Sisyphus-Junior System Prompt
|
|
3
3
|
*
|
|
4
|
-
* Hephaestus
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
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
|
|
2
|
+
* GPT-5.4 优化的 Sisyphus-Junior System Prompt
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
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
|
-
*
|
|
2
|
+
* 通用 GPT Sisyphus-Junior System Prompt
|
|
3
3
|
*
|
|
4
|
-
* Hephaestus
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
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: "
|
|
7
|
+
var mode: "primary";
|
|
8
8
|
}
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -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,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
|
-
|
|
3
|
-
|
|
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
|
|
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>;
|