@ai-matrx/desktop-protocol 0.17.5 → 0.17.6
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 +16 -0
- package/dist/client.cjs +100 -2
- 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 +100 -2
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +404 -264
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +250 -6
- package/dist/index.d.ts +250 -6
- package/dist/index.js +404 -264
- package/dist/index.js.map +1 -1
- package/dist/{models-Bb87iuvw.d.cts → models-B9tM6Hnx.d.cts} +414 -1
- package/dist/{models-Bb87iuvw.d.ts → models-B9tM6Hnx.d.ts} +414 -1
- package/dist/react.d.cts +214 -0
- package/dist/react.d.ts +214 -0
- package/generated/desktop-protocol.schema.json +799 -123
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/schema/primitives.ts
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
var PROTOCOL_MAJOR = 1;
|
|
4
|
-
var PROTOCOL_MINOR =
|
|
4
|
+
var PROTOCOL_MINOR = 10;
|
|
5
5
|
var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
|
|
6
6
|
var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
|
|
7
7
|
var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
|
|
@@ -964,6 +964,11 @@ var ChatRow = z12.strictObject({
|
|
|
964
964
|
warnings: z12.array(z12.string().max(400)).max(20),
|
|
965
965
|
last_use: ChatLastUse.nullable()
|
|
966
966
|
});
|
|
967
|
+
var ChatFamily = z12.strictObject({
|
|
968
|
+
id: ChatId,
|
|
969
|
+
fork_of: ChatId.nullable(),
|
|
970
|
+
copy_of: ChatId.nullable()
|
|
971
|
+
});
|
|
967
972
|
var AppsChatsListParams = z12.strictObject({
|
|
968
973
|
app_key: AppKey,
|
|
969
974
|
/** Only these chats (a live update re-reads just what changed). */
|
|
@@ -981,7 +986,9 @@ var AppsChatsListResult = z12.strictObject({
|
|
|
981
986
|
/** 1.9: this is the copy saved at the last read, shown while everything is read again. */
|
|
982
987
|
updating: z12.boolean().optional(),
|
|
983
988
|
/** 1.9: false while the folder watches are down (changes are not arriving); `apps.chats.watch_state` says when it changes. */
|
|
984
|
-
live: z12.boolean().optional()
|
|
989
|
+
live: z12.boolean().optional(),
|
|
990
|
+
/** 1.10: every listed chat that is a fork or a copy of another (read from the conversations' first lines). */
|
|
991
|
+
families: z12.array(ChatFamily).max(2e4).optional()
|
|
985
992
|
});
|
|
986
993
|
var AppsChatsWatchParams = z12.strictObject({ app_key: AppKey });
|
|
987
994
|
var AppsChatsWatchResult = z12.strictObject({ resource_id: ResourceId, version: nonNegInt });
|
|
@@ -1035,250 +1042,330 @@ var AppsProjectsUnfileResult = z12.strictObject({ chat: ChatRow });
|
|
|
1035
1042
|
var AppsChatsStarParams = z12.strictObject({ app_key: AppKey, chat_id: ChatId, starred: z12.boolean() });
|
|
1036
1043
|
var AppsChatsStarResult = z12.strictObject({ chat: ChatRow });
|
|
1037
1044
|
|
|
1038
|
-
// src/schema/
|
|
1045
|
+
// src/schema/apps-accounts.ts
|
|
1039
1046
|
import { z as z13 } from "zod";
|
|
1047
|
+
var AppWindowInfo = z13.strictObject({
|
|
1048
|
+
key: ChatPlace,
|
|
1049
|
+
/** The app's default profile (Claude: main, which may sign into any account). */
|
|
1050
|
+
main: z13.boolean(),
|
|
1051
|
+
/** The account the window is meant for (null for main). */
|
|
1052
|
+
account: z13.string().max(320).nullable(),
|
|
1053
|
+
/** The account signed in there now: an email, or the account id while it has no saved name. */
|
|
1054
|
+
signed_in: z13.string().max(320).nullable(),
|
|
1055
|
+
signed_in_is_email: z13.boolean(),
|
|
1056
|
+
/** Signed into another account than the one it is meant for. */
|
|
1057
|
+
mismatch: z13.boolean(),
|
|
1058
|
+
/** Its folder exists. */
|
|
1059
|
+
created: z13.boolean(),
|
|
1060
|
+
/** Open now. */
|
|
1061
|
+
running: z13.boolean(),
|
|
1062
|
+
/** Chats open in it now (a process resuming each one). */
|
|
1063
|
+
open_chats: nonNegInt
|
|
1064
|
+
});
|
|
1065
|
+
var AccountUsage = z13.strictObject({
|
|
1066
|
+
/** The account's email, or "org <8 chars>" when no window has ever sampled that org. */
|
|
1067
|
+
account: z13.string().max(320),
|
|
1068
|
+
org: z13.string().max(80).nullable(),
|
|
1069
|
+
/** False when the org was sampled in several accounts' windows and the vote is not clear (≥ 75 %). */
|
|
1070
|
+
account_certain: z13.boolean(),
|
|
1071
|
+
/** 5-hour use in percent (0 once the reading is over 5 hours old). */
|
|
1072
|
+
five_hour: z13.number().nullable(),
|
|
1073
|
+
five_hour_reset_since: z13.boolean(),
|
|
1074
|
+
/** Weekly use in percent (0 once the week reset after the reading). */
|
|
1075
|
+
weekly: z13.number().nullable(),
|
|
1076
|
+
weekly_reset_since: z13.boolean(),
|
|
1077
|
+
/** Extra-usage spend in percent of its cap, when on. */
|
|
1078
|
+
extra_usage: z13.number().nullable(),
|
|
1079
|
+
extra_usage_as_of_ms: epochMs.nullable(),
|
|
1080
|
+
as_of_ms: epochMs,
|
|
1081
|
+
/** The windows meant for this account (and main when main took the reading). */
|
|
1082
|
+
windows: z13.array(ChatPlace).max(200),
|
|
1083
|
+
/** The window that took the reading is open now and the reading is under 30 minutes old. */
|
|
1084
|
+
live: z13.boolean(),
|
|
1085
|
+
/** The next weekly reset, when known. */
|
|
1086
|
+
weekly_resets_at_ms: epochMs.nullable(),
|
|
1087
|
+
/** That reset time is Claude's own (its reading, or a reset seen in its usage history). */
|
|
1088
|
+
weekly_reset_official: z13.boolean().nullable()
|
|
1089
|
+
});
|
|
1090
|
+
var AccountReset = z13.strictObject({
|
|
1091
|
+
window: ChatPlace,
|
|
1092
|
+
account: z13.string().max(320).nullable(),
|
|
1093
|
+
next_reset_ms: epochMs.nullable(),
|
|
1094
|
+
/** claude: the app's own reading; usage_history: a weekly drop seen in its usage record; your_list: the person's own entry. */
|
|
1095
|
+
source: z13.enum(["claude", "usage_history", "your_list"]).nullable(),
|
|
1096
|
+
/** claude or usage_history. */
|
|
1097
|
+
official: z13.boolean(),
|
|
1098
|
+
/** Set when the person's list disagrees with the official time. */
|
|
1099
|
+
note: z13.string().max(200).nullable()
|
|
1100
|
+
});
|
|
1101
|
+
var AppsWindowsListParams = z13.strictObject({ app_key: AppKey });
|
|
1102
|
+
var AppsWindowsListResult = z13.strictObject({ app_key: AppKey, windows: z13.array(AppWindowInfo).max(200) });
|
|
1103
|
+
var AppsAccountsUsageParams = z13.strictObject({ app_key: AppKey });
|
|
1104
|
+
var AppsAccountsUsageResult = z13.strictObject({ app_key: AppKey, accounts: z13.array(AccountUsage).max(500) });
|
|
1105
|
+
var AppsAccountsResetsParams = z13.strictObject({ app_key: AppKey });
|
|
1106
|
+
var AppsAccountsResetsResult = z13.strictObject({ app_key: AppKey, resets: z13.array(AccountReset).max(200) });
|
|
1107
|
+
var AppsWindowActionResult = z13.strictObject({ message: z13.string().max(400) });
|
|
1108
|
+
var AppsWindowsOpenParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
1109
|
+
var AppsWindowsReloadParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
1110
|
+
var AppsWindowsRestartParams = z13.strictObject({ app_key: AppKey, window: ChatPlace, force: z13.boolean().default(false) });
|
|
1111
|
+
var AppsWindowsRefreshUsageParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
1112
|
+
var AppsProjectsMoveParams = z13.strictObject({
|
|
1113
|
+
app_key: AppKey,
|
|
1114
|
+
chat_id: ChatId,
|
|
1115
|
+
from_project_id: ChatProjectId,
|
|
1116
|
+
to_project_id: ChatProjectId.optional(),
|
|
1117
|
+
new_project_name: z13.string().min(1).max(200).optional()
|
|
1118
|
+
});
|
|
1119
|
+
var AppsProjectsMoveResult = z13.strictObject({ chat: ChatRow, project: ChatProject });
|
|
1120
|
+
var AppsProjectsCreateParams = z13.strictObject({ app_key: AppKey, name: z13.string().min(1).max(200) });
|
|
1121
|
+
var AppsProjectsCreateResult = z13.strictObject({ project: ChatProject });
|
|
1122
|
+
var AppsProjectsImportPinsParams = z13.strictObject({ app_key: AppKey });
|
|
1123
|
+
var AppsProjectsImportPinsResult = z13.strictObject({ message: z13.string().max(400) });
|
|
1124
|
+
|
|
1125
|
+
// src/schema/service.ts
|
|
1126
|
+
import { z as z14 } from "zod";
|
|
1040
1127
|
var SERVICE_MAX_FRAME_BYTES = 16777216;
|
|
1041
|
-
var ServiceName =
|
|
1042
|
-
var ContractHash =
|
|
1043
|
-
var ServiceToken =
|
|
1128
|
+
var ServiceName = z14.enum(["ml", "coding"]);
|
|
1129
|
+
var ContractHash = z14.string().regex(/^[0-9a-f]{64}$/);
|
|
1130
|
+
var ServiceToken = z14.string().regex(/^[A-Za-z0-9_-]{43}$/);
|
|
1044
1131
|
var ServiceRequestId = u32;
|
|
1045
|
-
var ServiceHello =
|
|
1046
|
-
var ServiceWelcome =
|
|
1047
|
-
type:
|
|
1132
|
+
var ServiceHello = z14.strictObject({ type: z14.literal("hello"), token: ServiceToken, contract: ContractHash });
|
|
1133
|
+
var ServiceWelcome = z14.strictObject({
|
|
1134
|
+
type: z14.literal("welcome"),
|
|
1048
1135
|
service: ServiceName,
|
|
1049
1136
|
contract: ContractHash,
|
|
1050
1137
|
pid: nonNegInt,
|
|
1051
1138
|
/** The interpreter's version, e.g. "3.13.15". */
|
|
1052
|
-
python:
|
|
1139
|
+
python: z14.string().max(32),
|
|
1053
1140
|
/** Every op this service serves; must equal SERVICES[service] exactly. */
|
|
1054
|
-
ops:
|
|
1141
|
+
ops: z14.array(z14.string().min(1).max(64)).max(64)
|
|
1055
1142
|
});
|
|
1056
|
-
var ServiceRequest =
|
|
1057
|
-
type:
|
|
1143
|
+
var ServiceRequest = z14.strictObject({
|
|
1144
|
+
type: z14.literal("request"),
|
|
1058
1145
|
id: ServiceRequestId,
|
|
1059
|
-
op:
|
|
1060
|
-
params:
|
|
1146
|
+
op: z14.string().min(1).max(64),
|
|
1147
|
+
params: z14.unknown()
|
|
1061
1148
|
// validated by the service against SERVICES[service][op].params
|
|
1062
1149
|
});
|
|
1063
|
-
var ServiceResponse =
|
|
1064
|
-
type:
|
|
1150
|
+
var ServiceResponse = z14.strictObject({
|
|
1151
|
+
type: z14.literal("response"),
|
|
1065
1152
|
id: ServiceRequestId,
|
|
1066
|
-
result:
|
|
1153
|
+
result: z14.unknown()
|
|
1067
1154
|
// validated by the core against SERVICES[service][op].result
|
|
1068
1155
|
});
|
|
1069
|
-
var ServiceErrorMsg =
|
|
1070
|
-
var ServiceProgressMsg =
|
|
1071
|
-
var ServiceCancel =
|
|
1072
|
-
var ServicePing =
|
|
1073
|
-
var ServicePong =
|
|
1074
|
-
type:
|
|
1156
|
+
var ServiceErrorMsg = z14.strictObject({ type: z14.literal("error"), id: ServiceRequestId, error: ProtocolErrorBody });
|
|
1157
|
+
var ServiceProgressMsg = z14.strictObject({ type: z14.literal("progress"), id: ServiceRequestId, progress: z14.unknown() });
|
|
1158
|
+
var ServiceCancel = z14.strictObject({ type: z14.literal("cancel"), id: ServiceRequestId });
|
|
1159
|
+
var ServicePing = z14.strictObject({ type: z14.literal("ping"), id: ServiceRequestId });
|
|
1160
|
+
var ServicePong = z14.strictObject({
|
|
1161
|
+
type: z14.literal("pong"),
|
|
1075
1162
|
id: ServiceRequestId,
|
|
1076
1163
|
/** Requests running now. */
|
|
1077
1164
|
busy: nonNegInt
|
|
1078
1165
|
});
|
|
1079
|
-
var ServiceShutdown =
|
|
1080
|
-
var CoreToServiceMsg =
|
|
1081
|
-
var ServiceToCoreMsg =
|
|
1166
|
+
var ServiceShutdown = z14.strictObject({ type: z14.literal("shutdown") });
|
|
1167
|
+
var CoreToServiceMsg = z14.discriminatedUnion("type", [ServiceHello, ServiceRequest, ServiceCancel, ServicePing, ServiceShutdown]);
|
|
1168
|
+
var ServiceToCoreMsg = z14.discriminatedUnion("type", [ServiceWelcome, ServiceResponse, ServiceErrorMsg, ServiceProgressMsg, ServicePong]);
|
|
1082
1169
|
|
|
1083
1170
|
// src/schema/tools.ts
|
|
1084
|
-
import { z as
|
|
1085
|
-
var ToolLevel =
|
|
1086
|
-
var ToolOutcome =
|
|
1087
|
-
var ToolPlatform =
|
|
1088
|
-
var ToolTransport =
|
|
1089
|
-
var ToolName =
|
|
1090
|
-
var ToolLevelResult =
|
|
1171
|
+
import { z as z15 } from "zod";
|
|
1172
|
+
var ToolLevel = z15.enum(["programmatic", "protocol", "chat"]);
|
|
1173
|
+
var ToolOutcome = z15.enum(["pass", "fail", "skip"]);
|
|
1174
|
+
var ToolPlatform = z15.enum(["darwin", "win32", "linux"]);
|
|
1175
|
+
var ToolTransport = z15.enum(["in_process", "localhost", "relay", "agent"]);
|
|
1176
|
+
var ToolName = z15.string().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/);
|
|
1177
|
+
var ToolLevelResult = z15.strictObject({
|
|
1091
1178
|
tool: ToolName,
|
|
1092
1179
|
level: ToolLevel,
|
|
1093
1180
|
platform: ToolPlatform,
|
|
1094
1181
|
transport: ToolTransport,
|
|
1095
1182
|
outcome: ToolOutcome,
|
|
1096
1183
|
/** True when the caller sat on a different network from the device (a phone on cellular, CI). */
|
|
1097
|
-
remote_network:
|
|
1184
|
+
remote_network: z15.boolean(),
|
|
1098
1185
|
/** One line: what was asserted, or why it failed. Never a token, a file's contents or a path under a real home. */
|
|
1099
|
-
detail:
|
|
1186
|
+
detail: z15.string().max(500),
|
|
1100
1187
|
/** The harness that produced it, e.g. `matrx-desktop test/tools/programmatic.test.ts`. */
|
|
1101
|
-
suite:
|
|
1188
|
+
suite: z15.string().min(1).max(200),
|
|
1102
1189
|
/** The test case inside the suite. */
|
|
1103
|
-
test:
|
|
1104
|
-
run_at_ms:
|
|
1190
|
+
test: z15.string().min(1).max(300),
|
|
1191
|
+
run_at_ms: z15.int().min(0)
|
|
1105
1192
|
});
|
|
1106
|
-
var ToolResultsFile =
|
|
1107
|
-
schema:
|
|
1193
|
+
var ToolResultsFile = z15.strictObject({
|
|
1194
|
+
schema: z15.literal("matrx.tool-results.v1"),
|
|
1108
1195
|
/** The producing repo's commit (short or full SHA). */
|
|
1109
|
-
commit:
|
|
1110
|
-
results:
|
|
1196
|
+
commit: z15.string().min(4).max(64),
|
|
1197
|
+
results: z15.array(ToolLevelResult).max(1e4)
|
|
1111
1198
|
});
|
|
1112
1199
|
|
|
1113
1200
|
// src/schema/proc.ts
|
|
1114
|
-
import { z as
|
|
1115
|
-
var ProcSort =
|
|
1116
|
-
var ProcListParams =
|
|
1201
|
+
import { z as z16 } from "zod";
|
|
1202
|
+
var ProcSort = z16.enum(["cpu", "memory", "pid", "name"]);
|
|
1203
|
+
var ProcListParams = z16.strictObject({
|
|
1117
1204
|
/** Case-insensitive substring of the process name or its command line. */
|
|
1118
|
-
name:
|
|
1205
|
+
name: z16.string().min(1).max(128).optional(),
|
|
1119
1206
|
sort: ProcSort.default("cpu"),
|
|
1120
|
-
limit:
|
|
1207
|
+
limit: z16.int().min(1).max(500).default(50)
|
|
1121
1208
|
});
|
|
1122
|
-
var ProcInfo =
|
|
1123
|
-
pid:
|
|
1209
|
+
var ProcInfo = z16.strictObject({
|
|
1210
|
+
pid: z16.int().min(0),
|
|
1124
1211
|
/** Parent process id; null where the OS does not report it. */
|
|
1125
|
-
ppid:
|
|
1126
|
-
name:
|
|
1212
|
+
ppid: z16.int().min(0).nullable(),
|
|
1213
|
+
name: z16.string().max(256),
|
|
1127
1214
|
/** The command line, cut to 1024 characters. */
|
|
1128
|
-
command:
|
|
1215
|
+
command: z16.string().max(1024),
|
|
1129
1216
|
/** Share of one core, as `ps` and Task Manager report it; null where the OS does not say. */
|
|
1130
|
-
cpu_percent:
|
|
1217
|
+
cpu_percent: z16.number().min(0).nullable(),
|
|
1131
1218
|
memory_bytes: nonNegInt.nullable(),
|
|
1132
|
-
user:
|
|
1219
|
+
user: z16.string().max(128).nullable()
|
|
1133
1220
|
});
|
|
1134
|
-
var ProcListResult =
|
|
1135
|
-
processes:
|
|
1221
|
+
var ProcListResult = z16.strictObject({
|
|
1222
|
+
processes: z16.array(ProcInfo).max(500),
|
|
1136
1223
|
/** Processes that matched before `limit`. */
|
|
1137
1224
|
total: nonNegInt,
|
|
1138
|
-
truncated:
|
|
1225
|
+
truncated: z16.boolean()
|
|
1139
1226
|
});
|
|
1140
|
-
var ProcPortsParams =
|
|
1227
|
+
var ProcPortsParams = z16.strictObject({
|
|
1141
1228
|
/** Only this port. */
|
|
1142
|
-
port:
|
|
1229
|
+
port: z16.int().min(1).max(65535).optional()
|
|
1143
1230
|
});
|
|
1144
|
-
var ProcPort =
|
|
1145
|
-
port:
|
|
1146
|
-
protocol:
|
|
1231
|
+
var ProcPort = z16.strictObject({
|
|
1232
|
+
port: z16.int().min(1).max(65535),
|
|
1233
|
+
protocol: z16.enum(["tcp", "udp"]),
|
|
1147
1234
|
/** The local address it listens on ("127.0.0.1", "*", "::"). */
|
|
1148
|
-
address:
|
|
1149
|
-
pid:
|
|
1150
|
-
process:
|
|
1235
|
+
address: z16.string().max(64),
|
|
1236
|
+
pid: z16.int().min(0).nullable(),
|
|
1237
|
+
process: z16.string().max(256).nullable()
|
|
1151
1238
|
});
|
|
1152
|
-
var ProcPortsResult =
|
|
1153
|
-
var ProcKillParams =
|
|
1154
|
-
pid:
|
|
1239
|
+
var ProcPortsResult = z16.strictObject({ ports: z16.array(ProcPort).max(4e3) });
|
|
1240
|
+
var ProcKillParams = z16.strictObject({
|
|
1241
|
+
pid: z16.int().min(1),
|
|
1155
1242
|
/** Kill outright (SIGKILL; on Windows the same /F) instead of asking it to quit. */
|
|
1156
|
-
force:
|
|
1243
|
+
force: z16.boolean().default(false)
|
|
1157
1244
|
});
|
|
1158
|
-
var ProcKillResult =
|
|
1159
|
-
pid:
|
|
1160
|
-
signal:
|
|
1245
|
+
var ProcKillResult = z16.strictObject({
|
|
1246
|
+
pid: z16.int().min(1),
|
|
1247
|
+
signal: z16.enum(["SIGTERM", "SIGKILL"]),
|
|
1161
1248
|
/** True when the process was gone within 3 s. */
|
|
1162
|
-
exited:
|
|
1249
|
+
exited: z16.boolean()
|
|
1163
1250
|
});
|
|
1164
1251
|
|
|
1165
1252
|
// src/schema/clipboard.ts
|
|
1166
|
-
import { z as
|
|
1167
|
-
var ClipboardReadParams =
|
|
1168
|
-
var ClipboardReadResult =
|
|
1253
|
+
import { z as z17 } from "zod";
|
|
1254
|
+
var ClipboardReadParams = z17.strictObject({});
|
|
1255
|
+
var ClipboardReadResult = z17.strictObject({
|
|
1169
1256
|
/** The clipboard's text ("" when it holds none), cut to 1 MiB. */
|
|
1170
|
-
text:
|
|
1171
|
-
truncated:
|
|
1257
|
+
text: z17.string().max(1048576),
|
|
1258
|
+
truncated: z17.boolean()
|
|
1172
1259
|
});
|
|
1173
|
-
var ClipboardWriteParams =
|
|
1174
|
-
var ClipboardWriteResult =
|
|
1260
|
+
var ClipboardWriteParams = z17.strictObject({ text: z17.string().max(1048576) });
|
|
1261
|
+
var ClipboardWriteResult = z17.strictObject({ bytes: nonNegInt });
|
|
1175
1262
|
|
|
1176
1263
|
// src/schema/system.ts
|
|
1177
|
-
import { z as
|
|
1178
|
-
var SystemOpenUrlParams =
|
|
1264
|
+
import { z as z18 } from "zod";
|
|
1265
|
+
var SystemOpenUrlParams = z18.strictObject({
|
|
1179
1266
|
/** http, https or mailto; opened in the person's default app for it. */
|
|
1180
|
-
url:
|
|
1267
|
+
url: z18.string().min(1).max(4096)
|
|
1181
1268
|
});
|
|
1182
|
-
var SystemOpenUrlResult =
|
|
1183
|
-
var SystemOpenPathParams =
|
|
1269
|
+
var SystemOpenUrlResult = z18.strictObject({ url: z18.string().max(4096) });
|
|
1270
|
+
var SystemOpenPathParams = z18.strictObject({
|
|
1184
1271
|
path: AbsPath,
|
|
1185
1272
|
/** Show it in the file manager (Finder, Explorer) instead of opening it. */
|
|
1186
|
-
reveal:
|
|
1273
|
+
reveal: z18.boolean().default(false)
|
|
1187
1274
|
});
|
|
1188
|
-
var SystemOpenPathResult =
|
|
1189
|
-
var SystemNotifyParams =
|
|
1190
|
-
title:
|
|
1191
|
-
body:
|
|
1275
|
+
var SystemOpenPathResult = z18.strictObject({ path: AbsPath, revealed: z18.boolean() });
|
|
1276
|
+
var SystemNotifyParams = z18.strictObject({
|
|
1277
|
+
title: z18.string().min(1).max(128),
|
|
1278
|
+
body: z18.string().max(1024).default("")
|
|
1192
1279
|
});
|
|
1193
|
-
var SystemNotifyResult =
|
|
1280
|
+
var SystemNotifyResult = z18.strictObject({
|
|
1194
1281
|
/** False when this computer has no notification service to show it (a bare Linux box). */
|
|
1195
|
-
shown:
|
|
1282
|
+
shown: z18.boolean()
|
|
1196
1283
|
});
|
|
1197
1284
|
|
|
1198
1285
|
// src/schema/screen.ts
|
|
1199
|
-
import { z as
|
|
1200
|
-
var ScreenDisplay =
|
|
1286
|
+
import { z as z19 } from "zod";
|
|
1287
|
+
var ScreenDisplay = z19.strictObject({
|
|
1201
1288
|
/** The OS's display id; pass it to screen.capture. */
|
|
1202
1289
|
id: nonNegInt,
|
|
1203
|
-
name:
|
|
1290
|
+
name: z19.string().max(128),
|
|
1204
1291
|
/** Position and size in the OS's logical points (x and y may be negative left of or above the main display). */
|
|
1205
|
-
x:
|
|
1206
|
-
y:
|
|
1207
|
-
width:
|
|
1208
|
-
height:
|
|
1292
|
+
x: z19.int(),
|
|
1293
|
+
y: z19.int(),
|
|
1294
|
+
width: z19.int().min(1),
|
|
1295
|
+
height: z19.int().min(1),
|
|
1209
1296
|
/** Pixels per point (2 on a Retina display). */
|
|
1210
|
-
scale:
|
|
1211
|
-
primary:
|
|
1297
|
+
scale: z19.number().min(0.1).max(8),
|
|
1298
|
+
primary: z19.boolean()
|
|
1212
1299
|
});
|
|
1213
|
-
var ScreenListParams =
|
|
1214
|
-
var ScreenListResult =
|
|
1215
|
-
var ScreenCaptureParams =
|
|
1300
|
+
var ScreenListParams = z19.strictObject({});
|
|
1301
|
+
var ScreenListResult = z19.strictObject({ displays: z19.array(ScreenDisplay).max(32) });
|
|
1302
|
+
var ScreenCaptureParams = z19.strictObject({
|
|
1216
1303
|
/** The display (from screen.list); the primary display when absent. */
|
|
1217
1304
|
display_id: nonNegInt.optional(),
|
|
1218
|
-
format:
|
|
1305
|
+
format: z19.enum(["jpeg", "png"]).default("jpeg"),
|
|
1219
1306
|
/** Scale the picture down to at most this width in pixels (kept when already smaller). */
|
|
1220
|
-
max_width:
|
|
1307
|
+
max_width: z19.int().min(160).max(7680).default(1600)
|
|
1221
1308
|
});
|
|
1222
|
-
var ScreenCaptureResult =
|
|
1309
|
+
var ScreenCaptureResult = z19.strictObject({
|
|
1223
1310
|
display_id: nonNegInt,
|
|
1224
|
-
mime_type:
|
|
1225
|
-
width:
|
|
1226
|
-
height:
|
|
1311
|
+
mime_type: z19.enum(["image/jpeg", "image/png"]),
|
|
1312
|
+
width: z19.int().min(1),
|
|
1313
|
+
height: z19.int().min(1),
|
|
1227
1314
|
/** The display's full resolution in pixels, before scaling. */
|
|
1228
|
-
source_width:
|
|
1229
|
-
source_height:
|
|
1315
|
+
source_width: z19.int().min(1),
|
|
1316
|
+
source_height: z19.int().min(1),
|
|
1230
1317
|
/** The image, base64 (at most 6 MiB of text). */
|
|
1231
|
-
data_base64:
|
|
1318
|
+
data_base64: z19.string().max(6291456)
|
|
1232
1319
|
});
|
|
1233
1320
|
|
|
1234
1321
|
// src/schema/window.ts
|
|
1235
|
-
import { z as
|
|
1236
|
-
var WindowInfo =
|
|
1322
|
+
import { z as z20 } from "zod";
|
|
1323
|
+
var WindowInfo = z20.strictObject({
|
|
1237
1324
|
/** The OS's window handle (macOS window number, Windows HWND, X11 window id). */
|
|
1238
1325
|
id: nonNegInt,
|
|
1239
|
-
title:
|
|
1326
|
+
title: z20.string().max(512),
|
|
1240
1327
|
/** Position and size in logical points. */
|
|
1241
|
-
x:
|
|
1242
|
-
y:
|
|
1243
|
-
width:
|
|
1244
|
-
height:
|
|
1328
|
+
x: z20.int(),
|
|
1329
|
+
y: z20.int(),
|
|
1330
|
+
width: z20.int().min(0),
|
|
1331
|
+
height: z20.int().min(0),
|
|
1245
1332
|
/**
|
|
1246
1333
|
* The application that owns the window, by the name the OS shows people; absent when the OS does
|
|
1247
1334
|
* not say. Optional (never null, the schema rule) because it was added in protocol 1.7: an older
|
|
1248
1335
|
* app's answer has no such field (FIELDS_SINCE).
|
|
1249
1336
|
*/
|
|
1250
|
-
app:
|
|
1337
|
+
app: z20.string().max(256).optional(),
|
|
1251
1338
|
/** The owning process id; absent when the OS does not say. Added in protocol 1.7. */
|
|
1252
|
-
pid:
|
|
1339
|
+
pid: z20.int().min(0).optional()
|
|
1253
1340
|
});
|
|
1254
|
-
var WindowListParams =
|
|
1341
|
+
var WindowListParams = z20.strictObject({
|
|
1255
1342
|
/** Case-insensitive substring of the window title. */
|
|
1256
|
-
title:
|
|
1257
|
-
limit:
|
|
1343
|
+
title: z20.string().min(1).max(256).optional(),
|
|
1344
|
+
limit: z20.int().min(1).max(500).default(100)
|
|
1258
1345
|
});
|
|
1259
|
-
var WindowListResult =
|
|
1260
|
-
windows:
|
|
1346
|
+
var WindowListResult = z20.strictObject({
|
|
1347
|
+
windows: z20.array(WindowInfo).max(500),
|
|
1261
1348
|
total: nonNegInt,
|
|
1262
|
-
truncated:
|
|
1349
|
+
truncated: z20.boolean()
|
|
1263
1350
|
});
|
|
1264
|
-
var WindowFocusParams =
|
|
1265
|
-
var WindowFocusResult =
|
|
1266
|
-
var WindowMoveParams =
|
|
1351
|
+
var WindowFocusParams = z20.strictObject({ id: nonNegInt });
|
|
1352
|
+
var WindowFocusResult = z20.strictObject({ window: WindowInfo });
|
|
1353
|
+
var WindowMoveParams = z20.strictObject({
|
|
1267
1354
|
id: nonNegInt,
|
|
1268
1355
|
/** New top-left corner; unchanged when absent. */
|
|
1269
|
-
x:
|
|
1270
|
-
y:
|
|
1356
|
+
x: z20.int().optional(),
|
|
1357
|
+
y: z20.int().optional(),
|
|
1271
1358
|
/** New size; unchanged when absent. */
|
|
1272
|
-
width:
|
|
1273
|
-
height:
|
|
1359
|
+
width: z20.int().min(50).max(16384).optional(),
|
|
1360
|
+
height: z20.int().min(50).max(16384).optional()
|
|
1274
1361
|
});
|
|
1275
|
-
var WindowMoveResult =
|
|
1276
|
-
var WindowMinimizeParams =
|
|
1277
|
-
var WindowMinimizeResult =
|
|
1362
|
+
var WindowMoveResult = z20.strictObject({ window: WindowInfo });
|
|
1363
|
+
var WindowMinimizeParams = z20.strictObject({ id: nonNegInt });
|
|
1364
|
+
var WindowMinimizeResult = z20.strictObject({ id: nonNegInt });
|
|
1278
1365
|
|
|
1279
1366
|
// src/schema/input.ts
|
|
1280
|
-
import { z as
|
|
1281
|
-
var InputKey =
|
|
1367
|
+
import { z as z21 } from "zod";
|
|
1368
|
+
var InputKey = z21.enum([
|
|
1282
1369
|
"cmd",
|
|
1283
1370
|
"ctrl",
|
|
1284
1371
|
"alt",
|
|
@@ -1358,203 +1445,203 @@ var InputKey = z20.enum([
|
|
|
1358
1445
|
"backslash",
|
|
1359
1446
|
"grave"
|
|
1360
1447
|
]);
|
|
1361
|
-
var InputTypeTextParams =
|
|
1362
|
-
var InputTypeTextResult =
|
|
1363
|
-
var InputHotkeyParams =
|
|
1448
|
+
var InputTypeTextParams = z21.strictObject({ text: z21.string().min(1).max(1e4) });
|
|
1449
|
+
var InputTypeTextResult = z21.strictObject({ characters: z21.int().min(1) });
|
|
1450
|
+
var InputHotkeyParams = z21.strictObject({
|
|
1364
1451
|
/** Pressed together in order and released in reverse: ["cmd", "shift", "t"]. */
|
|
1365
|
-
keys:
|
|
1452
|
+
keys: z21.array(InputKey).min(1).max(6)
|
|
1366
1453
|
});
|
|
1367
|
-
var InputHotkeyResult =
|
|
1368
|
-
var InputPoint =
|
|
1369
|
-
var InputMouseMoveParams =
|
|
1454
|
+
var InputHotkeyResult = z21.strictObject({ keys: z21.array(InputKey) });
|
|
1455
|
+
var InputPoint = z21.strictObject({ x: z21.int(), y: z21.int() });
|
|
1456
|
+
var InputMouseMoveParams = z21.strictObject({
|
|
1370
1457
|
/** Screen position in logical points (the coordinates screen.list and window.list report). */
|
|
1371
|
-
x:
|
|
1372
|
-
y:
|
|
1458
|
+
x: z21.int(),
|
|
1459
|
+
y: z21.int()
|
|
1373
1460
|
});
|
|
1374
|
-
var InputMouseMoveResult =
|
|
1461
|
+
var InputMouseMoveResult = z21.strictObject({
|
|
1375
1462
|
/** Where the pointer is now, read back from the OS. */
|
|
1376
1463
|
position: InputPoint
|
|
1377
1464
|
});
|
|
1378
|
-
var InputMouseClickParams =
|
|
1465
|
+
var InputMouseClickParams = z21.strictObject({
|
|
1379
1466
|
/** Move here first; clicks where the pointer is when absent. */
|
|
1380
|
-
x:
|
|
1381
|
-
y:
|
|
1382
|
-
button:
|
|
1383
|
-
double:
|
|
1467
|
+
x: z21.int().optional(),
|
|
1468
|
+
y: z21.int().optional(),
|
|
1469
|
+
button: z21.enum(["left", "right", "middle"]).default("left"),
|
|
1470
|
+
double: z21.boolean().default(false)
|
|
1384
1471
|
});
|
|
1385
|
-
var InputMouseClickResult =
|
|
1472
|
+
var InputMouseClickResult = z21.strictObject({
|
|
1386
1473
|
position: InputPoint,
|
|
1387
|
-
button:
|
|
1388
|
-
double:
|
|
1474
|
+
button: z21.enum(["left", "right", "middle"]),
|
|
1475
|
+
double: z21.boolean()
|
|
1389
1476
|
});
|
|
1390
1477
|
|
|
1391
1478
|
// src/schema/power.ts
|
|
1392
|
-
import { z as
|
|
1393
|
-
var PowerStatusParams =
|
|
1394
|
-
var PowerStatusResult =
|
|
1395
|
-
has_battery:
|
|
1479
|
+
import { z as z22 } from "zod";
|
|
1480
|
+
var PowerStatusParams = z22.strictObject({});
|
|
1481
|
+
var PowerStatusResult = z22.strictObject({
|
|
1482
|
+
has_battery: z22.boolean(),
|
|
1396
1483
|
/** 0–100; null without a battery. */
|
|
1397
|
-
percent:
|
|
1398
|
-
charging:
|
|
1484
|
+
percent: z22.number().min(0).max(100).nullable(),
|
|
1485
|
+
charging: z22.boolean().nullable(),
|
|
1399
1486
|
/** On wall power; null where the OS does not say. */
|
|
1400
|
-
plugged_in:
|
|
1487
|
+
plugged_in: z22.boolean().nullable(),
|
|
1401
1488
|
/** Minutes of battery left; null when charging, unknown or without a battery. */
|
|
1402
1489
|
minutes_left: nonNegInt.nullable(),
|
|
1403
1490
|
/** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
|
|
1404
1491
|
awake_until_ms: epochMs.nullable()
|
|
1405
1492
|
});
|
|
1406
|
-
var PowerPreventSleepParams =
|
|
1493
|
+
var PowerPreventSleepParams = z22.strictObject({
|
|
1407
1494
|
/** Keep the computer awake this long; 0 lets it sleep again now. */
|
|
1408
|
-
seconds:
|
|
1495
|
+
seconds: z22.int().min(0).max(86400),
|
|
1409
1496
|
/** Shown where the OS lists what keeps it awake. */
|
|
1410
|
-
reason:
|
|
1497
|
+
reason: z22.string().min(1).max(128).default("Matrx 2 is working")
|
|
1411
1498
|
});
|
|
1412
|
-
var PowerPreventSleepResult =
|
|
1499
|
+
var PowerPreventSleepResult = z22.strictObject({
|
|
1413
1500
|
/** When it may sleep again; null after seconds 0. */
|
|
1414
1501
|
awake_until_ms: epochMs.nullable()
|
|
1415
1502
|
});
|
|
1416
1503
|
|
|
1417
1504
|
// src/schema/resources.ts
|
|
1418
|
-
import { z as
|
|
1419
|
-
var ResourcesDisk =
|
|
1505
|
+
import { z as z23 } from "zod";
|
|
1506
|
+
var ResourcesDisk = z23.strictObject({
|
|
1420
1507
|
/** Where it is mounted ("/", "C:"). */
|
|
1421
|
-
mount:
|
|
1508
|
+
mount: z23.string().max(512),
|
|
1422
1509
|
/** The file system ("apfs", "NTFS", "ext4"). */
|
|
1423
|
-
fs:
|
|
1510
|
+
fs: z23.string().max(64),
|
|
1424
1511
|
size_bytes: nonNegInt,
|
|
1425
1512
|
used_bytes: nonNegInt,
|
|
1426
1513
|
available_bytes: nonNegInt
|
|
1427
1514
|
});
|
|
1428
|
-
var ResourcesSnapshotParams =
|
|
1429
|
-
var ResourcesSnapshotResult =
|
|
1430
|
-
cpu:
|
|
1515
|
+
var ResourcesSnapshotParams = z23.strictObject({});
|
|
1516
|
+
var ResourcesSnapshotResult = z23.strictObject({
|
|
1517
|
+
cpu: z23.strictObject({
|
|
1431
1518
|
/** Busy share of all cores, 0–100, measured now. */
|
|
1432
|
-
percent:
|
|
1433
|
-
cores:
|
|
1519
|
+
percent: z23.number().min(0).max(100),
|
|
1520
|
+
cores: z23.int().min(1),
|
|
1434
1521
|
/** 1, 5 and 15 minute load averages; null on Windows. */
|
|
1435
|
-
load:
|
|
1522
|
+
load: z23.array(z23.number().min(0)).length(3).nullable()
|
|
1436
1523
|
}),
|
|
1437
|
-
memory:
|
|
1438
|
-
swap:
|
|
1439
|
-
disks:
|
|
1524
|
+
memory: z23.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
|
|
1525
|
+
swap: z23.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
|
|
1526
|
+
disks: z23.array(ResourcesDisk).max(64),
|
|
1440
1527
|
uptime_seconds: nonNegInt
|
|
1441
1528
|
});
|
|
1442
1529
|
|
|
1443
1530
|
// src/schema/audio.ts
|
|
1444
|
-
import { z as
|
|
1445
|
-
var AudioDevice =
|
|
1531
|
+
import { z as z24 } from "zod";
|
|
1532
|
+
var AudioDevice = z24.strictObject({
|
|
1446
1533
|
/** The OS's name for it, as audio.record takes it. */
|
|
1447
|
-
id:
|
|
1448
|
-
name:
|
|
1449
|
-
default:
|
|
1534
|
+
id: z24.string().min(1).max(256),
|
|
1535
|
+
name: z24.string().max(256),
|
|
1536
|
+
default: z24.boolean()
|
|
1450
1537
|
});
|
|
1451
|
-
var AudioDevicesParams =
|
|
1452
|
-
var AudioDevicesResult =
|
|
1453
|
-
inputs:
|
|
1454
|
-
outputs:
|
|
1538
|
+
var AudioDevicesParams = z24.strictObject({});
|
|
1539
|
+
var AudioDevicesResult = z24.strictObject({
|
|
1540
|
+
inputs: z24.array(AudioDevice).max(64),
|
|
1541
|
+
outputs: z24.array(AudioDevice).max(64)
|
|
1455
1542
|
});
|
|
1456
|
-
var AudioRecordParams =
|
|
1457
|
-
seconds:
|
|
1543
|
+
var AudioRecordParams = z24.strictObject({
|
|
1544
|
+
seconds: z24.number().min(0.5).max(600),
|
|
1458
1545
|
/** The microphone (from audio.devices); the default input when absent. */
|
|
1459
|
-
device_id:
|
|
1546
|
+
device_id: z24.string().min(1).max(256).optional(),
|
|
1460
1547
|
/** Where the WAV file goes; a new file in the temp folder when absent. */
|
|
1461
1548
|
path: AbsPath.optional()
|
|
1462
1549
|
});
|
|
1463
|
-
var AudioRecordResult =
|
|
1550
|
+
var AudioRecordResult = z24.strictObject({
|
|
1464
1551
|
path: AbsPath,
|
|
1465
|
-
seconds:
|
|
1552
|
+
seconds: z24.number().min(0),
|
|
1466
1553
|
bytes: nonNegInt,
|
|
1467
1554
|
/** Loudest sample, 0–1: 0 means the device gave silence. */
|
|
1468
|
-
peak:
|
|
1555
|
+
peak: z24.number().min(0).max(1)
|
|
1469
1556
|
});
|
|
1470
|
-
var AudioPlayParams =
|
|
1471
|
-
var AudioPlayResult =
|
|
1557
|
+
var AudioPlayParams = z24.strictObject({ path: AbsPath });
|
|
1558
|
+
var AudioPlayResult = z24.strictObject({ path: AbsPath, seconds: z24.number().min(0) });
|
|
1472
1559
|
|
|
1473
1560
|
// src/schema/fs-watch.ts
|
|
1474
|
-
import { z as
|
|
1475
|
-
var FsWatchId =
|
|
1476
|
-
var FsWatchStartParams =
|
|
1561
|
+
import { z as z25 } from "zod";
|
|
1562
|
+
var FsWatchId = z25.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
|
|
1563
|
+
var FsWatchStartParams = z25.strictObject({
|
|
1477
1564
|
path: AbsPath,
|
|
1478
|
-
recursive:
|
|
1565
|
+
recursive: z25.boolean().default(true),
|
|
1479
1566
|
/** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
|
|
1480
|
-
ignore:
|
|
1567
|
+
ignore: z25.array(z25.string().max(256)).max(64).default([])
|
|
1481
1568
|
});
|
|
1482
|
-
var FsWatchStartResult =
|
|
1569
|
+
var FsWatchStartResult = z25.strictObject({
|
|
1483
1570
|
watch_id: FsWatchId,
|
|
1484
1571
|
path: AbsPath,
|
|
1485
1572
|
/** The watch ends by itself if nobody reads it for 30 minutes. */
|
|
1486
1573
|
expires_at_ms: epochMs
|
|
1487
1574
|
});
|
|
1488
|
-
var FsWatchEventsParams =
|
|
1575
|
+
var FsWatchEventsParams = z25.strictObject({
|
|
1489
1576
|
watch_id: FsWatchId,
|
|
1490
1577
|
/** Wait up to this long for a first change when none is waiting (0 answers at once). */
|
|
1491
|
-
wait_ms:
|
|
1578
|
+
wait_ms: z25.int().min(0).max(25e3).default(0)
|
|
1492
1579
|
});
|
|
1493
|
-
var FsWatchEventsResult =
|
|
1580
|
+
var FsWatchEventsResult = z25.strictObject({
|
|
1494
1581
|
/** What changed since the last read, oldest first; re-checked against the disk when read. */
|
|
1495
|
-
changes:
|
|
1582
|
+
changes: z25.array(FsChange).max(1e3),
|
|
1496
1583
|
/** Changes were dropped (more than 1000 waited): list the folder again. */
|
|
1497
|
-
overflow:
|
|
1584
|
+
overflow: z25.boolean(),
|
|
1498
1585
|
expires_at_ms: epochMs
|
|
1499
1586
|
});
|
|
1500
|
-
var FsWatchStopParams =
|
|
1501
|
-
var FsWatchStopResult =
|
|
1587
|
+
var FsWatchStopParams = z25.strictObject({ watch_id: FsWatchId });
|
|
1588
|
+
var FsWatchStopResult = z25.strictObject({ watch_id: FsWatchId });
|
|
1502
1589
|
|
|
1503
1590
|
// src/schema/exec-job.ts
|
|
1504
|
-
import { z as
|
|
1505
|
-
var ExecJobId =
|
|
1506
|
-
var ExecJobStartParams =
|
|
1507
|
-
command:
|
|
1591
|
+
import { z as z26 } from "zod";
|
|
1592
|
+
var ExecJobId = z26.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
|
|
1593
|
+
var ExecJobStartParams = z26.strictObject({
|
|
1594
|
+
command: z26.string().min(1).max(131072),
|
|
1508
1595
|
/** The folder it runs in; the home folder when absent. */
|
|
1509
1596
|
cwd: AbsPath.optional(),
|
|
1510
|
-
env:
|
|
1597
|
+
env: z26.record(z26.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z26.string().max(32768)).optional()
|
|
1511
1598
|
});
|
|
1512
|
-
var ExecJobStartResult =
|
|
1513
|
-
var ExecJobOutputParams =
|
|
1599
|
+
var ExecJobStartResult = z26.strictObject({ job_id: ExecJobId, pid: z26.int().min(1), cwd: AbsPath });
|
|
1600
|
+
var ExecJobOutputParams = z26.strictObject({
|
|
1514
1601
|
job_id: ExecJobId,
|
|
1515
1602
|
/** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
|
|
1516
1603
|
offset: nonNegInt.default(0),
|
|
1517
1604
|
/** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
|
|
1518
|
-
wait_ms:
|
|
1519
|
-
max_bytes:
|
|
1605
|
+
wait_ms: z26.int().min(0).max(25e3).default(0),
|
|
1606
|
+
max_bytes: z26.int().min(1024).max(1048576).default(65536)
|
|
1520
1607
|
});
|
|
1521
|
-
var ExecJobOutputResult =
|
|
1608
|
+
var ExecJobOutputResult = z26.strictObject({
|
|
1522
1609
|
/** stdout and stderr interleaved as they arrived (UTF-8). */
|
|
1523
|
-
output:
|
|
1610
|
+
output: z26.string(),
|
|
1524
1611
|
next_offset: nonNegInt,
|
|
1525
1612
|
/** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
|
|
1526
1613
|
dropped_bytes: nonNegInt,
|
|
1527
|
-
running:
|
|
1528
|
-
exit_code:
|
|
1614
|
+
running: z26.boolean(),
|
|
1615
|
+
exit_code: z26.int().nullable()
|
|
1529
1616
|
});
|
|
1530
|
-
var ExecJobStopParams =
|
|
1617
|
+
var ExecJobStopParams = z26.strictObject({
|
|
1531
1618
|
job_id: ExecJobId,
|
|
1532
1619
|
/** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
|
|
1533
|
-
force:
|
|
1620
|
+
force: z26.boolean().default(false)
|
|
1534
1621
|
});
|
|
1535
|
-
var ExecJobStopResult =
|
|
1536
|
-
var ExecJobInfo =
|
|
1622
|
+
var ExecJobStopResult = z26.strictObject({ job_id: ExecJobId, exited: z26.boolean(), exit_code: z26.int().nullable() });
|
|
1623
|
+
var ExecJobInfo = z26.strictObject({
|
|
1537
1624
|
job_id: ExecJobId,
|
|
1538
|
-
command:
|
|
1539
|
-
pid:
|
|
1625
|
+
command: z26.string().max(1024),
|
|
1626
|
+
pid: z26.int().min(1),
|
|
1540
1627
|
cwd: AbsPath,
|
|
1541
|
-
running:
|
|
1542
|
-
exit_code:
|
|
1628
|
+
running: z26.boolean(),
|
|
1629
|
+
exit_code: z26.int().nullable(),
|
|
1543
1630
|
started_at_ms: epochMs,
|
|
1544
1631
|
output_bytes: nonNegInt
|
|
1545
1632
|
});
|
|
1546
|
-
var ExecJobListParams =
|
|
1547
|
-
var ExecJobListResult =
|
|
1633
|
+
var ExecJobListParams = z26.strictObject({});
|
|
1634
|
+
var ExecJobListResult = z26.strictObject({ jobs: z26.array(ExecJobInfo).max(64) });
|
|
1548
1635
|
|
|
1549
1636
|
// src/schema/coding.ts
|
|
1550
|
-
import { z as
|
|
1551
|
-
var CodingServiceCredentials =
|
|
1552
|
-
access_token:
|
|
1553
|
-
user_id:
|
|
1637
|
+
import { z as z27 } from "zod";
|
|
1638
|
+
var CodingServiceCredentials = z27.strictObject({
|
|
1639
|
+
access_token: z27.string().min(16).max(16384),
|
|
1640
|
+
user_id: z27.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}$/),
|
|
1554
1641
|
/** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
|
|
1555
|
-
server_url:
|
|
1642
|
+
server_url: z27.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
|
|
1556
1643
|
});
|
|
1557
|
-
var CodingHistoryBlocked =
|
|
1644
|
+
var CodingHistoryBlocked = z27.enum([
|
|
1558
1645
|
"signed_out",
|
|
1559
1646
|
"offline",
|
|
1560
1647
|
"organization_required",
|
|
@@ -1562,11 +1649,11 @@ var CodingHistoryBlocked = z26.enum([
|
|
|
1562
1649
|
"cloud_list_unavailable",
|
|
1563
1650
|
"history_too_large"
|
|
1564
1651
|
]);
|
|
1565
|
-
var CodingHistoryFailure =
|
|
1566
|
-
session_id:
|
|
1567
|
-
reason:
|
|
1652
|
+
var CodingHistoryFailure = z27.strictObject({
|
|
1653
|
+
session_id: z27.string().max(64),
|
|
1654
|
+
reason: z27.string().max(300)
|
|
1568
1655
|
});
|
|
1569
|
-
var CodingHistoryRun =
|
|
1656
|
+
var CodingHistoryRun = z27.strictObject({
|
|
1570
1657
|
/** Claude Code sessions found on this computer. */
|
|
1571
1658
|
local_sessions: nonNegInt,
|
|
1572
1659
|
/** Of those, already complete in AI Matrx. */
|
|
@@ -1581,39 +1668,39 @@ var CodingHistoryRun = z26.strictObject({
|
|
|
1581
1668
|
/** Changed while being read; a later run takes them. */
|
|
1582
1669
|
changed: nonNegInt,
|
|
1583
1670
|
failed: nonNegInt,
|
|
1584
|
-
failures:
|
|
1671
|
+
failures: z27.array(CodingHistoryFailure).max(20),
|
|
1585
1672
|
/** Candidates not reached yet. */
|
|
1586
1673
|
remaining: nonNegInt,
|
|
1587
1674
|
/** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
|
|
1588
|
-
summary:
|
|
1675
|
+
summary: z27.string().max(400)
|
|
1589
1676
|
});
|
|
1590
|
-
var CodingHistoryStep =
|
|
1677
|
+
var CodingHistoryStep = z27.strictObject({
|
|
1591
1678
|
/** Null when the run could not start (blocked before a plan existed). */
|
|
1592
|
-
plan_id:
|
|
1593
|
-
finished:
|
|
1679
|
+
plan_id: z27.string().regex(/^[0-9a-f]{32}$/).nullable(),
|
|
1680
|
+
finished: z27.boolean(),
|
|
1594
1681
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1595
1682
|
run: CodingHistoryRun
|
|
1596
1683
|
});
|
|
1597
|
-
var CodingPlanMissingParams =
|
|
1598
|
-
var CodingImportNextParams =
|
|
1599
|
-
plan_id:
|
|
1684
|
+
var CodingPlanMissingParams = z27.strictObject({ credentials: CodingServiceCredentials.nullable() });
|
|
1685
|
+
var CodingImportNextParams = z27.strictObject({
|
|
1686
|
+
plan_id: z27.string().regex(/^[0-9a-f]{32}$/),
|
|
1600
1687
|
credentials: CodingServiceCredentials.nullable()
|
|
1601
1688
|
});
|
|
1602
|
-
var CodingServiceProgress =
|
|
1603
|
-
phase:
|
|
1689
|
+
var CodingServiceProgress = z27.strictObject({
|
|
1690
|
+
phase: z27.enum(["checking", "importing"]),
|
|
1604
1691
|
done: nonNegInt,
|
|
1605
1692
|
total: nonNegInt
|
|
1606
1693
|
});
|
|
1607
|
-
var CodingHistoryImportMissingParams =
|
|
1608
|
-
var CodingHistoryImportMissingResult =
|
|
1609
|
-
state:
|
|
1694
|
+
var CodingHistoryImportMissingParams = z27.strictObject({});
|
|
1695
|
+
var CodingHistoryImportMissingResult = z27.strictObject({
|
|
1696
|
+
state: z27.enum(["done", "blocked", "cancelled"]),
|
|
1610
1697
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1611
1698
|
run: CodingHistoryRun,
|
|
1612
1699
|
elapsed_ms: nonNegInt
|
|
1613
1700
|
});
|
|
1614
|
-
var CodingHistoryProgressEvent =
|
|
1701
|
+
var CodingHistoryProgressEvent = z27.strictObject({
|
|
1615
1702
|
request_id: RequestId,
|
|
1616
|
-
phase:
|
|
1703
|
+
phase: z27.enum(["checking", "importing"]),
|
|
1617
1704
|
/** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
|
|
1618
1705
|
done: nonNegInt,
|
|
1619
1706
|
total: nonNegInt,
|
|
@@ -1667,6 +1754,17 @@ var OPS = {
|
|
|
1667
1754
|
"apps.projects.update": { params: AppsProjectsUpdateParams, result: AppsProjectsUpdateResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1668
1755
|
"apps.projects.copy": { params: AppsProjectsCopyParams, result: AppsProjectsCopyResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1669
1756
|
"apps.projects.unfile": { params: AppsProjectsUnfileParams, result: AppsProjectsUnfileResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1757
|
+
// 1.10: the app's windows and accounts (usage by vote, weekly resets, window actions), project move/create, Refresh pins.
|
|
1758
|
+
"apps.windows.list": { params: AppsWindowsListParams, result: AppsWindowsListResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1759
|
+
"apps.windows.open": { params: AppsWindowsOpenParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1760
|
+
"apps.windows.reload": { params: AppsWindowsReloadParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1761
|
+
"apps.windows.restart": { params: AppsWindowsRestartParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1762
|
+
"apps.windows.refresh_usage": { params: AppsWindowsRefreshUsageParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1763
|
+
"apps.accounts.usage": { params: AppsAccountsUsageParams, result: AppsAccountsUsageResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1764
|
+
"apps.accounts.resets": { params: AppsAccountsResetsParams, result: AppsAccountsResetsResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1765
|
+
"apps.projects.move": { params: AppsProjectsMoveParams, result: AppsProjectsMoveResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1766
|
+
"apps.projects.create": { params: AppsProjectsCreateParams, result: AppsProjectsCreateResult, kind: "unary", since: "1.10", errors: ["INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1767
|
+
"apps.projects.import_pins": { params: AppsProjectsImportPinsParams, result: AppsProjectsImportPinsResult, kind: "unary", since: "1.10", errors: ["CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1670
1768
|
"proc.list": { params: ProcListParams, result: ProcListResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1671
1769
|
"proc.ports": { params: ProcPortsParams, result: ProcPortsResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1672
1770
|
"proc.kill": { params: ProcKillParams, result: ProcKillResult, kind: "unary", since: "1.3", errors: ["NOT_FOUND", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "INTERNAL"] },
|
|
@@ -1999,7 +2097,28 @@ var NAMED_SCHEMAS = {
|
|
|
1999
2097
|
AppsProjectsUpdateParams,
|
|
2000
2098
|
AppsProjectsUpdateResult,
|
|
2001
2099
|
AppsProjectsCopyParams,
|
|
2002
|
-
AppsProjectsCopyResult
|
|
2100
|
+
AppsProjectsCopyResult,
|
|
2101
|
+
ChatFamily,
|
|
2102
|
+
AppWindowInfo,
|
|
2103
|
+
AccountUsage,
|
|
2104
|
+
AccountReset,
|
|
2105
|
+
AppsWindowsListParams,
|
|
2106
|
+
AppsWindowsListResult,
|
|
2107
|
+
AppsAccountsUsageParams,
|
|
2108
|
+
AppsAccountsUsageResult,
|
|
2109
|
+
AppsAccountsResetsParams,
|
|
2110
|
+
AppsAccountsResetsResult,
|
|
2111
|
+
AppsWindowActionResult,
|
|
2112
|
+
AppsWindowsOpenParams,
|
|
2113
|
+
AppsWindowsReloadParams,
|
|
2114
|
+
AppsWindowsRestartParams,
|
|
2115
|
+
AppsWindowsRefreshUsageParams,
|
|
2116
|
+
AppsProjectsMoveParams,
|
|
2117
|
+
AppsProjectsMoveResult,
|
|
2118
|
+
AppsProjectsCreateParams,
|
|
2119
|
+
AppsProjectsCreateResult,
|
|
2120
|
+
AppsProjectsImportPinsParams,
|
|
2121
|
+
AppsProjectsImportPinsResult
|
|
2003
2122
|
};
|
|
2004
2123
|
|
|
2005
2124
|
// src/versioning.ts
|
|
@@ -2009,7 +2128,7 @@ var FIELDS_SINCE = {
|
|
|
2009
2128
|
"RelayCallResponse|0": { protocol_version: "1.1" },
|
|
2010
2129
|
"RelayCallResponse|1": { protocol_version: "1.1" },
|
|
2011
2130
|
WindowInfo: { app: "1.7", pid: "1.7" },
|
|
2012
|
-
AppsChatsListResult: { updating: "1.9", live: "1.9" }
|
|
2131
|
+
AppsChatsListResult: { updating: "1.9", live: "1.9", families: "1.10" }
|
|
2013
2132
|
};
|
|
2014
2133
|
var NULL_SINCE = {
|
|
2015
2134
|
"RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
|
|
@@ -2106,7 +2225,7 @@ function forPeer(op, part, value, version) {
|
|
|
2106
2225
|
var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys()];
|
|
2107
2226
|
|
|
2108
2227
|
// src/contract.ts
|
|
2109
|
-
var CONTRACT_SHA256 = "
|
|
2228
|
+
var CONTRACT_SHA256 = "f1891d7e5c64c11112bb7baf5db06bd293daccff85a7f5adcdf760b2bbb92bda";
|
|
2110
2229
|
|
|
2111
2230
|
// src/close-policy.ts
|
|
2112
2231
|
var CLOSE_RULES = {
|
|
@@ -2448,6 +2567,8 @@ function renderToolStatusMarkdown(status) {
|
|
|
2448
2567
|
}
|
|
2449
2568
|
export {
|
|
2450
2569
|
AbsPath,
|
|
2570
|
+
AccountReset,
|
|
2571
|
+
AccountUsage,
|
|
2451
2572
|
AppFeatureStatus,
|
|
2452
2573
|
AppInfo,
|
|
2453
2574
|
AppKey,
|
|
@@ -2456,6 +2577,11 @@ export {
|
|
|
2456
2577
|
AppProfileLocator,
|
|
2457
2578
|
AppSupport,
|
|
2458
2579
|
AppUsageReading,
|
|
2580
|
+
AppWindowInfo,
|
|
2581
|
+
AppsAccountsResetsParams,
|
|
2582
|
+
AppsAccountsResetsResult,
|
|
2583
|
+
AppsAccountsUsageParams,
|
|
2584
|
+
AppsAccountsUsageResult,
|
|
2459
2585
|
AppsChatsChangedEvent,
|
|
2460
2586
|
AppsChatsListParams,
|
|
2461
2587
|
AppsChatsListResult,
|
|
@@ -2478,14 +2604,27 @@ export {
|
|
|
2478
2604
|
AppsProfilesSaveResult,
|
|
2479
2605
|
AppsProjectsCopyParams,
|
|
2480
2606
|
AppsProjectsCopyResult,
|
|
2607
|
+
AppsProjectsCreateParams,
|
|
2608
|
+
AppsProjectsCreateResult,
|
|
2481
2609
|
AppsProjectsFileManyParams,
|
|
2482
2610
|
AppsProjectsFileManyResult,
|
|
2483
2611
|
AppsProjectsFileParams,
|
|
2484
2612
|
AppsProjectsFileResult,
|
|
2613
|
+
AppsProjectsImportPinsParams,
|
|
2614
|
+
AppsProjectsImportPinsResult,
|
|
2615
|
+
AppsProjectsMoveParams,
|
|
2616
|
+
AppsProjectsMoveResult,
|
|
2485
2617
|
AppsProjectsUnfileParams,
|
|
2486
2618
|
AppsProjectsUnfileResult,
|
|
2487
2619
|
AppsProjectsUpdateParams,
|
|
2488
2620
|
AppsProjectsUpdateResult,
|
|
2621
|
+
AppsWindowActionResult,
|
|
2622
|
+
AppsWindowsListParams,
|
|
2623
|
+
AppsWindowsListResult,
|
|
2624
|
+
AppsWindowsOpenParams,
|
|
2625
|
+
AppsWindowsRefreshUsageParams,
|
|
2626
|
+
AppsWindowsReloadParams,
|
|
2627
|
+
AppsWindowsRestartParams,
|
|
2489
2628
|
AudioDevice,
|
|
2490
2629
|
AudioDevicesParams,
|
|
2491
2630
|
AudioDevicesResult,
|
|
@@ -2498,6 +2637,7 @@ export {
|
|
|
2498
2637
|
CLOSE_RULES,
|
|
2499
2638
|
CONTRACT_SHA256,
|
|
2500
2639
|
CancelMsg,
|
|
2640
|
+
ChatFamily,
|
|
2501
2641
|
ChatHidden,
|
|
2502
2642
|
ChatId,
|
|
2503
2643
|
ChatLastUse,
|