opencode-matrixx 2.6.0 → 2.6.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.
Files changed (84) hide show
  1. package/README.md +15 -10
  2. package/dist/cli/doctor/checks/context-mode.d.ts +2 -0
  3. package/dist/cli/doctor/checks/dcp.d.ts +2 -0
  4. package/dist/cli/doctor/checks/docker.d.ts +2 -0
  5. package/dist/cli/doctor/checks/headroom.d.ts +2 -0
  6. package/dist/cli/doctor/checks/helpers.d.ts +2 -0
  7. package/dist/cli/doctor/checks/index.d.ts +6 -0
  8. package/dist/cli/doctor/checks/rtk.d.ts +2 -0
  9. package/dist/cli/doctor/checks/tmux.d.ts +2 -0
  10. package/dist/cli/doctor/types.d.ts +1 -1
  11. package/dist/cli/index.d.ts +1 -0
  12. package/dist/cli/setup/config-writer.d.ts +12 -0
  13. package/dist/cli/setup/config-writer.test.d.ts +1 -0
  14. package/dist/cli/setup/constants.d.ts +8 -0
  15. package/dist/cli/setup/deps.d.ts +8 -0
  16. package/dist/cli/setup/deps.test.d.ts +1 -0
  17. package/dist/cli/setup/index.d.ts +8 -0
  18. package/dist/cli/setup/index.test.d.ts +1 -0
  19. package/dist/cli/setup/opencode-sync.d.ts +9 -0
  20. package/dist/cli/setup/opencode-sync.test.d.ts +1 -0
  21. package/dist/cli/setup/prompts.d.ts +4 -0
  22. package/dist/cli/setup/prompts.test.d.ts +1 -0
  23. package/dist/cli/setup/types.d.ts +26 -0
  24. package/dist/cli.js +18759 -663
  25. package/dist/config/schema/context-mode.d.ts +7 -0
  26. package/dist/config/schema/experimental.d.ts +1 -1
  27. package/dist/config/schema/hooks.d.ts +3 -2
  28. package/dist/config/schema/matrixx-config.d.ts +13 -3
  29. package/dist/config/schema/morpheus.d.ts +8 -0
  30. package/dist/config/schema.d.ts +1 -0
  31. package/dist/create-hooks.d.ts +3 -2
  32. package/dist/features/builtin-commands/templates/cleanup-tasks.d.ts +1 -0
  33. package/dist/features/builtin-commands/templates/task-list.d.ts +1 -0
  34. package/dist/features/builtin-commands/types.d.ts +1 -1
  35. package/dist/features/task-storage/storage.d.ts +12 -2
  36. package/dist/features/task-storage/types.d.ts +1 -0
  37. package/dist/hooks/compaction-todo-preserver/hook.d.ts +13 -0
  38. package/dist/hooks/compaction-todo-preserver/index.d.ts +1 -1
  39. package/dist/hooks/context-mode-enforcer/constants.d.ts +6 -0
  40. package/dist/hooks/context-mode-enforcer/hook.d.ts +3 -0
  41. package/dist/hooks/context-mode-enforcer/index.d.ts +1 -0
  42. package/dist/hooks/index.d.ts +3 -2
  43. package/dist/hooks/task-continuation-enforcer/abort-detection.d.ts +4 -0
  44. package/dist/hooks/task-continuation-enforcer/constants.d.ts +10 -0
  45. package/dist/hooks/task-continuation-enforcer/continuation-injection.d.ts +12 -0
  46. package/dist/hooks/task-continuation-enforcer/countdown.d.ts +14 -0
  47. package/dist/hooks/task-continuation-enforcer/countdown.test.d.ts +1 -0
  48. package/dist/hooks/task-continuation-enforcer/handler.d.ts +16 -0
  49. package/dist/hooks/task-continuation-enforcer/idle-event.d.ts +11 -0
  50. package/dist/hooks/task-continuation-enforcer/idle-event.test.d.ts +1 -0
  51. package/dist/hooks/task-continuation-enforcer/index.d.ts +6 -0
  52. package/dist/hooks/task-continuation-enforcer/message-directory.d.ts +1 -0
  53. package/dist/hooks/task-continuation-enforcer/non-idle-events.d.ts +6 -0
  54. package/dist/hooks/task-continuation-enforcer/session-state.d.ts +10 -0
  55. package/dist/hooks/task-continuation-enforcer/todo.d.ts +5 -0
  56. package/dist/hooks/task-continuation-enforcer/types.d.ts +60 -0
  57. package/dist/hooks/task-edit-guard/constants.d.ts +2 -0
  58. package/dist/hooks/task-edit-guard/hook.d.ts +2 -0
  59. package/dist/hooks/task-edit-guard/index.d.ts +2 -0
  60. package/dist/hooks/todo-continuation-enforcer/countdown.test.d.ts +1 -0
  61. package/dist/hooks/todo-continuation-enforcer/idle-event.test.d.ts +1 -0
  62. package/dist/index.js +1647 -926
  63. package/dist/matrixx.schema.json +47 -3
  64. package/dist/plugin/hooks/create-continuation-hooks.d.ts +2 -1
  65. package/dist/plugin/hooks/create-core-hooks.d.ts +2 -2
  66. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +3 -3
  67. package/dist/shared/system-directive.d.ts +1 -0
  68. package/dist/shared/task-system-gating.d.ts +3 -0
  69. package/dist/shared/task-system-gating.test.d.ts +1 -0
  70. package/dist/tools/index.d.ts +1 -1
  71. package/dist/tools/task/index.d.ts +1 -1
  72. package/dist/tools/task/task-cleanup.d.ts +4 -0
  73. package/dist/tools/task/task-cleanup.test.d.ts +1 -0
  74. package/dist/tools/task/task-get.d.ts +2 -1
  75. package/dist/tools/task/task-list.d.ts +2 -1
  76. package/dist/tools/task/types.d.ts +2 -0
  77. package/package.json +3 -2
  78. package/dist/hooks/task-todo-mirror/constants.d.ts +0 -3
  79. package/dist/hooks/task-todo-mirror/hook.d.ts +0 -43
  80. package/dist/hooks/task-todo-mirror/index.d.ts +0 -2
  81. package/dist/hooks/todo-description-override/description.d.ts +0 -1
  82. package/dist/hooks/todo-description-override/hook.d.ts +0 -8
  83. package/dist/hooks/todo-description-override/index.d.ts +0 -1
  84. package/dist/tools/task/todo-sync.d.ts +0 -16
