opencode-matrixx 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +181 -8
  2. package/dist/agents/dynamic-agent-prompt-builder.d.ts +3 -0
  3. package/dist/cli/doctor/checks/auth.d.ts +2 -0
  4. package/dist/cli/doctor/checks/config.d.ts +2 -0
  5. package/dist/cli/doctor/checks/index.d.ts +10 -0
  6. package/dist/cli/doctor/checks/mcp.d.ts +2 -0
  7. package/dist/cli/doctor/checks/optional.d.ts +2 -0
  8. package/dist/cli/doctor/checks/plugin.d.ts +2 -0
  9. package/dist/cli/doctor/checks/runtime.d.ts +2 -0
  10. package/dist/cli/doctor/format.d.ts +3 -0
  11. package/dist/cli/doctor/index.d.ts +9 -0
  12. package/dist/cli/doctor/types.d.ts +24 -0
  13. package/dist/cli/index.d.ts +13 -0
  14. package/dist/cli/install/index.d.ts +12 -0
  15. package/dist/cli.js +927 -0
  16. package/dist/config/index.d.ts +1 -1
  17. package/dist/config/schema/evolution.d.ts +89 -0
  18. package/dist/config/schema/headroom.d.ts +23 -0
  19. package/dist/config/schema/hooks.d.ts +6 -0
  20. package/dist/config/schema/matrixx-config.d.ts +54 -6
  21. package/dist/config/schema.d.ts +3 -3
  22. package/dist/create-hooks.d.ts +5 -0
  23. package/dist/features/background-agent/error-helpers.d.ts +0 -2
  24. package/dist/features/builtin-commands/templates/evolution.d.ts +1 -0
  25. package/dist/features/builtin-commands/types.d.ts +1 -1
  26. package/dist/features/evolution/compressor/index.d.ts +5 -0
  27. package/dist/features/evolution/compressor/interface.d.ts +5 -0
  28. package/dist/features/evolution/compressor/llm.d.ts +12 -0
  29. package/dist/features/evolution/evaluator.d.ts +11 -0
  30. package/dist/features/evolution/index.d.ts +7 -0
  31. package/dist/features/evolution/pipeline.d.ts +7 -0
  32. package/dist/features/evolution/store.d.ts +22 -0
  33. package/dist/features/evolution/types.d.ts +51 -0
  34. package/dist/features/evolution/writer.d.ts +20 -0
  35. package/dist/features/task-storage/types.d.ts +2 -2
  36. package/dist/features/task-toast-manager/types.d.ts +2 -2
  37. package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +0 -1
  38. package/dist/hooks/anthropic-context-window-limit-recovery/tool-part-types.d.ts +2 -1
  39. package/dist/hooks/evolution-compressor/index.d.ts +15 -0
  40. package/dist/hooks/evolution-hitl/index.d.ts +12 -0
  41. package/dist/hooks/evolution-quality-gate/index.d.ts +6 -0
  42. package/dist/hooks/evolution-watcher/index.d.ts +21 -0
  43. package/dist/hooks/evolution-watcher/utils.d.ts +5 -0
  44. package/dist/hooks/index.d.ts +6 -0
  45. package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
  46. package/dist/hooks/keyword-detector/constants.d.ts +1 -1
  47. package/dist/hooks/keyword-detector/search/default.d.ts +1 -1
  48. package/dist/hooks/keyword-detector/ultrawork/deepseek.d.ts +16 -0
  49. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +5 -2
  50. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +12 -0
  51. package/dist/hooks/keyword-detector/ultrawork/glm.d.ts +11 -0
  52. package/dist/hooks/keyword-detector/ultrawork/gpt5.2.d.ts +4 -7
  53. package/dist/hooks/keyword-detector/ultrawork/index.d.ts +11 -3
  54. package/dist/hooks/keyword-detector/ultrawork/mimo.d.ts +16 -0
  55. package/dist/hooks/keyword-detector/ultrawork/source-detector.d.ts +17 -5
  56. package/dist/hooks/matrix-loop/with-timeout.d.ts +1 -1
  57. package/dist/hooks/mcp-startup-notification/index.d.ts +9 -0
  58. package/dist/hooks/session-recovery/types.d.ts +2 -1
  59. package/dist/hooks/task-todo-mirror/constants.d.ts +3 -0
  60. package/dist/hooks/task-todo-mirror/hook.d.ts +43 -0
  61. package/dist/hooks/task-todo-mirror/index.d.ts +2 -0
  62. package/dist/hooks/think-mode/types.d.ts +3 -0
  63. package/dist/index.js +6136 -3867
  64. package/dist/matrixx.schema.json +5412 -0
  65. package/dist/mcp/index.d.ts +10 -1
  66. package/dist/mcp/mcp-startup-state.d.ts +4 -0
  67. package/dist/mcp/mcp-validator.d.ts +13 -0
  68. package/dist/plugin/hooks/create-continuation-hooks.d.ts +3 -1
  69. package/dist/plugin/hooks/create-core-hooks.d.ts +3 -0
  70. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -1
  71. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +3 -1
  72. package/dist/plugin-handlers/agent-config-handler.d.ts +1 -0
  73. package/dist/shared/delay.d.ts +1 -0
  74. package/dist/shared/error-formatting.d.ts +1 -0
  75. package/dist/shared/format-bytes.d.ts +1 -0
  76. package/dist/shared/format-bytes.test.d.ts +1 -0
  77. package/dist/shared/index.d.ts +7 -9
  78. package/dist/shared/is-abort-error.test.d.ts +1 -0
  79. package/dist/shared/model-resolution-pipeline.d.ts +26 -1
  80. package/dist/shared/opencode-config-dir.d.ts +13 -2
  81. package/dist/shared/sentinels.d.ts +2 -0
  82. package/dist/shared/session-state.d.ts +15 -0
  83. package/dist/shared/status-types.d.ts +1 -0
  84. package/dist/shared/with-timeout.d.ts +1 -0
  85. package/dist/shared/with-timeout.test.d.ts +1 -0
  86. package/dist/tools/background-task/delay.d.ts +1 -1
  87. package/dist/tools/index.d.ts +1 -0
  88. package/dist/tools/pdf-extract-figures/index.d.ts +1 -0
  89. package/dist/tools/pdf-extract-figures/tools.d.ts +11 -0
  90. package/dist/tools/task/todo-sync.d.ts +1 -1
  91. package/dist/tools/task/types.d.ts +5 -5
  92. package/package.json +15 -4
  93. package/dist/config/schema/model-capabilities.d.ts +0 -8
  94. package/dist/hooks/runtime-fallback/is-abort-error.d.ts +0 -1
  95. package/dist/shared/is-object.d.ts +0 -1
  96. package/dist/shared/model-resolution-types.d.ts +0 -27
  97. package/dist/shared/model-resolver.d.ts +0 -24
  98. package/dist/shared/opencode-config-dir-types.d.ts +0 -13
  99. package/dist/shared/session-model-state.d.ts +0 -6
  100. package/dist/shared/session-temperature-store.d.ts +0 -3
  101. package/dist/shared/session-tools-store.d.ts +0 -3
  102. /package/dist/{hooks/architect → shared}/is-abort-error.d.ts +0 -0
