opencode-matrixx 2.1.0 → 2.2.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 (163) hide show
  1. package/README.md +129 -18
  2. package/dist/agents/builtin-agents/model-resolution.d.ts +1 -1
  3. package/dist/agents/index.d.ts +1 -1
  4. package/dist/agents/merovingian.d.ts +2 -2
  5. package/dist/config/index.d.ts +2 -2
  6. package/dist/config/schema/agent-names.d.ts +3 -17
  7. package/dist/config/schema/assembly.d.ts +13 -0
  8. package/dist/config/schema/categories.d.ts +0 -1
  9. package/dist/config/schema/commands.d.ts +4 -0
  10. package/dist/config/schema/hooks.d.ts +0 -1
  11. package/dist/config/schema/matrixx-config.d.ts +16 -1
  12. package/dist/config/schema/security.d.ts +0 -5
  13. package/dist/config/schema.d.ts +1 -0
  14. package/dist/features/assembly-state/index.d.ts +1 -0
  15. package/dist/features/assembly-state/manager.d.ts +6 -0
  16. package/dist/features/background-agent/error-helpers.d.ts +6 -0
  17. package/dist/features/background-agent/manager.d.ts +6 -8
  18. package/dist/features/background-agent/message-dir.d.ts +5 -0
  19. package/dist/features/background-agent/notification-builder.d.ts +17 -0
  20. package/dist/features/builtin-commands/templates/assembly.d.ts +1 -0
  21. package/dist/features/builtin-commands/templates/research.d.ts +1 -0
  22. package/dist/features/builtin-commands/templates/ultrawork.d.ts +1 -0
  23. package/dist/features/builtin-commands/types.d.ts +1 -1
  24. package/dist/features/builtin-skills/skills/index.d.ts +2 -0
  25. package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +2 -0
  26. package/dist/features/builtin-skills/skills/ulw-research.d.ts +2 -0
  27. package/dist/features/claude-code-command-loader/loader.d.ts +0 -1
  28. package/dist/features/hook-message-injector/injector.d.ts +1 -2
  29. package/dist/features/tmux-subagent/index.d.ts +0 -2
  30. package/dist/features/ultrawork-state/index.d.ts +1 -0
  31. package/dist/features/ultrawork-state/manager.d.ts +6 -0
  32. package/dist/hooks/auto-update-checker/cache.d.ts +0 -2
  33. package/dist/hooks/auto-update-checker/index.d.ts +1 -1
  34. package/dist/hooks/interactive-bash-session/parser.d.ts +0 -6
  35. package/dist/index.js +1824 -539
  36. package/dist/shared/index.d.ts +1 -0
  37. package/dist/shared/model-resolution-pipeline.d.ts +1 -24
  38. package/dist/shared/model-resolution-types.d.ts +1 -0
  39. package/dist/shared/model-resolver.d.ts +4 -2
  40. package/dist/shared/opencode-config-dir.d.ts +1 -2
  41. package/dist/shared/session-directory-resolver.d.ts +0 -6
  42. package/dist/shared/tool-guards.d.ts +16 -0
  43. package/dist/tools/assembly/assembly-executor.d.ts +17 -0
  44. package/dist/tools/assembly/constants.d.ts +6 -0
  45. package/dist/tools/assembly/index.d.ts +2 -0
  46. package/dist/tools/assembly/provider-selector.d.ts +3 -0
  47. package/dist/tools/assembly/synthesizer.d.ts +3 -0
  48. package/dist/tools/assembly/tool-description.d.ts +2 -0
  49. package/dist/tools/assembly/tools.d.ts +10 -0
  50. package/dist/tools/assembly/types.d.ts +25 -0
  51. package/dist/tools/assembly/voter-spawner.d.ts +3 -0
  52. package/dist/tools/handoff/constants.d.ts +0 -3
  53. package/dist/tools/index.d.ts +1 -0
  54. package/package.json +4 -29
  55. package/bin/matrixx.js +0 -80
  56. package/bin/platform.js +0 -38
  57. package/bin/platform.test.ts +0 -148
  58. package/dist/cli/cli-installer.d.ts +0 -2
  59. package/dist/cli/cli-program.d.ts +0 -1
  60. package/dist/cli/config-manager/add-plugin-to-opencode-config.d.ts +0 -2
  61. package/dist/cli/config-manager/add-provider-config.d.ts +0 -2
  62. package/dist/cli/config-manager/antigravity-provider-configuration.d.ts +0 -122
  63. package/dist/cli/config-manager/auth-plugins.d.ts +0 -3
  64. package/dist/cli/config-manager/bun-install.d.ts +0 -7
  65. package/dist/cli/config-manager/config-context.d.ts +0 -13
  66. package/dist/cli/config-manager/deep-merge-record.d.ts +0 -1
  67. package/dist/cli/config-manager/detect-current-config.d.ts +0 -2
  68. package/dist/cli/config-manager/ensure-config-directory-exists.d.ts +0 -1
  69. package/dist/cli/config-manager/format-error-with-suggestion.d.ts +0 -1
  70. package/dist/cli/config-manager/generate-matrixx-config.d.ts +0 -2
  71. package/dist/cli/config-manager/jsonc-provider-editor.d.ts +0 -1
  72. package/dist/cli/config-manager/npm-dist-tags.d.ts +0 -7
  73. package/dist/cli/config-manager/opencode-binary.d.ts +0 -2
  74. package/dist/cli/config-manager/opencode-config-format.d.ts +0 -6
  75. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +0 -10
  76. package/dist/cli/config-manager/plugin-name-with-version.d.ts +0 -1
  77. package/dist/cli/config-manager/write-matrixx-config.d.ts +0 -2
  78. package/dist/cli/config-manager.d.ts +0 -14
  79. package/dist/cli/doctor/checks/config.d.ts +0 -2
  80. package/dist/cli/doctor/checks/dependencies.d.ts +0 -4
  81. package/dist/cli/doctor/checks/index.d.ts +0 -7
  82. package/dist/cli/doctor/checks/model-resolution-cache.d.ts +0 -2
  83. package/dist/cli/doctor/checks/model-resolution-config.d.ts +0 -2
  84. package/dist/cli/doctor/checks/model-resolution-details.d.ts +0 -6
  85. package/dist/cli/doctor/checks/model-resolution-effective-model.d.ts +0 -3
  86. package/dist/cli/doctor/checks/model-resolution-types.d.ts +0 -37
  87. package/dist/cli/doctor/checks/model-resolution-variant.d.ts +0 -5
  88. package/dist/cli/doctor/checks/model-resolution.d.ts +0 -6
  89. package/dist/cli/doctor/checks/system-binary.d.ts +0 -8
  90. package/dist/cli/doctor/checks/system-loaded-version.d.ts +0 -10
  91. package/dist/cli/doctor/checks/system-plugin.d.ts +0 -15
  92. package/dist/cli/doctor/checks/system.d.ts +0 -3
  93. package/dist/cli/doctor/checks/tools-gh.d.ts +0 -11
  94. package/dist/cli/doctor/checks/tools-lsp.d.ts +0 -6
  95. package/dist/cli/doctor/checks/tools-mcp.d.ts +0 -3
  96. package/dist/cli/doctor/checks/tools.d.ts +0 -3
  97. package/dist/cli/doctor/constants.d.ts +0 -31
  98. package/dist/cli/doctor/format-default.d.ts +0 -2
  99. package/dist/cli/doctor/format-shared.d.ts +0 -6
  100. package/dist/cli/doctor/format-status.d.ts +0 -2
  101. package/dist/cli/doctor/format-verbose.d.ts +0 -2
  102. package/dist/cli/doctor/formatter.d.ts +0 -3
  103. package/dist/cli/doctor/index.d.ts +0 -5
  104. package/dist/cli/doctor/runner.d.ts +0 -5
  105. package/dist/cli/doctor/types.d.ts +0 -96
  106. package/dist/cli/fallback-chain-resolution.d.ts +0 -10
  107. package/dist/cli/get-local-version/formatter.d.ts +0 -3
  108. package/dist/cli/get-local-version/get-local-version.d.ts +0 -2
  109. package/dist/cli/get-local-version/index.d.ts +0 -2
  110. package/dist/cli/get-local-version/types.d.ts +0 -13
  111. package/dist/cli/index.d.ts +0 -2
  112. package/dist/cli/index.js +0 -30691
  113. package/dist/cli/install-validators.d.ts +0 -31
  114. package/dist/cli/install.d.ts +0 -2
  115. package/dist/cli/mcp-oauth/index.d.ts +0 -6
  116. package/dist/cli/mcp-oauth/login.d.ts +0 -7
  117. package/dist/cli/mcp-oauth/logout.d.ts +0 -5
  118. package/dist/cli/mcp-oauth/status.d.ts +0 -1
  119. package/dist/cli/model-fallback-types.d.ts +0 -25
  120. package/dist/cli/model-fallback.d.ts +0 -4
  121. package/dist/cli/provider-availability.d.ts +0 -4
  122. package/dist/cli/provider-model-id-transform.d.ts +0 -1
  123. package/dist/cli/run/agent-resolver.d.ts +0 -5
  124. package/dist/cli/run/completion.d.ts +0 -2
  125. package/dist/cli/run/event-formatting.d.ts +0 -3
  126. package/dist/cli/run/event-handlers.d.ts +0 -10
  127. package/dist/cli/run/event-state.d.ts +0 -13
  128. package/dist/cli/run/event-stream-processor.d.ts +0 -3
  129. package/dist/cli/run/events.d.ts +0 -4
  130. package/dist/cli/run/index.d.ts +0 -9
  131. package/dist/cli/run/json-output.d.ts +0 -12
  132. package/dist/cli/run/on-complete-hook.d.ts +0 -7
  133. package/dist/cli/run/opencode-bin-path.d.ts +0 -3
  134. package/dist/cli/run/opencode-binary-resolver.d.ts +0 -4
  135. package/dist/cli/run/poll-for-completion.d.ts +0 -9
  136. package/dist/cli/run/runner.d.ts +0 -5
  137. package/dist/cli/run/server-connection.d.ts +0 -6
  138. package/dist/cli/run/session-resolver.d.ts +0 -6
  139. package/dist/cli/run/types.d.ts +0 -119
  140. package/dist/cli/tui-install-prompts.d.ts +0 -2
  141. package/dist/cli/tui-installer.d.ts +0 -2
  142. package/dist/cli/types.d.ts +0 -36
  143. package/dist/features/background-agent/background-task-notification-template.d.ts +0 -11
  144. package/dist/features/background-agent/opencode-client.d.ts +0 -2
  145. package/dist/features/background-agent/task-poller.d.ts +0 -21
  146. package/dist/features/claude-tasks/index.d.ts +0 -3
  147. package/dist/features/claude-tasks/session-storage.d.ts +0 -10
  148. package/dist/features/mcp-oauth/index.d.ts +0 -3
  149. package/dist/features/mcp-oauth/schema.d.ts +0 -5
  150. package/dist/features/run-continuation-state/constants.d.ts +0 -1
  151. package/dist/features/run-continuation-state/index.d.ts +0 -3
  152. package/dist/features/run-continuation-state/storage.d.ts +0 -6
  153. package/dist/features/run-continuation-state/types.d.ts +0 -13
  154. package/dist/features/tmux-subagent/cleanup.d.ts +0 -1
  155. package/dist/features/tmux-subagent/polling.d.ts +0 -1
  156. package/dist/hooks/session-recovery/recover-empty-content-message-sdk.d.ts +0 -13
  157. package/dist/hooks/task-reminder/hook.d.ts +0 -19
  158. package/dist/hooks/task-reminder/index.d.ts +0 -1
  159. package/dist/tools/delegate-agent/background-agent-executor.d.ts +0 -5
  160. package/dist/tools/delegate-agent/message-storage-directory.d.ts +0 -1
  161. package/dist/tools/delegate-agent/subagent-session-creator.d.ts +0 -10
  162. package/dist/tools/delegate-agent/tool-context-with-metadata.d.ts +0 -10
  163. package/postinstall.mjs +0 -43
