opencode-matrixx 2.0.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 (187) hide show
  1. package/README.md +138 -23
  2. package/dist/agents/architect/agent.d.ts +9 -9
  3. package/dist/agents/architect/default.d.ts +3 -3
  4. package/dist/agents/architect/gpt.d.ts +3 -3
  5. package/dist/agents/architect/index.d.ts +4 -4
  6. package/dist/agents/architect/prompt-section-builder.d.ts +1 -1
  7. package/dist/agents/builtin-agents/{atlas-agent.d.ts → architect-agent.d.ts} +1 -1
  8. package/dist/agents/builtin-agents/general-agents.d.ts +1 -1
  9. package/dist/agents/builtin-agents/model-resolution.d.ts +1 -1
  10. package/dist/agents/index.d.ts +2 -2
  11. package/dist/agents/merovingian.d.ts +3 -2
  12. package/dist/agents/types.d.ts +2 -2
  13. package/dist/config/index.d.ts +2 -2
  14. package/dist/config/schema/agent-names.d.ts +4 -18
  15. package/dist/config/schema/assembly.d.ts +13 -0
  16. package/dist/config/schema/categories.d.ts +0 -1
  17. package/dist/config/schema/commands.d.ts +4 -0
  18. package/dist/config/schema/hooks.d.ts +1 -2
  19. package/dist/config/schema/matrixx-config.d.ts +18 -3
  20. package/dist/config/schema/security.d.ts +0 -5
  21. package/dist/config/schema.d.ts +1 -0
  22. package/dist/create-hooks.d.ts +2 -2
  23. package/dist/features/assembly-state/index.d.ts +1 -0
  24. package/dist/features/assembly-state/manager.d.ts +6 -0
  25. package/dist/features/background-agent/error-helpers.d.ts +6 -0
  26. package/dist/features/background-agent/manager.d.ts +6 -8
  27. package/dist/features/background-agent/message-dir.d.ts +5 -0
  28. package/dist/features/background-agent/notification-builder.d.ts +17 -0
  29. package/dist/features/builtin-commands/templates/assembly.d.ts +1 -0
  30. package/dist/features/builtin-commands/templates/research.d.ts +1 -0
  31. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  32. package/dist/features/builtin-commands/templates/ultrawork.d.ts +1 -0
  33. package/dist/features/builtin-commands/types.d.ts +1 -1
  34. package/dist/features/builtin-skills/skills/index.d.ts +2 -0
  35. package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +2 -0
  36. package/dist/features/builtin-skills/skills/ulw-research.d.ts +2 -0
  37. package/dist/features/claude-code-command-loader/loader.d.ts +0 -1
  38. package/dist/features/hook-message-injector/injector.d.ts +2 -3
  39. package/dist/features/mission-state/types.d.ts +1 -1
  40. package/dist/features/tmux-subagent/index.d.ts +0 -2
  41. package/dist/features/ultrawork-state/index.d.ts +1 -0
  42. package/dist/features/ultrawork-state/manager.d.ts +6 -0
  43. package/dist/hooks/architect/{atlas-hook.d.ts → architect-hook.d.ts} +2 -2
  44. package/dist/hooks/architect/event-handler.d.ts +3 -3
  45. package/dist/hooks/architect/index.d.ts +2 -2
  46. package/dist/hooks/architect/types.d.ts +1 -1
  47. package/dist/hooks/auto-update-checker/cache.d.ts +0 -2
  48. package/dist/hooks/auto-update-checker/index.d.ts +1 -1
  49. package/dist/hooks/index.d.ts +1 -1
  50. package/dist/hooks/interactive-bash-session/parser.d.ts +0 -6
  51. package/dist/hooks/mouse-notepad/constants.d.ts +1 -1
  52. package/dist/index.js +1966 -631
  53. package/dist/plugin/hooks/create-continuation-hooks.d.ts +2 -2
  54. package/dist/plugin/hooks/create-core-hooks.d.ts +1 -1
  55. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -1
  56. package/dist/shared/index.d.ts +1 -0
  57. package/dist/shared/model-resolution-pipeline.d.ts +1 -24
  58. package/dist/shared/model-resolution-types.d.ts +1 -0
  59. package/dist/shared/model-resolver.d.ts +4 -2
  60. package/dist/shared/opencode-config-dir.d.ts +1 -2
  61. package/dist/shared/session-directory-resolver.d.ts +0 -6
  62. package/dist/shared/tool-guards.d.ts +16 -0
  63. package/dist/tools/assembly/assembly-executor.d.ts +17 -0
  64. package/dist/tools/assembly/constants.d.ts +6 -0
  65. package/dist/tools/assembly/index.d.ts +2 -0
  66. package/dist/tools/assembly/provider-selector.d.ts +3 -0
  67. package/dist/tools/assembly/synthesizer.d.ts +3 -0
  68. package/dist/tools/assembly/tool-description.d.ts +2 -0
  69. package/dist/tools/assembly/tools.d.ts +10 -0
  70. package/dist/tools/assembly/types.d.ts +25 -0
  71. package/dist/tools/assembly/voter-spawner.d.ts +3 -0
  72. package/dist/tools/delegate-task/executor-types.d.ts +1 -1
  73. package/dist/tools/delegate-task/mouse-agent.d.ts +1 -1
  74. package/dist/tools/delegate-task/types.d.ts +1 -1
  75. package/dist/tools/handoff/constants.d.ts +0 -3
  76. package/dist/tools/index.d.ts +1 -0
  77. package/package.json +4 -29
  78. package/bin/matrixx.js +0 -80
  79. package/bin/platform.js +0 -38
  80. package/bin/platform.test.ts +0 -148
  81. package/dist/cli/cli-installer.d.ts +0 -2
  82. package/dist/cli/cli-program.d.ts +0 -1
  83. package/dist/cli/config-manager/add-plugin-to-opencode-config.d.ts +0 -2
  84. package/dist/cli/config-manager/add-provider-config.d.ts +0 -2
  85. package/dist/cli/config-manager/antigravity-provider-configuration.d.ts +0 -122
  86. package/dist/cli/config-manager/auth-plugins.d.ts +0 -3
  87. package/dist/cli/config-manager/bun-install.d.ts +0 -7
  88. package/dist/cli/config-manager/config-context.d.ts +0 -13
  89. package/dist/cli/config-manager/deep-merge-record.d.ts +0 -1
  90. package/dist/cli/config-manager/detect-current-config.d.ts +0 -2
  91. package/dist/cli/config-manager/ensure-config-directory-exists.d.ts +0 -1
  92. package/dist/cli/config-manager/format-error-with-suggestion.d.ts +0 -1
  93. package/dist/cli/config-manager/generate-matrixx-config.d.ts +0 -2
  94. package/dist/cli/config-manager/jsonc-provider-editor.d.ts +0 -1
  95. package/dist/cli/config-manager/npm-dist-tags.d.ts +0 -7
  96. package/dist/cli/config-manager/opencode-binary.d.ts +0 -2
  97. package/dist/cli/config-manager/opencode-config-format.d.ts +0 -6
  98. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +0 -10
  99. package/dist/cli/config-manager/plugin-name-with-version.d.ts +0 -1
  100. package/dist/cli/config-manager/write-matrixx-config.d.ts +0 -2
  101. package/dist/cli/config-manager.d.ts +0 -14
  102. package/dist/cli/doctor/checks/config.d.ts +0 -2
  103. package/dist/cli/doctor/checks/dependencies.d.ts +0 -4
  104. package/dist/cli/doctor/checks/index.d.ts +0 -7
  105. package/dist/cli/doctor/checks/model-resolution-cache.d.ts +0 -2
  106. package/dist/cli/doctor/checks/model-resolution-config.d.ts +0 -2
  107. package/dist/cli/doctor/checks/model-resolution-details.d.ts +0 -6
  108. package/dist/cli/doctor/checks/model-resolution-effective-model.d.ts +0 -3
  109. package/dist/cli/doctor/checks/model-resolution-types.d.ts +0 -37
  110. package/dist/cli/doctor/checks/model-resolution-variant.d.ts +0 -5
  111. package/dist/cli/doctor/checks/model-resolution.d.ts +0 -6
  112. package/dist/cli/doctor/checks/system-binary.d.ts +0 -8
  113. package/dist/cli/doctor/checks/system-loaded-version.d.ts +0 -10
  114. package/dist/cli/doctor/checks/system-plugin.d.ts +0 -15
  115. package/dist/cli/doctor/checks/system.d.ts +0 -3
  116. package/dist/cli/doctor/checks/tools-gh.d.ts +0 -11
  117. package/dist/cli/doctor/checks/tools-lsp.d.ts +0 -6
  118. package/dist/cli/doctor/checks/tools-mcp.d.ts +0 -3
  119. package/dist/cli/doctor/checks/tools.d.ts +0 -3
  120. package/dist/cli/doctor/constants.d.ts +0 -31
  121. package/dist/cli/doctor/format-default.d.ts +0 -2
  122. package/dist/cli/doctor/format-shared.d.ts +0 -6
  123. package/dist/cli/doctor/format-status.d.ts +0 -2
  124. package/dist/cli/doctor/format-verbose.d.ts +0 -2
  125. package/dist/cli/doctor/formatter.d.ts +0 -3
  126. package/dist/cli/doctor/index.d.ts +0 -5
  127. package/dist/cli/doctor/runner.d.ts +0 -5
  128. package/dist/cli/doctor/types.d.ts +0 -96
  129. package/dist/cli/fallback-chain-resolution.d.ts +0 -10
  130. package/dist/cli/get-local-version/formatter.d.ts +0 -3
  131. package/dist/cli/get-local-version/get-local-version.d.ts +0 -2
  132. package/dist/cli/get-local-version/index.d.ts +0 -2
  133. package/dist/cli/get-local-version/types.d.ts +0 -13
  134. package/dist/cli/index.d.ts +0 -2
  135. package/dist/cli/index.js +0 -30690
  136. package/dist/cli/install-validators.d.ts +0 -31
  137. package/dist/cli/install.d.ts +0 -2
  138. package/dist/cli/mcp-oauth/index.d.ts +0 -6
  139. package/dist/cli/mcp-oauth/login.d.ts +0 -7
  140. package/dist/cli/mcp-oauth/logout.d.ts +0 -5
  141. package/dist/cli/mcp-oauth/status.d.ts +0 -1
  142. package/dist/cli/model-fallback-types.d.ts +0 -25
  143. package/dist/cli/model-fallback.d.ts +0 -4
  144. package/dist/cli/provider-availability.d.ts +0 -4
  145. package/dist/cli/provider-model-id-transform.d.ts +0 -1
  146. package/dist/cli/run/agent-resolver.d.ts +0 -5
  147. package/dist/cli/run/completion.d.ts +0 -2
  148. package/dist/cli/run/event-formatting.d.ts +0 -3
  149. package/dist/cli/run/event-handlers.d.ts +0 -10
  150. package/dist/cli/run/event-state.d.ts +0 -13
  151. package/dist/cli/run/event-stream-processor.d.ts +0 -3
  152. package/dist/cli/run/events.d.ts +0 -4
  153. package/dist/cli/run/index.d.ts +0 -9
  154. package/dist/cli/run/json-output.d.ts +0 -12
  155. package/dist/cli/run/on-complete-hook.d.ts +0 -7
  156. package/dist/cli/run/opencode-bin-path.d.ts +0 -3
  157. package/dist/cli/run/opencode-binary-resolver.d.ts +0 -4
  158. package/dist/cli/run/poll-for-completion.d.ts +0 -9
  159. package/dist/cli/run/runner.d.ts +0 -5
  160. package/dist/cli/run/server-connection.d.ts +0 -6
  161. package/dist/cli/run/session-resolver.d.ts +0 -6
  162. package/dist/cli/run/types.d.ts +0 -119
  163. package/dist/cli/tui-install-prompts.d.ts +0 -2
  164. package/dist/cli/tui-installer.d.ts +0 -2
  165. package/dist/cli/types.d.ts +0 -36
  166. package/dist/features/background-agent/background-task-notification-template.d.ts +0 -11
  167. package/dist/features/background-agent/opencode-client.d.ts +0 -2
  168. package/dist/features/background-agent/task-poller.d.ts +0 -21
  169. package/dist/features/claude-tasks/index.d.ts +0 -3
  170. package/dist/features/claude-tasks/session-storage.d.ts +0 -10
  171. package/dist/features/mcp-oauth/index.d.ts +0 -3
  172. package/dist/features/mcp-oauth/schema.d.ts +0 -5
  173. package/dist/features/run-continuation-state/constants.d.ts +0 -1
  174. package/dist/features/run-continuation-state/index.d.ts +0 -3
  175. package/dist/features/run-continuation-state/storage.d.ts +0 -6
  176. package/dist/features/run-continuation-state/types.d.ts +0 -13
  177. package/dist/features/tmux-subagent/cleanup.d.ts +0 -1
  178. package/dist/features/tmux-subagent/polling.d.ts +0 -1
  179. package/dist/hooks/session-recovery/recover-empty-content-message-sdk.d.ts +0 -13
  180. package/dist/hooks/task-reminder/hook.d.ts +0 -19
  181. package/dist/hooks/task-reminder/index.d.ts +0 -1
  182. package/dist/tools/delegate-agent/background-agent-executor.d.ts +0 -5
  183. package/dist/tools/delegate-agent/message-storage-directory.d.ts +0 -1
  184. package/dist/tools/delegate-agent/subagent-session-creator.d.ts +0 -10
  185. package/dist/tools/delegate-agent/tool-context-with-metadata.d.ts +0 -10
  186. package/postinstall.mjs +0 -43
  187. /package/dist/agents/builtin-agents/{sisyphus-agent.d.ts → morpheus-agent.d.ts} +0 -0