package/README.md CHANGED
@@ -61,12 +61,34 @@ That's it. Parallel agents, background tasks, deep exploration, relentless execu
61
61
 
62
62
  ## Quick Start
63
63
 
64
- ### Install
64
+ ### Prerequisites
65
+
66
+ - **Bun** 1.4.0 — `curl -fsSL https://bun.sh/install | bash`
67
+ - **OpenCode** ≥ 1.0.150 — https://opencode.ai/docs
68
+ - Verify: `bun --version && opencode --version`
69
+
70
+ ### Install (Recommended)
71
+
72
+ ```bash
73
+ bunx opencode-matrixx install
74
+ ```
75
+
76
+ Or for non-interactive setup (CI/agents):
77
+
78
+ ```bash
79
+ bunx opencode-matrixx install --no-tui --claude=yes --openai=yes --gemini=no --copilot=no
80
+ ```
81
+
82
+ ### Verify Installation
65
83
 
66
84
  ```bash
67
- npm install -g opencode-matrixx
85
+ bunx opencode-matrixx doctor
86
+ # No "fail" = good. "warn" for missing optional providers is expected.
87
+ # If doctor reports auth failures after login, update to latest: bunx opencode-matrixx@latest doctor
68
88
  ```
69
89
 
90
+ Troubleshooting installation issues? See [Installation guide →](docs/guide/installation.md#troubleshooting).
91
+
70
92
  ### Configure
71
93
 
72
94
  Create `matrixx.jsonc` in your project root:
@@ -78,6 +100,13 @@ Create `matrixx.jsonc` in your project root:
78
100
  }