package/README.md CHANGED
@@ -118,7 +118,7 @@ Profile defaults merge first; any `agents` or `categories` override takes preced
118
118
 
119
119
  ### 01. Morpheus — *The Orchestrator*
120
120
 
121
- <img src=".github/assets/morpheus.png" width="140" align="right"/>
121
+ <img src=".github/assets/morpheus.png" width="200" align="right"/>
122
122
 
123
123
  *The one who sees the code for what it truly is.*
124
124
 
@@ -132,7 +132,7 @@ Plans, delegates, and executes. Fires background agents in parallel, leverages L
132
132
 
133
133
  ### 02. Keymaker — *The Craftsman*
134
134
 
135
- <img src=".github/assets/keymaker.png" width="140" align="right"/>
135
+ <img src=".github/assets/keymaker.png" width="200" align="right"/>
136
136
 
137
137
  *Give him a goal, not a recipe.*
138
138
 
@@ -146,7 +146,7 @@ Explores the codebase, matches your patterns, and delivers end-to-end. Keymaker
146
146
 
147
147
  ### 03. Cipher — *The Language Architect*
148
148
 
149
- <img src=".github/assets/cipher.png" width="140" align="right"/>
149
+ <img src=".github/assets/cipher.png" width="200" align="right"/>
150
150
 
