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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function encodePng(pixels: Buffer, width: number, height: number, bitDepth: number, colorType: number, bytesPerPixel: number): Buffer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function unfilterRow(filterType: number, currentRow: Buffer, previousRow: Buffer | null, bytesPerPixel: number): Buffer | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PngIhdr {
|
|
2
|
+
readonly width: number;
|
|
3
|
+
readonly height: number;
|
|
4
|
+
readonly bitDepth: number;
|
|
5
|
+
readonly colorType: number;
|
|
6
|
+
readonly compressionMethod: number;
|
|
7
|
+
readonly filterMethod: number;
|
|
8
|
+
readonly interlaceMethod: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function parseIhdr(data: Buffer): PngIhdr | null;
|
|
11
|
+
export declare function getBytesPerPixel(colorType: number, bitDepth: number): number | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function nearestNeighborResize(sourcePixels: Buffer, srcWidth: number, srcHeight: number, dstWidth: number, dstHeight: number, bytesPerPixel: number): Buffer;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import type { RuleFileReader, RuleInjectionProcessorDeps, RuleStatReader, ToolExecuteOutput, TranscriptHydrationHook } from "./injection-types";
|
|
3
|
+
import { createContentHash, isDuplicateByContentHash, isDuplicateByRealPath, shouldApplyRule } from "./matcher";
|
|
4
|
+
import type { FindRuleFilesOptions } from "./rule-file-finder";
|
|
5
|
+
import type { RuleScanCache } from "./rule-scan-cache";
|
|
6
|
+
import { saveInjectedRules } from "./storage";
|
|
7
|
+
export type CreateRuleInjectionProcessorDeps = RuleInjectionProcessorDeps & {
|
|
8
|
+
getSessionRuleScanCache?: (sessionID: string) => RuleScanCache;
|
|
9
|
+
ruleFinderOptions?: FindRuleFilesOptions;
|
|
10
|
+
readFileSync?: RuleFileReader;
|
|
11
|
+
statSync?: RuleStatReader;
|
|
12
|
+
homedir?: typeof homedir;
|
|
13
|
+
shouldApplyRule?: typeof shouldApplyRule;
|
|
14
|
+
isDuplicateByRealPath?: typeof isDuplicateByRealPath;
|
|
15
|
+
createContentHash?: typeof createContentHash;
|
|
16
|
+
isDuplicateByContentHash?: typeof isDuplicateByContentHash;
|
|
17
|
+
saveInjectedRules?: typeof saveInjectedRules;
|
|
18
|
+
transcriptHydration?: TranscriptHydrationHook;
|
|
19
|
+
};
|
|
20
|
+
export declare function createRuleInjectionProcessor(deps: CreateRuleInjectionProcessorDeps): {
|
|
21
|
+
processFilePathForInjection: (filePath: string, sessionID: string, output: ToolExecuteOutput) => Promise<void>;
|
|
22
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SessionInjectedRulesCache } from "./cache";
|
|
2
|
+
import type { RuleMetadata } from "./types";
|
|
3
|
+
export type ToolExecuteOutput = {
|
|
4
|
+
title: string;
|
|
5
|
+
output: string;
|
|
6
|
+
metadata: unknown;
|
|
7
|
+
};
|
|
8
|
+
export type RuleToInject = {
|
|
9
|
+
relativePath: string;
|
|
10
|
+
matchReason: string;
|
|
11
|
+
content: string;
|
|
12
|
+
distance: number;
|
|
13
|
+
};
|
|
14
|
+
export type DynamicTruncator = {
|
|
15
|
+
truncate: (sessionID: string, content: string) => Promise<{
|
|
16
|
+
result: string;
|
|
17
|
+
truncated: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
};
|
|
20
|
+
export type RuleFileReader = (path: string, encoding: "utf-8") => string;
|
|
21
|
+
export type RuleStatReader = (path: string) => {
|
|
22
|
+
readonly mtimeMs: number;
|
|
23
|
+
readonly size: number;
|
|
24
|
+
};
|
|
25
|
+
export interface ParsedRuleEntry {
|
|
26
|
+
mtimeMs: number;
|
|
27
|
+
size: number;
|
|
28
|
+
metadata: RuleMetadata;
|
|
29
|
+
body: string;
|
|
30
|
+
}
|
|
31
|
+
export type ParsedRule = {
|
|
32
|
+
metadata: RuleMetadata;
|
|
33
|
+
body: string;
|
|
34
|
+
statFingerprint: string | null;
|
|
35
|
+
};
|
|
36
|
+
export interface TranscriptHydrationHook {
|
|
37
|
+
hydrateSession(sessionID: string): Promise<ReadonlySet<string>>;
|
|
38
|
+
}
|
|
39
|
+
export type RuleInjectionProcessorDeps = {
|
|
40
|
+
workspaceDirectory: string;
|
|
41
|
+
truncator: DynamicTruncator;
|
|
42
|
+
getSessionCache: (sessionID: string) => SessionInjectedRulesCache;
|
|
43
|
+
};
|
|
@@ -1,47 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { createContentHash, isDuplicateByContentHash, isDuplicateByRealPath, shouldApplyRule } from "./matcher";
|
|
5
|
-
import type { FindRuleFilesOptions } from "./rule-file-finder";
|
|
6
|
-
import type { RuleScanCache } from "./rule-scan-cache";
|
|
7
|
-
import { saveInjectedRules } from "./storage";
|
|
8
|
-
type ToolExecuteOutput = {
|
|
9
|
-
title: string;
|
|
10
|
-
output: string;
|
|
11
|
-
metadata: unknown;
|
|
12
|
-
};
|
|
13
|
-
type DynamicTruncator = {
|
|
14
|
-
truncate: (sessionID: string, content: string) => Promise<{
|
|
15
|
-
result: string;
|
|
16
|
-
truncated: boolean;
|
|
17
|
-
}>;
|
|
18
|
-
};
|
|
19
|
-
type RuleFileReader = (path: string, encoding: "utf-8") => string;
|
|
20
|
-
export interface ParsedRuleCacheStats {
|
|
21
|
-
entries: number;
|
|
22
|
-
bodyBytes: number;
|
|
23
|
-
}
|
|
24
|
-
export declare function clearParsedRuleCache(): void;
|
|
25
|
-
export declare function getParsedRuleCacheStats(): ParsedRuleCacheStats;
|
|
26
|
-
export interface TranscriptHydrationHook {
|
|
27
|
-
hydrateSession(sessionID: string): Promise<ReadonlySet<string>>;
|
|
28
|
-
}
|
|
29
|
-
export declare function createRuleInjectionProcessor(deps: {
|
|
30
|
-
workspaceDirectory: string;
|
|
31
|
-
truncator: DynamicTruncator;
|
|
32
|
-
getSessionCache: (sessionID: string) => SessionInjectedRulesCache;
|
|
33
|
-
getSessionRuleScanCache?: (sessionID: string) => RuleScanCache;
|
|
34
|
-
ruleFinderOptions?: FindRuleFilesOptions;
|
|
35
|
-
readFileSync?: RuleFileReader;
|
|
36
|
-
statSync?: typeof statSync;
|
|
37
|
-
homedir?: typeof homedir;
|
|
38
|
-
shouldApplyRule?: typeof shouldApplyRule;
|
|
39
|
-
isDuplicateByRealPath?: typeof isDuplicateByRealPath;
|
|
40
|
-
createContentHash?: typeof createContentHash;
|
|
41
|
-
isDuplicateByContentHash?: typeof isDuplicateByContentHash;
|
|
42
|
-
saveInjectedRules?: typeof saveInjectedRules;
|
|
43
|
-
transcriptHydration?: TranscriptHydrationHook;
|
|
44
|
-
}): {
|
|
45
|
-
processFilePathForInjection: (filePath: string, sessionID: string, output: ToolExecuteOutput) => Promise<void>;
|
|
46
|
-
};
|
|
47
|
-
export {};
|
|
1
|
+
export { createRuleInjectionProcessor, type CreateRuleInjectionProcessorDeps, } from "./injection-processor";
|
|
2
|
+
export type { DynamicTruncator, RuleFileReader, RuleInjectionProcessorDeps, RuleToInject, ToolExecuteOutput, TranscriptHydrationHook, } from "./injection-types";
|
|
3
|
+
export { clearParsedRuleCache, getParsedRuleCacheStats, type ParsedRuleCacheStats, } from "./parsed-rule-cache";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type MatchDecisionCache = Map<string, string | null>;
|
|
2
|
+
export declare function createMatchDecisionCache(): MatchDecisionCache;
|
|
3
|
+
export declare function getCachedMatchReason(cache: MatchDecisionCache, projectRoot: string | null, resolvedFilePath: string, realPath: string, statFingerprint: string | null): string | null | undefined;
|
|
4
|
+
export declare function setCachedMatchReason(cache: MatchDecisionCache, projectRoot: string | null, resolvedFilePath: string, realPath: string, statFingerprint: string | null, matchReason: string | null): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ParsedRule, RuleFileReader, RuleStatReader } from "./injection-types";
|
|
2
|
+
export interface ParsedRuleCacheStats {
|
|
3
|
+
entries: number;
|
|
4
|
+
bodyBytes: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function clearParsedRuleCache(): void;
|
|
7
|
+
export declare function getParsedRuleCacheStats(): ParsedRuleCacheStats;
|
|
8
|
+
export declare function createParsedRuleReader(options?: {
|
|
9
|
+
readFileSync?: RuleFileReader;
|
|
10
|
+
statSync?: RuleStatReader;
|
|
11
|
+
}): (filePath: string, realPath: string) => ParsedRule;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveFilePath(workspaceDirectory: string, path: string): string | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { shouldApplyRule } from "./matcher";
|
|
2
|
+
import { type MatchDecisionCache } from "./match-decision-cache";
|
|
3
|
+
export declare function getRuleMatchReason(input: {
|
|
4
|
+
matchDecisionCache: MatchDecisionCache;
|
|
5
|
+
isSingleFile: boolean | undefined;
|
|
6
|
+
projectRoot: string | null;
|
|
7
|
+
resolved: string;
|
|
8
|
+
realPath: string;
|
|
9
|
+
statFingerprint: string | null;
|
|
10
|
+
metadata: Parameters<typeof shouldApplyRule>[0];
|
|
11
|
+
shouldApplyRuleImpl: typeof shouldApplyRule;
|
|
12
|
+
}): string | null;
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
1
|
export interface TranscriptHydrationDeps {
|
|
3
|
-
readonly client:
|
|
2
|
+
readonly client: TranscriptHydrationClient;
|
|
4
3
|
}
|
|
5
4
|
export interface TranscriptHydrationStore {
|
|
6
5
|
hydrateSession(sessionID: string): Promise<ReadonlySet<string>>;
|
|
7
6
|
getHydratedRelativePaths(sessionID: string): ReadonlySet<string>;
|
|
8
7
|
clearSession(sessionID: string): void;
|
|
9
8
|
}
|
|
9
|
+
interface TranscriptHydrationClient {
|
|
10
|
+
readonly session: {
|
|
11
|
+
readonly messages: (args: {
|
|
12
|
+
readonly path: {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
};
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
readonly data?: unknown;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
10
20
|
/**
|
|
11
21
|
* Builds an in-memory store keyed by sessionID that lazily scans the session
|
|
12
22
|
* transcript for `[Rule: <relativePath>]` markers and exposes the set of
|
|
@@ -16,3 +26,4 @@ export interface TranscriptHydrationStore {
|
|
|
16
26
|
* does not re-inject duplicates.
|
|
17
27
|
*/
|
|
18
28
|
export declare function createTranscriptHydrationStore(deps: TranscriptHydrationDeps): TranscriptHydrationStore;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { HookDeps } from "./types";
|
|
2
|
+
export declare function createAutoRetryDispatcher(deps: HookDeps, scheduleSessionFallbackTimeout: (sessionID: string, resolvedAgent?: string) => void, clearSessionFallbackTimeout: (sessionID: string) => void): (sessionID: string, newModel: string, resolvedAgent: string | undefined, source: string) => Promise<void>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { HookDeps } from "./types";
|
|
2
|
+
export declare function createFallbackTimeoutHelpers(deps: HookDeps, abortSessionRequest: (sessionID: string, source: string) => Promise<void>, autoRetryWithFallback: (sessionID: string, newModel: string, resolvedAgent: string | undefined, source: string) => Promise<void>): {
|
|
3
|
+
clearSessionFallbackTimeout: (sessionID: string) => void;
|
|
4
|
+
scheduleSessionFallbackTimeout: (sessionID: string, resolvedAgent?: string) => void;
|
|
5
|
+
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { FallbackState, FallbackResult } from "./types";
|
|
2
2
|
import type { RuntimeFallbackConfig } from "../../config";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function stringifyRuntimeModel(model: unknown): string | undefined;
|
|
4
|
+
export declare function stringifyRuntimeModelWithVariant(model: unknown, variant: unknown): string | undefined;
|
|
5
|
+
export declare function areRuntimeModelsEquivalent(candidate: string | undefined, current: string | undefined): boolean;
|
|
6
|
+
export declare function createFallbackState(originalModel: unknown): FallbackState;
|
|
4
7
|
export declare function isModelInCooldown(model: string, state: FallbackState, cooldownSeconds: number): boolean;
|
|
5
8
|
export declare function findNextAvailableFallback(state: FallbackState, fallbackModels: string[], cooldownSeconds: number): string | undefined;
|
|
6
9
|
export declare function prepareFallback(sessionID: string, state: FallbackState, fallbackModels: string[], config: Required<RuntimeFallbackConfig>): FallbackResult;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize a session model value into a canonical "<providerID>/<id>" string.
|
|
3
|
+
*
|
|
4
|
+
* Since opencode 1.15.x the `session.created` event payload exposes
|
|
5
|
+
* `info.model` as an object (`{ id, providerID, variant }`) rather than a
|
|
6
|
+
* plain string. Downstream fallback state treats the model as a string and
|
|
7
|
+
* calls `.toLowerCase()` on it, so an object value crashes the hook. This
|
|
8
|
+
* helper collapses both the legacy string form and the object form to a
|
|
9
|
+
* single canonical string at the hook boundary. Returns undefined when no
|
|
10
|
+
* usable provider/model pair can be derived.
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeModelToCanonicalString(model: unknown): string | undefined;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
export declare function sendLinuxSessionNotification(ctx: PluginInput, title: string, message: string): Promise<void>;
|
|
3
|
+
export declare function playLinuxSessionNotificationSound(ctx: PluginInput, soundPath: string): Promise<void>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
export declare function sendMacosSessionNotification(ctx: PluginInput, title: string, message: string): Promise<void>;
|
|
3
|
+
export declare function playMacosSessionNotificationSound(ctx: PluginInput, soundPath: string): Promise<void>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
type ShellCommand = Promise<unknown> & {
|
|
3
|
+
quiet?: () => Promise<unknown>;
|
|
4
|
+
nothrow?: () => ShellCommand;
|
|
5
|
+
};
|
|
6
|
+
type ShellRunner = NonNullable<PluginInput["$"]>;
|
|
7
|
+
type ShellFailureMode = "throw" | "nothrow";
|
|
8
|
+
export declare function runNotificationCommand(ctx: PluginInput, commandPath: string, args: readonly string[], shellCommand: (shell: ShellRunner) => ShellCommand, shellFailureMode?: ShellFailureMode): Promise<void>;
|
|
9
|
+
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export declare function playSessionNotificationSound(ctx: PluginInput, platform: Platform, soundPath: string): Promise<void>;
|
|
1
|
+
import { type Platform, detectPlatform, getDefaultSoundPath } from "./session-notification-platform";
|
|
2
|
+
import { playSessionNotificationSound } from "./session-notification-sound";
|
|
3
|
+
import { sendSessionNotification } from "./session-notification-send";
|
|
4
|
+
export { type Platform, detectPlatform, getDefaultSoundPath };
|
|
5
|
+
export { sendSessionNotification, playSessionNotificationSound };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
export declare function sendWindowsSessionNotification(ctx: PluginInput, title: string, message: string): Promise<void>;
|
|
3
|
+
export declare function playWindowsSessionNotificationSound(ctx: PluginInput, soundPath: string): Promise<void>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
import type { ExperimentalConfig } from "../../config";
|
|
3
|
+
import type { MessageInfo, SessionRecoveryCallbacks } from "./hook-types";
|
|
4
|
+
export declare function createSessionErrorRecoveryHandler(ctx: PluginInput, callbacks: SessionRecoveryCallbacks, experimental?: ExperimentalConfig): (info: MessageInfo) => Promise<boolean>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ExperimentalConfig } from "../../config";
|
|
2
|
+
export interface MessageInfo {
|
|
3
|
+
id?: string;
|
|
4
|
+
role?: string;
|
|
5
|
+
sessionID?: string;
|
|
6
|
+
parentID?: string;
|
|
7
|
+
error?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionRecoveryOptions {
|
|
10
|
+
experimental?: ExperimentalConfig;
|
|
11
|
+
}
|
|
12
|
+
export interface SessionRecoveryHook {
|
|
13
|
+
handleSessionRecovery: (info: MessageInfo) => Promise<boolean>;
|
|
14
|
+
handleInterruptedToolResultsOnIdle: (sessionID: string) => Promise<boolean>;
|
|
15
|
+
isRecoverableError: (error: unknown) => boolean;
|
|
16
|
+
setOnAbortCallback: (callback: (sessionID: string) => void) => void;
|
|
17
|
+
setOnRecoveryCompleteCallback: (callback: (sessionID: string) => void) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface SessionRecoveryCallbacks {
|
|
20
|
+
onAbortCallback: ((sessionID: string) => void) | null;
|
|
21
|
+
onRecoveryCompleteCallback: ((sessionID: string) => void) | null;
|
|
22
|
+
}
|
|
@@ -1,21 +1,4 @@
|
|
|
1
1
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
id?: string;
|
|
5
|
-
role?: string;
|
|
6
|
-
sessionID?: string;
|
|
7
|
-
parentID?: string;
|
|
8
|
-
error?: unknown;
|
|
9
|
-
}
|
|
10
|
-
export interface SessionRecoveryOptions {
|
|
11
|
-
experimental?: ExperimentalConfig;
|
|
12
|
-
}
|
|
13
|
-
export interface SessionRecoveryHook {
|
|
14
|
-
handleSessionRecovery: (info: MessageInfo) => Promise<boolean>;
|
|
15
|
-
handleInterruptedToolResultsOnIdle: (sessionID: string) => Promise<boolean>;
|
|
16
|
-
isRecoverableError: (error: unknown) => boolean;
|
|
17
|
-
setOnAbortCallback: (callback: (sessionID: string) => void) => void;
|
|
18
|
-
setOnRecoveryCompleteCallback: (callback: (sessionID: string) => void) => void;
|
|
19
|
-
}
|
|
2
|
+
import type { SessionRecoveryHook, SessionRecoveryOptions } from "./hook-types";
|
|
3
|
+
export type { MessageInfo, SessionRecoveryHook, SessionRecoveryOptions } from "./hook-types";
|
|
20
4
|
export declare function createSessionRecoveryHook(ctx: PluginInput, options?: SessionRecoveryOptions): SessionRecoveryHook;
|
|
21
|
-
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
import type { SessionRecoveryCallbacks } from "./hook-types";
|
|
3
|
+
export declare function createInterruptedToolResultsHandler(ctx: PluginInput, callbacks: SessionRecoveryCallbacks): (sessionID: string) => Promise<boolean>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MessageData } from "./types";
|
|
2
|
+
export declare function assistantMessageIsFinished(message: MessageData): boolean;
|
|
3
|
+
export declare function messageHasInterruptedToolResults(message: MessageData): boolean;
|
|
4
|
+
export declare function findLatestAssistantMessage(messages: MessageData[]): MessageData | undefined;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
import { log, isSqliteBackend } from "../../../shared";
|
|
2
3
|
type OpencodeClient = PluginInput["client"];
|
|
3
|
-
|
|
4
|
+
type StripThinkingPartsDeps = {
|
|
5
|
+
readonly isSqliteBackend: typeof isSqliteBackend;
|
|
6
|
+
readonly log: typeof log;
|
|
7
|
+
readonly partStorage: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function stripThinkingParts(messageID: string, deps?: StripThinkingPartsDeps): boolean;
|
|
4
10
|
export declare function stripThinkingPartsAsync(client: OpencodeClient, sessionID: string, messageID: string): Promise<boolean>;
|
|
5
11
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { readBoulderState } from "../../features/boulder-state";
|
|
2
2
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
3
3
|
export declare function buildStartWorkContextInfo(params: {
|
|
4
|
-
ctx: PluginInput;
|
|
5
|
-
explicitPlanName: string | null;
|
|
6
|
-
existingState: ReturnType<typeof readBoulderState>;
|
|
7
|
-
sessionId: string;
|
|
8
|
-
timestamp: string;
|
|
9
|
-
activeAgent: string;
|
|
10
|
-
worktreePath: string | undefined;
|
|
11
|
-
worktreeBlock: string;
|
|
12
|
-
preferredPlanPath?: string | null;
|
|
4
|
+
readonly ctx: PluginInput;
|
|
5
|
+
readonly explicitPlanName: string | null;
|
|
6
|
+
readonly existingState: ReturnType<typeof readBoulderState>;
|
|
7
|
+
readonly sessionId: string;
|
|
8
|
+
readonly timestamp: string;
|
|
9
|
+
readonly activeAgent: string;
|
|
10
|
+
readonly worktreePath: string | undefined;
|
|
11
|
+
readonly worktreeBlock: string;
|
|
12
|
+
readonly preferredPlanPath?: string | null;
|
|
13
13
|
}): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BoulderState, BoulderWorkResumeOption } from "../../features/boulder-state";
|
|
2
|
+
export declare function buildAutoSelectedPlanContextInfoOnly(params: {
|
|
3
|
+
readonly planPath: string;
|
|
4
|
+
readonly sessionId: string;
|
|
5
|
+
readonly timestamp: string;
|
|
6
|
+
readonly worktreeBlock: string;
|
|
7
|
+
readonly reason?: string;
|
|
8
|
+
}): string;
|
|
9
|
+
export declare function buildMultipleActiveWorksContext(params: {
|
|
10
|
+
readonly resumeOptions: readonly BoulderWorkResumeOption[];
|
|
11
|
+
readonly sessionId: string;
|
|
12
|
+
readonly timestamp: string;
|
|
13
|
+
}): string;
|
|
14
|
+
export declare function buildExistingSessionContext(params: {
|
|
15
|
+
readonly existingState: BoulderState;
|
|
16
|
+
readonly sessionId: string;
|
|
17
|
+
readonly activeAgent: string;
|
|
18
|
+
readonly worktreePath: string | undefined;
|
|
19
|
+
readonly worktreeBlock: string;
|
|
20
|
+
readonly directory: string;
|
|
21
|
+
}): string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function buildExplicitPlanContext(params: {
|
|
2
|
+
readonly explicitPlanName: string;
|
|
3
|
+
readonly sessionId: string;
|
|
4
|
+
readonly timestamp: string;
|
|
5
|
+
readonly activeAgent: string;
|
|
6
|
+
readonly worktreePath: string | undefined;
|
|
7
|
+
readonly worktreeBlock: string;
|
|
8
|
+
readonly directory: string;
|
|
9
|
+
}): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BoulderState, BoulderWorkResumeOption } from "../../features/boulder-state";
|
|
2
|
+
export declare function shouldResumeExistingState(input: {
|
|
3
|
+
readonly existingState: BoulderState | null;
|
|
4
|
+
readonly preferredPlanPath: string | null;
|
|
5
|
+
}): boolean;
|
|
6
|
+
export declare function shouldDiscoverPlans(input: {
|
|
7
|
+
readonly existingState: BoulderState | null;
|
|
8
|
+
readonly explicitPlanName: string | null;
|
|
9
|
+
readonly preferredPlanPath: string | null;
|
|
10
|
+
}): boolean;
|
|
11
|
+
export declare function shouldResumeSingleWorkOption(input: {
|
|
12
|
+
readonly directory: string;
|
|
13
|
+
readonly option: BoulderWorkResumeOption;
|
|
14
|
+
readonly preferredPlanPath: string | null;
|
|
15
|
+
}): boolean;
|
|
16
|
+
export declare function buildPlanDiscoveryContext(params: {
|
|
17
|
+
readonly contextInfo: string;
|
|
18
|
+
readonly sessionId: string;
|
|
19
|
+
readonly timestamp: string;
|
|
20
|
+
readonly activeAgent: string;
|
|
21
|
+
readonly worktreePath: string | undefined;
|
|
22
|
+
readonly worktreeBlock: string;
|
|
23
|
+
readonly directory: string;
|
|
24
|
+
readonly preferredPlanPath: string | null;
|
|
25
|
+
}): string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function findPlanByName(plans: readonly string[], requestedName: string): string | null;
|
|
2
|
+
export declare function pickPreferredIncompletePlan(incompletePlans: readonly string[], preferredPlanPath: string | null): string | null;
|
|
3
|
+
export declare function formatIncompletePlanList(plans: readonly string[], includeModifiedTime: boolean): string;
|
|
4
|
+
export declare function buildMissingPlanContext(explicitPlanName: string, allPlans: readonly string[]): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function createNewWorkOrInitialize(params: {
|
|
2
|
+
readonly directory: string;
|
|
3
|
+
readonly planPath: string;
|
|
4
|
+
readonly sessionId: string;
|
|
5
|
+
readonly activeAgent: string;
|
|
6
|
+
readonly worktreePath: string | undefined;
|
|
7
|
+
}): void;
|
|
8
|
+
export declare function buildAutoSelectedPlanContextWithStateInit(params: {
|
|
9
|
+
readonly planPath: string;
|
|
10
|
+
readonly sessionId: string;
|
|
11
|
+
readonly timestamp: string;
|
|
12
|
+
readonly activeAgent: string;
|
|
13
|
+
readonly worktreePath: string | undefined;
|
|
14
|
+
readonly worktreeBlock: string;
|
|
15
|
+
readonly directory: string;
|
|
16
|
+
readonly reason?: string;
|
|
17
|
+
}): string;
|
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type ToolUsePart = {
|
|
3
|
-
type: "tool_use";
|
|
4
|
-
id: string;
|
|
5
|
-
[key: string]: unknown;
|
|
6
|
-
};
|
|
7
|
-
type ToolResultPart = {
|
|
8
|
-
type: "tool_result";
|
|
9
|
-
toolUseId: string;
|
|
10
|
-
tool_use_id?: string;
|
|
11
|
-
isError?: boolean;
|
|
12
|
-
content: Array<{
|
|
13
|
-
type: "text";
|
|
14
|
-
text: string;
|
|
15
|
-
}>;
|
|
16
|
-
[key: string]: unknown;
|
|
17
|
-
};
|
|
18
|
-
type TextPart = {
|
|
19
|
-
type: "text";
|
|
20
|
-
text: string;
|
|
21
|
-
synthetic: true;
|
|
22
|
-
};
|
|
23
|
-
type TransformPart = Part | ToolUsePart | ToolResultPart | TextPart;
|
|
24
|
-
type TransformMessageInfo = Message | {
|
|
25
|
-
role: "user";
|
|
26
|
-
sessionID?: string;
|
|
27
|
-
};
|
|
28
|
-
interface MessageWithParts {
|
|
29
|
-
info: TransformMessageInfo;
|
|
30
|
-
parts: TransformPart[];
|
|
31
|
-
}
|
|
32
|
-
type MessagesTransformHook = {
|
|
33
|
-
"experimental.chat.messages.transform"?: (input: Record<string, never>, output: {
|
|
34
|
-
messages: MessageWithParts[];
|
|
35
|
-
}) => Promise<void>;
|
|
36
|
-
};
|
|
1
|
+
import type { MessagesTransformHook } from "./types";
|
|
37
2
|
export declare function createToolPairValidatorHook(): MessagesTransformHook;
|
|
38
|
-
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TransformPart } from "./types";
|
|
2
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
3
|
+
export declare function getToolUseID(part: TransformPart): string | null;
|
|
4
|
+
export declare function getToolResultID(part: TransformPart): string | null;
|
|
5
|
+
export declare function extractUniqueToolUseIDs(parts: TransformPart[]): string[];
|
|
6
|
+
export declare function extractToolResultIDs(parts: TransformPart[]): Set<string>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MessageWithParts, TransformMessageInfo } from "./types";
|
|
2
|
+
export declare function getMessageSessionID(message: TransformMessageInfo): string | undefined;
|
|
3
|
+
export declare function repairSubAgentMissingToolResults(messages: MessageWithParts[], assistantIndex: number, sessionID: string): void;
|
|
4
|
+
export declare function repairMissingToolResults(messages: MessageWithParts[], assistantIndex: number): void;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Message, Part } from "@opencode-ai/sdk";
|
|
2
|
+
export type ToolUsePart = {
|
|
3
|
+
type: "tool_use";
|
|
4
|
+
id: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
};
|
|
7
|
+
export type ToolResultPart = {
|
|
8
|
+
type: "tool_result";
|
|
9
|
+
toolUseId: string;
|
|
10
|
+
tool_use_id?: string;
|
|
11
|
+
isError?: boolean;
|
|
12
|
+
content: Array<{
|
|
13
|
+
type: "text";
|
|
14
|
+
text: string;
|
|
15
|
+
}>;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
export type TextPart = {
|
|
19
|
+
type: "text";
|
|
20
|
+
text: string;
|
|
21
|
+
synthetic: true;
|
|
22
|
+
};
|
|
23
|
+
export type TransformPart = Part | ToolUsePart | ToolResultPart | TextPart;
|
|
24
|
+
export type TransformMessageInfo = Message | {
|
|
25
|
+
role: "user";
|
|
26
|
+
sessionID?: string;
|
|
27
|
+
};
|
|
28
|
+
export interface MessageWithParts {
|
|
29
|
+
info: TransformMessageInfo;
|
|
30
|
+
parts: TransformPart[];
|
|
31
|
+
}
|
|
32
|
+
export type MessagesTransformHook = {
|
|
33
|
+
"experimental.chat.messages.transform"?: (input: Record<string, never>, output: {
|
|
34
|
+
messages: MessageWithParts[];
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
};
|