opencode-matrixx-v2 1.0.0 → 1.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 (30) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/doctor/checks/context-mode.d.ts +24 -1
  3. package/dist/cli.js +1254 -10967
  4. package/dist/config/schema/background-task.d.ts +0 -9
  5. package/dist/config/schema/matrixx-config.d.ts +0 -9
  6. package/dist/features/background-agent/constants.d.ts +0 -4
  7. package/dist/features/background-agent/index.d.ts +0 -1
  8. package/dist/features/background-agent/manager.d.ts +1 -0
  9. package/dist/features/background-agent/session-output.d.ts +4 -0
  10. package/dist/features/session-state/state.d.ts +1 -0
  11. package/dist/features/task-toast-manager/manager.d.ts +2 -6
  12. package/dist/hooks/auto-update-checker/hook/mcp-startup-toast.d.ts +5 -0
  13. package/dist/hooks/subagent-block/constants.d.ts +1 -1
  14. package/dist/index.js +6481 -15615
  15. package/dist/matrixx.schema.json +0 -33
  16. package/dist/mcps/context7.d.ts +12 -0
  17. package/dist/mcps/index.d.ts +3 -0
  18. package/dist/mcps/mcp-startup-notice.d.ts +5 -0
  19. package/dist/mcps/mcp.transform.d.ts +2 -0
  20. package/dist/plugin/legacy-hooks.d.ts +5 -5
  21. package/dist/plugin/setup-domains.d.ts +3 -0
  22. package/dist/shared/context-mode-enforcement.d.ts +7 -3
  23. package/dist/shared/task-system-gating.d.ts +1 -1
  24. package/dist/tools/background-task/clients.d.ts +2 -4
  25. package/dist/tools/background-task/create-background-cancel.d.ts +2 -2
  26. package/dist/tools/delegate-task/sync-session-poller.d.ts +15 -0
  27. package/dist/tools/index.d.ts +2 -1
  28. package/dist/tools.js +890 -10588
  29. package/package.json +3 -3
  30. package/dist/features/background-agent/concurrency.d.ts +0 -36
@@ -3299,39 +3299,6 @@
3299
3299
  },
3300
3300
  "additionalProperties": false
3301
3301
  },