@@ -19,6 +19,7 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
19
19
  disabled_agents: z.ZodOptional<z.ZodArray<z.ZodEnum<{
20
20
  morpheus: "morpheus";
21
21
  keymaker: "keymaker";
22
+ oracle: "oracle";
22
23
  merovingian: "merovingian";
23
24
  operator: "operator";
24
25
  trinity: "trinity";
@@ -29,7 +30,6 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
29
30
  cipher: "cipher";
30
31
  sentinel: "sentinel";
31
32
  sati: "sati";
32
- oracle: "oracle";
33
33
  }>>>;
34
34
  disabled_skills: z.ZodOptional<z.ZodArray<z.ZodEnum<{
35
35
  playwright: "playwright";
@@ -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";
@@ -98,9 +100,8 @@ export declare const MatrixxConfigSchema: z.ZodObject<{
98
100
  "edit-error-recovery": "edit-error-recovery";
99
101
  "delegate-task-retry": "delegate-task-retry";
100
102
  "prometheus-md-only": "prometheus-md-only";
101
- "sisyphus-junior-notepad": "sisyphus-junior-notepad";
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";
@@ -21,7 +21,7 @@ export declare function createHooks(args: {
21
21
  todoContinuationEnforcer: ReturnType<typeof import("./hooks").createTodoContinuationEnforcer> | null;
22
22
  unstableAgentBabysitter: ReturnType<typeof import("./plugin/unstable-agent-babysitter").createUnstableAgentBabysitter> | null;
23
23
  backgroundNotificationHook: ReturnType<typeof import("./hooks").createBackgroundNotificationHook> | null;
24
- atlasHook: ReturnType<typeof import("./hooks").createAtlasHook> | null;
24
+ architectHook: ReturnType<typeof import("./hooks").createArchitectHook> | null;
25
25
  keywordDetector: ReturnType<typeof import("./hooks").createKeywordDetectorHook> | null;
26
26
  contextInjectorMessagesTransform: ReturnType<typeof import("./features/context-injector").createContextInjectorMessagesTransformHook>;
27
27
  thinkingBlockValidator: ReturnType<typeof import("./hooks").createThinkingBlockValidatorHook> | null;
@@ -61,7 +61,7 @@ export declare function createHooks(args: {
61
61
  delegateTaskRetry: ReturnType<typeof import("./hooks").createDelegateTaskRetryHook> | null;
62
62
  startWork: ReturnType<typeof import("./hooks").createStartWorkHook> | null;
63
63
  prometheusMdOnly: ReturnType<typeof import("./hooks").createOracleMdOnlyHook> | null;
64
- sisyphusJuniorNotepad: ReturnType<typeof import("./hooks").createMouseNotepadHook> | null;
64
+ mouseNotepad: ReturnType<typeof import("./hooks").createMouseNotepadHook> | null;
65
65
  questionLabelTruncator: ReturnType<typeof import("./hooks").createQuestionLabelTruncatorHook>;
66
66
  taskResumeInfo: ReturnType<typeof import("./hooks").createTaskResumeInfoHook>;
67
67
  anthropicEffort: ReturnType<typeof import("./hooks/anthropic-effort").createAnthropicEffortHook> | null;
@@ -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.";
@@ -1 +1 @@
1
- export declare const START_WORK_TEMPLATE = "You are starting a Morpheus work session.\n\n## WHAT TO DO\n\n1. **Find available plans**: Search for Oracle-generated plan files at `.matrixx/plans/`\n\n2. **Check for active mission state**: Read `.matrixx/mission.json` if it exists\n\n3. **Decision logic**:\n - If `.matrixx/mission.json` exists AND plan is NOT complete (has unchecked boxes):\n - **APPEND** current session to session_ids\n - Continue work on existing plan\n - If no active plan OR plan is complete:\n - List available plan files\n - If ONE plan: auto-select it\n - If MULTIPLE plans: show list with timestamps, ask user to select\n\n4. **Create/Update mission.json**:\n ```json\n {\n \"active_plan\": \"/absolute/path/to/plan.md\",\n \"started_at\": \"ISO_TIMESTAMP\",\n \"session_ids\": [\"session_id_1\", \"session_id_2\"],\n \"plan_name\": \"plan-name\"\n }\n ```\n\n5. **Read the plan file** and start executing tasks according to atlas workflow\n\n## OUTPUT FORMAT\n\nWhen listing plans for selection:\n```\nAvailable Work Plans\n\nCurrent Time: {ISO timestamp}\nSession ID: {current session id}\n\n1. [plan-name-1.md] - Modified: {date} - Progress: 3/10 tasks\n2. [plan-name-2.md] - Modified: {date} - Progress: 0/5 tasks\n\nWhich plan would you like to work on? (Enter number or plan name)\n```\n\nWhen resuming existing work:\n```\nResuming Work Session\n\nActive Plan: {plan-name}\nProgress: {completed}/{total} tasks\nSessions: {count} (appending current session)\n\nReading plan and continuing from last incomplete task...\n```\n\nWhen auto-selecting single plan:\n```\nStarting Work Session\n\nPlan: {plan-name}\nSession ID: {session_id}\nStarted: {timestamp}\n\nReading plan and beginning execution...\n```\n\n## CRITICAL\n\n- The session_id is injected by the hook - use it directly\n- Always update mission.json BEFORE starting work\n- Read the FULL plan file before delegating any tasks\n- Follow atlas delegation protocols (7-section format)";
1
+ export declare const START_WORK_TEMPLATE = "You are starting a Morpheus work session.\n\n## WHAT TO DO\n\n1. **Find available plans**: Search for Oracle-generated plan files at `.matrixx/plans/`\n\n2. **Check for active mission state**: Read `.matrixx/mission.json` if it exists\n\n3. **Decision logic**:\n - If `.matrixx/mission.json` exists AND plan is NOT complete (has unchecked boxes):\n - **APPEND** current session to session_ids\n - Continue work on existing plan\n - If no active plan OR plan is complete:\n - List available plan files\n - If ONE plan: auto-select it\n - If MULTIPLE plans: show list with timestamps, ask user to select\n\n4. **Create/Update mission.json**:\n ```json\n {\n \"active_plan\": \"/absolute/path/to/plan.md\",\n \"started_at\": \"ISO_TIMESTAMP\",\n \"session_ids\": [\"session_id_1\", \"session_id_2\"],\n \"plan_name\": \"plan-name\"\n }\n ```\n\n5. **Read the plan file** and start executing tasks according to architect workflow\n\n## OUTPUT FORMAT\n\nWhen listing plans for selection:\n```\nAvailable Work Plans\n\nCurrent Time: {ISO timestamp}\nSession ID: {current session id}\n\n1. [plan-name-1.md] - Modified: {date} - Progress: 3/10 tasks\n2. [plan-name-2.md] - Modified: {date} - Progress: 0/5 tasks\n\nWhich plan would you like to work on? (Enter number or plan name)\n```\n\nWhen resuming existing work:\n```\nResuming Work Session\n\nActive Plan: {plan-name}\nProgress: {completed}/{total} tasks\nSessions: {count} (appending current session)\n\nReading plan and continuing from last incomplete task...\n```\n\nWhen auto-selecting single plan:\n```\nStarting Work Session\n\nPlan: {plan-name}\nSession ID: {session_id}\nStarted: {timestamp}\n\nReading plan and beginning execution...\n```\n\n## CRITICAL\n\n- The session_id is injected by the hook - use it directly\n- Always update mission.json BEFORE starting work\n- Read the FULL plan file before delegating any tasks\n- Follow architect delegation protocols (7-section format)";
@@ -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.
@@ -50,7 +50,7 @@ export declare function findFirstMessageWithAgent(messageDir: string): string |
50
50
  *
51
51
  * Features degraded on beta:
52
52
  * - Hook message injection (e.g., continuation prompts, context injection) won't persist
53
- * - Atlas hook's injected messages won't be visible in SQLite backend
53
+ * - Architect hook's injected messages won't be visible in SQLite backend
54
54
  * - Todo continuation enforcer's injected prompts won't persist
55
55
  * - Ralph loop's continuation prompts won't persist
56
56
  *
@@ -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 {};
@@ -13,7 +13,7 @@ export interface MissionState {
13
13
  session_ids: string[];
14
14
  /** Plan name derived from filename */
15
15
  plan_name: string;
16
- /** Agent type to use when resuming (e.g., 'atlas') */
16
+ /** Agent type to use when resuming (e.g., 'architect') */
17
17
  agent?: string;
18
18
  }
19
19
  export interface PlanProgress {
@@ -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,6 +1,6 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { AtlasHookOptions } from "./types";
3
- export declare function createAtlasHook(ctx: PluginInput, options?: AtlasHookOptions): {
2
+ import type { ArchitectHookOptions } from "./types";
3
+ export declare function createArchitectHook(ctx: PluginInput, options?: ArchitectHookOptions): {
4
4
  handler: (arg: {
5
5
  event: {
6
6
  type: string;
@@ -1,8 +1,8 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { AtlasHookOptions, SessionState } from "./types";
3
- export declare function createAtlasEventHandler(input: {
2
+ import type { ArchitectHookOptions, SessionState } from "./types";
3
+ export declare function createArchitectEventHandler(input: {
4
4
  ctx: PluginInput;
5
- options?: AtlasHookOptions;
5
+ options?: ArchitectHookOptions;
6
6
  sessions: Map<string, SessionState>;
7
7
  getState: (sessionID: string) => SessionState;
8
8
  }): (arg: {
@@ -1,3 +1,3 @@
1
- export { createAtlasHook } from "./atlas-hook";
1
+ export { createArchitectHook } from "./architect-hook";
2
2
  export { HOOK_NAME } from "./hook-name";
3
- export type { AtlasHookOptions } from "./types";
3
+ export type { ArchitectHookOptions } from "./types";
@@ -4,7 +4,7 @@ export type ModelInfo = {
4
4
  providerID: string;
5
5
  modelID: string;
6
6
  };
7
- export interface AtlasHookOptions {
7
+ export interface ArchitectHookOptions {
8
8
  directory: string;
9
9
  backgroundManager?: BackgroundManager;
10
10
  isContinuationStopped?: (sessionID: string) => boolean;
@@ -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";
@@ -1,6 +1,6 @@
1
1
  export { createAgentUsageReminderHook } from "./agent-usage-reminder";
2
2
  export { type AnthropicContextWindowLimitRecoveryOptions, createAnthropicContextWindowLimitRecoveryHook } from "./anthropic-context-window-limit-recovery";
3
- export { createAtlasHook } from "./architect";
3
+ export { createArchitectHook } from "./architect";
4
4
  export { createAutoSlashCommandHook } from "./auto-slash-command";
5
5
  export { createAutoUpdateCheckerHook } from "./auto-update-checker";
6
6
  export { createBackgroundNotificationHook } from "./background-notification";
@@ -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
@@ -1,2 +1,2 @@
1
- export declare const HOOK_NAME = "sisyphus-junior-notepad";
1
+ export declare const HOOK_NAME = "mouse-notepad";
2
2
  export declare const NOTEPAD_DIRECTIVE = "\n<Work_Context>\n## Notepad Location (for recording learnings)\nNOTEPAD PATH: .matrixx/notepads/{plan-name}/\n- learnings.md: Record patterns, conventions, successful approaches\n- issues.md: Record problems, blockers, gotchas encountered\n- decisions.md: Record architectural choices and rationales\n- problems.md: Record unresolved issues, technical debt\n\nYou SHOULD append findings to notepad files after completing work.\nIMPORTANT: Always APPEND to notepad files - never overwrite or use Edit tool.\n\n## Plan Location (READ ONLY)\nPLAN PATH: .matrixx/plans/{plan-name}.md\n\nCRITICAL RULE: NEVER MODIFY THE PLAN FILE\n\nThe plan file (.matrixx/plans/*.md) is SACRED and READ-ONLY.\n- You may READ the plan to understand tasks\n- You may READ checkbox items to know what to do\n- You MUST NOT edit, modify, or update the plan file\n- You MUST NOT mark checkboxes as complete in the plan\n- Only the Orchestrator manages the plan file\n\nVIOLATION = IMMEDIATE FAILURE. The Orchestrator tracks plan state.\n</Work_Context>\n";