@ai-matrx/desktop-protocol 0.19.0 → 0.20.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.
package/dist/index.cjs CHANGED
@@ -146,6 +146,15 @@ __export(src_exports, {
146
146
  DEFAULT_WINDOW_BYTES: () => DEFAULT_WINDOW_BYTES,
147
147
  DesktopProtocolError: () => DesktopProtocolError,
148
148
  DeviceId: () => DeviceId,
149
+ DiagErrorEntry: () => DiagErrorEntry,
150
+ DiagErrorKind: () => DiagErrorKind,
151
+ DiagErrorStatus: () => DiagErrorStatus,
152
+ DiagErrorsChangedEvent: () => DiagErrorsChangedEvent,
153
+ DiagErrorsListParams: () => DiagErrorsListParams,
154
+ DiagErrorsListResult: () => DiagErrorsListResult,
155
+ DiagErrorsReportParams: () => DiagErrorsReportParams,
156
+ DiagErrorsReportResult: () => DiagErrorsReportResult,
157
+ DiagProcess: () => DiagProcess,
149
158
  EVENTS: () => EVENTS,
150
159
  EXCLUDED_TOOLS: () => EXCLUDED_TOOLS,
151
160
  EndMsg: () => EndMsg,
@@ -442,7 +451,7 @@ module.exports = __toCommonJS(src_exports);
442
451
  var import_zod = require("zod");
443
452
  var import_uuid = require("@ai-matrx/kit/uuid");
444
453
  var PROTOCOL_MAJOR = 1;
445
- var PROTOCOL_MINOR = 19;
454
+ var PROTOCOL_MINOR = 20;
446
455
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
447
456
  var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
448
457
  var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -2114,95 +2123,175 @@ var PowerPreventSleepResult = import_zod22.z.strictObject({
2114
2123
  awake_until_ms: epochMs.nullable()
2115
2124
  });
2116
2125
 
2117
- // src/schema/resources.ts
2126
+ // src/schema/diag.ts
2118
2127
  var import_zod23 = require("zod");
2119
- var ResourcesDisk = import_zod23.z.strictObject({
2128
+ var DiagProcess = import_zod23.z.enum([
2129
+ "main",
2130
+ "renderer",
2131
+ "hosted_page",
2132
+ "core",
2133
+ "pty_host",
2134
+ "python_ml",
2135
+ "python_coding",
2136
+ "python_tools",
2137
+ "relay",
2138
+ "coding_sessions",
2139
+ "claude_accounts"
2140
+ ]);
2141
+ var DiagErrorKind = import_zod23.z.enum([
2142
+ "uncaught_exception",
2143
+ "unhandled_rejection",
2144
+ "renderer_crash",
2145
+ "native_crash",
2146
+ "console_error",
2147
+ "load_failed",
2148
+ "op_failed",
2149
+ "child_exit",
2150
+ "banner",
2151
+ "logged_error"
2152
+ ]);
2153
+ var DiagErrorStatus = import_zod23.z.enum(["waiting", "sent", "resolved"]);
2154
+ var DiagErrorEntry = import_zod23.z.strictObject({
2155
+ /** sha256 prefix over process, kind, source, code and the normalized message. */
2156
+ signature: import_zod23.z.string().regex(/^[0-9a-f]{32}$/),
2157
+ process: DiagProcess,
2158
+ kind: DiagErrorKind,
2159
+ /** Where: a cap.op, a log event, a screen or page name. */
2160
+ source: import_zod23.z.string().min(1).max(128),
2161
+ /** An ErrorCode, an exit code or signal, an error class; null when there is none. */
2162
+ code: import_zod23.z.string().max(64).nullable(),
2163
+ /** The first occurrence's message, personal data removed. */
2164
+ message: import_zod23.z.string().max(500),
2165
+ count: nonNegInt,
2166
+ first_seen_ms: epochMs,
2167
+ last_seen_ms: epochMs,
2168
+ status: DiagErrorStatus,
2169
+ /** What the agent who resolved it wrote; null until resolved. */
2170
+ resolution_note: import_zod23.z.string().max(500).nullable(),
2171
+ app_version: import_zod23.z.string().max(64)
2172
+ });
2173
+ var DiagErrorsListParams = import_zod23.z.strictObject({
2174
+ /** open = waiting or sent; all includes resolved. */
2175
+ status: import_zod23.z.enum(["open", "all"]).default("open"),
2176
+ limit: import_zod23.z.int().min(1).max(500).default(200)
2177
+ });
2178
+ var DiagErrorsListResult = import_zod23.z.strictObject({
2179
+ /** Newest last_seen first. */
2180
+ entries: import_zod23.z.array(DiagErrorEntry).max(500),
2181
+ total_signatures: nonNegInt,
2182
+ total_occurrences: nonNegInt,
2183
+ /** Signatures with occurrences not yet delivered. */
2184
+ waiting: nonNegInt,
2185
+ /** signed_out = kept until sign-in; ok = the last delivery worked; failing = the last delivery failed (kept, retried). */
2186
+ delivery: import_zod23.z.enum(["signed_out", "ok", "failing"]),
2187
+ last_delivery_ms: epochMs.nullable()
2188
+ });
2189
+ var DiagErrorsReportParams = import_zod23.z.strictObject({
2190
+ process: import_zod23.z.enum(["renderer", "hosted_page"]),
2191
+ kind: import_zod23.z.enum(["uncaught_exception", "unhandled_rejection", "console_error", "banner"]),
2192
+ /** The screen or page, e.g. "code.chats". */
2193
+ source: import_zod23.z.string().min(1).max(128),
2194
+ message: import_zod23.z.string().min(1).max(2e3),
2195
+ code: import_zod23.z.string().max(64).optional(),
2196
+ stack: import_zod23.z.string().max(8e3).optional()
2197
+ });
2198
+ var DiagErrorsReportResult = import_zod23.z.strictObject({
2199
+ signature: import_zod23.z.string().regex(/^[0-9a-f]{32}$/)
2200
+ });
2201
+ var DiagErrorsChangedEvent = import_zod23.z.strictObject({
2202
+ total_signatures: nonNegInt,
2203
+ waiting: nonNegInt
2204
+ });
2205
+
2206
+ // src/schema/resources.ts
2207
+ var import_zod24 = require("zod");
2208
+ var ResourcesDisk = import_zod24.z.strictObject({
2120
2209
  /** Where it is mounted ("/", "C:"). */
2121
- mount: import_zod23.z.string().max(512),
2210
+ mount: import_zod24.z.string().max(512),
2122
2211
  /** The volume's name as the file manager shows it ("Macintosh HD", "Local Disk (C:)"). Since 1.17. */
2123
- name: import_zod23.z.string().max(256).optional(),
2212
+ name: import_zod24.z.string().max(256).optional(),
2124
2213
  /** The file system ("apfs", "NTFS", "ext4"). */
2125
- fs: import_zod23.z.string().max(64),
2214
+ fs: import_zod24.z.string().max(64),
2126
2215
  size_bytes: nonNegInt,
2127
2216
  used_bytes: nonNegInt,
2128
2217
  available_bytes: nonNegInt
2129
2218
  });
2130
- var ResourcesSnapshotParams = import_zod23.z.strictObject({});
2131
- var ResourcesSnapshotResult = import_zod23.z.strictObject({
2132
- cpu: import_zod23.z.strictObject({
2219
+ var ResourcesSnapshotParams = import_zod24.z.strictObject({});
2220
+ var ResourcesSnapshotResult = import_zod24.z.strictObject({
2221
+ cpu: import_zod24.z.strictObject({
2133
2222
  /** Busy share of all cores, 0–100, measured now. */
2134
- percent: import_zod23.z.number().min(0).max(100),
2135
- cores: import_zod23.z.int().min(1),
2223
+ percent: import_zod24.z.number().min(0).max(100),
2224
+ cores: import_zod24.z.int().min(1),
2136
2225
  /** 1, 5 and 15 minute load averages; null on Windows. */
2137
- load: import_zod23.z.array(import_zod23.z.number().min(0)).length(3).nullable()
2226
+ load: import_zod24.z.array(import_zod24.z.number().min(0)).length(3).nullable()
2138
2227
  }),
2139
- memory: import_zod23.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
2140
- swap: import_zod23.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
2141
- disks: import_zod23.z.array(ResourcesDisk).max(64),
2228
+ memory: import_zod24.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
2229
+ swap: import_zod24.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
2230
+ disks: import_zod24.z.array(ResourcesDisk).max(64),
2142
2231
  uptime_seconds: nonNegInt
2143
2232
  });
2144
- var ResourcesJobKind = import_zod23.z.enum(["type-check", "tests", "build", "lint", "dev server", "language server", "search"]);
2145
- var ResourcesStrain = import_zod23.z.enum(["good", "strain", "overloaded"]);
2146
- var ResourcesPressure = import_zod23.z.enum(["normal", "warning", "critical"]);
2147
- var ResourcesJob = import_zod23.z.strictObject({
2233
+ var ResourcesJobKind = import_zod24.z.enum(["type-check", "tests", "build", "lint", "dev server", "language server", "search"]);
2234
+ var ResourcesStrain = import_zod24.z.enum(["good", "strain", "overloaded"]);
2235
+ var ResourcesPressure = import_zod24.z.enum(["normal", "warning", "critical"]);
2236
+ var ResourcesJob = import_zod24.z.strictObject({
2148
2237
  /** The job's root process (Stop takes its whole tree). */
2149
- pid: import_zod23.z.int().min(0),
2238
+ pid: import_zod24.z.int().min(0),
2150
2239
  kind: ResourcesJobKind,
2151
2240
  /** Its heaviest process's command line, shortened ("…/lib/tsc --noEmit -p tsconfig.json"). */
2152
- command: import_zod23.z.string().max(256),
2241
+ command: import_zod24.z.string().max(256),
2153
2242
  /** Who started it: "Claude Code", "Codex", "Cursor", "VS Code", "Terminal", "local stack", "detached"; null when unknown. */
2154
- started_by: import_zod23.z.string().max(64).nullable(),
2243
+ started_by: import_zod24.z.string().max(64).nullable(),
2155
2244
  /** Whatever started it is gone and nothing waits for it. */
2156
- orphan: import_zod23.z.boolean(),
2245
+ orphan: import_zod24.z.boolean(),
2157
2246
  /** A type-check queued for its turn (no compiler running yet). */
2158
- waiting: import_zod23.z.boolean(),
2247
+ waiting: import_zod24.z.boolean(),
2159
2248
  /** The project folder it runs in ("matrx-frontend"); null when not in one. */
2160
- folder: import_zod23.z.string().max(256).nullable(),
2249
+ folder: import_zod24.z.string().max(256).nullable(),
2161
2250
  /** The same command in the same folder, running this many times (1 = no duplicate). */
2162
- duplicates: import_zod23.z.int().min(1),
2163
- processes: import_zod23.z.int().min(1),
2251
+ duplicates: import_zod24.z.int().min(1),
2252
+ processes: import_zod24.z.int().min(1),
2164
2253
  /** Sum over the tree, as `ps` reports it: 100 = one full core. */
2165
- cpu_percent: import_zod23.z.number().min(0),
2254
+ cpu_percent: import_zod24.z.number().min(0),
2166
2255
  /** Real memory (macOS: the physical footprint Activity Monitor shows, compressed included). */
2167
2256
  memory_bytes: nonNegInt,
2168
2257
  started_at_ms: epochMs.nullable(),
2169
2258
  /** False for an app, an agent session, a terminal, a system process, the local stack or Matrx 2 itself. */
2170
- stoppable: import_zod23.z.boolean()
2259
+ stoppable: import_zod24.z.boolean()
2171
2260
  });
2172
- var ResourcesProcess = import_zod23.z.strictObject({
2173
- pid: import_zod23.z.int().min(0),
2261
+ var ResourcesProcess = import_zod24.z.strictObject({
2262
+ pid: import_zod24.z.int().min(0),
2174
2263
  /** The command line, shortened. */
2175
- name: import_zod23.z.string().max(256),
2176
- cpu_percent: import_zod23.z.number().min(0),
2264
+ name: import_zod24.z.string().max(256),
2265
+ cpu_percent: import_zod24.z.number().min(0),
2177
2266
  memory_bytes: nonNegInt,
2178
- started_by: import_zod23.z.string().max(64).nullable(),
2267
+ started_by: import_zod24.z.string().max(64).nullable(),
2179
2268
  /** The job it belongs to ("type-check in aidream"); null when none. */
2180
- job: import_zod23.z.string().max(256).nullable(),
2269
+ job: import_zod24.z.string().max(256).nullable(),
2181
2270
  started_at_ms: epochMs.nullable()
2182
2271
  });
2183
- var ResourcesVerdict = import_zod23.z.strictObject({
2272
+ var ResourcesVerdict = import_zod24.z.strictObject({
2184
2273
  level: ResourcesStrain,
2185
2274
  /** One sentence ("Your Mac is under strain. 3 type-checks are running at once."). */
2186
- text: import_zod23.z.string().max(256),
2275
+ text: import_zod24.z.string().max(256),
2187
2276
  /** The biggest jobs behind it; null when all is well. */
2188
- cause: import_zod23.z.string().max(1024).nullable()
2277
+ cause: import_zod24.z.string().max(1024).nullable()
2189
2278
  });
2190
- var ResourcesSample = import_zod23.z.strictObject({
2279
+ var ResourcesSample = import_zod24.z.strictObject({
2191
2280
  at_ms: epochMs,
2192
2281
  /** The 1-minute load average. */
2193
- load: import_zod23.z.number().min(0),
2282
+ load: import_zod24.z.number().min(0),
2194
2283
  memory_used_bytes: nonNegInt,
2195
2284
  typechecks: nonNegInt
2196
2285
  });
2197
- var ResourcesActivityParams = import_zod23.z.strictObject({});
2198
- var ResourcesActivityResult = import_zod23.z.strictObject({
2286
+ var ResourcesActivityParams = import_zod24.z.strictObject({});
2287
+ var ResourcesActivityResult = import_zod24.z.strictObject({
2199
2288
  /** False until the first reading (a second or two after start). */
2200
- ready: import_zod23.z.boolean(),
2289
+ ready: import_zod24.z.boolean(),
2201
2290
  sampled_at_ms: epochMs.nullable(),
2202
- cores: import_zod23.z.int().min(1),
2291
+ cores: import_zod24.z.int().min(1),
2203
2292
  /** 1, 5 and 15 minute load averages. */
2204
- load: import_zod23.z.array(import_zod23.z.number().min(0)).length(3),
2205
- memory: import_zod23.z.strictObject({
2293
+ load: import_zod24.z.array(import_zod24.z.number().min(0)).length(3),
2294
+ memory: import_zod24.z.strictObject({
2206
2295
  total_bytes: nonNegInt,
2207
2296
  /** Activity Monitor's Memory Used: app memory + wired + compressed. */
2208
2297
  used_bytes: nonNegInt,
@@ -2213,252 +2302,252 @@ var ResourcesActivityResult = import_zod23.z.strictObject({
2213
2302
  pressure: ResourcesPressure.nullable()
2214
2303
  }),
2215
2304
  verdict: ResourcesVerdict,
2216
- typechecks: import_zod23.z.strictObject({ running: nonNegInt, waiting: nonNegInt, comfort: nonNegInt }),
2305
+ typechecks: import_zod24.z.strictObject({ running: nonNegInt, waiting: nonNegInt, comfort: nonNegInt }),
2217
2306
  /** Heaviest first (1 GB weighs as much as 16 % of a core). */
2218
- jobs: import_zod23.z.array(ResourcesJob).max(200),
2307
+ jobs: import_zod24.z.array(ResourcesJob).max(200),
2219
2308
  /** The 15 heaviest by memory and the 15 busiest by CPU, together. */
2220
- top: import_zod23.z.array(ResourcesProcess).max(30),
2309
+ top: import_zod24.z.array(ResourcesProcess).max(30),
2221
2310
  /** The last hour, oldest first. */
2222
- history: import_zod23.z.array(ResourcesSample).max(1200)
2311
+ history: import_zod24.z.array(ResourcesSample).max(1200)
2223
2312
  });
2224
- var ResourcesStopJobParams = import_zod23.z.strictObject({ pid: import_zod23.z.int().min(1) });
2225
- var ResourcesStopJobResult = import_zod23.z.strictObject({
2313
+ var ResourcesStopJobParams = import_zod24.z.strictObject({ pid: import_zod24.z.int().min(1) });
2314
+ var ResourcesStopJobResult = import_zod24.z.strictObject({
2226
2315
  /** Processes signalled; whatever is still running 5 seconds later is force-stopped. */
2227
2316
  processes: nonNegInt,
2228
2317
  /** It had finished before the request arrived. */
2229
- already_finished: import_zod23.z.boolean()
2318
+ already_finished: import_zod24.z.boolean()
2230
2319
  });
2231
- var ResourcesIncident = import_zod23.z.strictObject({
2320
+ var ResourcesIncident = import_zod24.z.strictObject({
2232
2321
  at_ms: epochMs,
2233
2322
  verdict: ResourcesVerdict,
2234
- load: import_zod23.z.number().min(0),
2323
+ load: import_zod24.z.number().min(0),
2235
2324
  memory_used_bytes: nonNegInt,
2236
2325
  compressed_bytes: nonNegInt,
2237
2326
  pressure: ResourcesPressure.nullable(),
2238
- jobs: import_zod23.z.array(
2239
- import_zod23.z.strictObject({
2327
+ jobs: import_zod24.z.array(
2328
+ import_zod24.z.strictObject({
2240
2329
  kind: ResourcesJobKind,
2241
- started_by: import_zod23.z.string().max(64).nullable(),
2242
- folder: import_zod23.z.string().max(256).nullable(),
2243
- command: import_zod23.z.string().max(256),
2244
- cpu_percent: import_zod23.z.number().min(0),
2330
+ started_by: import_zod24.z.string().max(64).nullable(),
2331
+ folder: import_zod24.z.string().max(256).nullable(),
2332
+ command: import_zod24.z.string().max(256),
2333
+ cpu_percent: import_zod24.z.number().min(0),
2245
2334
  memory_bytes: nonNegInt,
2246
- duplicates: import_zod23.z.int().min(1)
2335
+ duplicates: import_zod24.z.int().min(1)
2247
2336
  })
2248
2337
  ).max(8)
2249
2338
  });
2250
- var ResourcesIncidentsParams = import_zod23.z.strictObject({ limit: import_zod23.z.int().min(1).max(200).default(50) });
2251
- var ResourcesIncidentsResult = import_zod23.z.strictObject({
2339
+ var ResourcesIncidentsParams = import_zod24.z.strictObject({ limit: import_zod24.z.int().min(1).max(200).default(50) });
2340
+ var ResourcesIncidentsResult = import_zod24.z.strictObject({
2252
2341
  /** Newest first; at most one a minute is written. */
2253
- incidents: import_zod23.z.array(ResourcesIncident).max(200)
2342
+ incidents: import_zod24.z.array(ResourcesIncident).max(200)
2254
2343
  });
2255
2344
 
2256
2345
  // src/schema/stack.ts
2257
- var import_zod24 = require("zod");
2258
- var StackServerName = import_zod24.z.string().regex(/^[a-z0-9_-]{1,64}$/);
2259
- var StackTone = import_zod24.z.enum(["good", "wait", "bad", "off"]);
2260
- var StackServer = import_zod24.z.strictObject({
2346
+ var import_zod25 = require("zod");
2347
+ var StackServerName = import_zod25.z.string().regex(/^[a-z0-9_-]{1,64}$/);
2348
+ var StackTone = import_zod25.z.enum(["good", "wait", "bad", "off"]);
2349
+ var StackServer = import_zod25.z.strictObject({
2261
2350
  name: StackServerName,
2262
2351
  /** One word: Healthy, Starting, Unhealthy, Restarting, Stopping, Waiting, Stopped, Crashed, Off. */
2263
- label: import_zod24.z.string().max(32),
2352
+ label: import_zod25.z.string().max(32),
2264
2353
  tone: StackTone,
2265
2354
  /** What is going on, in one or two plain sentences. */
2266
- sentence: import_zod24.z.string().max(2e3),
2355
+ sentence: import_zod25.z.string().max(2e3),
2267
2356
  /** The config's own description of the server. */
2268
- description: import_zod24.z.string().max(512),
2357
+ description: import_zod25.z.string().max(512),
2269
2358
  /** Where the server answers, when its description names an address. */
2270
- open_url: import_zod24.z.string().max(2048).nullable(),
2271
- log_file: import_zod24.z.string().max(4096),
2359
+ open_url: import_zod25.z.string().max(2048).nullable(),
2360
+ log_file: import_zod25.z.string().max(4096),
2272
2361
  /** When its log file was last written. */
2273
2362
  last_output_at_ms: epochMs.nullable(),
2274
2363
  started_at_ms: epochMs.nullable(),
2275
2364
  restarts: nonNegInt,
2276
- exit_code: import_zod24.z.int().nullable(),
2277
- pid: import_zod24.z.int().nullable(),
2365
+ exit_code: import_zod25.z.int().nullable(),
2366
+ pid: import_zod25.z.int().nullable(),
2278
2367
  /** (1.18) CPU of the server's process and everything under it, in percent of one core; absent when it is not running. */
2279
- cpu_percent: import_zod24.z.number().min(0).optional(),
2368
+ cpu_percent: import_zod25.z.number().min(0).optional(),
2280
2369
  /** (1.18) Memory of the same processes: the physical footprint (Activity Monitor's Memory) summed; absent when it is not running. */
2281
2370
  memory_bytes: nonNegInt.optional()
2282
2371
  });
2283
- var StackEvent = import_zod24.z.strictObject({
2372
+ var StackEvent = import_zod25.z.strictObject({
2284
2373
  at_ms: epochMs,
2285
2374
  /** A server name, or "stack" for the stack as a whole. */
2286
- server: import_zod24.z.string().max(64),
2375
+ server: import_zod25.z.string().max(64),
2287
2376
  /** started · stopped · healthy · unhealthy · crashed · exited · restarting · stopping · action · action-done · action-failed · setup · error */
2288
- kind: import_zod24.z.string().max(32),
2289
- text: import_zod24.z.string().max(4e3)
2377
+ kind: import_zod25.z.string().max(32),
2378
+ text: import_zod25.z.string().max(4e3)
2290
2379
  });
2291
- var StackStateParams = import_zod24.z.strictObject({});
2292
- var StackStateResult = import_zod24.z.strictObject({
2380
+ var StackStateParams = import_zod25.z.strictObject({});
2381
+ var StackStateResult = import_zod25.z.strictObject({
2293
2382
  /** The stack's config file, when found. */
2294
- config_path: import_zod24.z.string().max(4096).nullable(),
2383
+ config_path: import_zod25.z.string().max(4096).nullable(),
2295
2384
  /** Why the stack cannot be run from here (no config, no process-compose), else null. */
2296
- problem: import_zod24.z.string().max(1e3).nullable(),
2297
- stack_up: import_zod24.z.boolean(),
2385
+ problem: import_zod25.z.string().max(1e3).nullable(),
2386
+ stack_up: import_zod25.z.boolean(),
2298
2387
  stack_started_at_ms: epochMs.nullable(),
2299
- servers: import_zod24.z.array(StackServer).max(64),
2388
+ servers: import_zod25.z.array(StackServer).max(64),
2300
2389
  /** One line about the one-shot setup steps ("Docker Desktop: running."), or null. */
2301
- setup_note: import_zod24.z.string().max(500).nullable(),
2390
+ setup_note: import_zod25.z.string().max(500).nullable(),
2302
2391
  /** Start everything / Stop everything in flight. */
2303
- pending: import_zod24.z.strictObject({ verb: import_zod24.z.enum(["start", "stop"]), label: import_zod24.z.string().max(64), since_ms: epochMs }).nullable(),
2392
+ pending: import_zod25.z.strictObject({ verb: import_zod25.z.enum(["start", "stop"]), label: import_zod25.z.string().max(64), since_ms: epochMs }).nullable(),
2304
2393
  /** The newest entries last. */
2305
- events: import_zod24.z.array(StackEvent).max(300)
2394
+ events: import_zod25.z.array(StackEvent).max(300)
2306
2395
  });
2307
- var StackStartParams = import_zod24.z.strictObject({});
2308
- var StackStopParams = import_zod24.z.strictObject({});
2309
- var StackRunResult = import_zod24.z.strictObject({ accepted: import_zod24.z.boolean() });
2310
- var StackServerActionParams = import_zod24.z.strictObject({
2396
+ var StackStartParams = import_zod25.z.strictObject({});
2397
+ var StackStopParams = import_zod25.z.strictObject({});
2398
+ var StackRunResult = import_zod25.z.strictObject({ accepted: import_zod25.z.boolean() });
2399
+ var StackServerActionParams = import_zod25.z.strictObject({
2311
2400
  name: StackServerName,
2312
- verb: import_zod24.z.enum(["start", "stop", "restart"])
2401
+ verb: import_zod25.z.enum(["start", "stop", "restart"])
2313
2402
  });
2314
- var StackServerActionResult = import_zod24.z.strictObject({ message: import_zod24.z.string().max(1e3) });
2315
- var StackLogsParams = import_zod24.z.strictObject({
2403
+ var StackServerActionResult = import_zod25.z.strictObject({ message: import_zod25.z.string().max(1e3) });
2404
+ var StackLogsParams = import_zod25.z.strictObject({
2316
2405
  name: StackServerName,
2317
2406
  /** Without `offset`: the last this-many complete lines. With it: new lines after it, at most this many. */
2318
- lines: import_zod24.z.int().min(1).max(2e5).default(2e3),
2407
+ lines: import_zod25.z.int().min(1).max(2e5).default(2e3),
2319
2408
  /** Byte offset the last read ended at: answer only what was written after it (follow). */
2320
2409
  offset: nonNegInt.optional(),
2321
2410
  /** A "Clear" point: the lines written after this byte offset (no `offset`). */
2322
2411
  since: nonNegInt.optional(),
2323
2412
  /** With `offset`: wait up to this long for a new line when none is waiting (0 answers at once). */
2324
- wait_ms: import_zod24.z.int().min(0).max(25e3).default(0)
2413
+ wait_ms: import_zod25.z.int().min(0).max(25e3).default(0)
2325
2414
  });
2326
- var StackLogsResult = import_zod24.z.strictObject({
2415
+ var StackLogsResult = import_zod25.z.strictObject({
2327
2416
  /** Complete lines, colour codes removed. */
2328
- lines: import_zod24.z.array(import_zod24.z.string().max(65536)).max(2e5),
2417
+ lines: import_zod25.z.array(import_zod25.z.string().max(65536)).max(2e5),
2329
2418
  /** Where these lines end: pass it back as `offset` to follow. */
2330
2419
  offset: nonNegInt,
2331
2420
  /** False when `since` no longer exists (the log rotated): the lines are the plain tail instead. */
2332
- since_valid: import_zod24.z.boolean(),
2421
+ since_valid: import_zod25.z.boolean(),
2333
2422
  /** The log was rotated or truncated since `offset`: these lines start the file again. */
2334
- reset: import_zod24.z.boolean(),
2335
- log_file: import_zod24.z.string().max(4096)
2423
+ reset: import_zod25.z.boolean(),
2424
+ log_file: import_zod25.z.string().max(4096)
2336
2425
  });
2337
- var StackErrorsParams = import_zod24.z.strictObject({
2338
- window_minutes: import_zod24.z.int().min(1).max(1440).default(60)
2426
+ var StackErrorsParams = import_zod25.z.strictObject({
2427
+ window_minutes: import_zod25.z.int().min(1).max(1440).default(60)
2339
2428
  });
2340
- var StackErrorsResult = import_zod24.z.strictObject({
2429
+ var StackErrorsResult = import_zod25.z.strictObject({
2341
2430
  /** Per server: a heading line ("=== aidream — errors in the last 60 minutes (<file>) ===") and each error with the 10 lines after it. */
2342
- 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),
2343
- window_minutes: import_zod24.z.int().min(1).max(1440)
2431
+ sections: import_zod25.z.array(import_zod25.z.strictObject({ name: StackServerName, heading: import_zod25.z.string().max(4096), lines: import_zod25.z.array(import_zod25.z.string().max(65536)).max(5e3) })).max(64),
2432
+ window_minutes: import_zod25.z.int().min(1).max(1440)
2344
2433
  });
2345
2434
 
2346
2435
  // src/schema/audio.ts
2347
- var import_zod25 = require("zod");
2348
- var AudioDevice = import_zod25.z.strictObject({
2436
+ var import_zod26 = require("zod");
2437
+ var AudioDevice = import_zod26.z.strictObject({
2349
2438
  /** The OS's name for it, as audio.record takes it. */
2350
- id: import_zod25.z.string().min(1).max(256),
2351
- name: import_zod25.z.string().max(256),
2352
- default: import_zod25.z.boolean()
2439
+ id: import_zod26.z.string().min(1).max(256),
2440
+ name: import_zod26.z.string().max(256),
2441
+ default: import_zod26.z.boolean()
2353
2442
  });
2354
- var AudioDevicesParams = import_zod25.z.strictObject({});
2355
- var AudioDevicesResult = import_zod25.z.strictObject({
2356
- inputs: import_zod25.z.array(AudioDevice).max(64),
2357
- outputs: import_zod25.z.array(AudioDevice).max(64)
2443
+ var AudioDevicesParams = import_zod26.z.strictObject({});
2444
+ var AudioDevicesResult = import_zod26.z.strictObject({
2445
+ inputs: import_zod26.z.array(AudioDevice).max(64),
2446
+ outputs: import_zod26.z.array(AudioDevice).max(64)
2358
2447
  });
2359
- var AudioRecordParams = import_zod25.z.strictObject({
2360
- seconds: import_zod25.z.number().min(0.5).max(600),
2448
+ var AudioRecordParams = import_zod26.z.strictObject({
2449
+ seconds: import_zod26.z.number().min(0.5).max(600),
2361
2450
  /** The microphone (from audio.devices); the default input when absent. */
2362
- device_id: import_zod25.z.string().min(1).max(256).optional(),
2451
+ device_id: import_zod26.z.string().min(1).max(256).optional(),
2363
2452
  /** Where the WAV file goes; a new file in the temp folder when absent. */
2364
2453
  path: AbsPath.optional()
2365
2454
  });
2366
- var AudioRecordResult = import_zod25.z.strictObject({
2455
+ var AudioRecordResult = import_zod26.z.strictObject({
2367
2456
  path: AbsPath,
2368
- seconds: import_zod25.z.number().min(0),
2457
+ seconds: import_zod26.z.number().min(0),
2369
2458
  bytes: nonNegInt,
2370
2459
  /** Loudest sample, 0–1: 0 means the device gave silence. */
2371
- peak: import_zod25.z.number().min(0).max(1)
2460
+ peak: import_zod26.z.number().min(0).max(1)
2372
2461
  });
2373
- var AudioPlayParams = import_zod25.z.strictObject({ path: AbsPath });
2374
- var AudioPlayResult = import_zod25.z.strictObject({ path: AbsPath, seconds: import_zod25.z.number().min(0) });
2462
+ var AudioPlayParams = import_zod26.z.strictObject({ path: AbsPath });
2463
+ var AudioPlayResult = import_zod26.z.strictObject({ path: AbsPath, seconds: import_zod26.z.number().min(0) });
2375
2464
 
2376
2465
  // src/schema/fs-watch.ts
2377
- var import_zod26 = require("zod");
2378
- var FsWatchId = import_zod26.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
2379
- var FsWatchStartParams = import_zod26.z.strictObject({
2466
+ var import_zod27 = require("zod");
2467
+ var FsWatchId = import_zod27.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
2468
+ var FsWatchStartParams = import_zod27.z.strictObject({
2380
2469
  path: AbsPath,
2381
- recursive: import_zod26.z.boolean().default(true),
2470
+ recursive: import_zod27.z.boolean().default(true),
2382
2471
  /** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
2383
- ignore: import_zod26.z.array(import_zod26.z.string().max(256)).max(64).default([])
2472
+ ignore: import_zod27.z.array(import_zod27.z.string().max(256)).max(64).default([])
2384
2473
  });
2385
- var FsWatchStartResult = import_zod26.z.strictObject({
2474
+ var FsWatchStartResult = import_zod27.z.strictObject({
2386
2475
  watch_id: FsWatchId,
2387
2476
  path: AbsPath,
2388
2477
  /** The watch ends by itself if nobody reads it for 30 minutes. */
2389
2478
  expires_at_ms: epochMs
2390
2479
  });
2391
- var FsWatchEventsParams = import_zod26.z.strictObject({
2480
+ var FsWatchEventsParams = import_zod27.z.strictObject({
2392
2481
  watch_id: FsWatchId,
2393
2482
  /** Wait up to this long for a first change when none is waiting (0 answers at once). */
2394
- wait_ms: import_zod26.z.int().min(0).max(25e3).default(0)
2483
+ wait_ms: import_zod27.z.int().min(0).max(25e3).default(0)
2395
2484
  });
2396
- var FsWatchEventsResult = import_zod26.z.strictObject({
2485
+ var FsWatchEventsResult = import_zod27.z.strictObject({
2397
2486
  /** What changed since the last read, oldest first; re-checked against the disk when read. */
2398
- changes: import_zod26.z.array(FsChange).max(1e3),
2487
+ changes: import_zod27.z.array(FsChange).max(1e3),
2399
2488
  /** Changes were dropped (more than 1000 waited): list the folder again. */
2400
- overflow: import_zod26.z.boolean(),
2489
+ overflow: import_zod27.z.boolean(),
2401
2490
  expires_at_ms: epochMs
2402
2491
  });
2403
- var FsWatchStopParams = import_zod26.z.strictObject({ watch_id: FsWatchId });
2404
- var FsWatchStopResult = import_zod26.z.strictObject({ watch_id: FsWatchId });
2492
+ var FsWatchStopParams = import_zod27.z.strictObject({ watch_id: FsWatchId });
2493
+ var FsWatchStopResult = import_zod27.z.strictObject({ watch_id: FsWatchId });
2405
2494
 
2406
2495
  // src/schema/exec-job.ts
2407
- var import_zod27 = require("zod");
2408
- var ExecJobId = import_zod27.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
2409
- var ExecJobStartParams = import_zod27.z.strictObject({
2410
- command: import_zod27.z.string().min(1).max(131072),
2496
+ var import_zod28 = require("zod");
2497
+ var ExecJobId = import_zod28.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
2498
+ var ExecJobStartParams = import_zod28.z.strictObject({
2499
+ command: import_zod28.z.string().min(1).max(131072),
2411
2500
  /** The folder it runs in; the home folder when absent. */
2412
2501
  cwd: AbsPath.optional(),
2413
- 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()
2502
+ env: import_zod28.z.record(import_zod28.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), import_zod28.z.string().max(32768)).optional()
2414
2503
  });
2415
- var ExecJobStartResult = import_zod27.z.strictObject({ job_id: ExecJobId, pid: import_zod27.z.int().min(1), cwd: AbsPath });
2416
- var ExecJobOutputParams = import_zod27.z.strictObject({
2504
+ var ExecJobStartResult = import_zod28.z.strictObject({ job_id: ExecJobId, pid: import_zod28.z.int().min(1), cwd: AbsPath });
2505
+ var ExecJobOutputParams = import_zod28.z.strictObject({
2417
2506
  job_id: ExecJobId,
2418
2507
  /** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
2419
2508
  offset: nonNegInt.default(0),
2420
2509
  /** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
2421
- wait_ms: import_zod27.z.int().min(0).max(25e3).default(0),
2422
- max_bytes: import_zod27.z.int().min(1024).max(1048576).default(65536)
2510
+ wait_ms: import_zod28.z.int().min(0).max(25e3).default(0),
2511
+ max_bytes: import_zod28.z.int().min(1024).max(1048576).default(65536)
2423
2512
  });
2424
- var ExecJobOutputResult = import_zod27.z.strictObject({
2513
+ var ExecJobOutputResult = import_zod28.z.strictObject({
2425
2514
  /** stdout and stderr interleaved as they arrived (UTF-8). */
2426
- output: import_zod27.z.string(),
2515
+ output: import_zod28.z.string(),
2427
2516
  next_offset: nonNegInt,
2428
2517
  /** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
2429
2518
  dropped_bytes: nonNegInt,
2430
- running: import_zod27.z.boolean(),
2431
- exit_code: import_zod27.z.int().nullable()
2519
+ running: import_zod28.z.boolean(),
2520
+ exit_code: import_zod28.z.int().nullable()
2432
2521
  });
2433
- var ExecJobStopParams = import_zod27.z.strictObject({
2522
+ var ExecJobStopParams = import_zod28.z.strictObject({
2434
2523
  job_id: ExecJobId,
2435
2524
  /** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
2436
- force: import_zod27.z.boolean().default(false)
2525
+ force: import_zod28.z.boolean().default(false)
2437
2526
  });
2438
- var ExecJobStopResult = import_zod27.z.strictObject({ job_id: ExecJobId, exited: import_zod27.z.boolean(), exit_code: import_zod27.z.int().nullable() });
2439
- var ExecJobInfo = import_zod27.z.strictObject({
2527
+ var ExecJobStopResult = import_zod28.z.strictObject({ job_id: ExecJobId, exited: import_zod28.z.boolean(), exit_code: import_zod28.z.int().nullable() });
2528
+ var ExecJobInfo = import_zod28.z.strictObject({
2440
2529
  job_id: ExecJobId,
2441
- command: import_zod27.z.string().max(1024),
2442
- pid: import_zod27.z.int().min(1),
2530
+ command: import_zod28.z.string().max(1024),
2531
+ pid: import_zod28.z.int().min(1),
2443
2532
  cwd: AbsPath,
2444
- running: import_zod27.z.boolean(),
2445
- exit_code: import_zod27.z.int().nullable(),
2533
+ running: import_zod28.z.boolean(),
2534
+ exit_code: import_zod28.z.int().nullable(),
2446
2535
  started_at_ms: epochMs,
2447
2536
  output_bytes: nonNegInt
2448
2537
  });
2449
- var ExecJobListParams = import_zod27.z.strictObject({});
2450
- var ExecJobListResult = import_zod27.z.strictObject({ jobs: import_zod27.z.array(ExecJobInfo).max(64) });
2538
+ var ExecJobListParams = import_zod28.z.strictObject({});
2539
+ var ExecJobListResult = import_zod28.z.strictObject({ jobs: import_zod28.z.array(ExecJobInfo).max(64) });
2451
2540
 
2452
2541
  // src/schema/coding.ts
2453
- var import_zod28 = require("zod");
2542
+ var import_zod29 = require("zod");
2454
2543
  var import_uuid3 = require("@ai-matrx/kit/uuid");
2455
- var CodingServiceCredentials = import_zod28.z.strictObject({
2456
- access_token: import_zod28.z.string().min(16).max(16384),
2457
- user_id: import_zod28.z.string().regex(import_uuid3.UUID_SHAPE_PATTERN),
2544
+ var CodingServiceCredentials = import_zod29.z.strictObject({
2545
+ access_token: import_zod29.z.string().min(16).max(16384),
2546
+ user_id: import_zod29.z.string().regex(import_uuid3.UUID_SHAPE_PATTERN),
2458
2547
  /** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
2459
- server_url: import_zod28.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
2548
+ server_url: import_zod29.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
2460
2549
  });
2461
- var CodingHistoryBlocked = import_zod28.z.enum([
2550
+ var CodingHistoryBlocked = import_zod29.z.enum([
2462
2551
  "signed_out",
2463
2552
  "offline",
2464
2553
  "organization_required",
@@ -2466,11 +2555,11 @@ var CodingHistoryBlocked = import_zod28.z.enum([
2466
2555
  "cloud_list_unavailable",
2467
2556
  "history_too_large"
2468
2557
  ]);
2469
- var CodingHistoryFailure = import_zod28.z.strictObject({
2470
- session_id: import_zod28.z.string().max(64),
2471
- reason: import_zod28.z.string().max(300)
2558
+ var CodingHistoryFailure = import_zod29.z.strictObject({
2559
+ session_id: import_zod29.z.string().max(64),
2560
+ reason: import_zod29.z.string().max(300)
2472
2561
  });
2473
- var CodingHistoryRun = import_zod28.z.strictObject({
2562
+ var CodingHistoryRun = import_zod29.z.strictObject({
2474
2563
  /** Claude Code sessions found on this computer. */
2475
2564
  local_sessions: nonNegInt,
2476
2565
  /** Of those, already complete in AI Matrx. */
@@ -2485,39 +2574,39 @@ var CodingHistoryRun = import_zod28.z.strictObject({
2485
2574
  /** Changed while being read; a later run takes them. */
2486
2575
  changed: nonNegInt,
2487
2576
  failed: nonNegInt,
2488
- failures: import_zod28.z.array(CodingHistoryFailure).max(20),
2577
+ failures: import_zod29.z.array(CodingHistoryFailure).max(20),
2489
2578
  /** Candidates not reached yet. */
2490
2579
  remaining: nonNegInt,
2491
2580
  /** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
2492
- summary: import_zod28.z.string().max(400)
2581
+ summary: import_zod29.z.string().max(400)
2493
2582
  });
2494
- var CodingHistoryStep = import_zod28.z.strictObject({
2583
+ var CodingHistoryStep = import_zod29.z.strictObject({
2495
2584
  /** Null when the run could not start (blocked before a plan existed). */
2496
- plan_id: import_zod28.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
2497
- finished: import_zod28.z.boolean(),
2585
+ plan_id: import_zod29.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
2586
+ finished: import_zod29.z.boolean(),
2498
2587
  blocked: CodingHistoryBlocked.nullable(),
2499
2588
  run: CodingHistoryRun
2500
2589
  });
2501
- var CodingPlanMissingParams = import_zod28.z.strictObject({ credentials: CodingServiceCredentials.nullable() });
2502
- var CodingImportNextParams = import_zod28.z.strictObject({
2503
- plan_id: import_zod28.z.string().regex(/^[0-9a-f]{32}$/),
2590
+ var CodingPlanMissingParams = import_zod29.z.strictObject({ credentials: CodingServiceCredentials.nullable() });
2591
+ var CodingImportNextParams = import_zod29.z.strictObject({
2592
+ plan_id: import_zod29.z.string().regex(/^[0-9a-f]{32}$/),
2504
2593
  credentials: CodingServiceCredentials.nullable()
2505
2594
  });
2506
- var CodingServiceProgress = import_zod28.z.strictObject({
2507
- phase: import_zod28.z.enum(["checking", "importing"]),
2595
+ var CodingServiceProgress = import_zod29.z.strictObject({
2596
+ phase: import_zod29.z.enum(["checking", "importing"]),
2508
2597
  done: nonNegInt,
2509
2598
  total: nonNegInt
2510
2599
  });
2511
- var CodingHistoryImportMissingParams = import_zod28.z.strictObject({});
2512
- var CodingHistoryImportMissingResult = import_zod28.z.strictObject({
2513
- state: import_zod28.z.enum(["done", "blocked", "cancelled"]),
2600
+ var CodingHistoryImportMissingParams = import_zod29.z.strictObject({});
2601
+ var CodingHistoryImportMissingResult = import_zod29.z.strictObject({
2602
+ state: import_zod29.z.enum(["done", "blocked", "cancelled"]),
2514
2603
  blocked: CodingHistoryBlocked.nullable(),
2515
2604
  run: CodingHistoryRun,
2516
2605
  elapsed_ms: nonNegInt
2517
2606
  });
2518
- var CodingHistoryProgressEvent = import_zod28.z.strictObject({
2607
+ var CodingHistoryProgressEvent = import_zod29.z.strictObject({
2519
2608
  request_id: RequestId,
2520
- phase: import_zod28.z.enum(["checking", "importing"]),
2609
+ phase: import_zod29.z.enum(["checking", "importing"]),
2521
2610
  /** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
2522
2611
  done: nonNegInt,
2523
2612
  total: nonNegInt,
@@ -2633,6 +2722,9 @@ var OPS = {
2633
2722
  "stack.server.action": { params: StackServerActionParams, result: StackServerActionResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "CONFLICT", "INTERNAL"] },
2634
2723
  "stack.logs": { params: StackLogsParams, result: StackLogsResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "INTERNAL"] },
2635
2724
  "stack.errors": { params: StackErrorsParams, result: StackErrorsResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
2725
+ // The device's error ledger (SPEC §3.12): every process's errors, grouped, delivered to ops.system_error.
2726
+ "diag.errors.list": { params: DiagErrorsListParams, result: DiagErrorsListResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
2727
+ "diag.errors.report": { params: DiagErrorsReportParams, result: DiagErrorsReportResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
2636
2728
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
2637
2729
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] }
2638
2730
  };
@@ -2647,7 +2739,8 @@ var EVENTS = {
2647
2739
  "models.progress": ModelsProgressEvent,
2648
2740
  "coding.history.progress": CodingHistoryProgressEvent,
2649
2741
  "relay.device_status": RelayDeviceStatusEvent,
2650
- "relay.auth_expiring": RelayAuthExpiringEvent
2742
+ "relay.auth_expiring": RelayAuthExpiringEvent,
2743
+ "diag.errors.changed": DiagErrorsChangedEvent
2651
2744
  };
2652
2745
  var SERVICES = {
2653
2746
  ml: {
@@ -2893,6 +2986,15 @@ var NAMED_SCHEMAS = {
2893
2986
  StackLogsResult,
2894
2987
  StackErrorsParams,
2895
2988
  StackErrorsResult,
2989
+ DiagProcess,
2990
+ DiagErrorKind,
2991
+ DiagErrorStatus,
2992
+ DiagErrorEntry,
2993
+ DiagErrorsListParams,
2994
+ DiagErrorsListResult,
2995
+ DiagErrorsReportParams,
2996
+ DiagErrorsReportResult,
2997
+ DiagErrorsChangedEvent,
2896
2998
  FsWatchId,
2897
2999
  FsWatchStartParams,
2898
3000
  FsWatchStartResult,
@@ -3159,7 +3261,7 @@ function forPeer(op, part, value, version) {
3159
3261
  var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
3160
3262
 
3161
3263
  // src/contract.ts
3162
- var CONTRACT_SHA256 = "4fc16cc5bdaf7d666d5a0916ad3cd362df192d0238655ea288e7ffe15e54f246";
3264
+ var CONTRACT_SHA256 = "ef1f01f6b4e81ce7a56192d56c5765d182a53aaf9224ef20ce764cd25c20e229";
3163
3265
 
3164
3266
  // src/close-policy.ts
3165
3267
  var CLOSE_RULES = {