@ai-matrx/desktop-protocol 0.17.11 → 0.17.12

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.
package/dist/index.cjs CHANGED
@@ -342,6 +342,21 @@ __export(src_exports, {
342
342
  SpendScopes: () => SpendScopes,
343
343
  SpendSplit: () => SpendSplit,
344
344
  SpendStart: () => SpendStart,
345
+ StackErrorsParams: () => StackErrorsParams,
346
+ StackErrorsResult: () => StackErrorsResult,
347
+ StackEvent: () => StackEvent,
348
+ StackLogsParams: () => StackLogsParams,
349
+ StackLogsResult: () => StackLogsResult,
350
+ StackRunResult: () => StackRunResult,
351
+ StackServer: () => StackServer,
352
+ StackServerActionParams: () => StackServerActionParams,
353
+ StackServerActionResult: () => StackServerActionResult,
354
+ StackServerName: () => StackServerName,
355
+ StackStartParams: () => StackStartParams,
356
+ StackStateParams: () => StackStateParams,
357
+ StackStateResult: () => StackStateResult,
358
+ StackStopParams: () => StackStopParams,
359
+ StackTone: () => StackTone,
345
360
  StreamMeta: () => StreamMeta,
346
361
  StreamMsg: () => StreamMsg,
347
362
  SysinfoGetParams: () => SysinfoGetParams,
@@ -407,7 +422,7 @@ module.exports = __toCommonJS(src_exports);
407
422
  // src/schema/primitives.ts
408
423
  var import_zod = require("zod");
409
424
  var PROTOCOL_MAJOR = 1;
410
- var PROTOCOL_MINOR = 15;
425
+ var PROTOCOL_MINOR = 16;
411
426
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
412
427
  var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
413
428
  var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -2067,121 +2082,207 @@ var ResourcesSnapshotResult = import_zod23.z.strictObject({
2067
2082
  uptime_seconds: nonNegInt
2068
2083
  });
2069
2084
 
2070
- // src/schema/audio.ts
2085
+ // src/schema/stack.ts
2071
2086
  var import_zod24 = require("zod");
2072
- var AudioDevice = import_zod24.z.strictObject({
2087
+ var StackServerName = import_zod24.z.string().regex(/^[a-z0-9_-]{1,64}$/);
2088
+ var StackTone = import_zod24.z.enum(["good", "wait", "bad", "off"]);
2089
+ var StackServer = import_zod24.z.strictObject({
2090
+ name: StackServerName,
2091
+ /** One word: Healthy, Starting, Unhealthy, Restarting, Stopping, Waiting, Stopped, Crashed, Off. */
2092
+ label: import_zod24.z.string().max(32),
2093
+ tone: StackTone,
2094
+ /** What is going on, in one or two plain sentences. */
2095
+ sentence: import_zod24.z.string().max(2e3),
2096
+ /** The config's own description of the server. */
2097
+ description: import_zod24.z.string().max(512),
2098
+ /** Where the server answers, when its description names an address. */
2099
+ open_url: import_zod24.z.string().max(2048).nullable(),
2100
+ log_file: import_zod24.z.string().max(4096),
2101
+ /** When its log file was last written. */
2102
+ last_output_at_ms: epochMs.nullable(),
2103
+ started_at_ms: epochMs.nullable(),
2104
+ restarts: nonNegInt,
2105
+ exit_code: import_zod24.z.int().nullable(),
2106
+ pid: import_zod24.z.int().nullable()
2107
+ });
2108
+ var StackEvent = import_zod24.z.strictObject({
2109
+ at_ms: epochMs,
2110
+ /** A server name, or "stack" for the stack as a whole. */
2111
+ server: import_zod24.z.string().max(64),
2112
+ /** started · stopped · healthy · unhealthy · crashed · exited · restarting · stopping · action · action-done · action-failed · setup · error */
2113
+ kind: import_zod24.z.string().max(32),
2114
+ text: import_zod24.z.string().max(4e3)
2115
+ });
2116
+ var StackStateParams = import_zod24.z.strictObject({});
2117
+ var StackStateResult = import_zod24.z.strictObject({
2118
+ /** The stack's config file, when found. */
2119
+ config_path: import_zod24.z.string().max(4096).nullable(),
2120
+ /** Why the stack cannot be run from here (no config, no process-compose), else null. */
2121
+ problem: import_zod24.z.string().max(1e3).nullable(),
2122
+ stack_up: import_zod24.z.boolean(),
2123
+ stack_started_at_ms: epochMs.nullable(),
2124
+ servers: import_zod24.z.array(StackServer).max(64),
2125
+ /** One line about the one-shot setup steps ("Docker Desktop: running."), or null. */
2126
+ setup_note: import_zod24.z.string().max(500).nullable(),
2127
+ /** Start everything / Stop everything in flight. */
2128
+ pending: import_zod24.z.strictObject({ verb: import_zod24.z.enum(["start", "stop"]), label: import_zod24.z.string().max(64), since_ms: epochMs }).nullable(),
2129
+ /** The newest entries last. */
2130
+ events: import_zod24.z.array(StackEvent).max(300)
2131
+ });
2132
+ var StackStartParams = import_zod24.z.strictObject({});
2133
+ var StackStopParams = import_zod24.z.strictObject({});
2134
+ var StackRunResult = import_zod24.z.strictObject({ accepted: import_zod24.z.boolean() });
2135
+ var StackServerActionParams = import_zod24.z.strictObject({
2136
+ name: StackServerName,
2137
+ verb: import_zod24.z.enum(["start", "stop", "restart"])
2138
+ });
2139
+ var StackServerActionResult = import_zod24.z.strictObject({ message: import_zod24.z.string().max(1e3) });
2140
+ var StackLogsParams = import_zod24.z.strictObject({
2141
+ name: StackServerName,
2142
+ /** Without `offset`: the last this-many complete lines. With it: new lines after it, at most this many. */
2143
+ lines: import_zod24.z.int().min(1).max(2e5).default(2e3),
2144
+ /** Byte offset the last read ended at: answer only what was written after it (follow). */
2145
+ offset: nonNegInt.optional(),
2146
+ /** A "Clear" point: the lines written after this byte offset (no `offset`). */
2147
+ since: nonNegInt.optional(),
2148
+ /** With `offset`: wait up to this long for a new line when none is waiting (0 answers at once). */
2149
+ wait_ms: import_zod24.z.int().min(0).max(25e3).default(0)
2150
+ });
2151
+ var StackLogsResult = import_zod24.z.strictObject({
2152
+ /** Complete lines, colour codes removed. */
2153
+ lines: import_zod24.z.array(import_zod24.z.string().max(65536)).max(2e5),
2154
+ /** Where these lines end: pass it back as `offset` to follow. */
2155
+ offset: nonNegInt,
2156
+ /** False when `since` no longer exists (the log rotated): the lines are the plain tail instead. */
2157
+ since_valid: import_zod24.z.boolean(),
2158
+ /** The log was rotated or truncated since `offset`: these lines start the file again. */
2159
+ reset: import_zod24.z.boolean(),
2160
+ log_file: import_zod24.z.string().max(4096)
2161
+ });
2162
+ var StackErrorsParams = import_zod24.z.strictObject({
2163
+ window_minutes: import_zod24.z.int().min(1).max(1440).default(60)
2164
+ });
2165
+ var StackErrorsResult = import_zod24.z.strictObject({
2166
+ /** Per server: a heading line ("=== aidream — errors in the last 60 minutes (<file>) ===") and each error with the 10 lines after it. */
2167
+ sections: import_zod24.z.array(import_zod24.z.strictObject({ name: StackServerName, heading: import_zod24.z.string().max(4096), lines: import_zod24.z.array(import_zod24.z.string().max(65536)).max(5e3) })).max(64),
2168
+ window_minutes: import_zod24.z.int().min(1).max(1440)
2169
+ });
2170
+
2171
+ // src/schema/audio.ts
2172
+ var import_zod25 = require("zod");
2173
+ var AudioDevice = import_zod25.z.strictObject({
2073
2174
  /** The OS's name for it, as audio.record takes it. */
2074
- id: import_zod24.z.string().min(1).max(256),
2075
- name: import_zod24.z.string().max(256),
2076
- default: import_zod24.z.boolean()
2175
+ id: import_zod25.z.string().min(1).max(256),
2176
+ name: import_zod25.z.string().max(256),
2177
+ default: import_zod25.z.boolean()
2077
2178
  });
2078
- var AudioDevicesParams = import_zod24.z.strictObject({});
2079
- var AudioDevicesResult = import_zod24.z.strictObject({
2080
- inputs: import_zod24.z.array(AudioDevice).max(64),
2081
- outputs: import_zod24.z.array(AudioDevice).max(64)
2179
+ var AudioDevicesParams = import_zod25.z.strictObject({});
2180
+ var AudioDevicesResult = import_zod25.z.strictObject({
2181
+ inputs: import_zod25.z.array(AudioDevice).max(64),
2182
+ outputs: import_zod25.z.array(AudioDevice).max(64)
2082
2183
  });
2083
- var AudioRecordParams = import_zod24.z.strictObject({
2084
- seconds: import_zod24.z.number().min(0.5).max(600),
2184
+ var AudioRecordParams = import_zod25.z.strictObject({
2185
+ seconds: import_zod25.z.number().min(0.5).max(600),
2085
2186
  /** The microphone (from audio.devices); the default input when absent. */
2086
- device_id: import_zod24.z.string().min(1).max(256).optional(),
2187
+ device_id: import_zod25.z.string().min(1).max(256).optional(),
2087
2188
  /** Where the WAV file goes; a new file in the temp folder when absent. */
2088
2189
  path: AbsPath.optional()
2089
2190
  });
2090
- var AudioRecordResult = import_zod24.z.strictObject({
2191
+ var AudioRecordResult = import_zod25.z.strictObject({
2091
2192
  path: AbsPath,
2092
- seconds: import_zod24.z.number().min(0),
2193
+ seconds: import_zod25.z.number().min(0),
2093
2194
  bytes: nonNegInt,
2094
2195
  /** Loudest sample, 0–1: 0 means the device gave silence. */
2095
- peak: import_zod24.z.number().min(0).max(1)
2196
+ peak: import_zod25.z.number().min(0).max(1)
2096
2197
  });
2097
- var AudioPlayParams = import_zod24.z.strictObject({ path: AbsPath });
2098
- var AudioPlayResult = import_zod24.z.strictObject({ path: AbsPath, seconds: import_zod24.z.number().min(0) });
2198
+ var AudioPlayParams = import_zod25.z.strictObject({ path: AbsPath });
2199
+ var AudioPlayResult = import_zod25.z.strictObject({ path: AbsPath, seconds: import_zod25.z.number().min(0) });
2099
2200
 
2100
2201
  // src/schema/fs-watch.ts
2101
- var import_zod25 = require("zod");
2102
- var FsWatchId = import_zod25.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
2103
- var FsWatchStartParams = import_zod25.z.strictObject({
2202
+ var import_zod26 = require("zod");
2203
+ var FsWatchId = import_zod26.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
2204
+ var FsWatchStartParams = import_zod26.z.strictObject({
2104
2205
  path: AbsPath,
2105
- recursive: import_zod25.z.boolean().default(true),
2206
+ recursive: import_zod26.z.boolean().default(true),
2106
2207
  /** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
2107
- ignore: import_zod25.z.array(import_zod25.z.string().max(256)).max(64).default([])
2208
+ ignore: import_zod26.z.array(import_zod26.z.string().max(256)).max(64).default([])
2108
2209
  });
2109
- var FsWatchStartResult = import_zod25.z.strictObject({
2210
+ var FsWatchStartResult = import_zod26.z.strictObject({
2110
2211
  watch_id: FsWatchId,
2111
2212
  path: AbsPath,
2112
2213
  /** The watch ends by itself if nobody reads it for 30 minutes. */
2113
2214
  expires_at_ms: epochMs
2114
2215
  });
2115
- var FsWatchEventsParams = import_zod25.z.strictObject({
2216
+ var FsWatchEventsParams = import_zod26.z.strictObject({
2116
2217
  watch_id: FsWatchId,
2117
2218
  /** Wait up to this long for a first change when none is waiting (0 answers at once). */
2118
- wait_ms: import_zod25.z.int().min(0).max(25e3).default(0)
2219
+ wait_ms: import_zod26.z.int().min(0).max(25e3).default(0)
2119
2220
  });
2120
- var FsWatchEventsResult = import_zod25.z.strictObject({
2221
+ var FsWatchEventsResult = import_zod26.z.strictObject({
2121
2222
  /** What changed since the last read, oldest first; re-checked against the disk when read. */
2122
- changes: import_zod25.z.array(FsChange).max(1e3),
2223
+ changes: import_zod26.z.array(FsChange).max(1e3),
2123
2224
  /** Changes were dropped (more than 1000 waited): list the folder again. */
2124
- overflow: import_zod25.z.boolean(),
2225
+ overflow: import_zod26.z.boolean(),
2125
2226
  expires_at_ms: epochMs
2126
2227
  });
2127
- var FsWatchStopParams = import_zod25.z.strictObject({ watch_id: FsWatchId });
2128
- var FsWatchStopResult = import_zod25.z.strictObject({ watch_id: FsWatchId });
2228
+ var FsWatchStopParams = import_zod26.z.strictObject({ watch_id: FsWatchId });
2229
+ var FsWatchStopResult = import_zod26.z.strictObject({ watch_id: FsWatchId });
2129
2230
 
2130
2231
  // src/schema/exec-job.ts
2131
- var import_zod26 = require("zod");
2132
- var ExecJobId = import_zod26.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
2133
- var ExecJobStartParams = import_zod26.z.strictObject({
2134
- command: import_zod26.z.string().min(1).max(131072),
2232
+ var import_zod27 = require("zod");
2233
+ var ExecJobId = import_zod27.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
2234
+ var ExecJobStartParams = import_zod27.z.strictObject({
2235
+ command: import_zod27.z.string().min(1).max(131072),
2135
2236
  /** The folder it runs in; the home folder when absent. */
2136
2237
  cwd: AbsPath.optional(),
2137
- env: import_zod26.z.record(import_zod26.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), import_zod26.z.string().max(32768)).optional()
2238
+ env: import_zod27.z.record(import_zod27.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), import_zod27.z.string().max(32768)).optional()
2138
2239
  });
2139
- var ExecJobStartResult = import_zod26.z.strictObject({ job_id: ExecJobId, pid: import_zod26.z.int().min(1), cwd: AbsPath });
2140
- var ExecJobOutputParams = import_zod26.z.strictObject({
2240
+ var ExecJobStartResult = import_zod27.z.strictObject({ job_id: ExecJobId, pid: import_zod27.z.int().min(1), cwd: AbsPath });
2241
+ var ExecJobOutputParams = import_zod27.z.strictObject({
2141
2242
  job_id: ExecJobId,
2142
2243
  /** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
2143
2244
  offset: nonNegInt.default(0),
2144
2245
  /** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
2145
- wait_ms: import_zod26.z.int().min(0).max(25e3).default(0),
2146
- max_bytes: import_zod26.z.int().min(1024).max(1048576).default(65536)
2246
+ wait_ms: import_zod27.z.int().min(0).max(25e3).default(0),
2247
+ max_bytes: import_zod27.z.int().min(1024).max(1048576).default(65536)
2147
2248
  });
2148
- var ExecJobOutputResult = import_zod26.z.strictObject({
2249
+ var ExecJobOutputResult = import_zod27.z.strictObject({
2149
2250
  /** stdout and stderr interleaved as they arrived (UTF-8). */
2150
- output: import_zod26.z.string(),
2251
+ output: import_zod27.z.string(),
2151
2252
  next_offset: nonNegInt,
2152
2253
  /** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
2153
2254
  dropped_bytes: nonNegInt,
2154
- running: import_zod26.z.boolean(),
2155
- exit_code: import_zod26.z.int().nullable()
2255
+ running: import_zod27.z.boolean(),
2256
+ exit_code: import_zod27.z.int().nullable()
2156
2257
  });
2157
- var ExecJobStopParams = import_zod26.z.strictObject({
2258
+ var ExecJobStopParams = import_zod27.z.strictObject({
2158
2259
  job_id: ExecJobId,
2159
2260
  /** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
2160
- force: import_zod26.z.boolean().default(false)
2261
+ force: import_zod27.z.boolean().default(false)
2161
2262
  });
2162
- var ExecJobStopResult = import_zod26.z.strictObject({ job_id: ExecJobId, exited: import_zod26.z.boolean(), exit_code: import_zod26.z.int().nullable() });
2163
- var ExecJobInfo = import_zod26.z.strictObject({
2263
+ var ExecJobStopResult = import_zod27.z.strictObject({ job_id: ExecJobId, exited: import_zod27.z.boolean(), exit_code: import_zod27.z.int().nullable() });
2264
+ var ExecJobInfo = import_zod27.z.strictObject({
2164
2265
  job_id: ExecJobId,
2165
- command: import_zod26.z.string().max(1024),
2166
- pid: import_zod26.z.int().min(1),
2266
+ command: import_zod27.z.string().max(1024),
2267
+ pid: import_zod27.z.int().min(1),
2167
2268
  cwd: AbsPath,
2168
- running: import_zod26.z.boolean(),
2169
- exit_code: import_zod26.z.int().nullable(),
2269
+ running: import_zod27.z.boolean(),
2270
+ exit_code: import_zod27.z.int().nullable(),
2170
2271
  started_at_ms: epochMs,
2171
2272
  output_bytes: nonNegInt
2172
2273
  });
2173
- var ExecJobListParams = import_zod26.z.strictObject({});
2174
- var ExecJobListResult = import_zod26.z.strictObject({ jobs: import_zod26.z.array(ExecJobInfo).max(64) });
2274
+ var ExecJobListParams = import_zod27.z.strictObject({});
2275
+ var ExecJobListResult = import_zod27.z.strictObject({ jobs: import_zod27.z.array(ExecJobInfo).max(64) });
2175
2276
 
2176
2277
  // src/schema/coding.ts
2177
- var import_zod27 = require("zod");
2178
- var CodingServiceCredentials = import_zod27.z.strictObject({
2179
- access_token: import_zod27.z.string().min(16).max(16384),
2180
- user_id: import_zod27.z.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/),
2278
+ var import_zod28 = require("zod");
2279
+ var CodingServiceCredentials = import_zod28.z.strictObject({
2280
+ access_token: import_zod28.z.string().min(16).max(16384),
2281
+ user_id: import_zod28.z.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/),
2181
2282
  /** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
2182
- server_url: import_zod27.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
2283
+ server_url: import_zod28.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
2183
2284
  });
2184
- var CodingHistoryBlocked = import_zod27.z.enum([
2285
+ var CodingHistoryBlocked = import_zod28.z.enum([
2185
2286
  "signed_out",
2186
2287
  "offline",
2187
2288
  "organization_required",
@@ -2189,11 +2290,11 @@ var CodingHistoryBlocked = import_zod27.z.enum([
2189
2290
  "cloud_list_unavailable",
2190
2291
  "history_too_large"
2191
2292
  ]);
2192
- var CodingHistoryFailure = import_zod27.z.strictObject({
2193
- session_id: import_zod27.z.string().max(64),
2194
- reason: import_zod27.z.string().max(300)
2293
+ var CodingHistoryFailure = import_zod28.z.strictObject({
2294
+ session_id: import_zod28.z.string().max(64),
2295
+ reason: import_zod28.z.string().max(300)
2195
2296
  });
2196
- var CodingHistoryRun = import_zod27.z.strictObject({
2297
+ var CodingHistoryRun = import_zod28.z.strictObject({
2197
2298
  /** Claude Code sessions found on this computer. */
2198
2299
  local_sessions: nonNegInt,
2199
2300
  /** Of those, already complete in AI Matrx. */
@@ -2208,39 +2309,39 @@ var CodingHistoryRun = import_zod27.z.strictObject({
2208
2309
  /** Changed while being read; a later run takes them. */
2209
2310
  changed: nonNegInt,
2210
2311
  failed: nonNegInt,
2211
- failures: import_zod27.z.array(CodingHistoryFailure).max(20),
2312
+ failures: import_zod28.z.array(CodingHistoryFailure).max(20),
2212
2313
  /** Candidates not reached yet. */
2213
2314
  remaining: nonNegInt,
2214
2315
  /** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
2215
- summary: import_zod27.z.string().max(400)
2316
+ summary: import_zod28.z.string().max(400)
2216
2317
  });
2217
- var CodingHistoryStep = import_zod27.z.strictObject({
2318
+ var CodingHistoryStep = import_zod28.z.strictObject({
2218
2319
  /** Null when the run could not start (blocked before a plan existed). */
2219
- plan_id: import_zod27.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
2220
- finished: import_zod27.z.boolean(),
2320
+ plan_id: import_zod28.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
2321
+ finished: import_zod28.z.boolean(),
2221
2322
  blocked: CodingHistoryBlocked.nullable(),
2222
2323
  run: CodingHistoryRun
2223
2324
  });
2224
- var CodingPlanMissingParams = import_zod27.z.strictObject({ credentials: CodingServiceCredentials.nullable() });
2225
- var CodingImportNextParams = import_zod27.z.strictObject({
2226
- plan_id: import_zod27.z.string().regex(/^[0-9a-f]{32}$/),
2325
+ var CodingPlanMissingParams = import_zod28.z.strictObject({ credentials: CodingServiceCredentials.nullable() });
2326
+ var CodingImportNextParams = import_zod28.z.strictObject({
2327
+ plan_id: import_zod28.z.string().regex(/^[0-9a-f]{32}$/),
2227
2328
  credentials: CodingServiceCredentials.nullable()
2228
2329
  });
2229
- var CodingServiceProgress = import_zod27.z.strictObject({
2230
- phase: import_zod27.z.enum(["checking", "importing"]),
2330
+ var CodingServiceProgress = import_zod28.z.strictObject({
2331
+ phase: import_zod28.z.enum(["checking", "importing"]),
2231
2332
  done: nonNegInt,
2232
2333
  total: nonNegInt
2233
2334
  });
2234
- var CodingHistoryImportMissingParams = import_zod27.z.strictObject({});
2235
- var CodingHistoryImportMissingResult = import_zod27.z.strictObject({
2236
- state: import_zod27.z.enum(["done", "blocked", "cancelled"]),
2335
+ var CodingHistoryImportMissingParams = import_zod28.z.strictObject({});
2336
+ var CodingHistoryImportMissingResult = import_zod28.z.strictObject({
2337
+ state: import_zod28.z.enum(["done", "blocked", "cancelled"]),
2237
2338
  blocked: CodingHistoryBlocked.nullable(),
2238
2339
  run: CodingHistoryRun,
2239
2340
  elapsed_ms: nonNegInt
2240
2341
  });
2241
- var CodingHistoryProgressEvent = import_zod27.z.strictObject({
2342
+ var CodingHistoryProgressEvent = import_zod28.z.strictObject({
2242
2343
  request_id: RequestId,
2243
- phase: import_zod27.z.enum(["checking", "importing"]),
2344
+ phase: import_zod28.z.enum(["checking", "importing"]),
2244
2345
  /** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
2245
2346
  done: nonNegInt,
2246
2347
  total: nonNegInt,
@@ -2345,6 +2446,13 @@ var OPS = {
2345
2446
  "audio.devices": { params: AudioDevicesParams, result: AudioDevicesResult, kind: "unary", since: "1.6", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2346
2447
  "audio.record": { params: AudioRecordParams, result: AudioRecordResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "RESOURCE_BUSY", "INTERNAL"] },
2347
2448
  "audio.play": { params: AudioPlayParams, result: AudioPlayResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2449
+ // The local AI Matrx servers (aidream's process-compose stack), supervised from Matrx 2's core.
2450
+ "stack.state": { params: StackStateParams, result: StackStateResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
2451
+ "stack.start": { params: StackStartParams, result: StackRunResult, kind: "unary", since: "1.16", errors: ["RESOURCE_BUSY", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2452
+ "stack.stop": { params: StackStopParams, result: StackRunResult, kind: "unary", since: "1.16", errors: ["RESOURCE_BUSY", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2453
+ "stack.server.action": { params: StackServerActionParams, result: StackServerActionResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "CONFLICT", "INTERNAL"] },
2454
+ "stack.logs": { params: StackLogsParams, result: StackLogsResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "INTERNAL"] },
2455
+ "stack.errors": { params: StackErrorsParams, result: StackErrorsResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
2348
2456
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
2349
2457
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] }
2350
2458
  };
@@ -2576,6 +2684,21 @@ var NAMED_SCHEMAS = {
2576
2684
  AudioRecordResult,
2577
2685
  AudioPlayParams,
2578
2686
  AudioPlayResult,
2687
+ StackServerName,
2688
+ StackTone,
2689
+ StackServer,
2690
+ StackEvent,
2691
+ StackStateParams,
2692
+ StackStateResult,
2693
+ StackStartParams,
2694
+ StackStopParams,
2695
+ StackRunResult,
2696
+ StackServerActionParams,
2697
+ StackServerActionResult,
2698
+ StackLogsParams,
2699
+ StackLogsResult,
2700
+ StackErrorsParams,
2701
+ StackErrorsResult,
2579
2702
  FsWatchId,
2580
2703
  FsWatchStartParams,
2581
2704
  FsWatchStartResult,
@@ -2833,7 +2956,7 @@ function forPeer(op, part, value, version) {
2833
2956
  var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
2834
2957
 
2835
2958
  // src/contract.ts
2836
- var CONTRACT_SHA256 = "91060640a08d25f693f4d90384da7225299ab8fd287b665ca7d36f226d641267";
2959
+ var CONTRACT_SHA256 = "ee6873cbbdcba3960248ff0c5c71fe47c663b54c6e657d62d1ed5e04e51f17e2";
2837
2960
 
2838
2961
  // src/close-policy.ts
2839
2962
  var CLOSE_RULES = {