151
151
  *Grammars, parsers, and the art of formal languages.*
152
152
 
@@ -160,7 +160,7 @@ Grammars, parsers, type systems, code generators, metamodels. 11 composable skil
160
160
 
161
161
  ### 04. Sentinel — *The Security Auditor*
162
162
 
163
- <img src=".github/assets/sentinel.png" width="140" align="right"/>
163
+ <img src=".github/assets/sentinel.png" width="200" align="right"/>
164
164
 
165
165
  *Reads every line. Changes nothing. Reports everything.*
166
166
 
@@ -174,21 +174,129 @@ Scans for vulnerabilities but never touches code. OWASP Top 10, SAST, DAST, depe
174
174
 
175
175
  ### 05. Sati — *The Frontend Specialist*
176
176
 
177
- **Sati** is the dedicated frontend specialist. She ships production-grade UI work: React/Next.js, Svelte/SvelteKit, accessibility, performance, browser verification via Playwright. Invoke Sati directly with `@sati/` or `task(subagent_type="sati")` for any non-trivial frontend task.
177
+ <img src=".github/assets/sati.png" width="200" align="right"/>
178
178
 
179
- ### The Rest of the Team
179
+ *Crafts stunning UI/UX, even without design mockups.*
180
180
 
181
- | Agent | Role | Model |
182
- |-------|------|-------|
183
- | **Oracle** | Strategic planning, architecture decisions, work plan generation | Claude Sonnet 4.6 |
184
- | **Merovingian** | High-IQ consultation, hard debugging, architecture design | Claude Sonnet 4.6 |
185
- | **Architect** | Plan execution orchestrator, session coordination | Claude Sonnet 4.6 |
186
- | **Seraph** | Pre-planning analysis, ambiguity detection, AI failure prevention | Claude Opus 4.6 |
187
- | **Smith** | Plan validation, completeness review, gap detection | Claude Sonnet 4.6 |
188
- | **Operator** | External documentation, OSS search, library research | Claude Haiku 4.5 |
189
- | **Trinity** | Blazing fast codebase grep, pattern discovery | Claude Haiku 4.5 |
190
- | **Construct** | PDF, image & diagram analysis | Claude Sonnet 4.6 |
191
- | **Sati** | Frontend specialist — components, accessibility, performance, testing | Claude Sonnet 4.6 |
181
+ **Role:** Frontend specialist
182
+
183
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
184
+
185
+ React/Next.js, Svelte/SvelteKit, accessibility, performance, design tokens, component architecture, build tooling. Sati ships production-grade UI work with browser verification via Playwright. Invoke directly with `@sati/` or `task(subagent_type="sati")` for any non-trivial frontend task.
186
+
187
+ ---
188
+
189
+ ### 06. Oracle — *The Plan Builder*
190
+
191
+ <img src=".github/assets/oracle.png" width="200" align="right"/>
192
+
193
+ *Architecture demands precision. Oracle delivers it.*
194
+
195
+ **Role:** Strategic planning, architecture decisions, work plan generation
196
+
197
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
198
+
199
+ Creates detailed, structured work plans from complex requests. Decomposes ambiguous requirements into atomic, verifiable steps with clear success criteria. Oracle builds the plan — Morpheus executes it.
200
+
201
+ ---
202
+
203
+ ### 07. Merovingian — *The Consultant*
204
+
205
+ <img src=".github/assets/merovingian.png" width="200" align="right"/>
206
+
207
+ *High-IQ reasoning for problems that refuse to yield.*
208
+
209
+ **Role:** High-IQ consultation, hard debugging, architecture design
210
+
211
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
212
+
213
+ Read-only consultation for hard debugging (after 2+ failed attempts), multi-system tradeoffs, and architecture decisions requiring deep reasoning. Merovingian analyzes — never implements.
214
+
215
+ ---
216
+
217
+ ### 08. Architect — *The Master Orchestrator*
218
+
219
+ <img src=".github/assets/orchestrator-architect.png" width="200" align="right"/>
220
+
221
+ *Where plans become reality.*
222
+
223
+ **Role:** Plan execution orchestrator, session coordination
224
+
225
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
226
+
227
+ Executes Oracle's work plans, coordinates session state, manages task dependencies, and ensures every phase completes before moving to the next. The Architect is the bridge between planning and shipping.
228
+
229
+ ---
230
+
231
+ ### 09. Seraph — *The Pre-Planner*
232
+
233
+ <img src=".github/assets/seraph.png" width="200" align="right"/>
234
+
235
+ *Sees what others miss before work begins.*
236
+
237
+ **Role:** Pre-planning analysis, ambiguity detection, AI failure prevention
238
+
239
+ **Model:** Claude Opus 4.6 · `temperature: 0.3`
240
+
241
+ Analyzes requests to identify hidden intentions, ambiguities, scope creep, and AI failure points. Seraph intervenes before planning starts — preventing costly mistakes downstream.
242
+
243
+ ---
244
+
245
+ ### 10. Smith — *The Validator*
246
+
247
+ <img src=".github/assets/smith.png" width="200" align="right"/>
248
+
249
+ *Every plan meets Smith's standards — or gets rewritten.*
250
+
251
+ **Role:** Plan validation, completeness review, gap detection
252
+
253
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
254
+
255
+ Evaluates work plans against rigorous clarity, verifiability, and completeness standards. Catches gaps, ambiguities, and missing context before implementation begins. Smith is the last line of defense.
256
+
257
+ ---
258
+
259
+ ### 11. Operator — *The Researcher*
260
+
261
+ <img src=".github/assets/operator.png" width="200" align="right"/>
262
+
263
+ *Finds what you need, where it lives.*
264
+
265
+ **Role:** External documentation, OSS search, library research
266
+
267
+ **Model:** Claude Haiku 4.5 · `temperature: 0.1`
268
+
269
+ Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search.
270
+
271
+ ---
272
+
273
+ ### 12. Trinity — *The Search Engine*
274
+
275
+ <img src=".github/assets/trinity.png" width="200" align="right"/>
276
+
277
+ *Finds anything, anywhere, instantly.*
278
+
279
+ **Role:** Blazing fast codebase grep, pattern discovery
280
+
281
+ **Model:** Claude Haiku 4.5 · `temperature: 0.1`
282
+
283
+ Contextual grep for codebases. Answers "Where is X?", "Which file has Y?", "Find the code that does Z". Fires multiple in parallel for broad searches. Quick, medium, or very thorough — you choose.
284
+
285
+ ---
286
+
287
+ ### 13. Construct — *The Media Analyst*
288
+
289
+ <img src=".github/assets/construct.png" width="200" align="right"/>
290
+
291
+ *Sees what's inside — images, PDFs, diagrams.*
292
+
293
+ **Role:** PDF, image & diagram analysis
294
+
295
+ **Model:** Claude Sonnet 4.6 · `temperature: 0.1`
296
+
297
+ Analyzes media files that require interpretation beyond raw text. Extracts specific information or summaries from documents, describes visual content. Use when you need analyzed/extracted data rather than literal file contents.
298
+
299
+ ---
192
300
 
