oh-my-opencode 4.7.4 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/command/get-unpublished-changes.md +35 -6
- package/.agents/command/omomomo.md +1 -1
- package/.agents/command/publish.md +13 -0
- package/.agents/command/security-research.md +0 -1
- package/.agents/skills/get-unpublished-changes/SKILL.md +21 -5
- package/.agents/skills/omomomo/SKILL.md +1 -2
- package/.agents/skills/opencode-qa/scripts/export-roundtrip.sh +57 -19
- package/.agents/skills/opencode-qa/scripts/lib/common.sh +19 -7
- package/.agents/skills/opencode-qa/scripts/sse-hook-probe.sh +3 -0
- package/.agents/skills/opencode-qa/scripts/tui-smoke.sh +1 -1
- package/.agents/skills/pre-publish-review/SKILL.md +24 -4
- package/.agents/skills/publish/SKILL.md +13 -0
- package/.agents/skills/remove-deadcode/SKILL.md +0 -1
- package/.agents/skills/security-research/SKILL.md +0 -1
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +1 -1
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +2 -2
- package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +1 -1
- package/.opencode/command/get-unpublished-changes.md +35 -6
- package/.opencode/command/omomomo.md +1 -1
- package/.opencode/command/publish.md +13 -0
- package/.opencode/command/security-research.md +0 -1
- package/.opencode/skills/pre-publish-review/SKILL.md +24 -4
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +1 -1
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +2 -2
- package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +1 -1
- package/README.ja.md +7 -7
- package/README.ko.md +9 -7
- package/README.md +14 -8
- package/README.ru.md +5 -5
- package/README.zh-cn.md +7 -7
- package/bin/oh-my-opencode.js +24 -1
- package/bin/oh-my-opencode.test.ts +79 -20
- package/dist/agents/hephaestus/agent.d.ts +1 -1
- package/dist/agents/kimi-tool-loop-guard.d.ts +1 -0
- package/dist/agents/momus.d.ts +1 -1
- package/dist/agents/sisyphus-agent-config.d.ts +4 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +6 -0
- package/dist/agents/sisyphus-dynamic-prompt-builder.d.ts +2 -0
- package/dist/agents/sisyphus-dynamic-prompt-execution.d.ts +2 -0
- package/dist/agents/sisyphus-dynamic-prompt-exploration.d.ts +2 -0
- package/dist/agents/sisyphus-dynamic-prompt-role.d.ts +2 -0
- package/dist/agents/sisyphus-dynamic-prompt-sections.d.ts +18 -0
- package/dist/agents/sisyphus-dynamic-prompt-style.d.ts +2 -0
- package/dist/agents/sisyphus-dynamic-prompt.d.ts +3 -0
- package/dist/agents/sisyphus-gemini-fallback-overrides.d.ts +1 -0
- package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
- package/dist/agents/sisyphus-junior/index.d.ts +0 -1
- package/dist/agents/sisyphus.d.ts +1 -6
- package/dist/agents/types.d.ts +14 -3
- package/dist/cli/cli-program.d.ts +3 -0
- package/dist/cli/doctor/checks/codex.d.ts +11 -0
- package/dist/cli/doctor/checks/dependencies.d.ts +1 -0
- package/dist/cli/doctor/checks/index.d.ts +3 -0
- package/dist/cli/doctor/checks/system.d.ts +4 -0
- package/dist/cli/doctor/constants.d.ts +1 -0
- package/dist/cli/doctor/doctor-target.d.ts +2 -0
- package/dist/cli/doctor/index.d.ts +1 -0
- package/dist/cli/doctor/types.d.ts +26 -0
- package/dist/cli/index.js +4492 -2265
- package/dist/cli/install-codex/codex-cache-bins.d.ts +21 -0
- package/dist/cli/install-codex/codex-cache-fs.d.ts +3 -0
- package/dist/cli/install-codex/codex-cache-install.d.ts +13 -0
- package/dist/cli/install-codex/codex-cache-mcp-manifest.d.ts +2 -0
- package/dist/cli/install-codex/codex-cache-prune.d.ts +10 -0
- package/dist/cli/install-codex/codex-cache.d.ts +4 -32
- package/dist/cli/install-codex/codex-cached-marketplace-manifest.d.ts +6 -0
- package/dist/cli/install-codex/codex-config-agents.d.ts +3 -0
- package/dist/cli/install-codex/codex-config-features.d.ts +1 -0
- package/dist/cli/install-codex/codex-config-marketplaces.d.ts +6 -0
- package/dist/cli/install-codex/codex-config-plugins.d.ts +8 -0
- package/dist/cli/install-codex/codex-config-toml-sections.d.ts +9 -0
- package/dist/cli/install-codex/codex-process.d.ts +5 -0
- package/dist/cli/install-codex/index.d.ts +1 -1
- package/dist/cli/install-codex/lazycodex-version-stamp.d.ts +19 -0
- package/dist/cli/install-codex/link-cached-plugin-agents.d.ts +4 -0
- package/dist/cli/install-validators.d.ts +3 -0
- package/dist/cli/model-fallback-types.d.ts +3 -0
- package/dist/cli/run/event-handlers.d.ts +4 -11
- package/dist/cli/run/event-message-handlers.d.ts +5 -0
- package/dist/cli/run/event-session-handlers.d.ts +5 -0
- package/dist/cli/run/event-session-ids.d.ts +24 -0
- package/dist/cli/run/event-think-block.d.ts +3 -0
- package/dist/cli/run/event-toast-handlers.d.ts +3 -0
- package/dist/cli/run/event-tool-handlers.d.ts +4 -0
- package/dist/cli/run/event-tool-output.d.ts +2 -0
- package/dist/cli/run/on-complete-hook.d.ts +8 -1
- package/dist/cli/run/opencode-binary-resolver.d.ts +2 -1
- package/dist/cli/runtime-commands.d.ts +2 -0
- package/dist/cli/sparkshell-appserver-websocket.d.ts +4 -0
- package/dist/cli/sparkshell-appserver.d.ts +16 -0
- package/dist/cli/sparkshell-parse.d.ts +21 -0
- package/dist/cli/sparkshell.d.ts +26 -0
- package/dist/cli/types.d.ts +9 -0
- package/dist/config/schema/claude-code.d.ts +1 -0
- package/dist/config/schema/hooks.d.ts +1 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
- package/dist/create-hooks.d.ts +1 -0
- package/dist/features/background-agent/concurrency.d.ts +6 -1
- package/dist/features/background-agent/constants.d.ts +1 -0
- package/dist/features/background-agent/empty-assistant-turn.d.ts +7 -0
- package/dist/features/background-agent/manager.d.ts +12 -0
- package/dist/features/background-agent/message-updated-parent-wake-output.d.ts +1 -0
- package/dist/features/background-agent/parent-wake-dedupe.d.ts +2 -0
- package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +21 -0
- package/dist/features/background-agent/parent-wake-flush-runner.d.ts +24 -0
- package/dist/features/background-agent/parent-wake-history-state.d.ts +5 -0
- package/dist/features/background-agent/parent-wake-notifier-types.d.ts +50 -0
- package/dist/features/background-agent/parent-wake-notifier.d.ts +8 -50
- package/dist/features/background-agent/parent-wake-pending-queue.d.ts +22 -0
- package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +19 -0
- package/dist/features/background-agent/parent-wake-session-history.d.ts +73 -0
- package/dist/features/background-agent/parent-wake-session-inspector.d.ts +35 -0
- package/dist/features/background-agent/parent-wake-timer-handle.d.ts +5 -0
- package/dist/features/background-agent/parent-wake-window-recovery.d.ts +13 -0
- package/dist/features/background-agent/process-cleanup.d.ts +2 -0
- package/dist/features/background-agent/process-cleanup.test-helpers.d.ts +3 -0
- package/dist/features/background-agent/session-stream-activity.d.ts +6 -0
- package/dist/features/background-agent/spawner/fallback-agent.d.ts +5 -0
- package/dist/features/background-agent/spawner/task-prompt-body.d.ts +34 -0
- package/dist/features/background-agent/spawner/task-record.d.ts +2 -0
- package/dist/features/background-agent/spawner.d.ts +2 -5
- package/dist/features/builtin-commands/templates/refactor-sections/codemap-and-tests.d.ts +1 -0
- package/dist/features/builtin-commands/templates/refactor-sections/intro-and-analysis.d.ts +1 -0
- package/dist/features/builtin-commands/templates/refactor-sections/plan-and-execution.d.ts +1 -0
- package/dist/features/builtin-commands/templates/refactor-sections/team-mode-addendum.d.ts +1 -0
- package/dist/features/builtin-commands/templates/refactor-sections/verification-and-tooling.d.ts +1 -0
- package/dist/features/builtin-commands/templates/refactor.d.ts +2 -2
- package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +2 -0
- package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +2 -0
- package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +1 -0
- package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -1
- package/dist/features/builtin-skills/skills/index.d.ts +1 -0
- package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +2 -0
- package/dist/features/builtin-skills/skills/playwright.d.ts +2 -3
- package/dist/features/builtin-skills/skills/visual-qa.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +2 -2
- package/dist/features/claude-code-agent-loader/claude-model-mapper.d.ts +1 -1
- package/dist/features/claude-code-agent-loader/loader.d.ts +2 -2
- package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +1 -1
- package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +2 -0
- package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +3 -0
- package/dist/features/claude-code-plugin-loader/discovery.d.ts +3 -4
- package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +1 -0
- package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +3 -0
- package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +2 -0
- package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +1 -0
- package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +4 -0
- package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +3 -0
- package/dist/features/claude-code-plugin-loader/types.d.ts +1 -0
- package/dist/features/hook-message-injector/context-resolver.d.ts +6 -0
- package/dist/features/hook-message-injector/id-generation.d.ts +2 -0
- package/dist/features/hook-message-injector/index.d.ts +1 -1
- package/dist/features/hook-message-injector/injector.d.ts +7 -69
- package/dist/features/hook-message-injector/json-message-lookup.d.ts +3 -0
- package/dist/features/hook-message-injector/message-directory.d.ts +1 -0
- package/dist/features/hook-message-injector/message-injection.d.ts +2 -0
- package/dist/features/hook-message-injector/sdk-message-context.d.ts +6 -0
- package/dist/features/hook-message-injector/sdk-message-lookup.d.ts +28 -0
- package/dist/features/hook-message-injector/types.d.ts +9 -0
- package/dist/features/mcp-oauth/callback-server.d.ts +10 -2
- package/dist/features/opencode-runtime-skills/source-server.d.ts +1 -0
- package/dist/features/skill-mcp-manager/http-client.d.ts +2 -0
- package/dist/features/team-mode/deps.d.ts +8 -1
- package/dist/features/team-mode/team-layout-tmux/layout.d.ts +2 -0
- package/dist/features/team-mode/team-mailbox/send.d.ts +3 -0
- package/dist/features/team-mode/team-registry/paths.d.ts +17 -2
- package/dist/features/team-mode/team-runtime/shutdown.d.ts +1 -1
- package/dist/features/team-mode/team-runtime/unresolved-team-members.d.ts +3 -0
- package/dist/features/team-mode/team-state-store/active-resume.d.ts +5 -0
- package/dist/features/team-mode/team-state-store/creating-resume.d.ts +4 -0
- package/dist/features/team-mode/team-state-store/deleting-resume.d.ts +4 -0
- package/dist/features/team-mode/team-state-store/error-normalization.d.ts +2 -0
- package/dist/features/team-mode/team-state-store/reservation-reconciliation.d.ts +4 -0
- package/dist/features/team-mode/team-state-store/resume-report.d.ts +7 -0
- package/dist/features/team-mode/team-state-store/resume.d.ts +2 -7
- package/dist/features/team-mode/team-state-store/runtime-cleanup.d.ts +4 -0
- package/dist/features/team-mode/team-state-store/session-liveness.d.ts +9 -0
- package/dist/features/team-mode/team-state-store/worker-resume-status.d.ts +9 -0
- package/dist/features/team-mode/tools/lifecycle-create-tool.d.ts +17 -0
- package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +19 -0
- package/dist/features/team-mode/tools/lifecycle-participant.d.ts +25 -0
- package/dist/features/team-mode/tools/lifecycle-shutdown-tools.d.ts +18 -0
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +3 -3
- package/dist/features/team-mode/tools/lifecycle.d.ts +3 -37
- package/dist/features/team-mode/tools/messaging-live-delivery-client.d.ts +25 -0
- package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +19 -0
- package/dist/features/team-mode/tools/messaging-live-delivery-reservation.d.ts +10 -0
- package/dist/features/team-mode/tools/messaging-live-delivery-state.d.ts +5 -0
- package/dist/features/team-mode/tools/messaging-live-delivery.d.ts +6 -0
- package/dist/features/team-mode/tools/messaging-runtime.d.ts +17 -0
- package/dist/features/team-mode/tools/messaging.d.ts +4 -29
- package/dist/features/tmux-subagent/manager.d.ts +20 -1
- package/dist/features/tmux-subagent/session-created-handler.d.ts +4 -0
- package/dist/features/tmux-subagent/types.d.ts +1 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +1 -1
- package/dist/hooks/atlas/idle-completion-nudge.d.ts +10 -0
- package/dist/hooks/atlas/idle-constants.d.ts +4 -0
- package/dist/hooks/atlas/idle-continuation.d.ts +23 -0
- package/dist/hooks/atlas/idle-session-eligibility.d.ts +8 -0
- package/dist/hooks/atlas/tool-execute-after-direct-work.d.ts +9 -0
- package/dist/hooks/atlas/tool-execute-after-plan-tasks.d.ts +3 -0
- package/dist/hooks/atlas/tool-execute-after-subagent-completion.d.ts +14 -0
- package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +6 -0
- package/dist/hooks/auto-update-checker/hook/ignore-toast-error.d.ts +1 -0
- package/dist/hooks/hephaestus-agents-md-injector/hook.d.ts +37 -0
- package/dist/hooks/hephaestus-agents-md-injector/index.d.ts +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
- package/dist/hooks/ralph-loop/command-arguments.d.ts +1 -0
- package/dist/hooks/ralph-loop/event-handler-activity.d.ts +10 -0
- package/dist/hooks/ralph-loop/event-handler-completion.d.ts +9 -0
- package/dist/hooks/ralph-loop/event-handler-continuation.d.ts +16 -0
- package/dist/hooks/ralph-loop/event-handler-feedback.d.ts +16 -0
- package/dist/hooks/ralph-loop/event-handler-idle.d.ts +15 -0
- package/dist/hooks/ralph-loop/event-handler-impl.d.ts +10 -0
- package/dist/hooks/ralph-loop/event-handler-runtime-error.d.ts +4 -0
- package/dist/hooks/ralph-loop/event-handler-types.d.ts +20 -0
- package/dist/hooks/ralph-loop/loop-state-controller.d.ts +1 -0
- package/dist/hooks/ralph-loop/ralph-loop-event-handler.d.ts +4 -24
- package/dist/hooks/ralph-loop/ralph-loop-hook.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-chunks.d.ts +6 -0
- package/dist/hooks/read-image-resizer/png-constants.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-crc.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-decoder.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-encoder.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-filters.d.ts +1 -0
- package/dist/hooks/read-image-resizer/png-ihdr.d.ts +11 -0
- package/dist/hooks/read-image-resizer/png-nearest-neighbor.d.ts +1 -0
- package/dist/hooks/rules-injector/injection-output.d.ts +2 -0
- package/dist/hooks/rules-injector/injection-processor.d.ts +22 -0
- package/dist/hooks/rules-injector/injection-types.d.ts +43 -0
- package/dist/hooks/rules-injector/injector.d.ts +3 -47
- package/dist/hooks/rules-injector/match-decision-cache.d.ts +4 -0
- package/dist/hooks/rules-injector/parsed-rule-cache.d.ts +11 -0
- package/dist/hooks/rules-injector/path-resolution.d.ts +1 -0
- package/dist/hooks/rules-injector/rule-match-reason.d.ts +12 -0
- package/dist/hooks/rules-injector/transcript-hydration.d.ts +13 -2
- package/dist/hooks/runtime-fallback/auto-retry-abort.d.ts +2 -0
- package/dist/hooks/runtime-fallback/auto-retry-agent-context.d.ts +2 -0
- package/dist/hooks/runtime-fallback/auto-retry-cleanup.d.ts +2 -0
- package/dist/hooks/runtime-fallback/auto-retry-dispatch.d.ts +2 -0
- package/dist/hooks/runtime-fallback/auto-retry-metadata.d.ts +9 -0
- package/dist/hooks/runtime-fallback/auto-retry-timeout.d.ts +5 -0
- package/dist/hooks/runtime-fallback/fallback-bootstrap-model.d.ts +1 -1
- package/dist/hooks/runtime-fallback/fallback-state.d.ts +4 -1
- package/dist/hooks/runtime-fallback/normalize-model.d.ts +12 -0
- package/dist/hooks/session-notification-linux.d.ts +3 -0
- package/dist/hooks/session-notification-log.d.ts +2 -0
- package/dist/hooks/session-notification-macos.d.ts +3 -0
- package/dist/hooks/session-notification-platform.d.ts +3 -0
- package/dist/hooks/session-notification-runner.d.ts +9 -0
- package/dist/hooks/session-notification-send.d.ts +3 -0
- package/dist/hooks/session-notification-sender.d.ts +5 -6
- package/dist/hooks/session-notification-sound.d.ts +3 -0
- package/dist/hooks/session-notification-windows.d.ts +3 -0
- package/dist/hooks/session-recovery/error-recovery.d.ts +4 -0
- package/dist/hooks/session-recovery/hook-types.d.ts +22 -0
- package/dist/hooks/session-recovery/hook.d.ts +2 -19
- package/dist/hooks/session-recovery/interrupted-tool-results.d.ts +3 -0
- package/dist/hooks/session-recovery/message-state.d.ts +4 -0
- package/dist/hooks/session-recovery/storage/thinking-strip.d.ts +7 -1
- package/dist/hooks/start-work/context-info-builder.d.ts +9 -9
- package/dist/hooks/start-work/context-info-formatters.d.ts +21 -0
- package/dist/hooks/start-work/explicit-plan-context.d.ts +9 -0
- package/dist/hooks/start-work/plan-discovery-context.d.ts +25 -0
- package/dist/hooks/start-work/plan-selection.d.ts +4 -0
- package/dist/hooks/start-work/work-initializer.d.ts +17 -0
- package/dist/hooks/tool-pair-validator/hook.d.ts +1 -37
- package/dist/hooks/tool-pair-validator/message-transform.d.ts +2 -0
- package/dist/hooks/tool-pair-validator/tool-part-ids.d.ts +6 -0
- package/dist/hooks/tool-pair-validator/tool-result-repair.d.ts +4 -0
- package/dist/hooks/tool-pair-validator/types.d.ts +36 -0
- package/dist/index.js +12708 -9988
- package/dist/oh-my-opencode.schema.json +4 -0
- package/dist/openclaw/reply-listener-poll-loop.d.ts +3 -0
- package/dist/openclaw/reply-listener-signature.d.ts +2 -0
- package/dist/openclaw/reply-listener-sleep.d.ts +1 -0
- package/dist/openclaw/reply-listener-start.d.ts +9 -0
- package/dist/openclaw/reply-listener-status.d.ts +4 -0
- package/dist/openclaw/reply-listener-stop.d.ts +7 -0
- package/dist/openclaw/reply-listener.d.ts +5 -18
- package/dist/openclaw/session-registry-lock.d.ts +2 -0
- package/dist/openclaw/session-registry-paths.d.ts +9 -0
- package/dist/openclaw/session-registry-storage.d.ts +4 -0
- package/dist/openclaw/session-registry-types.d.ts +11 -0
- package/dist/openclaw/session-registry.d.ts +2 -11
- package/dist/plugin/chat-message/loop-commands.d.ts +9 -0
- package/dist/plugin/chat-message/model-cache-warning.d.ts +12 -0
- package/dist/plugin/chat-message/prompt-text.d.ts +2 -0
- package/dist/plugin/chat-message/session-model.d.ts +4 -0
- package/dist/plugin/chat-message/start-work-message.d.ts +5 -0
- package/dist/plugin/chat-message/types.d.ts +67 -0
- package/dist/plugin/chat-message.d.ts +3 -24
- package/dist/plugin/event-error-utils.d.ts +14 -0
- package/dist/plugin/event-hook-dispatcher.d.ts +5 -0
- package/dist/plugin/event-model-fallback-state.d.ts +30 -0
- package/dist/plugin/event-model-fallback.d.ts +39 -0
- package/dist/plugin/event-session-lifecycle.d.ts +49 -0
- package/dist/plugin/event-session-recovery.d.ts +9 -0
- package/dist/plugin/event-team-handlers.d.ts +13 -0
- package/dist/plugin/event-types.d.ts +78 -0
- package/dist/plugin/event.d.ts +3 -12
- package/dist/plugin/hooks/create-core-hooks.d.ts +1 -0
- package/dist/plugin/hooks/create-session-hooks.d.ts +2 -1
- package/dist/plugin/hooks/model-fallback-title-updater.d.ts +8 -0
- package/dist/plugin/session-compacting.d.ts +4 -1
- package/dist/plugin/system-transform.d.ts +1 -1
- package/dist/plugin/tool-execute-after.d.ts +2 -0
- package/dist/plugin/tool-registry-core-tools.d.ts +15 -0
- package/dist/plugin/tool-registry-factories.d.ts +36 -0
- package/dist/plugin/tool-registry-gated-tools.d.ts +16 -0
- package/dist/plugin/tool-registry-team-tools.d.ts +14 -0
- package/dist/plugin/tool-registry-trimming.d.ts +2 -0
- package/dist/plugin/tool-registry.d.ts +3 -38
- package/dist/plugin/ultrawork-db-model-override.d.ts +1 -1
- package/dist/plugin-config/agent-order-warnings.d.ts +1 -0
- package/dist/plugin-config/config-merger.d.ts +2 -0
- package/dist/plugin-config/layered-config-loader.d.ts +2 -0
- package/dist/plugin-config/single-config-loader.d.ts +4 -0
- package/dist/plugin-config.d.ts +3 -5
- package/dist/plugin-handlers/agent-config-assembly.d.ts +19 -0
- package/dist/plugin-handlers/agent-config-finalizer.d.ts +4 -0
- package/dist/plugin-handlers/agent-config-handler.d.ts +2 -11
- package/dist/plugin-handlers/agent-config-types.d.ts +30 -0
- package/dist/plugin-handlers/agent-skill-discovery.d.ts +3 -0
- package/dist/plugin-handlers/agent-source-loader.d.ts +2 -0
- package/dist/plugin-handlers/hook-config-handler.d.ts +0 -3
- package/dist/shared/context-window-usage.d.ts +7 -0
- package/dist/shared/dynamic-truncator-types.d.ts +17 -0
- package/dist/shared/dynamic-truncator.d.ts +8 -23
- package/dist/shared/migration/migrations-sidecar.d.ts +2 -2
- package/dist/shared/migration/model-versions.d.ts +7 -4
- package/dist/shared/model-availability.d.ts +1 -1
- package/dist/shared/opencode-version.d.ts +2 -2
- package/dist/shared/sparkshell-awareness.d.ts +5 -0
- package/dist/shared/spawn-with-windows-hide.d.ts +2 -0
- package/dist/shared/token-limit-truncator.d.ts +2 -0
- package/dist/testing/module-mock-lifecycle.d.ts +8 -0
- package/dist/tools/delegate-task/openai-categories.d.ts +0 -1
- package/dist/tools/delegate-task/subagent-agent-match.d.ts +3 -0
- package/dist/tools/delegate-task/subagent-model-resolution.d.ts +4 -0
- package/dist/tools/delegate-task/subagent-request-preflight.d.ts +3 -0
- package/dist/tools/delegate-task/subagent-resolution-types.d.ts +32 -0
- package/dist/tools/delegate-task/subagent-resolver.d.ts +3 -12
- package/dist/tools/delegate-task/sync-completion-message.d.ts +20 -0
- package/dist/tools/delegate-task/sync-poll-error-recovery.d.ts +1 -0
- package/dist/tools/delegate-task/sync-session-lifecycle.d.ts +12 -0
- package/dist/tools/delegate-task/sync-session-poller.d.ts +2 -0
- package/dist/tools/delegate-task/sync-spawn-reservation.d.ts +10 -0
- package/dist/tools/delegate-task/sync-task-metadata.d.ts +11 -0
- package/dist/tools/delegate-task/sync-task-runner.d.ts +30 -0
- package/dist/tools/delegate-task/sync-task.d.ts +2 -1
- package/dist/tools/hashline-edit/formatter-trigger.d.ts +2 -2
- package/package.json +16 -14
- package/packages/git-bash-mcp/dist/cli.js +29 -12
- package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.d.ts +1 -1
- package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js +1 -1
- package/packages/lsp-tools-mcp/dist/lsp/config-loader.js +95 -30
- package/packages/lsp-tools-mcp/dist/lsp/server-installation.d.ts +1 -2
- package/packages/lsp-tools-mcp/dist/lsp/server-installation.js +1 -11
- package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +1 -0
- package/packages/lsp-tools-mcp/dist/lsp/transport.js +5 -10
- package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.d.ts +4 -1
- package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js +84 -23
- package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +2 -0
- package/packages/lsp-tools-mcp/dist/missing-dependency-result.js +14 -0
- package/packages/lsp-tools-mcp/dist/tools.js +64 -80
- package/packages/lsp-tools-mcp/package.json +52 -0
- package/packages/omo-codex/lazycodex-repository/.github/workflows/pr-source-guidance.yml +36 -0
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/README.md +26 -1
- package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +188 -0
- package/packages/omo-codex/plugin/components/comment-checker/src/core-values.ts +1 -0
- package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +15 -361
- package/packages/omo-codex/plugin/components/comment-checker/src/hook-input.ts +19 -0
- package/packages/omo-codex/plugin/components/comment-checker/src/record.ts +11 -0
- package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +102 -0
- package/packages/omo-codex/plugin/components/comment-checker/src/types.ts +51 -0
- package/packages/omo-codex/plugin/components/comment-checker/test/codex-hook.test.ts +145 -0
- package/packages/omo-codex/plugin/components/comment-checker/test/core.test.ts +200 -0
- package/packages/omo-codex/plugin/components/lsp/CHANGELOG.md +2 -2
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus.md +11 -5
- package/packages/omo-codex/plugin/components/rules/src/hook-output.ts +11 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +0 -1
- package/packages/omo-codex/plugin/components/rules/src/rules/constants.ts +1 -4
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-cache.ts +87 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-loader.ts +94 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-loader.ts +84 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-paths.ts +103 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-static-loader.ts +43 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine-types.ts +45 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/engine.ts +8 -419
- package/packages/omo-codex/plugin/components/rules/src/rules/formatter.ts +32 -5
- package/packages/omo-codex/plugin/components/rules/src/rules/parser-frontmatter.ts +39 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/parser-yaml.ts +271 -0
- package/packages/omo-codex/plugin/components/rules/src/rules/parser.ts +3 -294
- package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +57 -0
- package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +13 -2
- package/packages/omo-codex/plugin/components/rules/src/transcript-rule-filter.ts +17 -0
- package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +2 -1
- package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +26 -11
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-context-pressure.test.ts +104 -138
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +5 -2
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +12 -5
- package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +10 -4
- package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +65 -3
- package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +47 -2
- package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +16 -0
- package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +153 -0
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +12 -0
- package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +236 -0
- package/packages/omo-codex/plugin/components/rules/test/tool-paths.test.ts +28 -50
- package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +6 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +13 -6
- package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +21 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +64 -2
- package/packages/omo-codex/plugin/components/telemetry/README.md +11 -1
- package/packages/omo-codex/plugin/components/telemetry/biome.json +12 -0
- package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +30 -3
- package/packages/omo-codex/plugin/components/telemetry/src/diagnostics.ts +154 -0
- package/packages/omo-codex/plugin/components/telemetry/src/posthog-activity-state.ts +18 -2
- package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +36 -4
- package/packages/omo-codex/plugin/components/telemetry/test/codex-hook-diagnostics.test.ts +115 -0
- package/packages/omo-codex/plugin/components/telemetry/test/codex-hook.test.ts +16 -25
- package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +119 -0
- package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/README.md +5 -5
- package/packages/omo-codex/plugin/components/ultrawork/agents/codex-ultrawork-reviewer.toml +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -0
- package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +0 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +0 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -2
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +97 -32
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +65 -0
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/agents/openai.yaml +7 -0
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +131 -0
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +38 -10
- package/packages/omo-codex/plugin/components/ultrawork/test/directive-contract.test.ts +18 -0
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +47 -0
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +12 -8
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +28 -21
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +2 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +7 -7
- package/packages/omo-codex/plugin/components/ulw-loop/src/command-types.ts +36 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +64 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +98 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +17 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/runtime.ts +22 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/steering-types.ts +69 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/types.ts +5 -277
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +35 -13
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +52 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering.test.ts +67 -111
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +31 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +46 -9
- package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +20 -29
- package/packages/omo-codex/plugin/model-catalog.json +5 -11
- package/packages/omo-codex/plugin/package-lock.json +1 -1
- package/packages/omo-codex/plugin/scripts/auto-update-state.mjs +78 -0
- package/packages/omo-codex/plugin/scripts/auto-update.mjs +173 -61
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +71 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/config-paths.mjs +44 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/root-settings.mjs +74 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/state.mjs +29 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +14 -202
- package/packages/omo-codex/plugin/scripts/spawn-command.mjs +11 -0
- package/packages/omo-codex/plugin/scripts/sync-hook-status-messages.mjs +23 -9
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +131 -28
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/04-oracle-triple.md +3 -3
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +100 -0
- package/packages/omo-codex/plugin/skills/git-master/agents/openai.yaml +13 -0
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +9 -7
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +176 -0
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +12 -0
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +107 -0
- package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +119 -14
- package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +4 -2
- package/packages/omo-codex/plugin/skills/programming/references/go/concurrency.md +2 -2
- package/packages/omo-codex/plugin/skills/programming/references/python/async-anyio.md +6 -6
- package/packages/omo-codex/plugin/skills/programming/references/python/pydantic-ai.md +12 -12
- package/packages/omo-codex/plugin/skills/programming/references/typescript/backend-hono.md +7 -7
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +13 -11
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +10 -8
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +68 -33
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +86 -22
- package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +770 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +12 -8
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +28 -21
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +45 -379
- package/packages/omo-codex/plugin/skills/ulw-plan/agents/openai.yaml +7 -0
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +131 -0
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +237 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/ansi.ts +17 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/cli.ts +82 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/east-asian-width.ts +72 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/image-diff.ts +109 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-crc.ts +27 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-decode.ts +206 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-synth.ts +57 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/tui-grid.ts +88 -0
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/types.ts +54 -0
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +55 -0
- package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +38 -0
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +164 -0
- package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +73 -0
- package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +69 -0
- package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +53 -0
- package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +83 -0
- package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +67 -0
- package/packages/omo-codex/plugin/test/aggregate.test.mjs +2 -514
- package/packages/omo-codex/plugin/test/auto-update-state-persistence.test.mjs +36 -0
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +204 -26
- package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/global-review-debug-gate.test.mjs +29 -0
- package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +23 -10
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +81 -0
- package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +91 -0
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +165 -9
- package/packages/omo-codex/plugin/test/node-install-surface.test.mjs +0 -19
- package/packages/omo-codex/plugin/test/start-work-skill.test.mjs +107 -0
- package/packages/omo-codex/plugin/test/subagent-guidance.test.mjs +82 -7
- package/packages/omo-codex/plugin/test/sync-hook-status-messages.test.mjs +58 -6
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +152 -0
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +158 -50
- package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +43 -0
- package/packages/omo-codex/scripts/install/agent-source-roots.mjs +13 -0
- package/packages/omo-codex/scripts/install/agents.mjs +84 -14
- package/packages/omo-codex/scripts/install/bin-links.mjs +239 -0
- package/packages/omo-codex/scripts/install/cache.mjs +152 -108
- package/packages/omo-codex/scripts/install/cached-marketplace-manifest.mjs +21 -0
- package/packages/omo-codex/scripts/install/cli-args.mjs +39 -2
- package/packages/omo-codex/scripts/install/config.mjs +7 -5
- package/packages/omo-codex/scripts/install/lazycodex-version-stamp.mjs +102 -0
- package/packages/omo-codex/scripts/install/legacy-bins.mjs +9 -1
- package/packages/omo-codex/scripts/install/model-catalog.mjs +9 -1
- package/packages/omo-codex/scripts/install/process.mjs +3 -1
- package/packages/omo-codex/scripts/install/project-local-cleanup.mjs +0 -1
- package/packages/omo-codex/scripts/install/snapshot.mjs +0 -1
- package/packages/omo-codex/scripts/install-agent-links.test.mjs +205 -11
- package/packages/omo-codex/scripts/install-bin-links.test.mjs +123 -1
- package/packages/omo-codex/scripts/install-cache-copy.test.mjs +129 -5
- package/packages/omo-codex/scripts/install-cli-args.test.mjs +82 -1
- package/packages/omo-codex/scripts/install-config-preservation.test.mjs +43 -0
- package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +14 -1
- package/packages/omo-codex/scripts/install-config.test.mjs +49 -1
- package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +84 -0
- package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +51 -0
- package/packages/omo-codex/scripts/install-local.mjs +42 -40
- package/packages/omo-codex/scripts/install-local.test.mjs +17 -241
- package/packages/omo-codex/scripts/install-marketplace-cache.test.mjs +162 -0
- package/packages/omo-codex/scripts/install-packaged-local.test.mjs +10 -6
- package/packages/omo-codex/scripts/install-project-local-cleanup.test.mjs +73 -2
- package/packages/omo-codex/scripts/sync-telemetry-component.mjs +1 -0
- package/packages/shared-skills/skills/debugging/references/methodology/04-oracle-triple.md +3 -3
- package/packages/shared-skills/skills/git-master/SKILL.md +100 -0
- package/packages/shared-skills/skills/git-master/agents/openai.yaml +13 -0
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +176 -0
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +12 -0
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +107 -0
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +119 -14
- package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +4 -2
- package/packages/shared-skills/skills/programming/references/go/concurrency.md +2 -2
- package/packages/shared-skills/skills/programming/references/python/async-anyio.md +6 -6
- package/packages/shared-skills/skills/programming/references/python/pydantic-ai.md +12 -12
- package/packages/shared-skills/skills/programming/references/typescript/backend-hono.md +7 -7
- package/packages/shared-skills/skills/refactor/SKILL.md +4 -4
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/shared-skills/skills/review-work/SKILL.md +55 -33
- package/packages/shared-skills/skills/start-work/SKILL.md +76 -19
- package/packages/shared-skills/skills/ultraresearch/SKILL.md +770 -0
- package/packages/shared-skills/skills/visual-qa/SKILL.md +219 -0
- package/packages/shared-skills/skills/visual-qa/scripts/ansi.test.ts +45 -0
- package/packages/shared-skills/skills/visual-qa/scripts/ansi.ts +17 -0
- package/packages/shared-skills/skills/visual-qa/scripts/cli.test.ts +73 -0
- package/packages/shared-skills/skills/visual-qa/scripts/cli.ts +82 -0
- package/packages/shared-skills/skills/visual-qa/scripts/east-asian-width.test.ts +60 -0
- package/packages/shared-skills/skills/visual-qa/scripts/east-asian-width.ts +72 -0
- package/packages/shared-skills/skills/visual-qa/scripts/image-diff.test.ts +70 -0
- package/packages/shared-skills/skills/visual-qa/scripts/image-diff.ts +109 -0
- package/packages/shared-skills/skills/visual-qa/scripts/png-crc.ts +27 -0
- package/packages/shared-skills/skills/visual-qa/scripts/png-decode.test.ts +44 -0
- package/packages/shared-skills/skills/visual-qa/scripts/png-decode.ts +206 -0
- package/packages/shared-skills/skills/visual-qa/scripts/png-synth.ts +57 -0
- package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +83 -0
- package/packages/shared-skills/skills/visual-qa/scripts/tui-grid.test.ts +57 -0
- package/packages/shared-skills/skills/visual-qa/scripts/tui-grid.ts +88 -0
- package/packages/shared-skills/skills/visual-qa/scripts/types.ts +54 -0
- package/postinstall.mjs +24 -1
- package/dist/agents/custom-agent-summaries.d.ts +0 -8
- package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +0 -20
- package/dist/agents/prometheus/gemini.d.ts +0 -1
- package/dist/agents/prometheus/gpt.d.ts +0 -1
- package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +0 -8
- package/dist/features/background-agent/session-route.d.ts +0 -12
- package/dist/features/background-agent/spawner/parent-directory-resolver.d.ts +0 -6
- package/dist/features/background-agent/state.d.ts +0 -35
- package/dist/features/claude-tasks/session-storage.d.ts +0 -9
- package/dist/features/mcp-oauth/resource-indicator.d.ts +0 -2
- package/dist/features/mcp-oauth/schema.d.ts +0 -6
- package/dist/features/opencode-skill-loader/async-loader.d.ts +0 -6
- package/dist/features/opencode-skill-loader/blocking.d.ts +0 -2
- package/dist/features/opencode-skill-loader/discover-worker.d.ts +0 -1
- package/dist/hooks/session-recovery/recover-empty-content-message-sdk.d.ts +0 -13
- package/dist/shared/bun-hash-shim.d.ts +0 -1
- package/dist/tools/delegate-task/resolve-call-id.d.ts +0 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +0 -383
- /package/packages/lsp-tools-mcp/dist/lsp/{utils.d.ts → startup-failure.d.ts} +0 -0
- /package/packages/lsp-tools-mcp/dist/lsp/{utils.js → startup-failure.js} +0 -0
|
@@ -229,10 +229,10 @@ default: // already signaled, skip
|
|
|
229
229
|
Highest level (preferred)
|
|
230
230
|
channels (message passing — "share memory by communicating")
|
|
231
231
|
errgroup / wait group
|
|
232
|
-
|
|
232
|
+
|
|
233
233
|
sync.RWMutex (many readers, occasional writer)
|
|
234
234
|
sync.Mutex (mutual exclusion)
|
|
235
|
-
|
|
235
|
+
|
|
236
236
|
atomic.Int64 / atomic.Pointer (single-word lock-free)
|
|
237
237
|
|
|
238
238
|
Lowest level (rare)
|
|
@@ -27,9 +27,9 @@ async def main() -> None:
|
|
|
27
27
|
anyio.run(main)
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
**Signature**: `tg.start_soon(func, *args, name=None)`
|
|
31
|
-
- `func` must be a **coroutine function** (not a coroutine object).
|
|
32
|
-
- `name` is optional, for introspection/debugging.
|
|
30
|
+
**Signature**: `tg.start_soon(func, *args, name=None)`
|
|
31
|
+
- `func` must be a **coroutine function** (not a coroutine object).
|
|
32
|
+
- `name` is optional, for introspection/debugging.
|
|
33
33
|
- No return value; exceptions propagate as `ExceptionGroup` on exit.
|
|
34
34
|
|
|
35
35
|
### `start` — wait for ready signal
|
|
@@ -74,9 +74,9 @@ async def main() -> None:
|
|
|
74
74
|
anyio.run(main)
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
**Signature**: `tg.create_task(coro, *, name=None, context=None) -> TaskHandle[T]`
|
|
78
|
-
- Returns a `TaskHandle` you can `await` for the result.
|
|
79
|
-
- If the task raises, awaiting raises `TaskFailed` (or `TaskCancelled`).
|
|
77
|
+
**Signature**: `tg.create_task(coro, *, name=None, context=None) -> TaskHandle[T]`
|
|
78
|
+
- Returns a `TaskHandle` you can `await` for the result.
|
|
79
|
+
- If the task raises, awaiting raises `TaskFailed` (or `TaskCancelled`).
|
|
80
80
|
- This is the canonical replacement for `asyncio.gather` when you need results.
|
|
81
81
|
|
|
82
82
|
---
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
from pydantic_ai import Agent
|
|
12
12
|
|
|
13
13
|
agent = Agent(
|
|
14
|
-
'openai:gpt-5.
|
|
14
|
+
'openai:gpt-5.5', # model (str | Model | None)
|
|
15
15
|
output_type=MyOutputModel, # structured output type; default=str
|
|
16
16
|
instructions='You are a...', # static or callable instructions
|
|
17
17
|
system_prompt='Be concise.', # static system prompt(s)
|
|
@@ -35,7 +35,7 @@ Format: `provider:model-name`. The framework infers the provider from the prefix
|
|
|
35
35
|
|
|
36
36
|
| Provider prefix | Example |
|
|
37
37
|
|---|---|
|
|
38
|
-
| `openai:` | `'openai:gpt-5.
|
|
38
|
+
| `openai:` | `'openai:gpt-5.5'`, `'openai:gpt-4o'` |
|
|
39
39
|
| `anthropic:` | `'anthropic:claude-sonnet-4-6'`, `'anthropic:claude-opus-4-1'` |
|
|
40
40
|
| `google-gla:` | `'google-gla:gemini-3-flash-preview'` |
|
|
41
41
|
| `google-vertex:` | `'google-vertex:gemini-3-pro-preview'` |
|
|
@@ -43,9 +43,9 @@ Format: `provider:model-name`. The framework infers the provider from the prefix
|
|
|
43
43
|
| `xai:` / `grok:` | `'xai:grok-3'`, `'grok:grok-3-fast'` |
|
|
44
44
|
| `deepseek:` | `'deepseek:deepseek-chat'` |
|
|
45
45
|
| `cohere:` | `'cohere:command-r-08-2024'` |
|
|
46
|
-
| `gateway/...` | `'gateway/openai:gpt-5.
|
|
46
|
+
| `gateway/...` | `'gateway/openai:gpt-5.5'` (PydanticAI Gateway) |
|
|
47
47
|
|
|
48
|
-
Model can also be omitted at construction and passed per-run: `agent.run(prompt, model='openai:gpt-5.
|
|
48
|
+
Model can also be omitted at construction and passed per-run: `agent.run(prompt, model='openai:gpt-5.5')`.
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
@@ -56,7 +56,7 @@ Model can also be omitted at construction and passed per-run: `agent.run(prompt,
|
|
|
56
56
|
```python
|
|
57
57
|
from pydantic_ai import Agent, RunContext
|
|
58
58
|
|
|
59
|
-
agent = Agent('openai:gpt-5.
|
|
59
|
+
agent = Agent('openai:gpt-5.5', deps_type=str)
|
|
60
60
|
|
|
61
61
|
@agent.tool # default: receives RunContext as first arg
|
|
62
62
|
async def greet(ctx: RunContext[str], name: str) -> str:
|
|
@@ -96,7 +96,7 @@ class City(BaseModel):
|
|
|
96
96
|
country: str
|
|
97
97
|
population_millions: float
|
|
98
98
|
|
|
99
|
-
agent = Agent('openai:gpt-5.
|
|
99
|
+
agent = Agent('openai:gpt-5.5', output_type=City)
|
|
100
100
|
result = agent.run_sync('Tell me about Tokyo')
|
|
101
101
|
print(result.output) # City(name='Tokyo', country='Japan', ...)
|
|
102
102
|
print(result.output.name) # 'Tokyo'
|
|
@@ -150,7 +150,7 @@ class Deps:
|
|
|
150
150
|
http_client: httpx.AsyncClient
|
|
151
151
|
|
|
152
152
|
agent = Agent(
|
|
153
|
-
'openai:gpt-5.
|
|
153
|
+
'openai:gpt-5.5',
|
|
154
154
|
deps_type=Deps,
|
|
155
155
|
)
|
|
156
156
|
|
|
@@ -177,7 +177,7 @@ async def main():
|
|
|
177
177
|
```python
|
|
178
178
|
from pydantic_ai import Agent, ModelRetry, UnexpectedModelBehavior, capture_run_messages
|
|
179
179
|
|
|
180
|
-
agent = Agent('openai:gpt-5.
|
|
180
|
+
agent = Agent('openai:gpt-5.5', retries=3)
|
|
181
181
|
|
|
182
182
|
@agent.tool_plain
|
|
183
183
|
def calc_volume(size: int) -> int:
|
|
@@ -214,7 +214,7 @@ logfire.instrument_pydantic_ai() # auto-traces all agent runs
|
|
|
214
214
|
Alternatively, set `instrument=True` on the agent:
|
|
215
215
|
|
|
216
216
|
```python
|
|
217
|
-
agent = Agent('openai:gpt-5.
|
|
217
|
+
agent = Agent('openai:gpt-5.5', instrument=True)
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
---
|
|
@@ -231,7 +231,7 @@ class City(BaseModel):
|
|
|
231
231
|
name: str
|
|
232
232
|
country: str
|
|
233
233
|
|
|
234
|
-
agent = Agent('openai:gpt-5.
|
|
234
|
+
agent = Agent('openai:gpt-5.5', output_type=City)
|
|
235
235
|
result = agent.run_sync('Tell me about Paris')
|
|
236
236
|
print(result.output) # City(name='Paris', country='France')
|
|
237
237
|
```
|
|
@@ -246,7 +246,7 @@ from pydantic_ai import Agent, RunContext
|
|
|
246
246
|
class Deps:
|
|
247
247
|
api_key: str
|
|
248
248
|
|
|
249
|
-
agent = Agent('openai:gpt-5.
|
|
249
|
+
agent = Agent('openai:gpt-5.5', deps_type=Deps)
|
|
250
250
|
|
|
251
251
|
@agent.tool
|
|
252
252
|
async def get_secret(ctx: RunContext[Deps], code: str) -> str:
|
|
@@ -264,7 +264,7 @@ print(result.output)
|
|
|
264
264
|
import anyio
|
|
265
265
|
from pydantic_ai import Agent
|
|
266
266
|
|
|
267
|
-
agent = Agent('openai:gpt-5.
|
|
267
|
+
agent = Agent('openai:gpt-5.5')
|
|
268
268
|
|
|
269
269
|
async def main() -> None:
|
|
270
270
|
async with agent.run_stream('Write a haiku about Python') as response:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Hono Backend Stack Reference (2026)
|
|
2
2
|
|
|
3
|
-
> **Canonical stack**: `hono` + `hono-openapi` + `@scalar/hono-api-reference` + `@hono/swagger-ui`
|
|
4
|
-
> **Runtime**: Bun (TypeScript-first)
|
|
3
|
+
> **Canonical stack**: `hono` + `hono-openapi` + `@scalar/hono-api-reference` + `@hono/swagger-ui`
|
|
4
|
+
> **Runtime**: Bun (TypeScript-first)
|
|
5
5
|
> **Validator**: Zod v4 (Standard Schema compliant, zero extra deps for OpenAPI)
|
|
6
6
|
|
|
7
7
|
---
|
|
@@ -628,19 +628,19 @@ export function setupOpenAPI(app: Hono<any, any>, prefix = '/openapi') {
|
|
|
628
628
|
|
|
629
629
|
## 10. Common Pitfalls
|
|
630
630
|
|
|
631
|
-
1. **Using `openAPISpecs` instead of `openAPIRouteHandler`**
|
|
631
|
+
1. **Using `openAPISpecs` instead of `openAPIRouteHandler`**
|
|
632
632
|
Some docs (e.g. HONC) use `openAPISpecs` — this is **not** the current export name. The correct function is `openAPIRouteHandler` ([source](https://github.com/rhinobase/hono-openapi/blob/10f45a66ede3764b5e6065805fb60fd5df090466/src/index.ts#L1)).
|
|
633
633
|
|
|
634
|
-
2. **Importing from `hono-openapi/zod`**
|
|
634
|
+
2. **Importing from `hono-openapi/zod`**
|
|
635
635
|
There are **no subpath exports**. Always import from `hono-openapi` directly.
|
|
636
636
|
|
|
637
|
-
3. **Forgetting `@hono/standard-validator`**
|
|
637
|
+
3. **Forgetting `@hono/standard-validator`**
|
|
638
638
|
It is a peer dependency of `hono-openapi`. Modern package managers (npm ≥ 7, pnpm, bun) auto-install it. If you see validation errors, ensure it is present in `node_modules`.
|
|
639
639
|
|
|
640
|
-
4. **Using `@hono/zod-openapi` (the OLD package)**
|
|
640
|
+
4. **Using `@hono/zod-openapi` (the OLD package)**
|
|
641
641
|
The user explicitly wants `hono-openapi` (the newer, middleware-based, Standard Schema package). Do not confuse with `@hono/zod-openapi` which wraps the `Hono` class into `OpenAPIHono`.
|
|
642
642
|
|
|
643
|
-
5. **Swagger UI `spec` option**
|
|
643
|
+
5. **Swagger UI `spec` option**
|
|
644
644
|
`@hono/swagger-ui` does **not** accept a `spec` option to embed the document directly. It only accepts `url` (or `urls`) pointing to an external spec endpoint. If you need embedded specs, use Scalar's `content` option instead.
|
|
645
645
|
|
|
646
646
|
---
|
|
@@ -9,15 +9,17 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
|
|
|
9
9
|
|
|
10
10
|
| OpenCode example | Codex tool to use |
|
|
11
11
|
| --- | --- |
|
|
12
|
-
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent(
|
|
13
|
-
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent(
|
|
14
|
-
| `task(subagent_type="plan", ...)` | `spawn_agent(
|
|
15
|
-
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent(
|
|
16
|
-
| `task(category="...", ...)` for implementation or QA | `spawn_agent(
|
|
17
|
-
| `background_output(task_id="...")` | `wait_agent(...)`
|
|
12
|
+
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as an explorer. ...","fork_turns":"none"})` |
|
|
13
|
+
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a librarian. ...","fork_turns":"none"})` |
|
|
14
|
+
| `task(subagent_type="plan", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a planning agent. ...","fork_turns":"none"})` |
|
|
15
|
+
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent({"task_name":"...","message":"TASK: act as a rigorous reviewer. ...","fork_turns":"none"})` |
|
|
16
|
+
| `task(category="...", ...)` for implementation or QA | `spawn_agent({"task_name":"...","message":"TASK: act as an implementation or QA worker. ...","fork_turns":"none"})` |
|
|
17
|
+
| `background_output(task_id="...")` | `wait_agent(...)` for mailbox signals; after a timeout, run one `list_agents` check for the named child if reassurance is needed |
|
|
18
18
|
| `team_*(...)` | Use Codex native subagents plus `send_message`, `followup_task`, `wait_agent`, and `close_agent` |
|
|
19
19
|
|
|
20
|
-
Codex full-history forks inherit
|
|
20
|
+
Codex full-history forks inherit parent context, so role-specific behavior must be described in a self-contained `message` and usually should use a non-full-history fork mode such as `fork_turns="none"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.
|
|
21
|
+
|
|
22
|
+
For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `wait_agent` timeout only means no new mailbox update arrived. Treat a running child or latest `WORKING:` message as alive. Do not use `list_agents` as a polling loop. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.
|
|
21
23
|
|
|
22
24
|
export const REFACTOR_TEMPLATE = `# Intelligent Refactor Command
|
|
23
25
|
|
|
@@ -125,13 +127,13 @@ Fire ALL of these simultaneously using \`call_omo_agent\`:
|
|
|
125
127
|
call_omo_agent(
|
|
126
128
|
subagent_type="explore",
|
|
127
129
|
run_in_background=true,
|
|
128
|
-
prompt="Find all occurrences and definitions of [TARGET].
|
|
130
|
+
prompt="Find all occurrences and definitions of [TARGET].
|
|
129
131
|
Report: file paths, line numbers, usage patterns."
|
|
130
132
|
)
|
|
131
133
|
|
|
132
134
|
// Agent 2: Find related code
|
|
133
135
|
call_omo_agent(
|
|
134
|
-
subagent_type="explore",
|
|
136
|
+
subagent_type="explore",
|
|
135
137
|
run_in_background=true,
|
|
136
138
|
prompt="Find all code that imports, uses, or depends on [TARGET].
|
|
137
139
|
Report: dependency chains, import graphs."
|
|
@@ -237,8 +239,8 @@ Based on Phase 1 results, build:
|
|
|
237
239
|
|
|
238
240
|
### Dependency Graph
|
|
239
241
|
\`\`\`
|
|
240
|
-
[TARGET]
|
|
241
|
-
├── imports from:
|
|
242
|
+
[TARGET]
|
|
243
|
+
├── imports from:
|
|
242
244
|
│ ├── module-a (types)
|
|
243
245
|
│ └── module-b (utils)
|
|
244
246
|
├── imported by:
|
|
@@ -9,15 +9,17 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
|
|
|
9
9
|
|
|
10
10
|
| OpenCode example | Codex tool to use |
|
|
11
11
|
| --- | --- |
|
|
12
|
-
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent(
|
|
13
|
-
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent(
|
|
14
|
-
| `task(subagent_type="plan", ...)` | `spawn_agent(
|
|
15
|
-
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent(
|
|
16
|
-
| `task(category="...", ...)` for implementation or QA | `spawn_agent(
|
|
17
|
-
| `background_output(task_id="...")` | `wait_agent(...)`
|
|
12
|
+
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as an explorer. ...","fork_turns":"none"})` |
|
|
13
|
+
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a librarian. ...","fork_turns":"none"})` |
|
|
14
|
+
| `task(subagent_type="plan", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a planning agent. ...","fork_turns":"none"})` |
|
|
15
|
+
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent({"task_name":"...","message":"TASK: act as a rigorous reviewer. ...","fork_turns":"none"})` |
|
|
16
|
+
| `task(category="...", ...)` for implementation or QA | `spawn_agent({"task_name":"...","message":"TASK: act as an implementation or QA worker. ...","fork_turns":"none"})` |
|
|
17
|
+
| `background_output(task_id="...")` | `wait_agent(...)` for mailbox signals; after a timeout, run one `list_agents` check for the named child if reassurance is needed |
|
|
18
18
|
| `team_*(...)` | Use Codex native subagents plus `send_message`, `followup_task`, `wait_agent`, and `close_agent` |
|
|
19
19
|
|
|
20
|
-
Codex full-history forks inherit
|
|
20
|
+
Codex full-history forks inherit parent context, so role-specific behavior must be described in a self-contained `message` and usually should use a non-full-history fork mode such as `fork_turns="none"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.
|
|
21
|
+
|
|
22
|
+
For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `wait_agent` timeout only means no new mailbox update arrived. Treat a running child or latest `WORKING:` message as alive. Do not use `list_agents` as a polling loop. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.
|
|
21
23
|
|
|
22
24
|
# Remove AI Slops Skill
|
|
23
25
|
|
|
@@ -209,7 +211,7 @@ For each skipped issue, give reason.
|
|
|
209
211
|
)
|
|
210
212
|
```
|
|
211
213
|
|
|
212
|
-
**Batch failure handling**:
|
|
214
|
+
**Batch failure handling**: a `wait_agent` timeout only means no new mailbox update arrived, not that a `deep` agent failed. For long passes, require each child to send `WORKING: <file> - <current phase>` and `BLOCKED: <reason>` only when it cannot progress. If you need reassurance after a timeout, run a single `list_agents` check for the named child; a running child or latest `WORKING:` message is alive. Mark a file for retry only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running. Do NOT block the remaining 4 in that batch; collect successful results and retry the failed file once later. If retry also fails, escalate that file under "Issues Found & Fixed" in the final report.
|
|
213
215
|
|
|
214
216
|
### Phase 5: Verify with quality gates + critical review
|
|
215
217
|
|
|
@@ -8,40 +8,66 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
|
|
|
8
8
|
|
|
9
9
|
| OpenCode example | Codex tool to use |
|
|
10
10
|
| --- | --- |
|
|
11
|
-
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent(
|
|
12
|
-
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent(
|
|
13
|
-
| `task(subagent_type="plan", ...)` | `spawn_agent(
|
|
14
|
-
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent(
|
|
15
|
-
| `task(category="...", ...)` for implementation or QA | `spawn_agent(
|
|
16
|
-
| `background_output(task_id="...")` | `wait_agent(...)`
|
|
11
|
+
| `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as an explorer. ...","fork_turns":"none"})` |
|
|
12
|
+
| `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a librarian. ...","fork_turns":"none"})` |
|
|
13
|
+
| `task(subagent_type="plan", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a planning agent. ...","fork_turns":"none"})` |
|
|
14
|
+
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent({"task_name":"...","message":"TASK: act as a rigorous reviewer. ...","fork_turns":"none"})` |
|
|
15
|
+
| `task(category="...", ...)` for implementation or QA | `spawn_agent({"task_name":"...","message":"TASK: act as an implementation or QA worker. ...","fork_turns":"none"})` |
|
|
16
|
+
| `background_output(task_id="...")` | `wait_agent(...)` for mailbox signals; after a timeout, run one `list_agents` check for the named child if reassurance is needed |
|
|
17
17
|
| `team_*(...)` | Use Codex native subagents plus `send_message`, `followup_task`, `wait_agent`, and `close_agent` |
|
|
18
18
|
|
|
19
|
-
Codex full-history forks inherit
|
|
19
|
+
Codex full-history forks inherit parent context, so role-specific behavior must be described in a self-contained `message` and usually should use a non-full-history fork mode such as `fork_turns="none"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.
|
|
20
20
|
|
|
21
21
|
## Codex Subagent Reliability
|
|
22
22
|
|
|
23
23
|
Every `spawn_agent` message must be self-contained. Start with
|
|
24
24
|
`TASK: <imperative assignment>`, then name `DELIVERABLE`, `SCOPE`, and
|
|
25
25
|
`VERIFY`. State that it is an executable assignment, not a context
|
|
26
|
-
handoff. Role
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
handoff. Role or specialty instructions belong inside `message`; the
|
|
27
|
+
Codex tool schema only accepts `task_name`, `message`, and `fork_turns`.
|
|
28
|
+
Prefer `fork_turns: "none"` unless full history is truly
|
|
29
29
|
required; paste only the review context that worker needs.
|
|
30
30
|
|
|
31
|
-
Plan and reviewer agents may run for a long time; spawn them in the background, keep doing independent root work, and poll with short wait_agent cycles. Never use a single long blocking wait for them
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
Plan and reviewer agents may run for a long time; spawn them in the background, keep doing independent root work, and poll with short wait_agent cycles sized to the work. Never use a single long blocking wait for them, and never spin on tiny timeouts as a failure budget.
|
|
32
|
+
|
|
33
|
+
Treat child status as a progress signal, not a timeout counter. For
|
|
34
|
+
work likely to exceed one wait cycle, require the child to send
|
|
35
|
+
`WORKING: <task> - <current phase>` before long reading, testing, or
|
|
36
|
+
review passes, and `BLOCKED: <reason>` only when it cannot progress.
|
|
37
|
+
While any child is active, keep the parent visibly alive with active
|
|
38
|
+
subagent count, agent names, latest `WORKING:` phase, and whether the
|
|
39
|
+
parent is waiting for mailbox updates. Track spawned agent names
|
|
40
|
+
locally. Use `wait_agent` for mailbox signals, not proof of completion.
|
|
41
|
+
A timeout only means no new mailbox update arrived; after a timeout,
|
|
42
|
+
run a single `list_agents` check for the named child when you need
|
|
43
|
+
reassurance. If it is running or its latest message is `WORKING:`,
|
|
44
|
+
treat it as alive. Do not use `list_agents` as a polling loop or status
|
|
45
|
+
feed; it can replay large payloads. Fallback only when the child is
|
|
46
|
+
completed without the deliverable, ack-only after followup, explicitly
|
|
47
|
+
`BLOCKED:`, or no longer running. Then mark that review lane
|
|
48
|
+
`INCONCLUSIVE`, do not count it as PASS or approval, close if safe, and
|
|
49
|
+
respawn a smaller `fork_turns: "none"` reviewer with the missing
|
|
50
|
+
deliverable. Preserve completed lane results immediately. If the retry
|
|
51
|
+
budget is exhausted, keep the lane `INCONCLUSIVE` and still emit a final
|
|
52
|
+
aggregate result.
|
|
40
53
|
|
|
41
54
|
# Review Work - 5-Agent Parallel Review Orchestrator
|
|
42
55
|
|
|
43
56
|
Launch 5 specialized sub-agents in parallel to review completed implementation work from every angle. All 5 must pass for the review to pass. If even ONE fails, the review fails.
|
|
44
57
|
|
|
58
|
+
When `review-work` is used as a final implementation, PR, or `$start-work`
|
|
59
|
+
gate, it is blocking. A timeout, missing deliverable, ack-only response,
|
|
60
|
+
explicit `BLOCKED:`, or inconclusive lane is not a pass. Treat that lane as
|
|
61
|
+
failed, investigate the underlying uncertainty with the `debugging` skill when
|
|
62
|
+
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
63
|
+
before claiming completion or handing off a PR.
|
|
64
|
+
|
|
65
|
+
Review evidence must be safe to share. Redact or mask secrets and sensitive
|
|
66
|
+
user data before including evidence in logs, PR bodies, or handoffs. Never
|
|
67
|
+
include raw tokens, credentials, auth headers, cookies, API keys, env dumps,
|
|
68
|
+
private logs, or PII; summarize with lengths, hashes, and short non-sensitive
|
|
69
|
+
prefixes when identity is needed.
|
|
70
|
+
|
|
45
71
|
The 5 agents cover complementary concerns - together they form a comprehensive review that no single reviewer could match:
|
|
46
72
|
|
|
47
73
|
| # | Agent | Type | Role | Focus Level |
|
|
@@ -518,19 +544,27 @@ cycles. Do not treat a timeout, ack-only reply, or empty child result as
|
|
|
518
544
|
a PASS.
|
|
519
545
|
|
|
520
546
|
As each completes, collect via the Codex mapping above (`wait_agent`,
|
|
521
|
-
then the child's substantive final result).
|
|
547
|
+
then the child's substantive final result). Preserve completed lane
|
|
548
|
+
results immediately; never lose a PASS/FAIL because another lane is
|
|
549
|
+
still running. Store each verdict independently:
|
|
522
550
|
|
|
523
551
|
| Agent | Verdict | Notes |
|
|
524
552
|
|-------|---------|-------|
|
|
525
|
-
| 1. Goal Verification | pending | - |
|
|
526
|
-
| 2. QA Execution | pending | - |
|
|
527
|
-
| 3. Code Quality | pending | - |
|
|
528
|
-
| 4. Security | pending | - |
|
|
529
|
-
| 5. Context Mining | pending | - |
|
|
530
|
-
|
|
531
|
-
Do NOT deliver the final report until ALL 5 have
|
|
553
|
+
| 1. Goal Verification | pending/PASS/FAIL/INCONCLUSIVE | - |
|
|
554
|
+
| 2. QA Execution | pending/PASS/FAIL/INCONCLUSIVE | - |
|
|
555
|
+
| 3. Code Quality | pending/PASS/FAIL/INCONCLUSIVE | - |
|
|
556
|
+
| 4. Security | pending/PASS/FAIL/INCONCLUSIVE | - |
|
|
557
|
+
| 5. Context Mining | pending/PASS/FAIL/INCONCLUSIVE | - |
|
|
558
|
+
|
|
559
|
+
Do NOT deliver the final report until ALL 5 lanes have a terminal state:
|
|
560
|
+
PASS, FAIL, or INCONCLUSIVE.
|
|
532
561
|
If a lane remains silent after the reliability followup, record it as
|
|
533
562
|
inconclusive and respawn a smaller reviewer/worker for that exact lane.
|
|
563
|
+
If it still remains unfinished after that retry, close the still-running
|
|
564
|
+
agent if safe, keep the lane INCONCLUSIVE, and emit the final aggregate
|
|
565
|
+
review result with the incomplete lane named. Do not spin in repeated
|
|
566
|
+
wait/followup cycles. Do not use `send_message` as an interrupt; queued
|
|
567
|
+
followups are not cancellation.
|
|
534
568
|
|
|
535
569
|
---
|
|
536
570
|
|
|
@@ -540,6 +574,7 @@ inconclusive and respawn a smaller reviewer/worker for that exact lane.
|
|
|
540
574
|
|
|
541
575
|
ALL 5 agents returned PASS → **REVIEW PASSED**
|
|
542
576
|
ANY agent returned FAIL → **REVIEW FAILED - criteria not met**
|
|
577
|
+
ANY lane is INCONCLUSIVE and none failed → **REVIEW INCONCLUSIVE - not approved**
|
|
543
578
|
|
|
544
579
|
</verdict_logic>
|
|
545
580
|
|
|
@@ -548,15 +583,15 @@ Compile the final report in this format:
|
|
|
548
583
|
```markdown
|
|
549
584
|
# Review Work - Final Report
|
|
550
585
|
|
|
551
|
-
## Overall Verdict: PASSED / FAILED
|
|
586
|
+
## Overall Verdict: PASSED / FAILED / INCONCLUSIVE
|
|
552
587
|
|
|
553
588
|
| # | Review Area | Agent Type | Verdict | Confidence |
|
|
554
589
|
|---|------------|------------|---------|------------|
|
|
555
|
-
| 1 | Goal & Constraint Verification | Oracle | PASS/FAIL | HIGH/MED/LOW |
|
|
556
|
-
| 2 | QA Execution | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
557
|
-
| 3 | Code Quality | Oracle | PASS/FAIL | HIGH/MED/LOW |
|
|
558
|
-
| 4 | Security (supplementary) | Oracle | PASS/FAIL | Severity |
|
|
559
|
-
| 5 | Context Mining | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
590
|
+
| 1 | Goal & Constraint Verification | Oracle | PASS/FAIL/INCONCLUSIVE | HIGH/MED/LOW |
|
|
591
|
+
| 2 | QA Execution | unspecified-high | PASS/FAIL/INCONCLUSIVE | HIGH/MED/LOW |
|
|
592
|
+
| 3 | Code Quality | Oracle | PASS/FAIL/INCONCLUSIVE | HIGH/MED/LOW |
|
|
593
|
+
| 4 | Security (supplementary) | Oracle | PASS/FAIL/INCONCLUSIVE | Severity |
|
|
594
|
+
| 5 | Context Mining | unspecified-high | PASS/FAIL/INCONCLUSIVE | HIGH/MED/LOW |
|
|
560
595
|
|
|
561
596
|
## Blocking Issues
|
|
562
597
|
[Aggregated from all agents - deduplicated, prioritized]
|
|
@@ -9,12 +9,12 @@ This skill ports the OpenCode `/start-work` flow onto Codex. Any OpenCode-only t
|
|
|
9
9
|
|
|
10
10
|
| OpenCode example | Codex tool to use |
|
|
11
11
|
| --- | --- |
|
|
12
|
-
| `task(subagent_type="explore", ...)` | `spawn_agent(
|
|
13
|
-
| `task(subagent_type="librarian", ...)` | `spawn_agent(
|
|
14
|
-
| `task(subagent_type="plan", ...)` | `spawn_agent(
|
|
15
|
-
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent(
|
|
16
|
-
| `task(category="...", ...)` for implementation or QA | `spawn_agent(
|
|
17
|
-
| `background_output(task_id="...")` | `wait_agent(...)` |
|
|
12
|
+
| `task(subagent_type="explore", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as an explorer. ...","fork_turns":"none"})` |
|
|
13
|
+
| `task(subagent_type="librarian", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a librarian. ...","fork_turns":"none"})` |
|
|
14
|
+
| `task(subagent_type="plan", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a planning agent. ...","fork_turns":"none"})` |
|
|
15
|
+
| `task(subagent_type="oracle", ...)` for final verification | `spawn_agent({"task_name":"...","message":"TASK: act as a rigorous reviewer. ...","fork_turns":"none"})` |
|
|
16
|
+
| `task(category="...", ...)` for implementation or QA | `spawn_agent({"task_name":"...","message":"TASK: act as an implementation or QA worker. ...","fork_turns":"none"})` |
|
|
17
|
+
| `background_output(task_id="...")` | `wait_agent(...)` for mailbox signals; after a timeout, run one `list_agents` check for the named child if reassurance is needed |
|
|
18
18
|
| `dispatchInternalPrompt(...)` | the `Stop` hook emits `{"decision":"block","reason":"<prompt>"}` automatically; see Continuation |
|
|
19
19
|
| `team_*(...)` | `spawn_agent` + `send_message` + `followup_task` + `wait_agent` + `close_agent` |
|
|
20
20
|
|
|
@@ -25,20 +25,31 @@ When translating `load_skills=[...]`, name the skills inside the spawned agent's
|
|
|
25
25
|
Every `spawn_agent` message must be self-contained. Start with
|
|
26
26
|
`TASK: <imperative assignment>`, then name `DELIVERABLE`, `SCOPE`, and
|
|
27
27
|
`VERIFY`. State that it is an executable assignment, not a context
|
|
28
|
-
handoff. Role
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
handoff. Role or specialty instructions belong inside `message`; the
|
|
29
|
+
Codex tool schema only accepts `task_name`, `message`, and `fork_turns`.
|
|
30
|
+
Prefer `fork_turns: "none"` unless full history is truly
|
|
31
31
|
required; paste only the context the child needs.
|
|
32
32
|
|
|
33
|
-
Plan and reviewer agents may run for a long time; spawn them in the background, keep doing independent root work, and poll with short wait_agent cycles. Never use a single long blocking wait for them
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
Plan and reviewer agents may run for a long time; spawn them in the background, keep doing independent root work, and poll with short wait_agent cycles sized to the work. Never use a single long blocking wait for them, and never spin on tiny timeouts as a failure budget.
|
|
34
|
+
|
|
35
|
+
Treat child status as a progress signal, not a timeout counter. For
|
|
36
|
+
work likely to exceed one wait cycle, require the child to send
|
|
37
|
+
`WORKING: <task> - <current phase>` before long reading, testing, or
|
|
38
|
+
review passes, and `BLOCKED: <reason>` only when it cannot progress.
|
|
39
|
+
While any child is active, keep the parent visibly alive with active
|
|
40
|
+
subagent count, agent names, latest `WORKING:` phase, and whether the
|
|
41
|
+
parent is waiting for mailbox updates. Track spawned agent names
|
|
42
|
+
locally. Use `wait_agent` for mailbox signals, not proof of completion.
|
|
43
|
+
A timeout only means no new mailbox update arrived; after a timeout,
|
|
44
|
+
run a single `list_agents` check for the named child when you need
|
|
45
|
+
reassurance. If it is running or its latest message is `WORKING:`,
|
|
46
|
+
treat it as alive. Do not use `list_agents` as a polling loop or status
|
|
47
|
+
feed; it can replay large payloads. Fallback only when the child is
|
|
48
|
+
completed without the deliverable, ack-only after followup, explicitly
|
|
49
|
+
`BLOCKED:`, or no longer running. Then record the result as
|
|
50
|
+
inconclusive, do not count it as pass/review approval, close if safe,
|
|
51
|
+
and respawn a smaller `fork_turns: "none"` task with the missing
|
|
52
|
+
deliverable.
|
|
42
53
|
|
|
43
54
|
# start-work
|
|
44
55
|
|
|
@@ -60,7 +71,21 @@ $start-work [plan-name] [--worktree <absolute-path>]
|
|
|
60
71
|
3. If `plan-name` was provided, select the matching plan.
|
|
61
72
|
4. If exactly one active or paused Boulder work exists for this session, resume it.
|
|
62
73
|
5. If no active work exists and exactly one plan exists, select it.
|
|
63
|
-
6. If
|
|
74
|
+
6. If no active work exists and there is no selectable plan, enter **No-plan bootstrap**.
|
|
75
|
+
7. If multiple plans remain possible, ask one focused selection question.
|
|
76
|
+
|
|
77
|
+
### No-plan bootstrap
|
|
78
|
+
|
|
79
|
+
When the user explicitly said `start work` / `$start-work` and no selectable plan exists, treat that phrase as approval to create the plan before execution. Do not stall on a missing plan and do not ask for generic approval again.
|
|
80
|
+
|
|
81
|
+
If no selectable plan exists, bootstrap `ulw-plan` before execution.
|
|
82
|
+
Execution requires an approved plan before implementation; bootstrap mode creates that approved plan from the user's `start work` request instead of skipping planning.
|
|
83
|
+
|
|
84
|
+
1. Invoke the `ulw-plan` skill from the current request and require its dynamic adversarial workflow: collect, verify, design, adversarial plan-review, synthesize.
|
|
85
|
+
2. The generated Prometheus plan must be saved under `.omo/plans/<slug>.md` before implementation or Boulder state writes that point at plan work.
|
|
86
|
+
3. Use maximum safe parallelism in the generated plan: independent files/tasks fan out; same-file writes, shared state, and named dependencies serialize.
|
|
87
|
+
4. Preserve safety boundaries. Ask one focused question only when the objective is missing, destructive, or has a safety/product ambiguity that repository exploration cannot resolve.
|
|
88
|
+
5. After the plan exists, continue directly to Phase 2. The user's `start work` request is the bootstrap approval to create the plan and begin execution.
|
|
64
89
|
|
|
65
90
|
## Phase 2: Create or update Boulder state
|
|
66
91
|
|
|
@@ -121,6 +146,38 @@ For each checkbox, complete all five gates before marking it done:
|
|
|
121
146
|
|
|
122
147
|
Append evidence to `.omo/start-work/ledger.jsonl` using one JSON object per line. Include at least `event`, `plan`, `task`, `session_id`, `commands`, `artifact`, `adversarial_classes`, and `cleanup` fields. `adversarial_classes` lists each probed class with its observable result and each ruled-out class with a one-line reason.
|
|
123
148
|
|
|
149
|
+
### Sisyphus-style completion contract
|
|
150
|
+
|
|
151
|
+
A worker done claim is never final. Each implementation sub-task returns a `DoneClaim`, then a different context runs `AdversarialVerify`, then the verifier probes or reproduces the claim, then failures loop back to the executor, and only a confirmed verifier verdict becomes `FullyDone`.
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"DoneClaim": {
|
|
156
|
+
"task": "<task id/title>",
|
|
157
|
+
"changed_files": ["path"],
|
|
158
|
+
"tests": ["exact command + result"],
|
|
159
|
+
"manual_qa": ["artifact path"],
|
|
160
|
+
"cleanup": ["receipt"],
|
|
161
|
+
"risks": ["known risk or none"]
|
|
162
|
+
},
|
|
163
|
+
"AdversarialVerify": {
|
|
164
|
+
"verdict": "confirmed | false-positive | needs-fix | needs-human-review",
|
|
165
|
+
"evidence": ["file path, command, log, artifact, or explicit not inspected"],
|
|
166
|
+
"repro": "exact command or manual steps when available",
|
|
167
|
+
"confidence": 0.0
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Rules:
|
|
173
|
+
- `confirmed` is the only pass verdict. `false-positive`, `needs-fix`, and `needs-human-review` all block checkbox completion.
|
|
174
|
+
- The verifier must be independent from the executor: use `codex-ultrawork-reviewer`, a scoped `worker` reviewer, or root only when root did not implement or materially rewrite that task.
|
|
175
|
+
- A worker done claim must be independently verified before it can become checkbox completion.
|
|
176
|
+
- On any non-confirmed verdict, append the feedback to the ledger, reset the checkbox work to in-progress, and re-dispatch the executor with the exact failure.
|
|
177
|
+
- The verifier must probe the applicable adversarial keys, including `stale_state`, `dirty_worktree`, and `misleading_success_output`, before allowing `FullyDone`.
|
|
178
|
+
- In prose evidence, name the same risks as stale state, dirty worktree, and misleading success output so reviewers can search for both key and human forms.
|
|
179
|
+
- Tests passing, green builds, or a worker DoneClaim without independent verification are not enough to mark a checkbox complete.
|
|
180
|
+
|
|
124
181
|
## Phase 5: Mark progress
|
|
125
182
|
|
|
126
183
|
Only after verification passes:
|
|
@@ -135,9 +192,15 @@ Only after verification passes:
|
|
|
135
192
|
When all top-level checkboxes in `## TODOs` and `## Final Verification Wave` are complete:
|
|
136
193
|
|
|
137
194
|
1. Run the plan's final verification commands.
|
|
138
|
-
2.
|
|
139
|
-
|
|
140
|
-
|
|
195
|
+
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR handoff, or branch handoff:
|
|
196
|
+
- Invoke the `review-work` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, `BLOCKED:`, or inconclusive lane is a gate failure, not approval.
|
|
197
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append the ruled-out or confirmed result to `.omo/start-work/ledger.jsonl`.
|
|
198
|
+
- If any review lane or debugging hypothesis fails, invoke the `debugging` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
199
|
+
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing `.omo/start-work/ledger.jsonl`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
200
|
+
- If the work includes creating, updating, or handing off a PR, refresh `git status` and the PR/branch state after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
201
|
+
3. If worktree mode was used, sync `.omo/` state back to the main repo, merge or hand off exactly as requested, and remove the worktree only after successful merge or explicit handoff.
|
|
202
|
+
4. Remove or mark the Boulder work as completed.
|
|
203
|
+
5. Print an `ORCHESTRATION COMPLETE` block with the plan path, verification commands, Global Review and Debugging Gate verdict, artifacts, and cleanup receipts.
|
|
141
204
|
|
|
142
205
|
## Hard rules
|
|
143
206
|
|
|
@@ -145,5 +208,6 @@ When all top-level checkboxes in `## TODOs` and `## Final Verification Wave` are
|
|
|
145
208
|
- No `--dry-run` as completion evidence.
|
|
146
209
|
- No tests-only completion claim. A Manual-QA artifact is required.
|
|
147
210
|
- No completion claim while an applicable ultraqa adversarial class was never probed. Each applicable class needs a captured observable result; each skipped class needs a one-line not-applicable reason in the ledger.
|
|
211
|
+
- No `ORCHESTRATION COMPLETE`, final response, PR creation, or PR handoff before the Global Review and Debugging Gate passes with recorded evidence.
|
|
148
212
|
- No unprefixed session ids in Boulder state. Codex sessions are always `codex:<session_id>`.
|
|
149
213
|
- No stale-memory execution. The plan and ledger are the durable source of truth.
|