@ai-matrx/desktop-protocol 0.21.38 → 0.21.39
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 +5 -0
- package/dist/client.cjs +584 -499
- 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 +584 -499
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +1441 -1336
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +174 -6
- package/dist/index.d.ts +174 -6
- package/dist/index.js +1441 -1336
- package/dist/index.js.map +1 -1
- package/dist/{models-zxDeNnGE.d.cts → models-Ut2nuRzV.d.cts} +233 -1
- package/dist/{models-zxDeNnGE.d.ts → models-Ut2nuRzV.d.ts} +233 -1
- package/dist/react.d.cts +84 -1
- package/dist/react.d.ts +84 -1
- package/generated/desktop-protocol.schema.json +508 -1
- package/package.json +2 -2
package/dist/client.js
CHANGED
|
@@ -112,7 +112,7 @@ import { z as z2 } from "zod";
|
|
|
112
112
|
import { z } from "zod";
|
|
113
113
|
import { UUID_SHAPE_PATTERN } from "@ai-matrx/kit/uuid";
|
|
114
114
|
var PROTOCOL_MAJOR = 1;
|
|
115
|
-
var PROTOCOL_MINOR =
|
|
115
|
+
var PROTOCOL_MINOR = 47;
|
|
116
116
|
var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
|
|
117
117
|
var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
|
|
118
118
|
var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
|
|
@@ -3341,22 +3341,104 @@ var AppsWindowsUpdateAndReopenResult = z31.strictObject({
|
|
|
3341
3341
|
installed_version: z31.string().max(64).nullable()
|
|
3342
3342
|
});
|
|
3343
3343
|
|
|
3344
|
-
// src/schema/
|
|
3344
|
+
// src/schema/apps-instances.ts
|
|
3345
3345
|
import { z as z32 } from "zod";
|
|
3346
|
-
var
|
|
3347
|
-
var
|
|
3348
|
-
|
|
3349
|
-
|
|
3346
|
+
var InstanceStatus = z32.enum(["open", "closed", "wrong_account", "update_waiting", "folder_missing"]);
|
|
3347
|
+
var AppInstall = z32.strictObject({
|
|
3348
|
+
location: z32.string().max(1024),
|
|
3349
|
+
version: z32.string().max(80).nullable()
|
|
3350
|
+
});
|
|
3351
|
+
var AppInstance = z32.strictObject({
|
|
3352
|
+
app_key: AppKey,
|
|
3353
|
+
/** "main", or the instance's name: the same key every window action takes. */
|
|
3354
|
+
key: ChatPlace,
|
|
3355
|
+
main: z32.boolean(),
|
|
3356
|
+
status: InstanceStatus,
|
|
3357
|
+
running: z32.boolean(),
|
|
3358
|
+
/** Its process while open. */
|
|
3359
|
+
pid: nonNegInt.nullable(),
|
|
3360
|
+
/** Its data folder on this device. */
|
|
3361
|
+
folder: z32.string().max(1024).nullable(),
|
|
3362
|
+
folder_exists: z32.boolean(),
|
|
3363
|
+
/** The provider's id of the account signed in there now, when the app records it. */
|
|
3364
|
+
account_id: z32.string().max(200).nullable(),
|
|
3365
|
+
/** That account's email, when known. */
|
|
3366
|
+
account: z32.string().max(320).nullable(),
|
|
3367
|
+
/** The account this instance is kept for (null for main: it signs into any). */
|
|
3368
|
+
meant_for: z32.string().max(320).nullable(),
|
|
3369
|
+
/** The version running in it now, or the one it last ran when closed. */
|
|
3370
|
+
version: z32.string().max(80).nullable(),
|
|
3371
|
+
installed_version: z32.string().max(80).nullable(),
|
|
3372
|
+
/** Chats open in it now. */
|
|
3373
|
+
open_chats: nonNegInt,
|
|
3374
|
+
launched_ms: epochMs.nullable(),
|
|
3375
|
+
quit_ms: epochMs.nullable(),
|
|
3376
|
+
first_launch_ms: epochMs.nullable()
|
|
3377
|
+
});
|
|
3378
|
+
var AccountResetSource = z32.enum(["app", "usage_history", "your_list"]);
|
|
3379
|
+
var AccountGap = z32.enum(["email", "plan", "usage"]);
|
|
3380
|
+
var AppAccount = z32.strictObject({
|
|
3381
|
+
app_key: AppKey,
|
|
3382
|
+
/** The provider's own account id (Claude's account uuid, ChatGPT's account id); `org:<uuid>` when only its organization is known. */
|
|
3383
|
+
account_id: z32.string().max(200),
|
|
3384
|
+
email: z32.string().max(320).nullable(),
|
|
3385
|
+
plan: z32.string().max(80).nullable(),
|
|
3386
|
+
/** The provider organizations its readings are filed under. */
|
|
3387
|
+
orgs: z32.array(z32.string().max(80)).max(20),
|
|
3388
|
+
/** Weekly use in percent; 0 once the week reset after the reading. */
|
|
3389
|
+
weekly: z32.number().nullable(),
|
|
3390
|
+
weekly_reset_since: z32.boolean(),
|
|
3391
|
+
weekly_resets_at_ms: epochMs.nullable(),
|
|
3392
|
+
weekly_reset_source: AccountResetSource.nullable(),
|
|
3393
|
+
/** 5-hour use in percent; 0 once the 5-hour window passed after the reading. */
|
|
3394
|
+
five_hour: z32.number().nullable(),
|
|
3395
|
+
five_hour_reset_since: z32.boolean(),
|
|
3396
|
+
/** The latest the 5-hour window resets. */
|
|
3397
|
+
five_hour_resets_at_ms: epochMs.nullable(),
|
|
3398
|
+
/** Claude: extra-usage spend as a percent of its cap. */
|
|
3399
|
+
extra_usage: z32.number().nullable(),
|
|
3400
|
+
/** Codex: the credit balance. */
|
|
3401
|
+
credits: z32.number().nullable(),
|
|
3402
|
+
/** When the newest reading was taken, and in which instance. */
|
|
3403
|
+
read_at_ms: epochMs.nullable(),
|
|
3404
|
+
read_in: ChatPlace.nullable(),
|
|
3405
|
+
/** Instances signed into it now. */
|
|
3406
|
+
instances: z32.array(ChatPlace).max(200),
|
|
3407
|
+
first_seen_ms: epochMs.nullable(),
|
|
3408
|
+
last_seen_ms: epochMs.nullable(),
|
|
3409
|
+
missing: z32.array(AccountGap).max(3)
|
|
3410
|
+
});
|
|
3411
|
+
var AppsInstancesListParams = z32.strictObject({ app_key: AppKey });
|
|
3412
|
+
var AppsInstancesListResult = z32.strictObject({
|
|
3413
|
+
app_key: AppKey,
|
|
3414
|
+
install: AppInstall.nullable(),
|
|
3415
|
+
instances: z32.array(AppInstance).max(200),
|
|
3416
|
+
/** The rows are right but something around them failed; shown, never hidden. */
|
|
3417
|
+
problem: z32.string().max(400).optional()
|
|
3418
|
+
});
|
|
3419
|
+
var AppsAccountsListParams = z32.strictObject({ app_key: AppKey });
|
|
3420
|
+
var AppsAccountsListResult = z32.strictObject({
|
|
3421
|
+
app_key: AppKey,
|
|
3422
|
+
accounts: z32.array(AppAccount).max(500),
|
|
3423
|
+
problem: z32.string().max(400).optional()
|
|
3424
|
+
});
|
|
3425
|
+
|
|
3426
|
+
// src/schema/browser.ts
|
|
3427
|
+
import { z as z33 } from "zod";
|
|
3428
|
+
var BrowserClientInstance = z33.string().min(1).max(64).regex(/^[A-Za-z0-9_.:-]+$/);
|
|
3429
|
+
var BrowserKind = z33.enum(["chrome", "edge", "brave", "arc", "opera", "vivaldi", "chromium", "firefox", "other"]);
|
|
3430
|
+
var BrowserSessionState = z33.enum(["connected", "different_account", "extension_signed_out", "device_signed_out", "unverified"]);
|
|
3431
|
+
var BrowserSession = z33.strictObject({
|
|
3350
3432
|
client_instance: BrowserClientInstance,
|
|
3351
3433
|
/** What the person sees ("Chrome — Work"), set by the extension. */
|
|
3352
|
-
client_label:
|
|
3434
|
+
client_label: z33.string().min(1).max(128),
|
|
3353
3435
|
browser: BrowserKind,
|
|
3354
|
-
extension_version:
|
|
3436
|
+
extension_version: z33.string().min(1).max(32),
|
|
3355
3437
|
state: BrowserSessionState,
|
|
3356
3438
|
/** True only for `connected`: an agent's call can reach this session. */
|
|
3357
|
-
routable:
|
|
3439
|
+
routable: z33.boolean(),
|
|
3358
3440
|
/** The extension's account email from its token (null when signed out or unknown). */
|
|
3359
|
-
account_email:
|
|
3441
|
+
account_email: z33.string().max(320).nullable(),
|
|
3360
3442
|
connected_at_ms: epochMs,
|
|
3361
3443
|
last_call_at_ms: epochMs.nullable(),
|
|
3362
3444
|
calls: nonNegInt,
|
|
@@ -3365,756 +3447,756 @@ var BrowserSession = z32.strictObject({
|
|
|
3365
3447
|
p50_ms: nonNegInt.nullable(),
|
|
3366
3448
|
p95_ms: nonNegInt.nullable(),
|
|
3367
3449
|
/** A call is waiting for the person to confirm it in the browser. */
|
|
3368
|
-
awaiting_confirmation:
|
|
3450
|
+
awaiting_confirmation: z33.boolean()
|
|
3369
3451
|
});
|
|
3370
|
-
var BrowserRegisterParams =
|
|
3452
|
+
var BrowserRegisterParams = z33.strictObject({
|
|
3371
3453
|
client_instance: BrowserClientInstance,
|
|
3372
|
-
client_label:
|
|
3454
|
+
client_label: z33.string().min(1).max(128),
|
|
3373
3455
|
browser: BrowserKind,
|
|
3374
|
-
extension_version:
|
|
3456
|
+
extension_version: z33.string().min(1).max(32),
|
|
3375
3457
|
/** The extension's current AI Matrx access token, checked against the device owner; null when signed out. */
|
|
3376
|
-
account_token:
|
|
3458
|
+
account_token: z33.string().min(16).max(8192).nullable()
|
|
3377
3459
|
});
|
|
3378
|
-
var BrowserRegisterResult =
|
|
3379
|
-
var BrowserCallError =
|
|
3380
|
-
message:
|
|
3460
|
+
var BrowserRegisterResult = z33.strictObject({ session: BrowserSession });
|
|
3461
|
+
var BrowserCallError = z33.strictObject({
|
|
3462
|
+
message: z33.string().max(1e3),
|
|
3381
3463
|
/** The extension's own error code, when it has one ("tool_not_found", "denied"). */
|
|
3382
|
-
code:
|
|
3464
|
+
code: z33.string().max(64).nullable()
|
|
3383
3465
|
});
|
|
3384
|
-
var BrowserResultParams =
|
|
3385
|
-
call_id:
|
|
3386
|
-
ok:
|
|
3466
|
+
var BrowserResultParams = z33.strictObject({
|
|
3467
|
+
call_id: z33.string().min(1).max(64),
|
|
3468
|
+
ok: z33.boolean(),
|
|
3387
3469
|
/** The tool's result when ok (any JSON). */
|
|
3388
|
-
result:
|
|
3470
|
+
result: z33.unknown(),
|
|
3389
3471
|
error: BrowserCallError.nullable()
|
|
3390
3472
|
});
|
|
3391
|
-
var BrowserResultResult =
|
|
3392
|
-
var BrowserCallPhase =
|
|
3393
|
-
var BrowserProgressParams =
|
|
3394
|
-
var BrowserProgressResult =
|
|
3395
|
-
var BrowserSessionsParams =
|
|
3396
|
-
var BrowserSessionsResult =
|
|
3473
|
+
var BrowserResultResult = z33.strictObject({ accepted: z33.boolean() });
|
|
3474
|
+
var BrowserCallPhase = z33.enum(["awaiting_confirmation", "running"]);
|
|
3475
|
+
var BrowserProgressParams = z33.strictObject({ call_id: z33.string().min(1).max(64), phase: BrowserCallPhase });
|
|
3476
|
+
var BrowserProgressResult = z33.strictObject({ accepted: z33.boolean() });
|
|
3477
|
+
var BrowserSessionsParams = z33.strictObject({});
|
|
3478
|
+
var BrowserSessionsResult = z33.strictObject({
|
|
3397
3479
|
/** The person's Browser connection switch. Off: no pairing, no extension sessions. */
|
|
3398
|
-
enabled:
|
|
3480
|
+
enabled: z33.boolean(),
|
|
3399
3481
|
/** Whether Matrx 2 is signed in (without an owner no session is routable). */
|
|
3400
|
-
owner_signed_in:
|
|
3401
|
-
sessions:
|
|
3402
|
-
});
|
|
3403
|
-
var BrowserDisconnectParams =
|
|
3404
|
-
var BrowserDisconnectResult =
|
|
3405
|
-
var BrowserSetEnabledParams =
|
|
3406
|
-
var BrowserSetEnabledResult =
|
|
3407
|
-
var BrowserPairCodeParams =
|
|
3408
|
-
var BrowserPairCodeResult =
|
|
3409
|
-
var BrowserPairResetParams =
|
|
3410
|
-
var BrowserCallParams =
|
|
3411
|
-
tool:
|
|
3412
|
-
args:
|
|
3482
|
+
owner_signed_in: z33.boolean(),
|
|
3483
|
+
sessions: z33.array(BrowserSession).max(64)
|
|
3484
|
+
});
|
|
3485
|
+
var BrowserDisconnectParams = z33.strictObject({ client_instance: BrowserClientInstance });
|
|
3486
|
+
var BrowserDisconnectResult = z33.strictObject({ disconnected: z33.boolean() });
|
|
3487
|
+
var BrowserSetEnabledParams = z33.strictObject({ enabled: z33.boolean() });
|
|
3488
|
+
var BrowserSetEnabledResult = z33.strictObject({ enabled: z33.boolean() });
|
|
3489
|
+
var BrowserPairCodeParams = z33.strictObject({});
|
|
3490
|
+
var BrowserPairCodeResult = z33.strictObject({ code: z33.string().min(16).max(128) });
|
|
3491
|
+
var BrowserPairResetParams = z33.strictObject({});
|
|
3492
|
+
var BrowserCallParams = z33.strictObject({
|
|
3493
|
+
tool: z33.string().min(1).max(96).regex(/^[a-z][a-z0-9_]*$/),
|
|
3494
|
+
args: z33.record(z33.string(), z33.unknown()),
|
|
3413
3495
|
/** Which session; default: the most recently active routable one (BROWSER ambiguity → CONFLICT). */
|
|
3414
3496
|
client_instance: BrowserClientInstance.optional(),
|
|
3415
3497
|
/** How long to wait, including a person's confirmation; default 120 s. */
|
|
3416
|
-
timeout_ms:
|
|
3498
|
+
timeout_ms: z33.int().min(1e3).max(6e5).optional()
|
|
3417
3499
|
});
|
|
3418
|
-
var BrowserCallResult =
|
|
3500
|
+
var BrowserCallResult = z33.strictObject({
|
|
3419
3501
|
client_instance: BrowserClientInstance,
|
|
3420
|
-
result:
|
|
3502
|
+
result: z33.unknown(),
|
|
3421
3503
|
duration_ms: nonNegInt
|
|
3422
3504
|
});
|
|
3423
|
-
var BrowserToolMetricsParams =
|
|
3424
|
-
var BrowserToolMetric =
|
|
3425
|
-
tool:
|
|
3505
|
+
var BrowserToolMetricsParams = z33.strictObject({ client_instance: BrowserClientInstance });
|
|
3506
|
+
var BrowserToolMetric = z33.strictObject({
|
|
3507
|
+
tool: z33.string().max(256),
|
|
3426
3508
|
calls: nonNegInt,
|
|
3427
3509
|
errors: nonNegInt,
|
|
3428
3510
|
/** Over the last 200 answered calls; null before the first answer. */
|
|
3429
3511
|
p50_ms: nonNegInt.nullable(),
|
|
3430
3512
|
p95_ms: nonNegInt.nullable(),
|
|
3431
3513
|
last_call_at_ms: epochMs.nullable(),
|
|
3432
|
-
last_error:
|
|
3514
|
+
last_error: z33.string().max(2048).nullable()
|
|
3433
3515
|
});
|
|
3434
|
-
var BrowserToolMetricsResult =
|
|
3435
|
-
var BrowserResetCountersParams =
|
|
3436
|
-
var BrowserResetCountersResult =
|
|
3437
|
-
var BrowserLogParams =
|
|
3516
|
+
var BrowserToolMetricsResult = z33.strictObject({ client_instance: z33.string(), tools: z33.array(BrowserToolMetric) });
|
|
3517
|
+
var BrowserResetCountersParams = z33.strictObject({ client_instance: BrowserClientInstance });
|
|
3518
|
+
var BrowserResetCountersResult = z33.strictObject({ reset: z33.boolean() });
|
|
3519
|
+
var BrowserLogParams = z33.strictObject({
|
|
3438
3520
|
/** Only messages after this seq (0: from the oldest kept; the core keeps the last 500). */
|
|
3439
3521
|
after_seq: nonNegInt.default(0),
|
|
3440
|
-
limit:
|
|
3522
|
+
limit: z33.int().min(1).max(500).default(500)
|
|
3441
3523
|
});
|
|
3442
|
-
var BrowserLogMessage =
|
|
3524
|
+
var BrowserLogMessage = z33.strictObject({
|
|
3443
3525
|
seq: nonNegInt,
|
|
3444
3526
|
at_ms: epochMs,
|
|
3445
|
-
direction:
|
|
3446
|
-
client_instance:
|
|
3447
|
-
kind:
|
|
3448
|
-
tool:
|
|
3449
|
-
call_id:
|
|
3450
|
-
ok:
|
|
3451
|
-
detail:
|
|
3452
|
-
});
|
|
3453
|
-
var BrowserLogResult =
|
|
3454
|
-
messages:
|
|
3527
|
+
direction: z33.enum(["to_browser", "from_browser", "core"]),
|
|
3528
|
+
client_instance: z33.string(),
|
|
3529
|
+
kind: z33.enum(["register", "invoke", "result", "progress", "timeout", "closed"]),
|
|
3530
|
+
tool: z33.string().nullable(),
|
|
3531
|
+
call_id: z33.string().nullable(),
|
|
3532
|
+
ok: z33.boolean().nullable(),
|
|
3533
|
+
detail: z33.string().max(1024)
|
|
3534
|
+
});
|
|
3535
|
+
var BrowserLogResult = z33.strictObject({
|
|
3536
|
+
messages: z33.array(BrowserLogMessage),
|
|
3455
3537
|
/** The newest seq the core has written (pass it back as after_seq to follow the log). */
|
|
3456
3538
|
last_seq: nonNegInt
|
|
3457
3539
|
});
|
|
3458
|
-
var BrowserInvokeEvent =
|
|
3459
|
-
call_id:
|
|
3460
|
-
tool:
|
|
3461
|
-
args:
|
|
3540
|
+
var BrowserInvokeEvent = z33.strictObject({
|
|
3541
|
+
call_id: z33.string().min(1).max(64),
|
|
3542
|
+
tool: z33.string().min(1).max(96),
|
|
3543
|
+
args: z33.record(z33.string(), z33.unknown()),
|
|
3462
3544
|
deadline_ms: epochMs
|
|
3463
3545
|
});
|
|
3464
|
-
var BrowserSessionsChangedEvent =
|
|
3465
|
-
var BrowserProgressEvent =
|
|
3466
|
-
call_id:
|
|
3546
|
+
var BrowserSessionsChangedEvent = z33.strictObject({ count: nonNegInt, enabled: z33.boolean() });
|
|
3547
|
+
var BrowserProgressEvent = z33.strictObject({
|
|
3548
|
+
call_id: z33.string().min(1).max(64),
|
|
3467
3549
|
client_instance: BrowserClientInstance,
|
|
3468
3550
|
phase: BrowserCallPhase
|
|
3469
3551
|
});
|
|
3470
|
-
var DesktopHealth =
|
|
3471
|
-
status:
|
|
3472
|
-
service:
|
|
3473
|
-
version:
|
|
3474
|
-
protocol_version:
|
|
3475
|
-
ws_path:
|
|
3476
|
-
device_id:
|
|
3477
|
-
browser_connection:
|
|
3478
|
-
});
|
|
3479
|
-
var BrowserPairRequest =
|
|
3480
|
-
var BrowserPairResult =
|
|
3552
|
+
var DesktopHealth = z33.strictObject({
|
|
3553
|
+
status: z33.literal("ok"),
|
|
3554
|
+
service: z33.literal("matrx-desktop"),
|
|
3555
|
+
version: z33.string().max(32),
|
|
3556
|
+
protocol_version: z33.string().max(16),
|
|
3557
|
+
ws_path: z33.literal("/v1/connect"),
|
|
3558
|
+
device_id: z33.string().max(64),
|
|
3559
|
+
browser_connection: z33.enum(["on", "off"])
|
|
3560
|
+
});
|
|
3561
|
+
var BrowserPairRequest = z33.strictObject({ client_instance: BrowserClientInstance });
|
|
3562
|
+
var BrowserPairResult = z33.strictObject({ pair_token: z33.string().min(16).max(128), ws_path: z33.literal("/v1/connect") });
|
|
3481
3563
|
|
|
3482
3564
|
// src/schema/net.ts
|
|
3483
|
-
import { z as
|
|
3484
|
-
var NetInfoParams =
|
|
3485
|
-
var NetAddress =
|
|
3486
|
-
address:
|
|
3487
|
-
family:
|
|
3488
|
-
netmask:
|
|
3565
|
+
import { z as z34 } from "zod";
|
|
3566
|
+
var NetInfoParams = z34.strictObject({});
|
|
3567
|
+
var NetAddress = z34.strictObject({
|
|
3568
|
+
address: z34.string(),
|
|
3569
|
+
family: z34.enum(["ipv4", "ipv6"]),
|
|
3570
|
+
netmask: z34.string().nullable(),
|
|
3489
3571
|
/** CIDR form ("192.168.1.20/24"); null where the OS gives no prefix. */
|
|
3490
|
-
cidr:
|
|
3572
|
+
cidr: z34.string().nullable()
|
|
3491
3573
|
});
|
|
3492
|
-
var NetInterface =
|
|
3493
|
-
name:
|
|
3494
|
-
mac:
|
|
3574
|
+
var NetInterface = z34.strictObject({
|
|
3575
|
+
name: z34.string(),
|
|
3576
|
+
mac: z34.string().nullable(),
|
|
3495
3577
|
/** Loopback and other internal interfaces. */
|
|
3496
|
-
internal:
|
|
3497
|
-
addresses:
|
|
3578
|
+
internal: z34.boolean(),
|
|
3579
|
+
addresses: z34.array(NetAddress)
|
|
3498
3580
|
});
|
|
3499
|
-
var NetInfoResult =
|
|
3500
|
-
hostname:
|
|
3501
|
-
interfaces:
|
|
3581
|
+
var NetInfoResult = z34.strictObject({
|
|
3582
|
+
hostname: z34.string(),
|
|
3583
|
+
interfaces: z34.array(NetInterface),
|
|
3502
3584
|
/** The default route's gateway; null when the OS does not say (or there is none). */
|
|
3503
|
-
gateway:
|
|
3585
|
+
gateway: z34.string().nullable(),
|
|
3504
3586
|
/** The DNS servers the OS uses; empty when it does not say. */
|
|
3505
|
-
dns:
|
|
3587
|
+
dns: z34.array(z34.string())
|
|
3506
3588
|
});
|
|
3507
|
-
var NetWifiParams =
|
|
3508
|
-
var NetWifiNetwork =
|
|
3589
|
+
var NetWifiParams = z34.strictObject({});
|
|
3590
|
+
var NetWifiNetwork = z34.strictObject({
|
|
3509
3591
|
/** null: the OS hides the name (macOS without Location Services for this app). */
|
|
3510
|
-
ssid:
|
|
3592
|
+
ssid: z34.string().nullable(),
|
|
3511
3593
|
/** dBm; null where the OS does not say. */
|
|
3512
|
-
rssi:
|
|
3513
|
-
channel:
|
|
3514
|
-
security:
|
|
3594
|
+
rssi: z34.int().nullable(),
|
|
3595
|
+
channel: z34.string().nullable(),
|
|
3596
|
+
security: z34.string().nullable()
|
|
3515
3597
|
});
|
|
3516
|
-
var NetWifiResult =
|
|
3598
|
+
var NetWifiResult = z34.strictObject({
|
|
3517
3599
|
/** Whether the computer has a Wi-Fi interface at all. */
|
|
3518
|
-
available:
|
|
3600
|
+
available: z34.boolean(),
|
|
3519
3601
|
/** The network the computer is on; null when it is on none. */
|
|
3520
3602
|
current: NetWifiNetwork.nullable(),
|
|
3521
3603
|
/** Networks in range (may be empty where the OS lists none to apps). */
|
|
3522
|
-
networks:
|
|
3604
|
+
networks: z34.array(NetWifiNetwork)
|
|
3523
3605
|
});
|
|
3524
|
-
var NetBluetoothParams =
|
|
3525
|
-
var NetBluetoothDevice =
|
|
3526
|
-
name:
|
|
3527
|
-
address:
|
|
3528
|
-
connected:
|
|
3606
|
+
var NetBluetoothParams = z34.strictObject({});
|
|
3607
|
+
var NetBluetoothDevice = z34.strictObject({
|
|
3608
|
+
name: z34.string(),
|
|
3609
|
+
address: z34.string().nullable(),
|
|
3610
|
+
connected: z34.boolean(),
|
|
3529
3611
|
/** What it is, in the OS's words ("Headphones", "Keyboard"); null where it does not say. */
|
|
3530
|
-
kind:
|
|
3612
|
+
kind: z34.string().nullable(),
|
|
3531
3613
|
/** Battery percent, where the OS reports it. */
|
|
3532
|
-
battery:
|
|
3614
|
+
battery: z34.int().min(0).max(100).nullable()
|
|
3533
3615
|
});
|
|
3534
|
-
var NetBluetoothResult =
|
|
3616
|
+
var NetBluetoothResult = z34.strictObject({
|
|
3535
3617
|
/** Bluetooth is on; null where the OS does not say. */
|
|
3536
|
-
powered:
|
|
3537
|
-
devices:
|
|
3538
|
-
});
|
|
3539
|
-
var NetDevicesParams =
|
|
3540
|
-
var NetDevice =
|
|
3541
|
-
ip:
|
|
3542
|
-
mac:
|
|
3543
|
-
interface:
|
|
3618
|
+
powered: z34.boolean().nullable(),
|
|
3619
|
+
devices: z34.array(NetBluetoothDevice)
|
|
3620
|
+
});
|
|
3621
|
+
var NetDevicesParams = z34.strictObject({});
|
|
3622
|
+
var NetDevice = z34.strictObject({
|
|
3623
|
+
ip: z34.string(),
|
|
3624
|
+
mac: z34.string().nullable(),
|
|
3625
|
+
interface: z34.string().nullable(),
|
|
3544
3626
|
/** The name the local network gives it (reverse DNS / mDNS), when the table carries one. */
|
|
3545
|
-
hostname:
|
|
3627
|
+
hostname: z34.string().nullable()
|
|
3546
3628
|
});
|
|
3547
|
-
var NetDevicesResult =
|
|
3548
|
-
var NetMdnsParams =
|
|
3629
|
+
var NetDevicesResult = z34.strictObject({ devices: z34.array(NetDevice) });
|
|
3630
|
+
var NetMdnsParams = z34.strictObject({
|
|
3549
3631
|
/** A service type ("_http._tcp"); absent lists the service types found. */
|
|
3550
|
-
service_type:
|
|
3632
|
+
service_type: z34.string().min(1).max(64).regex(/^_[A-Za-z0-9-]+\._(tcp|udp)$/).optional(),
|
|
3551
3633
|
/** How long to listen. */
|
|
3552
|
-
timeout_s:
|
|
3634
|
+
timeout_s: z34.int().min(1).max(30).default(3)
|
|
3553
3635
|
});
|
|
3554
|
-
var NetMdnsService =
|
|
3555
|
-
name:
|
|
3556
|
-
type:
|
|
3557
|
-
domain:
|
|
3558
|
-
interface:
|
|
3636
|
+
var NetMdnsService = z34.strictObject({
|
|
3637
|
+
name: z34.string(),
|
|
3638
|
+
type: z34.string(),
|
|
3639
|
+
domain: z34.string(),
|
|
3640
|
+
interface: z34.string().nullable()
|
|
3559
3641
|
});
|
|
3560
|
-
var NetMdnsResult =
|
|
3561
|
-
var NetScanParams =
|
|
3642
|
+
var NetMdnsResult = z34.strictObject({ services: z34.array(NetMdnsService) });
|
|
3643
|
+
var NetScanParams = z34.strictObject({
|
|
3562
3644
|
/** A host name or address; a private or loopback address unless `allow_public`. */
|
|
3563
|
-
host:
|
|
3564
|
-
ports:
|
|
3565
|
-
timeout_ms:
|
|
3645
|
+
host: z34.string().min(1).max(253),
|
|
3646
|
+
ports: z34.array(z34.int().min(1).max(65535)).min(1).max(1024),
|
|
3647
|
+
timeout_ms: z34.int().min(50).max(1e4).default(800),
|
|
3566
3648
|
/** Scanning a host on the public internet needs saying so. */
|
|
3567
|
-
allow_public:
|
|
3649
|
+
allow_public: z34.boolean().default(false)
|
|
3568
3650
|
});
|
|
3569
|
-
var NetScanResult =
|
|
3570
|
-
host:
|
|
3651
|
+
var NetScanResult = z34.strictObject({
|
|
3652
|
+
host: z34.string(),
|
|
3571
3653
|
/** The address the host resolved to. */
|
|
3572
|
-
address:
|
|
3573
|
-
open:
|
|
3654
|
+
address: z34.string(),
|
|
3655
|
+
open: z34.array(z34.int().min(1).max(65535)),
|
|
3574
3656
|
closed: nonNegInt,
|
|
3575
3657
|
elapsed_ms: nonNegInt
|
|
3576
3658
|
});
|
|
3577
|
-
var NetDownloadParams =
|
|
3578
|
-
url:
|
|
3659
|
+
var NetDownloadParams = z34.strictObject({
|
|
3660
|
+
url: z34.string().min(1).max(8192).regex(/^https?:\/\//),
|
|
3579
3661
|
/** Where to save it: an absolute path (a folder keeps the URL's file name). */
|
|
3580
3662
|
path: AbsPath,
|
|
3581
|
-
overwrite:
|
|
3582
|
-
timeout_s:
|
|
3663
|
+
overwrite: z34.boolean().default(false),
|
|
3664
|
+
timeout_s: z34.int().min(1).max(3600).default(300),
|
|
3583
3665
|
/** Refuse anything larger. */
|
|
3584
|
-
max_bytes:
|
|
3666
|
+
max_bytes: z34.int().min(1).max(10737418240).default(2147483648)
|
|
3585
3667
|
});
|
|
3586
|
-
var NetDownloadResult =
|
|
3587
|
-
path:
|
|
3668
|
+
var NetDownloadResult = z34.strictObject({
|
|
3669
|
+
path: z34.string(),
|
|
3588
3670
|
bytes: nonNegInt,
|
|
3589
|
-
content_type:
|
|
3671
|
+
content_type: z34.string().nullable(),
|
|
3590
3672
|
/** The final URL after redirects. */
|
|
3591
|
-
url:
|
|
3673
|
+
url: z34.string(),
|
|
3592
3674
|
elapsed_ms: nonNegInt
|
|
3593
3675
|
});
|
|
3594
3676
|
|
|
3595
3677
|
// src/schema/personal.ts
|
|
3596
|
-
import { z as
|
|
3597
|
-
var Text =
|
|
3598
|
-
var AutomationScriptParams =
|
|
3678
|
+
import { z as z35 } from "zod";
|
|
3679
|
+
var Text = z35.string().max(65536);
|
|
3680
|
+
var AutomationScriptParams = z35.strictObject({
|
|
3599
3681
|
/** applescript and jxa: macOS (osascript); powershell: Windows (and pwsh where installed). */
|
|
3600
|
-
language:
|
|
3601
|
-
script:
|
|
3602
|
-
timeout_s:
|
|
3603
|
-
});
|
|
3604
|
-
var AutomationScriptResult =
|
|
3605
|
-
stdout:
|
|
3606
|
-
stderr:
|
|
3607
|
-
exit_code:
|
|
3608
|
-
timed_out:
|
|
3682
|
+
language: z35.enum(["applescript", "jxa", "powershell"]),
|
|
3683
|
+
script: z35.string().min(1).max(262144),
|
|
3684
|
+
timeout_s: z35.int().min(1).max(600).default(60)
|
|
3685
|
+
});
|
|
3686
|
+
var AutomationScriptResult = z35.strictObject({
|
|
3687
|
+
stdout: z35.string(),
|
|
3688
|
+
stderr: z35.string(),
|
|
3689
|
+
exit_code: z35.int(),
|
|
3690
|
+
timed_out: z35.boolean(),
|
|
3609
3691
|
/** stdout or stderr was cut at 1 MiB. */
|
|
3610
|
-
truncated:
|
|
3692
|
+
truncated: z35.boolean(),
|
|
3611
3693
|
elapsed_ms: nonNegInt
|
|
3612
3694
|
});
|
|
3613
|
-
var MailAccountsParams =
|
|
3614
|
-
var MailAccount =
|
|
3615
|
-
var MailAccountsResult =
|
|
3616
|
-
var MailListParams =
|
|
3695
|
+
var MailAccountsParams = z35.strictObject({});
|
|
3696
|
+
var MailAccount = z35.strictObject({ name: z35.string(), emails: z35.array(z35.string()), enabled: z35.boolean() });
|
|
3697
|
+
var MailAccountsResult = z35.strictObject({ accounts: z35.array(MailAccount) });
|
|
3698
|
+
var MailListParams = z35.strictObject({
|
|
3617
3699
|
/** The account's name in Mail; absent: every account. */
|
|
3618
|
-
account:
|
|
3700
|
+
account: z35.string().min(1).max(256).optional(),
|
|
3619
3701
|
/** The mailbox's name ("INBOX", "Sent Messages"). */
|
|
3620
|
-
mailbox:
|
|
3621
|
-
unread_only:
|
|
3622
|
-
limit:
|
|
3623
|
-
});
|
|
3624
|
-
var MailMessage =
|
|
3625
|
-
id:
|
|
3626
|
-
subject:
|
|
3627
|
-
sender:
|
|
3702
|
+
mailbox: z35.string().min(1).max(256).default("INBOX"),
|
|
3703
|
+
unread_only: z35.boolean().default(false),
|
|
3704
|
+
limit: z35.int().min(1).max(200).default(25)
|
|
3705
|
+
});
|
|
3706
|
+
var MailMessage = z35.strictObject({
|
|
3707
|
+
id: z35.string(),
|
|
3708
|
+
subject: z35.string(),
|
|
3709
|
+
sender: z35.string(),
|
|
3628
3710
|
received_at_ms: epochMs.nullable(),
|
|
3629
|
-
read:
|
|
3630
|
-
account:
|
|
3631
|
-
mailbox:
|
|
3711
|
+
read: z35.boolean(),
|
|
3712
|
+
account: z35.string(),
|
|
3713
|
+
mailbox: z35.string(),
|
|
3632
3714
|
/** The first lines of the message's text. */
|
|
3633
|
-
preview:
|
|
3715
|
+
preview: z35.string()
|
|
3634
3716
|
});
|
|
3635
|
-
var MailListResult =
|
|
3636
|
-
var MailSendParams =
|
|
3637
|
-
to:
|
|
3638
|
-
cc:
|
|
3639
|
-
subject:
|
|
3717
|
+
var MailListResult = z35.strictObject({ messages: z35.array(MailMessage) });
|
|
3718
|
+
var MailSendParams = z35.strictObject({
|
|
3719
|
+
to: z35.array(z35.string().min(3).max(320)).min(1).max(50),
|
|
3720
|
+
cc: z35.array(z35.string().min(3).max(320)).max(50).default([]),
|
|
3721
|
+
subject: z35.string().max(998),
|
|
3640
3722
|
body: Text,
|
|
3641
3723
|
/** The sending account's address; absent: Mail's default. */
|
|
3642
|
-
from:
|
|
3724
|
+
from: z35.string().min(3).max(320).optional(),
|
|
3643
3725
|
/** false leaves it open in Mail as a draft for the person to send. */
|
|
3644
|
-
send:
|
|
3726
|
+
send: z35.boolean().default(true)
|
|
3645
3727
|
});
|
|
3646
|
-
var MailSendResult =
|
|
3647
|
-
var OutlookStatusParams =
|
|
3648
|
-
var OutlookAccount =
|
|
3649
|
-
var OutlookStatusResult =
|
|
3728
|
+
var MailSendResult = z35.strictObject({ sent: z35.boolean() });
|
|
3729
|
+
var OutlookStatusParams = z35.strictObject({});
|
|
3730
|
+
var OutlookAccount = z35.strictObject({ name: z35.string(), email: z35.string().nullable() });
|
|
3731
|
+
var OutlookStatusResult = z35.strictObject({
|
|
3650
3732
|
/** classic_windows: scriptable. new_windows / mac: installed, not scriptable. none: not found. */
|
|
3651
|
-
client:
|
|
3652
|
-
scriptable:
|
|
3653
|
-
version:
|
|
3654
|
-
accounts:
|
|
3733
|
+
client: z35.enum(["classic_windows", "new_windows", "mac", "none"]),
|
|
3734
|
+
scriptable: z35.boolean(),
|
|
3735
|
+
version: z35.string().nullable(),
|
|
3736
|
+
accounts: z35.array(OutlookAccount),
|
|
3655
3737
|
/** Why it is not scriptable here, in a sentence the person can act on; null when it is. */
|
|
3656
|
-
reason:
|
|
3657
|
-
});
|
|
3658
|
-
var Address =
|
|
3659
|
-
var OutlookDraftParams =
|
|
3660
|
-
to:
|
|
3661
|
-
cc:
|
|
3662
|
-
bcc:
|
|
3663
|
-
subject:
|
|
3664
|
-
body:
|
|
3665
|
-
body_format:
|
|
3738
|
+
reason: z35.string().nullable()
|
|
3739
|
+
});
|
|
3740
|
+
var Address = z35.string().min(3).max(320);
|
|
3741
|
+
var OutlookDraftParams = z35.strictObject({
|
|
3742
|
+
to: z35.array(Address).max(100).default([]),
|
|
3743
|
+
cc: z35.array(Address).max(100).default([]),
|
|
3744
|
+
bcc: z35.array(Address).max(100).default([]),
|
|
3745
|
+
subject: z35.string().max(998).default(""),
|
|
3746
|
+
body: z35.string().max(1048576).default(""),
|
|
3747
|
+
body_format: z35.enum(["text", "html"]).default("text"),
|
|
3666
3748
|
/** Files on this computer to attach (absolute paths). */
|
|
3667
|
-
attachments:
|
|
3749
|
+
attachments: z35.array(z35.string().min(1).max(4096)).max(50).default([]),
|
|
3668
3750
|
/** The sending account's address (one of outlook.status's accounts); absent: Outlook's default. */
|
|
3669
3751
|
account: Address.optional(),
|
|
3670
3752
|
/** true also opens the draft in a window for the person. */
|
|
3671
|
-
display:
|
|
3753
|
+
display: z35.boolean().default(false)
|
|
3672
3754
|
});
|
|
3673
|
-
var OutlookDraftResult =
|
|
3755
|
+
var OutlookDraftResult = z35.strictObject({
|
|
3674
3756
|
/** The draft's id in Outlook (outlook.read takes it). */
|
|
3675
|
-
id:
|
|
3676
|
-
account:
|
|
3677
|
-
folder:
|
|
3757
|
+
id: z35.string(),
|
|
3758
|
+
account: z35.string().nullable(),
|
|
3759
|
+
folder: z35.string(),
|
|
3678
3760
|
attachments: nonNegInt,
|
|
3679
|
-
displayed:
|
|
3761
|
+
displayed: z35.boolean()
|
|
3680
3762
|
});
|
|
3681
|
-
var OutlookListParams =
|
|
3682
|
-
folder:
|
|
3763
|
+
var OutlookListParams = z35.strictObject({
|
|
3764
|
+
folder: z35.enum(["inbox", "sent", "drafts"]).default("inbox"),
|
|
3683
3765
|
/** The account's address; absent: the default account. */
|
|
3684
3766
|
account: Address.optional(),
|
|
3685
|
-
unread_only:
|
|
3686
|
-
limit:
|
|
3767
|
+
unread_only: z35.boolean().default(false),
|
|
3768
|
+
limit: z35.int().min(1).max(200).default(25)
|
|
3687
3769
|
});
|
|
3688
|
-
var OutlookMessage =
|
|
3689
|
-
id:
|
|
3690
|
-
subject:
|
|
3691
|
-
sender:
|
|
3770
|
+
var OutlookMessage = z35.strictObject({
|
|
3771
|
+
id: z35.string(),
|
|
3772
|
+
subject: z35.string(),
|
|
3773
|
+
sender: z35.string(),
|
|
3692
3774
|
received_at_ms: epochMs.nullable(),
|
|
3693
|
-
read:
|
|
3694
|
-
has_attachments:
|
|
3775
|
+
read: z35.boolean(),
|
|
3776
|
+
has_attachments: z35.boolean(),
|
|
3695
3777
|
/** The first lines of the message's text. */
|
|
3696
|
-
preview:
|
|
3697
|
-
});
|
|
3698
|
-
var OutlookListResult =
|
|
3699
|
-
var OutlookReadParams =
|
|
3700
|
-
var OutlookReadResult =
|
|
3701
|
-
id:
|
|
3702
|
-
subject:
|
|
3703
|
-
sender:
|
|
3704
|
-
to:
|
|
3705
|
-
cc:
|
|
3778
|
+
preview: z35.string()
|
|
3779
|
+
});
|
|
3780
|
+
var OutlookListResult = z35.strictObject({ folder: z35.string(), messages: z35.array(OutlookMessage) });
|
|
3781
|
+
var OutlookReadParams = z35.strictObject({ id: z35.string().min(1).max(1024) });
|
|
3782
|
+
var OutlookReadResult = z35.strictObject({
|
|
3783
|
+
id: z35.string(),
|
|
3784
|
+
subject: z35.string(),
|
|
3785
|
+
sender: z35.string(),
|
|
3786
|
+
to: z35.array(z35.string()),
|
|
3787
|
+
cc: z35.array(z35.string()),
|
|
3706
3788
|
received_at_ms: epochMs.nullable(),
|
|
3707
3789
|
/** The plain text body, cut at 1 MiB. */
|
|
3708
|
-
body:
|
|
3709
|
-
attachments:
|
|
3710
|
-
});
|
|
3711
|
-
var MessagesChatsParams =
|
|
3712
|
-
var MessagesChat =
|
|
3713
|
-
chat_id:
|
|
3714
|
-
name:
|
|
3715
|
-
participants:
|
|
3790
|
+
body: z35.string(),
|
|
3791
|
+
attachments: z35.array(z35.strictObject({ name: z35.string(), size: nonNegInt }))
|
|
3792
|
+
});
|
|
3793
|
+
var MessagesChatsParams = z35.strictObject({ limit: z35.int().min(1).max(200).default(25) });
|
|
3794
|
+
var MessagesChat = z35.strictObject({
|
|
3795
|
+
chat_id: z35.string(),
|
|
3796
|
+
name: z35.string().nullable(),
|
|
3797
|
+
participants: z35.array(z35.string()),
|
|
3716
3798
|
last_message_at_ms: epochMs.nullable(),
|
|
3717
|
-
service:
|
|
3799
|
+
service: z35.string().nullable()
|
|
3718
3800
|
});
|
|
3719
|
-
var MessagesChatsResult =
|
|
3720
|
-
var MessagesListParams =
|
|
3801
|
+
var MessagesChatsResult = z35.strictObject({ chats: z35.array(MessagesChat) });
|
|
3802
|
+
var MessagesListParams = z35.strictObject({
|
|
3721
3803
|
/** One chat (messages.chats' chat_id); absent: the newest across all. */
|
|
3722
|
-
chat_id:
|
|
3723
|
-
limit:
|
|
3724
|
-
});
|
|
3725
|
-
var MessagesMessage =
|
|
3726
|
-
id:
|
|
3727
|
-
chat_id:
|
|
3728
|
-
text:
|
|
3729
|
-
from_me:
|
|
3804
|
+
chat_id: z35.string().min(1).max(512).optional(),
|
|
3805
|
+
limit: z35.int().min(1).max(500).default(50)
|
|
3806
|
+
});
|
|
3807
|
+
var MessagesMessage = z35.strictObject({
|
|
3808
|
+
id: z35.string(),
|
|
3809
|
+
chat_id: z35.string().nullable(),
|
|
3810
|
+
text: z35.string(),
|
|
3811
|
+
from_me: z35.boolean(),
|
|
3730
3812
|
/** The other person's handle (phone or email); null for the person's own messages. */
|
|
3731
|
-
sender:
|
|
3813
|
+
sender: z35.string().nullable(),
|
|
3732
3814
|
sent_at_ms: epochMs.nullable()
|
|
3733
3815
|
});
|
|
3734
|
-
var MessagesListResult =
|
|
3735
|
-
var MessagesSendParams =
|
|
3816
|
+
var MessagesListResult = z35.strictObject({ messages: z35.array(MessagesMessage) });
|
|
3817
|
+
var MessagesSendParams = z35.strictObject({
|
|
3736
3818
|
/** A phone number or email the person can message. */
|
|
3737
|
-
to:
|
|
3738
|
-
text:
|
|
3819
|
+
to: z35.string().min(3).max(320),
|
|
3820
|
+
text: z35.string().min(1).max(2e4),
|
|
3739
3821
|
/**
|
|
3740
3822
|
* Send only over this service (Matrx Local's SendMessage `service`). Absent: iMessage first, and
|
|
3741
3823
|
* SMS when the recipient has no iMessage (since 1.42).
|
|
3742
3824
|
*/
|
|
3743
|
-
service:
|
|
3825
|
+
service: z35.enum(["iMessage", "SMS"]).optional()
|
|
3744
3826
|
});
|
|
3745
|
-
var MessagesSendResult =
|
|
3746
|
-
var ContactsSearchParams =
|
|
3827
|
+
var MessagesSendResult = z35.strictObject({ sent: z35.boolean() });
|
|
3828
|
+
var ContactsSearchParams = z35.strictObject({
|
|
3747
3829
|
/** Matched against names, organizations, emails and phone numbers. */
|
|
3748
|
-
query:
|
|
3749
|
-
limit:
|
|
3830
|
+
query: z35.string().min(1).max(256),
|
|
3831
|
+
limit: z35.int().min(1).max(200).default(25)
|
|
3750
3832
|
});
|
|
3751
|
-
var ContactLabeled =
|
|
3752
|
-
var ContactSummary =
|
|
3753
|
-
id:
|
|
3754
|
-
name:
|
|
3755
|
-
organization:
|
|
3756
|
-
emails:
|
|
3757
|
-
phones:
|
|
3758
|
-
});
|
|
3759
|
-
var ContactsSearchResult =
|
|
3760
|
-
var ContactsGetParams =
|
|
3761
|
-
var ContactDetail =
|
|
3762
|
-
id:
|
|
3763
|
-
name:
|
|
3764
|
-
organization:
|
|
3765
|
-
job_title:
|
|
3766
|
-
emails:
|
|
3767
|
-
phones:
|
|
3768
|
-
addresses:
|
|
3769
|
-
birthday:
|
|
3770
|
-
note:
|
|
3771
|
-
});
|
|
3772
|
-
var ContactsGetResult =
|
|
3773
|
-
var CalendarListParams =
|
|
3833
|
+
var ContactLabeled = z35.strictObject({ label: z35.string().nullable(), value: z35.string() });
|
|
3834
|
+
var ContactSummary = z35.strictObject({
|
|
3835
|
+
id: z35.string(),
|
|
3836
|
+
name: z35.string(),
|
|
3837
|
+
organization: z35.string().nullable(),
|
|
3838
|
+
emails: z35.array(ContactLabeled),
|
|
3839
|
+
phones: z35.array(ContactLabeled)
|
|
3840
|
+
});
|
|
3841
|
+
var ContactsSearchResult = z35.strictObject({ contacts: z35.array(ContactSummary) });
|
|
3842
|
+
var ContactsGetParams = z35.strictObject({ id: z35.string().min(1).max(256) });
|
|
3843
|
+
var ContactDetail = z35.strictObject({
|
|
3844
|
+
id: z35.string(),
|
|
3845
|
+
name: z35.string(),
|
|
3846
|
+
organization: z35.string().nullable(),
|
|
3847
|
+
job_title: z35.string().nullable(),
|
|
3848
|
+
emails: z35.array(ContactLabeled),
|
|
3849
|
+
phones: z35.array(ContactLabeled),
|
|
3850
|
+
addresses: z35.array(ContactLabeled),
|
|
3851
|
+
birthday: z35.string().nullable(),
|
|
3852
|
+
note: z35.string().nullable()
|
|
3853
|
+
});
|
|
3854
|
+
var ContactsGetResult = z35.strictObject({ contact: ContactDetail });
|
|
3855
|
+
var CalendarListParams = z35.strictObject({
|
|
3774
3856
|
from_ms: epochMs,
|
|
3775
3857
|
to_ms: epochMs,
|
|
3776
3858
|
/** One calendar's name; absent: every calendar. */
|
|
3777
|
-
calendar:
|
|
3778
|
-
limit:
|
|
3859
|
+
calendar: z35.string().min(1).max(256).optional(),
|
|
3860
|
+
limit: z35.int().min(1).max(500).default(100)
|
|
3779
3861
|
});
|
|
3780
|
-
var CalendarEvent =
|
|
3781
|
-
id:
|
|
3782
|
-
title:
|
|
3862
|
+
var CalendarEvent = z35.strictObject({
|
|
3863
|
+
id: z35.string(),
|
|
3864
|
+
title: z35.string(),
|
|
3783
3865
|
start_ms: epochMs,
|
|
3784
3866
|
end_ms: epochMs,
|
|
3785
|
-
all_day:
|
|
3786
|
-
calendar:
|
|
3787
|
-
location:
|
|
3788
|
-
notes:
|
|
3789
|
-
});
|
|
3790
|
-
var CalendarListResult =
|
|
3791
|
-
var CalendarCreateParams =
|
|
3792
|
-
title:
|
|
3867
|
+
all_day: z35.boolean(),
|
|
3868
|
+
calendar: z35.string(),
|
|
3869
|
+
location: z35.string().nullable(),
|
|
3870
|
+
notes: z35.string().nullable()
|
|
3871
|
+
});
|
|
3872
|
+
var CalendarListResult = z35.strictObject({ events: z35.array(CalendarEvent) });
|
|
3873
|
+
var CalendarCreateParams = z35.strictObject({
|
|
3874
|
+
title: z35.string().min(1).max(1024),
|
|
3793
3875
|
start_ms: epochMs,
|
|
3794
3876
|
end_ms: epochMs,
|
|
3795
|
-
all_day:
|
|
3877
|
+
all_day: z35.boolean().default(false),
|
|
3796
3878
|
/** The calendar's name; absent: the first writable calendar. */
|
|
3797
|
-
calendar:
|
|
3798
|
-
location:
|
|
3879
|
+
calendar: z35.string().min(1).max(256).optional(),
|
|
3880
|
+
location: z35.string().max(1024).optional(),
|
|
3799
3881
|
notes: Text.optional()
|
|
3800
3882
|
});
|
|
3801
|
-
var CalendarCreateResult =
|
|
3802
|
-
var RemindersListParams =
|
|
3883
|
+
var CalendarCreateResult = z35.strictObject({ id: z35.string(), calendar: z35.string() });
|
|
3884
|
+
var RemindersListParams = z35.strictObject({
|
|
3803
3885
|
/** One list's name; absent: every list. */
|
|
3804
|
-
list:
|
|
3805
|
-
include_completed:
|
|
3806
|
-
limit:
|
|
3807
|
-
});
|
|
3808
|
-
var Reminder =
|
|
3809
|
-
id:
|
|
3810
|
-
title:
|
|
3811
|
-
list:
|
|
3886
|
+
list: z35.string().min(1).max(256).optional(),
|
|
3887
|
+
include_completed: z35.boolean().default(false),
|
|
3888
|
+
limit: z35.int().min(1).max(500).default(100)
|
|
3889
|
+
});
|
|
3890
|
+
var Reminder = z35.strictObject({
|
|
3891
|
+
id: z35.string(),
|
|
3892
|
+
title: z35.string(),
|
|
3893
|
+
list: z35.string(),
|
|
3812
3894
|
due_ms: epochMs.nullable(),
|
|
3813
|
-
completed:
|
|
3814
|
-
notes:
|
|
3895
|
+
completed: z35.boolean(),
|
|
3896
|
+
notes: z35.string().nullable()
|
|
3815
3897
|
});
|
|
3816
|
-
var RemindersListResult =
|
|
3817
|
-
var RemindersCreateParams =
|
|
3818
|
-
title:
|
|
3898
|
+
var RemindersListResult = z35.strictObject({ reminders: z35.array(Reminder) });
|
|
3899
|
+
var RemindersCreateParams = z35.strictObject({
|
|
3900
|
+
title: z35.string().min(1).max(1024),
|
|
3819
3901
|
due_ms: epochMs.optional(),
|
|
3820
|
-
list:
|
|
3902
|
+
list: z35.string().min(1).max(256).optional(),
|
|
3821
3903
|
notes: Text.optional()
|
|
3822
3904
|
});
|
|
3823
|
-
var RemindersCreateResult =
|
|
3824
|
-
var PhotosSearchParams =
|
|
3905
|
+
var RemindersCreateResult = z35.strictObject({ id: z35.string(), list: z35.string() });
|
|
3906
|
+
var PhotosSearchParams = z35.strictObject({
|
|
3825
3907
|
/** Matched against file names, titles, descriptions and keywords; absent: the newest. */
|
|
3826
|
-
query:
|
|
3908
|
+
query: z35.string().min(1).max(256).optional(),
|
|
3827
3909
|
from_ms: epochMs.optional(),
|
|
3828
3910
|
to_ms: epochMs.optional(),
|
|
3829
|
-
favorites_only:
|
|
3830
|
-
limit:
|
|
3911
|
+
favorites_only: z35.boolean().default(false),
|
|
3912
|
+
limit: z35.int().min(1).max(200).default(25)
|
|
3831
3913
|
});
|
|
3832
|
-
var Photo =
|
|
3833
|
-
id:
|
|
3834
|
-
filename:
|
|
3914
|
+
var Photo = z35.strictObject({
|
|
3915
|
+
id: z35.string(),
|
|
3916
|
+
filename: z35.string(),
|
|
3835
3917
|
taken_at_ms: epochMs.nullable(),
|
|
3836
3918
|
width: nonNegInt.nullable(),
|
|
3837
3919
|
height: nonNegInt.nullable(),
|
|
3838
|
-
favorite:
|
|
3839
|
-
title:
|
|
3920
|
+
favorite: z35.boolean(),
|
|
3921
|
+
title: z35.string().nullable()
|
|
3840
3922
|
});
|
|
3841
|
-
var PhotosSearchResult =
|
|
3842
|
-
var PhotosGetParams =
|
|
3843
|
-
id:
|
|
3923
|
+
var PhotosSearchResult = z35.strictObject({ photos: z35.array(Photo) });
|
|
3924
|
+
var PhotosGetParams = z35.strictObject({
|
|
3925
|
+
id: z35.string().min(1).max(256),
|
|
3844
3926
|
/** Copy the original into a folder Matrx 2 owns and answer its path (then fs_read or desktop_documents reads it). */
|
|
3845
|
-
export:
|
|
3927
|
+
export: z35.boolean().default(false)
|
|
3846
3928
|
});
|
|
3847
|
-
var PhotosGetResult =
|
|
3848
|
-
var LocationGetParams =
|
|
3849
|
-
var LocationGetResult =
|
|
3850
|
-
latitude:
|
|
3851
|
-
longitude:
|
|
3929
|
+
var PhotosGetResult = z35.strictObject({ photo: Photo, path: z35.string().nullable() });
|
|
3930
|
+
var LocationGetParams = z35.strictObject({ timeout_s: z35.int().min(1).max(60).default(15) });
|
|
3931
|
+
var LocationGetResult = z35.strictObject({
|
|
3932
|
+
latitude: z35.number().min(-90).max(90),
|
|
3933
|
+
longitude: z35.number().min(-180).max(180),
|
|
3852
3934
|
/** Metres; null where the OS does not say. */
|
|
3853
|
-
accuracy_m:
|
|
3935
|
+
accuracy_m: z35.number().min(0).nullable(),
|
|
3854
3936
|
at_ms: epochMs,
|
|
3855
3937
|
/** Who answered: the OS's own location service. */
|
|
3856
|
-
source:
|
|
3938
|
+
source: z35.enum(["corelocation", "windows", "geoclue"])
|
|
3857
3939
|
});
|
|
3858
3940
|
|
|
3859
3941
|
// src/schema/windows.ts
|
|
3860
|
-
import { z as
|
|
3861
|
-
var RegistryKey =
|
|
3862
|
-
var RegistryValueType =
|
|
3863
|
-
var WindowsRegistryReadParams =
|
|
3942
|
+
import { z as z36 } from "zod";
|
|
3943
|
+
var RegistryKey = z36.string().min(6).max(1024).regex(/^(HKLM|HKCU|HKCR|HKU|HKCC|HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER|HKEY_CLASSES_ROOT|HKEY_USERS|HKEY_CURRENT_CONFIG)(\\.*)?$/);
|
|
3944
|
+
var RegistryValueType = z36.enum(["REG_SZ", "REG_EXPAND_SZ", "REG_MULTI_SZ", "REG_DWORD", "REG_QWORD", "REG_BINARY", "REG_NONE"]);
|
|
3945
|
+
var WindowsRegistryReadParams = z36.strictObject({
|
|
3864
3946
|
key: RegistryKey,
|
|
3865
3947
|
/** One value's name ("" is the key's default value); absent: every value and the subkeys. */
|
|
3866
|
-
name:
|
|
3948
|
+
name: z36.string().max(16383).optional()
|
|
3867
3949
|
});
|
|
3868
|
-
var RegistryValue =
|
|
3869
|
-
var WindowsRegistryReadResult =
|
|
3870
|
-
key:
|
|
3871
|
-
exists:
|
|
3872
|
-
values:
|
|
3873
|
-
subkeys:
|
|
3950
|
+
var RegistryValue = z36.strictObject({ name: z36.string(), type: RegistryValueType, data: z36.string() });
|
|
3951
|
+
var WindowsRegistryReadResult = z36.strictObject({
|
|
3952
|
+
key: z36.string(),
|
|
3953
|
+
exists: z36.boolean(),
|
|
3954
|
+
values: z36.array(RegistryValue),
|
|
3955
|
+
subkeys: z36.array(z36.string())
|
|
3874
3956
|
});
|
|
3875
|
-
var WindowsRegistryWriteParams =
|
|
3957
|
+
var WindowsRegistryWriteParams = z36.strictObject({
|
|
3876
3958
|
key: RegistryKey,
|
|
3877
|
-
name:
|
|
3959
|
+
name: z36.string().max(16383),
|
|
3878
3960
|
type: RegistryValueType.default("REG_SZ"),
|
|
3879
3961
|
/** As reg.exe takes it: text, a number, hex for binary, \\0 between the strings of a multi-string. */
|
|
3880
|
-
data:
|
|
3962
|
+
data: z36.string().max(1048576),
|
|
3881
3963
|
/** Remove the value instead of writing it. */
|
|
3882
|
-
delete:
|
|
3964
|
+
delete: z36.boolean().default(false)
|
|
3883
3965
|
});
|
|
3884
|
-
var WindowsRegistryWriteResult =
|
|
3885
|
-
var WindowsServicesParams =
|
|
3966
|
+
var WindowsRegistryWriteResult = z36.strictObject({ key: z36.string(), name: z36.string(), deleted: z36.boolean() });
|
|
3967
|
+
var WindowsServicesParams = z36.strictObject({
|
|
3886
3968
|
/** Matched against the service's name and display name. */
|
|
3887
|
-
filter:
|
|
3888
|
-
limit:
|
|
3969
|
+
filter: z36.string().min(1).max(256).optional(),
|
|
3970
|
+
limit: z36.int().min(1).max(1e3).default(200)
|
|
3889
3971
|
});
|
|
3890
|
-
var WindowsService =
|
|
3891
|
-
name:
|
|
3892
|
-
display_name:
|
|
3972
|
+
var WindowsService = z36.strictObject({
|
|
3973
|
+
name: z36.string(),
|
|
3974
|
+
display_name: z36.string(),
|
|
3893
3975
|
/** Running, Stopped, Paused… as Windows says it. */
|
|
3894
|
-
status:
|
|
3976
|
+
status: z36.string(),
|
|
3895
3977
|
/** Automatic, Manual, Disabled…; null where Windows does not say. */
|
|
3896
|
-
start_type:
|
|
3978
|
+
start_type: z36.string().nullable()
|
|
3897
3979
|
});
|
|
3898
|
-
var WindowsServicesResult =
|
|
3899
|
-
var WindowsServiceControlParams =
|
|
3900
|
-
name:
|
|
3901
|
-
action:
|
|
3980
|
+
var WindowsServicesResult = z36.strictObject({ services: z36.array(WindowsService) });
|
|
3981
|
+
var WindowsServiceControlParams = z36.strictObject({
|
|
3982
|
+
name: z36.string().min(1).max(256),
|
|
3983
|
+
action: z36.enum(["start", "stop", "restart"])
|
|
3902
3984
|
});
|
|
3903
|
-
var WindowsServiceControlResult =
|
|
3904
|
-
var WindowsEventLogParams =
|
|
3905
|
-
log:
|
|
3985
|
+
var WindowsServiceControlResult = z36.strictObject({ name: z36.string(), status: z36.string() });
|
|
3986
|
+
var WindowsEventLogParams = z36.strictObject({
|
|
3987
|
+
log: z36.string().min(1).max(256).default("System"),
|
|
3906
3988
|
/** Only these levels; absent: all. */
|
|
3907
|
-
levels:
|
|
3989
|
+
levels: z36.array(z36.enum(["critical", "error", "warning", "information", "verbose"])).max(5).optional(),
|
|
3908
3990
|
since_ms: epochMs.optional(),
|
|
3909
|
-
limit:
|
|
3991
|
+
limit: z36.int().min(1).max(500).default(50)
|
|
3910
3992
|
});
|
|
3911
|
-
var WindowsEvent =
|
|
3912
|
-
id:
|
|
3913
|
-
level:
|
|
3914
|
-
source:
|
|
3993
|
+
var WindowsEvent = z36.strictObject({
|
|
3994
|
+
id: z36.int(),
|
|
3995
|
+
level: z36.string(),
|
|
3996
|
+
source: z36.string(),
|
|
3915
3997
|
at_ms: epochMs,
|
|
3916
|
-
message:
|
|
3998
|
+
message: z36.string()
|
|
3917
3999
|
});
|
|
3918
|
-
var WindowsEventLogResult =
|
|
3919
|
-
var WindowsFeaturesParams =
|
|
3920
|
-
var WindowsFeature =
|
|
3921
|
-
var WindowsFeaturesResult =
|
|
4000
|
+
var WindowsEventLogResult = z36.strictObject({ log: z36.string(), events: z36.array(WindowsEvent) });
|
|
4001
|
+
var WindowsFeaturesParams = z36.strictObject({ filter: z36.string().min(1).max(256).optional() });
|
|
4002
|
+
var WindowsFeature = z36.strictObject({ name: z36.string(), state: z36.string() });
|
|
4003
|
+
var WindowsFeaturesResult = z36.strictObject({ features: z36.array(WindowsFeature) });
|
|
3922
4004
|
|
|
3923
4005
|
// src/schema/schedule.ts
|
|
3924
|
-
import { z as
|
|
3925
|
-
var OpRef =
|
|
3926
|
-
var ScheduleCreateParams =
|
|
3927
|
-
name:
|
|
4006
|
+
import { z as z37 } from "zod";
|
|
4007
|
+
var OpRef = z37.string().min(3).max(128).regex(/^[a-z_]+(\.[a-z_]+)+$/);
|
|
4008
|
+
var ScheduleCreateParams = z37.strictObject({
|
|
4009
|
+
name: z37.string().min(1).max(200),
|
|
3928
4010
|
op: OpRef,
|
|
3929
4011
|
/** The op's params, exactly as the op takes them; checked when the task is created. */
|
|
3930
|
-
params:
|
|
3931
|
-
interval_s:
|
|
4012
|
+
params: z37.record(z37.string(), z37.unknown()).default({}),
|
|
4013
|
+
interval_s: z37.int().min(10).max(2592e3),
|
|
3932
4014
|
/** Stop after this many runs; absent: until cancelled. */
|
|
3933
|
-
max_runs:
|
|
4015
|
+
max_runs: z37.int().min(1).max(1e5).optional(),
|
|
3934
4016
|
/** Run once now, before the first interval. */
|
|
3935
|
-
run_now:
|
|
4017
|
+
run_now: z37.boolean().default(false)
|
|
3936
4018
|
});
|
|
3937
|
-
var ScheduleRun =
|
|
4019
|
+
var ScheduleRun = z37.strictObject({
|
|
3938
4020
|
at_ms: epochMs,
|
|
3939
|
-
ok:
|
|
4021
|
+
ok: z37.boolean(),
|
|
3940
4022
|
elapsed_ms: nonNegInt,
|
|
3941
4023
|
/** The error's code and message when the run failed. */
|
|
3942
|
-
error:
|
|
4024
|
+
error: z37.string().nullable(),
|
|
3943
4025
|
/** The start of the answer, as JSON (cut at 4 KiB). */
|
|
3944
|
-
result_preview:
|
|
4026
|
+
result_preview: z37.string().nullable()
|
|
3945
4027
|
});
|
|
3946
|
-
var ScheduledTask =
|
|
3947
|
-
id:
|
|
3948
|
-
name:
|
|
3949
|
-
op:
|
|
3950
|
-
params:
|
|
4028
|
+
var ScheduledTask = z37.strictObject({
|
|
4029
|
+
id: z37.string(),
|
|
4030
|
+
name: z37.string(),
|
|
4031
|
+
op: z37.string(),
|
|
4032
|
+
params: z37.record(z37.string(), z37.unknown()),
|
|
3951
4033
|
interval_s: nonNegInt,
|
|
3952
4034
|
max_runs: nonNegInt.nullable(),
|
|
3953
4035
|
runs: nonNegInt,
|
|
3954
4036
|
created_at_ms: epochMs,
|
|
3955
4037
|
next_run_at_ms: epochMs.nullable(),
|
|
3956
4038
|
/** active, done (ran max_runs), cancelled. */
|
|
3957
|
-
state:
|
|
4039
|
+
state: z37.enum(["active", "done", "cancelled"]),
|
|
3958
4040
|
/** The newest runs, newest first (at most 10). */
|
|
3959
|
-
recent:
|
|
4041
|
+
recent: z37.array(ScheduleRun)
|
|
3960
4042
|
});
|
|
3961
|
-
var ScheduleCreateResult =
|
|
3962
|
-
var ScheduleListParams =
|
|
3963
|
-
var ScheduleListResult =
|
|
3964
|
-
var ScheduleCancelParams =
|
|
3965
|
-
var ScheduleCancelResult =
|
|
4043
|
+
var ScheduleCreateResult = z37.strictObject({ task: ScheduledTask });
|
|
4044
|
+
var ScheduleListParams = z37.strictObject({ include_finished: z37.boolean().default(false) });
|
|
4045
|
+
var ScheduleListResult = z37.strictObject({ tasks: z37.array(ScheduledTask) });
|
|
4046
|
+
var ScheduleCancelParams = z37.strictObject({ id: z37.string().min(1).max(64) });
|
|
4047
|
+
var ScheduleCancelResult = z37.strictObject({ task: ScheduledTask });
|
|
3966
4048
|
|
|
3967
4049
|
// src/schema/notes.ts
|
|
3968
|
-
import { z as
|
|
3969
|
-
var NoteFolder =
|
|
3970
|
-
var NotePath =
|
|
3971
|
-
var NotesFoldersParams =
|
|
3972
|
-
var NotesFolder =
|
|
3973
|
-
var NotesFoldersResult =
|
|
4050
|
+
import { z as z38 } from "zod";
|
|
4051
|
+
var NoteFolder = z38.string().min(1).max(512).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*$/);
|
|
4052
|
+
var NotePath = z38.string().min(4).max(1024).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*\.md$/);
|
|
4053
|
+
var NotesFoldersParams = z38.strictObject({});
|
|
4054
|
+
var NotesFolder = z38.strictObject({ folder: z38.string(), notes: nonNegInt });
|
|
4055
|
+
var NotesFoldersResult = z38.strictObject({
|
|
3974
4056
|
/** The notes root on this computer. */
|
|
3975
|
-
root:
|
|
3976
|
-
folders:
|
|
4057
|
+
root: z38.string(),
|
|
4058
|
+
folders: z38.array(NotesFolder)
|
|
3977
4059
|
});
|
|
3978
|
-
var NotesListParams =
|
|
4060
|
+
var NotesListParams = z38.strictObject({
|
|
3979
4061
|
folder: NoteFolder.optional(),
|
|
3980
|
-
limit:
|
|
4062
|
+
limit: z38.int().min(1).max(2e3).default(500)
|
|
3981
4063
|
});
|
|
3982
|
-
var NoteEntry =
|
|
3983
|
-
path:
|
|
3984
|
-
label:
|
|
3985
|
-
folder:
|
|
4064
|
+
var NoteEntry = z38.strictObject({
|
|
4065
|
+
path: z38.string(),
|
|
4066
|
+
label: z38.string(),
|
|
4067
|
+
folder: z38.string(),
|
|
3986
4068
|
bytes: nonNegInt,
|
|
3987
4069
|
modified_at_ms: epochMs
|
|
3988
4070
|
});
|
|
3989
|
-
var NotesListResult =
|
|
3990
|
-
var NotesReadParams =
|
|
3991
|
-
var NotesReadResult =
|
|
3992
|
-
path:
|
|
3993
|
-
content:
|
|
4071
|
+
var NotesListResult = z38.strictObject({ root: z38.string(), notes: z38.array(NoteEntry), total: nonNegInt });
|
|
4072
|
+
var NotesReadParams = z38.strictObject({ path: NotePath });
|
|
4073
|
+
var NotesReadResult = z38.strictObject({
|
|
4074
|
+
path: z38.string(),
|
|
4075
|
+
content: z38.string(),
|
|
3994
4076
|
bytes: nonNegInt,
|
|
3995
4077
|
modified_at_ms: epochMs,
|
|
3996
4078
|
/** SHA-256 of the content: pass it back as `if_hash` to write only over this version. */
|
|
3997
|
-
hash:
|
|
4079
|
+
hash: z38.string()
|
|
3998
4080
|
});
|
|
3999
|
-
var NotesWriteParams =
|
|
4081
|
+
var NotesWriteParams = z38.strictObject({
|
|
4000
4082
|
folder: NoteFolder.default("General"),
|
|
4001
4083
|
/** The note's name, without ".md". */
|
|
4002
|
-
label:
|
|
4003
|
-
content:
|
|
4084
|
+
label: z38.string().min(1).max(200).regex(/^[^/\\:*?"<>|]+$/),
|
|
4085
|
+
content: z38.string().max(10485760),
|
|
4004
4086
|
/** Write only when the note is still this version (notes.read's hash); a change since answers CONFLICT. */
|
|
4005
|
-
if_hash:
|
|
4087
|
+
if_hash: z38.string().length(64).optional()
|
|
4006
4088
|
});
|
|
4007
|
-
var NotesWriteResult =
|
|
4008
|
-
var NotesSearchParams =
|
|
4009
|
-
query:
|
|
4010
|
-
limit:
|
|
4089
|
+
var NotesWriteResult = z38.strictObject({ path: z38.string(), bytes: nonNegInt, created: z38.boolean(), hash: z38.string() });
|
|
4090
|
+
var NotesSearchParams = z38.strictObject({
|
|
4091
|
+
query: z38.string().min(1).max(512),
|
|
4092
|
+
limit: z38.int().min(1).max(200).default(50)
|
|
4011
4093
|
});
|
|
4012
|
-
var NotesMatch =
|
|
4013
|
-
path:
|
|
4014
|
-
label:
|
|
4015
|
-
folder:
|
|
4094
|
+
var NotesMatch = z38.strictObject({
|
|
4095
|
+
path: z38.string(),
|
|
4096
|
+
label: z38.string(),
|
|
4097
|
+
folder: z38.string(),
|
|
4016
4098
|
/** The matching lines (at most five), trimmed. */
|
|
4017
|
-
lines:
|
|
4099
|
+
lines: z38.array(z38.string())
|
|
4018
4100
|
});
|
|
4019
|
-
var NotesSearchResult =
|
|
4101
|
+
var NotesSearchResult = z38.strictObject({ matches: z38.array(NotesMatch), total: nonNegInt });
|
|
4020
4102
|
|
|
4021
4103
|
// src/schema/documents.ts
|
|
4022
|
-
import { z as
|
|
4104
|
+
import { z as z39 } from "zod";
|
|
4023
4105
|
var DOCUMENTS_MAX_TEXT_CHARS = 1048576;
|
|
4024
|
-
var DocumentsPdfTextParams =
|
|
4106
|
+
var DocumentsPdfTextParams = z39.strictObject({
|
|
4025
4107
|
path: AbsPath,
|
|
4026
4108
|
/** 1-based, inclusive. */
|
|
4027
|
-
first_page:
|
|
4028
|
-
last_page:
|
|
4029
|
-
max_chars:
|
|
4109
|
+
first_page: z39.int().min(1).optional(),
|
|
4110
|
+
last_page: z39.int().min(1).optional(),
|
|
4111
|
+
max_chars: z39.int().min(1).max(DOCUMENTS_MAX_TEXT_CHARS).default(2e5)
|
|
4030
4112
|
});
|
|
4031
|
-
var DocumentsPdfPage =
|
|
4032
|
-
var DocumentsPdfTextResult =
|
|
4113
|
+
var DocumentsPdfPage = z39.strictObject({ page: z39.int().min(1), text: z39.string() });
|
|
4114
|
+
var DocumentsPdfTextResult = z39.strictObject({
|
|
4033
4115
|
pages: nonNegInt,
|
|
4034
4116
|
/** Each page read, in order (an image-only page has empty text: OCR it). */
|
|
4035
|
-
read:
|
|
4036
|
-
truncated:
|
|
4037
|
-
title:
|
|
4038
|
-
author:
|
|
4117
|
+
read: z39.array(DocumentsPdfPage),
|
|
4118
|
+
truncated: z39.boolean(),
|
|
4119
|
+
title: z39.string().nullable(),
|
|
4120
|
+
author: z39.string().nullable()
|
|
4039
4121
|
});
|
|
4040
|
-
var DocumentsOcrParams =
|
|
4122
|
+
var DocumentsOcrParams = z39.strictObject({
|
|
4041
4123
|
path: AbsPath,
|
|
4042
4124
|
/** BCP-47 language hints ("en-US", "fr-FR"); absent: the OS's own choice. */
|
|
4043
|
-
languages:
|
|
4125
|
+
languages: z39.array(z39.string().min(2).max(16)).max(8).optional(),
|
|
4044
4126
|
/** Faster, less accurate. */
|
|
4045
|
-
fast:
|
|
4127
|
+
fast: z39.boolean().default(false)
|
|
4046
4128
|
});
|
|
4047
|
-
var DocumentsOcrLine =
|
|
4048
|
-
text:
|
|
4129
|
+
var DocumentsOcrLine = z39.strictObject({
|
|
4130
|
+
text: z39.string(),
|
|
4049
4131
|
/** 0–1; null where the engine does not say. */
|
|
4050
|
-
confidence:
|
|
4132
|
+
confidence: z39.number().min(0).max(1).nullable()
|
|
4051
4133
|
});
|
|
4052
|
-
var DocumentsOcrResult =
|
|
4053
|
-
text:
|
|
4054
|
-
lines:
|
|
4055
|
-
truncated:
|
|
4134
|
+
var DocumentsOcrResult = z39.strictObject({
|
|
4135
|
+
text: z39.string(),
|
|
4136
|
+
lines: z39.array(DocumentsOcrLine),
|
|
4137
|
+
truncated: z39.boolean(),
|
|
4056
4138
|
/** Which engine read it ("vision" on macOS, "windows-ocr", "tesseract"). */
|
|
4057
|
-
engine:
|
|
4139
|
+
engine: z39.string()
|
|
4058
4140
|
});
|
|
4059
|
-
var DocumentsImageResizeParams =
|
|
4141
|
+
var DocumentsImageResizeParams = z39.strictObject({
|
|
4060
4142
|
path: AbsPath,
|
|
4061
4143
|
/** Where to write it; absent: next to the original, "<name>-resized.<ext>". */
|
|
4062
4144
|
out_path: AbsPath.optional(),
|
|
4063
4145
|
/** The longest side, kept in proportion; absent: the size stays (a format change only). */
|
|
4064
|
-
max_size:
|
|
4065
|
-
format:
|
|
4066
|
-
overwrite:
|
|
4146
|
+
max_size: z39.int().min(1).max(32768).optional(),
|
|
4147
|
+
format: z39.enum(["png", "jpeg", "tiff", "heic", "bmp", "gif"]).optional(),
|
|
4148
|
+
overwrite: z39.boolean().default(false)
|
|
4067
4149
|
});
|
|
4068
|
-
var DocumentsImageResizeResult =
|
|
4069
|
-
path:
|
|
4150
|
+
var DocumentsImageResizeResult = z39.strictObject({
|
|
4151
|
+
path: z39.string(),
|
|
4070
4152
|
width: nonNegInt,
|
|
4071
4153
|
height: nonNegInt,
|
|
4072
4154
|
bytes: nonNegInt
|
|
4073
4155
|
});
|
|
4074
|
-
var DocumentsParagraph =
|
|
4075
|
-
style:
|
|
4076
|
-
text:
|
|
4156
|
+
var DocumentsParagraph = z39.strictObject({
|
|
4157
|
+
style: z39.enum(["title", "heading1", "heading2", "heading3", "body", "bullet", "numbered", "quote", "code"]).default("body"),
|
|
4158
|
+
text: z39.string().max(1e5)
|
|
4077
4159
|
});
|
|
4078
|
-
var DocumentsSheet =
|
|
4079
|
-
name:
|
|
4160
|
+
var DocumentsSheet = z39.strictObject({
|
|
4161
|
+
name: z39.string().min(1).max(31),
|
|
4080
4162
|
/** Rows of cells; the first row is the header when `header` is true. */
|
|
4081
|
-
rows:
|
|
4082
|
-
header:
|
|
4163
|
+
rows: z39.array(z39.array(z39.union([z39.string().max(32767), z39.number(), z39.boolean(), z39.null()])).max(16384)).max(1e5),
|
|
4164
|
+
header: z39.boolean().default(true)
|
|
4083
4165
|
});
|
|
4084
|
-
var DocumentsOfficeGenerateParams =
|
|
4085
|
-
kind:
|
|
4166
|
+
var DocumentsOfficeGenerateParams = z39.strictObject({
|
|
4167
|
+
kind: z39.enum(["docx", "xlsx"]),
|
|
4086
4168
|
path: AbsPath,
|
|
4087
|
-
title:
|
|
4169
|
+
title: z39.string().max(1024).optional(),
|
|
4088
4170
|
/** docx: the document's paragraphs, in order. */
|
|
4089
|
-
paragraphs:
|
|
4171
|
+
paragraphs: z39.array(DocumentsParagraph).max(5e4).optional(),
|
|
4090
4172
|
/** xlsx: the workbook's sheets, in order. */
|
|
4091
|
-
sheets:
|
|
4092
|
-
overwrite:
|
|
4173
|
+
sheets: z39.array(DocumentsSheet).min(1).max(64).optional(),
|
|
4174
|
+
overwrite: z39.boolean().default(false)
|
|
4093
4175
|
});
|
|
4094
|
-
var DocumentsOfficeGenerateResult =
|
|
4095
|
-
var EntitiesNerParams =
|
|
4096
|
-
text:
|
|
4176
|
+
var DocumentsOfficeGenerateResult = z39.strictObject({ path: z39.string(), bytes: nonNegInt });
|
|
4177
|
+
var EntitiesNerParams = z39.strictObject({
|
|
4178
|
+
text: z39.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
|
|
4097
4179
|
/** Which kinds to keep; absent: all three. */
|
|
4098
|
-
labels:
|
|
4180
|
+
labels: z39.array(z39.enum(["person", "place", "organization"])).min(1).max(3).optional()
|
|
4099
4181
|
});
|
|
4100
|
-
var EntitySpan =
|
|
4101
|
-
text:
|
|
4102
|
-
label:
|
|
4182
|
+
var EntitySpan = z39.strictObject({
|
|
4183
|
+
text: z39.string(),
|
|
4184
|
+
label: z39.string(),
|
|
4103
4185
|
/** Character offsets into the text (UTF-16, as JavaScript counts). */
|
|
4104
4186
|
start: nonNegInt,
|
|
4105
4187
|
end: nonNegInt
|
|
4106
4188
|
});
|
|
4107
|
-
var EntitiesNerResult =
|
|
4108
|
-
var PiiKind =
|
|
4109
|
-
var EntitiesPiiParams =
|
|
4110
|
-
text:
|
|
4111
|
-
kinds:
|
|
4189
|
+
var EntitiesNerResult = z39.strictObject({ entities: z39.array(EntitySpan), engine: z39.string() });
|
|
4190
|
+
var PiiKind = z39.enum(["email", "phone", "credit_card", "us_ssn", "iban", "ip_address", "url", "api_key"]);
|
|
4191
|
+
var EntitiesPiiParams = z39.strictObject({
|
|
4192
|
+
text: z39.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
|
|
4193
|
+
kinds: z39.array(PiiKind).min(1).max(8).optional(),
|
|
4112
4194
|
/** Also answer the text with each finding replaced by its kind ("[email]"). */
|
|
4113
|
-
redact:
|
|
4195
|
+
redact: z39.boolean().default(false)
|
|
4114
4196
|
});
|
|
4115
|
-
var EntitiesPiiResult =
|
|
4116
|
-
findings:
|
|
4117
|
-
redacted:
|
|
4197
|
+
var EntitiesPiiResult = z39.strictObject({
|
|
4198
|
+
findings: z39.array(z39.strictObject({ kind: PiiKind, text: z39.string(), start: nonNegInt, end: nonNegInt })),
|
|
4199
|
+
redacted: z39.string().nullable()
|
|
4118
4200
|
});
|
|
4119
4201
|
|
|
4120
4202
|
// src/schema/registry.ts
|
|
@@ -4181,6 +4263,9 @@ var OPS = {
|
|
|
4181
4263
|
"apps.windows.refresh_usage": { params: AppsWindowsRefreshUsageParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4182
4264
|
"apps.accounts.usage": { params: AppsAccountsUsageParams, result: AppsAccountsUsageResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4183
4265
|
"apps.accounts.resets": { params: AppsAccountsResetsParams, result: AppsAccountsResetsResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4266
|
+
// 1.47: instances and accounts kept apart — an account's usage is the account's, every instance shows it by id.
|
|
4267
|
+
"apps.instances.list": { params: AppsInstancesListParams, result: AppsInstancesListResult, kind: "unary", since: "1.47", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4268
|
+
"apps.accounts.list": { params: AppsAccountsListParams, result: AppsAccountsListResult, kind: "unary", since: "1.47", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4184
4269
|
"apps.projects.move": { params: AppsProjectsMoveParams, result: AppsProjectsMoveResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4185
4270
|
"apps.projects.create": { params: AppsProjectsCreateParams, result: AppsProjectsCreateResult, kind: "unary", since: "1.10", errors: ["INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
4186
4271
|
"apps.projects.import_pins": { params: AppsProjectsImportPinsParams, result: AppsProjectsImportPinsResult, kind: "unary", since: "1.10", errors: ["CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|