79
101
  ```
80
102
 
103
+ ### Authenticate
104
+
105
+ ```bash
106
+ opencode auth login # follow prompts for each provider you have
107
+ bunx opencode-matrixx doctor --category authentication # verify
108
+ ```
109
+
81
110
  ### Use
82
111
 
83
112
  Open OpenCode and start coding. Matrixx activates automatically.
@@ -89,12 +118,33 @@ Install and configure matrixx by following the instructions here:
89
118
  https://raw.githubusercontent.com/klpanagi/opencode-matrixx/refs/heads/dev/docs/guide/installation.md
90
119
  ```
91
120
 
92
- [Manual installation guide →](docs/guide/installation.md) · [Uninstall →](docs/guide/uninstallation.md)
121
+ [Installation guide →](docs/guide/installation.md) . [Uninstall →](docs/guide/uninstallation.md) . [CLI reference →](docs/cli-guide.md)
93
122
 
94
123
  ---
95
124
 
96
- ---
125
+ ## CLI Reference
126
+
127
+ Matrixx includes a built-in CLI accessible via `bunx opencode-matrixx <command>`:
128
+
129
+ | Command | Description |
130
+ |---------|-------------|
131
+ | `install` | Interactive setup wizard (or `--no-tui` for CI/CD) |
132
+ | `doctor` | Environment diagnostics and health checks |
133
+ | `version` | Display version information |
97
134
 
135
+ ### Doctor Checks
136
+
137
+ | Category | What It Checks |
138
+ |----------|----------------|
139
+ | installation | Plugin registration, OpenCode version |
140
+ | configuration | Config file validity (matrixx.jsonc) |
141
+ | authentication | Provider API key status (Anthropic, OpenAI, Google) |
142
+ | dependencies | Runtime deps: Bun, Node.js, Git, Python3 |
143
+ | tools | Optional: ast-grep, Gitleaks, PyMuPDF, Playwright |
144
+
145
+ Use `--json` for machine-readable output or `--category <name>` for a specific check.
146
+
147
+ ---
98
148
  ## The Agent Team
99
149
 
100
150
  ### 01. Morpheus — *The Orchestrator*