3302
- "admissionTimeoutMs": {
3303
- "anyOf": [
3304
- {
3305
- "type": "number",
3306
- "const": 0
3307
- },
3308
- {
3309
- "type": "number",
3310
- "minimum": 60000
3311
- }
3312
- ]
3313
- },
3314
- "nestedAdmission": {
3315
- "type": "object",
3316
- "properties": {
3317
- "enabled": {
3318
- "type": "boolean"
3319
- },
3320
- "mode": {
3321
- "type": "string",
3322
- "enum": [
3323
- "bypass",
3324
- "reserve"
3325
- ]
3326
- },
3327
- "maxDepth": {
3328
- "type": "integer",
3329
- "minimum": 1,
3330
- "maximum": 5
3331
- }
3332
- },
3333
- "additionalProperties": false
3334
- },
3335
3302
  "wakeScheduler": {
3336
3303
  "type": "object",
3337
3304
  "properties": {
@@ -1,3 +1,15 @@
1
+ export interface BuildContext7EntryInput {
2
+ context7ApiKey?: string;
3
+ }
4
+ export declare function buildContext7Entry(input?: BuildContext7EntryInput): {
5
+ type: "remote";
6
+ url: string;
7
+ enabled: boolean;
8
+ headers: {
9
+ Authorization: string;
10
+ } | undefined;
11
+ oauth: false;
12
+ };
1
13
  export declare const context7: {
2
14
  type: "remote";
3
15
  url: string;
@@ -10,10 +10,13 @@ import { type BuiltinMcpEntry } from "./mcp.transform";
10
10
  import { type McpCreationFailure } from "./mcp-validator";
11
11
  export type { McpTransformDomain, McpTransformEditor, RegisterMcpTransformResult, } from "./mcp.transform";
12
12
  export { type BuiltinMcpEntry, buildBuiltinMcpEntries, registerMcpTransform, toV2McpEntry } from "./mcp.transform";
13
+ export { buildMcpStartupNotice, getMcpStartupNotice, MCP_UVX_INSTALL_FIX, MCP_UVX_WARM_FIX } from "./mcp-startup-notice";
13
14
  export type { McpCreationFailure } from "./mcp-validator";
14
15
  export { type McpName, McpNameSchema } from "./types";
15
16
  export interface CreateBuiltinMcpsOptions {
16
17
  isCommandAvailable?: (command: string) => boolean;
18
+ /** Overrides `process.env.CONTEXT7_API_KEY`; resolved at the edge, never in the builder. */
19
+ context7ApiKey?: string;
17
20
  }
18
21
  export interface CreateBuiltinMcpsResult {
19
22
  mcps: Record<string, BuiltinMcpEntry>;
@@ -0,0 +1,5 @@
1
+ import type { McpCreationFailure } from "./mcp-validator";
2
+ export declare const MCP_UVX_INSTALL_FIX = "curl -LsSf https://astral.sh/uv/install.sh | sh";
3
+ export declare const MCP_UVX_WARM_FIX = "uvx --from markitdown-mcp markitdown-mcp --help";
4
+ export declare function buildMcpStartupNotice(failures: McpCreationFailure[]): string | undefined;
5
+ export declare function getMcpStartupNotice(): string | undefined;
@@ -23,6 +23,8 @@ export interface BuildBuiltinMcpEntriesInput {
23
23
  disabledMcps?: string[];
24
24
  /** Resolved by the caller (e.g. `isCommandAvailable("uvx")`); never spawned here. */
25
25
  uvxAvailable: boolean;
26
+ /** Resolved by the caller from `process.env.CONTEXT7_API_KEY` at the edge; never read here. */
27
+ context7ApiKey?: string;
26
28
  }
27
29
  export interface BuildBuiltinMcpEntriesResult {
28
30
  entries: Record<string, BuiltinMcpEntry>;
@@ -90,7 +90,7 @@ export interface Hooks {
90
90
  sessionID: string;
91
91
  callID: string;
92
92
  }, output: {
93
- args: any;
93
+ args: Record<string, unknown>;
94
94
  }) => Promise<void>;
95
95
  "shell.env"?: (input: {
96
96
  cwd: string;
@@ -103,13 +103,13 @@ export interface Hooks {
103
103
  tool: string;
104
104
  sessionID: string;
105
105
  callID: string;
106
- args: any;
106
+ args: Record<string, unknown>;
107
107
  }, output: {
108
108
  title: string;
109
109
  output: string;
110
- metadata: any;
110
+ metadata: Record<string, unknown>;
111
111
  }) => Promise<void>;
112
- "experimental.chat.messages.transform"?: (input: {}, output: {
112
+ "experimental.chat.messages.transform"?: (input: Record<string, unknown>, output: {
113
113
  messages: {
114
114
  info: Message;
115
115
  parts: Part[];
@@ -138,6 +138,6 @@ export interface Hooks {
138
138
  toolID: string;
139
139
  }, output: {
140
140
  description: string;
141
- parameters: any;
141
+ parameters: Record<string, unknown>;
142
142
  }) => Promise<void>;
143
143
  }
@@ -104,6 +104,9 @@ export interface DomainRegistration {
104
104
  * the empty task response). Join text parts; non-text parts contribute nothing.
105
105
  */
106
106
  export declare function hookOutputText(content: unknown): string | undefined;
107
+ export declare function hideNativeSubagentTool(editor: {
108
+ remove(id: string): void;
109
+ }): void;
107
110
  /**
108
111
  * Applies the assembled `Hooks` onto the V2 context.
109
112
  * Returns the registration set whose `dispose` tears everything down.
@@ -23,7 +23,7 @@ export declare function hasGrepGlobToolNames(toolNames: readonly string[]): bool
23
23
  * Whether agent prompts may advertise a grep/glob fallback.
24
24
  * Usable = registered AND not blocked. Under enforce:true the hook throws on
25
25
  * grep/glob, so the prompt must never offer them — it must name the working
26
- * substitute (ctx_batch_execute / ctx_execute running `rg`) instead.
26
+ * substitute (ctx_batch / ctx_execute running `rg`) instead.
27
27
  */
28
28
  export declare function resolveGrepGlobUsable(toolNames: readonly string[], contextMode?: ContextModeConfigInput): boolean;
29
29
  export declare function _setDisciplinePathForTesting(p: string | null | undefined): void;
@@ -47,8 +47,12 @@ export declare function resolveContextModeDisciplineInfo(): {
47
47
  export declare function hasWorkingSubstitute(): boolean;
48
48
  /**
49
49
  * SINGLE-OWNER predicate for ctx-tool presence.
50
- * Default absent (false) so production without an override is fail-open
51
- * (warn-only). Tests simulate presence via `_setCtxToolsForTesting(true)`.
50
+ * Fail-open (locked Phase-2 decision, honoring the committed
51
+ * ctx-absent-blocked RED suite): available only when the discipline path
52
+ * resolves AND a context_mode config is present and enabled; every other
53
+ * state defaults to false so the hook's warn-only fallback path stays
54
+ * reachable exactly as today. Tests force either outcome via
55
+ * `_setCtxToolsForTesting`.
52
56
  */
53
57
  export declare function isCtxToolsAvailable(): boolean;
54
58
  /** Alias kept for prompt-builder readability — same single owner. */
@@ -25,7 +25,7 @@ export declare function resetTaskSystemDeprecationWarning(): void;
25
25
  * unconditional and always resolves to `TASK_SYSTEM_DEFAULT`. The three keys
26
26
  * that used to gate it (`tasks.enabled`, `experimental.task_system`,
27
27
  * `new_task_system_enabled`) are parsed, ignored, and reported once per session
28
- * via `warn` plus a single startup toast. Nothing here throws.
28
+ * via a log line plus a single startup toast. Nothing here throws.
29
29
  *
30
30
  * Pure derivation, no mutation — safe to call on every read.
31
31
  */
@@ -16,10 +16,8 @@ export type BackgroundOutputClient = {
16
16
  };
17
17
  export type BackgroundCancelClient = {
18
18
  session: {
19
- abort: (args: {
20
- path: {
21
- id: string;
22
- };
19
+ interrupt: (args: {
20
+ sessionID: string;
23
21
  }) => Promise<unknown>;
24
22
  };
25
23
  };
@@ -1,4 +1,4 @@
1
1
  import type { BackgroundManager } from "../../features/background-agent";
2
- import type { SessionContextCarrier } from "../../shared/session-context-source";
3
2
  import { type MatrixxToolDefinition } from "../shared/define-tool";
4
- export declare function createBackgroundCancel(manager: BackgroundManager, _client: SessionContextCarrier): MatrixxToolDefinition;
3
+ import type { BackgroundCancelClient } from "./clients";
4
+ export declare function createBackgroundCancel(manager: BackgroundManager, client: BackgroundCancelClient): MatrixxToolDefinition;
@@ -1,5 +1,20 @@
1
1
  import type { SessionMessage } from "../../shared/session-message";
2
2
  import type { NativeClient, ToolContextWithMetadata } from "./types";
3
+ /**
4
+ * `time.completed` from the flat message shape. The shared `session-message`
5
+ * surface is frozen (see tests/shared/no-v1-shape.test.ts), so this accessor
6
+ * lives with its only consumer instead of graduating into `shared/`.
7
+ */
8
+ export declare function completedOf(message: unknown): number | undefined;
9
+ /**
10
+ * OpenCode V2 publishes `time.completed` on assistant messages: the row is
11
+ * created when a step starts and completed when it ends, so an assistant
12
+ * message without `time.completed` is still streaming. Older payloads (and
13
+ * test corpora) never carry the field — when no assistant message in the
14
+ * observed set carries it, the host does not expose completion and every
15
+ * message must be treated as settled.
16
+ */
17
+ export declare function isStreamingAssistant(message: SessionMessage | undefined, messages: SessionMessage[]): boolean;
3
18
  export declare function isSessionComplete(messages: SessionMessage[]): boolean;
4
19
  export declare function hasToolResultAfterAssistant(messages: SessionMessage[]): boolean;
5
20
  export declare function hasAssistantContent(messages: SessionMessage[]): boolean;
@@ -31,11 +31,12 @@ export { createStalenessGapCheckerTool } from "./staleness-gap-checker";
31
31
  export { lspManager };
32
32
  import type { BackgroundManager } from "../features/background-agent";
33
33
  import type { SessionContextCarrier } from "../shared/session-context-source";
34
+ import type { BackgroundCancelClient } from "./background-task/clients";
34
35
  import type { MatrixxToolDefinition } from "./shared/define-tool";
35
36
  export { createAssemblyTool } from "./assembly/tools";
36
37
  export { createDelegateTask, resolveSystemDefaultModel } from "./delegate-task";
37
38
  export { createHashlineEditTool } from "./hashline-edit";
38
39
  export { createLookAt } from "./look-at/tools";
39
40
  export { createTaskCleanupTool, createTaskCreateTool, createTaskGetTool, createTaskList, createTaskUpdateTool, } from "./task";
40
- export declare function createBackgroundTools(manager: BackgroundManager, client: SessionContextCarrier, directory: string): Record<string, MatrixxToolDefinition>;
41
+ export declare function createBackgroundTools(manager: BackgroundManager, client: SessionContextCarrier & BackgroundCancelClient, directory: string): Record<string, MatrixxToolDefinition>;
41
42
  export declare const builtinTools: Record<string, MatrixxToolDefinition>;