@hiai-gg/hiai-opencode 0.2.0 → 0.2.2
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/.env.example +4 -0
- package/AGENTS.md +40 -44
- package/ARCHITECTURE.md +4 -3
- package/LICENSE.md +14 -0
- package/README.md +61 -30
- package/assets/cli/hiai-opencode.mjs +4 -4
- package/config/hiai-opencode.schema.json +11 -13
- package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
- package/dist/agents/bob/core.d.ts +6 -0
- package/dist/agents/bob/gpt.d.ts +11 -0
- package/dist/agents/bob/index.d.ts +3 -0
- package/dist/agents/coder/core.d.ts +4 -0
- package/dist/agents/coder/gpt.d.ts +1 -4
- package/dist/agents/coder/index.d.ts +1 -0
- package/dist/agents/manager/agent.d.ts +1 -1
- package/dist/agents/manager/default-prompt-sections.d.ts +4 -4
- package/dist/agents/manager/guard-integration.d.ts +1 -0
- package/dist/agents/prompt-library/index.d.ts +0 -1
- package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
- package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
- package/dist/agents/strategist/identity-constraints.d.ts +1 -1
- package/dist/agents/strategist/plan-generation.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -1
- package/dist/config/defaults.d.ts +1 -0
- package/dist/config/platform-schema.d.ts +26 -26
- package/dist/config/schema/agent-names.d.ts +6 -6
- package/dist/config/schema/agent-overrides.d.ts +0 -128
- package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
- package/dist/config/types.d.ts +2 -2
- package/dist/features/background-agent/error-classifier.d.ts +1 -0
- package/dist/features/background-agent/manager-notifier.d.ts +46 -0
- package/dist/features/background-agent/manager-types.d.ts +40 -0
- package/dist/features/background-agent/manager.d.ts +3 -19
- package/dist/features/background-agent/polling-manager.d.ts +51 -0
- package/dist/features/boulder-state/constants.d.ts +3 -0
- package/dist/features/boulder-state/storage.d.ts +95 -0
- package/dist/features/boulder-state/types.d.ts +17 -0
- package/dist/features/builtin-commands/templates/doctor.d.ts +1 -1
- package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
- package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
- package/dist/hooks/manager/resolve-active-boulder-session.d.ts +5 -0
- package/dist/hooks/manager/system-reminder-templates.d.ts +2 -2
- package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
- package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
- package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
- package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
- package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
- package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
- package/dist/hooks/start-work/context-info-builder.d.ts +2 -0
- package/dist/hooks/start-work/git-operations.d.ts +47 -0
- package/dist/hooks/start-work/worktree-block.d.ts +2 -1
- package/dist/hooks/start-work/worktree-detector.d.ts +45 -0
- package/dist/hooks/strategist-md-only/agent-resolution.d.ts +1 -1
- package/dist/hooks/strategist-md-only/constants.d.ts +6 -0
- package/dist/hooks/token-budget.d.ts +30 -0
- package/dist/index.js +1275 -1132
- package/dist/mcp/rate-limiter.d.ts +68 -0
- package/dist/plugin/chat-message.d.ts +8 -0
- package/dist/plugin/command-execute-before.d.ts +1 -1
- package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
- package/dist/plugin/event-handlers/session-error.d.ts +2 -0
- package/dist/plugin/event-handlers/session-status.d.ts +2 -0
- package/dist/plugin/event-handlers/types.d.ts +62 -0
- package/dist/plugin/event-handlers/utils.d.ts +11 -0
- package/dist/plugin/event.d.ts +1 -1
- package/dist/shared/data-path.d.ts +1 -1
- package/dist/shared/errors.d.ts +70 -0
- package/dist/shared/extract-session-id.d.ts +8 -0
- package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
- package/dist/shared/index.d.ts +67 -68
- package/dist/shared/internal-initiator-marker.d.ts +1 -1
- package/dist/shared/logger.d.ts +5 -1
- package/dist/shared/reasoning-content-cache.d.ts +68 -0
- package/dist/shared/safe-create-hook.d.ts +4 -4
- package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
- package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
- package/dist/tools/look-at/constants.d.ts +1 -1
- package/docs/architecture/bob-manager-architecture.md +244 -0
- package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
- package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
- package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
- package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
- package/docs/hiai-opencode/api.md +305 -0
- package/docs/hiai-opencode/hooks-architecture.md +225 -0
- package/docs/hiai-opencode/migration.md +209 -0
- package/docs/quickstart.md +1 -1
- package/docs/skill-discovery.md +288 -0
- package/package.json +2 -2
- package/skills/agent-browser/SKILL.md +193 -0
- package/skills/apple-hig/SKILL.md +43 -0
- package/skills/article-magazine/SKILL.md +46 -0
- package/skills/article-magazine/example.html +81 -0
- package/skills/article-magazine/example.md +38 -0
- package/skills/canvas-design/SKILL.md +45 -0
- package/skills/design-templates/audio-jingle/SKILL.md +132 -0
- package/skills/design-templates/audio-jingle/example.html +128 -0
- package/skills/design-templates/blog-post/SKILL.md +80 -0
- package/skills/design-templates/blog-post/example.html +80 -0
- package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
- package/skills/design-templates/clinical-case-report/example.html +698 -0
- package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
- package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
- package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
- package/skills/design-templates/critique/SKILL.md +258 -0
- package/skills/design-templates/critique/example.html +671 -0
- package/skills/design-templates/dashboard/SKILL.md +76 -0
- package/skills/design-templates/dashboard/example.html +118 -0
- package/skills/design-templates/dating-web/SKILL.md +92 -0
- package/skills/design-templates/dating-web/example.html +265 -0
- package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
- package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
- package/skills/design-templates/digital-eguide/SKILL.md +94 -0
- package/skills/design-templates/digital-eguide/example.html +204 -0
- package/skills/design-templates/docs-page/SKILL.md +80 -0
- package/skills/design-templates/docs-page/example.html +122 -0
- package/skills/design-templates/email-marketing/SKILL.md +84 -0
- package/skills/design-templates/email-marketing/example.html +159 -0
- package/skills/design-templates/eng-runbook/SKILL.md +51 -0
- package/skills/design-templates/eng-runbook/example.html +250 -0
- package/skills/design-templates/finance-report/SKILL.md +61 -0
- package/skills/design-templates/finance-report/example.html +242 -0
- package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
- package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
- package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
- package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
- package/skills/design-templates/gamified-app/SKILL.md +108 -0
- package/skills/design-templates/gamified-app/example.html +292 -0
- package/skills/design-templates/github-dashboard/SKILL.md +130 -0
- package/skills/design-templates/github-dashboard/example.html +473 -0
- package/skills/design-templates/github-dashboard/references/README.md +10 -0
- package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
- package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
- package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
- package/skills/design-templates/github-dashboard/references/template.html +473 -0
- package/skills/design-templates/guizang-ppt/LICENSE +21 -0
- package/skills/design-templates/guizang-ppt/README.en.md +119 -0
- package/skills/design-templates/guizang-ppt/README.md +120 -0
- package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
- package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
- package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
- package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
- package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
- package/skills/design-templates/guizang-ppt/references/components.md +363 -0
- package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
- package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
- package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
- package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
- package/skills/design-templates/hr-onboarding/example.html +219 -0
- package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
- package/skills/design-templates/html-ppt/LICENSE +21 -0
- package/skills/design-templates/html-ppt/README.md +234 -0
- package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
- package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
- package/skills/design-templates/html-ppt/SKILL.md +250 -0
- package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
- package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
- package/skills/design-templates/html-ppt/assets/base.css +150 -0
- package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
- package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
- package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
- package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
- package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
- package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
- package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
- package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
- package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
- package/skills/design-templates/html-ppt/references/animations.md +147 -0
- package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
- package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
- package/skills/design-templates/html-ppt/references/layouts.md +103 -0
- package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
- package/skills/design-templates/html-ppt/references/themes.md +107 -0
- package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
- package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
- package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
- package/skills/design-templates/html-ppt/templates/deck.html +69 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
- package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
- package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
- package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
- package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
- package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
- package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
- package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-course-module/example.html +542 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
- package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
- package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
- package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
- package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
- package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
- package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
- package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
- package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
- package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
- package/skills/figma-code-connect-components/SKILL.md +42 -0
- package/skills/figma-create-design-system-rules/SKILL.md +42 -0
- package/skills/figma-create-new-file/SKILL.md +41 -0
- package/skills/figma-generate-design/SKILL.md +42 -0
- package/skills/figma-generate-library/SKILL.md +42 -0
- package/skills/figma-implement-design/SKILL.md +42 -0
- package/skills/figma-use/SKILL.md +42 -0
- package/skills/full-page-screenshot/SKILL.md +42 -0
- package/skills/interview-me/SKILL.md +64 -0
- package/skills/planning-and-task-breakdown/SKILL.md +52 -0
- package/skills/sora/SKILL.md +43 -0
- package/skills/theme-factory/SKILL.md +43 -0
- package/skills/web-design-guidelines/SKILL.md +42 -0
- package/dist/agents/prompt-library/orchestration.d.ts +0 -4
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/frame-template.html +0 -214
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/server.cjs +0 -354
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/visual-companion.md +0 -287
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# API Documentation
|
|
2
|
+
|
|
3
|
+
**hiai-opencode** configuration schema, agent model slots, MCP options, skill discovery, and hook configuration.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Plugin Configuration Schema (`hiai-opencode.json`)
|
|
8
|
+
|
|
9
|
+
The user-facing config file lives at the project root (or `.opencode/hiai-opencode.json`). The canonical JSON Schema is at `config/hiai-opencode.schema.json`.
|
|
10
|
+
|
|
11
|
+
### Top-Level Shape
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"$schema": "./config/hiai-opencode.schema.json",
|
|
16
|
+
"models": { /* 10 primary model slots */ },
|
|
17
|
+
"auth": { /* service auth placeholders */ },
|
|
18
|
+
"mcp": { /* MCP server enable/disable */ },
|
|
19
|
+
"lsp": { /* LSP tool enable/disable */ },
|
|
20
|
+
"skill_discovery": { /* external skill folder scanning */ },
|
|
21
|
+
"subtask2": { "replace_generic": boolean },
|
|
22
|
+
"ralph_loop": { "enabled": boolean, "auto_start_threshold": number }
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Only `models` is required. All other top-level keys are optional.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Agent Model Slots
|
|
31
|
+
|
|
32
|
+
The `models` object holds **10 primary slots** — one per visible agent. Each slot accepts either a plain model-ID string or an object with `model` + optional `recommended`.
|
|
33
|
+
|
|
34
|
+
### TypeScript Interface
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
type ModelSlot =
|
|
38
|
+
| string
|
|
39
|
+
| {
|
|
40
|
+
model: string;
|
|
41
|
+
recommended?:
|
|
42
|
+
| "xhigh" // architectural planning
|
|
43
|
+
| "high" // complex deep work
|
|
44
|
+
| "middle" // guard / gatekeeping
|
|
45
|
+
| "fast" // bounded cheap tasks
|
|
46
|
+
| "design" // UI / visual
|
|
47
|
+
| "writing" // copy / content
|
|
48
|
+
| "vision"; // multimodal extraction
|
|
49
|
+
};
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### The 10 Slots
|
|
53
|
+
|
|
54
|
+
| Config key | Display name | Purpose | Default recommended |
|
|
55
|
+
|---|---|---|---|
|
|
56
|
+
| `bob` | Bob | Orchestrator, router, entry point | `high` |
|
|
57
|
+
| `coder` | Coder | Deep implementation, bounded execution | `fast` |
|
|
58
|
+
| `strategist` | Strategist | Planning, architecture, pre-check | `xhigh` |
|
|
59
|
+
| `manager` | Manager | Delegation orchestrator, TODO tracker, memory steward | `middle` |
|
|
60
|
+
| `critic` | Critic | Review gate, high-accuracy verification | `high` |
|
|
61
|
+
| `designer` | Designer | UI/visual direction via Stitch MCP | `design` |
|
|
62
|
+
| `researcher` | Researcher | Local + external search | `fast` |
|
|
63
|
+
| `writer` | Writer | Copy, content, positioning, SEO | `writing` |
|
|
64
|
+
| `vision` | Vision | PDF/image/diagram extraction, browser UI verification | `vision` |
|
|
65
|
+
| `sub` | Sub | Bounded compatibility wrapper (hidden) | `fast` |
|
|
66
|
+
|
|
67
|
+
> **Note:** `guard` and `brainstormer` are legacy config keys preserved for migration compatibility. They map to `manager` and `writer` respectively via `src/shared/migration/agent-names.ts`. The schema still requires `guard` and `brainstormer` entries, but the runtime resolves them to the canonical slots.
|
|
68
|
+
|
|
69
|
+
### Recommended Effort Tiers
|
|
70
|
+
|
|
71
|
+
The `recommended` field is advisory only — it appends a prompt hint so the agent allocates the right reasoning effort. It does not change routing or enforce limits.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## MCP Server Configuration
|
|
76
|
+
|
|
77
|
+
The `mcp` object in `hiai-opencode.json` is the **user-facing on/off switchboard**. The source of truth for launch wiring (command, env vars, install strategy) is `src/mcp/registry.ts`.
|
|
78
|
+
|
|
79
|
+
### Generic Toggle
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"mcp": {
|
|
84
|
+
"<server>": { "enabled": boolean }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### All MCP Servers
|
|
90
|
+
|
|
91
|
+
| Server | Config key | Default | Key env var | What it enables |
|
|
92
|
+
|---|---|---|---|---|
|
|
93
|
+
| Stitch | `mcp.stitch` | `true` | `STITCH_AI_API_KEY` | Designer: design systems, screen generation |
|
|
94
|
+
| Sequential Thinking | `mcp.sequential-thinking` | `true` | — | Strategist + Critic: deep reasoning |
|
|
95
|
+
| MemPalace | `mcp.mempalace` | `true` | `MEMPALACE_PYTHON` | Manager (primary), all agents (search before answer) |
|
|
96
|
+
| Context7 | `mcp.context7` | `true` | `CONTEXT7_API_KEY` | Researcher + Coder: library API lookup |
|
|
97
|
+
| grep_app | `mcp.grep_app` | `true` | — | Researcher: OSS code pattern search |
|
|
98
|
+
| Agent Browser | `mcp.agentBrowser` | `true` | `AGENT_BROWSER_*` | Coder: browser automation via `/agent-browser` skill |
|
|
99
|
+
|
|
100
|
+
### MemPalace Extended Config
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"mcp": {
|
|
105
|
+
"mempalace": {
|
|
106
|
+
"enabled": true,
|
|
107
|
+
"pythonPath": "{env:MEMPALACE_PYTHON:-./.venv/bin/python}"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
- `pythonPath`: optional explicit Python/Ruv interpreter. Overrides `MEMPALACE_PYTHON` env var.
|
|
114
|
+
- When `HIAI_MCP_AUTO_INSTALL` is not `0`, `false`, or `no`, the launcher attempts `python -m pip install --user mempalace` on first start.
|
|
115
|
+
|
|
116
|
+
### Agent Browser Extended Config
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"mcp": {
|
|
121
|
+
"agentBrowser": {
|
|
122
|
+
"enabled": true,
|
|
123
|
+
"autoInstall": false,
|
|
124
|
+
"sessionPrefix": "hiai-opencode",
|
|
125
|
+
"timeout": 30000,
|
|
126
|
+
"maxBatchCommands": 20
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Environment Variables in MCP Config
|
|
133
|
+
|
|
134
|
+
Use the `{env:VARIABLE_NAME}` placeholder to pass secrets through the env scrubber:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"mcp": {
|
|
139
|
+
"firecrawl-cli": {
|
|
140
|
+
"enabled": true,
|
|
141
|
+
"environment": { "FIRECRAWL_API_KEY": "{env:FIRECRAWL_API_KEY}" }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Explicit `environment` entries are an allowlist and bypass the filter that strips secret-shaped variables from `process.env` before launching stdio MCP servers.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Skill Discovery Options
|
|
152
|
+
|
|
153
|
+
The `skill_discovery` object controls which external skill folders are scanned.
|
|
154
|
+
|
|
155
|
+
### TypeScript Interface
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
interface SkillDiscovery {
|
|
159
|
+
config_sources: boolean; // default: true — hiai-opencode bundled skills
|
|
160
|
+
project_opencode: boolean; // default: true — .opencode/skills in project
|
|
161
|
+
global_opencode: boolean; // default: false — global ~/.opencode/skills/
|
|
162
|
+
project_claude: boolean; // default: false — project-level Claude skills
|
|
163
|
+
global_claude: boolean; // default: false — global ~/.claude/skills/
|
|
164
|
+
project_agents: boolean; // default: false — project-level Agents skills
|
|
165
|
+
global_agents: boolean; // default: false — global agents skills
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Default (Deterministic) Configuration
|
|
170
|
+
|
|
171
|
+
```json
|
|
172
|
+
{
|
|
173
|
+
"skill_discovery": {
|
|
174
|
+
"config_sources": true,
|
|
175
|
+
"project_opencode": true,
|
|
176
|
+
"global_opencode": false,
|
|
177
|
+
"project_claude": false,
|
|
178
|
+
"global_claude": false,
|
|
179
|
+
"project_agents": false,
|
|
180
|
+
"global_agents": false
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Per-Skill Disable
|
|
186
|
+
|
|
187
|
+
To silence noisy individual skills without disabling an entire folder:
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"skills": {
|
|
192
|
+
"disable": ["claude-md-management"]
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Hook Configuration
|
|
200
|
+
|
|
201
|
+
Hooks are registered internally and not directly user-configurable in `hiai-opencode.json`. The hook system intercepts OpenCode lifecycle events.
|
|
202
|
+
|
|
203
|
+
### Configuration via `ralph_loop`
|
|
204
|
+
|
|
205
|
+
Ralph-loop continuation behavior is tunable:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"ralph_loop": {
|
|
210
|
+
"enabled": true,
|
|
211
|
+
"auto_start_threshold": 5
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
- `enabled`: whether ralph-loop is active
|
|
217
|
+
- `auto_start_threshold`: auto-start ralph-loop when this many or more open todos exist in a single session. `0` disables auto-start.
|
|
218
|
+
|
|
219
|
+
### Compaction Configuration
|
|
220
|
+
|
|
221
|
+
Compaction is triggered automatically at 78% context usage. Per-agent compaction model overrides can be set via:
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"agents": {
|
|
226
|
+
"<agentName>": {
|
|
227
|
+
"compaction": {
|
|
228
|
+
"model": "provider/model-id"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Available Hooks (55 total)
|
|
236
|
+
|
|
237
|
+
| Tier | Count | Files | Purpose |
|
|
238
|
+
|---|---|---|---|
|
|
239
|
+
| Core | 45 | `createSessionHooks` (23), `createToolGuardHooks` (16), `createTransformHooks` (6) | Primary session monitoring, tool guards, message transforms |
|
|
240
|
+
| Continuation | 8 | `createContinuationHooks` | Todo enforcement, stop-continuation guard, compaction context, session recovery |
|
|
241
|
+
| Skill | 2 | `createSkillHooks` | Category skill reminder, auto-slash command |
|
|
242
|
+
|
|
243
|
+
### Key Compaction Hooks
|
|
244
|
+
|
|
245
|
+
| Hook | Handler | Purpose |
|
|
246
|
+
|---|---|---|
|
|
247
|
+
| `preemptive-compaction` | `tool.execute.after`, `event` | Triggers `session.summarize()` when usage > 78% |
|
|
248
|
+
| `context-window-monitor` | `tool.execute.after`, `event` | Injects usage reminder at > 70% |
|
|
249
|
+
| `compaction-context-injector` | `experimental.session.compacting` | Injects checkpoint context post-compaction |
|
|
250
|
+
| `compaction-todo-preserver` | `experimental.session.compacting` | Preserves/restores todo list around compaction |
|
|
251
|
+
| `anthropic-context-window-limit-recovery` | `event` | Multi-strategy error recovery |
|
|
252
|
+
|
|
253
|
+
See [hooks-architecture.md](./hooks-architecture.md) for the full architecture.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Ralph-Loop Configuration
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"ralph_loop": {
|
|
262
|
+
"enabled": true,
|
|
263
|
+
"auto_start_threshold": 5
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
The ralph-loop continuation engine runs an explicit completion loop for multi-todo sessions. It stops on `<promise>DONE</promise>`. Cancel with `/cancel-ralph`.
|
|
269
|
+
|
|
270
|
+
| Field | Type | Default | Description |
|
|
271
|
+
|---|---|---|---|
|
|
272
|
+
| `enabled` | boolean | `true` | Whether ralph-loop is enabled |
|
|
273
|
+
| `auto_start_threshold` | number | `0` | Auto-start when open todos ≥ this value. `0` disables |
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## LSP Configuration
|
|
278
|
+
|
|
279
|
+
LSP tool defaults (not runtime language servers):
|
|
280
|
+
|
|
281
|
+
```json
|
|
282
|
+
{
|
|
283
|
+
"lsp": {
|
|
284
|
+
"typescript": { "enabled": true },
|
|
285
|
+
"svelte": { "enabled": true },
|
|
286
|
+
"eslint": { "enabled": true },
|
|
287
|
+
"bash": { "enabled": true },
|
|
288
|
+
"pyright": { "enabled": true }
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Subtask2 Configuration
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"subtask2": {
|
|
300
|
+
"replace_generic": true
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
When `true`, generic `task()` responses are replaced with a structured return prompt before the parent agent sees them.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# ARC-001: Hook Architecture
|
|
2
|
+
|
|
3
|
+
**Owner:** hiai-opencode core
|
|
4
|
+
**Status:** Implemented
|
|
5
|
+
**Created:** 2026-05-15
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The hook system is the primary extension point for hiai-opencode. It intercepts OpenCode lifecycle events (session lifecycle, tool execution, message updates) and allows the plugin to react, inject context, or trigger side effects.
|
|
10
|
+
|
|
11
|
+
Hooks are registered as handlers on OpenCode's plugin interface. Each hook returns an object with one or more handler methods corresponding to OpenCode hook types: `event`, `tool.execute.before`, `tool.execute.after`, `experimental.chat.messages.transform`, and `experimental.session.compacting`.
|
|
12
|
+
|
|
13
|
+
## Hook Tiers
|
|
14
|
+
|
|
15
|
+
Hooks are organized into three tiers:
|
|
16
|
+
|
|
17
|
+
| Tier | Count | Files | Purpose |
|
|
18
|
+
|------|-------|-------|---------|
|
|
19
|
+
| **Core** | 43 | `create-core-hooks.ts` → `createSessionHooks` (22), `createToolGuardHooks` (15), `createTransformHooks` (6) | Primary session monitoring, tool guards, message transforms |
|
|
20
|
+
| **Continuation** | 8 | `create-continuation-hooks.ts` | Todo enforcement, stop-continuation guard, compaction context, session recovery, delegate task retry |
|
|
21
|
+
| **Skill** | 2 | `create-skill-hooks.ts` | Category skill reminder, auto-slash command |
|
|
22
|
+
|
|
23
|
+
Total: **53 hooks** across the three tiers.
|
|
24
|
+
|
|
25
|
+
## Compaction System Architecture
|
|
26
|
+
|
|
27
|
+
The compaction system prevents context window exhaustion through a layered approach:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
┌─────────────────────────────────────────────────────┐
|
|
31
|
+
│ Compaction Flow │
|
|
32
|
+
│ │
|
|
33
|
+
│ Preemptive Compaction │
|
|
34
|
+
│ ├── Trigger: usage ratio > 78% after assistant msg │
|
|
35
|
+
│ ├── monitor: tokenCache (providerID, modelID, tokens)│
|
|
36
|
+
│ ├── guard: isCompacting() — prevents concurrent │
|
|
37
|
+
│ └── action: session.summarize() with timeout │
|
|
38
|
+
│ │
|
|
39
|
+
│ Auto-Compact (error-triggered) │
|
|
40
|
+
│ ├── Trigger: session.error with parsed token limit │
|
|
41
|
+
│ ├── Strategy 1: empty-content-recovery │
|
|
42
|
+
│ ├── Strategy 2: deduplication │
|
|
43
|
+
│ ├── Strategy 3: target-token-truncation │
|
|
44
|
+
│ ├── Strategy 4: aggressive-truncation │
|
|
45
|
+
│ └── Strategy 5: summarize-retry │
|
|
46
|
+
│ │
|
|
47
|
+
│ Post-Compaction Degradation Monitor │
|
|
48
|
+
│ ├── Track: 5 messages after compaction │
|
|
49
|
+
│ ├── Trigger: 3 consecutive no-text responses │
|
|
50
|
+
│ ├── Action: recovery compaction with toast │
|
|
51
|
+
│ └── Guard: MAX_RECOVERY_ATTEMPTS=3 │
|
|
52
|
+
└─────────────────────────────────────────────────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Key Hooks
|
|
56
|
+
|
|
57
|
+
### `preemptive-compaction.ts`
|
|
58
|
+
|
|
59
|
+
**Type:** Core — Session hook
|
|
60
|
+
**Handlers:** `tool.execute.after`, `event`
|
|
61
|
+
|
|
62
|
+
Preemptively triggers compaction when the session's token usage exceeds 78% of the resolved context limit. It does not wait for an error.
|
|
63
|
+
|
|
64
|
+
**Trigger conditions:**
|
|
65
|
+
- Usage ratio `(inputTokens + cacheReadTokens) / actualLimit > 0.78`
|
|
66
|
+
- Session has a cached token state (populated via `message.updated`)
|
|
67
|
+
- No active compaction in progress (`isCompacting()`)
|
|
68
|
+
- Cooldown elapsed (>60s since last compaction attempt)
|
|
69
|
+
|
|
70
|
+
**Key functions:**
|
|
71
|
+
- `withTimeout(promise, 60_000)` — hard timeout on summarize call
|
|
72
|
+
- `resolveCompactionModel()` — resolves per-agent compaction model override from `pluginConfig.agents.<agent>.compaction.model`
|
|
73
|
+
- `markCompacting()` / `markCompactionDone()` — shared state guard
|
|
74
|
+
|
|
75
|
+
**Dependencies:** `shared/compaction-in-progress` (isCompacting, markCompacting, markCompactionDone)
|
|
76
|
+
|
|
77
|
+
### `context-window-monitor.ts`
|
|
78
|
+
|
|
79
|
+
**Type:** Core — Session hook
|
|
80
|
+
**Handlers:** `tool.execute.after`, `event`
|
|
81
|
+
|
|
82
|
+
Monitors context usage and injects a reminder directive when usage exceeds 70%. Unlike preemptive compaction, this does not trigger compaction — it only advises the agent to be more concise.
|
|
83
|
+
|
|
84
|
+
**Trigger conditions:**
|
|
85
|
+
- Usage ratio > 0.70 after assistant message finish
|
|
86
|
+
- Session not yet reminded
|
|
87
|
+
|
|
88
|
+
**Effect:** Appends to tool output:
|
|
89
|
+
```
|
|
90
|
+
[Context Status: {usedPct}% used ({usedTokens}/{limitTokens} tokens), {remainingPct}% remaining]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### `anthropic-context-window-limit-recovery/`
|
|
94
|
+
|
|
95
|
+
**Type:** Core — Session hook (disposable)
|
|
96
|
+
**Handler:** `event`
|
|
97
|
+
|
|
98
|
+
Recovers from context window limit errors using a multi-strategy approach applied in sequence.
|
|
99
|
+
|
|
100
|
+
**Recovery strategies (priority order):**
|
|
101
|
+
|
|
102
|
+
| Strategy | File | Mechanism |
|
|
103
|
+
|----------|------|-----------|
|
|
104
|
+
| Empty content recovery | `empty-content-recovery.ts` | Handle empty/null content blocks in messages |
|
|
105
|
+
| Deduplication | `deduplication-recovery.ts` | Remove duplicate tool results from context |
|
|
106
|
+
| Target token truncation | `target-token-truncation.ts` | Truncate largest tool outputs to fit 50% target ratio |
|
|
107
|
+
| Aggressive truncation | `aggressive-truncation-strategy.ts` | Last-resort truncation with minimal output preservation |
|
|
108
|
+
| Summarize retry | `summarize-retry-strategy.ts` | Compaction + summarization then retry |
|
|
109
|
+
|
|
110
|
+
**Event handling:**
|
|
111
|
+
- `session.error` — parse error with `parseAnthropicTokenLimitError()`, schedule compaction with 300ms delay
|
|
112
|
+
- `message.updated` — capture error info if role=assistant with error
|
|
113
|
+
- `session.idle` — execute compaction if session is in pendingCompact state and has no summary
|
|
114
|
+
|
|
115
|
+
**Configuration:**
|
|
116
|
+
- Max attempts: 2
|
|
117
|
+
- Initial delay: 2s, backoff ×2, max 30s
|
|
118
|
+
- Max truncation attempts: 20
|
|
119
|
+
- Target token ratio: 0.5
|
|
120
|
+
|
|
121
|
+
### `compaction-context-injector/`
|
|
122
|
+
|
|
123
|
+
**Type:** Core — Transform hook (on `experimental.session.compacting`)
|
|
124
|
+
**Handlers:** `capture(sessionID)`, `inject(sessionID?)`, `event`
|
|
125
|
+
|
|
126
|
+
Injects context around compaction events. The `capture` function saves the agent config checkpoint before compaction. The `inject` function appends the compaction context prompt after compaction.
|
|
127
|
+
|
|
128
|
+
**Event handling:**
|
|
129
|
+
- `session.compacted` — recovers checkpointed agent config, warns about no-text tails
|
|
130
|
+
- `session.idle` — finalizes tracked assistant messages
|
|
131
|
+
- `message.part.delta` — tracks text output to detect no-text tails
|
|
132
|
+
|
|
133
|
+
**Key behavior:** Integrates with `backgroundManager.taskHistory` to inject active delegated session history into the compaction context prompt.
|
|
134
|
+
|
|
135
|
+
### `compaction-todo-preserver/`
|
|
136
|
+
|
|
137
|
+
**Type:** Core — Transform hook (on `experimental.session.compacting`)
|
|
138
|
+
**Handlers:** `capture(sessionID)`, `event`
|
|
139
|
+
|
|
140
|
+
Captures the todo list before compaction and restores it after.
|
|
141
|
+
|
|
142
|
+
**Event handling:**
|
|
143
|
+
- `session.compacted` — restores todos via `opencode/session/todo`'s `Todo.update`
|
|
144
|
+
- `session.deleted` — clears local snapshot
|
|
145
|
+
|
|
146
|
+
**Behavior:** Skips restore if todos already exist post-compaction.
|
|
147
|
+
|
|
148
|
+
## Shared State
|
|
149
|
+
|
|
150
|
+
### `shared/compaction-in-progress.ts`
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
const compactionInProgress = new Set<string>()
|
|
154
|
+
|
|
155
|
+
export function isCompacting(sessionID: string): boolean
|
|
156
|
+
export function markCompacting(sessionID: string): void
|
|
157
|
+
export function markCompactionDone(sessionID: string): void
|
|
158
|
+
export function clearSession(sessionID: string): void
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Prevents concurrent compaction attempts on the same session. Used by `preemptive-compaction.ts`, `preemptive-compaction-degradation-monitor.ts`, and `anthropic-context-window-limit-recovery/recovery-hook.ts`.
|
|
162
|
+
|
|
163
|
+
### `shared/compaction-model-resolver.ts`
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
resolveCompactionModel(
|
|
167
|
+
pluginConfig: HiaiOpenCodeConfig,
|
|
168
|
+
sessionID: string,
|
|
169
|
+
originalProviderID: string,
|
|
170
|
+
originalModelID: string
|
|
171
|
+
): { providerID: string; modelID: string }
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Resolves which model to use for compaction, reading from the session's assigned agent name. Falls back to the original model if no override is configured.
|
|
175
|
+
|
|
176
|
+
## Hook Execution Order
|
|
177
|
+
|
|
178
|
+
Hooks are executed in registration order. OpenCode calls handlers synchronously per hook type. The execution order across tiers is not deterministic — each hook type (`event`, `tool.execute.after`, etc.) runs its registered hooks in the order they were composed in `createHooks()`.
|
|
179
|
+
|
|
180
|
+
**Observed execution order for compaction:**
|
|
181
|
+
|
|
182
|
+
1. `context-window-monitor` — `tool.execute.after`: checks usage ratio, does not trigger compaction
|
|
183
|
+
2. `preemptive-compaction` — `tool.execute.after`: checks usage ratio, may trigger compaction via `session.summarize()`
|
|
184
|
+
3. `preemptive-compaction-degradation-monitor` — driven by `preemptive-compaction` callback, monitors post-compaction messages
|
|
185
|
+
4. `compaction-context-injector` — `experimental.session.compacting`: injects context
|
|
186
|
+
5. `compaction-todo-preserver` — `experimental.session.compacting`: preserves todos
|
|
187
|
+
6. `anthropic-context-window-limit-recovery` — `event` (`session.error`): handles error-based compaction
|
|
188
|
+
|
|
189
|
+
## Error Handling
|
|
190
|
+
|
|
191
|
+
- **`withTimeout` wrapper:** All `session.summarize()` calls are wrapped in a timeout (60s preemptive, 120s recovery). On timeout, the compaction is considered failed and the session continues.
|
|
192
|
+
- **Toast notifications:** Failures in preemptive compaction show a warning toast. Recovery compaction shows a "Session Degradation Detected" toast.
|
|
193
|
+
- **Per-hook isolation:** The `safeHook()` wrapper in composition files catches errors per-hook without breaking the chain. A failing hook does not prevent other hooks from running.
|
|
194
|
+
- **`dispose()`:** Some hooks expose a `dispose()` function to clean up timers and state. These are called via `disposeCreatedHooks()` when the plugin shuts down.
|
|
195
|
+
|
|
196
|
+
## Hook Handler Types
|
|
197
|
+
|
|
198
|
+
| Handler | File pattern | Purpose |
|
|
199
|
+
|---------|-------------|---------|
|
|
200
|
+
| `event` | Most session hooks | Handle session lifecycle events: `session.created`, `session.deleted`, `session.idle`, `session.error`, `session.compacted`, `message.updated` |
|
|
201
|
+
| `tool.execute.before` | Tool guard hooks | Inspect/modify tool input before execution |
|
|
202
|
+
| `tool.execute.after` | Tool guard hooks, monitoring hooks | Inspect/modify tool output after execution |
|
|
203
|
+
| `experimental.chat.messages.transform` | Transform hooks | Modify message content before sending to model |
|
|
204
|
+
| `experimental.session.compacting` | Compaction hooks | Capture/restore state around compaction |
|
|
205
|
+
|
|
206
|
+
## Key Files Reference
|
|
207
|
+
|
|
208
|
+
| File | Purpose |
|
|
209
|
+
|------|---------|
|
|
210
|
+
| `src/create-hooks.ts` | Top-level hook composition — `createCoreHooks()` + `createContinuationHooks()` + `createSkillHooks()` |
|
|
211
|
+
| `src/plugin/hooks/create-core-hooks.ts` | Aggregates session, tool guard, and transform hooks |
|
|
212
|
+
| `src/plugin/hooks/create-session-hooks.ts` | 22 session lifecycle hooks |
|
|
213
|
+
| `src/plugin/hooks/create-tool-guard-hooks.ts` | 15 pre/post tool execution guards |
|
|
214
|
+
| `src/plugin/hooks/create-transform-hooks.ts` | 6 message transform hooks |
|
|
215
|
+
| `src/plugin/hooks/create-continuation-hooks.ts` | 8 continuation/todo hooks |
|
|
216
|
+
| `src/plugin/hooks/create-skill-hooks.ts` | 2 skill hooks |
|
|
217
|
+
| `src/hooks/shared/compaction-in-progress.ts` | Shared compaction lock |
|
|
218
|
+
| `src/hooks/shared/compaction-model-resolver.ts` | Per-agent compaction model resolution |
|
|
219
|
+
| `src/hooks/preemptive-compaction.ts` | Preemptive compaction trigger |
|
|
220
|
+
| `src/hooks/preemptive-compaction-degradation-monitor.ts` | Post-compaction degradation detection |
|
|
221
|
+
| `src/hooks/preemptive-compaction-no-text-tail.ts` | Detects no-text assistant responses |
|
|
222
|
+
| `src/hooks/context-window-monitor.ts` | Context usage reminder |
|
|
223
|
+
| `src/hooks/anthropic-context-window-limit-recovery/` | Multi-strategy error recovery (~31 files) |
|
|
224
|
+
| `src/hooks/compaction-context-injector/` | Compaction context injection |
|
|
225
|
+
| `src/hooks/compaction-todo-preserver/` | Todo preservation |
|