@@ -302,7 +352,7 @@ Every agent, model, temperature, and permission is fully customizable. [**Meet t
302
352
 
303
353
  | | |
304
354
  |---|---|
305
- || **Agent Orchestration** | 15 agents (incl. **Mouse** dedicated executor, **Sati** frontend specialist, **Sentinel** security auditor, **Cipher** DSL expert), parallel background execution, category-based routing, session continuity |
355
+ | **Agent Orchestration** | 15 agents (incl. **Mouse** dedicated executor, **Sati** frontend specialist, **Sentinel** security auditor, **Cipher** DSL expert), parallel background execution, category-based routing, session continuity |
306
356
  | **Developer Tools** | LSP (goto def, rename, diagnostics), AST-Grep (search & replace), Tmux terminal |
307
357
  | **~52 Lifecycle Hooks** | Context injection, think mode, comment checking, todo enforcement, error recovery, quality gate |
308
358
  || **33 Built-in Skills** | DSL engineering (11), security (9), browser, git, frontend (7 via **Sati**), saturation research, AI slop detection, software dev pipeline |
@@ -311,7 +361,8 @@ Every agent, model, temperature, and permission is fully customizable. [**Meet t
311
361
  | **Software Dev Pipeline** | 6-phase TDD workflow (PLAN→BUILD→VERIFY→REVIEW→SECURE→SHIP), 5 team roles, adaptive phases |
312
362
  ||| **Assembly Tool** | Multi-model debate that spawns 3-5 parallel voters from different providers, collects independent reasoning, and synthesizes unified decisions with confidence scoring |
313
363
  || **Saturation Research** | Multi-round (/research) spawning parallel explore/librarian swarms across code, docs, web, and OSS with adaptive novelty-based convergence (max 5 rounds) |
314
- || **AI Slop Detection** | remove-ai-slops skill detects and removes 7 categories of AI-generated code smells — verbose comments, redundant error handling, over-engineered patterns, generic AI phrasing, cargo-cult boilerplate |
364
+ | **AI Slop Detection** | remove-ai-slops skill detects and removes 7 categories of AI-generated code smells — verbose comments, redundant error handling, over-engineered patterns, generic AI phrasing, cargo-cult boilerplate |
365
+ | **Context Management (L0-L4)** | 5-layer stack: Native + [RTK](https://github.com/rtk-ai/rtk) + [context-mode](https://github.com/tarquinen/context-mode) + [DCP](https://github.com/tarquinen/opencode-dcp) + [Headroom](https://github.com/headroomlabs-ai/headroom) — zero overlap, <10ms Matrixx bridge, 60-95% JSON via `CacheAligner→CCR` |
315
366
 
316
367
  [**Full feature list →**](docs/features.md) · [**Configuration guide →**](docs/configurations.md) · [**Architecture diagram →**](docs/agent-architecture.md)
317
368
 
@@ -476,6 +527,128 @@ The 10-20ms subprocess overhead is negligible compared to command execution time
476
527
 
477
528
  ---
478
529
 
530
+ ## Headroom Integration — Network-Proxy Compression
531
+
532
+ > **Deep dive:** [Context Management → 2.4 Headroom](docs/context-management.md#24-headroom--network-proxy-compression) — full 5-layer guide with config reference, verification and troubleshooting.
533
+
534
+ Matrixx integrates [Headroom](https://github.com/headroomlabs-ai/headroom) for network-proxy-level token compression, reducing context by **60-95%** on JSON, **15-20%** on coding agents via `CacheAligner→ContentRouter→CCR` pipeline.
535
+
536
+ ### What is Headroom?
537
+
538
+ Headroom is a proxy + MCP provider that compresses history before it reaches the LLM. It intercepts the OpenAI-compatible provider `headroom` via `@ai-sdk/openai-compatible` and serves retrieval via `headroom_retrieve`.
539
+
540
+ ```
541
+ # Without headroom: 50k tokens history
542
+ # Every turn ships full JSON + tool outputs
543
+
544
+ # With headroom wrap: 8k tokens (CCR + retrieval)
545
+ $ headroom wrap opencode
546
+ # CCR compresses; agents retrieve via headroom_retrieve on demand
547
+ ```
548
+
549
+ Headroom is ideal for JSON-heavy sessions, long histories, and multi-project reuse where the same compressed context (CCR) can be shared.
550
+
551
+ ### How It Works
552
+
553
+ 1. User runs `headroom wrap opencode` (starts proxy at `http://127.0.0.1:8787`)
554
+ 2. Headroom MCP registers `headroom_retrieve` / `headroom_stats`
555
+ 3. Matrixx detects `hasHeadroom = availableTools.some(t => t.name.startsWith("headroom_"))` and injects Headroom discipline into agent prompts
556
+ 4. Proxy's `CacheAligner→ContentRouter→CCR` compresses; agents retrieve via `headroom_retrieve` on demand
557
+
558
+ Matrixx does not vendor Headroom. It provides a thin config bridge in `src/config/schema/headroom.ts` plus runtime detection. Native transport `headroom-opencode` is deferred to Phase 2.
559
+
560
+ ### Configuration
561
+
562
+ Headroom is **disabled by default** (opt-in). Enable it in `matrixx.jsonc`:
563
+
564
+ ```jsonc
565
+ {
566
+ "$schema": "https://raw.githubusercontent.com/klpanagi/opencode-matrixx/refs/heads/dev/dist/matrixx.schema.json",
567
+ "headroom": {
568
+ "enabled": true, // default: false — opt-in
569
+ "proxyUrl": "http://127.0.0.1:8787", // optional — defaults to proxy default
570
+ "project": "my-project", // optional — CCR scoping
571
+ "backend": "openai" // optional — HEADROOM_BACKEND
572
+ }
573
+ }
574
+ ```
575
+
576
+ | Option | Type | Default | Notes |
577
+ |--------|------|---------|-------|
578
+ | `enabled` | boolean | `false` | Opt-in — no proxy/discipline unless `true` |
579
+ | `proxyUrl` | string (url) | `http://127.0.0.1:8787` | Proxy URL (`HEADROOM_PROXY_URL` override) |
580
+ | `project` | string | `undefined` | CCR scoping per project |
581
+ | `backend` | string | `undefined` | Maps to `HEADROOM_BACKEND` |
582
+
583
+ ### Installation
584
+
585
+ Install Headroom from [headroomlabs-ai/headroom](https://github.com/headroomlabs-ai/headroom):
586
+
587
+ ```bash
588
+ # Install (pick one)
589
+ uv tool install headroom-ai[all]
590
+ # or
591
+ pipx install headroom-ai[all]
592
+
593
+ # Verify
594
+ headroom --version
595
+ headroom doctor
596
+
597
+ # Run via proxy (recommended)
598
+ headroom wrap opencode
599
+ # alternative — env wrapping
600
+ # HEADROOM_WRAP=1 headroom wrap -- opencode
601
+
602
+ # Dashboard
603
+ headroom dashboard
604
+ ```
605
+
606
+ Package versions: `npm: headroom-ai@0.37.0`, `PyPI: headroom-ai[all]`. Docs at [headroom-docs.vercel.app](https://headroom-docs.vercel.app).
607
+
608
+ > **Note:** Native TypeScript plugin `headroom-opencode` is deferred to **Phase 2** due to [#2798](https://github.com/sst/opencode/issues/2798) global `fetch` patch collision and [#76](https://github.com/headroomlabs-ai/headroom/issues/76) compaction not yet stable. Prefer `wrap` for now.
609
+
610
+ ### Verification
611
+
612
+ After install, confirm Matrixx sees Headroom:
613
+
614
+ ```bash
615
+ headroom doctor # proxy health
616
+ headroom wrap opencode # should show: proxy http://127.0.0.1:8787
617
+ ```
618
+
619
+ - In OpenCode TUI, run `headroom_stats` (or `headroom dashboard`) — if the tool is listed, Matrixx injected Headroom discipline into Morpheus/Keymaker prompts.
620
+ - Agents will use `headroom_retrieve` / `headroom_search` automatically — you don't call them manually. If `headroom_*` tools are absent, check `matrixx.jsonc` has `headroom.enabled: true` and restart OpenCode.
621
+
622
+ ### Usage
623
+
624
+ No code changes needed. Once `headroom wrap opencode` is running and `headroom.enabled: true`:
625
+
626
+ - **You** keep using OpenCode normally (`ultrawork`, etc.).
627
+ - **Proxy** compresses history out-of-process via `CacheAligner→ContentRouter→CCR` before it reaches the LLM.
628
+ - **Agents** retrieve compressed slices on demand via `headroom_retrieve` (never re-read full history) and check stats via `headroom_stats`.
629
+ - **CCR** is shared across projects — ideal for repeated JSON-heavy sessions.
630
+
631
+ To disable, set `headroom.enabled: false` or run OpenCode without `headroom wrap`.
632
+
633
+ ### Performance Impact
634
+
635
+ | Metric | Value |
636
+ |--------|-------|
637
+ | **Matrixx bridge overhead** | ~0ms (prompt-only; proxy out-of-process) |
638
+ | **Proxy token savings** | 60-95% JSON, 15-20% coding agents |
639
+ | **Complementarity** | L4 orthogonal to L1 RTK + L2 context-mode + L3 DCP + L0 native (zero overlap) |
640
+ | **Net benefit** | Retrieval-on-demand reduces per-turn context; CCR shared across projects |
641
+
642
+ ### 5-Layer Complementarity
643
+
644
+ | Layer | Owner | Mechanism | Reduction |
645
+ |-------|-------|-----------|-----------|
646
+ | L0 Native | Matrixx | 70% warn, preemptive-compaction, anthropic-recovery | Prevents OOM |
647
+ | L1 RTK | RTK hook | Bash output compression | 60-90% bash |
648
+ | L2 context-mode | context-mode plugin | FTS5 sandbox `ctx_*` | 98% sandbox |
649
+ | L3 DCP | `@tarquinen/opencode-dcp` | Pruning tiers `economy→ultimate` | Tiered pruning |
650
+ | L4 Headroom | headroom proxy | `CacheAligner→ContentRouter→CCR` | 60-95% JSON |
651
+ ---
479
652
 
480
653
  ## Documentation
481
654
 
@@ -488,11 +661,11 @@ The 10-20ms subprocess overhead is negligible compared to command execution time
488
661
  | [Configuration](docs/configurations.md) | All config options, agent overrides, hooks, categories |
489
662
  | [Orchestration](docs/orchestration-guide.md) | How agents coordinate, delegate, and recover |
490
663
  | [Categories & Skills](docs/category-skill-guide.md) | Task categories, skill injection, delegation patterns |
664
+ | [Context Management](docs/context-management.md) | 5-layer context stack (Native, RTK, context-mode, DCP, Headroom) — setup, config, verification |
491
665
 
492
666
  ---
493
667
 
494
- If this saves you time, a ⭐ goes a long way.
495
668
 
496
- **Curious about the philosophy?** Read the [Ultrawork Manifesto](docs/ultrawork-manifesto.md) — originally authored by [code-yeongyu](https://github.com/code-yeongyu), the creator of oh-my-opencode.
669
+ If this saves you time, a ⭐ goes a long way.
497
670
 
498
671
  <sub>Productivity might spike too hard. Don't let your coworker notice. Actually — let's see who wins.</sub>
@@ -34,4 +34,7 @@ export declare function buildOracleSection(agents: AvailableAgent[]): string;
34
34
  export declare function buildHardBlocksSection(): string;
35
35
  export declare function buildAntiPatternsSection(): string;
36
36
  export declare function buildContextDisciplineSection(hasContextMode?: boolean): string;
37
+ export declare function buildHeadroomSection(hasHeadroom?: boolean): string;
38
+ export declare function buildCompactContextDisciplineSection(hasContextMode?: boolean): string;
39
+ export declare function buildExploreDisciplineSection(hasContextMode?: boolean, hasHeadroom?: boolean): string;
37
40
  export declare function buildUltraworkSection(agents: AvailableAgent[], categories: AvailableCategory[], skills: AvailableSkill[]): string;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const authCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const configValidationCheck: DoctorCheck;
@@ -0,0 +1,10 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const ALL_CHECKS: DoctorCheck[];
3
+ export declare function getChecksByCategory(category: string): DoctorCheck[];
4
+ export declare function getCategories(): string[];
5
+ export { authCheck } from "./auth";
6
+ export { configValidationCheck } from "./config";
7
+ export { mcpPrerequisitesCheck } from "./mcp";
8
+ export { optionalToolsCheck } from "./optional";
9
+ export { pluginInstallationCheck } from "./plugin";
10
+ export { runtimeDepsCheck } from "./runtime";
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const mcpPrerequisitesCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const optionalToolsCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const pluginInstallationCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const runtimeDepsCheck: DoctorCheck;
@@ -0,0 +1,3 @@
1
+ import type { DoctorReport } from "./types";
2
+ export declare function formatDoctorReport(report: DoctorReport): string;
3
+ export declare function formatDoctorJson(report: DoctorReport): string;
@@ -0,0 +1,9 @@
1
+ import type { DoctorReport } from "./types";
2
+ export type { CheckCategory, CheckResult, CheckStatus, DoctorCheck, DoctorReport } from "./types";
3
+ export interface DoctorOptions {
4
+ category?: string;
5
+ json?: boolean;
6
+ }
7
+ export declare function runDoctor(options?: DoctorOptions): Promise<DoctorReport>;
8
+ export declare function executeDoctor(options?: DoctorOptions): Promise<string>;
9
+ export { ALL_CHECKS, getCategories, getChecksByCategory } from "./checks";
@@ -0,0 +1,24 @@
1
+ export type CheckStatus = "pass" | "warn" | "fail";
2
+ export interface CheckResult {
3
+ name: string;
4
+ status: CheckStatus;
5
+ message: string;
6
+ category?: string;
7
+ detail?: string;
8
+ }
9
+ export type CheckCategory = "installation" | "configuration" | "authentication" | "dependencies" | "tools" | "updates";
10
+ export interface DoctorCheck {
11
+ name: string;
12
+ category: CheckCategory;
13
+ check: () => Promise<CheckResult> | CheckResult;
14
+ }
15
+ export interface DoctorReport {
16
+ timestamp: string;
17
+ checks: CheckResult[];
18
+ summary: {
19
+ total: number;
20
+ passed: number;
21
+ warnings: number;
22
+ failed: number;
23
+ };
24
+ }
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Matrixx CLI — `bunx opencode-matrixx <command>`
4
+ *
5
+ * Commands:
6
+ * doctor - Environment diagnostics and health checks
7
+ * install - Interactive setup wizard (--no-tui for CI)
8
+ * version - Display version information
9
+ * help - Display help information
10
+ */
11
+ declare function main(): Promise<void>;
12
+ export { main };
13
+ export default main;
@@ -0,0 +1,12 @@
1
+ export interface InstallOptions {
2
+ noTui?: boolean;
3
+ claude?: "yes" | "no" | "max20";
4
+ openai?: "yes" | "no";
5
+ gemini?: "yes" | "no";
6
+ copilot?: "yes" | "no";
7
+ opencodeZen?: "yes" | "no";
8
+ zaiCodingPlan?: "yes" | "no";
9
+ verbose?: boolean;
10
+ local?: boolean;
11
+ }
12
+ export declare function executeInstall(options: InstallOptions): Promise<string>;