@hivehub/rulebook 5.7.0 → 5.8.1
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/.claude/commands/analysis.md +35 -35
- package/.claude/commands/continue.md +33 -33
- package/.claude/commands/rulebook-decision-create.md +55 -55
- package/.claude/commands/rulebook-decision-list.md +15 -15
- package/.claude/commands/rulebook-knowledge-add.md +41 -41
- package/.claude/commands/rulebook-knowledge-list.md +15 -15
- package/.claude/commands/rulebook-memory-save.md +48 -48
- package/.claude/commands/rulebook-memory-search.md +47 -47
- package/.claude/commands/rulebook-task-apply.md +67 -67
- package/.claude/commands/rulebook-task-archive.md +94 -94
- package/.claude/commands/rulebook-task-create.md +93 -93
- package/.claude/commands/rulebook-task-list.md +42 -42
- package/.claude/commands/rulebook-task-show.md +52 -52
- package/.claude/commands/rulebook-task-validate.md +53 -53
- package/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +86 -0
- package/dist/cli/commands/claude.d.ts +17 -0
- package/dist/cli/commands/claude.d.ts.map +1 -0
- package/dist/cli/commands/claude.js +56 -0
- package/dist/cli/commands/claude.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +18 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +6 -1
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/prompts.d.ts +13 -0
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +106 -0
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/claude/claude-mcp.d.ts +10 -1
- package/dist/core/claude/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude/claude-mcp.js +48 -2
- package/dist/core/claude/claude-mcp.js.map +1 -1
- package/dist/core/claude/claude-settings-manager.d.ts +12 -0
- package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude/claude-settings-manager.js +59 -3
- package/dist/core/claude/claude-settings-manager.js.map +1 -1
- package/dist/core/detect/detector.d.ts +8 -1
- package/dist/core/detect/detector.d.ts.map +1 -1
- package/dist/core/detect/detector.js +225 -0
- package/dist/core/detect/detector.js.map +1 -1
- package/dist/core/detect/library-registry.d.ts +40 -0
- package/dist/core/detect/library-registry.d.ts.map +1 -0
- package/dist/core/detect/library-registry.js +239 -0
- package/dist/core/detect/library-registry.js.map +1 -0
- package/dist/core/generators/generator.d.ts +2 -1
- package/dist/core/generators/generator.d.ts.map +1 -1
- package/dist/core/generators/generator.js +38 -1
- package/dist/core/generators/generator.js.map +1 -1
- package/dist/core/generators/rules-generator.d.ts +1 -5
- package/dist/core/generators/rules-generator.d.ts.map +1 -1
- package/dist/core/generators/rules-generator.js +40 -1
- package/dist/core/generators/rules-generator.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.js +0 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -22
- package/templates/agents/accessibility-reviewer.md +43 -43
- package/templates/agents/api-designer.md +42 -42
- package/templates/agents/architect.md +51 -51
- package/templates/agents/build-engineer.md +36 -36
- package/templates/agents/code-reviewer.md +47 -47
- package/templates/agents/compiler/codegen-debugger.md +34 -34
- package/templates/agents/compiler/stdlib-engineer.md +28 -28
- package/templates/agents/compiler/test-coverage-guardian.md +31 -31
- package/templates/agents/database-architect.md +41 -41
- package/templates/agents/devops-engineer.md +42 -42
- package/templates/agents/docs-writer.md +38 -38
- package/templates/agents/game-engine/cpp-core-expert.md +35 -35
- package/templates/agents/game-engine/render-engineer.md +22 -22
- package/templates/agents/game-engine/shader-engineer.md +38 -38
- package/templates/agents/game-engine/systems-integration.md +43 -43
- package/templates/agents/generic/code-reviewer.md +41 -41
- package/templates/agents/generic/docs-writer.md +25 -25
- package/templates/agents/generic/project-manager.md +36 -36
- package/templates/agents/generic/researcher.md +34 -34
- package/templates/agents/generic/test-engineer.md +41 -41
- package/templates/agents/i18n-engineer.md +42 -42
- package/templates/agents/implementer.md +42 -42
- package/templates/agents/migration-engineer.md +42 -42
- package/templates/agents/mobile/platform-specialist.md +22 -22
- package/templates/agents/mobile/ui-engineer.md +22 -22
- package/templates/agents/performance-engineer.md +49 -49
- package/templates/agents/project-manager.md +217 -0
- package/templates/agents/quality-gatekeeper.md +208 -0
- package/templates/agents/refactoring-agent.md +41 -41
- package/templates/agents/researcher.md +38 -38
- package/templates/agents/security-reviewer.md +40 -40
- package/templates/agents/team-lead.md +37 -37
- package/templates/agents/tester.md +48 -48
- package/templates/agents/ux-reviewer.md +43 -43
- package/templates/agents/web-app/api-designer.md +22 -22
- package/templates/agents/web-app/backend-engineer.md +30 -30
- package/templates/agents/web-app/database-engineer.md +22 -22
- package/templates/agents/web-app/frontend-engineer.md +29 -29
- package/templates/agents/web-app/security-reviewer.md +32 -32
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/claude-workflows/bugfix.js +94 -0
- package/templates/claude-workflows/feature-pipeline.js +88 -0
- package/templates/claude-workflows/release-gate.js +64 -0
- package/templates/claude-workflows/review-fanout.js +125 -0
- package/templates/claude-workflows/rulebook-driver.js +382 -0
- package/templates/claude-workflows/spec-author.js +133 -0
- package/templates/cli/AIDER.md +49 -49
- package/templates/cli/AMAZON_Q.md +25 -25
- package/templates/cli/AUGGIE.md +32 -32
- package/templates/cli/CLAUDE.md +117 -117
- package/templates/cli/CLINE.md +99 -99
- package/templates/cli/CODEBUDDY.md +20 -20
- package/templates/cli/CODEIUM.md +20 -20
- package/templates/cli/CODEX.md +21 -21
- package/templates/cli/CONTINUE.md +34 -34
- package/templates/cli/CURSOR_CLI.md +62 -62
- package/templates/cli/FACTORY.md +18 -18
- package/templates/cli/GEMINI.md +35 -35
- package/templates/cli/KILOCODE.md +18 -18
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/commands/rulebook-decision-create.md +55 -55
- package/templates/commands/rulebook-decision-list.md +15 -15
- package/templates/commands/rulebook-knowledge-add.md +41 -41
- package/templates/commands/rulebook-knowledge-list.md +15 -15
- package/templates/commands/rulebook-memory-save.md +48 -48
- package/templates/commands/rulebook-memory-search.md +47 -47
- package/templates/commands/rulebook-task-apply.md +67 -67
- package/templates/commands/rulebook-task-archive.md +94 -94
- package/templates/commands/rulebook-task-create.md +93 -93
- package/templates/commands/rulebook-task-list.md +42 -42
- package/templates/commands/rulebook-task-show.md +52 -52
- package/templates/commands/rulebook-task-validate.md +53 -53
- package/templates/compact-context/_default.md +23 -23
- package/templates/compact-context/cpp.md +26 -26
- package/templates/compact-context/go.md +26 -26
- package/templates/compact-context/python.md +26 -26
- package/templates/compact-context/rust.md +28 -28
- package/templates/compact-context/typescript.md +29 -29
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- package/templates/core/CLAUDE_MD_v2.md +90 -90
- package/templates/core/DAG.md +304 -304
- package/templates/core/DECISIONS.md +38 -38
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- package/templates/core/KNOWLEDGE.md +49 -49
- package/templates/core/MULTI_AGENT.md +74 -74
- package/templates/core/PLANS.md +28 -28
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
- package/templates/core/RULEBOOK.md +1947 -1947
- package/templates/core/TIER1_PROHIBITIONS.md +154 -154
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
- package/templates/git/CI_CD_PATTERNS.md +661 -661
- package/templates/git/GITHUB_ACTIONS.md +728 -728
- package/templates/git/GITLAB_CI.md +730 -730
- package/templates/git/GIT_WORKFLOW.md +1192 -1192
- package/templates/git/SECRETS_MANAGEMENT.md +585 -585
- package/templates/hooks/COMMIT_MSG.md +530 -530
- package/templates/hooks/POST_CHECKOUT.md +546 -546
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
- package/templates/hooks/PRE_COMMIT.md +414 -414
- package/templates/hooks/PRE_PUSH.md +601 -601
- package/templates/hooks/check-context-and-handoff.sh +16 -6
- package/templates/hooks/update-check.ps1 +84 -0
- package/templates/hooks/update-check.sh +103 -0
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/languages/C.md +333 -333
- package/templates/languages/CPP.md +743 -743
- package/templates/languages/CSHARP.md +417 -417
- package/templates/languages/ELIXIR.md +454 -454
- package/templates/languages/ERLANG.md +361 -361
- package/templates/languages/GO.md +645 -645
- package/templates/languages/HASKELL.md +177 -177
- package/templates/languages/JAVA.md +607 -607
- package/templates/languages/JAVASCRIPT.md +631 -631
- package/templates/languages/JULIA.md +97 -97
- package/templates/languages/KOTLIN.md +511 -511
- package/templates/languages/LISP.md +100 -100
- package/templates/languages/LUA.md +74 -74
- package/templates/languages/OBJECTIVEC.md +90 -90
- package/templates/languages/PHP.md +416 -416
- package/templates/languages/PYTHON.md +682 -682
- package/templates/languages/RUBY.md +421 -421
- package/templates/languages/RUST.md +477 -477
- package/templates/languages/SAS.md +73 -73
- package/templates/languages/SCALA.md +348 -348
- package/templates/languages/SOLIDITY.md +580 -580
- package/templates/languages/SQL.md +137 -137
- package/templates/languages/SWIFT.md +466 -466
- package/templates/languages/TYPESCRIPT.md +591 -591
- package/templates/languages/ZIG.md +265 -265
- package/templates/libraries/go/ECHO.md +18 -0
- package/templates/libraries/go/GIN.md +18 -0
- package/templates/libraries/go/GORM.md +18 -0
- package/templates/libraries/python/DJANGO.md +18 -0
- package/templates/libraries/python/FASTAPI.md +18 -0
- package/templates/libraries/python/FLASK.md +17 -0
- package/templates/libraries/python/PYDANTIC.md +17 -0
- package/templates/libraries/python/PYTEST.md +17 -0
- package/templates/libraries/python/SQLALCHEMY.md +17 -0
- package/templates/libraries/rust/ACTIX.md +17 -0
- package/templates/libraries/rust/AXUM.md +18 -0
- package/templates/libraries/rust/SERDE.md +16 -0
- package/templates/libraries/rust/SQLX.md +17 -0
- package/templates/libraries/rust/TOKIO.md +16 -0
- package/templates/libraries/typescript/ANGULAR.md +17 -0
- package/templates/libraries/typescript/DRIZZLE.md +16 -0
- package/templates/libraries/typescript/EXPRESS.md +17 -0
- package/templates/libraries/typescript/HEROUI.md +16 -0
- package/templates/libraries/typescript/JEST.md +17 -0
- package/templates/libraries/typescript/NESTJS.md +17 -0
- package/templates/libraries/typescript/NEXT.md +18 -0
- package/templates/libraries/typescript/PRISMA.md +16 -0
- package/templates/libraries/typescript/RADIX.md +16 -0
- package/templates/libraries/typescript/REACT.md +18 -0
- package/templates/libraries/typescript/SHADCN.md +16 -0
- package/templates/libraries/typescript/SVELTE.md +16 -0
- package/templates/libraries/typescript/TAILWIND.md +16 -0
- package/templates/libraries/typescript/TRPC.md +16 -0
- package/templates/libraries/typescript/VITEST.md +17 -0
- package/templates/libraries/typescript/VUE.md +17 -0
- package/templates/libraries/typescript/ZOD.md +17 -0
- package/templates/modules/ATLASSIAN.md +255 -255
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/FIGMA.md +267 -267
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/GRAFANA.md +328 -328
- package/templates/modules/MEMORY.md +126 -126
- package/templates/modules/NOTION.md +247 -247
- package/templates/modules/PLAYWRIGHT.md +90 -90
- package/templates/modules/RULEBOOK_MCP.md +208 -208
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/rules/consult-analysis-before-implementing.md +23 -23
- package/templates/rules/cpp.md +46 -46
- package/templates/rules/csharp.md +44 -44
- package/templates/rules/diagnostic-first.md +39 -39
- package/templates/rules/fail-twice-escalate.md +46 -46
- package/templates/rules/follow-task-sequence.md +36 -36
- package/templates/rules/git-safety.md +29 -29
- package/templates/rules/go.md +40 -40
- package/templates/rules/incremental-implementation.md +56 -56
- package/templates/rules/incremental-tests.md +29 -29
- package/templates/rules/java.md +43 -43
- package/templates/rules/javascript.md +39 -39
- package/templates/rules/knowledge-base-usage.md +41 -41
- package/templates/rules/multi-agent-teams.md +75 -75
- package/templates/rules/no-deferred.md +31 -31
- package/templates/rules/no-shortcuts.md +30 -30
- package/templates/rules/python.md +43 -43
- package/templates/rules/research-first.md +30 -30
- package/templates/rules/respect-handoff-trigger.md +41 -41
- package/templates/rules/rust.md +40 -40
- package/templates/rules/sequential-editing.md +21 -21
- package/templates/rules/session-workflow.md +24 -24
- package/templates/rules/task-decomposition.md +32 -32
- package/templates/rules/typescript.md +40 -40
- package/templates/skills/cli/aider/SKILL.md +59 -59
- package/templates/skills/cli/amazon-q/SKILL.md +35 -35
- package/templates/skills/cli/auggie/SKILL.md +42 -42
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/cli/cline/SKILL.md +42 -42
- package/templates/skills/cli/codebuddy/SKILL.md +30 -30
- package/templates/skills/cli/codeium/SKILL.md +30 -30
- package/templates/skills/cli/codex/SKILL.md +31 -31
- package/templates/skills/cli/continue/SKILL.md +44 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
- package/templates/skills/cli/factory/SKILL.md +28 -28
- package/templates/skills/cli/gemini/SKILL.md +45 -45
- package/templates/skills/cli/kilocode/SKILL.md +28 -28
- package/templates/skills/core/agent-automation/SKILL.md +194 -194
- package/templates/skills/core/dag/SKILL.md +314 -314
- package/templates/skills/core/documentation-rules/SKILL.md +46 -46
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
- package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
- package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
- package/templates/skills/dev/accessibility/SKILL.md +17 -17
- package/templates/skills/dev/analysis/SKILL.md +19 -19
- package/templates/skills/dev/api-design/SKILL.md +15 -15
- package/templates/skills/dev/architect/SKILL.md +17 -17
- package/templates/skills/dev/build-fix/SKILL.md +17 -17
- package/templates/skills/dev/db-design/SKILL.md +15 -15
- package/templates/skills/dev/debug/SKILL.md +16 -16
- package/templates/skills/dev/deploy/SKILL.md +17 -17
- package/templates/skills/dev/docs/SKILL.md +17 -17
- package/templates/skills/dev/handoff/SKILL.md +27 -27
- package/templates/skills/dev/migrate/SKILL.md +15 -15
- package/templates/skills/dev/perf/SKILL.md +17 -17
- package/templates/skills/dev/refactor/SKILL.md +17 -17
- package/templates/skills/dev/research/SKILL.md +14 -14
- package/templates/skills/dev/review/SKILL.md +18 -18
- package/templates/skills/dev/security-audit/SKILL.md +17 -17
- package/templates/skills/dev/spec/SKILL.md +65 -0
- package/templates/skills/ides/copilot/SKILL.md +47 -47
- package/templates/skills/ides/cursor/SKILL.md +53 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
- package/templates/skills/ides/replit/SKILL.md +46 -46
- package/templates/skills/ides/tabnine/SKILL.md +39 -39
- package/templates/skills/ides/vscode/SKILL.md +50 -50
- package/templates/skills/ides/windsurf/SKILL.md +46 -46
- package/templates/skills/ides/zed/SKILL.md +42 -42
- package/templates/skills/languages/c/SKILL.md +343 -343
- package/templates/skills/languages/cpp/SKILL.md +753 -753
- package/templates/skills/languages/csharp/SKILL.md +427 -427
- package/templates/skills/languages/elixir/SKILL.md +464 -464
- package/templates/skills/languages/erlang/SKILL.md +371 -371
- package/templates/skills/languages/go/SKILL.md +655 -655
- package/templates/skills/languages/haskell/SKILL.md +187 -187
- package/templates/skills/languages/java/SKILL.md +617 -617
- package/templates/skills/languages/javascript/SKILL.md +641 -641
- package/templates/skills/languages/julia/SKILL.md +107 -107
- package/templates/skills/languages/kotlin/SKILL.md +521 -521
- package/templates/skills/languages/lisp/SKILL.md +110 -110
- package/templates/skills/languages/lua/SKILL.md +84 -84
- package/templates/skills/languages/objectivec/SKILL.md +100 -100
- package/templates/skills/languages/php/SKILL.md +426 -426
- package/templates/skills/languages/python/SKILL.md +692 -692
- package/templates/skills/languages/ruby/SKILL.md +431 -431
- package/templates/skills/languages/rust/SKILL.md +487 -487
- package/templates/skills/languages/sas/SKILL.md +83 -83
- package/templates/skills/languages/scala/SKILL.md +358 -358
- package/templates/skills/languages/solidity/SKILL.md +590 -590
- package/templates/skills/languages/sql/SKILL.md +147 -147
- package/templates/skills/languages/swift/SKILL.md +476 -476
- package/templates/skills/languages/typescript/SKILL.md +302 -302
- package/templates/skills/languages/zig/SKILL.md +275 -275
- package/templates/skills/modules/atlassian/SKILL.md +265 -265
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/figma/SKILL.md +277 -277
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/grafana/SKILL.md +338 -338
- package/templates/skills/modules/memory/SKILL.md +73 -73
- package/templates/skills/modules/notion/SKILL.md +257 -257
- package/templates/skills/modules/playwright/SKILL.md +100 -100
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
- package/templates/skills/modules/serena/SKILL.md +347 -347
- package/templates/skills/modules/supabase/SKILL.md +233 -233
- package/templates/skills/modules/synap/SKILL.md +79 -79
- package/templates/skills/modules/vectorizer/SKILL.md +73 -73
- package/templates/workflows/typescript-test.yml +9 -3
- package/dist/agents/ralph-parser.d.ts +0 -91
- package/dist/agents/ralph-parser.d.ts.map +0 -1
- package/dist/agents/ralph-parser.js +0 -415
- package/dist/agents/ralph-parser.js.map +0 -1
- package/dist/cli/commands/analysis.d.ts +0 -8
- package/dist/cli/commands/analysis.d.ts.map +0 -1
- package/dist/cli/commands/analysis.js +0 -78
- package/dist/cli/commands/analysis.js.map +0 -1
- package/dist/cli/commands/compress.d.ts +0 -18
- package/dist/cli/commands/compress.d.ts.map +0 -1
- package/dist/cli/commands/compress.js +0 -100
- package/dist/cli/commands/compress.js.map +0 -1
- package/dist/cli/commands/ralph.d.ts +0 -45
- package/dist/cli/commands/ralph.d.ts.map +0 -1
- package/dist/cli/commands/ralph.js +0 -694
- package/dist/cli/commands/ralph.js.map +0 -1
- package/dist/cli/docs-prompts.d.ts +0 -3
- package/dist/cli/docs-prompts.d.ts.map +0 -1
- package/dist/cli/docs-prompts.js +0 -45
- package/dist/cli/docs-prompts.js.map +0 -1
- package/dist/core/agent-manager.d.ts +0 -69
- package/dist/core/agent-manager.d.ts.map +0 -1
- package/dist/core/agent-manager.js +0 -476
- package/dist/core/agent-manager.js.map +0 -1
- package/dist/core/agent-template-engine.d.ts +0 -51
- package/dist/core/agent-template-engine.d.ts.map +0 -1
- package/dist/core/agent-template-engine.js +0 -291
- package/dist/core/agent-template-engine.js.map +0 -1
- package/dist/core/analysis-manager.d.ts +0 -56
- package/dist/core/analysis-manager.d.ts.map +0 -1
- package/dist/core/analysis-manager.js +0 -218
- package/dist/core/analysis-manager.js.map +0 -1
- package/dist/core/auto-fixer.d.ts +0 -14
- package/dist/core/auto-fixer.d.ts.map +0 -1
- package/dist/core/auto-fixer.js +0 -207
- package/dist/core/auto-fixer.js.map +0 -1
- package/dist/core/changelog-generator.d.ts +0 -44
- package/dist/core/changelog-generator.d.ts.map +0 -1
- package/dist/core/changelog-generator.js +0 -222
- package/dist/core/changelog-generator.js.map +0 -1
- package/dist/core/claude-mcp.d.ts +0 -59
- package/dist/core/claude-mcp.d.ts.map +0 -1
- package/dist/core/claude-mcp.js +0 -220
- package/dist/core/claude-mcp.js.map +0 -1
- package/dist/core/claude-md-generator.d.ts +0 -52
- package/dist/core/claude-md-generator.d.ts.map +0 -1
- package/dist/core/claude-md-generator.js +0 -104
- package/dist/core/claude-md-generator.js.map +0 -1
- package/dist/core/claude-settings-manager.d.ts +0 -44
- package/dist/core/claude-settings-manager.d.ts.map +0 -1
- package/dist/core/claude-settings-manager.js +0 -191
- package/dist/core/claude-settings-manager.js.map +0 -1
- package/dist/core/cli-bridge.d.ts +0 -113
- package/dist/core/cli-bridge.d.ts.map +0 -1
- package/dist/core/cli-bridge.js +0 -1094
- package/dist/core/cli-bridge.js.map +0 -1
- package/dist/core/compact-context-manager.d.ts +0 -34
- package/dist/core/compact-context-manager.d.ts.map +0 -1
- package/dist/core/compact-context-manager.js +0 -60
- package/dist/core/compact-context-manager.js.map +0 -1
- package/dist/core/complexity-detector.d.ts +0 -36
- package/dist/core/complexity-detector.d.ts.map +0 -1
- package/dist/core/complexity-detector.js +0 -334
- package/dist/core/complexity-detector.js.map +0 -1
- package/dist/core/compress/compressor.d.ts +0 -60
- package/dist/core/compress/compressor.d.ts.map +0 -1
- package/dist/core/compress/compressor.js +0 -232
- package/dist/core/compress/compressor.js.map +0 -1
- package/dist/core/compress/discover.d.ts +0 -19
- package/dist/core/compress/discover.d.ts.map +0 -1
- package/dist/core/compress/discover.js +0 -100
- package/dist/core/compress/discover.js.map +0 -1
- package/dist/core/compress/validator.d.ts +0 -47
- package/dist/core/compress/validator.d.ts.map +0 -1
- package/dist/core/compress/validator.js +0 -131
- package/dist/core/compress/validator.js.map +0 -1
- package/dist/core/config-manager.d.ts +0 -86
- package/dist/core/config-manager.d.ts.map +0 -1
- package/dist/core/config-manager.js +0 -621
- package/dist/core/config-manager.js.map +0 -1
- package/dist/core/coverage-checker.d.ts +0 -14
- package/dist/core/coverage-checker.d.ts.map +0 -1
- package/dist/core/coverage-checker.js +0 -176
- package/dist/core/coverage-checker.js.map +0 -1
- package/dist/core/cursor-mdc-generator.d.ts +0 -30
- package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
- package/dist/core/cursor-mdc-generator.js +0 -98
- package/dist/core/cursor-mdc-generator.js.map +0 -1
- package/dist/core/decision-manager.d.ts +0 -25
- package/dist/core/decision-manager.d.ts.map +0 -1
- package/dist/core/decision-manager.js +0 -183
- package/dist/core/decision-manager.js.map +0 -1
- package/dist/core/dependency-checker.d.ts +0 -21
- package/dist/core/dependency-checker.d.ts.map +0 -1
- package/dist/core/dependency-checker.js +0 -247
- package/dist/core/dependency-checker.js.map +0 -1
- package/dist/core/detector.d.ts +0 -27
- package/dist/core/detector.d.ts.map +0 -1
- package/dist/core/detector.js +0 -1763
- package/dist/core/detector.js.map +0 -1
- package/dist/core/docs-generator.d.ts +0 -9
- package/dist/core/docs-generator.d.ts.map +0 -1
- package/dist/core/docs-generator.js +0 -531
- package/dist/core/docs-generator.js.map +0 -1
- package/dist/core/doctor.d.ts +0 -19
- package/dist/core/doctor.d.ts.map +0 -1
- package/dist/core/doctor.js +0 -229
- package/dist/core/doctor.js.map +0 -1
- package/dist/core/generator.d.ts +0 -56
- package/dist/core/generator.d.ts.map +0 -1
- package/dist/core/generator.js +0 -1193
- package/dist/core/generator.js.map +0 -1
- package/dist/core/github-issues-importer.d.ts +0 -82
- package/dist/core/github-issues-importer.d.ts.map +0 -1
- package/dist/core/github-issues-importer.js +0 -161
- package/dist/core/github-issues-importer.js.map +0 -1
- package/dist/core/gitignore-generator.d.ts +0 -13
- package/dist/core/gitignore-generator.d.ts.map +0 -1
- package/dist/core/gitignore-generator.js +0 -307
- package/dist/core/gitignore-generator.js.map +0 -1
- package/dist/core/health-scorer.d.ts +0 -61
- package/dist/core/health-scorer.d.ts.map +0 -1
- package/dist/core/health-scorer.js +0 -638
- package/dist/core/health-scorer.js.map +0 -1
- package/dist/core/iteration-tracker.d.ts +0 -85
- package/dist/core/iteration-tracker.d.ts.map +0 -1
- package/dist/core/iteration-tracker.js +0 -295
- package/dist/core/iteration-tracker.js.map +0 -1
- package/dist/core/knowledge-manager.d.ts +0 -24
- package/dist/core/knowledge-manager.d.ts.map +0 -1
- package/dist/core/knowledge-manager.js +0 -173
- package/dist/core/knowledge-manager.js.map +0 -1
- package/dist/core/learn-manager.d.ts +0 -29
- package/dist/core/learn-manager.d.ts.map +0 -1
- package/dist/core/learn-manager.js +0 -159
- package/dist/core/learn-manager.js.map +0 -1
- package/dist/core/mcp-reference-generator.d.ts +0 -13
- package/dist/core/mcp-reference-generator.d.ts.map +0 -1
- package/dist/core/mcp-reference-generator.js +0 -66
- package/dist/core/mcp-reference-generator.js.map +0 -1
- package/dist/core/minimal-scaffolder.d.ts +0 -8
- package/dist/core/minimal-scaffolder.d.ts.map +0 -1
- package/dist/core/minimal-scaffolder.js +0 -51
- package/dist/core/minimal-scaffolder.js.map +0 -1
- package/dist/core/modern-console.d.ts +0 -98
- package/dist/core/modern-console.d.ts.map +0 -1
- package/dist/core/modern-console.js +0 -556
- package/dist/core/modern-console.js.map +0 -1
- package/dist/core/multi-tool-generator.d.ts +0 -59
- package/dist/core/multi-tool-generator.d.ts.map +0 -1
- package/dist/core/multi-tool-generator.js +0 -157
- package/dist/core/multi-tool-generator.js.map +0 -1
- package/dist/core/override-manager.d.ts +0 -23
- package/dist/core/override-manager.d.ts.map +0 -1
- package/dist/core/override-manager.js +0 -82
- package/dist/core/override-manager.js.map +0 -1
- package/dist/core/plans-manager.d.ts +0 -46
- package/dist/core/plans-manager.d.ts.map +0 -1
- package/dist/core/plans-manager.js +0 -158
- package/dist/core/plans-manager.js.map +0 -1
- package/dist/core/prd-generator.d.ts +0 -48
- package/dist/core/prd-generator.d.ts.map +0 -1
- package/dist/core/prd-generator.js +0 -233
- package/dist/core/prd-generator.js.map +0 -1
- package/dist/core/ralph-manager.d.ts +0 -163
- package/dist/core/ralph-manager.d.ts.map +0 -1
- package/dist/core/ralph-manager.js +0 -555
- package/dist/core/ralph-manager.js.map +0 -1
- package/dist/core/ralph-parallel.d.ts +0 -55
- package/dist/core/ralph-parallel.d.ts.map +0 -1
- package/dist/core/ralph-parallel.js +0 -201
- package/dist/core/ralph-parallel.js.map +0 -1
- package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
- package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
- package/dist/core/ralph-plan-checkpoint.js +0 -154
- package/dist/core/ralph-plan-checkpoint.js.map +0 -1
- package/dist/core/ralph-scripts.d.ts +0 -12
- package/dist/core/ralph-scripts.d.ts.map +0 -1
- package/dist/core/ralph-scripts.js +0 -50
- package/dist/core/ralph-scripts.js.map +0 -1
- package/dist/core/review-manager.d.ts +0 -74
- package/dist/core/review-manager.d.ts.map +0 -1
- package/dist/core/review-manager.js +0 -371
- package/dist/core/review-manager.js.map +0 -1
- package/dist/core/rules-generator.d.ts +0 -73
- package/dist/core/rules-generator.d.ts.map +0 -1
- package/dist/core/rules-generator.js +0 -202
- package/dist/core/rules-generator.js.map +0 -1
- package/dist/core/skills-manager.d.ts +0 -126
- package/dist/core/skills-manager.d.ts.map +0 -1
- package/dist/core/skills-manager.js +0 -654
- package/dist/core/skills-manager.js.map +0 -1
- package/dist/core/state-writer.d.ts +0 -35
- package/dist/core/state-writer.d.ts.map +0 -1
- package/dist/core/state-writer.js +0 -81
- package/dist/core/state-writer.js.map +0 -1
- package/dist/core/task-manager.d.ts +0 -127
- package/dist/core/task-manager.d.ts.map +0 -1
- package/dist/core/task-manager.js +0 -607
- package/dist/core/task-manager.js.map +0 -1
- package/dist/core/telemetry.d.ts +0 -29
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/telemetry.js +0 -57
- package/dist/core/telemetry.js.map +0 -1
- package/dist/core/validator.d.ts +0 -21
- package/dist/core/validator.d.ts.map +0 -1
- package/dist/core/validator.js +0 -177
- package/dist/core/validator.js.map +0 -1
- package/dist/core/version-bumper.d.ts +0 -19
- package/dist/core/version-bumper.d.ts.map +0 -1
- package/dist/core/version-bumper.js +0 -180
- package/dist/core/version-bumper.js.map +0 -1
- package/dist/core/watcher.d.ts +0 -9
- package/dist/core/watcher.d.ts.map +0 -1
- package/dist/core/watcher.js +0 -22
- package/dist/core/watcher.js.map +0 -1
- package/dist/core/workflow-generator.d.ts +0 -15
- package/dist/core/workflow-generator.d.ts.map +0 -1
- package/dist/core/workflow-generator.js +0 -391
- package/dist/core/workflow-generator.js.map +0 -1
- package/dist/hooks/terse-activate.d.ts +0 -59
- package/dist/hooks/terse-activate.d.ts.map +0 -1
- package/dist/hooks/terse-activate.js +0 -149
- package/dist/hooks/terse-activate.js.map +0 -1
- package/dist/hooks/terse-config.d.ts +0 -51
- package/dist/hooks/terse-config.d.ts.map +0 -1
- package/dist/hooks/terse-config.js +0 -130
- package/dist/hooks/terse-config.js.map +0 -1
- package/dist/hooks/terse-mode-tracker.d.ts +0 -78
- package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
- package/dist/hooks/terse-mode-tracker.js +0 -213
- package/dist/hooks/terse-mode-tracker.js.map +0 -1
- package/dist/memory/hnsw-index.d.ts +0 -68
- package/dist/memory/hnsw-index.d.ts.map +0 -1
- package/dist/memory/hnsw-index.js +0 -544
- package/dist/memory/hnsw-index.js.map +0 -1
- package/dist/memory/memory-cache.d.ts +0 -33
- package/dist/memory/memory-cache.d.ts.map +0 -1
- package/dist/memory/memory-cache.js +0 -85
- package/dist/memory/memory-cache.js.map +0 -1
- package/dist/memory/memory-search.d.ts +0 -42
- package/dist/memory/memory-search.d.ts.map +0 -1
- package/dist/memory/memory-search.js +0 -180
- package/dist/memory/memory-search.js.map +0 -1
- package/dist/memory/memory-store.d.ts +0 -84
- package/dist/memory/memory-store.d.ts.map +0 -1
- package/dist/memory/memory-store.js +0 -566
- package/dist/memory/memory-store.js.map +0 -1
- package/dist/memory/memory-vectorizer.d.ts +0 -29
- package/dist/memory/memory-vectorizer.d.ts.map +0 -1
- package/dist/memory/memory-vectorizer.js +0 -199
- package/dist/memory/memory-vectorizer.js.map +0 -1
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default-mode resolution for rulebook-terse.
|
|
3
|
-
*
|
|
4
|
-
* Resolution order (first match wins):
|
|
5
|
-
*
|
|
6
|
-
* 1. `RULEBOOK_TERSE_MODE` environment variable.
|
|
7
|
-
* 2. Project-local config at `<projectRoot>/.rulebook/rulebook.json`,
|
|
8
|
-
* field `terse.defaultMode`. Project config dominates user-global
|
|
9
|
-
* because a project's team standard should not be overridden by
|
|
10
|
-
* an individual contributor's personal preference.
|
|
11
|
-
* 3. User-global config at `$XDG_CONFIG_HOME/rulebook/config.json`,
|
|
12
|
-
* `~/.config/rulebook/config.json`, or `%APPDATA%/rulebook/config.json`.
|
|
13
|
-
* 4. The fallback literal `brief`.
|
|
14
|
-
*
|
|
15
|
-
* The active agent-tier can also override — see `resolveTierDefault`.
|
|
16
|
-
*
|
|
17
|
-
* Every read silent-fails on filesystem errors. A missing or corrupt
|
|
18
|
-
* config file never prevents the hook from proceeding; we fall through
|
|
19
|
-
* to the next tier.
|
|
20
|
-
*/
|
|
21
|
-
import { type TerseMode } from './safe-flag-io.js';
|
|
22
|
-
/**
|
|
23
|
-
* Compute the user-global rulebook config path in OS-appropriate order:
|
|
24
|
-
* - `$XDG_CONFIG_HOME/rulebook/config.json` if XDG_CONFIG_HOME is set.
|
|
25
|
-
* - `%APPDATA%/rulebook/config.json` on Windows.
|
|
26
|
-
* - `~/.config/rulebook/config.json` otherwise.
|
|
27
|
-
*/
|
|
28
|
-
export declare function getUserGlobalConfigPath(env?: NodeJS.ProcessEnv): string;
|
|
29
|
-
/**
|
|
30
|
-
* Read the project-local config if present.
|
|
31
|
-
*/
|
|
32
|
-
export declare function getProjectConfigPath(projectRoot: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* Translate an agent-tier name into the default intensity level, or
|
|
35
|
-
* null if the tier is unknown.
|
|
36
|
-
*/
|
|
37
|
-
export declare function resolveTierDefault(tier: string | undefined): TerseMode | null;
|
|
38
|
-
/**
|
|
39
|
-
* Resolve the default intensity mode. Options allow tests to inject
|
|
40
|
-
* env + project root deterministically.
|
|
41
|
-
*/
|
|
42
|
-
export declare function getDefaultMode(options?: {
|
|
43
|
-
env?: NodeJS.ProcessEnv;
|
|
44
|
-
projectRoot?: string;
|
|
45
|
-
tier?: string;
|
|
46
|
-
}): TerseMode;
|
|
47
|
-
/**
|
|
48
|
-
* Path to the mode flag file (project-local).
|
|
49
|
-
*/
|
|
50
|
-
export declare function getFlagPath(projectRoot?: string): string;
|
|
51
|
-
//# sourceMappingURL=terse-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terse-config.d.ts","sourceRoot":"","sources":["../../src/hooks/terse-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmChE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAOpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,SAAS,CAgCX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEvE"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default-mode resolution for rulebook-terse.
|
|
3
|
-
*
|
|
4
|
-
* Resolution order (first match wins):
|
|
5
|
-
*
|
|
6
|
-
* 1. `RULEBOOK_TERSE_MODE` environment variable.
|
|
7
|
-
* 2. Project-local config at `<projectRoot>/.rulebook/rulebook.json`,
|
|
8
|
-
* field `terse.defaultMode`. Project config dominates user-global
|
|
9
|
-
* because a project's team standard should not be overridden by
|
|
10
|
-
* an individual contributor's personal preference.
|
|
11
|
-
* 3. User-global config at `$XDG_CONFIG_HOME/rulebook/config.json`,
|
|
12
|
-
* `~/.config/rulebook/config.json`, or `%APPDATA%/rulebook/config.json`.
|
|
13
|
-
* 4. The fallback literal `brief`.
|
|
14
|
-
*
|
|
15
|
-
* The active agent-tier can also override — see `resolveTierDefault`.
|
|
16
|
-
*
|
|
17
|
-
* Every read silent-fails on filesystem errors. A missing or corrupt
|
|
18
|
-
* config file never prevents the hook from proceeding; we fall through
|
|
19
|
-
* to the next tier.
|
|
20
|
-
*/
|
|
21
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
22
|
-
import { homedir, platform } from 'node:os';
|
|
23
|
-
import { join } from 'node:path';
|
|
24
|
-
import { VALID_MODES } from './safe-flag-io.js';
|
|
25
|
-
const FALLBACK_MODE = 'brief';
|
|
26
|
-
/**
|
|
27
|
-
* Tier → default-intensity map. Per
|
|
28
|
-
* `.rulebook/specs/RULEBOOK_TERSE.md` §Tier-aware defaults.
|
|
29
|
-
*/
|
|
30
|
-
const TIER_DEFAULTS = {
|
|
31
|
-
research: 'terse',
|
|
32
|
-
haiku: 'terse',
|
|
33
|
-
standard: 'brief',
|
|
34
|
-
sonnet: 'brief',
|
|
35
|
-
'team-lead': 'brief',
|
|
36
|
-
core: 'off',
|
|
37
|
-
opus: 'off',
|
|
38
|
-
};
|
|
39
|
-
function readJsonSilently(path) {
|
|
40
|
-
try {
|
|
41
|
-
if (!existsSync(path))
|
|
42
|
-
return null;
|
|
43
|
-
return JSON.parse(readFileSync(path, 'utf8'));
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function asTerseMode(v) {
|
|
50
|
-
if (typeof v !== 'string')
|
|
51
|
-
return null;
|
|
52
|
-
const lower = v.trim().toLowerCase();
|
|
53
|
-
return VALID_MODES.includes(lower)
|
|
54
|
-
? lower
|
|
55
|
-
: null;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Compute the user-global rulebook config path in OS-appropriate order:
|
|
59
|
-
* - `$XDG_CONFIG_HOME/rulebook/config.json` if XDG_CONFIG_HOME is set.
|
|
60
|
-
* - `%APPDATA%/rulebook/config.json` on Windows.
|
|
61
|
-
* - `~/.config/rulebook/config.json` otherwise.
|
|
62
|
-
*/
|
|
63
|
-
export function getUserGlobalConfigPath(env = process.env) {
|
|
64
|
-
if (env.XDG_CONFIG_HOME)
|
|
65
|
-
return join(env.XDG_CONFIG_HOME, 'rulebook', 'config.json');
|
|
66
|
-
if (platform() === 'win32') {
|
|
67
|
-
const appData = env.APPDATA ?? join(homedir(), 'AppData', 'Roaming');
|
|
68
|
-
return join(appData, 'rulebook', 'config.json');
|
|
69
|
-
}
|
|
70
|
-
return join(homedir(), '.config', 'rulebook', 'config.json');
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Read the project-local config if present.
|
|
74
|
-
*/
|
|
75
|
-
export function getProjectConfigPath(projectRoot) {
|
|
76
|
-
return join(projectRoot, '.rulebook', 'rulebook.json');
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Translate an agent-tier name into the default intensity level, or
|
|
80
|
-
* null if the tier is unknown.
|
|
81
|
-
*/
|
|
82
|
-
export function resolveTierDefault(tier) {
|
|
83
|
-
if (!tier)
|
|
84
|
-
return null;
|
|
85
|
-
const key = tier.trim().toLowerCase();
|
|
86
|
-
return TIER_DEFAULTS[key] ?? null;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Resolve the default intensity mode. Options allow tests to inject
|
|
90
|
-
* env + project root deterministically.
|
|
91
|
-
*/
|
|
92
|
-
export function getDefaultMode(options = {}) {
|
|
93
|
-
const env = options.env ?? process.env;
|
|
94
|
-
const projectRoot = options.projectRoot ?? process.cwd();
|
|
95
|
-
// 1. Env var override.
|
|
96
|
-
const fromEnv = asTerseMode(env.RULEBOOK_TERSE_MODE);
|
|
97
|
-
if (fromEnv)
|
|
98
|
-
return fromEnv;
|
|
99
|
-
// 2. Project-local .rulebook/rulebook.json → terse.defaultMode.
|
|
100
|
-
const projectConfig = readJsonSilently(getProjectConfigPath(projectRoot));
|
|
101
|
-
const projectTerse = projectConfig?.['terse'];
|
|
102
|
-
if (projectTerse && typeof projectTerse === 'object') {
|
|
103
|
-
const m = asTerseMode(projectTerse.defaultMode);
|
|
104
|
-
if (m)
|
|
105
|
-
return m;
|
|
106
|
-
}
|
|
107
|
-
// 3. User-global config.
|
|
108
|
-
const userConfig = readJsonSilently(getUserGlobalConfigPath(env));
|
|
109
|
-
const userTerse = userConfig?.['terse'];
|
|
110
|
-
if (userTerse && typeof userTerse === 'object') {
|
|
111
|
-
const m = asTerseMode(userTerse.defaultMode);
|
|
112
|
-
if (m)
|
|
113
|
-
return m;
|
|
114
|
-
}
|
|
115
|
-
// 4. Agent-tier default (only if explicitly provided).
|
|
116
|
-
if (options.tier) {
|
|
117
|
-
const tierMode = resolveTierDefault(options.tier);
|
|
118
|
-
if (tierMode)
|
|
119
|
-
return tierMode;
|
|
120
|
-
}
|
|
121
|
-
// 5. Literal fallback.
|
|
122
|
-
return FALLBACK_MODE;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Path to the mode flag file (project-local).
|
|
126
|
-
*/
|
|
127
|
-
export function getFlagPath(projectRoot = process.cwd()) {
|
|
128
|
-
return join(projectRoot, '.rulebook', '.terse-mode');
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=terse-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terse-config.js","sourceRoot":"","sources":["../../src/hooks/terse-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Code UserPromptSubmit hook for rulebook-terse.
|
|
3
|
-
*
|
|
4
|
-
* Runs on every user message. Three responsibilities:
|
|
5
|
-
*
|
|
6
|
-
* 1. **Mode switching.** Parses slash commands (`/rulebook-terse`,
|
|
7
|
-
* `/rulebook-terse brief|terse|ultra|off`, `/rulebook-terse-commit`,
|
|
8
|
-
* `/rulebook-terse-review`) and natural-language activation
|
|
9
|
-
* phrases ("be terse", "less tokens please", "terse mode",
|
|
10
|
-
* "activate rulebook-terse"). Writes the resolved mode to the
|
|
11
|
-
* flag file via `safeWriteFlag`.
|
|
12
|
-
*
|
|
13
|
-
* 2. **Mode deactivation.** Recognizes "normal mode", "stop terse",
|
|
14
|
-
* "disable terse", etc. Deletes the flag file.
|
|
15
|
-
*
|
|
16
|
-
* 3. **Per-turn reinforcement.** When the flag is set to a persistent
|
|
17
|
-
* mode (brief / terse / ultra), emits a short ~45 token attention
|
|
18
|
-
* anchor as `hookSpecificOutput.additionalContext` JSON. The
|
|
19
|
-
* SessionStart hook supplied the full rules once; this reminder
|
|
20
|
-
* keeps the register in the model's attention when other plugins
|
|
21
|
-
* inject competing instructions mid-conversation.
|
|
22
|
-
*
|
|
23
|
-
* Independent modes (commit / review) do not get the anchor —
|
|
24
|
-
* they have their own skill files that fully own the behavior
|
|
25
|
-
* during the single turn they're invoked.
|
|
26
|
-
*
|
|
27
|
-
* Silent-fails on every filesystem error. A broken hook must NEVER
|
|
28
|
-
* prevent a user message from reaching the model.
|
|
29
|
-
*/
|
|
30
|
-
import { type TerseMode } from './safe-flag-io.js';
|
|
31
|
-
/**
|
|
32
|
-
* Result of parsing a user prompt. `null` means no mode change is
|
|
33
|
-
* implied by the prompt.
|
|
34
|
-
*/
|
|
35
|
-
export type ParsedIntent = {
|
|
36
|
-
kind: 'set';
|
|
37
|
-
mode: TerseMode;
|
|
38
|
-
} | {
|
|
39
|
-
kind: 'off';
|
|
40
|
-
} | null;
|
|
41
|
-
/**
|
|
42
|
-
* Parse a user prompt for an intent to activate, switch, or disable
|
|
43
|
-
* rulebook-terse. Slash commands take priority over natural language;
|
|
44
|
-
* natural-language deactivation takes priority over activation when
|
|
45
|
-
* both appear in the same prompt.
|
|
46
|
-
*
|
|
47
|
-
* `defaultMode` is used for plain `/rulebook-terse` (no argument).
|
|
48
|
-
*/
|
|
49
|
-
export declare function parseIntent(prompt: string, defaultMode: TerseMode): ParsedIntent;
|
|
50
|
-
/**
|
|
51
|
-
* Build the per-turn attention-anchor JSON emitted when a persistent
|
|
52
|
-
* mode is active. Format matches Claude Code's `hookSpecificOutput`
|
|
53
|
-
* contract for UserPromptSubmit hooks.
|
|
54
|
-
*/
|
|
55
|
-
export declare function buildAttentionAnchor(mode: TerseMode): string;
|
|
56
|
-
/**
|
|
57
|
-
* Core hook logic, pure and testable. Given an input object and
|
|
58
|
-
* options, returns the string (if any) that should be emitted to
|
|
59
|
-
* stdout, and performs the flag-file side effects.
|
|
60
|
-
*/
|
|
61
|
-
export declare function runHook(input: {
|
|
62
|
-
prompt?: string;
|
|
63
|
-
cwd?: string;
|
|
64
|
-
}, options?: {
|
|
65
|
-
projectRoot?: string;
|
|
66
|
-
env?: NodeJS.ProcessEnv;
|
|
67
|
-
}): string | null;
|
|
68
|
-
/**
|
|
69
|
-
* CLI entry. Reads JSON from stdin, invokes `runHook`, emits any
|
|
70
|
-
* returned string to stdout. Always exits 0.
|
|
71
|
-
*/
|
|
72
|
-
export declare function main(options?: {
|
|
73
|
-
stdin?: NodeJS.ReadableStream;
|
|
74
|
-
stdout?: NodeJS.WriteStream;
|
|
75
|
-
projectRoot?: string;
|
|
76
|
-
env?: NodeJS.ProcessEnv;
|
|
77
|
-
}): Promise<void>;
|
|
78
|
-
//# sourceMappingURL=terse-mode-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terse-mode-tracker.d.ts","sourceRoot":"","sources":["../../src/hooks/terse-mode-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA+B5E;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf,IAAI,CAAC;AAET;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,YAAY,CA6ChF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAa5D;AAcD;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GACL,MAAM,GAAG,IAAI,CA6Cf;AAED;;;GAGG;AACH,wBAAsB,IAAI,CACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GACL,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Code UserPromptSubmit hook for rulebook-terse.
|
|
3
|
-
*
|
|
4
|
-
* Runs on every user message. Three responsibilities:
|
|
5
|
-
*
|
|
6
|
-
* 1. **Mode switching.** Parses slash commands (`/rulebook-terse`,
|
|
7
|
-
* `/rulebook-terse brief|terse|ultra|off`, `/rulebook-terse-commit`,
|
|
8
|
-
* `/rulebook-terse-review`) and natural-language activation
|
|
9
|
-
* phrases ("be terse", "less tokens please", "terse mode",
|
|
10
|
-
* "activate rulebook-terse"). Writes the resolved mode to the
|
|
11
|
-
* flag file via `safeWriteFlag`.
|
|
12
|
-
*
|
|
13
|
-
* 2. **Mode deactivation.** Recognizes "normal mode", "stop terse",
|
|
14
|
-
* "disable terse", etc. Deletes the flag file.
|
|
15
|
-
*
|
|
16
|
-
* 3. **Per-turn reinforcement.** When the flag is set to a persistent
|
|
17
|
-
* mode (brief / terse / ultra), emits a short ~45 token attention
|
|
18
|
-
* anchor as `hookSpecificOutput.additionalContext` JSON. The
|
|
19
|
-
* SessionStart hook supplied the full rules once; this reminder
|
|
20
|
-
* keeps the register in the model's attention when other plugins
|
|
21
|
-
* inject competing instructions mid-conversation.
|
|
22
|
-
*
|
|
23
|
-
* Independent modes (commit / review) do not get the anchor —
|
|
24
|
-
* they have their own skill files that fully own the behavior
|
|
25
|
-
* during the single turn they're invoked.
|
|
26
|
-
*
|
|
27
|
-
* Silent-fails on every filesystem error. A broken hook must NEVER
|
|
28
|
-
* prevent a user message from reaching the model.
|
|
29
|
-
*/
|
|
30
|
-
import { unlinkSync } from 'node:fs';
|
|
31
|
-
import { fileURLToPath } from 'node:url';
|
|
32
|
-
import { readFlag, safeWriteFlag } from './safe-flag-io.js';
|
|
33
|
-
import { getDefaultMode, getFlagPath } from './terse-config.js';
|
|
34
|
-
/**
|
|
35
|
-
* Modes whose behavior is fully handled by their own sub-skill file
|
|
36
|
-
* and do NOT get a per-turn attention anchor.
|
|
37
|
-
*/
|
|
38
|
-
const INDEPENDENT_MODES = new Set(['commit', 'review']);
|
|
39
|
-
/**
|
|
40
|
-
* Natural-language activation patterns. Matched case-insensitively.
|
|
41
|
-
* Both orderings are accepted ("activate caveman" and "caveman mode").
|
|
42
|
-
*/
|
|
43
|
-
const ACTIVATION_PATTERNS = [
|
|
44
|
-
/\b(activate|enable|turn\s+on|start)\b.*\brulebook[-\s]?terse\b/i,
|
|
45
|
-
/\brulebook[-\s]?terse\b.*\b(mode|activate|enable|turn\s+on|start)\b/i,
|
|
46
|
-
/\bbe\s+terse\b/i,
|
|
47
|
-
/\bterse\s+mode\b/i,
|
|
48
|
-
/\bless\s+tokens?\s*(please)?\b/i,
|
|
49
|
-
];
|
|
50
|
-
/**
|
|
51
|
-
* Natural-language deactivation patterns.
|
|
52
|
-
*/
|
|
53
|
-
const DEACTIVATION_PATTERNS = [
|
|
54
|
-
/\b(stop|disable|turn\s+off|deactivate)\b.*\brulebook[-\s]?terse\b/i,
|
|
55
|
-
/\brulebook[-\s]?terse\b.*\b(stop|disable|turn\s+off|deactivate)\b/i,
|
|
56
|
-
/\b(stop|disable)\s+terse\b/i,
|
|
57
|
-
/\bnormal\s+mode\b/i,
|
|
58
|
-
];
|
|
59
|
-
/**
|
|
60
|
-
* Parse a user prompt for an intent to activate, switch, or disable
|
|
61
|
-
* rulebook-terse. Slash commands take priority over natural language;
|
|
62
|
-
* natural-language deactivation takes priority over activation when
|
|
63
|
-
* both appear in the same prompt.
|
|
64
|
-
*
|
|
65
|
-
* `defaultMode` is used for plain `/rulebook-terse` (no argument).
|
|
66
|
-
*/
|
|
67
|
-
export function parseIntent(prompt, defaultMode) {
|
|
68
|
-
const trimmed = prompt.trim();
|
|
69
|
-
const lower = trimmed.toLowerCase();
|
|
70
|
-
// Slash commands — highest priority, exact surface.
|
|
71
|
-
if (lower.startsWith('/rulebook-terse')) {
|
|
72
|
-
const parts = lower.split(/\s+/);
|
|
73
|
-
const cmd = parts[0];
|
|
74
|
-
const arg = parts[1] ?? '';
|
|
75
|
-
if (cmd === '/rulebook-terse-commit') {
|
|
76
|
-
return { kind: 'set', mode: 'commit' };
|
|
77
|
-
}
|
|
78
|
-
if (cmd === '/rulebook-terse-review') {
|
|
79
|
-
return { kind: 'set', mode: 'review' };
|
|
80
|
-
}
|
|
81
|
-
if (cmd === '/rulebook-terse') {
|
|
82
|
-
switch (arg) {
|
|
83
|
-
case 'off':
|
|
84
|
-
return { kind: 'off' };
|
|
85
|
-
case 'brief':
|
|
86
|
-
case 'terse':
|
|
87
|
-
case 'ultra':
|
|
88
|
-
case 'commit':
|
|
89
|
-
case 'review':
|
|
90
|
-
return { kind: 'set', mode: arg };
|
|
91
|
-
case '':
|
|
92
|
-
return { kind: 'set', mode: defaultMode };
|
|
93
|
-
default:
|
|
94
|
-
return null; // Unknown subcommand — leave mode unchanged.
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// Natural-language deactivation first — "stop terse" should win over
|
|
99
|
-
// a stray "terse" that happens to also match activation.
|
|
100
|
-
if (DEACTIVATION_PATTERNS.some((re) => re.test(trimmed))) {
|
|
101
|
-
return { kind: 'off' };
|
|
102
|
-
}
|
|
103
|
-
if (ACTIVATION_PATTERNS.some((re) => re.test(trimmed))) {
|
|
104
|
-
return { kind: 'set', mode: defaultMode };
|
|
105
|
-
}
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Build the per-turn attention-anchor JSON emitted when a persistent
|
|
110
|
-
* mode is active. Format matches Claude Code's `hookSpecificOutput`
|
|
111
|
-
* contract for UserPromptSubmit hooks.
|
|
112
|
-
*/
|
|
113
|
-
export function buildAttentionAnchor(mode) {
|
|
114
|
-
const text = `RULEBOOK-TERSE ACTIVE (${mode}). ` +
|
|
115
|
-
`Drop filler/hedging/pleasantries. ` +
|
|
116
|
-
(mode === 'brief' ? 'Keep articles and full sentences.' : 'Fragments OK.') +
|
|
117
|
-
` Code/tests/commits/security: write full. Quality-gate failures + destructive ops: write full.`;
|
|
118
|
-
return JSON.stringify({
|
|
119
|
-
hookSpecificOutput: {
|
|
120
|
-
hookEventName: 'UserPromptSubmit',
|
|
121
|
-
additionalContext: text,
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Read an entire JSON object from a readable stream. Claude Code
|
|
127
|
-
* passes hook input as `{ prompt, cwd, ... }` on stdin.
|
|
128
|
-
*/
|
|
129
|
-
async function readAllStdin(stream) {
|
|
130
|
-
const chunks = [];
|
|
131
|
-
for await (const chunk of stream) {
|
|
132
|
-
chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
|
|
133
|
-
}
|
|
134
|
-
return Buffer.concat(chunks).toString('utf8');
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Core hook logic, pure and testable. Given an input object and
|
|
138
|
-
* options, returns the string (if any) that should be emitted to
|
|
139
|
-
* stdout, and performs the flag-file side effects.
|
|
140
|
-
*/
|
|
141
|
-
export function runHook(input, options = {}) {
|
|
142
|
-
try {
|
|
143
|
-
const prompt = input.prompt ?? '';
|
|
144
|
-
const projectRoot = options.projectRoot ?? input.cwd ?? process.cwd();
|
|
145
|
-
const env = options.env ?? process.env;
|
|
146
|
-
const flagPath = getFlagPath(projectRoot);
|
|
147
|
-
// Resolve default-mode fresh each turn so env changes take effect.
|
|
148
|
-
const defaultMode = getDefaultMode({ env, projectRoot, tier: env.RULEBOOK_AGENT_TIER });
|
|
149
|
-
const intent = parseIntent(prompt, defaultMode);
|
|
150
|
-
if (intent?.kind === 'off') {
|
|
151
|
-
try {
|
|
152
|
-
unlinkSync(flagPath);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
/* flag already absent — fine */
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
if (intent?.kind === 'set') {
|
|
160
|
-
if (intent.mode === 'off') {
|
|
161
|
-
try {
|
|
162
|
-
unlinkSync(flagPath);
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
/* fine */
|
|
166
|
-
}
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
safeWriteFlag(flagPath, intent.mode);
|
|
170
|
-
}
|
|
171
|
-
// Read whatever mode is now persisted (may be set by this turn or
|
|
172
|
-
// a previous one) and emit the attention anchor for persistent
|
|
173
|
-
// modes only.
|
|
174
|
-
const currentMode = readFlag(flagPath);
|
|
175
|
-
if (currentMode && currentMode !== 'off' && !INDEPENDENT_MODES.has(currentMode)) {
|
|
176
|
-
return buildAttentionAnchor(currentMode);
|
|
177
|
-
}
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* CLI entry. Reads JSON from stdin, invokes `runHook`, emits any
|
|
186
|
-
* returned string to stdout. Always exits 0.
|
|
187
|
-
*/
|
|
188
|
-
export async function main(options = {}) {
|
|
189
|
-
try {
|
|
190
|
-
const stdin = options.stdin ?? process.stdin;
|
|
191
|
-
const stdout = options.stdout ?? process.stdout;
|
|
192
|
-
const raw = await readAllStdin(stdin);
|
|
193
|
-
let input = {};
|
|
194
|
-
try {
|
|
195
|
-
input = JSON.parse(raw);
|
|
196
|
-
}
|
|
197
|
-
catch {
|
|
198
|
-
/* Non-JSON input — treat as empty. Hook still no-ops gracefully. */
|
|
199
|
-
}
|
|
200
|
-
const out = runHook(input, { projectRoot: options.projectRoot, env: options.env });
|
|
201
|
-
if (out !== null)
|
|
202
|
-
stdout.write(out);
|
|
203
|
-
}
|
|
204
|
-
catch {
|
|
205
|
-
/* silent fail */
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// CLI guard — only auto-run when invoked as the entry script.
|
|
209
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
210
|
-
if (process.argv[1] === __filename) {
|
|
211
|
-
void main();
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=terse-mode-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terse-mode-tracker.js","sourceRoot":"","sources":["../../src/hooks/terse-mode-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure TypeScript HNSW (Hierarchical Navigable Small World) Index
|
|
3
|
-
*
|
|
4
|
-
* Approximate nearest neighbor search using cosine distance.
|
|
5
|
-
* Zero native dependencies. Designed for <50K vectors.
|
|
6
|
-
*/
|
|
7
|
-
export interface HNSWConfig {
|
|
8
|
-
M?: number;
|
|
9
|
-
efConstruction?: number;
|
|
10
|
-
dimensions: number;
|
|
11
|
-
maxNodes?: number;
|
|
12
|
-
}
|
|
13
|
-
export declare class HNSWIndex {
|
|
14
|
-
private readonly M;
|
|
15
|
-
private readonly efConstruction;
|
|
16
|
-
private readonly dimensions;
|
|
17
|
-
private readonly maxNodes;
|
|
18
|
-
private readonly mL;
|
|
19
|
-
private nodes;
|
|
20
|
-
private insertionOrder;
|
|
21
|
-
private entryPoint;
|
|
22
|
-
private maxLayer;
|
|
23
|
-
constructor(config: HNSWConfig);
|
|
24
|
-
get size(): number;
|
|
25
|
-
/**
|
|
26
|
-
* Cosine distance: 1 - cosine_similarity (0 = identical, 2 = opposite)
|
|
27
|
-
*/
|
|
28
|
-
private cosineDistance;
|
|
29
|
-
/**
|
|
30
|
-
* Assign a random layer for a new node
|
|
31
|
-
*/
|
|
32
|
-
private randomLayer;
|
|
33
|
-
/**
|
|
34
|
-
* Greedy search at a single layer, returning ef nearest candidates.
|
|
35
|
-
* Uses min-heap for candidates and max-heap for results to avoid
|
|
36
|
-
* O(n log n) array sorts on every iteration (now O(log n) per operation).
|
|
37
|
-
*/
|
|
38
|
-
private searchLayer;
|
|
39
|
-
/**
|
|
40
|
-
* Select M nearest neighbors from candidates, pruning for diversity
|
|
41
|
-
*/
|
|
42
|
-
private selectNeighbors;
|
|
43
|
-
/**
|
|
44
|
-
* Add a vector to the index
|
|
45
|
-
*/
|
|
46
|
-
add(label: string, vector: Float32Array): void;
|
|
47
|
-
/**
|
|
48
|
-
* Search k nearest neighbors
|
|
49
|
-
*/
|
|
50
|
-
search(query: Float32Array, k: number, ef?: number): Array<{
|
|
51
|
-
label: string;
|
|
52
|
-
distance: number;
|
|
53
|
-
}>;
|
|
54
|
-
/**
|
|
55
|
-
* Remove a vector from the index
|
|
56
|
-
*/
|
|
57
|
-
remove(label: string): void;
|
|
58
|
-
/**
|
|
59
|
-
* Serialize the index to an ArrayBuffer for disk persistence
|
|
60
|
-
* Format: [magic:u32][version:u8][dimensions:u32][M:u16][nodeCount:u32][...nodes]
|
|
61
|
-
*/
|
|
62
|
-
serialize(): ArrayBuffer;
|
|
63
|
-
/**
|
|
64
|
-
* Deserialize an index from an ArrayBuffer
|
|
65
|
-
*/
|
|
66
|
-
static deserialize(buffer: ArrayBuffer): HNSWIndex;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=hnsw-index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/memory/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsIH,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAK;gBAET,MAAM,EAAE,UAAU;IAQ9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsDnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAyG9C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B/F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwC3B;;;OAGG;IACH,SAAS,IAAI,WAAW;IAkFxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS;CA2GnD"}
|