package/README.md CHANGED
@@ -13,7 +13,7 @@
13
13
  [![License: SUL-1.0](https://img.shields.io/badge/license-SUL--1.0-blue.svg)](https://github.com/klpanagi/opencode-matrixx/blob/master/LICENSE)
14
14
 
15
15
  **Multi-model agent orchestration for [OpenCode](https://github.com/sst/opencode).**<br/>
16
- **14 specialized agents. ~52 lifecycle hooks. 28 tools. One plugin.**
16
+ **14 specialized agents. 64 lifecycle hooks. 22 tools. 36 skills. One plugin.**
17
17
 
18
18
  </div>
19
19
 
@@ -43,7 +43,7 @@ Morpheus (Claude Opus) → Plans the implementation
43
43
  | Problem | Matrixx Solution |
44
44
  |---------|------------------|
45
45
  | One model does everything poorly | **14 specialists** — right model for the right job |
46
- | Agent forgets what it was doing | **Todo Continuation** — forces completion, no exceptions |
46
+ | Agent forgets what it was doing | **Task Continuation** — `task-continuation-enforcer` (file-backed `.matrixx/tasks`, survives `/clear`, project-scoped) — forces completion |
47
47
  | Slow sequential tool calls | **Parallel background agents** — 5+ running simultaneously |
48
48
  | AI-generated code looks like AI | **Comment Checker** — code indistinguishable from human-written |
49
49
  | Context window fills up fast | **Aggressive delegation** — subagents carry the load |
@@ -100,6 +100,9 @@ Create `matrixx.jsonc` in your project root:
100
100
  }
101
101
  ```
102
102
 
103
+ > **Full example:** See [`matrixx.example.jsonc`](./matrixx.example.jsonc) — a fully annotated reference covering every configuration parameter (agents, categories, **headroom**, **context-mode** (external), DCP, RTK, security, tmux, assembly, evolution, and more) with inline comments and defaults. Copy the sections you need into your project `.opencode/matrixx.jsonc` or user `~/.config/opencode/matrixx.jsonc` (both support JSONC comments).
104
+ > Full guide: [Configuration →](docs/configurations.md) · [Context Management (5 layers) →](docs/context-management.md)
105
+
103
106
  ### Authenticate
104
107
 
105
108
  ```bash
@@ -157,7 +160,7 @@ Use `--json` for machine-readable output or `--category <name>` for a specific c
157
160
 
158
161
  **Model:** Claude Opus 4.6 · `temperature: 0.1`
159
162
 
160
- Plans, delegates, and executes. Fires background agents in parallel, leverages LSP and AST-Grep for surgical refactoring, and never stops until the TODO list is empty. Morpheus sees the code for what it truly is — and routes every task to the agent best suited for it.
163
+ Plans, delegates, and executes. Fires background agents in parallel, leverages LSP and AST-Grep for surgical refactoring, and never stops until the task list is empty. Morpheus sees the code for what it truly is — and routes every task to the agent best suited for it.
161
164
 
162
165
  ---
163
166
 
@@ -352,10 +355,10 @@ Every agent, model, temperature, and permission is fully customizable. [**Meet t
352
355
 
353
356
  | | |
354
357
  |---|---|
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 |
358
+ | **Agent Orchestration** | 14 agents (incl. **Mouse** task executor, **Sati** frontend specialist, **Sentinel** security auditor, **Cipher** DSL expert), parallel background execution, category-based routing (`source`/`deep-jack`/…), session continuity, file-backed tasks |
356
359
  | **Developer Tools** | LSP (goto def, rename, diagnostics), AST-Grep (search & replace), Tmux terminal |
357
- | **~52 Lifecycle Hooks** | Context injection, think mode, comment checking, todo enforcement, error recovery, quality gate |
358
- || **33 Built-in Skills** | DSL engineering (11), security (9), browser, git, frontend (7 via **Sati**), saturation research, AI slop detection, software dev pipeline |
360
+ | **64 Lifecycle Hooks** | Context injection, think mode, comment checking, task/todo continuation enforcement, error recovery, quality gate, preemptive compaction, session recovery |
361
+ | **36 Built-in Skills** | DSL engineering (11), security (9), browser, git, frontend (7 via **Sati**), BDD (4: `bdd-contract`/`backend`/`frontend`/`tests` + pipeline), saturation research, AI slop detection, TDD (`tdd-enforcer` opt-in), software dev pipeline |
359
362
  | **Curated MCPs** | Exa (web search), Context7 (official docs), Grep.app (GitHub code search), Document Reader |
360
363
  | **Claude Code Compat** | Full compatibility — commands, agents, skills, MCPs, hooks from `settings.json` |
361
364
  | **Software Dev Pipeline** | 6-phase TDD workflow (PLAN→BUILD→VERIFY→REVIEW→SECURE→SHIP), 5 team roles, adaptive phases |
@@ -376,9 +379,9 @@ Matrixx includes a structured **6-phase development pipeline** that coordinates
376
379
 
377
380
  | Role | Agent | Skills | Purpose |
378
381
  |------|-------|--------|---------|
379
- | **Architect** | Oracle (Claude Opus) | — | System design, architecture decisions, task breakdown |
380
- | **Developer** | Source category | `git-master`, `tdd-enforcer` | Implementation code with TDD |
381
- | **Tester** | Source category | `tdd-enforcer`, `quality-gate` | Test authoring, coverage, verification |
382
+ | **Architect** | Oracle (`claude-sonnet-4-6`) | — | System design, architecture decisions, plan (`/.matrixx/plans/*.md`) breakdown |
383
+ | **Developer** | `category="source"` (Mouse) | `git-master`, `tdd-enforcer` (opt-in `tdd_enforcer.enabled=true`) | Implementation — RED→GREEN→REFACTOR per task |
384
+ | **Tester** | `category="source"` (Mouse) | `tdd-enforcer`, `quality-gate` | Test authoring (`src/**/*.test.ts`, `//#given//#when//#then`), coverage |
382
385
  | **Quality Evaluator** | Red-pill category | `quality-gate`, `review-work` | Lint, typecheck, 5-agent code review |
383
386
  | **Security Expert** | Sentinel (Claude Opus) | `security-core`, `security-sast`, `security-api`, `security-dependencies` | Vulnerability scanning, CVE checks |
384
387
 
@@ -386,7 +389,7 @@ Matrixx includes a structured **6-phase development pipeline** that coordinates
386
389
 
387
390
  | Phase | Skip? | Role | Exit Criteria |
388
391
  |-------|-------|------|---------------|
389
- | **PLAN** | Small tasks | Architect | Approach defined, files listed, edge cases documented |
392
+ | **PLAN** | Small tasks | Architect (Oracle) | Approach defined, files listed, edge cases + test decision (`TDD/tests-after/none`) documented |
390
393
  | **BUILD** | Never | Developer | TDD (RED→GREEN→REFACTOR), `bun test` passes |
391
394
  | **VERIFY** | Never | Quality | `lint` + `typecheck` + `test` + `build` — all pass |
392
395
  | **REVIEW** | Small tasks | Quality (5-agent) | All reviewers PASS, no CRITICAL/MAJOR issues |
@@ -662,6 +665,8 @@ To disable, set `headroom.enabled: false` or run OpenCode without `headroom wrap
662
665
  | [Orchestration](docs/orchestration-guide.md) | How agents coordinate, delegate, and recover |
663
666
  | [Categories & Skills](docs/category-skill-guide.md) | Task categories, skill injection, delegation patterns |
664
667
  | [Context Management](docs/context-management.md) | 5-layer context stack (Native, RTK, context-mode, DCP, Headroom) — setup, config, verification |
668
+ | [Task System](docs/task-system.md) | File-backed execution substrate (`.matrixx/tasks/T-{uuid}.json`), dependency graph, `task-continuation-enforcer` |
669
+ | [TDD](docs/tdd.md) | RED→GREEN→REFACTOR planning (Oracle) + enforcement (`tdd-enforcer` opt-in) |
665
670
 
666
671
  ---
667
672
 
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const contextModeCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const dcpCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const dockerCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const headroomCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ export declare function readMatrixxConfig(): Record<string, unknown> | null;
2
+ export declare function getNested<T>(obj: Record<string, unknown> | null, path: string): T | undefined;
@@ -4,7 +4,13 @@ export declare function getChecksByCategory(category: string): DoctorCheck[];
4
4
  export declare function getCategories(): string[];
5
5
  export { authCheck } from "./auth";
6
6
  export { configValidationCheck } from "./config";
7
+ export { contextModeCheck } from "./context-mode";
8
+ export { dcpCheck } from "./dcp";
9
+ export { dockerCheck } from "./docker";
10
+ export { headroomCheck } from "./headroom";
7
11
  export { mcpPrerequisitesCheck } from "./mcp";
8
12
  export { optionalToolsCheck } from "./optional";
9
13
  export { pluginInstallationCheck } from "./plugin";
14
+ export { rtkCheck } from "./rtk";
10
15
  export { runtimeDepsCheck } from "./runtime";
16
+ export { tmuxCheck } from "./tmux";
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const rtkCheck: DoctorCheck;
@@ -0,0 +1,2 @@
1
+ import type { DoctorCheck } from "../types";
2
+ export declare const tmuxCheck: DoctorCheck;
@@ -6,7 +6,7 @@ export interface CheckResult {
6
6
  category?: string;
7
7
  detail?: string;
8
8
  }
9
- export type CheckCategory = "installation" | "configuration" | "authentication" | "dependencies" | "tools" | "updates";
9
+ export type CheckCategory = "installation" | "configuration" | "authentication" | "dependencies" | "tools" | "integrations" | "updates";
10
10
  export interface DoctorCheck {
11
11
  name: string;
12
12
  category: CheckCategory;
@@ -5,6 +5,7 @@
5
5
  * Commands:
6
6
  * doctor - Environment diagnostics and health checks
7
7
  * install - Interactive setup wizard (--no-tui for CI)
8
+ * setup - Standalone setup wizard for deps + matrixx.jsonc generation
8
9
  * version - Display version information
9
10
  * help - Display help information
10
11
  */
@@ -0,0 +1,12 @@
1
+ import { type MatrixxConfig } from "../../config/schema/matrixx-config";
2
+ import type { SetupState } from "./types";
3
+ export declare function resolveMatrixxConfigPath(): {
4
+ format: "json" | "jsonc" | "none";
5
+ path: string;
6
+ };
7
+ export declare function buildMatrixxConfig(state: SetupState, existing: MatrixxConfig | null): MatrixxConfig;
8
+ export declare function previewDiff(existing: string, next: string): string;
9
+ export declare function writeMatrixxConfig(targetPath: string, config: MatrixxConfig, opts: {
10
+ dryRun: boolean;
11
+ backup: boolean;
12
+ }): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { Platform } from "./types";
2
+ export declare const REQUIRED_DEPS: readonly ["bun", "opencode", "git"];
3
+ export declare const OPTIONAL_DEPS: readonly ["headroom", "rtk", "dcp", "gitleaks", "ast-grep", "playwright"];
4
+ export type InstallCommandMap = Record<string, Record<Platform | "all", string> | Record<string, string>>;
5
+ export declare const PLATFORM_INSTALL_COMMANDS: Record<string, Partial<Record<Platform | "all", string>>>;
6
+ export declare function getDcpInstallHint(): string;
7
+ export declare function configDirHint(): string;
8
+ export declare function dcpPluginDirHint(): string;
@@ -0,0 +1,8 @@
1
+ import { type DepStatus, type Platform } from "./types";
2
+ export declare function isBunVersionOk(found: string): boolean;
3
+ export declare function isOpenCodeVersionOk(found: string): boolean;
4
+ export declare function getPlatform(): Platform;
5
+ export declare function getInstallCommand(dep: string, platform: Platform): string;
6
+ export declare function checkRequiredDeps(): DepStatus[];
7
+ export declare function checkOptionalDeps(): DepStatus[];
8
+ export declare function formatDepReport(statuses: DepStatus[]): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export { PLATFORM_INSTALL_COMMANDS } from "./constants";
2
+ export { checkOptionalDeps, checkRequiredDeps, formatDepReport, getInstallCommand, getPlatform, isBunVersionOk, isOpenCodeVersionOk } from "./deps";
3
+ export { runSetupPrompts } from "./prompts";
4
+ export type { DepStatus, Platform, SetupState } from "./types";
5
+ export declare function executeSetup(opts: {
6
+ dryRun: boolean;
7
+ yes: boolean;
8
+ }): Promise<string>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { SetupState } from "./types";
2
+ export declare function resolveOpencodeConfigPath(): {
3
+ format: "json" | "jsonc" | "none";
4
+ path: string;
5
+ };
6
+ export declare function syncOpencodePlugins(state: SetupState, opts: {
7
+ dryRun: boolean;
8
+ }): Promise<void>;
9
+ export declare function hasContextModePlugin(plugins: string[]): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { DepStatus, SetupState } from "./types";
2
+ export declare function runSetupPrompts(deps: DepStatus[], opts: {
3
+ yes: boolean;
4
+ }): Promise<SetupState>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ export type Platform = "darwin" | "linux" | "win32";
2
+ export type DepStatus = {
3
+ name: string;
4
+ required: boolean;
5
+ found: boolean;
6
+ version?: string;
7
+ installHint: string;
8
+ };
9
+ export type SetupState = {
10
+ taskSystem: boolean;
11
+ headroom: {
12
+ enabled: boolean;
13
+ proxyUrl?: string;
14
+ project?: string;
15
+ };
16
+ rtk: {
17
+ enabled: boolean;
18
+ binaryPath?: string;
19
+ };
20
+ dcp: {
21
+ enabled: boolean;
22
+ };
23
+ contextMode: boolean;
24
+ };
25
+ export declare const BUN_REQUIRED = "1.4.0";
26
+ export declare const OPENCODE_MIN = "1.0.150";