193
301
  Every agent, model, temperature, and permission is fully customizable. [**Meet the full team →**](docs/agents.md)
194
302
 
@@ -201,10 +309,13 @@ Every agent, model, temperature, and permission is fully customizable. [**Meet t
201
309
  | **Agent Orchestration** | 14 agents (incl. **Sati** frontend specialist, **Sentinel** security auditor, **Cipher** DSL expert), parallel background execution, category-based routing, session continuity |
202
310
  | **Developer Tools** | LSP (goto def, rename, diagnostics), AST-Grep (search & replace), Tmux terminal |
203
311
  | **~52 Lifecycle Hooks** | Context injection, think mode, comment checking, todo enforcement, error recovery, quality gate |
204
- | **31 Built-in Skills** | DSL engineering (11), security (9), browser, git, frontend (7 via **Sati**), software dev pipeline |
312
+ || **33 Built-in Skills** | DSL engineering (11), security (9), browser, git, frontend (7 via **Sati**), saturation research, AI slop detection, software dev pipeline |
205
313
  | **Curated MCPs** | Exa (web search), Context7 (official docs), Grep.app (GitHub code search), Document Reader |
206
314
  | **Claude Code Compat** | Full compatibility — commands, agents, skills, MCPs, hooks from `settings.json` |
207
315
  | **Software Dev Pipeline** | 6-phase TDD workflow (PLAN→BUILD→VERIFY→REVIEW→SECURE→SHIP), 5 team roles, adaptive phases |
316
+ ||| **Assembly Tool** | Multi-model debate that spawns 3-5 parallel voters from different providers, collects independent reasoning, and synthesizes unified decisions with confidence scoring |
317
+ || **Saturation Research** | Multi-round (/research) spawning parallel explore/librarian swarms across code, docs, web, and OSS with adaptive novelty-based convergence (max 5 rounds) |
318
+ || **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 |
208
319
 
209
320
  [**Full feature list →**](docs/features.md) · [**Configuration guide →**](docs/configurations.md) · [**Architecture diagram →**](docs/agent-architecture.md)
210
321
 
@@ -10,7 +10,7 @@ export declare function applyModelResolution(input: {
10
10
  };
11
11
  availableModels: Set<string>;
12
12
  systemDefaultModel?: string;
13
- }): import("../../shared/model-resolution-pipeline").ModelResolutionResult | undefined;
13
+ }): import("../../shared").ModelResolutionResult | undefined;
14
14
  export declare function getFirstFallbackModel(requirement?: {
15
15
  fallbackChain?: {
16
16
  providers: string[];
@@ -2,7 +2,7 @@ export { architectPromptMetadata, createArchitectAgent } from "./architect";
2
2
  export { createBuiltinAgents } from "./builtin-agents";
3
3
  export { createMultimodalLookerAgent, MULTIMODAL_LOOKER_PROMPT_METADATA } from "./construct";
4
4
  export type { AvailableAgent, AvailableCategory, AvailableSkill } from "./dynamic-agent-prompt-builder";
5
- export { createOracleAgent, ORACLE_PROMPT_METADATA } from "./merovingian";
5
+ export { createMerovingianAgent, ORACLE_PROMPT_METADATA } from "./merovingian";
6
6
  export { createMorpheusAgent } from "./morpheus";
7
7
  export { createLibrarianAgent, LIBRARIAN_PROMPT_METADATA } from "./operator";
8
8
  export { ORACLE_BEHAVIORAL_SUMMARY, ORACLE_HIGH_ACCURACY_MODE, ORACLE_IDENTITY_CONSTRAINTS, ORACLE_INTERVIEW_MODE, ORACLE_PERMISSION, ORACLE_PLAN_GENERATION, ORACLE_PLAN_TEMPLATE, ORACLE_SYSTEM_PROMPT, } from "./oracle";
@@ -2,7 +2,7 @@ import type { AgentConfig } from "@opencode-ai/sdk";
2
2
  import type { AgentPromptMetadata } from "./types";
3
3
  export declare const ORACLE_PROMPT_METADATA: AgentPromptMetadata;
4
4
  export declare const ORACLE_PLAN_BUILDER_METADATA: AgentPromptMetadata;
5
- export declare function createOracleAgent(model: string): AgentConfig;
6
- export declare namespace createOracleAgent {
5
+ export declare function createMerovingianAgent(model: string): AgentConfig;
6
+ export declare namespace createMerovingianAgent {
7
7
  var mode: "subagent";
8
8
  }
@@ -1,4 +1,4 @@
1
1
  export type { ProfileName } from "./profiles";
2
2
  export { expandProfile, PROFILE_NAMES } from "./profiles";
3
- export type { AgentDefinitions, AgentName, AgentOverrideConfig, AgentOverrides, BuiltinCommandName, DependencyAuditConfig, EnvFileGuardConfig, ExperimentalConfig, HookName, MatrixLoopConfig, MatrixxConfig, McpName, ModelCapabilitiesConfig, MorpheusAgentConfig, MorpheusConfig, MorpheusTasksConfig, RuntimeFallbackConfig, SecretScanningConfig, SecurityConfig, TmuxConfig, TmuxLayout, } from "./schema";
4
- export { AgentNameSchema, AgentOverrideConfigSchema, AgentOverridesSchema, BuiltinCommandNameSchema, ExperimentalConfigSchema, HookNameSchema, MatrixLoopConfigSchema, MatrixxConfigSchema, McpNameSchema, MorpheusAgentConfigSchema, RuntimeFallbackConfigSchema, SecurityConfigSchema, TmuxConfigSchema, TmuxLayoutSchema, } from "./schema";
3
+ export type { AgentDefinitions, AgentName, AgentOverrideConfig, AgentOverrides, BuiltinCommandName, EnvFileGuardConfig, ExperimentalConfig, HookName, MatrixLoopConfig, MatrixxConfig, McpName, ModelCapabilitiesConfig, MorpheusAgentConfig, MorpheusConfig, MorpheusTasksConfig, RuntimeFallbackConfig, SecretScanningConfig, SecurityConfig, TmuxConfig, TmuxLayout, } from "./schema";
4
+ export { AgentOverrideConfigSchema, AgentOverridesSchema, BuiltinCommandNameSchema, ExperimentalConfigSchema, HookNameSchema, MatrixLoopConfigSchema, MatrixxConfigSchema, McpNameSchema, MorpheusAgentConfigSchema, RuntimeFallbackConfigSchema, SecurityConfigSchema, TmuxConfigSchema, TmuxLayoutSchema, } from "./schema";
@@ -45,21 +45,7 @@ export declare const BuiltinSkillNameSchema: z.ZodEnum<{
45
45
  "quality-gate": "quality-gate";
46
46
  "software-dev": "software-dev";
47
47
  "matrixx-self-config": "matrixx-self-config";
48
+ "ulw-research": "ulw-research";
49
+ "remove-ai-slops": "remove-ai-slops";
48
50
  }>;
49
- export declare const AgentNameSchema: z.ZodEnum<{
50
- morpheus: "morpheus";
51
- keymaker: "keymaker";
52
- oracle: "oracle";
53
- merovingian: "merovingian";
54
- operator: "operator";
55
- trinity: "trinity";
56
- construct: "construct";
57
- seraph: "seraph";
58
- smith: "smith";
59
- architect: "architect";
60
- cipher: "cipher";
61
- sentinel: "sentinel";
62
- sati: "sati";
63
- }>;
64
- export type AgentName = z.infer<typeof AgentNameSchema>;
65
- export type BuiltinSkillName = z.infer<typeof BuiltinSkillNameSchema>;
51
+ export type AgentName = z.infer<typeof BuiltinAgentNameSchema>;
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ /** Assembly tool — provider model configuration for multi-model voting */
3
+ export declare const AssemblyConfigSchema: z.ZodObject<{
4
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
5
+ providerID: z.ZodString;
6
+ modelID: z.ZodString;
7
+ }, z.core.$strip>>>;
8
+ default_voters: z.ZodOptional<z.ZodNumber>;
9
+ default_rounds: z.ZodOptional<z.ZodNumber>;
10
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
11
+ enabled: z.ZodDefault<z.ZodBoolean>;
12
+ }, z.core.$strip>;
13
+ export type AssemblyConfig = z.infer<typeof AssemblyConfigSchema>;
@@ -73,4 +73,3 @@ export declare const CategoriesConfigSchema: z.ZodRecord<z.ZodString, z.ZodObjec
73
73
  }, z.core.$strip>>;
74
74
  export type CategoryConfig = z.infer<typeof CategoryConfigSchema>;
75
75
  export type CategoriesConfig = z.infer<typeof CategoriesConfigSchema>;
76
- export type BuiltinCategoryName = z.infer<typeof BuiltinCategoryNameSchema>;
@@ -9,5 +9,9 @@ export declare const BuiltinCommandNameSchema: z.ZodEnum<{
9
9
  "stop-continuation": "stop-continuation";
10
10
  profile: "profile";
11
11
  "end-ultrawork": "end-ultrawork";
12
+ handoff: "handoff";
13
+ research: "research";
14
+ assembly: "assembly";
15
+ ultrawork: "ultrawork";
12
16
  }>;
13
17
  export type BuiltinCommandName = z.infer<typeof BuiltinCommandNameSchema>;
@@ -36,7 +36,6 @@ export declare const HookNameSchema: z.ZodEnum<{
36
36
  "prometheus-md-only": "prometheus-md-only";
37
37
  "mouse-notepad": "mouse-notepad";
38
38
  "unstable-agent-babysitter": "unstable-agent-babysitter";
39
- "task-reminder": "task-reminder";
40
39
  "task-resume-info": "task-resume-info";
41
40
  "stop-continuation-guard": "stop-continuation-guard";
42
41
  "tasks-todowrite-disabler": "tasks-todowrite-disabler";
@@ -62,6 +62,8 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
62
62
  "quality-gate": "quality-gate";
63
63
  "software-dev": "software-dev";
64
64
  "matrixx-self-config": "matrixx-self-config";
65
+ "ulw-research": "ulw-research";
66
+ "remove-ai-slops": "remove-ai-slops";
65
67
  }>>>;
66
68
  disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
67
69
  architect: "architect";
@@ -100,7 +102,6 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
100
102
  "prometheus-md-only": "prometheus-md-only";
101
103
  "mouse-notepad": "mouse-notepad";
102
104
  "unstable-agent-babysitter": "unstable-agent-babysitter";
103
- "task-reminder": "task-reminder";
104
105
  "task-resume-info": "task-resume-info";
105
106
  "stop-continuation-guard": "stop-continuation-guard";
106
107
  "tasks-todowrite-disabler": "tasks-todowrite-disabler";
@@ -130,6 +131,10 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
130
131
  "stop-continuation": "stop-continuation";
131
132
  profile: "profile";
132
133
  "end-ultrawork": "end-ultrawork";
134
+ handoff: "handoff";
135
+ research: "research";
136
+ assembly: "assembly";
137
+ ultrawork: "ultrawork";
133
138
  }>>>;
134
139
  disabled_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
135
140
  agents: z.ZodOptional<z.ZodObject<{
@@ -1636,6 +1641,16 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
1636
1641
  claude_code_compat: z.ZodDefault<z.ZodBoolean>;
1637
1642
  }, z.core.$strip>>;
1638
1643
  }, z.core.$strip>>;
