@ai-matrx/desktop-protocol 0.18.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/CHANGELOG.md +13 -0
- package/dist/client.cjs +468 -342
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +468 -342
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +347 -191
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +267 -6
- package/dist/index.d.ts +267 -6
- package/dist/index.js +347 -191
- package/dist/index.js.map +1 -1
- package/dist/{models-BOPMXUz-.d.cts → models-Cz3I_rBU.d.cts} +362 -1
- package/dist/{models-BOPMXUz-.d.ts → models-Cz3I_rBU.d.ts} +362 -1
- package/dist/react.d.cts +142 -0
- package/dist/react.d.ts +142 -0
- package/generated/desktop-protocol.schema.json +537 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -71,6 +71,8 @@ __export(src_exports, {
|
|
|
71
71
|
AppsProjectsImportPinsResult: () => AppsProjectsImportPinsResult,
|
|
72
72
|
AppsProjectsMoveParams: () => AppsProjectsMoveParams,
|
|
73
73
|
AppsProjectsMoveResult: () => AppsProjectsMoveResult,
|
|
74
|
+
AppsProjectsToWindowParams: () => AppsProjectsToWindowParams,
|
|
75
|
+
AppsProjectsToWindowResult: () => AppsProjectsToWindowResult,
|
|
74
76
|
AppsProjectsUnfileParams: () => AppsProjectsUnfileParams,
|
|
75
77
|
AppsProjectsUnfileResult: () => AppsProjectsUnfileResult,
|
|
76
78
|
AppsProjectsUpdateParams: () => AppsProjectsUpdateParams,
|
|
@@ -144,6 +146,15 @@ __export(src_exports, {
|
|
|
144
146
|
DEFAULT_WINDOW_BYTES: () => DEFAULT_WINDOW_BYTES,
|
|
145
147
|
DesktopProtocolError: () => DesktopProtocolError,
|
|
146
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,
|
|
147
158
|
EVENTS: () => EVENTS,
|
|
148
159
|
EXCLUDED_TOOLS: () => EXCLUDED_TOOLS,
|
|
149
160
|
EndMsg: () => EndMsg,
|
|
@@ -276,6 +287,9 @@ __export(src_exports, {
|
|
|
276
287
|
ProcPortsParams: () => ProcPortsParams,
|
|
277
288
|
ProcPortsResult: () => ProcPortsResult,
|
|
278
289
|
ProcSort: () => ProcSort,
|
|
290
|
+
ProjectMoveChat: () => ProjectMoveChat,
|
|
291
|
+
ProjectMoveGroup: () => ProjectMoveGroup,
|
|
292
|
+
ProjectMoveSkip: () => ProjectMoveSkip,
|
|
279
293
|
ProtocolErrorBody: () => ProtocolErrorBody,
|
|
280
294
|
ProtocolVersion: () => ProtocolVersion,
|
|
281
295
|
PtyInfo: () => PtyInfo,
|
|
@@ -437,7 +451,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
437
451
|
var import_zod = require("zod");
|
|
438
452
|
var import_uuid = require("@ai-matrx/kit/uuid");
|
|
439
453
|
var PROTOCOL_MAJOR = 1;
|
|
440
|
-
var PROTOCOL_MINOR =
|
|
454
|
+
var PROTOCOL_MINOR = 20;
|
|
441
455
|
var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
|
|
442
456
|
var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
|
|
443
457
|
var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
|
|
@@ -1592,6 +1606,43 @@ var AppsProjectsCreateParams = import_zod13.z.strictObject({ app_key: AppKey, na
|
|
|
1592
1606
|
var AppsProjectsCreateResult = import_zod13.z.strictObject({ project: ChatProject });
|
|
1593
1607
|
var AppsProjectsImportPinsParams = import_zod13.z.strictObject({ app_key: AppKey });
|
|
1594
1608
|
var AppsProjectsImportPinsResult = import_zod13.z.strictObject({ message: import_zod13.z.string().max(400) });
|
|
1609
|
+
var ProjectMoveChat = import_zod13.z.strictObject({ chat_id: ChatId, title: import_zod13.z.string().max(300) });
|
|
1610
|
+
var ProjectMoveSkip = import_zod13.z.strictObject({ chat_id: ChatId, title: import_zod13.z.string().max(300), window: ChatPlace.nullable(), reason: import_zod13.z.string().max(400) });
|
|
1611
|
+
var ProjectMoveGroup = import_zod13.z.strictObject({
|
|
1612
|
+
ok: import_zod13.z.boolean(),
|
|
1613
|
+
name: import_zod13.z.string().max(200),
|
|
1614
|
+
/** Why it is not (or was not) grouped — e.g. the window is open. */
|
|
1615
|
+
reason: import_zod13.z.string().max(400).optional(),
|
|
1616
|
+
/** Chats that get (or got) the group; already in it; taken from another group of the window. */
|
|
1617
|
+
assign: nonNegInt.optional(),
|
|
1618
|
+
already: nonNegInt.optional(),
|
|
1619
|
+
from_other_groups: nonNegInt.optional(),
|
|
1620
|
+
/** A group of that name was already there (reused, never doubled). */
|
|
1621
|
+
group_exists: import_zod13.z.boolean().optional()
|
|
1622
|
+
});
|
|
1623
|
+
var AppsProjectsToWindowParams = import_zod13.z.strictObject({
|
|
1624
|
+
app_key: AppKey,
|
|
1625
|
+
project_id: ChatProjectId,
|
|
1626
|
+
window: ChatPlace,
|
|
1627
|
+
/** Also take each chat off its other side windows where safe (never main, the holder, an open window). */
|
|
1628
|
+
take_off: import_zod13.z.boolean().default(false),
|
|
1629
|
+
/** Also group them under the project's name in that window's sidebar (closed windows only). */
|
|
1630
|
+
group: import_zod13.z.boolean().default(false),
|
|
1631
|
+
dry_run: import_zod13.z.boolean().default(false)
|
|
1632
|
+
});
|
|
1633
|
+
var AppsProjectsToWindowResult = import_zod13.z.strictObject({
|
|
1634
|
+
project_id: ChatProjectId,
|
|
1635
|
+
window: ChatPlace,
|
|
1636
|
+
dry_run: import_zod13.z.boolean(),
|
|
1637
|
+
place: import_zod13.z.array(ProjectMoveChat).max(5e3),
|
|
1638
|
+
already: import_zod13.z.array(ProjectMoveChat).max(5e3),
|
|
1639
|
+
take_off: import_zod13.z.array(ProjectMoveChat.extend({ window: ChatPlace })).max(2e4),
|
|
1640
|
+
skipped: import_zod13.z.array(ProjectMoveSkip).max(2e4),
|
|
1641
|
+
/** Chats of the project from other apps (no windows to place into), left as they are. */
|
|
1642
|
+
other_apps: nonNegInt,
|
|
1643
|
+
group: ProjectMoveGroup.nullable(),
|
|
1644
|
+
message: import_zod13.z.string().max(400)
|
|
1645
|
+
});
|
|
1595
1646
|
var ColdChat = import_zod13.z.strictObject({
|
|
1596
1647
|
id: ChatId,
|
|
1597
1648
|
title: import_zod13.z.string().max(1e3),
|
|
@@ -2072,95 +2123,175 @@ var PowerPreventSleepResult = import_zod22.z.strictObject({
|
|
|
2072
2123
|
awake_until_ms: epochMs.nullable()
|
|
2073
2124
|
});
|
|
2074
2125
|
|
|
2075
|
-
// src/schema/
|
|
2126
|
+
// src/schema/diag.ts
|
|
2076
2127
|
var import_zod23 = require("zod");
|
|
2077
|
-
var
|
|
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({
|
|
2078
2209
|
/** Where it is mounted ("/", "C:"). */
|
|
2079
|
-
mount:
|
|
2210
|
+
mount: import_zod24.z.string().max(512),
|
|
2080
2211
|
/** The volume's name as the file manager shows it ("Macintosh HD", "Local Disk (C:)"). Since 1.17. */
|
|
2081
|
-
name:
|
|
2212
|
+
name: import_zod24.z.string().max(256).optional(),
|
|
2082
2213
|
/** The file system ("apfs", "NTFS", "ext4"). */
|
|
2083
|
-
fs:
|
|
2214
|
+
fs: import_zod24.z.string().max(64),
|
|
2084
2215
|
size_bytes: nonNegInt,
|
|
2085
2216
|
used_bytes: nonNegInt,
|
|
2086
2217
|
available_bytes: nonNegInt
|
|
2087
2218
|
});
|
|
2088
|
-
var ResourcesSnapshotParams =
|
|
2089
|
-
var ResourcesSnapshotResult =
|
|
2090
|
-
cpu:
|
|
2219
|
+
var ResourcesSnapshotParams = import_zod24.z.strictObject({});
|
|
2220
|
+
var ResourcesSnapshotResult = import_zod24.z.strictObject({
|
|
2221
|
+
cpu: import_zod24.z.strictObject({
|
|
2091
2222
|
/** Busy share of all cores, 0–100, measured now. */
|
|
2092
|
-
percent:
|
|
2093
|
-
cores:
|
|
2223
|
+
percent: import_zod24.z.number().min(0).max(100),
|
|
2224
|
+
cores: import_zod24.z.int().min(1),
|
|
2094
2225
|
/** 1, 5 and 15 minute load averages; null on Windows. */
|
|
2095
|
-
load:
|
|
2226
|
+
load: import_zod24.z.array(import_zod24.z.number().min(0)).length(3).nullable()
|
|
2096
2227
|
}),
|
|
2097
|
-
memory:
|
|
2098
|
-
swap:
|
|
2099
|
-
disks:
|
|
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),
|
|
2100
2231
|
uptime_seconds: nonNegInt
|
|
2101
2232
|
});
|
|
2102
|
-
var ResourcesJobKind =
|
|
2103
|
-
var ResourcesStrain =
|
|
2104
|
-
var ResourcesPressure =
|
|
2105
|
-
var ResourcesJob =
|
|
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({
|
|
2106
2237
|
/** The job's root process (Stop takes its whole tree). */
|
|
2107
|
-
pid:
|
|
2238
|
+
pid: import_zod24.z.int().min(0),
|
|
2108
2239
|
kind: ResourcesJobKind,
|
|
2109
2240
|
/** Its heaviest process's command line, shortened ("…/lib/tsc --noEmit -p tsconfig.json"). */
|
|
2110
|
-
command:
|
|
2241
|
+
command: import_zod24.z.string().max(256),
|
|
2111
2242
|
/** Who started it: "Claude Code", "Codex", "Cursor", "VS Code", "Terminal", "local stack", "detached"; null when unknown. */
|
|
2112
|
-
started_by:
|
|
2243
|
+
started_by: import_zod24.z.string().max(64).nullable(),
|
|
2113
2244
|
/** Whatever started it is gone and nothing waits for it. */
|
|
2114
|
-
orphan:
|
|
2245
|
+
orphan: import_zod24.z.boolean(),
|
|
2115
2246
|
/** A type-check queued for its turn (no compiler running yet). */
|
|
2116
|
-
waiting:
|
|
2247
|
+
waiting: import_zod24.z.boolean(),
|
|
2117
2248
|
/** The project folder it runs in ("matrx-frontend"); null when not in one. */
|
|
2118
|
-
folder:
|
|
2249
|
+
folder: import_zod24.z.string().max(256).nullable(),
|
|
2119
2250
|
/** The same command in the same folder, running this many times (1 = no duplicate). */
|
|
2120
|
-
duplicates:
|
|
2121
|
-
processes:
|
|
2251
|
+
duplicates: import_zod24.z.int().min(1),
|
|
2252
|
+
processes: import_zod24.z.int().min(1),
|
|
2122
2253
|
/** Sum over the tree, as `ps` reports it: 100 = one full core. */
|
|
2123
|
-
cpu_percent:
|
|
2254
|
+
cpu_percent: import_zod24.z.number().min(0),
|
|
2124
2255
|
/** Real memory (macOS: the physical footprint Activity Monitor shows, compressed included). */
|
|
2125
2256
|
memory_bytes: nonNegInt,
|
|
2126
2257
|
started_at_ms: epochMs.nullable(),
|
|
2127
2258
|
/** False for an app, an agent session, a terminal, a system process, the local stack or Matrx 2 itself. */
|
|
2128
|
-
stoppable:
|
|
2259
|
+
stoppable: import_zod24.z.boolean()
|
|
2129
2260
|
});
|
|
2130
|
-
var ResourcesProcess =
|
|
2131
|
-
pid:
|
|
2261
|
+
var ResourcesProcess = import_zod24.z.strictObject({
|
|
2262
|
+
pid: import_zod24.z.int().min(0),
|
|
2132
2263
|
/** The command line, shortened. */
|
|
2133
|
-
name:
|
|
2134
|
-
cpu_percent:
|
|
2264
|
+
name: import_zod24.z.string().max(256),
|
|
2265
|
+
cpu_percent: import_zod24.z.number().min(0),
|
|
2135
2266
|
memory_bytes: nonNegInt,
|
|
2136
|
-
started_by:
|
|
2267
|
+
started_by: import_zod24.z.string().max(64).nullable(),
|
|
2137
2268
|
/** The job it belongs to ("type-check in aidream"); null when none. */
|
|
2138
|
-
job:
|
|
2269
|
+
job: import_zod24.z.string().max(256).nullable(),
|
|
2139
2270
|
started_at_ms: epochMs.nullable()
|
|
2140
2271
|
});
|
|
2141
|
-
var ResourcesVerdict =
|
|
2272
|
+
var ResourcesVerdict = import_zod24.z.strictObject({
|
|
2142
2273
|
level: ResourcesStrain,
|
|
2143
2274
|
/** One sentence ("Your Mac is under strain. 3 type-checks are running at once."). */
|
|
2144
|
-
text:
|
|
2275
|
+
text: import_zod24.z.string().max(256),
|
|
2145
2276
|
/** The biggest jobs behind it; null when all is well. */
|
|
2146
|
-
cause:
|
|
2277
|
+
cause: import_zod24.z.string().max(1024).nullable()
|
|
2147
2278
|
});
|
|
2148
|
-
var ResourcesSample =
|
|
2279
|
+
var ResourcesSample = import_zod24.z.strictObject({
|
|
2149
2280
|
at_ms: epochMs,
|
|
2150
2281
|
/** The 1-minute load average. */
|
|
2151
|
-
load:
|
|
2282
|
+
load: import_zod24.z.number().min(0),
|
|
2152
2283
|
memory_used_bytes: nonNegInt,
|
|
2153
2284
|
typechecks: nonNegInt
|
|
2154
2285
|
});
|
|
2155
|
-
var ResourcesActivityParams =
|
|
2156
|
-
var ResourcesActivityResult =
|
|
2286
|
+
var ResourcesActivityParams = import_zod24.z.strictObject({});
|
|
2287
|
+
var ResourcesActivityResult = import_zod24.z.strictObject({
|
|
2157
2288
|
/** False until the first reading (a second or two after start). */
|
|
2158
|
-
ready:
|
|
2289
|
+
ready: import_zod24.z.boolean(),
|
|
2159
2290
|
sampled_at_ms: epochMs.nullable(),
|
|
2160
|
-
cores:
|
|
2291
|
+
cores: import_zod24.z.int().min(1),
|
|
2161
2292
|
/** 1, 5 and 15 minute load averages. */
|
|
2162
|
-
load:
|
|
2163
|
-
memory:
|
|
2293
|
+
load: import_zod24.z.array(import_zod24.z.number().min(0)).length(3),
|
|
2294
|
+
memory: import_zod24.z.strictObject({
|
|
2164
2295
|
total_bytes: nonNegInt,
|
|
2165
2296
|
/** Activity Monitor's Memory Used: app memory + wired + compressed. */
|
|
2166
2297
|
used_bytes: nonNegInt,
|
|
@@ -2171,248 +2302,252 @@ var ResourcesActivityResult = import_zod23.z.strictObject({
|
|
|
2171
2302
|
pressure: ResourcesPressure.nullable()
|
|
2172
2303
|
}),
|
|
2173
2304
|
verdict: ResourcesVerdict,
|
|
2174
|
-
typechecks:
|
|
2305
|
+
typechecks: import_zod24.z.strictObject({ running: nonNegInt, waiting: nonNegInt, comfort: nonNegInt }),
|
|
2175
2306
|
/** Heaviest first (1 GB weighs as much as 16 % of a core). */
|
|
2176
|
-
jobs:
|
|
2307
|
+
jobs: import_zod24.z.array(ResourcesJob).max(200),
|
|
2177
2308
|
/** The 15 heaviest by memory and the 15 busiest by CPU, together. */
|
|
2178
|
-
top:
|
|
2309
|
+
top: import_zod24.z.array(ResourcesProcess).max(30),
|
|
2179
2310
|
/** The last hour, oldest first. */
|
|
2180
|
-
history:
|
|
2311
|
+
history: import_zod24.z.array(ResourcesSample).max(1200)
|
|
2181
2312
|
});
|
|
2182
|
-
var ResourcesStopJobParams =
|
|
2183
|
-
var ResourcesStopJobResult =
|
|
2313
|
+
var ResourcesStopJobParams = import_zod24.z.strictObject({ pid: import_zod24.z.int().min(1) });
|
|
2314
|
+
var ResourcesStopJobResult = import_zod24.z.strictObject({
|
|
2184
2315
|
/** Processes signalled; whatever is still running 5 seconds later is force-stopped. */
|
|
2185
2316
|
processes: nonNegInt,
|
|
2186
2317
|
/** It had finished before the request arrived. */
|
|
2187
|
-
already_finished:
|
|
2318
|
+
already_finished: import_zod24.z.boolean()
|
|
2188
2319
|
});
|
|
2189
|
-
var ResourcesIncident =
|
|
2320
|
+
var ResourcesIncident = import_zod24.z.strictObject({
|
|
2190
2321
|
at_ms: epochMs,
|
|
2191
2322
|
verdict: ResourcesVerdict,
|
|
2192
|
-
load:
|
|
2323
|
+
load: import_zod24.z.number().min(0),
|
|
2193
2324
|
memory_used_bytes: nonNegInt,
|
|
2194
2325
|
compressed_bytes: nonNegInt,
|
|
2195
2326
|
pressure: ResourcesPressure.nullable(),
|
|
2196
|
-
jobs:
|
|
2197
|
-
|
|
2327
|
+
jobs: import_zod24.z.array(
|
|
2328
|
+
import_zod24.z.strictObject({
|
|
2198
2329
|
kind: ResourcesJobKind,
|
|
2199
|
-
started_by:
|
|
2200
|
-
folder:
|
|
2201
|
-
command:
|
|
2202
|
-
cpu_percent:
|
|
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),
|
|
2203
2334
|
memory_bytes: nonNegInt,
|
|
2204
|
-
duplicates:
|
|
2335
|
+
duplicates: import_zod24.z.int().min(1)
|
|
2205
2336
|
})
|
|
2206
2337
|
).max(8)
|
|
2207
2338
|
});
|
|
2208
|
-
var ResourcesIncidentsParams =
|
|
2209
|
-
var ResourcesIncidentsResult =
|
|
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({
|
|
2210
2341
|
/** Newest first; at most one a minute is written. */
|
|
2211
|
-
incidents:
|
|
2342
|
+
incidents: import_zod24.z.array(ResourcesIncident).max(200)
|
|
2212
2343
|
});
|
|
2213
2344
|
|
|
2214
2345
|
// src/schema/stack.ts
|
|
2215
|
-
var
|
|
2216
|
-
var StackServerName =
|
|
2217
|
-
var StackTone =
|
|
2218
|
-
var StackServer =
|
|
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({
|
|
2219
2350
|
name: StackServerName,
|
|
2220
2351
|
/** One word: Healthy, Starting, Unhealthy, Restarting, Stopping, Waiting, Stopped, Crashed, Off. */
|
|
2221
|
-
label:
|
|
2352
|
+
label: import_zod25.z.string().max(32),
|
|
2222
2353
|
tone: StackTone,
|
|
2223
2354
|
/** What is going on, in one or two plain sentences. */
|
|
2224
|
-
sentence:
|
|
2355
|
+
sentence: import_zod25.z.string().max(2e3),
|
|
2225
2356
|
/** The config's own description of the server. */
|
|
2226
|
-
description:
|
|
2357
|
+
description: import_zod25.z.string().max(512),
|
|
2227
2358
|
/** Where the server answers, when its description names an address. */
|
|
2228
|
-
open_url:
|
|
2229
|
-
log_file:
|
|
2359
|
+
open_url: import_zod25.z.string().max(2048).nullable(),
|
|
2360
|
+
log_file: import_zod25.z.string().max(4096),
|
|
2230
2361
|
/** When its log file was last written. */
|
|
2231
2362
|
last_output_at_ms: epochMs.nullable(),
|
|
2232
2363
|
started_at_ms: epochMs.nullable(),
|
|
2233
2364
|
restarts: nonNegInt,
|
|
2234
|
-
exit_code:
|
|
2235
|
-
pid:
|
|
2236
|
-
|
|
2237
|
-
|
|
2365
|
+
exit_code: import_zod25.z.int().nullable(),
|
|
2366
|
+
pid: import_zod25.z.int().nullable(),
|
|
2367
|
+
/** (1.18) CPU of the server's process and everything under it, in percent of one core; absent when it is not running. */
|
|
2368
|
+
cpu_percent: import_zod25.z.number().min(0).optional(),
|
|
2369
|
+
/** (1.18) Memory of the same processes: the physical footprint (Activity Monitor's Memory) summed; absent when it is not running. */
|
|
2370
|
+
memory_bytes: nonNegInt.optional()
|
|
2371
|
+
});
|
|
2372
|
+
var StackEvent = import_zod25.z.strictObject({
|
|
2238
2373
|
at_ms: epochMs,
|
|
2239
2374
|
/** A server name, or "stack" for the stack as a whole. */
|
|
2240
|
-
server:
|
|
2375
|
+
server: import_zod25.z.string().max(64),
|
|
2241
2376
|
/** started · stopped · healthy · unhealthy · crashed · exited · restarting · stopping · action · action-done · action-failed · setup · error */
|
|
2242
|
-
kind:
|
|
2243
|
-
text:
|
|
2377
|
+
kind: import_zod25.z.string().max(32),
|
|
2378
|
+
text: import_zod25.z.string().max(4e3)
|
|
2244
2379
|
});
|
|
2245
|
-
var StackStateParams =
|
|
2246
|
-
var StackStateResult =
|
|
2380
|
+
var StackStateParams = import_zod25.z.strictObject({});
|
|
2381
|
+
var StackStateResult = import_zod25.z.strictObject({
|
|
2247
2382
|
/** The stack's config file, when found. */
|
|
2248
|
-
config_path:
|
|
2383
|
+
config_path: import_zod25.z.string().max(4096).nullable(),
|
|
2249
2384
|
/** Why the stack cannot be run from here (no config, no process-compose), else null. */
|
|
2250
|
-
problem:
|
|
2251
|
-
stack_up:
|
|
2385
|
+
problem: import_zod25.z.string().max(1e3).nullable(),
|
|
2386
|
+
stack_up: import_zod25.z.boolean(),
|
|
2252
2387
|
stack_started_at_ms: epochMs.nullable(),
|
|
2253
|
-
servers:
|
|
2388
|
+
servers: import_zod25.z.array(StackServer).max(64),
|
|
2254
2389
|
/** One line about the one-shot setup steps ("Docker Desktop: running."), or null. */
|
|
2255
|
-
setup_note:
|
|
2390
|
+
setup_note: import_zod25.z.string().max(500).nullable(),
|
|
2256
2391
|
/** Start everything / Stop everything in flight. */
|
|
2257
|
-
pending:
|
|
2392
|
+
pending: import_zod25.z.strictObject({ verb: import_zod25.z.enum(["start", "stop"]), label: import_zod25.z.string().max(64), since_ms: epochMs }).nullable(),
|
|
2258
2393
|
/** The newest entries last. */
|
|
2259
|
-
events:
|
|
2394
|
+
events: import_zod25.z.array(StackEvent).max(300)
|
|
2260
2395
|
});
|
|
2261
|
-
var StackStartParams =
|
|
2262
|
-
var StackStopParams =
|
|
2263
|
-
var StackRunResult =
|
|
2264
|
-
var StackServerActionParams =
|
|
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({
|
|
2265
2400
|
name: StackServerName,
|
|
2266
|
-
verb:
|
|
2401
|
+
verb: import_zod25.z.enum(["start", "stop", "restart"])
|
|
2267
2402
|
});
|
|
2268
|
-
var StackServerActionResult =
|
|
2269
|
-
var StackLogsParams =
|
|
2403
|
+
var StackServerActionResult = import_zod25.z.strictObject({ message: import_zod25.z.string().max(1e3) });
|
|
2404
|
+
var StackLogsParams = import_zod25.z.strictObject({
|
|
2270
2405
|
name: StackServerName,
|
|
2271
2406
|
/** Without `offset`: the last this-many complete lines. With it: new lines after it, at most this many. */
|
|
2272
|
-
lines:
|
|
2407
|
+
lines: import_zod25.z.int().min(1).max(2e5).default(2e3),
|
|
2273
2408
|
/** Byte offset the last read ended at: answer only what was written after it (follow). */
|
|
2274
2409
|
offset: nonNegInt.optional(),
|
|
2275
2410
|
/** A "Clear" point: the lines written after this byte offset (no `offset`). */
|
|
2276
2411
|
since: nonNegInt.optional(),
|
|
2277
2412
|
/** With `offset`: wait up to this long for a new line when none is waiting (0 answers at once). */
|
|
2278
|
-
wait_ms:
|
|
2413
|
+
wait_ms: import_zod25.z.int().min(0).max(25e3).default(0)
|
|
2279
2414
|
});
|
|
2280
|
-
var StackLogsResult =
|
|
2415
|
+
var StackLogsResult = import_zod25.z.strictObject({
|
|
2281
2416
|
/** Complete lines, colour codes removed. */
|
|
2282
|
-
lines:
|
|
2417
|
+
lines: import_zod25.z.array(import_zod25.z.string().max(65536)).max(2e5),
|
|
2283
2418
|
/** Where these lines end: pass it back as `offset` to follow. */
|
|
2284
2419
|
offset: nonNegInt,
|
|
2285
2420
|
/** False when `since` no longer exists (the log rotated): the lines are the plain tail instead. */
|
|
2286
|
-
since_valid:
|
|
2421
|
+
since_valid: import_zod25.z.boolean(),
|
|
2287
2422
|
/** The log was rotated or truncated since `offset`: these lines start the file again. */
|
|
2288
|
-
reset:
|
|
2289
|
-
log_file:
|
|
2423
|
+
reset: import_zod25.z.boolean(),
|
|
2424
|
+
log_file: import_zod25.z.string().max(4096)
|
|
2290
2425
|
});
|
|
2291
|
-
var StackErrorsParams =
|
|
2292
|
-
window_minutes:
|
|
2426
|
+
var StackErrorsParams = import_zod25.z.strictObject({
|
|
2427
|
+
window_minutes: import_zod25.z.int().min(1).max(1440).default(60)
|
|
2293
2428
|
});
|
|
2294
|
-
var StackErrorsResult =
|
|
2429
|
+
var StackErrorsResult = import_zod25.z.strictObject({
|
|
2295
2430
|
/** Per server: a heading line ("=== aidream — errors in the last 60 minutes (<file>) ===") and each error with the 10 lines after it. */
|
|
2296
|
-
sections:
|
|
2297
|
-
window_minutes:
|
|
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)
|
|
2298
2433
|
});
|
|
2299
2434
|
|
|
2300
2435
|
// src/schema/audio.ts
|
|
2301
|
-
var
|
|
2302
|
-
var AudioDevice =
|
|
2436
|
+
var import_zod26 = require("zod");
|
|
2437
|
+
var AudioDevice = import_zod26.z.strictObject({
|
|
2303
2438
|
/** The OS's name for it, as audio.record takes it. */
|
|
2304
|
-
id:
|
|
2305
|
-
name:
|
|
2306
|
-
default:
|
|
2439
|
+
id: import_zod26.z.string().min(1).max(256),
|
|
2440
|
+
name: import_zod26.z.string().max(256),
|
|
2441
|
+
default: import_zod26.z.boolean()
|
|
2307
2442
|
});
|
|
2308
|
-
var AudioDevicesParams =
|
|
2309
|
-
var AudioDevicesResult =
|
|
2310
|
-
inputs:
|
|
2311
|
-
outputs:
|
|
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)
|
|
2312
2447
|
});
|
|
2313
|
-
var AudioRecordParams =
|
|
2314
|
-
seconds:
|
|
2448
|
+
var AudioRecordParams = import_zod26.z.strictObject({
|
|
2449
|
+
seconds: import_zod26.z.number().min(0.5).max(600),
|
|
2315
2450
|
/** The microphone (from audio.devices); the default input when absent. */
|
|
2316
|
-
device_id:
|
|
2451
|
+
device_id: import_zod26.z.string().min(1).max(256).optional(),
|
|
2317
2452
|
/** Where the WAV file goes; a new file in the temp folder when absent. */
|
|
2318
2453
|
path: AbsPath.optional()
|
|
2319
2454
|
});
|
|
2320
|
-
var AudioRecordResult =
|
|
2455
|
+
var AudioRecordResult = import_zod26.z.strictObject({
|
|
2321
2456
|
path: AbsPath,
|
|
2322
|
-
seconds:
|
|
2457
|
+
seconds: import_zod26.z.number().min(0),
|
|
2323
2458
|
bytes: nonNegInt,
|
|
2324
2459
|
/** Loudest sample, 0–1: 0 means the device gave silence. */
|
|
2325
|
-
peak:
|
|
2460
|
+
peak: import_zod26.z.number().min(0).max(1)
|
|
2326
2461
|
});
|
|
2327
|
-
var AudioPlayParams =
|
|
2328
|
-
var AudioPlayResult =
|
|
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) });
|
|
2329
2464
|
|
|
2330
2465
|
// src/schema/fs-watch.ts
|
|
2331
|
-
var
|
|
2332
|
-
var FsWatchId =
|
|
2333
|
-
var FsWatchStartParams =
|
|
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({
|
|
2334
2469
|
path: AbsPath,
|
|
2335
|
-
recursive:
|
|
2470
|
+
recursive: import_zod27.z.boolean().default(true),
|
|
2336
2471
|
/** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
|
|
2337
|
-
ignore:
|
|
2472
|
+
ignore: import_zod27.z.array(import_zod27.z.string().max(256)).max(64).default([])
|
|
2338
2473
|
});
|
|
2339
|
-
var FsWatchStartResult =
|
|
2474
|
+
var FsWatchStartResult = import_zod27.z.strictObject({
|
|
2340
2475
|
watch_id: FsWatchId,
|
|
2341
2476
|
path: AbsPath,
|
|
2342
2477
|
/** The watch ends by itself if nobody reads it for 30 minutes. */
|
|
2343
2478
|
expires_at_ms: epochMs
|
|
2344
2479
|
});
|
|
2345
|
-
var FsWatchEventsParams =
|
|
2480
|
+
var FsWatchEventsParams = import_zod27.z.strictObject({
|
|
2346
2481
|
watch_id: FsWatchId,
|
|
2347
2482
|
/** Wait up to this long for a first change when none is waiting (0 answers at once). */
|
|
2348
|
-
wait_ms:
|
|
2483
|
+
wait_ms: import_zod27.z.int().min(0).max(25e3).default(0)
|
|
2349
2484
|
});
|
|
2350
|
-
var FsWatchEventsResult =
|
|
2485
|
+
var FsWatchEventsResult = import_zod27.z.strictObject({
|
|
2351
2486
|
/** What changed since the last read, oldest first; re-checked against the disk when read. */
|
|
2352
|
-
changes:
|
|
2487
|
+
changes: import_zod27.z.array(FsChange).max(1e3),
|
|
2353
2488
|
/** Changes were dropped (more than 1000 waited): list the folder again. */
|
|
2354
|
-
overflow:
|
|
2489
|
+
overflow: import_zod27.z.boolean(),
|
|
2355
2490
|
expires_at_ms: epochMs
|
|
2356
2491
|
});
|
|
2357
|
-
var FsWatchStopParams =
|
|
2358
|
-
var FsWatchStopResult =
|
|
2492
|
+
var FsWatchStopParams = import_zod27.z.strictObject({ watch_id: FsWatchId });
|
|
2493
|
+
var FsWatchStopResult = import_zod27.z.strictObject({ watch_id: FsWatchId });
|
|
2359
2494
|
|
|
2360
2495
|
// src/schema/exec-job.ts
|
|
2361
|
-
var
|
|
2362
|
-
var ExecJobId =
|
|
2363
|
-
var ExecJobStartParams =
|
|
2364
|
-
command:
|
|
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),
|
|
2365
2500
|
/** The folder it runs in; the home folder when absent. */
|
|
2366
2501
|
cwd: AbsPath.optional(),
|
|
2367
|
-
env:
|
|
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()
|
|
2368
2503
|
});
|
|
2369
|
-
var ExecJobStartResult =
|
|
2370
|
-
var ExecJobOutputParams =
|
|
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({
|
|
2371
2506
|
job_id: ExecJobId,
|
|
2372
2507
|
/** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
|
|
2373
2508
|
offset: nonNegInt.default(0),
|
|
2374
2509
|
/** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
|
|
2375
|
-
wait_ms:
|
|
2376
|
-
max_bytes:
|
|
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)
|
|
2377
2512
|
});
|
|
2378
|
-
var ExecJobOutputResult =
|
|
2513
|
+
var ExecJobOutputResult = import_zod28.z.strictObject({
|
|
2379
2514
|
/** stdout and stderr interleaved as they arrived (UTF-8). */
|
|
2380
|
-
output:
|
|
2515
|
+
output: import_zod28.z.string(),
|
|
2381
2516
|
next_offset: nonNegInt,
|
|
2382
2517
|
/** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
|
|
2383
2518
|
dropped_bytes: nonNegInt,
|
|
2384
|
-
running:
|
|
2385
|
-
exit_code:
|
|
2519
|
+
running: import_zod28.z.boolean(),
|
|
2520
|
+
exit_code: import_zod28.z.int().nullable()
|
|
2386
2521
|
});
|
|
2387
|
-
var ExecJobStopParams =
|
|
2522
|
+
var ExecJobStopParams = import_zod28.z.strictObject({
|
|
2388
2523
|
job_id: ExecJobId,
|
|
2389
2524
|
/** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
|
|
2390
|
-
force:
|
|
2525
|
+
force: import_zod28.z.boolean().default(false)
|
|
2391
2526
|
});
|
|
2392
|
-
var ExecJobStopResult =
|
|
2393
|
-
var ExecJobInfo =
|
|
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({
|
|
2394
2529
|
job_id: ExecJobId,
|
|
2395
|
-
command:
|
|
2396
|
-
pid:
|
|
2530
|
+
command: import_zod28.z.string().max(1024),
|
|
2531
|
+
pid: import_zod28.z.int().min(1),
|
|
2397
2532
|
cwd: AbsPath,
|
|
2398
|
-
running:
|
|
2399
|
-
exit_code:
|
|
2533
|
+
running: import_zod28.z.boolean(),
|
|
2534
|
+
exit_code: import_zod28.z.int().nullable(),
|
|
2400
2535
|
started_at_ms: epochMs,
|
|
2401
2536
|
output_bytes: nonNegInt
|
|
2402
2537
|
});
|
|
2403
|
-
var ExecJobListParams =
|
|
2404
|
-
var ExecJobListResult =
|
|
2538
|
+
var ExecJobListParams = import_zod28.z.strictObject({});
|
|
2539
|
+
var ExecJobListResult = import_zod28.z.strictObject({ jobs: import_zod28.z.array(ExecJobInfo).max(64) });
|
|
2405
2540
|
|
|
2406
2541
|
// src/schema/coding.ts
|
|
2407
|
-
var
|
|
2542
|
+
var import_zod29 = require("zod");
|
|
2408
2543
|
var import_uuid3 = require("@ai-matrx/kit/uuid");
|
|
2409
|
-
var CodingServiceCredentials =
|
|
2410
|
-
access_token:
|
|
2411
|
-
user_id:
|
|
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),
|
|
2412
2547
|
/** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
|
|
2413
|
-
server_url:
|
|
2548
|
+
server_url: import_zod29.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
|
|
2414
2549
|
});
|
|
2415
|
-
var CodingHistoryBlocked =
|
|
2550
|
+
var CodingHistoryBlocked = import_zod29.z.enum([
|
|
2416
2551
|
"signed_out",
|
|
2417
2552
|
"offline",
|
|
2418
2553
|
"organization_required",
|
|
@@ -2420,11 +2555,11 @@ var CodingHistoryBlocked = import_zod28.z.enum([
|
|
|
2420
2555
|
"cloud_list_unavailable",
|
|
2421
2556
|
"history_too_large"
|
|
2422
2557
|
]);
|
|
2423
|
-
var CodingHistoryFailure =
|
|
2424
|
-
session_id:
|
|
2425
|
-
reason:
|
|
2558
|
+
var CodingHistoryFailure = import_zod29.z.strictObject({
|
|
2559
|
+
session_id: import_zod29.z.string().max(64),
|
|
2560
|
+
reason: import_zod29.z.string().max(300)
|
|
2426
2561
|
});
|
|
2427
|
-
var CodingHistoryRun =
|
|
2562
|
+
var CodingHistoryRun = import_zod29.z.strictObject({
|
|
2428
2563
|
/** Claude Code sessions found on this computer. */
|
|
2429
2564
|
local_sessions: nonNegInt,
|
|
2430
2565
|
/** Of those, already complete in AI Matrx. */
|
|
@@ -2439,39 +2574,39 @@ var CodingHistoryRun = import_zod28.z.strictObject({
|
|
|
2439
2574
|
/** Changed while being read; a later run takes them. */
|
|
2440
2575
|
changed: nonNegInt,
|
|
2441
2576
|
failed: nonNegInt,
|
|
2442
|
-
failures:
|
|
2577
|
+
failures: import_zod29.z.array(CodingHistoryFailure).max(20),
|
|
2443
2578
|
/** Candidates not reached yet. */
|
|
2444
2579
|
remaining: nonNegInt,
|
|
2445
2580
|
/** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
|
|
2446
|
-
summary:
|
|
2581
|
+
summary: import_zod29.z.string().max(400)
|
|
2447
2582
|
});
|
|
2448
|
-
var CodingHistoryStep =
|
|
2583
|
+
var CodingHistoryStep = import_zod29.z.strictObject({
|
|
2449
2584
|
/** Null when the run could not start (blocked before a plan existed). */
|
|
2450
|
-
plan_id:
|
|
2451
|
-
finished:
|
|
2585
|
+
plan_id: import_zod29.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
|
|
2586
|
+
finished: import_zod29.z.boolean(),
|
|
2452
2587
|
blocked: CodingHistoryBlocked.nullable(),
|
|
2453
2588
|
run: CodingHistoryRun
|
|
2454
2589
|
});
|
|
2455
|
-
var CodingPlanMissingParams =
|
|
2456
|
-
var CodingImportNextParams =
|
|
2457
|
-
plan_id:
|
|
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}$/),
|
|
2458
2593
|
credentials: CodingServiceCredentials.nullable()
|
|
2459
2594
|
});
|
|
2460
|
-
var CodingServiceProgress =
|
|
2461
|
-
phase:
|
|
2595
|
+
var CodingServiceProgress = import_zod29.z.strictObject({
|
|
2596
|
+
phase: import_zod29.z.enum(["checking", "importing"]),
|
|
2462
2597
|
done: nonNegInt,
|
|
2463
2598
|
total: nonNegInt
|
|
2464
2599
|
});
|
|
2465
|
-
var CodingHistoryImportMissingParams =
|
|
2466
|
-
var CodingHistoryImportMissingResult =
|
|
2467
|
-
state:
|
|
2600
|
+
var CodingHistoryImportMissingParams = import_zod29.z.strictObject({});
|
|
2601
|
+
var CodingHistoryImportMissingResult = import_zod29.z.strictObject({
|
|
2602
|
+
state: import_zod29.z.enum(["done", "blocked", "cancelled"]),
|
|
2468
2603
|
blocked: CodingHistoryBlocked.nullable(),
|
|
2469
2604
|
run: CodingHistoryRun,
|
|
2470
2605
|
elapsed_ms: nonNegInt
|
|
2471
2606
|
});
|
|
2472
|
-
var CodingHistoryProgressEvent =
|
|
2607
|
+
var CodingHistoryProgressEvent = import_zod29.z.strictObject({
|
|
2473
2608
|
request_id: RequestId,
|
|
2474
|
-
phase:
|
|
2609
|
+
phase: import_zod29.z.enum(["checking", "importing"]),
|
|
2475
2610
|
/** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
|
|
2476
2611
|
done: nonNegInt,
|
|
2477
2612
|
total: nonNegInt,
|
|
@@ -2536,6 +2671,7 @@ var OPS = {
|
|
|
2536
2671
|
"apps.projects.move": { params: AppsProjectsMoveParams, result: AppsProjectsMoveResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2537
2672
|
"apps.projects.create": { params: AppsProjectsCreateParams, result: AppsProjectsCreateResult, kind: "unary", since: "1.10", errors: ["INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2538
2673
|
"apps.projects.import_pins": { params: AppsProjectsImportPinsParams, result: AppsProjectsImportPinsResult, kind: "unary", since: "1.10", errors: ["CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2674
|
+
"apps.projects.to_window": { params: AppsProjectsToWindowParams, result: AppsProjectsToWindowResult, kind: "unary", since: "1.19", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2539
2675
|
// 1.11: Going cold, Spend, sync health, windows upkeep.
|
|
2540
2676
|
"apps.chats.cold": { params: AppsChatsColdParams, result: AppsChatsColdResult, kind: "unary", since: "1.11", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2541
2677
|
"apps.chats.open": { params: AppsChatsOpenParams, result: AppsWindowActionResult, kind: "unary", since: "1.11", errors: ["NOT_FOUND", "CONFLICT", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
@@ -2586,6 +2722,9 @@ var OPS = {
|
|
|
2586
2722
|
"stack.server.action": { params: StackServerActionParams, result: StackServerActionResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "CONFLICT", "INTERNAL"] },
|
|
2587
2723
|
"stack.logs": { params: StackLogsParams, result: StackLogsResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "INTERNAL"] },
|
|
2588
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"] },
|
|
2589
2728
|
// Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
|
|
2590
2729
|
"coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] }
|
|
2591
2730
|
};
|
|
@@ -2600,7 +2739,8 @@ var EVENTS = {
|
|
|
2600
2739
|
"models.progress": ModelsProgressEvent,
|
|
2601
2740
|
"coding.history.progress": CodingHistoryProgressEvent,
|
|
2602
2741
|
"relay.device_status": RelayDeviceStatusEvent,
|
|
2603
|
-
"relay.auth_expiring": RelayAuthExpiringEvent
|
|
2742
|
+
"relay.auth_expiring": RelayAuthExpiringEvent,
|
|
2743
|
+
"diag.errors.changed": DiagErrorsChangedEvent
|
|
2604
2744
|
};
|
|
2605
2745
|
var SERVICES = {
|
|
2606
2746
|
ml: {
|
|
@@ -2846,6 +2986,15 @@ var NAMED_SCHEMAS = {
|
|
|
2846
2986
|
StackLogsResult,
|
|
2847
2987
|
StackErrorsParams,
|
|
2848
2988
|
StackErrorsResult,
|
|
2989
|
+
DiagProcess,
|
|
2990
|
+
DiagErrorKind,
|
|
2991
|
+
DiagErrorStatus,
|
|
2992
|
+
DiagErrorEntry,
|
|
2993
|
+
DiagErrorsListParams,
|
|
2994
|
+
DiagErrorsListResult,
|
|
2995
|
+
DiagErrorsReportParams,
|
|
2996
|
+
DiagErrorsReportResult,
|
|
2997
|
+
DiagErrorsChangedEvent,
|
|
2849
2998
|
FsWatchId,
|
|
2850
2999
|
FsWatchStartParams,
|
|
2851
3000
|
FsWatchStartResult,
|
|
@@ -2939,6 +3088,11 @@ var NAMED_SCHEMAS = {
|
|
|
2939
3088
|
AppsProjectsCreateResult,
|
|
2940
3089
|
AppsProjectsImportPinsParams,
|
|
2941
3090
|
AppsProjectsImportPinsResult,
|
|
3091
|
+
ProjectMoveChat,
|
|
3092
|
+
ProjectMoveSkip,
|
|
3093
|
+
ProjectMoveGroup,
|
|
3094
|
+
AppsProjectsToWindowParams,
|
|
3095
|
+
AppsProjectsToWindowResult,
|
|
2942
3096
|
ColdChat,
|
|
2943
3097
|
AppsChatsColdParams,
|
|
2944
3098
|
AppsChatsColdResult,
|
|
@@ -2976,7 +3130,8 @@ var FIELDS_SINCE = {
|
|
|
2976
3130
|
AppsAccountsResetsResult: { problem: "1.12" },
|
|
2977
3131
|
ChatRow: { app_project: "1.13", tokens: "1.13", original_title: "1.14", title_source: "1.14", title_override: "1.14", archived: "1.15" },
|
|
2978
3132
|
AccountUsage: { plan: "1.13", credits: "1.13" },
|
|
2979
|
-
ResourcesDisk: { name: "1.17" }
|
|
3133
|
+
ResourcesDisk: { name: "1.17" },
|
|
3134
|
+
StackServer: { cpu_percent: "1.18", memory_bytes: "1.18" }
|
|
2980
3135
|
};
|
|
2981
3136
|
var NULL_SINCE = {
|
|
2982
3137
|
"RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
|
|
@@ -3044,7 +3199,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
|
|
|
3044
3199
|
["apps.chats.star", [["chat", "ChatRow"]]],
|
|
3045
3200
|
["apps.chats.place", [["chat", "ChatRow"]]],
|
|
3046
3201
|
["apps.accounts.usage", [["accounts", "AccountUsage"]]],
|
|
3047
|
-
["resources.snapshot", [["disks", "ResourcesDisk"]]]
|
|
3202
|
+
["resources.snapshot", [["disks", "ResourcesDisk"]]],
|
|
3203
|
+
["stack.state", [["servers", "StackServer"]]]
|
|
3048
3204
|
]);
|
|
3049
3205
|
function stripNested(value, nested, version) {
|
|
3050
3206
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return value;
|
|
@@ -3105,7 +3261,7 @@ function forPeer(op, part, value, version) {
|
|
|
3105
3261
|
var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
|
|
3106
3262
|
|
|
3107
3263
|
// src/contract.ts
|
|
3108
|
-
var CONTRACT_SHA256 = "
|
|
3264
|
+
var CONTRACT_SHA256 = "ef1f01f6b4e81ce7a56192d56c5765d182a53aaf9224ef20ce764cd25c20e229";
|
|
3109
3265
|
|
|
3110
3266
|
// src/close-policy.ts
|
|
3111
3267
|
var CLOSE_RULES = {
|