1644
+ assembly: z.ZodOptional<z.ZodObject<{
1645
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1646
+ providerID: z.ZodString;
1647
+ modelID: z.ZodString;
1648
+ }, z.core.$strip>>>;
1649
+ default_voters: z.ZodOptional<z.ZodNumber>;
1650
+ default_rounds: z.ZodOptional<z.ZodNumber>;
1651
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
1652
+ enabled: z.ZodDefault<z.ZodBoolean>;
1653
+ }, z.core.$strip>>;
1639
1654
  security: z.ZodOptional<z.ZodObject<{
1640
1655
  secret_scanning: z.ZodOptional<z.ZodObject<{
1641
1656
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -12,10 +12,6 @@ declare const EnvFileGuardConfigSchema: z.ZodObject<{
12
12
  blocked_patterns: z.ZodDefault<z.ZodArray<z.ZodString>>;
13
13
  allowed_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
14
  }, z.core.$strip>;
15
- declare const DependencyAuditConfigSchema: z.ZodObject<{
16
- enabled: z.ZodDefault<z.ZodBoolean>;
17
- on_package_change: z.ZodDefault<z.ZodBoolean>;
18
- }, z.core.$strip>;
19
15
  export declare const SecurityConfigSchema: z.ZodObject<{
20
16
  secret_scanning: z.ZodOptional<z.ZodObject<{
21
17
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -38,5 +34,4 @@ export declare const SecurityConfigSchema: z.ZodObject<{
38
34
  export type SecurityConfig = z.infer<typeof SecurityConfigSchema>;
39
35
  export type SecretScanningConfig = z.infer<typeof SecretScanningConfigSchema>;
40
36
  export type EnvFileGuardConfig = z.infer<typeof EnvFileGuardConfigSchema>;
41
- export type DependencyAuditConfig = z.infer<typeof DependencyAuditConfigSchema>;
42
37
  export {};
@@ -2,6 +2,7 @@ export { type AnyMcpName, AnyMcpNameSchema, type McpName, McpNameSchema } from "
2
2
  export * from "./schema/agent-definitions";
3
3
  export * from "./schema/agent-names";
4
4
  export * from "./schema/agent-overrides";
5
+ export * from "./schema/assembly";
5
6
  export * from "./schema/babysitting";
6
7
  export * from "./schema/background-task";
7
8
  export * from "./schema/browser-automation";
@@ -0,0 +1 @@
1
+ export { _resetAssemblyStateForTesting, clearAssemblyState, disableAssembly, enableAssembly, isAssemblyDisabled, } from "./manager";
@@ -0,0 +1,6 @@
1
+ export declare function isAssemblyDisabled(sessionID: string): boolean;
2
+ export declare function disableAssembly(sessionID: string): void;
3
+ export declare function enableAssembly(sessionID: string): void;
4
+ export declare function clearAssemblyState(sessionID: string): void;
5
+ /** @internal */
6
+ export declare function _resetAssemblyStateForTesting(): void;
@@ -0,0 +1,6 @@
1
+ import type { EventProperties } from "./manager";
2
+ export declare function formatDuration(start: Date, end?: Date): string;
3
+ export declare function getErrorText(error: unknown): string;
4
+ export declare function isAbortedSessionError(error: unknown): boolean;
5
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
6
+ export declare function getSessionErrorMessage(properties: EventProperties): string | undefined;
@@ -2,7 +2,7 @@ import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { BackgroundTaskConfig, TmuxConfig } from "../../config/schema";
3
3
  import { TaskHistory } from "./task-history";
4
4
  import type { BackgroundTask, LaunchInput, ResumeInput } from "./types";
5
- interface EventProperties {
5
+ export interface EventProperties {
6
6
  sessionID?: string;
7
7
  info?: {
8
8
  id?: string;
@@ -96,6 +96,11 @@ export declare class BackgroundManager {
96
96
  * Cleans up the parent entry if no pending tasks remain.
97
97
  */
98
98
  private cleanupPendingByParent;
99
+ /**
100
+ * Fire-and-forget session abort. Logs failures at debug level instead of
101
+ * swallowing errors silently — useful for diagnosing zombie sessions.
102
+ */
103
+ private abortSessionQuietly;
99
104
  cancelTask(taskId: string, options?: {
100
105
  source?: string;
101
106
  reason?: string;
@@ -130,11 +135,6 @@ export declare class BackgroundManager {
130
135
  */
131
136
  private tryCompleteTask;
132
137
  private notifyParentSession;
133
- private formatDuration;
134
- private isAbortedSessionError;
135
- private getErrorText;
136
- private isRecord;
137
- private getSessionErrorMessage;
138
138
  private hasRunningTasks;
139
139
  private pruneStaleTasksAndNotifications;
140
140
  private checkAndInterruptStaleTasks;
@@ -147,7 +147,5 @@ export declare class BackgroundManager {
147
147
  shutdown(): void;
148
148
  private enqueueNotificationForParent;
149
149
  }
150
- export declare function getMessageDir(sessionID: string): string | null;
151
- export declare function _resetMessageDirCacheForTesting(): void;
152
150
  export declare function _resetPruneThrottleForTesting(): void;
153
151
  export {};
@@ -0,0 +1,5 @@
1
+ import { type StoredMessage } from "../hook-message-injector";
2
+ export declare function getMessageDir(sessionID: string): string | null;
3
+ export declare function _resetMessageDirCacheForTesting(): void;
4
+ export declare function isCompactionAgent(agent: string | undefined): boolean;
5
+ export declare function findNearestMessageExcludingCompaction(messageDir: string): StoredMessage | null;
@@ -0,0 +1,17 @@
1
+ import type { BackgroundTask } from "./types";
2
+ export declare function buildCompletionNotification(task: Pick<BackgroundTask, "id" | "description" | "error" | "status">, allComplete: boolean, completedTasks: Pick<BackgroundTask, "id" | "description">[], remainingCount: number, duration: string, errorInfo: string): string;
3
+ export declare function resolveAgentAndModel(client: {
4
+ session: {
5
+ messages: (args: {
6
+ path: {
7
+ id: string;
8
+ };
9
+ }) => Promise<unknown>;
10
+ };
11
+ }, task: Pick<BackgroundTask, "parentSessionID" | "parentAgent">, enableParentSessionNotifications: boolean): Promise<{
12
+ agent: string | undefined;
13
+ model: {
14
+ providerID: string;
15
+ modelID: string;
16
+ } | undefined;
17
+ }>;
@@ -0,0 +1 @@
1
+ export declare const ASSEMBLY_TEMPLATE = "Toggle assembly tool availability for the current session.\n\nThis command will:\n1. Enable the assembly tool \u2014 makes multi-model voting available to the LLM\n2. Disable the assembly tool \u2014 hides it from the LLM for this session\n3. Show current assembly tool status\n\nUsage:\n /assembly enable \u2014 Show assembly tool\n /assembly disable \u2014 Hide assembly tool\n /assembly status \u2014 Show current state\n\nThe change is per-session and clears when the session ends.\nBy default, the assembly tool is enabled and available in every session.";
@@ -0,0 +1 @@
1
+ export declare const RESEARCH_TEMPLATE = "# /research \u2014 Saturation Research Command\n\nExecute a systematic multi-round research process on the given topic.\n\n## Usage\n\n```\n/research <topic> \u2192 Full research (all directions)\n/research <topic> --scope=code \u2192 Local codebase only\n/research <topic> --scope=docs \u2192 Documentation only\n/research <topic> --scope=web \u2192 Web search only\n/research <topic> --scope=oss \u2192 OSS repos only\n/research <topic> --max-rounds=3 \u2192 Limit to 3 rounds\n```\n\n## What Happens\n\n1. Creates artifact directory: `.matrixx/research-<topic>-<timestamp>/`\n2. Spawns 4 parallel research agents (explore + operator swarms)\n3. Collects findings, identifies new leads\n4. Recursively follows leads until convergence (novelty-based stop, max 5 rounds)\n5. Verifies contested claims by running code\n6. Produces cited synthesis in `final-synthesis.md`\n\n## Output\n\nAll artifacts written to `.matrixx/research-<topic>-<timestamp>/`:\n- `round-N-findings.md` \u2014 per-round findings\n- `leads.md` \u2014 tracked leads\n- `contested-claims.md` \u2014 claims needing verification\n- `final-synthesis.md` \u2014 the final cited synthesis\n\n## Examples\n\n```\n/research how does context window management work in this codebase\n/research React 19 server component patterns --scope=web --max-rounds=3\n/research authentication middleware best practices --scope=all\n```\n\n---\n\nExecute the full research protocol using the ulw-research skill.";
@@ -0,0 +1 @@
1
+ export declare const ULTRAWORK_TEMPLATE = "Toggle ultrawork mode for the current session.\n\nThis command will:\n1. Enable ultrawork mode \u2014 injects ultrawork mode instructions into every message\n2. Disable ultrawork mode \u2014 prevents ultrawork mode from activating (even on \"ultrawork\" keyword)\n3. Show current ultrawork mode status\n\nUsage:\n /ultrawork enable \u2014 Force ultrawork mode on all messages\n /ultrawork disable \u2014 Block ultrawork mode (keyword ignored)\n /ultrawork status \u2014 Show current state\n\nThe change is per-session and clears when the session ends.\nBy default, ultrawork mode activates when the LLM or user mentions the \"ultrawork\" keyword.";
@@ -1,3 +1,3 @@
1
1
  import type { CommandDefinition } from "../claude-code-command-loader";
2
- export type BuiltinCommandName = "init-deep" | "matrix-loop" | "cancel-loop" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff" | "pickup" | "remove-deadcode" | "profile" | "end-ultrawork";
2
+ export type BuiltinCommandName = "init-deep" | "matrix-loop" | "cancel-loop" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff" | "pickup" | "remove-deadcode" | "profile" | "end-ultrawork" | "research" | "assembly" | "ultrawork";
3
3
  export type BuiltinCommands = Record<string, CommandDefinition>;
@@ -24,6 +24,7 @@ export { matrixxSelfConfigSkill } from "./matrixx-self-config";
24
24
  export { agentBrowserSkill, playwrightSkill } from "./playwright";
25
25
  export { playwrightCliSkill } from "./playwright-cli";
26
26
  export { qualityGateSkill } from "./quality-gate";
27
+ export { removeAiSlopsSkill } from "./remove-ai-slops";
27
28
  export { reviewWorkSkill } from "./review-work";
28
29
  export { securityApiSkill } from "./security-api";
29
30
  export { securityCoreSkill } from "./security-core";
@@ -36,3 +37,4 @@ export { securitySastSkill } from "./security-sast";
36
37
  export { securitySecretsSkill } from "./security-secrets";
37
38
  export { softwareDevSkill } from "./software-dev";
38
39
  export { tddEnforcerSkill } from "./tdd-enforcer";
40
+ export { ulwResearchSkill } from "./ulw-research";
@@ -0,0 +1,2 @@
1
+ import type { BuiltinSkill } from "../types";
2
+ export declare const removeAiSlopsSkill: BuiltinSkill;
@@ -0,0 +1,2 @@
1
+ import type { BuiltinSkill } from "../types";
2
+ export declare const ulwResearchSkill: BuiltinSkill;
@@ -3,4 +3,3 @@ export declare function loadUserCommands(): Promise<Record<string, CommandDefini
3
3
  export declare function loadProjectCommands(directory?: string): Promise<Record<string, CommandDefinition>>;
4
4
  export declare function loadOpencodeGlobalCommands(): Promise<Record<string, CommandDefinition>>;
5
5
  export declare function loadOpencodeProjectCommands(directory?: string): Promise<Record<string, CommandDefinition>>;
6
- export declare function loadAllCommands(directory?: string): Promise<Record<string, CommandDefinition>>;
@@ -9,7 +9,7 @@ export interface StoredMessage {
9
9
  };
10
10
  tools?: Record<string, ToolPermission>;
11
11
  }
12
- type OpencodeClient = PluginInput["client"];
12
+ export type OpencodeClient = PluginInput["client"];
13
13
  /**
14
14
  * Finds the nearest message with required fields using SDK (for beta/SQLite backend).
15
15
  * Uses client.session.messages() to fetch message data from SQLite.
@@ -64,4 +64,3 @@ export declare function resolveMessageContext(sessionID: string, client: Opencod
64
64
  prevMessage: StoredMessage | null;
65
65
  firstMessageAgent: string | null;
66
66
  }>;
67
- export {};
@@ -1,10 +1,8 @@
1
1
  export * from "./action-executor";
2
- export * from "./cleanup";
3
2
  export * from "./decision-engine";
4
3
  export * from "./event-handlers";
5
4
  export * from "./manager";
6
5
  export * from "./pane-state-querier";
7
- export * from "./polling";
8
6
  export * from "./polling-constants";
9
7
  export * from "./session-created-event";
10
8
  export * from "./session-created-handler";
@@ -0,0 +1 @@
1
+ export { _resetUltraworkStateForTesting, clearUltraworkState, disableUltrawork, enableUltrawork, getUltraworkState, } from "./manager";
@@ -0,0 +1,6 @@
1
+ export declare function getUltraworkState(sessionID: string): "enabled" | "disabled" | undefined;
2
+ export declare function enableUltrawork(sessionID: string): void;
3
+ export declare function disableUltrawork(sessionID: string): void;
4
+ export declare function clearUltraworkState(sessionID: string): void;
5
+ /** @internal */
6
+ export declare function _resetUltraworkStateForTesting(): void;
@@ -1,3 +1 @@
1
1
  export declare function invalidatePackage(packageName?: string): boolean;
2
- /** @deprecated Use invalidatePackage instead - this nukes ALL plugins */
3
- export declare function invalidateCache(): boolean;
@@ -1,4 +1,4 @@
1
- export { invalidateCache, invalidatePackage } from "./cache";
1
+ export { invalidatePackage } from "./cache";
2
2
  export { checkForUpdate } from "./checker";
3
3
  export { createAutoUpdateCheckerHook } from "./hook";
4
4
  export type { AutoUpdateCheckerOptions, UpdateCheckResult } from "./types";
@@ -3,12 +3,6 @@
3
3
  * Handles single/double quotes and backslash escapes
4
4
  */
5
5
  export declare function tokenizeCommand(cmd: string): string[];
6
- /**
7
- * Normalize session name by stripping :window and .pane suffixes
8
- * e.g., "matrixx-x:1" -> "matrixx-x", "matrixx-x:1.2" -> "matrixx-x"
9
- */
10
- export declare function normalizeSessionName(name: string): string;
11
- export declare function findFlagValue(tokens: string[], flag: string): string | null;
12
6
  /**
13
7
  * Extract session name from tokens, considering the subCommand
14
8
  * For new-session: prioritize -s over -t