@ai-matrx/desktop-protocol 0.21.91 → 0.21.92
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/{chunk-server-7Q7L4DZ2.js → chunk-server-AANZ3QIC.js} +1356 -1309
- package/dist/chunk-server-AANZ3QIC.js.map +1 -0
- package/dist/{chunk-server-3GQSOBMI.js → chunk-server-FPYXJ5IT.js} +3 -3
- package/dist/{chunk-server-KY27EMK4.js → chunk-server-WSXKBBEB.js} +2 -2
- package/dist/chunk-server-WSXKBBEB.js.map +1 -0
- package/dist/{chunk-server-IN2FRJI2.js → chunk-server-YUJXCEFI.js} +2 -2
- package/dist/client.cjs +1369 -1320
- 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 +3 -3
- package/dist/index.cjs +575 -528
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +144 -85
- package/dist/index.d.ts +144 -85
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/{models-x0kM5elk.d.cts → models-D7pVOe7f.d.cts} +243 -143
- package/dist/{models-x0kM5elk.d.ts → models-D7pVOe7f.d.ts} +243 -143
- package/generated/desktop-protocol.schema.json +153 -2
- package/package.json +2 -2
- package/dist/chunk-server-7Q7L4DZ2.js.map +0 -1
- package/dist/chunk-server-KY27EMK4.js.map +0 -1
- /package/dist/{chunk-server-3GQSOBMI.js.map → chunk-server-FPYXJ5IT.js.map} +0 -0
- /package/dist/{chunk-server-IN2FRJI2.js.map → chunk-server-YUJXCEFI.js.map} +0 -0
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
epochMs,
|
|
34
34
|
nonNegInt,
|
|
35
35
|
u32
|
|
36
|
-
} from "./chunk-server-
|
|
36
|
+
} from "./chunk-server-WSXKBBEB.js";
|
|
37
37
|
|
|
38
38
|
// src/schema/sysinfo.ts
|
|
39
39
|
import { z } from "zod";
|
|
@@ -752,7 +752,7 @@ var ModelsProgressEvent = z5.strictObject({ request_id: RequestId, progress: MlP
|
|
|
752
752
|
// src/schema/service.ts
|
|
753
753
|
import { z as z6 } from "zod";
|
|
754
754
|
var SERVICE_MAX_FRAME_BYTES = 16777216;
|
|
755
|
-
var ServiceName = z6.enum(["ml", "coding", "tools"]);
|
|
755
|
+
var ServiceName = z6.enum(["ml", "coding", "tools", "agent"]);
|
|
756
756
|
var ContractHash = z6.string().regex(/^[0-9a-f]{64}$/);
|
|
757
757
|
var ServiceToken = z6.string().regex(/^[A-Za-z0-9_-]{43}$/);
|
|
758
758
|
var ServiceRequestId = u32;
|
|
@@ -2652,166 +2652,192 @@ var CodingAssetsGetResult = z27.strictObject({
|
|
|
2652
2652
|
truncated: z27.boolean()
|
|
2653
2653
|
});
|
|
2654
2654
|
|
|
2655
|
-
// src/schema/
|
|
2655
|
+
// src/schema/agent-service.ts
|
|
2656
2656
|
import { z as z28 } from "zod";
|
|
2657
|
-
var
|
|
2658
|
-
var
|
|
2659
|
-
var
|
|
2660
|
-
var
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2657
|
+
var AgentServiceStateName = z28.enum(["not_installed", "installing", "installed", "listening", "failed"]);
|
|
2658
|
+
var AgentStatusParams = z28.strictObject({});
|
|
2659
|
+
var AgentInstallParams = z28.strictObject({});
|
|
2660
|
+
var AgentStartParams = z28.strictObject({
|
|
2661
|
+
/** The local model llama-server runs (models.llm.status's running id). */
|
|
2662
|
+
model: z28.string().min(1).max(256),
|
|
2663
|
+
/** The core's localhost listener port: the model is reached through its /openai/v1 door. */
|
|
2664
|
+
listener_port: z28.int().min(1).max(65535),
|
|
2665
|
+
/** The app's own key for that door (per launch; never logged). */
|
|
2666
|
+
key: z28.string().min(16).max(256),
|
|
2667
|
+
/** Renderer origins allowed to call the listener (CORS). */
|
|
2668
|
+
allow_origins: z28.array(z28.string().min(1).max(512)).max(16)
|
|
2669
|
+
});
|
|
2670
|
+
var AgentServiceState = z28.strictObject({
|
|
2671
|
+
state: AgentServiceStateName,
|
|
2672
|
+
/** Why it failed, in the installer's or the service's words; null otherwise. */
|
|
2673
|
+
error: z28.string().max(2e3).nullable(),
|
|
2674
|
+
/** The /ai listener's port on 127.0.0.1 while it listens; null otherwise. */
|
|
2675
|
+
port: z28.int().min(1).max(65535).nullable(),
|
|
2676
|
+
/** The model the listener answers with while it listens; null otherwise. */
|
|
2677
|
+
model: z28.string().max(256).nullable()
|
|
2678
|
+
});
|
|
2679
|
+
var AgentServiceProgress = z28.strictObject({ phase: z28.enum(["installing", "compiling"]), done: nonNegInt, total: nonNegInt });
|
|
2680
|
+
|
|
2681
|
+
// src/schema/coding-sessions.ts
|
|
2682
|
+
import { z as z29 } from "zod";
|
|
2683
|
+
var CodingProviderName = z29.enum(["claude", "codex"]);
|
|
2684
|
+
var CodingRunStatus = z29.enum(["starting", "running", "completed", "stopped", "failed"]);
|
|
2685
|
+
var SessionKey = z29.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
|
|
2686
|
+
var IsoTime = z29.string().min(10).max(40);
|
|
2687
|
+
var LocalPath = z29.string().min(1).max(4096);
|
|
2688
|
+
var CodingClientRequestId = z29.string().regex(/^[A-Za-z0-9_-]{8,64}$/);
|
|
2689
|
+
var ShortText = z29.string().max(500);
|
|
2690
|
+
var CodingRunUsage = z29.strictObject({
|
|
2665
2691
|
inputTokens: nonNegInt,
|
|
2666
2692
|
outputTokens: nonNegInt,
|
|
2667
2693
|
cachedInputTokens: nonNegInt
|
|
2668
2694
|
});
|
|
2669
|
-
var CodingStartedBy =
|
|
2670
|
-
kind:
|
|
2671
|
-
label:
|
|
2695
|
+
var CodingStartedBy = z29.strictObject({
|
|
2696
|
+
kind: z29.enum(["this_computer", "web", "phone", "agent", "other"]),
|
|
2697
|
+
label: z29.string().min(1).max(80)
|
|
2672
2698
|
});
|
|
2673
|
-
var CodingRunRecord =
|
|
2674
|
-
runId:
|
|
2699
|
+
var CodingRunRecord = z29.strictObject({
|
|
2700
|
+
runId: z29.string().min(1).max(64),
|
|
2675
2701
|
sessionId: SessionKey,
|
|
2676
2702
|
provider: CodingProviderName,
|
|
2677
2703
|
cwd: LocalPath,
|
|
2678
|
-
prompt:
|
|
2679
|
-
model:
|
|
2704
|
+
prompt: z29.string().max(1048576),
|
|
2705
|
+
model: z29.string().max(200).nullable(),
|
|
2680
2706
|
status: CodingRunStatus,
|
|
2681
2707
|
startedAt: IsoTime,
|
|
2682
2708
|
endedAt: IsoTime.nullable(),
|
|
2683
|
-
error:
|
|
2709
|
+
error: z29.string().max(65536).nullable(),
|
|
2684
2710
|
usage: CodingRunUsage.nullable(),
|
|
2685
|
-
costUsd:
|
|
2686
|
-
billing:
|
|
2711
|
+
costUsd: z29.number().nullable(),
|
|
2712
|
+
billing: z29.enum(["subscription", "api", "unknown"]).nullable(),
|
|
2687
2713
|
startedBy: CodingStartedBy.nullable()
|
|
2688
2714
|
});
|
|
2689
|
-
var CodingSessionAgentPart =
|
|
2690
|
-
part:
|
|
2715
|
+
var CodingSessionAgentPart = z29.strictObject({
|
|
2716
|
+
part: z29.enum(["instructions", "skills", "tools"]),
|
|
2691
2717
|
loaded: nonNegInt,
|
|
2692
2718
|
total: nonNegInt
|
|
2693
2719
|
});
|
|
2694
|
-
var CodingSessionAgent =
|
|
2695
|
-
agentId:
|
|
2696
|
-
versionId:
|
|
2720
|
+
var CodingSessionAgent = z29.strictObject({
|
|
2721
|
+
agentId: z29.string().min(1).max(64),
|
|
2722
|
+
versionId: z29.string().max(64).nullable(),
|
|
2697
2723
|
versionNumber: nonNegInt.nullable(),
|
|
2698
|
-
name:
|
|
2699
|
-
definitionHash:
|
|
2700
|
-
loaded:
|
|
2701
|
-
unavailable:
|
|
2702
|
-
skills:
|
|
2703
|
-
tools:
|
|
2704
|
-
variables:
|
|
2705
|
-
blockDue:
|
|
2724
|
+
name: z29.string().max(300),
|
|
2725
|
+
definitionHash: z29.string().max(200),
|
|
2726
|
+
loaded: z29.array(CodingSessionAgentPart).max(3),
|
|
2727
|
+
unavailable: z29.array(z29.strictObject({ kind: z29.string().max(60), name: z29.string().max(300), reason: ShortText })).max(500),
|
|
2728
|
+
skills: z29.array(z29.string().max(300)).max(500),
|
|
2729
|
+
tools: z29.array(z29.string().max(300)).max(500),
|
|
2730
|
+
variables: z29.record(z29.string().max(200), z29.unknown()),
|
|
2731
|
+
blockDue: z29.boolean(),
|
|
2706
2732
|
deliveredAt: IsoTime.nullable(),
|
|
2707
|
-
replaces:
|
|
2733
|
+
replaces: z29.string().max(300).nullable()
|
|
2708
2734
|
});
|
|
2709
|
-
var CodingSessionRecord =
|
|
2735
|
+
var CodingSessionRecord = z29.strictObject({
|
|
2710
2736
|
id: SessionKey,
|
|
2711
2737
|
provider: CodingProviderName,
|
|
2712
2738
|
providerSessionId: SessionKey.nullable(),
|
|
2713
2739
|
cwd: LocalPath,
|
|
2714
|
-
title:
|
|
2715
|
-
model:
|
|
2716
|
-
effort:
|
|
2717
|
-
origin:
|
|
2740
|
+
title: z29.string().max(500),
|
|
2741
|
+
model: z29.string().max(200).nullable(),
|
|
2742
|
+
effort: z29.string().max(40).nullable(),
|
|
2743
|
+
origin: z29.enum(["started", "takeover"]),
|
|
2718
2744
|
createdAt: IsoTime,
|
|
2719
2745
|
updatedAt: IsoTime,
|
|
2720
|
-
lastRunId:
|
|
2746
|
+
lastRunId: z29.string().max(64).nullable(),
|
|
2721
2747
|
lastRunStatus: CodingRunStatus.nullable(),
|
|
2722
|
-
queued:
|
|
2748
|
+
queued: z29.array(z29.string().max(1048576)).max(100),
|
|
2723
2749
|
agent: CodingSessionAgent.nullable(),
|
|
2724
|
-
agentRemovedDue:
|
|
2750
|
+
agentRemovedDue: z29.boolean(),
|
|
2725
2751
|
/**
|
|
2726
2752
|
* (1.57) Claude Code: the account the record belongs to (Accounts' profile id): the one a session
|
|
2727
2753
|
* runs as, or whose config directory holds the chat. Absent: the default sign-in.
|
|
2728
2754
|
*/
|
|
2729
|
-
accountId:
|
|
2755
|
+
accountId: z29.string().min(1).max(64).optional()
|
|
2730
2756
|
});
|
|
2731
|
-
var CodingActiveElsewhere =
|
|
2732
|
-
reason:
|
|
2757
|
+
var CodingActiveElsewhere = z29.strictObject({
|
|
2758
|
+
reason: z29.enum(["process", "recent-write", "open-tool-call", "open"]),
|
|
2733
2759
|
message: ShortText,
|
|
2734
2760
|
/** The process driving it, when the evidence is a process (re-checked before any stop). */
|
|
2735
|
-
pid:
|
|
2761
|
+
pid: z29.int().min(1).nullable()
|
|
2736
2762
|
});
|
|
2737
|
-
var CodingTitleSource =
|
|
2738
|
-
var CodingDiscoveredChat =
|
|
2763
|
+
var CodingTitleSource = z29.enum(["app", "app-remembered", "custom-title", "ai-title", "agent-name", "summary", "first-prompt", "last-prompt", "unknown"]);
|
|
2764
|
+
var CodingDiscoveredChat = z29.strictObject({
|
|
2739
2765
|
provider: CodingProviderName,
|
|
2740
2766
|
providerSessionId: SessionKey,
|
|
2741
2767
|
cwd: LocalPath.nullable(),
|
|
2742
|
-
title:
|
|
2768
|
+
title: z29.string().max(500),
|
|
2743
2769
|
titleSource: CodingTitleSource.optional(),
|
|
2744
|
-
titlePending:
|
|
2745
|
-
archived:
|
|
2746
|
-
scheduled:
|
|
2747
|
-
unlisted:
|
|
2770
|
+
titlePending: z29.boolean().optional(),
|
|
2771
|
+
archived: z29.boolean().optional(),
|
|
2772
|
+
scheduled: z29.boolean().optional(),
|
|
2773
|
+
unlisted: z29.boolean().optional(),
|
|
2748
2774
|
unavailable: ShortText.nullable(),
|
|
2749
2775
|
updatedAt: IsoTime,
|
|
2750
|
-
source:
|
|
2776
|
+
source: z29.string().max(60).nullable(),
|
|
2751
2777
|
activeElsewhere: CodingActiveElsewhere.nullable(),
|
|
2752
2778
|
/**
|
|
2753
2779
|
* (1.57) Claude Code: the account the record belongs to (Accounts' profile id): the one a session
|
|
2754
2780
|
* runs as, or whose config directory holds the chat. Absent: the default sign-in.
|
|
2755
2781
|
*/
|
|
2756
|
-
accountId:
|
|
2757
|
-
});
|
|
2758
|
-
var CodingTranscriptItem =
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
kind:
|
|
2766
|
-
id:
|
|
2767
|
-
output:
|
|
2768
|
-
isError:
|
|
2782
|
+
accountId: z29.string().min(1).max(64).optional()
|
|
2783
|
+
});
|
|
2784
|
+
var CodingTranscriptItem = z29.discriminatedUnion("kind", [
|
|
2785
|
+
z29.strictObject({ kind: z29.literal("user"), id: z29.string().max(200), text: z29.string(), at: IsoTime.nullable() }),
|
|
2786
|
+
z29.strictObject({ kind: z29.literal("text"), id: z29.string().max(200), text: z29.string() }),
|
|
2787
|
+
z29.strictObject({ kind: z29.literal("text-delta"), id: z29.string().max(200), text: z29.string() }),
|
|
2788
|
+
z29.strictObject({ kind: z29.literal("reasoning"), id: z29.string().max(200), text: z29.string() }),
|
|
2789
|
+
z29.strictObject({ kind: z29.literal("tool-call"), id: z29.string().max(200), name: z29.string().max(300), input: z29.unknown() }),
|
|
2790
|
+
z29.strictObject({
|
|
2791
|
+
kind: z29.literal("tool-result"),
|
|
2792
|
+
id: z29.string().max(200),
|
|
2793
|
+
output: z29.string(),
|
|
2794
|
+
isError: z29.boolean(),
|
|
2769
2795
|
/** The output's full size when only its start is here; `coding.item.full` reads the rest. */
|
|
2770
2796
|
fullBytes: nonNegInt.optional()
|
|
2771
2797
|
}),
|
|
2772
|
-
|
|
2773
|
-
|
|
2798
|
+
z29.strictObject({ kind: z29.literal("usage"), usage: CodingRunUsage, costUsd: z29.number().nullable() }),
|
|
2799
|
+
z29.strictObject({ kind: z29.literal("notice"), id: z29.string().max(200), level: z29.enum(["info", "warning"]), text: z29.string() }),
|
|
2774
2800
|
/** "Continue on <account>": the line across the transcript where the chat moved from `from`. */
|
|
2775
|
-
|
|
2776
|
-
|
|
2801
|
+
z29.strictObject({ kind: z29.literal("continued"), id: z29.string().max(200), from: z29.string().max(300), text: z29.string(), at: IsoTime.nullable() }),
|
|
2802
|
+
z29.strictObject({ kind: z29.literal("error"), id: z29.string().max(200), text: z29.string() })
|
|
2777
2803
|
]);
|
|
2778
|
-
var CodingHistoryRecord =
|
|
2779
|
-
items:
|
|
2804
|
+
var CodingHistoryRecord = z29.strictObject({
|
|
2805
|
+
items: z29.array(CodingTranscriptItem),
|
|
2780
2806
|
/** Only the end of the chat is here; "Show earlier" reads more (a bigger `max_bytes`). */
|
|
2781
|
-
truncated:
|
|
2807
|
+
truncated: z29.boolean(),
|
|
2782
2808
|
unavailable: ShortText.nullable(),
|
|
2783
2809
|
/** The last live item `seq` this read already contains; a watch applies only newer ones. */
|
|
2784
2810
|
seq: nonNegInt
|
|
2785
2811
|
});
|
|
2786
|
-
var CodingQuotaWindow =
|
|
2787
|
-
label:
|
|
2788
|
-
usedPercent:
|
|
2789
|
-
resetsAt:
|
|
2790
|
-
valueLabel:
|
|
2812
|
+
var CodingQuotaWindow = z29.strictObject({
|
|
2813
|
+
label: z29.string().max(120),
|
|
2814
|
+
usedPercent: z29.number().nullable(),
|
|
2815
|
+
resetsAt: z29.string().max(80).nullable(),
|
|
2816
|
+
valueLabel: z29.string().max(120).nullable()
|
|
2791
2817
|
});
|
|
2792
|
-
var CodingProviderProblem =
|
|
2793
|
-
kind:
|
|
2794
|
-
message:
|
|
2795
|
-
until:
|
|
2818
|
+
var CodingProviderProblem = z29.strictObject({
|
|
2819
|
+
kind: z29.enum(["usage-limit", "signed-out"]),
|
|
2820
|
+
message: z29.string().max(2e3),
|
|
2821
|
+
until: z29.string().max(120).nullable(),
|
|
2796
2822
|
at: IsoTime
|
|
2797
2823
|
});
|
|
2798
|
-
var CodingAccountUsage =
|
|
2799
|
-
windows:
|
|
2824
|
+
var CodingAccountUsage = z29.strictObject({
|
|
2825
|
+
windows: z29.array(CodingQuotaWindow).max(20),
|
|
2800
2826
|
/** The provider's own status word ("allowed", "allowed_warning", "rejected"...), when it gives one. */
|
|
2801
|
-
status:
|
|
2827
|
+
status: z29.string().max(60).nullable(),
|
|
2802
2828
|
/** When a rejected status lifts (ISO), when the provider says. */
|
|
2803
|
-
resetsAt:
|
|
2829
|
+
resetsAt: z29.string().max(80).nullable(),
|
|
2804
2830
|
at: IsoTime
|
|
2805
2831
|
});
|
|
2806
|
-
var CodingContinueTarget =
|
|
2807
|
-
accountId:
|
|
2808
|
-
label:
|
|
2832
|
+
var CodingContinueTarget = z29.strictObject({
|
|
2833
|
+
accountId: z29.string().min(1).max(64).nullable(),
|
|
2834
|
+
label: z29.string().max(200)
|
|
2809
2835
|
});
|
|
2810
|
-
var CodingProviderAccount =
|
|
2811
|
-
id:
|
|
2812
|
-
label:
|
|
2836
|
+
var CodingProviderAccount = z29.strictObject({
|
|
2837
|
+
id: z29.string().min(1).max(64),
|
|
2838
|
+
label: z29.string().max(200),
|
|
2813
2839
|
/** (1.57) No known usage limit or expired sign-in on this account. Absent: not read. */
|
|
2814
|
-
ready:
|
|
2840
|
+
ready: z29.boolean().optional(),
|
|
2815
2841
|
lastProblem: CodingProviderProblem.optional(),
|
|
2816
2842
|
problem: ShortText.optional(),
|
|
2817
2843
|
fix: ShortText.optional(),
|
|
@@ -2820,43 +2846,43 @@ var CodingProviderAccount = z28.strictObject({
|
|
|
2820
2846
|
/** (1.57) This account is limited and that other one is not: "Continue on <label>". */
|
|
2821
2847
|
continueOn: CodingContinueTarget.optional()
|
|
2822
2848
|
});
|
|
2823
|
-
var CodingProviderBinary =
|
|
2849
|
+
var CodingProviderBinary = z29.strictObject({
|
|
2824
2850
|
path: LocalPath,
|
|
2825
|
-
version:
|
|
2826
|
-
source:
|
|
2827
|
-
sourceLabel:
|
|
2828
|
-
newer:
|
|
2851
|
+
version: z29.string().max(80).nullable(),
|
|
2852
|
+
source: z29.enum(["desktop-app", "path", "npm-global", "configured"]),
|
|
2853
|
+
sourceLabel: z29.string().max(120),
|
|
2854
|
+
newer: z29.strictObject({ path: LocalPath, version: z29.string().max(80), sourceLabel: z29.string().max(120) }).nullable()
|
|
2829
2855
|
});
|
|
2830
|
-
var CodingProviderStatus =
|
|
2856
|
+
var CodingProviderStatus = z29.strictObject({
|
|
2831
2857
|
provider: CodingProviderName,
|
|
2832
|
-
label:
|
|
2833
|
-
installed:
|
|
2834
|
-
version:
|
|
2835
|
-
loggedIn:
|
|
2836
|
-
billing:
|
|
2837
|
-
plan:
|
|
2838
|
-
account:
|
|
2858
|
+
label: z29.string().max(60),
|
|
2859
|
+
installed: z29.boolean(),
|
|
2860
|
+
version: z29.string().max(80).nullable(),
|
|
2861
|
+
loggedIn: z29.boolean(),
|
|
2862
|
+
billing: z29.enum(["subscription", "api", "unknown"]),
|
|
2863
|
+
plan: z29.string().max(80).nullable(),
|
|
2864
|
+
account: z29.string().max(320).nullable(),
|
|
2839
2865
|
problem: ShortText.nullable(),
|
|
2840
2866
|
fix: ShortText.nullable(),
|
|
2841
|
-
ready:
|
|
2867
|
+
ready: z29.boolean(),
|
|
2842
2868
|
lastProblem: CodingProviderProblem.nullable(),
|
|
2843
|
-
quota:
|
|
2844
|
-
models:
|
|
2845
|
-
efforts:
|
|
2869
|
+
quota: z29.array(CodingQuotaWindow).max(20),
|
|
2870
|
+
models: z29.array(z29.strictObject({ id: z29.string().max(200), label: z29.string().max(200) })).max(200),
|
|
2871
|
+
efforts: z29.array(z29.string().max(40)).max(20),
|
|
2846
2872
|
/**
|
|
2847
2873
|
* Where the default model came from: the app's own settings file, the account (1.54: the signed-in
|
|
2848
2874
|
* account's default, e.g. Codex's), or the driver's built-in pick. A peer older than 1.54 is sent
|
|
2849
2875
|
* "driver" for "account" (its enum does not know the value).
|
|
2850
2876
|
*/
|
|
2851
|
-
defaultModel:
|
|
2852
|
-
defaultEffort:
|
|
2877
|
+
defaultModel: z29.strictObject({ id: z29.string().max(200), source: z29.enum(["settings", "driver", "account"]) }).nullable(),
|
|
2878
|
+
defaultEffort: z29.string().max(40).nullable(),
|
|
2853
2879
|
binary: CodingProviderBinary.nullable(),
|
|
2854
2880
|
/**
|
|
2855
2881
|
* (1.53) The person's other accounts for this app on the computer (Matrx 2's Accounts) that a run
|
|
2856
2882
|
* can use, as the computer's engine lists them; New session offers them beside the default sign-in.
|
|
2857
2883
|
* Absent: only the default sign-in (or a computer older than 1.53).
|
|
2858
2884
|
*/
|
|
2859
|
-
accounts:
|
|
2885
|
+
accounts: z29.array(CodingProviderAccount).max(100).optional(),
|
|
2860
2886
|
/** (1.53) The computer tried to list `accounts` and could not: a short sentence the form shows with a retry. */
|
|
2861
2887
|
accountsProblem: ShortText.optional(),
|
|
2862
2888
|
/** (1.57) The default sign-in's usage as last seen. Absent: never seen ("No usage data yet"). */
|
|
@@ -2864,250 +2890,250 @@ var CodingProviderStatus = z28.strictObject({
|
|
|
2864
2890
|
/** (1.57) The default sign-in is limited and this other account is not: "Continue on <label>". */
|
|
2865
2891
|
continueOn: CodingContinueTarget.optional()
|
|
2866
2892
|
});
|
|
2867
|
-
var CodingChatPreference =
|
|
2868
|
-
title:
|
|
2869
|
-
pinned:
|
|
2870
|
-
hidden:
|
|
2893
|
+
var CodingChatPreference = z29.strictObject({
|
|
2894
|
+
title: z29.string().max(500).nullable(),
|
|
2895
|
+
pinned: z29.boolean(),
|
|
2896
|
+
hidden: z29.boolean(),
|
|
2871
2897
|
/** When the person last had this chat open on any screen of this computer (the "New output" dot). */
|
|
2872
2898
|
lastSeenAt: IsoTime.nullable(),
|
|
2873
2899
|
updatedAt: IsoTime.nullable()
|
|
2874
2900
|
});
|
|
2875
|
-
var CodingTitleStatus =
|
|
2876
|
-
owner:
|
|
2877
|
-
pending:
|
|
2901
|
+
var CodingTitleStatus = z29.strictObject({
|
|
2902
|
+
owner: z29.boolean(),
|
|
2903
|
+
pending: z29.boolean(),
|
|
2878
2904
|
problem: ShortText.nullable(),
|
|
2879
2905
|
renames: ShortText.nullable()
|
|
2880
2906
|
});
|
|
2881
|
-
var CodingRecentRow =
|
|
2882
|
-
target:
|
|
2883
|
-
title:
|
|
2907
|
+
var CodingRecentRow = z29.strictObject({
|
|
2908
|
+
target: z29.string().min(3).max(200),
|
|
2909
|
+
title: z29.string().max(500),
|
|
2884
2910
|
provider: CodingProviderName,
|
|
2885
2911
|
sessionId: SessionKey.nullable(),
|
|
2886
2912
|
providerSessionId: SessionKey.nullable(),
|
|
2887
2913
|
cwd: LocalPath.nullable(),
|
|
2888
2914
|
updatedAt: IsoTime,
|
|
2889
|
-
state:
|
|
2890
|
-
stateLabel:
|
|
2891
|
-
pinned:
|
|
2915
|
+
state: z29.enum(["running", "needs_attention", "new_output", "elsewhere", "idle"]),
|
|
2916
|
+
stateLabel: z29.string().max(120).nullable(),
|
|
2917
|
+
pinned: z29.boolean(),
|
|
2892
2918
|
startedBy: CodingStartedBy.nullable(),
|
|
2893
2919
|
/**
|
|
2894
2920
|
* (1.57) Claude Code: the account the record belongs to (Accounts' profile id): the one a session
|
|
2895
2921
|
* runs as, or whose config directory holds the chat. Absent: the default sign-in.
|
|
2896
2922
|
*/
|
|
2897
|
-
accountId:
|
|
2923
|
+
accountId: z29.string().min(1).max(64).optional()
|
|
2898
2924
|
});
|
|
2899
|
-
var CodingFolderCheck =
|
|
2900
|
-
path:
|
|
2901
|
-
exists:
|
|
2902
|
-
isDirectory:
|
|
2925
|
+
var CodingFolderCheck = z29.strictObject({
|
|
2926
|
+
path: z29.string().max(4096),
|
|
2927
|
+
exists: z29.boolean(),
|
|
2928
|
+
isDirectory: z29.boolean()
|
|
2903
2929
|
});
|
|
2904
|
-
var CodingRecentFolder =
|
|
2905
|
-
var CodingAgentSelectionParams =
|
|
2906
|
-
agent_id:
|
|
2907
|
-
version_id:
|
|
2908
|
-
variables:
|
|
2930
|
+
var CodingRecentFolder = z29.strictObject({ path: LocalPath, lastUsedAt: IsoTime, exists: z29.boolean() });
|
|
2931
|
+
var CodingAgentSelectionParams = z29.strictObject({
|
|
2932
|
+
agent_id: z29.string().min(1).max(64),
|
|
2933
|
+
version_id: z29.string().min(1).max(64).optional(),
|
|
2934
|
+
variables: z29.record(z29.string().max(200), z29.unknown()).optional()
|
|
2909
2935
|
});
|
|
2910
|
-
var CodingSendResult =
|
|
2936
|
+
var CodingSendResult = z29.strictObject({
|
|
2911
2937
|
session: CodingSessionRecord,
|
|
2912
2938
|
run: CodingRunRecord.nullable(),
|
|
2913
2939
|
/** The prompt waits behind a live run (it shows as a queued bubble). */
|
|
2914
|
-
queued:
|
|
2940
|
+
queued: z29.boolean()
|
|
2915
2941
|
});
|
|
2916
|
-
var CodingProvidersParams =
|
|
2917
|
-
var CodingProvidersResult =
|
|
2918
|
-
var CodingSessionsListParams =
|
|
2919
|
-
var CodingSessionsListResult =
|
|
2920
|
-
sessions:
|
|
2942
|
+
var CodingProvidersParams = z29.strictObject({});
|
|
2943
|
+
var CodingProvidersResult = z29.strictObject({ providers: z29.array(CodingProviderStatus).max(4) });
|
|
2944
|
+
var CodingSessionsListParams = z29.strictObject({});
|
|
2945
|
+
var CodingSessionsListResult = z29.strictObject({
|
|
2946
|
+
sessions: z29.array(CodingSessionRecord),
|
|
2921
2947
|
/** The latest run of each session, by session id. */
|
|
2922
|
-
runs:
|
|
2923
|
-
recent:
|
|
2948
|
+
runs: z29.record(z29.string().max(128), CodingRunRecord),
|
|
2949
|
+
recent: z29.array(CodingRecentRow),
|
|
2924
2950
|
title_status: CodingTitleStatus
|
|
2925
2951
|
});
|
|
2926
|
-
var CodingDiscoverParams =
|
|
2927
|
-
var CodingDiscoverResult =
|
|
2928
|
-
var CodingRunsListParams =
|
|
2929
|
-
var CodingRunsListResult =
|
|
2930
|
-
var CodingHistoryParams =
|
|
2952
|
+
var CodingDiscoverParams = z29.strictObject({ limit: z29.int().min(1).max(1e3).optional() });
|
|
2953
|
+
var CodingDiscoverResult = z29.strictObject({ chats: z29.array(CodingDiscoveredChat) });
|
|
2954
|
+
var CodingRunsListParams = z29.strictObject({ session_id: SessionKey });
|
|
2955
|
+
var CodingRunsListResult = z29.strictObject({ runs: z29.array(CodingRunRecord) });
|
|
2956
|
+
var CodingHistoryParams = z29.strictObject({ session_id: SessionKey, max_bytes: z29.int().min(1024).max(209715200).optional() });
|
|
2931
2957
|
var CodingHistoryResult = CodingHistoryRecord;
|
|
2932
|
-
var CodingTranscriptReadParams =
|
|
2958
|
+
var CodingTranscriptReadParams = z29.strictObject({
|
|
2933
2959
|
provider: CodingProviderName,
|
|
2934
2960
|
provider_session_id: SessionKey,
|
|
2935
|
-
max_bytes:
|
|
2961
|
+
max_bytes: z29.int().min(1024).max(209715200).optional()
|
|
2936
2962
|
});
|
|
2937
2963
|
var CodingTranscriptReadResult = CodingHistoryRecord;
|
|
2938
|
-
var CodingItemFullParams =
|
|
2964
|
+
var CodingItemFullParams = z29.strictObject({
|
|
2939
2965
|
provider: CodingProviderName,
|
|
2940
2966
|
provider_session_id: SessionKey,
|
|
2941
|
-
item_id:
|
|
2942
|
-
});
|
|
2943
|
-
var CodingItemFullResult =
|
|
2944
|
-
var CodingActivityParams =
|
|
2945
|
-
var CodingActivityResult =
|
|
2946
|
-
var CodingFoldersRecentParams =
|
|
2947
|
-
var CodingFoldersRecentResult =
|
|
2948
|
-
var CodingFoldersCheckParams =
|
|
2967
|
+
item_id: z29.string().min(1).max(200)
|
|
2968
|
+
});
|
|
2969
|
+
var CodingItemFullResult = z29.strictObject({ output: z29.string(), bytes: nonNegInt });
|
|
2970
|
+
var CodingActivityParams = z29.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
|
|
2971
|
+
var CodingActivityResult = z29.strictObject({ active: CodingActiveElsewhere.nullable() });
|
|
2972
|
+
var CodingFoldersRecentParams = z29.strictObject({});
|
|
2973
|
+
var CodingFoldersRecentResult = z29.strictObject({ folders: z29.array(CodingRecentFolder).max(100) });
|
|
2974
|
+
var CodingFoldersCheckParams = z29.strictObject({ path: z29.string().min(1).max(4096) });
|
|
2949
2975
|
var CodingFoldersCheckResult = CodingFolderCheck;
|
|
2950
|
-
var CodingFoldersCreateParams =
|
|
2976
|
+
var CodingFoldersCreateParams = z29.strictObject({ path: z29.string().min(1).max(4096) });
|
|
2951
2977
|
var CodingFoldersCreateResult = CodingFolderCheck;
|
|
2952
|
-
var CodingStartParams =
|
|
2978
|
+
var CodingStartParams = z29.strictObject({
|
|
2953
2979
|
provider: CodingProviderName,
|
|
2954
|
-
cwd:
|
|
2955
|
-
prompt:
|
|
2956
|
-
model:
|
|
2957
|
-
effort:
|
|
2980
|
+
cwd: z29.string().min(1).max(4096),
|
|
2981
|
+
prompt: z29.string().min(1).max(1048576),
|
|
2982
|
+
model: z29.string().min(1).max(200).optional(),
|
|
2983
|
+
effort: z29.string().min(1).max(40).optional(),
|
|
2958
2984
|
agent: CodingAgentSelectionParams.optional(),
|
|
2959
2985
|
/** One of the person's coding accounts on this computer (Accounts); absent = the default login. */
|
|
2960
|
-
account_profile_id:
|
|
2986
|
+
account_profile_id: z29.string().min(1).max(64).optional(),
|
|
2961
2987
|
client_request_id: CodingClientRequestId
|
|
2962
2988
|
});
|
|
2963
2989
|
var CodingStartResult = CodingSendResult;
|
|
2964
|
-
var CodingTakeoverParams =
|
|
2990
|
+
var CodingTakeoverParams = z29.strictObject({
|
|
2965
2991
|
provider: CodingProviderName,
|
|
2966
2992
|
provider_session_id: SessionKey,
|
|
2967
|
-
cwd:
|
|
2968
|
-
title:
|
|
2993
|
+
cwd: z29.string().min(1).max(4096),
|
|
2994
|
+
title: z29.string().max(500).optional(),
|
|
2969
2995
|
agent: CodingAgentSelectionParams.optional(),
|
|
2970
|
-
confirm_elsewhere:
|
|
2996
|
+
confirm_elsewhere: z29.boolean().optional()
|
|
2971
2997
|
});
|
|
2972
|
-
var CodingTakeoverResult =
|
|
2973
|
-
var CodingSendParams =
|
|
2998
|
+
var CodingTakeoverResult = z29.strictObject({ session: CodingSessionRecord });
|
|
2999
|
+
var CodingSendParams = z29.strictObject({
|
|
2974
3000
|
session_id: SessionKey,
|
|
2975
|
-
prompt:
|
|
3001
|
+
prompt: z29.string().min(1).max(1048576),
|
|
2976
3002
|
client_request_id: CodingClientRequestId
|
|
2977
3003
|
});
|
|
2978
|
-
var CodingStopParams =
|
|
2979
|
-
var CodingStopResult =
|
|
2980
|
-
var CodingStopElsewhereParams =
|
|
3004
|
+
var CodingStopParams = z29.strictObject({ run_id: z29.string().min(1).max(64) });
|
|
3005
|
+
var CodingStopResult = z29.strictObject({ run: CodingRunRecord.nullable() });
|
|
3006
|
+
var CodingStopElsewhereParams = z29.strictObject({
|
|
2981
3007
|
provider: CodingProviderName,
|
|
2982
3008
|
provider_session_id: SessionKey,
|
|
2983
|
-
pid:
|
|
3009
|
+
pid: z29.int().min(1)
|
|
2984
3010
|
});
|
|
2985
|
-
var CodingStopElsewhereResult =
|
|
2986
|
-
var CodingOptionsSetParams =
|
|
3011
|
+
var CodingStopElsewhereResult = z29.strictObject({ stopped: z29.boolean(), message: ShortText });
|
|
3012
|
+
var CodingOptionsSetParams = z29.strictObject({
|
|
2987
3013
|
session_id: SessionKey,
|
|
2988
|
-
model:
|
|
2989
|
-
effort:
|
|
3014
|
+
model: z29.string().max(200).optional(),
|
|
3015
|
+
effort: z29.string().max(40).optional()
|
|
2990
3016
|
});
|
|
2991
|
-
var CodingOptionsSetResult =
|
|
2992
|
-
var CodingAccountContinueParams =
|
|
3017
|
+
var CodingOptionsSetResult = z29.strictObject({ session: CodingSessionRecord });
|
|
3018
|
+
var CodingAccountContinueParams = z29.strictObject({
|
|
2993
3019
|
session_id: SessionKey,
|
|
2994
|
-
account_profile_id:
|
|
3020
|
+
account_profile_id: z29.string().min(1).max(64).optional(),
|
|
2995
3021
|
client_request_id: CodingClientRequestId
|
|
2996
3022
|
});
|
|
2997
|
-
var CodingAccountContinueResult =
|
|
3023
|
+
var CodingAccountContinueResult = z29.strictObject({
|
|
2998
3024
|
session: CodingSessionRecord,
|
|
2999
3025
|
run: CodingRunRecord.nullable(),
|
|
3000
|
-
how:
|
|
3001
|
-
});
|
|
3002
|
-
var CodingAgentSetParams =
|
|
3003
|
-
var CodingAgentSetResult =
|
|
3004
|
-
var CodingAgentsAccessParams =
|
|
3005
|
-
var CodingAgentsAccessResult =
|
|
3006
|
-
signedIn:
|
|
3007
|
-
userId:
|
|
3008
|
-
organizationId:
|
|
3009
|
-
configured:
|
|
3010
|
-
});
|
|
3011
|
-
var CodingTitlesStatusParams =
|
|
3026
|
+
how: z29.enum(["moved", "fresh"])
|
|
3027
|
+
});
|
|
3028
|
+
var CodingAgentSetParams = z29.strictObject({ session_id: SessionKey, agent: CodingAgentSelectionParams.optional() });
|
|
3029
|
+
var CodingAgentSetResult = z29.strictObject({ session: CodingSessionRecord });
|
|
3030
|
+
var CodingAgentsAccessParams = z29.strictObject({});
|
|
3031
|
+
var CodingAgentsAccessResult = z29.strictObject({
|
|
3032
|
+
signedIn: z29.boolean(),
|
|
3033
|
+
userId: z29.string().max(64).nullable(),
|
|
3034
|
+
organizationId: z29.string().max(64).nullable(),
|
|
3035
|
+
configured: z29.boolean()
|
|
3036
|
+
});
|
|
3037
|
+
var CodingTitlesStatusParams = z29.strictObject({});
|
|
3012
3038
|
var CodingTitlesStatusResult = CodingTitleStatus;
|
|
3013
|
-
var CodingPrefsListParams =
|
|
3014
|
-
var CodingPrefsListResult =
|
|
3015
|
-
var CodingPrefsSetParams =
|
|
3016
|
-
key:
|
|
3017
|
-
title:
|
|
3018
|
-
clear_title:
|
|
3019
|
-
pinned:
|
|
3020
|
-
hidden:
|
|
3039
|
+
var CodingPrefsListParams = z29.strictObject({});
|
|
3040
|
+
var CodingPrefsListResult = z29.strictObject({ preferences: z29.record(z29.string().max(200), CodingChatPreference) });
|
|
3041
|
+
var CodingPrefsSetParams = z29.strictObject({
|
|
3042
|
+
key: z29.string().min(1).max(200),
|
|
3043
|
+
title: z29.string().min(1).max(500).optional(),
|
|
3044
|
+
clear_title: z29.boolean().optional(),
|
|
3045
|
+
pinned: z29.boolean().optional(),
|
|
3046
|
+
hidden: z29.boolean().optional()
|
|
3021
3047
|
});
|
|
3022
3048
|
var CodingPrefsSetResult = CodingPrefsListResult;
|
|
3023
|
-
var CodingRecentSeenParams =
|
|
3024
|
-
var CodingRecentSeenResult =
|
|
3025
|
-
var CodingSearchParams =
|
|
3026
|
-
query:
|
|
3049
|
+
var CodingRecentSeenParams = z29.strictObject({ target: z29.string().min(3).max(200) });
|
|
3050
|
+
var CodingRecentSeenResult = z29.strictObject({ recent: z29.array(CodingRecentRow) });
|
|
3051
|
+
var CodingSearchParams = z29.strictObject({
|
|
3052
|
+
query: z29.string().min(1).max(500),
|
|
3027
3053
|
cursor: nonNegInt.optional(),
|
|
3028
|
-
limit:
|
|
3054
|
+
limit: z29.int().min(1).max(100).optional()
|
|
3029
3055
|
});
|
|
3030
|
-
var CodingSearchHit =
|
|
3056
|
+
var CodingSearchHit = z29.strictObject({
|
|
3031
3057
|
provider: CodingProviderName,
|
|
3032
3058
|
providerSessionId: SessionKey,
|
|
3033
|
-
title:
|
|
3059
|
+
title: z29.string().max(500),
|
|
3034
3060
|
cwd: LocalPath.nullable(),
|
|
3035
3061
|
updatedAt: IsoTime,
|
|
3036
|
-
where:
|
|
3037
|
-
snippet:
|
|
3062
|
+
where: z29.enum(["title", "content"]),
|
|
3063
|
+
snippet: z29.string().max(2e3).nullable(),
|
|
3038
3064
|
/**
|
|
3039
3065
|
* (1.57) Claude Code: the account the record belongs to (Accounts' profile id): the one a session
|
|
3040
3066
|
* runs as, or whose config directory holds the chat. Absent: the default sign-in.
|
|
3041
3067
|
*/
|
|
3042
|
-
accountId:
|
|
3068
|
+
accountId: z29.string().min(1).max(64).optional()
|
|
3043
3069
|
});
|
|
3044
|
-
var CodingSearchResult =
|
|
3045
|
-
query:
|
|
3046
|
-
hits:
|
|
3070
|
+
var CodingSearchResult = z29.strictObject({
|
|
3071
|
+
query: z29.string().max(500),
|
|
3072
|
+
hits: z29.array(CodingSearchHit),
|
|
3047
3073
|
scanned: nonNegInt,
|
|
3048
3074
|
total: nonNegInt,
|
|
3049
3075
|
nextCursor: nonNegInt.nullable()
|
|
3050
3076
|
});
|
|
3051
|
-
var CodingReconcileParams =
|
|
3052
|
-
var CodingReconcileResult =
|
|
3053
|
-
state:
|
|
3054
|
-
summary:
|
|
3077
|
+
var CodingReconcileParams = z29.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
|
|
3078
|
+
var CodingReconcileResult = z29.strictObject({
|
|
3079
|
+
state: z29.enum(["done", "blocked", "nothing_to_do"]),
|
|
3080
|
+
summary: z29.string().max(400)
|
|
3055
3081
|
});
|
|
3056
|
-
var CodingTranscriptRawParams =
|
|
3057
|
-
var CodingTranscriptRawResult =
|
|
3058
|
-
available:
|
|
3082
|
+
var CodingTranscriptRawParams = z29.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
|
|
3083
|
+
var CodingTranscriptRawResult = z29.strictObject({
|
|
3084
|
+
available: z29.boolean(),
|
|
3059
3085
|
reason: ShortText.nullable(),
|
|
3060
|
-
file_name:
|
|
3086
|
+
file_name: z29.string().max(300).nullable(),
|
|
3061
3087
|
bytes: nonNegInt,
|
|
3062
3088
|
/** The opt-in cloud backup was refreshed (false: off, unchanged, or signed out). */
|
|
3063
|
-
backup_refreshed:
|
|
3089
|
+
backup_refreshed: z29.boolean(),
|
|
3064
3090
|
/** Subagent transcripts beside the chat (Claude Code), downloaded separately. */
|
|
3065
3091
|
subagents: nonNegInt
|
|
3066
3092
|
});
|
|
3067
|
-
var CodingWatchParams =
|
|
3068
|
-
var CodingWatchResult =
|
|
3069
|
-
var CodingSessionWatchParams =
|
|
3070
|
-
var CodingSessionWatchResult =
|
|
3093
|
+
var CodingWatchParams = z29.strictObject({});
|
|
3094
|
+
var CodingWatchResult = z29.strictObject({ resource_id: ResourceId });
|
|
3095
|
+
var CodingSessionWatchParams = z29.strictObject({ session_id: SessionKey, since_seq: nonNegInt.optional() });
|
|
3096
|
+
var CodingSessionWatchResult = z29.strictObject({
|
|
3071
3097
|
resource_id: ResourceId,
|
|
3072
3098
|
/** The newest item seq the device has for this session right now. */
|
|
3073
3099
|
seq: nonNegInt
|
|
3074
3100
|
});
|
|
3075
|
-
var CodingChangedEvent =
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3101
|
+
var CodingChangedEvent = z29.discriminatedUnion("kind", [
|
|
3102
|
+
z29.strictObject({ kind: z29.literal("session"), session: CodingSessionRecord }),
|
|
3103
|
+
z29.strictObject({ kind: z29.literal("run"), run: CodingRunRecord }),
|
|
3104
|
+
z29.strictObject({ kind: z29.literal("preferences"), preferences: z29.record(z29.string().max(200), CodingChatPreference) }),
|
|
3105
|
+
z29.strictObject({ kind: z29.literal("titles") }),
|
|
3106
|
+
z29.strictObject({ kind: z29.literal("recent"), recent: z29.array(CodingRecentRow) })
|
|
3081
3107
|
]);
|
|
3082
|
-
var CodingWatchStateEvent =
|
|
3083
|
-
var CodingItemEvent =
|
|
3108
|
+
var CodingWatchStateEvent = z29.strictObject({ live: z29.boolean(), reason: ShortText.nullable(), beat_ms: z29.int().min(1e3) });
|
|
3109
|
+
var CodingItemEvent = z29.strictObject({
|
|
3084
3110
|
session_id: SessionKey,
|
|
3085
|
-
run_id:
|
|
3111
|
+
run_id: z29.string().min(1).max(64),
|
|
3086
3112
|
seq: nonNegInt,
|
|
3087
3113
|
item: CodingTranscriptItem
|
|
3088
3114
|
});
|
|
3089
|
-
var CodingGapEvent =
|
|
3090
|
-
var SessionIdentifyParams =
|
|
3091
|
-
var SessionIdentifyResult =
|
|
3115
|
+
var CodingGapEvent = z29.strictObject({ session_id: SessionKey, since_seq: nonNegInt, seq: nonNegInt });
|
|
3116
|
+
var SessionIdentifyParams = z29.strictObject({ label: z29.string().min(1).max(60) });
|
|
3117
|
+
var SessionIdentifyResult = z29.strictObject({ label: z29.string().max(60) });
|
|
3092
3118
|
|
|
3093
3119
|
// src/schema/apps.ts
|
|
3094
|
-
import { z as
|
|
3120
|
+
import { z as z30 } from "zod";
|
|
3095
3121
|
import { UUID_SHAPE_PATTERN as UUID_SHAPE_PATTERN4 } from "@ai-matrx/kit/uuid";
|
|
3096
|
-
var AppKey =
|
|
3097
|
-
var AppProfileId =
|
|
3098
|
-
var AppProfileLocator =
|
|
3099
|
-
var AppSupport =
|
|
3100
|
-
var AppFeatureStatus =
|
|
3122
|
+
var AppKey = z30.string().regex(/^[a-z][a-z0-9_-]{0,39}$/);
|
|
3123
|
+
var AppProfileId = z30.string().regex(UUID_SHAPE_PATTERN4);
|
|
3124
|
+
var AppProfileLocator = z30.string().min(1).max(512).regex(/^[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}(\/[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}){0,7}$/);
|
|
3125
|
+
var AppSupport = z30.enum(["supported", "partial", "unsupported"]);
|
|
3126
|
+
var AppFeatureStatus = z30.strictObject({
|
|
3101
3127
|
status: AppSupport,
|
|
3102
3128
|
/** One line, set whenever status is not "supported". */
|
|
3103
|
-
reason:
|
|
3129
|
+
reason: z30.string().max(140).nullable()
|
|
3104
3130
|
});
|
|
3105
|
-
var AppInfo =
|
|
3131
|
+
var AppInfo = z30.strictObject({
|
|
3106
3132
|
app_key: AppKey,
|
|
3107
|
-
name:
|
|
3108
|
-
installed:
|
|
3133
|
+
name: z30.string().max(64),
|
|
3134
|
+
installed: z30.boolean(),
|
|
3109
3135
|
/** The app's own version string, or null when it is not installed or does not say. */
|
|
3110
|
-
version:
|
|
3136
|
+
version: z30.string().max(64).nullable(),
|
|
3111
3137
|
/** The install found (an .app bundle, an .exe, a binary), or null. */
|
|
3112
3138
|
location: AbsPath.nullable(),
|
|
3113
3139
|
/** Open the app at all on this OS. */
|
|
@@ -3117,158 +3143,158 @@ var AppInfo = z29.strictObject({
|
|
|
3117
3143
|
/** Plan usage read from the app's own files on this OS. */
|
|
3118
3144
|
usage: AppFeatureStatus
|
|
3119
3145
|
});
|
|
3120
|
-
var AppUsageReading =
|
|
3121
|
-
window:
|
|
3146
|
+
var AppUsageReading = z30.strictObject({
|
|
3147
|
+
window: z30.enum(["five_hour", "weekly", "extra"]),
|
|
3122
3148
|
/** 0–100 for five_hour and weekly; extra-usage spend as a percent of its cap (may pass 100). */
|
|
3123
|
-
percent:
|
|
3149
|
+
percent: z30.number().min(0).max(1e4),
|
|
3124
3150
|
/** When the app recorded it. */
|
|
3125
3151
|
sampled_at_ms: epochMs,
|
|
3126
3152
|
/** True when the window has rolled over since the sample, so the figure has reset. */
|
|
3127
|
-
reset_since:
|
|
3153
|
+
reset_since: z30.boolean()
|
|
3128
3154
|
});
|
|
3129
|
-
var AppProfile =
|
|
3155
|
+
var AppProfile = z30.strictObject({
|
|
3130
3156
|
/** The row's id; null for a folder found on disk that no row names yet. */
|
|
3131
3157
|
id: AppProfileId.nullable(),
|
|
3132
3158
|
app_key: AppKey,
|
|
3133
|
-
display_name:
|
|
3159
|
+
display_name: z30.string().min(1).max(120),
|
|
3134
3160
|
/** The account the person means to be signed in here; null when not stated (never guessed). */
|
|
3135
|
-
account_identity:
|
|
3161
|
+
account_identity: z30.string().min(3).max(320).nullable(),
|
|
3136
3162
|
profile_locator: AppProfileLocator.nullable(),
|
|
3137
3163
|
/** The device the row is tied to; null when the row names none. */
|
|
3138
3164
|
device_id: DeviceId.nullable(),
|
|
3139
3165
|
/** The folder this profile resolves to on this device; null for a row tied to another device. */
|
|
3140
3166
|
folder: AbsPath.nullable(),
|
|
3141
3167
|
/** The folder exists on this device. */
|
|
3142
|
-
on_disk:
|
|
3168
|
+
on_disk: z30.boolean(),
|
|
3143
3169
|
/** An instance with this profile is running; null when it could not be determined. */
|
|
3144
|
-
running:
|
|
3170
|
+
running: z30.boolean().nullable(),
|
|
3145
3171
|
/** Usage the app recorded for this profile; null when the app exposes none here. */
|
|
3146
|
-
usage:
|
|
3172
|
+
usage: z30.array(AppUsageReading).nullable(),
|
|
3147
3173
|
last_opened_ms: epochMs.nullable()
|
|
3148
3174
|
});
|
|
3149
|
-
var AppsListParams =
|
|
3150
|
-
var AppsListResult =
|
|
3151
|
-
var AppsProfilesListParams =
|
|
3175
|
+
var AppsListParams = z30.strictObject({});
|
|
3176
|
+
var AppsListResult = z30.strictObject({ apps: z30.array(AppInfo) });
|
|
3177
|
+
var AppsProfilesListParams = z30.strictObject({
|
|
3152
3178
|
/** Only this app's profiles; every app's when absent. */
|
|
3153
3179
|
app_key: AppKey.optional()
|
|
3154
3180
|
});
|
|
3155
|
-
var AppsProfilesListResult =
|
|
3156
|
-
profiles:
|
|
3181
|
+
var AppsProfilesListResult = z30.strictObject({
|
|
3182
|
+
profiles: z30.array(AppProfile),
|
|
3157
3183
|
/**
|
|
3158
3184
|
* Whether the saved rows could be read: false while signed out or offline, when only folders
|
|
3159
3185
|
* found on disk are listed.
|
|
3160
3186
|
*/
|
|
3161
|
-
registry:
|
|
3187
|
+
registry: z30.enum(["ok", "signed_out", "unavailable"])
|
|
3162
3188
|
});
|
|
3163
|
-
var AppsProfilesSaveParams =
|
|
3189
|
+
var AppsProfilesSaveParams = z30.strictObject({
|
|
3164
3190
|
id: AppProfileId.optional(),
|
|
3165
3191
|
app_key: AppKey,
|
|
3166
|
-
display_name:
|
|
3167
|
-
account_identity:
|
|
3192
|
+
display_name: z30.string().min(1).max(120),
|
|
3193
|
+
account_identity: z30.string().min(3).max(320).nullable(),
|
|
3168
3194
|
/** On create: the folder to use (one found on disk), or null for the app's default profile. Ignored on update. */
|
|
3169
3195
|
profile_locator: AppProfileLocator.nullable(),
|
|
3170
3196
|
/** On create with profile_locator null: make a new folder named after display_name instead. */
|
|
3171
|
-
new_folder:
|
|
3197
|
+
new_folder: z30.boolean().default(false)
|
|
3172
3198
|
});
|
|
3173
3199
|
var AppsProfilesSaveResult = AppProfile;
|
|
3174
|
-
var AppsProfilesRemoveParams =
|
|
3175
|
-
var AppsProfilesRemoveResult =
|
|
3176
|
-
var AppsOpenParams =
|
|
3200
|
+
var AppsProfilesRemoveParams = z30.strictObject({ id: AppProfileId });
|
|
3201
|
+
var AppsProfilesRemoveResult = z30.strictObject({ removed: z30.boolean() });
|
|
3202
|
+
var AppsOpenParams = z30.strictObject({
|
|
3177
3203
|
app_key: AppKey,
|
|
3178
3204
|
profile_id: AppProfileId.optional()
|
|
3179
3205
|
});
|
|
3180
|
-
var AppsOpenResult =
|
|
3206
|
+
var AppsOpenResult = z30.strictObject({
|
|
3181
3207
|
/** True when an instance with this profile was already running; it is brought forward. */
|
|
3182
|
-
already_running:
|
|
3208
|
+
already_running: z30.boolean(),
|
|
3183
3209
|
folder: AbsPath.nullable()
|
|
3184
3210
|
});
|
|
3185
3211
|
|
|
3186
3212
|
// src/schema/apps-chats.ts
|
|
3187
|
-
import { z as
|
|
3188
|
-
var ChatId =
|
|
3189
|
-
var ChatPlace =
|
|
3190
|
-
var ChatProjectId =
|
|
3191
|
-
var ChatWindow =
|
|
3213
|
+
import { z as z31 } from "zod";
|
|
3214
|
+
var ChatId = z31.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/);
|
|
3215
|
+
var ChatPlace = z31.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/);
|
|
3216
|
+
var ChatProjectId = z31.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/);
|
|
3217
|
+
var ChatWindow = z31.strictObject({
|
|
3192
3218
|
key: ChatPlace,
|
|
3193
3219
|
/** The app's default profile (Claude: the main window, which lists every account's chats). */
|
|
3194
|
-
main:
|
|
3220
|
+
main: z31.boolean(),
|
|
3195
3221
|
/** The account the window is signed into, when known. */
|
|
3196
|
-
account:
|
|
3222
|
+
account: z31.string().max(320).nullable()
|
|
3197
3223
|
});
|
|
3198
|
-
var ChatProject =
|
|
3224
|
+
var ChatProject = z31.strictObject({
|
|
3199
3225
|
id: ChatProjectId,
|
|
3200
|
-
name:
|
|
3201
|
-
archived:
|
|
3226
|
+
name: z31.string().min(1).max(200),
|
|
3227
|
+
archived: z31.boolean(),
|
|
3202
3228
|
/** Chats in it. */
|
|
3203
3229
|
count: nonNegInt
|
|
3204
3230
|
});
|
|
3205
|
-
var ChatPin =
|
|
3231
|
+
var ChatPin = z31.strictObject({
|
|
3206
3232
|
/** The window whose account pins it; an account with no window of its own is named by its email. */
|
|
3207
|
-
window:
|
|
3233
|
+
window: z31.string().min(1).max(320),
|
|
3208
3234
|
/** When that account's pin list was last read; null when the reading has no time. */
|
|
3209
3235
|
observed_at_ms: epochMs.nullable()
|
|
3210
3236
|
});
|
|
3211
|
-
var ChatRunning =
|
|
3237
|
+
var ChatRunning = z31.strictObject({
|
|
3212
3238
|
window: ChatPlace,
|
|
3213
3239
|
/** process: a live process resumed this chat there (exact); activity: that window's own record moved in the last 3 minutes. */
|
|
3214
|
-
how:
|
|
3240
|
+
how: z31.enum(["process", "activity"])
|
|
3215
3241
|
});
|
|
3216
|
-
var ChatHidden =
|
|
3242
|
+
var ChatHidden = z31.strictObject({
|
|
3217
3243
|
window: ChatPlace,
|
|
3218
|
-
reason:
|
|
3244
|
+
reason: z31.string().max(200)
|
|
3219
3245
|
});
|
|
3220
|
-
var ChatLastUse =
|
|
3246
|
+
var ChatLastUse = z31.strictObject({
|
|
3221
3247
|
/** The conversation's last reply. */
|
|
3222
3248
|
at_ms: epochMs,
|
|
3223
3249
|
window: ChatPlace.nullable(),
|
|
3224
|
-
account:
|
|
3250
|
+
account: z31.string().max(320).nullable(),
|
|
3225
3251
|
/** How the window was decided (one short line). */
|
|
3226
|
-
how:
|
|
3252
|
+
how: z31.string().max(120).nullable(),
|
|
3227
3253
|
/** The account's 1-hour prompt cache is still warm. */
|
|
3228
|
-
cache_warm:
|
|
3254
|
+
cache_warm: z31.boolean(),
|
|
3229
3255
|
cache_minutes_left: nonNegInt
|
|
3230
3256
|
});
|
|
3231
|
-
var ChatAppProject =
|
|
3232
|
-
id:
|
|
3233
|
-
name:
|
|
3257
|
+
var ChatAppProject = z31.strictObject({
|
|
3258
|
+
id: z31.string().min(1).max(200),
|
|
3259
|
+
name: z31.string().max(200)
|
|
3234
3260
|
});
|
|
3235
|
-
var ChatTitleSource =
|
|
3236
|
-
var ChatAppGroup =
|
|
3237
|
-
var ChatParent =
|
|
3238
|
-
var ChatTitleSync =
|
|
3239
|
-
var ChatMove =
|
|
3240
|
-
kind:
|
|
3261
|
+
var ChatTitleSource = z31.enum(["app", "app-remembered", "custom-title", "ai-title", "agent-name", "summary", "first-prompt", "last-prompt"]);
|
|
3262
|
+
var ChatAppGroup = z31.strictObject({ window: ChatPlace, group_id: z31.string().max(120), name: z31.string().max(200) });
|
|
3263
|
+
var ChatParent = z31.strictObject({ id: ChatId, how: z31.enum(["spawned", "dispatched", "forked"]), title: z31.string().max(1e3).nullable() });
|
|
3264
|
+
var ChatTitleSync = z31.strictObject({ state: z31.enum(["synced", "not_synced", "unsupported"]), note: z31.string().max(200) });
|
|
3265
|
+
var ChatMove = z31.strictObject({
|
|
3266
|
+
kind: z31.enum(["move", "copy"]),
|
|
3241
3267
|
from: ChatPlace.nullable(),
|
|
3242
3268
|
to: ChatPlace.nullable(),
|
|
3243
3269
|
at_ms: epochMs.nullable(),
|
|
3244
3270
|
back_at_ms: epochMs.nullable()
|
|
3245
3271
|
});
|
|
3246
|
-
var ChatRow =
|
|
3272
|
+
var ChatRow = z31.strictObject({
|
|
3247
3273
|
id: ChatId,
|
|
3248
3274
|
/** The short id people see (the listing's first 8 characters). */
|
|
3249
|
-
short_id:
|
|
3275
|
+
short_id: z31.string().max(16),
|
|
3250
3276
|
/** The listing's own name (Claude: local_<id>), null for a chat only in the holder. */
|
|
3251
|
-
record:
|
|
3252
|
-
title:
|
|
3277
|
+
record: z31.string().max(160).nullable(),
|
|
3278
|
+
title: z31.string().max(1e3),
|
|
3253
3279
|
last_active_ms: epochMs.nullable(),
|
|
3254
3280
|
created_ms: epochMs.nullable(),
|
|
3255
|
-
projects:
|
|
3256
|
-
starred:
|
|
3257
|
-
pinned_in:
|
|
3281
|
+
projects: z31.array(ChatProjectId).max(500),
|
|
3282
|
+
starred: z31.boolean(),
|
|
3283
|
+
pinned_in: z31.array(ChatPin).max(200),
|
|
3258
3284
|
/** Every place it is listed now: window keys, plus "holder". */
|
|
3259
|
-
places:
|
|
3260
|
-
held:
|
|
3261
|
-
running:
|
|
3262
|
-
hidden_in:
|
|
3285
|
+
places: z31.array(ChatPlace).max(200),
|
|
3286
|
+
held: z31.boolean(),
|
|
3287
|
+
running: z31.array(ChatRunning).max(200),
|
|
3288
|
+
hidden_in: z31.array(ChatHidden).max(200),
|
|
3263
3289
|
/** Kept out of the main window on purpose. */
|
|
3264
|
-
hidden_from_main:
|
|
3290
|
+
hidden_from_main: z31.boolean(),
|
|
3265
3291
|
/** Listed in a side window and not yet copied into main. */
|
|
3266
|
-
main_pending:
|
|
3292
|
+
main_pending: z31.boolean(),
|
|
3267
3293
|
/** A scheduled routine's run (its task id). */
|
|
3268
|
-
scheduled:
|
|
3294
|
+
scheduled: z31.string().max(200).nullable(),
|
|
3269
3295
|
/** Created recently and in no project: offered for filing. */
|
|
3270
|
-
new_unfiled:
|
|
3271
|
-
warnings:
|
|
3296
|
+
new_unfiled: z31.boolean(),
|
|
3297
|
+
warnings: z31.array(z31.string().max(400)).max(20),
|
|
3272
3298
|
last_use: ChatLastUse.nullable(),
|
|
3273
3299
|
/** 1.13: the app's own project the chat is grouped under in the app (Codex), read only; absent = none or not an app that groups. */
|
|
3274
3300
|
app_project: ChatAppProject.optional(),
|
|
@@ -3278,21 +3304,21 @@ var ChatRow = z30.strictObject({
|
|
|
3278
3304
|
* 1.14: the chat's own title before the person's rename (the one title rule, `@ai-matrx/coding-sessions/sessions`);
|
|
3279
3305
|
* `title` is what to show (`title_override` when set, else this).
|
|
3280
3306
|
*/
|
|
3281
|
-
original_title:
|
|
3307
|
+
original_title: z31.string().max(1e3).optional(),
|
|
3282
3308
|
/** 1.14: where `original_title` came from (the one rule's sources, strongest first; 1.15: a closed set). */
|
|
3283
3309
|
title_source: ChatTitleSource.optional(),
|
|
3284
3310
|
/** 1.14: the person's rename inside Matrx (Coding Sessions), applied once by the row builder; absent = none. */
|
|
3285
|
-
title_override:
|
|
3311
|
+
title_override: z31.string().min(1).max(300).optional(),
|
|
3286
3312
|
/** 1.15: the app itself archived it (hidden_in says where and why, in words for people; this is the typed fact). */
|
|
3287
|
-
archived:
|
|
3313
|
+
archived: z31.boolean().optional(),
|
|
3288
3314
|
/** 1.59: the coding session Matrx itself drives this chat in (the one chat, whether it runs in the app or in Matrx); absent = none. */
|
|
3289
|
-
session_id:
|
|
3315
|
+
session_id: z31.string().max(80).optional(),
|
|
3290
3316
|
/** 1.59: the app's own groups it is filed in, per instance, as the app keeps them (never merged into the person's projects). */
|
|
3291
|
-
app_groups:
|
|
3317
|
+
app_groups: z31.array(ChatAppGroup).max(200).optional(),
|
|
3292
3318
|
/** 1.59: the chat it came from (nesting): an agent's chat that spawned it, dispatched it, or that it was forked from. */
|
|
3293
3319
|
parent: ChatParent.optional(),
|
|
3294
3320
|
/** 1.59: earlier sessions of this same chat (the app continued it under new session ids). */
|
|
3295
|
-
prior_sessions:
|
|
3321
|
+
prior_sessions: z31.array(ChatId).max(50).optional(),
|
|
3296
3322
|
/** 1.61: where the title shows (the title facet's sync state for this chat's app). */
|
|
3297
3323
|
title_sync: ChatTitleSync.optional(),
|
|
3298
3324
|
/**
|
|
@@ -3301,7 +3327,7 @@ var ChatRow = z30.strictObject({
|
|
|
3301
3327
|
*/
|
|
3302
3328
|
pin_sync: ChatTitleSync.optional(),
|
|
3303
3329
|
/** 1.62: every Move and Copy of this chat between instances, newest first (absent = never moved or copied). */
|
|
3304
|
-
moved:
|
|
3330
|
+
moved: z31.array(ChatMove).max(50).optional(),
|
|
3305
3331
|
/**
|
|
3306
3332
|
* 1.63: the instance the chat belongs to: the one whose folder holds it (read only; nothing is
|
|
3307
3333
|
* moved). Claude: the side window holding its newest record copy (main mirrors every window), else
|
|
@@ -3312,155 +3338,155 @@ var ChatRow = z30.strictObject({
|
|
|
3312
3338
|
* 1.70: the person hid it from Matrx's lists (ours, kept by Matrx, never written into the app;
|
|
3313
3339
|
* absent = shown). The app's own hidden facts stay apart: `hidden_in`, `archived`, `hidden_from_main`.
|
|
3314
3340
|
*/
|
|
3315
|
-
hidden:
|
|
3341
|
+
hidden: z31.boolean().optional()
|
|
3316
3342
|
});
|
|
3317
|
-
var ChatFamily =
|
|
3343
|
+
var ChatFamily = z31.strictObject({
|
|
3318
3344
|
id: ChatId,
|
|
3319
3345
|
fork_of: ChatId.nullable(),
|
|
3320
3346
|
copy_of: ChatId.nullable()
|
|
3321
3347
|
});
|
|
3322
|
-
var AppsChatsListParams =
|
|
3348
|
+
var AppsChatsListParams = z31.strictObject({
|
|
3323
3349
|
app_key: AppKey,
|
|
3324
3350
|
/** Only these chats (a live update re-reads just what changed). */
|
|
3325
|
-
ids:
|
|
3351
|
+
ids: z31.array(ChatId).max(500).optional()
|
|
3326
3352
|
});
|
|
3327
|
-
var AppsChatsListResult =
|
|
3353
|
+
var AppsChatsListResult = z31.strictObject({
|
|
3328
3354
|
app_key: AppKey,
|
|
3329
3355
|
/** Bumps on every change the index sees; `apps.chats.changed` carries the same number. */
|
|
3330
3356
|
version: nonNegInt,
|
|
3331
|
-
windows:
|
|
3332
|
-
projects:
|
|
3333
|
-
chats:
|
|
3357
|
+
windows: z31.array(ChatWindow).max(200),
|
|
3358
|
+
projects: z31.array(ChatProject).max(5e3),
|
|
3359
|
+
chats: z31.array(ChatRow).max(2e4),
|
|
3334
3360
|
/** How long a chat in no project counts as new. */
|
|
3335
3361
|
new_window_ms: nonNegInt,
|
|
3336
3362
|
/** 1.9: this is the copy saved at the last read, shown while everything is read again. */
|
|
3337
|
-
updating:
|
|
3363
|
+
updating: z31.boolean().optional(),
|
|
3338
3364
|
/** 1.9: false while the folder watches are down (changes are not arriving); `apps.chats.watch_state` says when it changes. */
|
|
3339
|
-
live:
|
|
3365
|
+
live: z31.boolean().optional(),
|
|
3340
3366
|
/** 1.10: every listed chat that is a fork or a copy of another (read from the conversations' first lines). */
|
|
3341
|
-
families:
|
|
3367
|
+
families: z31.array(ChatFamily).max(2e4).optional()
|
|
3342
3368
|
});
|
|
3343
|
-
var AppsChatsWatchParams =
|
|
3344
|
-
var AppsChatsWatchResult =
|
|
3345
|
-
var AppsChatsChangedEvent =
|
|
3369
|
+
var AppsChatsWatchParams = z31.strictObject({ app_key: AppKey });
|
|
3370
|
+
var AppsChatsWatchResult = z31.strictObject({ resource_id: ResourceId, version: nonNegInt });
|
|
3371
|
+
var AppsChatsChangedEvent = z31.strictObject({
|
|
3346
3372
|
app_key: AppKey,
|
|
3347
3373
|
version: nonNegInt,
|
|
3348
|
-
ids:
|
|
3349
|
-
all:
|
|
3374
|
+
ids: z31.array(ChatId).max(1e3),
|
|
3375
|
+
all: z31.boolean()
|
|
3350
3376
|
});
|
|
3351
|
-
var AppsChatsWatchStateEvent =
|
|
3377
|
+
var AppsChatsWatchStateEvent = z31.strictObject({
|
|
3352
3378
|
app_key: AppKey,
|
|
3353
|
-
live:
|
|
3354
|
-
updating:
|
|
3355
|
-
reason:
|
|
3379
|
+
live: z31.boolean(),
|
|
3380
|
+
updating: z31.boolean(),
|
|
3381
|
+
reason: z31.string().max(300).nullable()
|
|
3356
3382
|
});
|
|
3357
|
-
var AppsChatsPlaceParams =
|
|
3383
|
+
var AppsChatsPlaceParams = z31.strictObject({
|
|
3358
3384
|
app_key: AppKey,
|
|
3359
3385
|
chat_id: ChatId,
|
|
3360
|
-
action:
|
|
3386
|
+
action: z31.enum(["place", "take_off", "hold"]),
|
|
3361
3387
|
/** The window (for place and take_off). */
|
|
3362
3388
|
window: ChatPlace.optional(),
|
|
3363
3389
|
/** take_off where it is open: stop it there first (the person confirmed). */
|
|
3364
|
-
stop_if_open:
|
|
3390
|
+
stop_if_open: z31.boolean().default(false)
|
|
3365
3391
|
});
|
|
3366
|
-
var AppsChatsPlaceResult =
|
|
3367
|
-
var AppsProjectsFileManyParams =
|
|
3392
|
+
var AppsChatsPlaceResult = z31.strictObject({ chat: ChatRow, message: z31.string().max(400) });
|
|
3393
|
+
var AppsProjectsFileManyParams = z31.strictObject({
|
|
3368
3394
|
app_key: AppKey,
|
|
3369
|
-
chat_ids:
|
|
3395
|
+
chat_ids: z31.array(ChatId).min(1).max(500),
|
|
3370
3396
|
project_id: ChatProjectId.optional(),
|
|
3371
|
-
new_project_name:
|
|
3397
|
+
new_project_name: z31.string().min(1).max(200).optional()
|
|
3372
3398
|
});
|
|
3373
|
-
var AppsProjectsFileManyResult =
|
|
3374
|
-
var AppsProjectsUpdateParams =
|
|
3399
|
+
var AppsProjectsFileManyResult = z31.strictObject({ chats: z31.array(ChatRow).max(500), project: ChatProject });
|
|
3400
|
+
var AppsProjectsUpdateParams = z31.strictObject({
|
|
3375
3401
|
app_key: AppKey,
|
|
3376
3402
|
project_id: ChatProjectId,
|
|
3377
|
-
name:
|
|
3378
|
-
archived:
|
|
3403
|
+
name: z31.string().min(1).max(200).optional(),
|
|
3404
|
+
archived: z31.boolean().optional()
|
|
3379
3405
|
});
|
|
3380
|
-
var AppsProjectsUpdateResult =
|
|
3381
|
-
var AppsProjectsCopyParams =
|
|
3382
|
-
var AppsProjectsCopyResult =
|
|
3383
|
-
var AppsProjectsFileParams =
|
|
3406
|
+
var AppsProjectsUpdateResult = z31.strictObject({ project: ChatProject });
|
|
3407
|
+
var AppsProjectsCopyParams = z31.strictObject({ app_key: AppKey, project_id: ChatProjectId, new_project_name: z31.string().min(1).max(200) });
|
|
3408
|
+
var AppsProjectsCopyResult = z31.strictObject({ project: ChatProject });
|
|
3409
|
+
var AppsProjectsFileParams = z31.strictObject({
|
|
3384
3410
|
app_key: AppKey,
|
|
3385
3411
|
chat_id: ChatId,
|
|
3386
3412
|
project_id: ChatProjectId.optional(),
|
|
3387
|
-
new_project_name:
|
|
3388
|
-
});
|
|
3389
|
-
var AppsProjectsFileResult =
|
|
3390
|
-
var AppsProjectsUnfileParams =
|
|
3391
|
-
var AppsProjectsUnfileResult =
|
|
3392
|
-
var AppsChatsStarParams =
|
|
3393
|
-
var AppsChatsStarResult =
|
|
3394
|
-
var AppsChatsHideParams =
|
|
3395
|
-
var AppsChatsHideResult =
|
|
3413
|
+
new_project_name: z31.string().min(1).max(200).optional()
|
|
3414
|
+
});
|
|
3415
|
+
var AppsProjectsFileResult = z31.strictObject({ chat: ChatRow, project: ChatProject });
|
|
3416
|
+
var AppsProjectsUnfileParams = z31.strictObject({ app_key: AppKey, chat_id: ChatId, project_id: ChatProjectId });
|
|
3417
|
+
var AppsProjectsUnfileResult = z31.strictObject({ chat: ChatRow });
|
|
3418
|
+
var AppsChatsStarParams = z31.strictObject({ app_key: AppKey, chat_id: ChatId, starred: z31.boolean() });
|
|
3419
|
+
var AppsChatsStarResult = z31.strictObject({ chat: ChatRow });
|
|
3420
|
+
var AppsChatsHideParams = z31.strictObject({ app_key: AppKey, chat_ids: z31.array(ChatId).min(1).max(500), hidden: z31.boolean() });
|
|
3421
|
+
var AppsChatsHideResult = z31.strictObject({ app_key: AppKey, hidden: z31.boolean(), changed: z31.array(ChatId).max(500) });
|
|
3396
3422
|
|
|
3397
3423
|
// src/schema/apps-accounts.ts
|
|
3398
|
-
import { z as
|
|
3399
|
-
var WindowRemoteControl =
|
|
3424
|
+
import { z as z32 } from "zod";
|
|
3425
|
+
var WindowRemoteControl = z32.strictObject({
|
|
3400
3426
|
/**
|
|
3401
3427
|
* As the window's settings file holds it: on, off, or never set (the app's default). 1.52:
|
|
3402
3428
|
* "unreadable" = the file is there but damaged, so the setting is not known (`problem` says why).
|
|
3403
3429
|
*/
|
|
3404
|
-
setting:
|
|
3430
|
+
setting: z32.enum(["on", "off", "default", "unreadable"]),
|
|
3405
3431
|
/** The window serves Remote Control now (its live state says "on"); null: not known (closed, or no state file). */
|
|
3406
|
-
serving:
|
|
3432
|
+
serving: z32.boolean().nullable(),
|
|
3407
3433
|
/** A change queued until the window next closes (or restarts); null: none. */
|
|
3408
|
-
pending:
|
|
3434
|
+
pending: z32.enum(["on", "off"]).nullable(),
|
|
3409
3435
|
/**
|
|
3410
3436
|
* 1.52: why the setting cannot be trusted, as a plain sentence for the person: the settings file is
|
|
3411
3437
|
* damaged ("unreadable"), or a queued change failed to land (it stays queued; asking again retries).
|
|
3412
3438
|
* Absent: nothing wrong. An older core omits it.
|
|
3413
3439
|
*/
|
|
3414
|
-
problem:
|
|
3440
|
+
problem: z32.string().max(300).optional()
|
|
3415
3441
|
});
|
|
3416
|
-
var AppWindowInfo =
|
|
3442
|
+
var AppWindowInfo = z32.strictObject({
|
|
3417
3443
|
key: ChatPlace,
|
|
3418
3444
|
/** The app's default profile (Claude: main, which may sign into any account). */
|
|
3419
|
-
main:
|
|
3445
|
+
main: z32.boolean(),
|
|
3420
3446
|
/** The account the window is meant for (null for main). */
|
|
3421
|
-
account:
|
|
3447
|
+
account: z32.string().max(320).nullable(),
|
|
3422
3448
|
/** The account signed in there now: an email, or the account id while it has no saved name. */
|
|
3423
|
-
signed_in:
|
|
3424
|
-
signed_in_is_email:
|
|
3449
|
+
signed_in: z32.string().max(320).nullable(),
|
|
3450
|
+
signed_in_is_email: z32.boolean(),
|
|
3425
3451
|
/** Signed into another account than the one it is meant for. */
|
|
3426
|
-
mismatch:
|
|
3452
|
+
mismatch: z32.boolean(),
|
|
3427
3453
|
/** Its folder exists. */
|
|
3428
|
-
created:
|
|
3454
|
+
created: z32.boolean(),
|
|
3429
3455
|
/** Open now. */
|
|
3430
|
-
running:
|
|
3456
|
+
running: z32.boolean(),
|
|
3431
3457
|
/** Chats open in it now (a process resuming each one). */
|
|
3432
3458
|
open_chats: nonNegInt,
|
|
3433
3459
|
/** 1.50: its Remote Control (phone) setting; absent from an older core, or an app without one. */
|
|
3434
3460
|
remote_control: WindowRemoteControl.optional()
|
|
3435
3461
|
});
|
|
3436
|
-
var AccountUsage =
|
|
3462
|
+
var AccountUsage = z32.strictObject({
|
|
3437
3463
|
/** The account's email, or "org <8 chars>" when no window has ever sampled that org. */
|
|
3438
|
-
account:
|
|
3439
|
-
org:
|
|
3464
|
+
account: z32.string().max(320),
|
|
3465
|
+
org: z32.string().max(80).nullable(),
|
|
3440
3466
|
/** False when the org was sampled in several accounts' windows and the vote is not clear (≥ 75 %). */
|
|
3441
|
-
account_certain:
|
|
3467
|
+
account_certain: z32.boolean(),
|
|
3442
3468
|
/** 5-hour use in percent (0 once the reading is over 5 hours old). */
|
|
3443
|
-
five_hour:
|
|
3444
|
-
five_hour_reset_since:
|
|
3469
|
+
five_hour: z32.number().nullable(),
|
|
3470
|
+
five_hour_reset_since: z32.boolean(),
|
|
3445
3471
|
/** Weekly use in percent (0 once the week reset after the reading). */
|
|
3446
|
-
weekly:
|
|
3447
|
-
weekly_reset_since:
|
|
3472
|
+
weekly: z32.number().nullable(),
|
|
3473
|
+
weekly_reset_since: z32.boolean(),
|
|
3448
3474
|
/** Extra-usage spend in percent of its cap, when on. */
|
|
3449
|
-
extra_usage:
|
|
3475
|
+
extra_usage: z32.number().nullable(),
|
|
3450
3476
|
extra_usage_as_of_ms: epochMs.nullable(),
|
|
3451
3477
|
as_of_ms: epochMs,
|
|
3452
3478
|
/** The windows meant for this account (and main when main took the reading). */
|
|
3453
|
-
windows:
|
|
3479
|
+
windows: z32.array(ChatPlace).max(200),
|
|
3454
3480
|
/** The window that took the reading is open now and the reading is under 30 minutes old. */
|
|
3455
|
-
live:
|
|
3481
|
+
live: z32.boolean(),
|
|
3456
3482
|
/** The next weekly reset, when known. */
|
|
3457
3483
|
weekly_resets_at_ms: epochMs.nullable(),
|
|
3458
3484
|
/** That reset time is Claude's own (its reading, or a reset seen in its usage history). */
|
|
3459
|
-
weekly_reset_official:
|
|
3485
|
+
weekly_reset_official: z32.boolean().nullable(),
|
|
3460
3486
|
/** 1.13: the account's plan as the app names it (Codex: "pro", "prolite"), when recorded. */
|
|
3461
|
-
plan:
|
|
3487
|
+
plan: z32.string().max(80).optional(),
|
|
3462
3488
|
/** 1.13: the account's credit balance as the app records it (Codex), when recorded. */
|
|
3463
|
-
credits:
|
|
3489
|
+
credits: z32.string().max(40).optional(),
|
|
3464
3490
|
/**
|
|
3465
3491
|
* 1.25: the latest the account's 5-hour window can reset: 5 hours after the first reading of this
|
|
3466
3492
|
* window's use (its usage history), so the real reset is at or before it. Absent when no 5-hour
|
|
@@ -3468,110 +3494,110 @@ var AccountUsage = z31.strictObject({
|
|
|
3468
3494
|
*/
|
|
3469
3495
|
five_hour_resets_by_ms: epochMs.optional(),
|
|
3470
3496
|
/** 1.73: where the reading came from (absent = the app itself). */
|
|
3471
|
-
read_source:
|
|
3497
|
+
read_source: z32.enum(["app", "claude_code"]).optional()
|
|
3472
3498
|
});
|
|
3473
|
-
var AccountReset =
|
|
3499
|
+
var AccountReset = z32.strictObject({
|
|
3474
3500
|
window: ChatPlace,
|
|
3475
|
-
account:
|
|
3501
|
+
account: z32.string().max(320).nullable(),
|
|
3476
3502
|
next_reset_ms: epochMs.nullable(),
|
|
3477
3503
|
/** claude: the app's own reading; usage_history: a weekly drop seen in its usage record; your_list: the person's own entry. */
|
|
3478
|
-
source:
|
|
3504
|
+
source: z32.enum(["claude", "usage_history", "your_list"]).nullable(),
|
|
3479
3505
|
/** claude or usage_history. */
|
|
3480
|
-
official:
|
|
3506
|
+
official: z32.boolean(),
|
|
3481
3507
|
/** Set when the person's list disagrees with the official time. */
|
|
3482
|
-
note:
|
|
3508
|
+
note: z32.string().max(200).nullable()
|
|
3483
3509
|
});
|
|
3484
|
-
var AppsWindowsListParams =
|
|
3485
|
-
var AppsWindowsListResult =
|
|
3486
|
-
var AppsAccountsUsageParams =
|
|
3487
|
-
var AppsAccountsUsageResult =
|
|
3510
|
+
var AppsWindowsListParams = z32.strictObject({ app_key: AppKey });
|
|
3511
|
+
var AppsWindowsListResult = z32.strictObject({ app_key: AppKey, windows: z32.array(AppWindowInfo).max(200) });
|
|
3512
|
+
var AppsAccountsUsageParams = z32.strictObject({ app_key: AppKey });
|
|
3513
|
+
var AppsAccountsUsageResult = z32.strictObject({
|
|
3488
3514
|
app_key: AppKey,
|
|
3489
|
-
accounts:
|
|
3515
|
+
accounts: z32.array(AccountUsage).max(500),
|
|
3490
3516
|
/** 1.12: the rows are right but something around them failed (a newly read reset time could not be saved); shown, never hidden. */
|
|
3491
|
-
problem:
|
|
3517
|
+
problem: z32.string().max(400).optional()
|
|
3492
3518
|
});
|
|
3493
|
-
var AppsAccountsResetsParams =
|
|
3494
|
-
var AppsAccountsResetsResult =
|
|
3519
|
+
var AppsAccountsResetsParams = z32.strictObject({ app_key: AppKey });
|
|
3520
|
+
var AppsAccountsResetsResult = z32.strictObject({
|
|
3495
3521
|
app_key: AppKey,
|
|
3496
|
-
resets:
|
|
3522
|
+
resets: z32.array(AccountReset).max(200),
|
|
3497
3523
|
/** 1.12: as on `apps.accounts.usage`. */
|
|
3498
|
-
problem:
|
|
3524
|
+
problem: z32.string().max(400).optional()
|
|
3499
3525
|
});
|
|
3500
|
-
var AppsWindowActionResult =
|
|
3501
|
-
var AppsWindowsOpenParams =
|
|
3502
|
-
var AppsWindowsReloadParams =
|
|
3503
|
-
var ShownSection =
|
|
3504
|
-
title:
|
|
3526
|
+
var AppsWindowActionResult = z32.strictObject({ message: z32.string().max(400) });
|
|
3527
|
+
var AppsWindowsOpenParams = z32.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
3528
|
+
var AppsWindowsReloadParams = z32.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
3529
|
+
var ShownSection = z32.strictObject({
|
|
3530
|
+
title: z32.string().max(300),
|
|
3505
3531
|
/** Rows drawn under it (a collapsed section draws none). */
|
|
3506
|
-
rows:
|
|
3507
|
-
expanded:
|
|
3532
|
+
rows: z32.number().int().nonnegative(),
|
|
3533
|
+
expanded: z32.boolean()
|
|
3508
3534
|
});
|
|
3509
|
-
var AppsWindowsShownParams =
|
|
3510
|
-
var AppsWindowsShownResult =
|
|
3535
|
+
var AppsWindowsShownParams = z32.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
3536
|
+
var AppsWindowsShownResult = z32.strictObject({
|
|
3511
3537
|
window: ChatPlace,
|
|
3512
|
-
open:
|
|
3513
|
-
sections:
|
|
3514
|
-
problem:
|
|
3538
|
+
open: z32.boolean(),
|
|
3539
|
+
sections: z32.array(ShownSection).max(200),
|
|
3540
|
+
problem: z32.string().max(400).nullable()
|
|
3515
3541
|
});
|
|
3516
|
-
var AppsWindowsSetRemoteControlParams =
|
|
3517
|
-
var AppsWindowsSetRemoteControlResult =
|
|
3518
|
-
message:
|
|
3542
|
+
var AppsWindowsSetRemoteControlParams = z32.strictObject({ app_key: AppKey, window: ChatPlace, enabled: z32.boolean() });
|
|
3543
|
+
var AppsWindowsSetRemoteControlResult = z32.strictObject({
|
|
3544
|
+
message: z32.string().max(400),
|
|
3519
3545
|
/** "now" = written into the closed window; "next_close" = queued until it closes. */
|
|
3520
|
-
when:
|
|
3546
|
+
when: z32.enum(["now", "next_close"]),
|
|
3521
3547
|
remote_control: WindowRemoteControl
|
|
3522
3548
|
});
|
|
3523
|
-
var AppsWindowsRestartParams =
|
|
3524
|
-
var AppsWindowsRefreshUsageParams =
|
|
3525
|
-
var AppsProjectsMoveParams =
|
|
3549
|
+
var AppsWindowsRestartParams = z32.strictObject({ app_key: AppKey, window: ChatPlace, force: z32.boolean().default(false) });
|
|
3550
|
+
var AppsWindowsRefreshUsageParams = z32.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
3551
|
+
var AppsProjectsMoveParams = z32.strictObject({
|
|
3526
3552
|
app_key: AppKey,
|
|
3527
3553
|
chat_id: ChatId,
|
|
3528
3554
|
from_project_id: ChatProjectId,
|
|
3529
3555
|
to_project_id: ChatProjectId.optional(),
|
|
3530
|
-
new_project_name:
|
|
3531
|
-
});
|
|
3532
|
-
var AppsProjectsMoveResult =
|
|
3533
|
-
var AppsProjectsCreateParams =
|
|
3534
|
-
var AppsProjectsCreateResult =
|
|
3535
|
-
var AppsProjectsImportPinsParams =
|
|
3536
|
-
var AppsProjectsImportPinsResult =
|
|
3537
|
-
var ProjectMoveChat =
|
|
3538
|
-
var ProjectMoveSkip =
|
|
3539
|
-
var ProjectMoveGroup =
|
|
3540
|
-
ok:
|
|
3541
|
-
name:
|
|
3556
|
+
new_project_name: z32.string().min(1).max(200).optional()
|
|
3557
|
+
});
|
|
3558
|
+
var AppsProjectsMoveResult = z32.strictObject({ chat: ChatRow, project: ChatProject });
|
|
3559
|
+
var AppsProjectsCreateParams = z32.strictObject({ app_key: AppKey, name: z32.string().min(1).max(200) });
|
|
3560
|
+
var AppsProjectsCreateResult = z32.strictObject({ project: ChatProject });
|
|
3561
|
+
var AppsProjectsImportPinsParams = z32.strictObject({ app_key: AppKey });
|
|
3562
|
+
var AppsProjectsImportPinsResult = z32.strictObject({ message: z32.string().max(400) });
|
|
3563
|
+
var ProjectMoveChat = z32.strictObject({ chat_id: ChatId, title: z32.string().max(300) });
|
|
3564
|
+
var ProjectMoveSkip = z32.strictObject({ chat_id: ChatId, title: z32.string().max(300), window: ChatPlace.nullable(), reason: z32.string().max(400) });
|
|
3565
|
+
var ProjectMoveGroup = z32.strictObject({
|
|
3566
|
+
ok: z32.boolean(),
|
|
3567
|
+
name: z32.string().max(200),
|
|
3542
3568
|
/** Why it is not (or was not) grouped — e.g. the window is open. */
|
|
3543
|
-
reason:
|
|
3569
|
+
reason: z32.string().max(400).optional(),
|
|
3544
3570
|
/** Chats that get (or got) the group; already in it; taken from another group of the window. */
|
|
3545
3571
|
assign: nonNegInt.optional(),
|
|
3546
3572
|
already: nonNegInt.optional(),
|
|
3547
3573
|
from_other_groups: nonNegInt.optional(),
|
|
3548
3574
|
/** A group of that name was already there (reused, never doubled). */
|
|
3549
|
-
group_exists:
|
|
3575
|
+
group_exists: z32.boolean().optional(),
|
|
3550
3576
|
/** 1.43: "now" = written into the closed window; "next_close" = queued until that window closes. */
|
|
3551
|
-
when:
|
|
3577
|
+
when: z32.enum(["now", "next_close"]).optional(),
|
|
3552
3578
|
/** 1.43: the window's own id of the group used (absent while a new one waits to be made). */
|
|
3553
|
-
group_id:
|
|
3579
|
+
group_id: z32.string().max(200).optional()
|
|
3554
3580
|
});
|
|
3555
|
-
var ProjectMoveOutcome =
|
|
3581
|
+
var ProjectMoveOutcome = z32.strictObject({
|
|
3556
3582
|
chat_id: ChatId,
|
|
3557
|
-
title:
|
|
3558
|
-
outcome:
|
|
3559
|
-
off:
|
|
3560
|
-
reason:
|
|
3561
|
-
pin:
|
|
3562
|
-
group:
|
|
3563
|
-
});
|
|
3564
|
-
var WindowGroup =
|
|
3565
|
-
var AppsWindowsGroupsParams =
|
|
3566
|
-
var AppsWindowsGroupsResult =
|
|
3583
|
+
title: z32.string().max(300),
|
|
3584
|
+
outcome: z32.enum(["copied", "moved", "already", "skipped"]),
|
|
3585
|
+
off: z32.array(ChatPlace).max(50),
|
|
3586
|
+
reason: z32.string().max(400).nullable(),
|
|
3587
|
+
pin: z32.enum(["now", "next_close", "failed"]).nullable(),
|
|
3588
|
+
group: z32.enum(["now", "next_close", "failed"]).nullable()
|
|
3589
|
+
});
|
|
3590
|
+
var WindowGroup = z32.strictObject({ id: z32.string().max(200), name: z32.string().max(200), count: nonNegInt });
|
|
3591
|
+
var AppsWindowsGroupsParams = z32.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
3592
|
+
var AppsWindowsGroupsResult = z32.strictObject({
|
|
3567
3593
|
window: ChatPlace,
|
|
3568
|
-
open:
|
|
3569
|
-
groups:
|
|
3594
|
+
open: z32.boolean(),
|
|
3595
|
+
groups: z32.array(WindowGroup).max(1e3)
|
|
3570
3596
|
});
|
|
3571
|
-
var ProjectMovePin =
|
|
3572
|
-
ok:
|
|
3597
|
+
var ProjectMovePin = z32.strictObject({
|
|
3598
|
+
ok: z32.boolean(),
|
|
3573
3599
|
/** "now" = written into the closed window; "next_close" = queued until that window closes. */
|
|
3574
|
-
when:
|
|
3600
|
+
when: z32.enum(["now", "next_close"]),
|
|
3575
3601
|
/** Pinned by this call (dry run: would be). */
|
|
3576
3602
|
pinned: nonNegInt,
|
|
3577
3603
|
/** Already pinned there. */
|
|
@@ -3579,140 +3605,140 @@ var ProjectMovePin = z31.strictObject({
|
|
|
3579
3605
|
/** Waiting for the window to close (dry run: would wait). */
|
|
3580
3606
|
queued: nonNegInt,
|
|
3581
3607
|
/** Why not pinned (ok false), or why queued. */
|
|
3582
|
-
reason:
|
|
3608
|
+
reason: z32.string().max(400).optional()
|
|
3583
3609
|
});
|
|
3584
|
-
var AppsProjectsToWindowParams =
|
|
3610
|
+
var AppsProjectsToWindowParams = z32.strictObject({
|
|
3585
3611
|
app_key: AppKey,
|
|
3586
3612
|
project_id: ChatProjectId,
|
|
3587
3613
|
window: ChatPlace,
|
|
3588
3614
|
/** Also take each chat off its other side windows where safe (never main, the holder, an open window). */
|
|
3589
|
-
take_off:
|
|
3615
|
+
take_off: z32.boolean().default(false),
|
|
3590
3616
|
/** Also group them under the project's name in that window's sidebar (1.43: an open window's is queued for its next close). */
|
|
3591
|
-
group:
|
|
3617
|
+
group: z32.boolean().default(false),
|
|
3592
3618
|
/** 1.43: group them into this existing group of the window (apps.windows.groups); implies group. */
|
|
3593
|
-
group_id:
|
|
3619
|
+
group_id: z32.string().min(1).max(200).optional(),
|
|
3594
3620
|
/** 1.43: group them under this name (an existing group of that name is reused, else made); implies group. */
|
|
3595
|
-
group_name:
|
|
3621
|
+
group_name: z32.string().trim().min(1).max(200).optional(),
|
|
3596
3622
|
/** 1.32: also pin them in that window (now if closed, else when it next closes). */
|
|
3597
|
-
pin:
|
|
3623
|
+
pin: z32.boolean().optional(),
|
|
3598
3624
|
/** 1.36: a batch: exactly these chats of the project and no other (a reused marker is a label, never a sweep). */
|
|
3599
|
-
chat_ids:
|
|
3625
|
+
chat_ids: z32.array(ChatId).min(1).max(5e3).optional(),
|
|
3600
3626
|
/** 1.36: take them off this one side window only (a Move's origin), never main or another window that lists them. */
|
|
3601
3627
|
take_off_from: ChatPlace.optional(),
|
|
3602
|
-
dry_run:
|
|
3628
|
+
dry_run: z32.boolean().default(false)
|
|
3603
3629
|
});
|
|
3604
|
-
var AppsProjectsToWindowResult =
|
|
3630
|
+
var AppsProjectsToWindowResult = z32.strictObject({
|
|
3605
3631
|
project_id: ChatProjectId,
|
|
3606
3632
|
window: ChatPlace,
|
|
3607
|
-
dry_run:
|
|
3608
|
-
place:
|
|
3609
|
-
already:
|
|
3610
|
-
take_off:
|
|
3611
|
-
skipped:
|
|
3633
|
+
dry_run: z32.boolean(),
|
|
3634
|
+
place: z32.array(ProjectMoveChat).max(5e3),
|
|
3635
|
+
already: z32.array(ProjectMoveChat).max(5e3),
|
|
3636
|
+
take_off: z32.array(ProjectMoveChat.extend({ window: ChatPlace })).max(2e4),
|
|
3637
|
+
skipped: z32.array(ProjectMoveSkip).max(2e4),
|
|
3612
3638
|
/** Chats of the project from other apps (no windows to place into), left as they are. */
|
|
3613
3639
|
other_apps: nonNegInt,
|
|
3614
3640
|
group: ProjectMoveGroup.nullable(),
|
|
3615
3641
|
/** 1.32: the pin in the target window (absent: not asked). */
|
|
3616
3642
|
pin: ProjectMovePin.optional(),
|
|
3617
3643
|
/** 1.43: one row per chat, what happened to it (absent from an older core). */
|
|
3618
|
-
chats:
|
|
3619
|
-
message:
|
|
3644
|
+
chats: z32.array(ProjectMoveOutcome).max(5e3).optional(),
|
|
3645
|
+
message: z32.string().max(400)
|
|
3620
3646
|
});
|
|
3621
|
-
var AppsChatsBringBackParams =
|
|
3647
|
+
var AppsChatsBringBackParams = z32.strictObject({ app_key: AppKey, chat_id: ChatId, dry_run: z32.boolean().optional() });
|
|
3622
3648
|
var AppsChatsBringBackResult = AppsProjectsToWindowResult.extend({ project_id: ChatProjectId.nullable() });
|
|
3623
|
-
var TidyUpFacet =
|
|
3649
|
+
var TidyUpFacet = z32.strictObject({
|
|
3624
3650
|
app_key: AppKey,
|
|
3625
|
-
facet:
|
|
3626
|
-
state:
|
|
3627
|
-
note:
|
|
3651
|
+
facet: z32.enum(["title", "pin"]),
|
|
3652
|
+
state: z32.enum(["synced", "not_synced", "unsupported"]),
|
|
3653
|
+
note: z32.string().max(400),
|
|
3628
3654
|
to_push: nonNegInt,
|
|
3629
3655
|
pushed: nonNegInt,
|
|
3630
3656
|
already: nonNegInt,
|
|
3631
3657
|
waiting: nonNegInt,
|
|
3632
3658
|
failed: nonNegInt
|
|
3633
3659
|
});
|
|
3634
|
-
var TidyUpRestart =
|
|
3635
|
-
var AppsChatsTidyUpParams =
|
|
3636
|
-
var AppsChatsTidyUpResult =
|
|
3637
|
-
dry_run:
|
|
3638
|
-
facets:
|
|
3660
|
+
var TidyUpRestart = z32.strictObject({ window: ChatPlace, why: z32.string().max(400) });
|
|
3661
|
+
var AppsChatsTidyUpParams = z32.strictObject({ dry_run: z32.boolean(), restart_windows: z32.array(ChatPlace).max(64).optional() });
|
|
3662
|
+
var AppsChatsTidyUpResult = z32.strictObject({
|
|
3663
|
+
dry_run: z32.boolean(),
|
|
3664
|
+
facets: z32.array(TidyUpFacet).max(32),
|
|
3639
3665
|
/** Claude windows that would keep an old name until they reopen (the plan lists them; nothing is quit unasked). */
|
|
3640
|
-
restart:
|
|
3666
|
+
restart: z32.array(TidyUpRestart).max(64),
|
|
3641
3667
|
/** The windows this run quit and reopened. */
|
|
3642
|
-
restarted:
|
|
3643
|
-
message:
|
|
3668
|
+
restarted: z32.array(ChatPlace).max(64),
|
|
3669
|
+
message: z32.string().max(600)
|
|
3644
3670
|
});
|
|
3645
|
-
var ColdChat =
|
|
3671
|
+
var ColdChat = z32.strictObject({
|
|
3646
3672
|
id: ChatId,
|
|
3647
|
-
title:
|
|
3648
|
-
repo:
|
|
3649
|
-
window:
|
|
3650
|
-
account:
|
|
3651
|
-
model_name:
|
|
3673
|
+
title: z32.string().max(1e3),
|
|
3674
|
+
repo: z32.string().max(200).nullable(),
|
|
3675
|
+
window: z32.string().max(64).nullable(),
|
|
3676
|
+
account: z32.string().max(320).nullable(),
|
|
3677
|
+
model_name: z32.string().max(120).nullable(),
|
|
3652
3678
|
context_tokens: nonNegInt,
|
|
3653
3679
|
cold_at_ms: epochMs,
|
|
3654
3680
|
/** Waking it once the cache is cold. */
|
|
3655
|
-
cold_cost:
|
|
3681
|
+
cold_cost: z32.number().nullable(),
|
|
3656
3682
|
/** Waking it while the cache is warm. */
|
|
3657
|
-
warm_cost:
|
|
3683
|
+
warm_cost: z32.number().nullable(),
|
|
3658
3684
|
/** Its account is on extra usage (a 5-minute cache, and real money). */
|
|
3659
|
-
extra_usage:
|
|
3685
|
+
extra_usage: z32.boolean(),
|
|
3660
3686
|
/** A scheduled routine's run. */
|
|
3661
|
-
scheduled:
|
|
3687
|
+
scheduled: z32.boolean(),
|
|
3662
3688
|
/** It can be shown in its window (started in the desktop app). */
|
|
3663
|
-
openable:
|
|
3689
|
+
openable: z32.boolean(),
|
|
3664
3690
|
/** How its window was decided, or why it can't be opened. */
|
|
3665
|
-
how:
|
|
3691
|
+
how: z32.string().max(200).nullable(),
|
|
3666
3692
|
/** 1.78: the person hid this chat from Matrx's lists (our Hide, as on ChatRow.hidden); absent = shown. */
|
|
3667
|
-
hidden:
|
|
3693
|
+
hidden: z32.boolean().optional()
|
|
3668
3694
|
});
|
|
3669
|
-
var AppsChatsColdParams =
|
|
3670
|
-
var AppsChatsColdResult =
|
|
3695
|
+
var AppsChatsColdParams = z32.strictObject({ app_key: AppKey });
|
|
3696
|
+
var AppsChatsColdResult = z32.strictObject({
|
|
3671
3697
|
app_key: AppKey,
|
|
3672
3698
|
/** Waiting for the person with a warm cache, most urgent first. */
|
|
3673
|
-
waiting:
|
|
3699
|
+
waiting: z32.array(ColdChat).max(2e3),
|
|
3674
3700
|
/** Went cold in the last while. */
|
|
3675
|
-
recently_cold:
|
|
3701
|
+
recently_cold: z32.array(ColdChat).max(2e3),
|
|
3676
3702
|
/** Chats working right now (not waiting). */
|
|
3677
3703
|
working: nonNegInt
|
|
3678
3704
|
});
|
|
3679
|
-
var TitleCopies =
|
|
3705
|
+
var TitleCopies = z32.strictObject({
|
|
3680
3706
|
window: ChatPlace,
|
|
3681
3707
|
/** Record copies in that window holding a different name (main keeps one per account folder). */
|
|
3682
3708
|
copies: nonNegInt,
|
|
3683
|
-
titles:
|
|
3709
|
+
titles: z32.array(z32.strictObject({ title: z32.string().max(2e3), source: z32.string().max(32) })).max(50)
|
|
3684
3710
|
});
|
|
3685
|
-
var TitleMismatch =
|
|
3711
|
+
var TitleMismatch = z32.strictObject({
|
|
3686
3712
|
chat_id: ChatId,
|
|
3687
3713
|
/** The right name: the latest one a person gave it (in any window, or in Matrx), else the newest automatic title. */
|
|
3688
|
-
title:
|
|
3689
|
-
title_source:
|
|
3714
|
+
title: z32.string().max(2e3),
|
|
3715
|
+
title_source: z32.enum(["user", "auto"]),
|
|
3690
3716
|
/** Where the right name came from: a window, "matrx", or "ledger" (decided earlier). */
|
|
3691
|
-
decided_from:
|
|
3692
|
-
kind:
|
|
3693
|
-
windows:
|
|
3694
|
-
differs_in:
|
|
3717
|
+
decided_from: z32.string().max(64),
|
|
3718
|
+
kind: z32.enum(["user_vs_auto", "user_vs_user", "auto_vs_auto", "source_only"]),
|
|
3719
|
+
windows: z32.array(ChatPlace).max(200),
|
|
3720
|
+
differs_in: z32.array(TitleCopies).max(200)
|
|
3695
3721
|
});
|
|
3696
|
-
var StaleTitleWindow =
|
|
3722
|
+
var StaleTitleWindow = z32.strictObject({
|
|
3697
3723
|
window: ChatPlace,
|
|
3698
3724
|
/** First and latest time (ms) it was seen writing an old name back. */
|
|
3699
3725
|
since_ms: nonNegInt,
|
|
3700
3726
|
last_ms: nonNegInt
|
|
3701
3727
|
});
|
|
3702
|
-
var AppsChatsTitlesCheckParams =
|
|
3703
|
-
var AppsChatsTitlesCheckResult =
|
|
3728
|
+
var AppsChatsTitlesCheckParams = z32.strictObject({ app_key: AppKey });
|
|
3729
|
+
var AppsChatsTitlesCheckResult = z32.strictObject({
|
|
3704
3730
|
app_key: AppKey,
|
|
3705
3731
|
chats_total: nonNegInt,
|
|
3706
3732
|
chats_in_several_windows: nonNegInt,
|
|
3707
3733
|
/** Chats with a different name in some window (or in Matrx). */
|
|
3708
3734
|
chats_with_a_different_name: nonNegInt,
|
|
3709
3735
|
copies_to_write: nonNegInt,
|
|
3710
|
-
chats:
|
|
3736
|
+
chats: z32.array(TitleMismatch).max(5e3),
|
|
3711
3737
|
/** Windows that keep writing old names back (each is fixed every pass; reloading it, Cmd+R, stops it). Since 1.33. */
|
|
3712
|
-
stale_windows:
|
|
3738
|
+
stale_windows: z32.array(StaleTitleWindow).max(200).optional()
|
|
3713
3739
|
});
|
|
3714
|
-
var AppsChatsTitlesPushParams =
|
|
3715
|
-
var AppsChatsTitlesPushResult =
|
|
3740
|
+
var AppsChatsTitlesPushParams = z32.strictObject({ app_key: AppKey, chat_id: ChatId.optional(), dry_run: z32.boolean().optional() });
|
|
3741
|
+
var AppsChatsTitlesPushResult = z32.strictObject({
|
|
3716
3742
|
app_key: AppKey,
|
|
3717
3743
|
/** Record files rewritten (title and titleSource only, each backed up first). */
|
|
3718
3744
|
written: nonNegInt,
|
|
@@ -3722,453 +3748,453 @@ var AppsChatsTitlesPushResult = z31.strictObject({
|
|
|
3722
3748
|
/** Still different after the push (dry_run: would be written). */
|
|
3723
3749
|
chats_with_a_different_name: nonNegInt
|
|
3724
3750
|
});
|
|
3725
|
-
var AppsChatsOpenParams =
|
|
3726
|
-
var SpendSplit =
|
|
3727
|
-
var SpendScopes =
|
|
3728
|
-
var SpendAccount =
|
|
3729
|
-
account:
|
|
3751
|
+
var AppsChatsOpenParams = z32.strictObject({ app_key: AppKey, chat_id: ChatId, window: ChatPlace.optional() });
|
|
3752
|
+
var SpendSplit = z32.strictObject({ main: z32.number(), helpers: z32.number() });
|
|
3753
|
+
var SpendScopes = z32.strictObject({ today: SpendSplit, week: SpendSplit });
|
|
3754
|
+
var SpendAccount = z32.strictObject({
|
|
3755
|
+
account: z32.string().max(320),
|
|
3730
3756
|
spend: SpendScopes,
|
|
3731
|
-
last_hour:
|
|
3732
|
-
last_5h:
|
|
3733
|
-
five_hour:
|
|
3734
|
-
weekly:
|
|
3757
|
+
last_hour: z32.number().nullable(),
|
|
3758
|
+
last_5h: z32.number().nullable(),
|
|
3759
|
+
five_hour: z32.number().nullable(),
|
|
3760
|
+
weekly: z32.number().nullable(),
|
|
3735
3761
|
as_of_ms: epochMs.nullable(),
|
|
3736
3762
|
weekly_resets_at_ms: epochMs.nullable(),
|
|
3737
3763
|
/** When the 5-hour or weekly limit is projected to be reached at the current burn. */
|
|
3738
3764
|
five_hour_full_at_ms: epochMs.nullable(),
|
|
3739
3765
|
weekly_full_at_ms: epochMs.nullable(),
|
|
3740
3766
|
/** The reading is too old to project. */
|
|
3741
|
-
stale:
|
|
3767
|
+
stale: z32.boolean()
|
|
3742
3768
|
});
|
|
3743
|
-
var SpendModel =
|
|
3744
|
-
var SpendChat =
|
|
3769
|
+
var SpendModel = z32.strictObject({ model: z32.string().max(120), name: z32.string().max(120), spend: SpendScopes });
|
|
3770
|
+
var SpendChat = z32.strictObject({
|
|
3745
3771
|
id: ChatId,
|
|
3746
|
-
title:
|
|
3747
|
-
repo:
|
|
3748
|
-
window:
|
|
3772
|
+
title: z32.string().max(1e3),
|
|
3773
|
+
repo: z32.string().max(200).nullable(),
|
|
3774
|
+
window: z32.string().max(64).nullable(),
|
|
3749
3775
|
spend: SpendScopes,
|
|
3750
3776
|
helpers: nonNegInt,
|
|
3751
3777
|
/** 1.78: the person hid this chat from Matrx's lists (our Hide, as on ChatRow.hidden); absent = shown. */
|
|
3752
|
-
hidden:
|
|
3778
|
+
hidden: z32.boolean().optional()
|
|
3753
3779
|
});
|
|
3754
|
-
var SpendHelper =
|
|
3755
|
-
var SpendLive =
|
|
3780
|
+
var SpendHelper = z32.strictObject({ model: z32.string().max(120), steps: nonNegInt, over_steps: z32.boolean(), description: z32.string().max(400) });
|
|
3781
|
+
var SpendLive = z32.strictObject({
|
|
3756
3782
|
id: ChatId,
|
|
3757
|
-
title:
|
|
3758
|
-
window:
|
|
3759
|
-
helpers:
|
|
3783
|
+
title: z32.string().max(1e3),
|
|
3784
|
+
window: z32.string().max(64).nullable(),
|
|
3785
|
+
helpers: z32.array(SpendHelper).max(200),
|
|
3760
3786
|
/** 1.78: the person hid this chat from Matrx's lists (our Hide, as on ChatRow.hidden); absent = shown. */
|
|
3761
|
-
hidden:
|
|
3787
|
+
hidden: z32.boolean().optional()
|
|
3762
3788
|
});
|
|
3763
|
-
var SpendIdleScope =
|
|
3764
|
-
var SpendIdle =
|
|
3789
|
+
var SpendIdleScope = z32.strictObject({ count: nonNegInt, tokens: nonNegInt, cost: z32.number(), avoidable: z32.number() });
|
|
3790
|
+
var SpendIdle = z32.strictObject({
|
|
3765
3791
|
id: ChatId,
|
|
3766
|
-
chat:
|
|
3767
|
-
who:
|
|
3792
|
+
chat: z32.string().max(1e3),
|
|
3793
|
+
who: z32.string().max(400),
|
|
3768
3794
|
today: SpendIdleScope,
|
|
3769
3795
|
week: SpendIdleScope,
|
|
3770
3796
|
last_ms: epochMs,
|
|
3771
3797
|
/** 1.78: the person hid this chat from Matrx's lists (our Hide, as on ChatRow.hidden); absent = shown. */
|
|
3772
|
-
hidden:
|
|
3798
|
+
hidden: z32.boolean().optional()
|
|
3773
3799
|
});
|
|
3774
|
-
var SpendStart =
|
|
3775
|
-
var SpendDay =
|
|
3776
|
-
var AppsSpendParams =
|
|
3777
|
-
var AppsSpendResult =
|
|
3800
|
+
var SpendStart = z32.strictObject({ repo: z32.string().max(200), count: nonNegInt, median: nonNegInt, latest: z32.array(nonNegInt).max(20), alarm: z32.string().max(400).nullable() });
|
|
3801
|
+
var SpendDay = z32.strictObject({ date: z32.string().regex(/^\d{4}-\d{2}-\d{2}$/), main: z32.number(), helpers: z32.number() });
|
|
3802
|
+
var AppsSpendParams = z32.strictObject({ app_key: AppKey });
|
|
3803
|
+
var AppsSpendResult = z32.strictObject({
|
|
3778
3804
|
app_key: AppKey,
|
|
3779
3805
|
/** False while older chats are still being read. */
|
|
3780
|
-
complete:
|
|
3781
|
-
today_total:
|
|
3782
|
-
week_total:
|
|
3783
|
-
idle_today:
|
|
3784
|
-
idle_week:
|
|
3806
|
+
complete: z32.boolean(),
|
|
3807
|
+
today_total: z32.number(),
|
|
3808
|
+
week_total: z32.number(),
|
|
3809
|
+
idle_today: z32.number(),
|
|
3810
|
+
idle_week: z32.number(),
|
|
3785
3811
|
/** Models with no known list price. */
|
|
3786
|
-
unpriced:
|
|
3812
|
+
unpriced: z32.array(z32.string().max(120)).max(100),
|
|
3787
3813
|
/** Helpers past their step budget, unusual starting sizes. */
|
|
3788
|
-
alarms:
|
|
3789
|
-
live:
|
|
3790
|
-
accounts:
|
|
3791
|
-
models:
|
|
3814
|
+
alarms: z32.array(z32.string().max(400)).max(200),
|
|
3815
|
+
live: z32.array(SpendLive).max(200),
|
|
3816
|
+
accounts: z32.array(SpendAccount).max(200),
|
|
3817
|
+
models: z32.array(SpendModel).max(100),
|
|
3792
3818
|
/** (1.24) The last 7 days, oldest first (today last). */
|
|
3793
|
-
days:
|
|
3794
|
-
chats:
|
|
3795
|
-
idle:
|
|
3796
|
-
starts:
|
|
3797
|
-
});
|
|
3798
|
-
var AppsSyncStatusParams =
|
|
3799
|
-
var AppsSyncStatusResult =
|
|
3800
|
-
healthy:
|
|
3801
|
-
summary:
|
|
3802
|
-
problems:
|
|
3803
|
-
warnings:
|
|
3819
|
+
days: z32.array(SpendDay).max(14).optional(),
|
|
3820
|
+
chats: z32.array(SpendChat).max(500),
|
|
3821
|
+
idle: z32.array(SpendIdle).max(500),
|
|
3822
|
+
starts: z32.array(SpendStart).max(200)
|
|
3823
|
+
});
|
|
3824
|
+
var AppsSyncStatusParams = z32.strictObject({ app_key: AppKey });
|
|
3825
|
+
var AppsSyncStatusResult = z32.strictObject({
|
|
3826
|
+
healthy: z32.boolean(),
|
|
3827
|
+
summary: z32.string().max(400),
|
|
3828
|
+
problems: z32.array(z32.string().max(400)).max(200),
|
|
3829
|
+
warnings: z32.array(z32.string().max(400)).max(200),
|
|
3804
3830
|
/** Accounts seen with no saved name yet (Save account names fixes them). */
|
|
3805
|
-
unnamed_accounts:
|
|
3831
|
+
unnamed_accounts: z32.array(z32.string().max(80)).max(200),
|
|
3806
3832
|
/** The full report. */
|
|
3807
|
-
output:
|
|
3808
|
-
});
|
|
3809
|
-
var AppsSyncRunParams =
|
|
3810
|
-
var AppsWindowsProcessesParams =
|
|
3811
|
-
var AppsWindowsProcessesResult =
|
|
3812
|
-
var AppsWindowsAddParams =
|
|
3813
|
-
var AppsWindowsSaveNamesParams =
|
|
3814
|
-
var AppsWindowsUpdateStateParams =
|
|
3815
|
-
var AppsWindowsUpdateStateResult =
|
|
3833
|
+
output: z32.string().max(2e5)
|
|
3834
|
+
});
|
|
3835
|
+
var AppsSyncRunParams = z32.strictObject({ app_key: AppKey });
|
|
3836
|
+
var AppsWindowsProcessesParams = z32.strictObject({ app_key: AppKey });
|
|
3837
|
+
var AppsWindowsProcessesResult = z32.strictObject({ processes: z32.array(z32.string().max(2e3)).max(2e3) });
|
|
3838
|
+
var AppsWindowsAddParams = z32.strictObject({ app_key: AppKey, window: ChatPlace, email: z32.string().min(3).max(320) });
|
|
3839
|
+
var AppsWindowsSaveNamesParams = z32.strictObject({ app_key: AppKey });
|
|
3840
|
+
var AppsWindowsUpdateStateParams = z32.strictObject({ app_key: AppKey });
|
|
3841
|
+
var AppsWindowsUpdateStateResult = z32.strictObject({
|
|
3816
3842
|
app_key: AppKey,
|
|
3817
|
-
pending:
|
|
3843
|
+
pending: z32.boolean(),
|
|
3818
3844
|
/** The downloaded release's name (Claude: "Claude 2.31226.1"), when the app's log names it. */
|
|
3819
|
-
version:
|
|
3845
|
+
version: z32.string().max(120).nullable(),
|
|
3820
3846
|
/** When the update became pending (the download's time), when known. */
|
|
3821
3847
|
since_ms: epochMs.nullable(),
|
|
3822
3848
|
/** Windows open when the update became pending (or last seen open) that are closed now. */
|
|
3823
|
-
closed:
|
|
3849
|
+
closed: z32.array(ChatPlace).max(200),
|
|
3824
3850
|
/**
|
|
3825
3851
|
* Since 1.27: the windows in `closed` that the update itself quit (the app's log records a quit for
|
|
3826
3852
|
* the update within a minute of when each was last seen running). Absent: not known.
|
|
3827
3853
|
*/
|
|
3828
|
-
closed_by_update:
|
|
3854
|
+
closed_by_update: z32.array(ChatPlace).max(200).optional()
|
|
3829
3855
|
});
|
|
3830
|
-
var AppsWindowsReopenParams =
|
|
3831
|
-
var AppsWindowsReopenResult =
|
|
3832
|
-
var AppsWindowsUpdateAndReopenParams =
|
|
3833
|
-
var AppsWindowsUpdateAndReopenResult =
|
|
3834
|
-
message:
|
|
3856
|
+
var AppsWindowsReopenParams = z32.strictObject({ app_key: AppKey, windows: z32.array(ChatPlace).min(1).max(200) });
|
|
3857
|
+
var AppsWindowsReopenResult = z32.strictObject({ message: z32.string().max(400), opened: z32.array(ChatPlace).max(200) });
|
|
3858
|
+
var AppsWindowsUpdateAndReopenParams = z32.strictObject({ app_key: AppKey, force: z32.boolean().default(false), dry_run: z32.boolean().default(false) });
|
|
3859
|
+
var AppsWindowsUpdateAndReopenResult = z32.strictObject({
|
|
3860
|
+
message: z32.string().max(400),
|
|
3835
3861
|
/** Windows quit (with dry_run: to be quit). */
|
|
3836
|
-
quit:
|
|
3862
|
+
quit: z32.array(ChatPlace).max(200),
|
|
3837
3863
|
/** Windows reopened (with dry_run: to be reopened), main first. */
|
|
3838
|
-
reopened:
|
|
3864
|
+
reopened: z32.array(ChatPlace).max(200),
|
|
3839
3865
|
/** The version installed, null when the install did not happen (or dry_run). */
|
|
3840
|
-
installed_version:
|
|
3866
|
+
installed_version: z32.string().max(64).nullable()
|
|
3841
3867
|
});
|
|
3842
|
-
var WeightProcess =
|
|
3843
|
-
var WeightSession =
|
|
3868
|
+
var WeightProcess = z32.strictObject({ cmd: z32.string().max(200), gb: z32.number(), cpu: z32.number() });
|
|
3869
|
+
var WeightSession = z32.strictObject({
|
|
3844
3870
|
/** The chat's id (its --resume); null for a new chat with no transcript yet. */
|
|
3845
3871
|
id: ChatId.nullable(),
|
|
3846
3872
|
/** Every window it runs in ("main", "work"); two or more is a duplicate. */
|
|
3847
|
-
windows:
|
|
3873
|
+
windows: z32.array(ChatPlace).max(20),
|
|
3848
3874
|
/** Hours since its last reply; 0 while working; null when not known (a new chat). */
|
|
3849
|
-
idle_h:
|
|
3875
|
+
idle_h: z32.number().nullable(),
|
|
3850
3876
|
/** The engine's word: waiting, idle, working, new. */
|
|
3851
|
-
state:
|
|
3852
|
-
title:
|
|
3853
|
-
gb:
|
|
3854
|
-
cpu:
|
|
3877
|
+
state: z32.string().max(40),
|
|
3878
|
+
title: z32.string().max(1e3),
|
|
3879
|
+
gb: z32.number(),
|
|
3880
|
+
cpu: z32.number(),
|
|
3855
3881
|
procs: nonNegInt,
|
|
3856
3882
|
/** The heaviest processes of its tree, heaviest first. */
|
|
3857
|
-
top:
|
|
3883
|
+
top: z32.array(WeightProcess).max(10),
|
|
3858
3884
|
/** The engine's verdicts: "OLD+HEAVY", "BURNING IDLE", "dup". */
|
|
3859
|
-
flags:
|
|
3885
|
+
flags: z32.array(z32.string().max(40)).max(10),
|
|
3860
3886
|
/** Idle hours x (GB + cores now): the engine's sort order. */
|
|
3861
|
-
score:
|
|
3862
|
-
pids:
|
|
3863
|
-
});
|
|
3864
|
-
var WeightOrphan =
|
|
3865
|
-
pid:
|
|
3866
|
-
age_h:
|
|
3867
|
-
cmd:
|
|
3868
|
-
args:
|
|
3869
|
-
gb:
|
|
3870
|
-
cpu:
|
|
3887
|
+
score: z32.number(),
|
|
3888
|
+
pids: z32.array(z32.int().min(1)).max(50)
|
|
3889
|
+
});
|
|
3890
|
+
var WeightOrphan = z32.strictObject({
|
|
3891
|
+
pid: z32.int().min(1),
|
|
3892
|
+
age_h: z32.number(),
|
|
3893
|
+
cmd: z32.string().max(200),
|
|
3894
|
+
args: z32.string().max(2e3),
|
|
3895
|
+
gb: z32.number(),
|
|
3896
|
+
cpu: z32.number(),
|
|
3871
3897
|
procs: nonNegInt,
|
|
3872
|
-
top:
|
|
3898
|
+
top: z32.array(WeightProcess).max(10)
|
|
3873
3899
|
});
|
|
3874
|
-
var WeightMachine =
|
|
3900
|
+
var WeightMachine = z32.strictObject({
|
|
3875
3901
|
procs: nonNegInt,
|
|
3876
3902
|
/** Every process's memory added up, GB. */
|
|
3877
|
-
gb:
|
|
3903
|
+
gb: z32.number(),
|
|
3878
3904
|
/** Cores busy now (every process's CPU / 100). */
|
|
3879
|
-
cpu_cores:
|
|
3905
|
+
cpu_cores: z32.number(),
|
|
3880
3906
|
/** Load over 1, 5 and 15 minutes. */
|
|
3881
|
-
load:
|
|
3907
|
+
load: z32.array(z32.number()).max(3).nullable(),
|
|
3882
3908
|
cores: nonNegInt.nullable(),
|
|
3883
|
-
ram_gb:
|
|
3884
|
-
free_gb:
|
|
3885
|
-
compressed_gb:
|
|
3886
|
-
swap_used_gb:
|
|
3909
|
+
ram_gb: z32.number().nullable(),
|
|
3910
|
+
free_gb: z32.number().nullable(),
|
|
3911
|
+
compressed_gb: z32.number().nullable(),
|
|
3912
|
+
swap_used_gb: z32.number().nullable(),
|
|
3887
3913
|
/** The kernel's memory pressure level: 1 normal, 2 warning, 4 critical. */
|
|
3888
3914
|
pressure: nonNegInt.nullable()
|
|
3889
3915
|
});
|
|
3890
|
-
var WeightGuardStop =
|
|
3891
|
-
var WeightGuard =
|
|
3892
|
-
var WeightThresholds =
|
|
3893
|
-
var WeightTotals =
|
|
3894
|
-
var AppsWeightParams =
|
|
3895
|
-
var AppsWeightResult =
|
|
3916
|
+
var WeightGuardStop = z32.strictObject({ at_ms: epochMs.nullable(), gb: z32.number().nullable(), reason: z32.string().max(400).nullable(), kind: z32.string().max(80).nullable(), session_id: z32.string().max(128).nullable() });
|
|
3917
|
+
var WeightGuard = z32.strictObject({ daemon_alive: z32.boolean(), stops_24h: nonNegInt, last_stops: z32.array(WeightGuardStop).max(50) });
|
|
3918
|
+
var WeightThresholds = z32.strictObject({ min_idle_h: z32.number(), min_gb: z32.number(), min_cpu: z32.number() });
|
|
3919
|
+
var WeightTotals = z32.strictObject({ sessions: nonNegInt, session_gb: z32.number(), session_cores: z32.number(), flagged: nonNegInt, flagged_gb: z32.number(), orphan_gb: z32.number(), orphan_cores: z32.number() });
|
|
3920
|
+
var AppsWeightParams = z32.strictObject({ app_key: AppKey, fresh: z32.boolean().optional() });
|
|
3921
|
+
var AppsWeightResult = z32.strictObject({
|
|
3896
3922
|
app_key: AppKey,
|
|
3897
3923
|
/** When the engine took this reading. */
|
|
3898
3924
|
taken_at_ms: epochMs,
|
|
3899
|
-
sample_s:
|
|
3925
|
+
sample_s: z32.number(),
|
|
3900
3926
|
thresholds: WeightThresholds,
|
|
3901
3927
|
machine: WeightMachine,
|
|
3902
3928
|
/** Null when this computer has never run the machine guard. */
|
|
3903
3929
|
guard: WeightGuard.nullable(),
|
|
3904
3930
|
/** Every session, highest score first. */
|
|
3905
|
-
sessions:
|
|
3906
|
-
orphans:
|
|
3931
|
+
sessions: z32.array(WeightSession).max(500),
|
|
3932
|
+
orphans: z32.array(WeightOrphan).max(500),
|
|
3907
3933
|
totals: WeightTotals,
|
|
3908
3934
|
/** When the answer was read (the last reading answers at once) and whether a newer one is being taken. */
|
|
3909
3935
|
as_of_ms: epochMs.optional(),
|
|
3910
|
-
refreshing:
|
|
3936
|
+
refreshing: z32.boolean().optional()
|
|
3911
3937
|
});
|
|
3912
|
-
var AppsChatsCopyToAccountParams =
|
|
3938
|
+
var AppsChatsCopyToAccountParams = z32.strictObject({
|
|
3913
3939
|
app_key: AppKey,
|
|
3914
3940
|
origin: ChatPlace,
|
|
3915
3941
|
target: ChatPlace,
|
|
3916
|
-
chat_ids:
|
|
3917
|
-
mode:
|
|
3918
|
-
restart:
|
|
3942
|
+
chat_ids: z32.array(ChatId).min(1).max(500),
|
|
3943
|
+
mode: z32.enum(["copy", "move"]).default("copy"),
|
|
3944
|
+
restart: z32.enum(["queued", "restart_verify"]).default("queued"),
|
|
3919
3945
|
/** Put each chat in the target group named as its origin group (default true). */
|
|
3920
|
-
mirror_groups:
|
|
3946
|
+
mirror_groups: z32.boolean().default(true),
|
|
3921
3947
|
/** Pin in the target the chats pinned in the origin (default true). */
|
|
3922
|
-
pins_follow:
|
|
3948
|
+
pins_follow: z32.boolean().default(true),
|
|
3923
3949
|
/** A copy: group them in the origin under this name ("Copied to <target>"). */
|
|
3924
|
-
source_group:
|
|
3950
|
+
source_group: z32.string().trim().min(1).max(200).optional()
|
|
3925
3951
|
});
|
|
3926
|
-
var CopiedChat =
|
|
3952
|
+
var CopiedChat = z32.strictObject({
|
|
3927
3953
|
chat_id: ChatId,
|
|
3928
|
-
title:
|
|
3929
|
-
outcome:
|
|
3954
|
+
title: z32.string().max(500),
|
|
3955
|
+
outcome: z32.enum(["copied", "moved", "already", "skipped"]),
|
|
3930
3956
|
/** The target group it was put in (its origin group's name), or null. */
|
|
3931
|
-
group:
|
|
3932
|
-
group_state:
|
|
3933
|
-
pinned:
|
|
3934
|
-
pin_state:
|
|
3957
|
+
group: z32.string().max(200).nullable(),
|
|
3958
|
+
group_state: z32.enum(["now", "next_close", "failed"]).nullable(),
|
|
3959
|
+
pinned: z32.boolean(),
|
|
3960
|
+
pin_state: z32.enum(["now", "next_close", "failed"]).nullable(),
|
|
3935
3961
|
/** The read-back: verified, waiting for a window to close (queued), or failed. */
|
|
3936
|
-
state:
|
|
3937
|
-
reason:
|
|
3938
|
-
});
|
|
3939
|
-
var CopyReopened =
|
|
3940
|
-
var CopyRestart =
|
|
3941
|
-
asked:
|
|
3942
|
-
done:
|
|
3943
|
-
windows:
|
|
3944
|
-
reason:
|
|
3962
|
+
state: z32.enum(["verified", "queued", "failed"]),
|
|
3963
|
+
reason: z32.string().max(400).nullable()
|
|
3964
|
+
});
|
|
3965
|
+
var CopyReopened = z32.strictObject({ window: ChatPlace, ok: z32.boolean(), reason: z32.string().max(400).nullable() });
|
|
3966
|
+
var CopyRestart = z32.strictObject({
|
|
3967
|
+
asked: z32.enum(["queued", "restart_verify"]),
|
|
3968
|
+
done: z32.enum(["queued", "restart_verify"]),
|
|
3969
|
+
windows: z32.array(ChatPlace).max(2),
|
|
3970
|
+
reason: z32.string().max(400).nullable(),
|
|
3945
3971
|
/** 1.60: each closed window's reopen outcome (absent from a 1.59 core, and when no window was closed): `ok: false` is a window that did not come back. */
|
|
3946
|
-
reopened:
|
|
3972
|
+
reopened: z32.array(CopyReopened).max(2).optional()
|
|
3947
3973
|
});
|
|
3948
|
-
var AppsChatsCopyToAccountResult =
|
|
3949
|
-
message:
|
|
3974
|
+
var AppsChatsCopyToAccountResult = z32.strictObject({
|
|
3975
|
+
message: z32.string().max(400),
|
|
3950
3976
|
origin: ChatPlace,
|
|
3951
3977
|
target: ChatPlace,
|
|
3952
|
-
mode:
|
|
3978
|
+
mode: z32.enum(["copy", "move"]),
|
|
3953
3979
|
/** The marker the chats are filed under ("From <origin>"), for Bring back. */
|
|
3954
|
-
project:
|
|
3980
|
+
project: z32.strictObject({ id: ChatProjectId, name: z32.string().max(200) }),
|
|
3955
3981
|
/** The target groups used, by name: made or reused, now or at the next close. */
|
|
3956
|
-
groups:
|
|
3957
|
-
source_group:
|
|
3958
|
-
chats:
|
|
3959
|
-
verified:
|
|
3960
|
-
queued:
|
|
3961
|
-
failed:
|
|
3982
|
+
groups: z32.array(z32.strictObject({ name: z32.string().max(200), chats: z32.number().int().nonnegative(), ok: z32.boolean(), when: z32.enum(["now", "next_close"]).nullable(), reason: z32.string().max(400).nullable() })).max(500),
|
|
3983
|
+
source_group: z32.strictObject({ name: z32.string().max(200), ok: z32.boolean(), when: z32.enum(["now", "next_close"]).nullable(), reason: z32.string().max(400).nullable() }).nullable(),
|
|
3984
|
+
chats: z32.array(CopiedChat).max(500),
|
|
3985
|
+
verified: z32.number().int().nonnegative(),
|
|
3986
|
+
queued: z32.number().int().nonnegative(),
|
|
3987
|
+
failed: z32.number().int().nonnegative(),
|
|
3962
3988
|
/** What the restart choice did: "restart_verify" closed and reopened `windows`; a fall back to "queued" says why. */
|
|
3963
3989
|
restart: CopyRestart
|
|
3964
3990
|
});
|
|
3965
3991
|
|
|
3966
3992
|
// src/schema/apps-instances.ts
|
|
3967
|
-
import { z as
|
|
3968
|
-
var InstanceStatus =
|
|
3969
|
-
var AppInstall =
|
|
3970
|
-
location:
|
|
3971
|
-
version:
|
|
3993
|
+
import { z as z33 } from "zod";
|
|
3994
|
+
var InstanceStatus = z33.enum(["open", "closed", "wrong_account", "update_waiting", "folder_missing"]);
|
|
3995
|
+
var AppInstall = z33.strictObject({
|
|
3996
|
+
location: z33.string().max(1024),
|
|
3997
|
+
version: z33.string().max(80).nullable()
|
|
3972
3998
|
});
|
|
3973
|
-
var InstanceGap =
|
|
3974
|
-
var AppInstance =
|
|
3999
|
+
var InstanceGap = z33.enum(["account", "email", "version"]);
|
|
4000
|
+
var AppInstance = z33.strictObject({
|
|
3975
4001
|
app_key: AppKey,
|
|
3976
4002
|
/** "main", or the instance's name: the same key every window action takes. */
|
|
3977
4003
|
key: ChatPlace,
|
|
3978
|
-
main:
|
|
4004
|
+
main: z33.boolean(),
|
|
3979
4005
|
status: InstanceStatus,
|
|
3980
|
-
running:
|
|
4006
|
+
running: z33.boolean(),
|
|
3981
4007
|
/** Its process while open. */
|
|
3982
4008
|
pid: nonNegInt.nullable(),
|
|
3983
4009
|
/** Its data folder on this device. */
|
|
3984
|
-
folder:
|
|
3985
|
-
folder_exists:
|
|
4010
|
+
folder: z33.string().max(1024).nullable(),
|
|
4011
|
+
folder_exists: z33.boolean(),
|
|
3986
4012
|
/** The provider's id of the account signed in there now, when the app records it. */
|
|
3987
|
-
account_id:
|
|
4013
|
+
account_id: z33.string().max(200).nullable(),
|
|
3988
4014
|
/** That account's email, when known. */
|
|
3989
|
-
account:
|
|
4015
|
+
account: z33.string().max(320).nullable(),
|
|
3990
4016
|
/** The account this instance is kept for (null for main: it signs into any). */
|
|
3991
|
-
meant_for:
|
|
4017
|
+
meant_for: z33.string().max(320).nullable(),
|
|
3992
4018
|
/** The version running in it now, or the one it last ran when closed. */
|
|
3993
|
-
version:
|
|
3994
|
-
installed_version:
|
|
4019
|
+
version: z33.string().max(80).nullable(),
|
|
4020
|
+
installed_version: z33.string().max(80).nullable(),
|
|
3995
4021
|
/** Chats open in it now. */
|
|
3996
4022
|
open_chats: nonNegInt,
|
|
3997
4023
|
launched_ms: epochMs.nullable(),
|
|
3998
4024
|
quit_ms: epochMs.nullable(),
|
|
3999
4025
|
first_launch_ms: epochMs.nullable(),
|
|
4000
4026
|
/** 1.63: what this record still lacks after Matrx filled what it remembered (absent = nothing). */
|
|
4001
|
-
missing:
|
|
4027
|
+
missing: z33.array(InstanceGap).max(3).optional()
|
|
4002
4028
|
});
|
|
4003
|
-
var ElsewhereInstance =
|
|
4029
|
+
var ElsewhereInstance = z33.strictObject({
|
|
4004
4030
|
app_key: AppKey,
|
|
4005
4031
|
/** Its key on its own computer ("main", or its name). */
|
|
4006
|
-
key:
|
|
4007
|
-
main:
|
|
4032
|
+
key: z33.string().max(120),
|
|
4033
|
+
main: z33.boolean(),
|
|
4008
4034
|
/** The computer it is on, by its name in Devices. */
|
|
4009
|
-
computer:
|
|
4035
|
+
computer: z33.string().max(200),
|
|
4010
4036
|
/** Its data folder, as that computer shows it (a label: it is not on this computer). */
|
|
4011
|
-
folder:
|
|
4012
|
-
account_id:
|
|
4013
|
-
account:
|
|
4037
|
+
folder: z33.string().max(1024).nullable(),
|
|
4038
|
+
account_id: z33.string().max(200).nullable(),
|
|
4039
|
+
account: z33.string().max(320).nullable(),
|
|
4014
4040
|
/** When that computer last read it. */
|
|
4015
4041
|
seen_ms: epochMs.nullable()
|
|
4016
4042
|
});
|
|
4017
|
-
var AccountResetSource =
|
|
4018
|
-
var AccountGap =
|
|
4019
|
-
var AccountReadSource =
|
|
4020
|
-
var AccountProfile =
|
|
4043
|
+
var AccountResetSource = z33.enum(["app", "usage_history", "your_list"]);
|
|
4044
|
+
var AccountGap = z33.enum(["email", "plan", "usage"]);
|
|
4045
|
+
var AccountReadSource = z33.enum(["app", "claude_code"]);
|
|
4046
|
+
var AccountProfile = z33.strictObject({
|
|
4021
4047
|
/** The person's name on the account. */
|
|
4022
|
-
name:
|
|
4048
|
+
name: z33.string().max(200).nullable(),
|
|
4023
4049
|
/** The organization the sign-in is in, and the person's role there. */
|
|
4024
|
-
org_name:
|
|
4025
|
-
org_role:
|
|
4050
|
+
org_name: z33.string().max(200).nullable(),
|
|
4051
|
+
org_role: z33.string().max(80).nullable(),
|
|
4026
4052
|
/** Claude: the seat tier of a team plan, the rate-limit tier, how it is billed, when a trial ends. */
|
|
4027
|
-
seat_tier:
|
|
4028
|
-
rate_limit_tier:
|
|
4029
|
-
billing:
|
|
4053
|
+
seat_tier: z33.string().max(80).nullable(),
|
|
4054
|
+
rate_limit_tier: z33.string().max(120).nullable(),
|
|
4055
|
+
billing: z33.string().max(80).nullable(),
|
|
4030
4056
|
trial_ends_ms: epochMs.nullable(),
|
|
4031
4057
|
/** Cursor: whether the subscription is active ("active", "canceled", …) as Cursor records it. */
|
|
4032
|
-
subscription:
|
|
4058
|
+
subscription: z33.string().max(80).nullable(),
|
|
4033
4059
|
/** Where these facts were read (a short label: "Claude Code's sign-in"). */
|
|
4034
|
-
source:
|
|
4060
|
+
source: z33.string().max(200),
|
|
4035
4061
|
/** When the app last fetched them, when it says. */
|
|
4036
4062
|
as_of_ms: epochMs.nullable()
|
|
4037
4063
|
});
|
|
4038
|
-
var AccountReadingsKept =
|
|
4039
|
-
kept:
|
|
4064
|
+
var AccountReadingsKept = z33.strictObject({
|
|
4065
|
+
kept: z33.number().int().nonnegative(),
|
|
4040
4066
|
since_ms: epochMs.nullable(),
|
|
4041
|
-
days:
|
|
4067
|
+
days: z33.array(z33.strictObject({ day_ms: epochMs, weekly: z33.number().nullable() })).max(31)
|
|
4042
4068
|
});
|
|
4043
|
-
var AppAccount =
|
|
4069
|
+
var AppAccount = z33.strictObject({
|
|
4044
4070
|
app_key: AppKey,
|
|
4045
4071
|
/** The provider's own account id (Claude's account uuid, ChatGPT's account id); `org:<uuid>` when only its organization is known. */
|
|
4046
|
-
account_id:
|
|
4047
|
-
email:
|
|
4048
|
-
plan:
|
|
4072
|
+
account_id: z33.string().max(200),
|
|
4073
|
+
email: z33.string().max(320).nullable(),
|
|
4074
|
+
plan: z33.string().max(80).nullable(),
|
|
4049
4075
|
/** The provider organizations its readings are filed under. */
|
|
4050
|
-
orgs:
|
|
4076
|
+
orgs: z33.array(z33.string().max(80)).max(20),
|
|
4051
4077
|
/** Weekly use in percent; 0 once the week reset after the reading. */
|
|
4052
|
-
weekly:
|
|
4053
|
-
weekly_reset_since:
|
|
4078
|
+
weekly: z33.number().nullable(),
|
|
4079
|
+
weekly_reset_since: z33.boolean(),
|
|
4054
4080
|
weekly_resets_at_ms: epochMs.nullable(),
|
|
4055
4081
|
weekly_reset_source: AccountResetSource.nullable(),
|
|
4056
4082
|
/** 5-hour use in percent; 0 once the 5-hour window passed after the reading. */
|
|
4057
|
-
five_hour:
|
|
4058
|
-
five_hour_reset_since:
|
|
4083
|
+
five_hour: z33.number().nullable(),
|
|
4084
|
+
five_hour_reset_since: z33.boolean(),
|
|
4059
4085
|
/** The latest the 5-hour window resets. */
|
|
4060
4086
|
five_hour_resets_at_ms: epochMs.nullable(),
|
|
4061
4087
|
/** Claude: extra-usage spend as a percent of its cap. */
|
|
4062
|
-
extra_usage:
|
|
4088
|
+
extra_usage: z33.number().nullable(),
|
|
4063
4089
|
/** Codex: the credit balance. */
|
|
4064
|
-
credits:
|
|
4090
|
+
credits: z33.number().nullable(),
|
|
4065
4091
|
/** When the newest reading was taken, and in which instance. */
|
|
4066
4092
|
read_at_ms: epochMs.nullable(),
|
|
4067
4093
|
read_in: ChatPlace.nullable(),
|
|
4068
4094
|
/** Instances signed into it now. */
|
|
4069
|
-
instances:
|
|
4095
|
+
instances: z33.array(ChatPlace).max(200),
|
|
4070
4096
|
first_seen_ms: epochMs.nullable(),
|
|
4071
4097
|
last_seen_ms: epochMs.nullable(),
|
|
4072
|
-
missing:
|
|
4098
|
+
missing: z33.array(AccountGap).max(3),
|
|
4073
4099
|
/** 1.73: who the account is beyond its email (plan details, role, tiers), when the app records it. */
|
|
4074
4100
|
profile: AccountProfile.optional(),
|
|
4075
4101
|
/** 1.73: where the newest reading came from (absent = the app itself). */
|
|
4076
4102
|
read_source: AccountReadSource.optional(),
|
|
4077
4103
|
/** 1.73: Claude Code: the running session's cost as Claude Code estimates it (US dollars), with a Claude Code reading. */
|
|
4078
|
-
session_cost_usd:
|
|
4104
|
+
session_cost_usd: z33.number().nonnegative().optional(),
|
|
4079
4105
|
/** 1.79: the readings Matrx kept of this account on this computer (its reading history). */
|
|
4080
4106
|
readings: AccountReadingsKept.optional()
|
|
4081
4107
|
});
|
|
4082
|
-
var AppsInstancesListParams =
|
|
4083
|
-
var AppsInstancesListResult =
|
|
4108
|
+
var AppsInstancesListParams = z33.strictObject({ app_key: AppKey, fresh: z33.boolean().optional() });
|
|
4109
|
+
var AppsInstancesListResult = z33.strictObject({
|
|
4084
4110
|
app_key: AppKey,
|
|
4085
4111
|
install: AppInstall.nullable(),
|
|
4086
|
-
instances:
|
|
4112
|
+
instances: z33.array(AppInstance).max(200),
|
|
4087
4113
|
/** The rows are right but something around them failed; shown, never hidden. */
|
|
4088
|
-
problem:
|
|
4114
|
+
problem: z33.string().max(400).optional(),
|
|
4089
4115
|
as_of_ms: epochMs.optional(),
|
|
4090
|
-
refreshing:
|
|
4116
|
+
refreshing: z33.boolean().optional(),
|
|
4091
4117
|
/** 1.71: this computer's name (the Computer of every `instances` row). */
|
|
4092
|
-
computer:
|
|
4118
|
+
computer: z33.string().max(200).optional(),
|
|
4093
4119
|
/** 1.71: the person's instances on their other computers, from the database (read only). */
|
|
4094
|
-
elsewhere:
|
|
4120
|
+
elsewhere: z33.array(ElsewhereInstance).max(500).optional(),
|
|
4095
4121
|
/** 1.71: the database copy could not be read or written (signed out, offline): the rows are this computer's alone. */
|
|
4096
|
-
shared_problem:
|
|
4122
|
+
shared_problem: z33.string().max(200).optional()
|
|
4097
4123
|
});
|
|
4098
|
-
var AppsAccountsListParams =
|
|
4099
|
-
var AppsAccountsListResult =
|
|
4124
|
+
var AppsAccountsListParams = z33.strictObject({ app_key: AppKey, fresh: z33.boolean().optional() });
|
|
4125
|
+
var AppsAccountsListResult = z33.strictObject({
|
|
4100
4126
|
app_key: AppKey,
|
|
4101
|
-
accounts:
|
|
4102
|
-
problem:
|
|
4127
|
+
accounts: z33.array(AppAccount).max(500),
|
|
4128
|
+
problem: z33.string().max(400).optional(),
|
|
4103
4129
|
as_of_ms: epochMs.optional(),
|
|
4104
|
-
refreshing:
|
|
4130
|
+
refreshing: z33.boolean().optional(),
|
|
4105
4131
|
/** 1.71: the database copy could not be read or written (signed out, offline): the rows are this computer's memory alone. */
|
|
4106
|
-
shared_problem:
|
|
4107
|
-
});
|
|
4108
|
-
var AppsWindowsSetAccountParams =
|
|
4109
|
-
var AppsWindowsForgetParams =
|
|
4110
|
-
var ProbeFact =
|
|
4111
|
-
var ProbeSource =
|
|
4112
|
-
var AppsChatsProbeParams =
|
|
4113
|
-
var AppsChatsProbeResult =
|
|
4114
|
-
var McpTransport =
|
|
4115
|
-
var McpServerRow =
|
|
4132
|
+
shared_problem: z33.string().max(200).optional()
|
|
4133
|
+
});
|
|
4134
|
+
var AppsWindowsSetAccountParams = z33.strictObject({ app_key: AppKey, window: ChatPlace, email: z33.string().min(3).max(320) });
|
|
4135
|
+
var AppsWindowsForgetParams = z33.strictObject({ app_key: AppKey, window: ChatPlace });
|
|
4136
|
+
var ProbeFact = z33.strictObject({ key: z33.string().max(200), value: z33.string().max(2e3) });
|
|
4137
|
+
var ProbeSource = z33.strictObject({ source: z33.string().max(120), instance: z33.string().max(64).nullable(), facts: z33.array(ProbeFact).max(500) });
|
|
4138
|
+
var AppsChatsProbeParams = z33.strictObject({ app_key: AppKey, chat_id: z33.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/) });
|
|
4139
|
+
var AppsChatsProbeResult = z33.strictObject({ app_key: AppKey, chat_id: z33.string().max(128), sources: z33.array(ProbeSource).max(200) });
|
|
4140
|
+
var McpTransport = z33.enum(["stdio", "http", "sse", "unknown"]);
|
|
4141
|
+
var McpServerRow = z33.strictObject({
|
|
4116
4142
|
app_key: AppKey,
|
|
4117
4143
|
/** The app's instance whose settings hold it ("main", a home's name). */
|
|
4118
|
-
instance:
|
|
4119
|
-
name:
|
|
4144
|
+
instance: z33.string().max(120),
|
|
4145
|
+
name: z33.string().max(200),
|
|
4120
4146
|
transport: McpTransport,
|
|
4121
4147
|
/** The URL (scheme, host and path only) or the command and its arguments (secret-looking ones blanked). */
|
|
4122
|
-
target:
|
|
4148
|
+
target: z33.string().max(400).nullable(),
|
|
4123
4149
|
/** "user" (every folder), "desktop" (the desktop app), or the folder it is set up for. */
|
|
4124
|
-
scope:
|
|
4150
|
+
scope: z33.string().max(400),
|
|
4125
4151
|
/** Turned on or off in the app, when it records it. */
|
|
4126
|
-
enabled:
|
|
4152
|
+
enabled: z33.boolean().nullable(),
|
|
4127
4153
|
/** The settings file it was read from. */
|
|
4128
|
-
where:
|
|
4154
|
+
where: z33.string().max(400)
|
|
4129
4155
|
});
|
|
4130
|
-
var SetupFact =
|
|
4131
|
-
var SetupItemKind =
|
|
4132
|
-
var SetupItem =
|
|
4156
|
+
var SetupFact = z33.strictObject({ name: z33.string().max(80), value: z33.string().max(300) });
|
|
4157
|
+
var SetupItemKind = z33.enum(["extension", "plugin", "marketplace", "model", "skill"]);
|
|
4158
|
+
var SetupItem = z33.strictObject({
|
|
4133
4159
|
kind: SetupItemKind,
|
|
4134
|
-
name:
|
|
4135
|
-
version:
|
|
4160
|
+
name: z33.string().max(200),
|
|
4161
|
+
version: z33.string().max(80).nullable(),
|
|
4136
4162
|
/** Turned on or off, when the app records it. */
|
|
4137
|
-
enabled:
|
|
4163
|
+
enabled: z33.boolean().nullable()
|
|
4138
4164
|
});
|
|
4139
|
-
var AppSetup =
|
|
4165
|
+
var AppSetup = z33.strictObject({
|
|
4140
4166
|
app_key: AppKey,
|
|
4141
|
-
instance:
|
|
4167
|
+
instance: z33.string().max(120),
|
|
4142
4168
|
/** The folder its settings were read from. */
|
|
4143
|
-
where:
|
|
4144
|
-
facts:
|
|
4145
|
-
items:
|
|
4169
|
+
where: z33.string().max(400),
|
|
4170
|
+
facts: z33.array(SetupFact).max(60),
|
|
4171
|
+
items: z33.array(SetupItem).max(2e3),
|
|
4146
4172
|
/** What could not be read there (shown, never hidden). */
|
|
4147
|
-
problems:
|
|
4173
|
+
problems: z33.array(z33.string().max(300)).max(20)
|
|
4148
4174
|
});
|
|
4149
|
-
var AppsSetupListParams =
|
|
4150
|
-
var AppsSetupListResult =
|
|
4151
|
-
setups:
|
|
4152
|
-
mcp:
|
|
4153
|
-
problem:
|
|
4175
|
+
var AppsSetupListParams = z33.strictObject({ app_key: AppKey.optional() });
|
|
4176
|
+
var AppsSetupListResult = z33.strictObject({
|
|
4177
|
+
setups: z33.array(AppSetup).max(200),
|
|
4178
|
+
mcp: z33.array(McpServerRow).max(2e3),
|
|
4179
|
+
problem: z33.string().max(400).optional()
|
|
4154
4180
|
});
|
|
4155
4181
|
|
|
4156
4182
|
// src/schema/browser.ts
|
|
4157
|
-
import { z as
|
|
4158
|
-
var BrowserClientInstance =
|
|
4159
|
-
var BrowserKind =
|
|
4160
|
-
var BrowserSessionState =
|
|
4161
|
-
var BrowserSession =
|
|
4183
|
+
import { z as z34 } from "zod";
|
|
4184
|
+
var BrowserClientInstance = z34.string().min(1).max(64).regex(/^[A-Za-z0-9_.:-]+$/);
|
|
4185
|
+
var BrowserKind = z34.enum(["chrome", "edge", "brave", "arc", "opera", "vivaldi", "chromium", "firefox", "other"]);
|
|
4186
|
+
var BrowserSessionState = z34.enum(["connected", "different_account", "extension_signed_out", "device_signed_out", "unverified"]);
|
|
4187
|
+
var BrowserSession = z34.strictObject({
|
|
4162
4188
|
client_instance: BrowserClientInstance,
|
|
4163
4189
|
/** What the person sees ("Chrome — Work"), set by the extension. */
|
|
4164
|
-
client_label:
|
|
4190
|
+
client_label: z34.string().min(1).max(128),
|
|
4165
4191
|
browser: BrowserKind,
|
|
4166
|
-
extension_version:
|
|
4192
|
+
extension_version: z34.string().min(1).max(32),
|
|
4167
4193
|
state: BrowserSessionState,
|
|
4168
4194
|
/** True only for `connected`: an agent's call can reach this session. */
|
|
4169
|
-
routable:
|
|
4195
|
+
routable: z34.boolean(),
|
|
4170
4196
|
/** The extension's account email from its token (null when signed out or unknown). */
|
|
4171
|
-
account_email:
|
|
4197
|
+
account_email: z34.string().max(320).nullable(),
|
|
4172
4198
|
connected_at_ms: epochMs,
|
|
4173
4199
|
last_call_at_ms: epochMs.nullable(),
|
|
4174
4200
|
calls: nonNegInt,
|
|
@@ -4177,119 +4203,119 @@ var BrowserSession = z33.strictObject({
|
|
|
4177
4203
|
p50_ms: nonNegInt.nullable(),
|
|
4178
4204
|
p95_ms: nonNegInt.nullable(),
|
|
4179
4205
|
/** A call is waiting for the person to confirm it in the browser. */
|
|
4180
|
-
awaiting_confirmation:
|
|
4206
|
+
awaiting_confirmation: z34.boolean()
|
|
4181
4207
|
});
|
|
4182
|
-
var BrowserRegisterParams =
|
|
4208
|
+
var BrowserRegisterParams = z34.strictObject({
|
|
4183
4209
|
client_instance: BrowserClientInstance,
|
|
4184
|
-
client_label:
|
|
4210
|
+
client_label: z34.string().min(1).max(128),
|
|
4185
4211
|
browser: BrowserKind,
|
|
4186
|
-
extension_version:
|
|
4212
|
+
extension_version: z34.string().min(1).max(32),
|
|
4187
4213
|
/** The extension's current AI Matrx access token, checked against the device owner; null when signed out. */
|
|
4188
|
-
account_token:
|
|
4214
|
+
account_token: z34.string().min(16).max(8192).nullable()
|
|
4189
4215
|
});
|
|
4190
|
-
var BrowserRegisterResult =
|
|
4191
|
-
var BrowserCallError =
|
|
4192
|
-
message:
|
|
4216
|
+
var BrowserRegisterResult = z34.strictObject({ session: BrowserSession });
|
|
4217
|
+
var BrowserCallError = z34.strictObject({
|
|
4218
|
+
message: z34.string().max(1e3),
|
|
4193
4219
|
/** The extension's own error code, when it has one ("tool_not_found", "denied"). */
|
|
4194
|
-
code:
|
|
4220
|
+
code: z34.string().max(64).nullable()
|
|
4195
4221
|
});
|
|
4196
|
-
var BrowserResultParams =
|
|
4197
|
-
call_id:
|
|
4198
|
-
ok:
|
|
4222
|
+
var BrowserResultParams = z34.strictObject({
|
|
4223
|
+
call_id: z34.string().min(1).max(64),
|
|
4224
|
+
ok: z34.boolean(),
|
|
4199
4225
|
/** The tool's result when ok (any JSON). */
|
|
4200
|
-
result:
|
|
4226
|
+
result: z34.unknown(),
|
|
4201
4227
|
error: BrowserCallError.nullable()
|
|
4202
4228
|
});
|
|
4203
|
-
var BrowserResultResult =
|
|
4204
|
-
var BrowserCallPhase =
|
|
4205
|
-
var BrowserProgressParams =
|
|
4206
|
-
var BrowserProgressResult =
|
|
4207
|
-
var BrowserSessionsParams =
|
|
4208
|
-
var BrowserSessionsResult =
|
|
4229
|
+
var BrowserResultResult = z34.strictObject({ accepted: z34.boolean() });
|
|
4230
|
+
var BrowserCallPhase = z34.enum(["awaiting_confirmation", "running"]);
|
|
4231
|
+
var BrowserProgressParams = z34.strictObject({ call_id: z34.string().min(1).max(64), phase: BrowserCallPhase });
|
|
4232
|
+
var BrowserProgressResult = z34.strictObject({ accepted: z34.boolean() });
|
|
4233
|
+
var BrowserSessionsParams = z34.strictObject({});
|
|
4234
|
+
var BrowserSessionsResult = z34.strictObject({
|
|
4209
4235
|
/** The person's Browser connection switch. Off: no pairing, no extension sessions. */
|
|
4210
|
-
enabled:
|
|
4236
|
+
enabled: z34.boolean(),
|
|
4211
4237
|
/** Whether Matrx 2 is signed in (without an owner no session is routable). */
|
|
4212
|
-
owner_signed_in:
|
|
4213
|
-
sessions:
|
|
4214
|
-
});
|
|
4215
|
-
var BrowserDisconnectParams =
|
|
4216
|
-
var BrowserDisconnectResult =
|
|
4217
|
-
var BrowserSetEnabledParams =
|
|
4218
|
-
var BrowserSetEnabledResult =
|
|
4219
|
-
var BrowserPairCodeParams =
|
|
4220
|
-
var BrowserPairCodeResult =
|
|
4221
|
-
var BrowserPairResetParams =
|
|
4222
|
-
var BrowserCallParams =
|
|
4223
|
-
tool:
|
|
4224
|
-
args:
|
|
4238
|
+
owner_signed_in: z34.boolean(),
|
|
4239
|
+
sessions: z34.array(BrowserSession).max(64)
|
|
4240
|
+
});
|
|
4241
|
+
var BrowserDisconnectParams = z34.strictObject({ client_instance: BrowserClientInstance });
|
|
4242
|
+
var BrowserDisconnectResult = z34.strictObject({ disconnected: z34.boolean() });
|
|
4243
|
+
var BrowserSetEnabledParams = z34.strictObject({ enabled: z34.boolean() });
|
|
4244
|
+
var BrowserSetEnabledResult = z34.strictObject({ enabled: z34.boolean() });
|
|
4245
|
+
var BrowserPairCodeParams = z34.strictObject({});
|
|
4246
|
+
var BrowserPairCodeResult = z34.strictObject({ code: z34.string().min(16).max(128) });
|
|
4247
|
+
var BrowserPairResetParams = z34.strictObject({});
|
|
4248
|
+
var BrowserCallParams = z34.strictObject({
|
|
4249
|
+
tool: z34.string().min(1).max(96).regex(/^[a-z][a-z0-9_]*$/),
|
|
4250
|
+
args: z34.record(z34.string(), z34.unknown()),
|
|
4225
4251
|
/** Which session; default: the most recently active routable one (BROWSER ambiguity → CONFLICT). */
|
|
4226
4252
|
client_instance: BrowserClientInstance.optional(),
|
|
4227
4253
|
/** How long to wait, including a person's confirmation; default 120 s. */
|
|
4228
|
-
timeout_ms:
|
|
4254
|
+
timeout_ms: z34.int().min(1e3).max(6e5).optional()
|
|
4229
4255
|
});
|
|
4230
|
-
var BrowserCallResult =
|
|
4256
|
+
var BrowserCallResult = z34.strictObject({
|
|
4231
4257
|
client_instance: BrowserClientInstance,
|
|
4232
|
-
result:
|
|
4258
|
+
result: z34.unknown(),
|
|
4233
4259
|
duration_ms: nonNegInt
|
|
4234
4260
|
});
|
|
4235
|
-
var BrowserToolMetricsParams =
|
|
4236
|
-
var BrowserToolMetric =
|
|
4237
|
-
tool:
|
|
4261
|
+
var BrowserToolMetricsParams = z34.strictObject({ client_instance: BrowserClientInstance });
|
|
4262
|
+
var BrowserToolMetric = z34.strictObject({
|
|
4263
|
+
tool: z34.string().max(256),
|
|
4238
4264
|
calls: nonNegInt,
|
|
4239
4265
|
errors: nonNegInt,
|
|
4240
4266
|
/** Over the last 200 answered calls; null before the first answer. */
|
|
4241
4267
|
p50_ms: nonNegInt.nullable(),
|
|
4242
4268
|
p95_ms: nonNegInt.nullable(),
|
|
4243
4269
|
last_call_at_ms: epochMs.nullable(),
|
|
4244
|
-
last_error:
|
|
4270
|
+
last_error: z34.string().max(2048).nullable()
|
|
4245
4271
|
});
|
|
4246
|
-
var BrowserToolMetricsResult =
|
|
4247
|
-
var BrowserResetCountersParams =
|
|
4248
|
-
var BrowserResetCountersResult =
|
|
4249
|
-
var BrowserLogParams =
|
|
4272
|
+
var BrowserToolMetricsResult = z34.strictObject({ client_instance: z34.string(), tools: z34.array(BrowserToolMetric) });
|
|
4273
|
+
var BrowserResetCountersParams = z34.strictObject({ client_instance: BrowserClientInstance });
|
|
4274
|
+
var BrowserResetCountersResult = z34.strictObject({ reset: z34.boolean() });
|
|
4275
|
+
var BrowserLogParams = z34.strictObject({
|
|
4250
4276
|
/** Only messages after this seq (0: from the oldest kept; the core keeps the last 500). */
|
|
4251
4277
|
after_seq: nonNegInt.default(0),
|
|
4252
|
-
limit:
|
|
4278
|
+
limit: z34.int().min(1).max(500).default(500)
|
|
4253
4279
|
});
|
|
4254
|
-
var BrowserLogMessage =
|
|
4280
|
+
var BrowserLogMessage = z34.strictObject({
|
|
4255
4281
|
seq: nonNegInt,
|
|
4256
4282
|
at_ms: epochMs,
|
|
4257
|
-
direction:
|
|
4258
|
-
client_instance:
|
|
4259
|
-
kind:
|
|
4260
|
-
tool:
|
|
4261
|
-
call_id:
|
|
4262
|
-
ok:
|
|
4263
|
-
detail:
|
|
4264
|
-
});
|
|
4265
|
-
var BrowserLogResult =
|
|
4266
|
-
messages:
|
|
4283
|
+
direction: z34.enum(["to_browser", "from_browser", "core"]),
|
|
4284
|
+
client_instance: z34.string(),
|
|
4285
|
+
kind: z34.enum(["register", "invoke", "result", "progress", "timeout", "closed"]),
|
|
4286
|
+
tool: z34.string().nullable(),
|
|
4287
|
+
call_id: z34.string().nullable(),
|
|
4288
|
+
ok: z34.boolean().nullable(),
|
|
4289
|
+
detail: z34.string().max(1024)
|
|
4290
|
+
});
|
|
4291
|
+
var BrowserLogResult = z34.strictObject({
|
|
4292
|
+
messages: z34.array(BrowserLogMessage),
|
|
4267
4293
|
/** The newest seq the core has written (pass it back as after_seq to follow the log). */
|
|
4268
4294
|
last_seq: nonNegInt
|
|
4269
4295
|
});
|
|
4270
|
-
var BrowserInvokeEvent =
|
|
4271
|
-
call_id:
|
|
4272
|
-
tool:
|
|
4273
|
-
args:
|
|
4296
|
+
var BrowserInvokeEvent = z34.strictObject({
|
|
4297
|
+
call_id: z34.string().min(1).max(64),
|
|
4298
|
+
tool: z34.string().min(1).max(96),
|
|
4299
|
+
args: z34.record(z34.string(), z34.unknown()),
|
|
4274
4300
|
deadline_ms: epochMs
|
|
4275
4301
|
});
|
|
4276
|
-
var BrowserSessionsChangedEvent =
|
|
4277
|
-
var BrowserProgressEvent =
|
|
4278
|
-
call_id:
|
|
4302
|
+
var BrowserSessionsChangedEvent = z34.strictObject({ count: nonNegInt, enabled: z34.boolean() });
|
|
4303
|
+
var BrowserProgressEvent = z34.strictObject({
|
|
4304
|
+
call_id: z34.string().min(1).max(64),
|
|
4279
4305
|
client_instance: BrowserClientInstance,
|
|
4280
4306
|
phase: BrowserCallPhase
|
|
4281
4307
|
});
|
|
4282
|
-
var DesktopHealth =
|
|
4283
|
-
status:
|
|
4284
|
-
service:
|
|
4285
|
-
version:
|
|
4286
|
-
protocol_version:
|
|
4287
|
-
ws_path:
|
|
4288
|
-
device_id:
|
|
4289
|
-
browser_connection:
|
|
4290
|
-
});
|
|
4291
|
-
var BrowserPairRequest =
|
|
4292
|
-
var BrowserPairResult =
|
|
4308
|
+
var DesktopHealth = z34.strictObject({
|
|
4309
|
+
status: z34.literal("ok"),
|
|
4310
|
+
service: z34.literal("matrx-desktop"),
|
|
4311
|
+
version: z34.string().max(32),
|
|
4312
|
+
protocol_version: z34.string().max(16),
|
|
4313
|
+
ws_path: z34.literal("/v1/connect"),
|
|
4314
|
+
device_id: z34.string().max(64),
|
|
4315
|
+
browser_connection: z34.enum(["on", "off"])
|
|
4316
|
+
});
|
|
4317
|
+
var BrowserPairRequest = z34.strictObject({ client_instance: BrowserClientInstance });
|
|
4318
|
+
var BrowserPairResult = z34.strictObject({ pair_token: z34.string().min(16).max(128), ws_path: z34.literal("/v1/connect") });
|
|
4293
4319
|
var MATRX_EXTENSION_IDS = {
|
|
4294
4320
|
store: "hnfolienncfklkgmdjjmhhegglimlamg",
|
|
4295
4321
|
development: "cihdmkcdjjckfhjpgoedmgfpoljebaml"
|
|
@@ -4297,698 +4323,698 @@ var MATRX_EXTENSION_IDS = {
|
|
|
4297
4323
|
var DISCOVERY_FILE = { live: "matrx2.json", development: "matrx2-dev.json" };
|
|
4298
4324
|
|
|
4299
4325
|
// src/schema/net.ts
|
|
4300
|
-
import { z as
|
|
4301
|
-
var NetInfoParams =
|
|
4302
|
-
var NetAddress =
|
|
4303
|
-
address:
|
|
4304
|
-
family:
|
|
4305
|
-
netmask:
|
|
4326
|
+
import { z as z35 } from "zod";
|
|
4327
|
+
var NetInfoParams = z35.strictObject({});
|
|
4328
|
+
var NetAddress = z35.strictObject({
|
|
4329
|
+
address: z35.string(),
|
|
4330
|
+
family: z35.enum(["ipv4", "ipv6"]),
|
|
4331
|
+
netmask: z35.string().nullable(),
|
|
4306
4332
|
/** CIDR form ("192.168.1.20/24"); null where the OS gives no prefix. */
|
|
4307
|
-
cidr:
|
|
4333
|
+
cidr: z35.string().nullable()
|
|
4308
4334
|
});
|
|
4309
|
-
var NetInterface =
|
|
4310
|
-
name:
|
|
4311
|
-
mac:
|
|
4335
|
+
var NetInterface = z35.strictObject({
|
|
4336
|
+
name: z35.string(),
|
|
4337
|
+
mac: z35.string().nullable(),
|
|
4312
4338
|
/** Loopback and other internal interfaces. */
|
|
4313
|
-
internal:
|
|
4314
|
-
addresses:
|
|
4339
|
+
internal: z35.boolean(),
|
|
4340
|
+
addresses: z35.array(NetAddress)
|
|
4315
4341
|
});
|
|
4316
|
-
var NetInfoResult =
|
|
4317
|
-
hostname:
|
|
4318
|
-
interfaces:
|
|
4342
|
+
var NetInfoResult = z35.strictObject({
|
|
4343
|
+
hostname: z35.string(),
|
|
4344
|
+
interfaces: z35.array(NetInterface),
|
|
4319
4345
|
/** The default route's gateway; null when the OS does not say (or there is none). */
|
|
4320
|
-
gateway:
|
|
4346
|
+
gateway: z35.string().nullable(),
|
|
4321
4347
|
/** The DNS servers the OS uses; empty when it does not say. */
|
|
4322
|
-
dns:
|
|
4348
|
+
dns: z35.array(z35.string())
|
|
4323
4349
|
});
|
|
4324
|
-
var NetWifiParams =
|
|
4325
|
-
var NetWifiNetwork =
|
|
4350
|
+
var NetWifiParams = z35.strictObject({});
|
|
4351
|
+
var NetWifiNetwork = z35.strictObject({
|
|
4326
4352
|
/** null: the OS hides the name (macOS without Location Services for this app). */
|
|
4327
|
-
ssid:
|
|
4353
|
+
ssid: z35.string().nullable(),
|
|
4328
4354
|
/** dBm; null where the OS does not say. */
|
|
4329
|
-
rssi:
|
|
4330
|
-
channel:
|
|
4331
|
-
security:
|
|
4355
|
+
rssi: z35.int().nullable(),
|
|
4356
|
+
channel: z35.string().nullable(),
|
|
4357
|
+
security: z35.string().nullable()
|
|
4332
4358
|
});
|
|
4333
|
-
var NetWifiResult =
|
|
4359
|
+
var NetWifiResult = z35.strictObject({
|
|
4334
4360
|
/** Whether the computer has a Wi-Fi interface at all. */
|
|
4335
|
-
available:
|
|
4361
|
+
available: z35.boolean(),
|
|
4336
4362
|
/** The network the computer is on; null when it is on none. */
|
|
4337
4363
|
current: NetWifiNetwork.nullable(),
|
|
4338
4364
|
/** Networks in range (may be empty where the OS lists none to apps). */
|
|
4339
|
-
networks:
|
|
4365
|
+
networks: z35.array(NetWifiNetwork)
|
|
4340
4366
|
});
|
|
4341
|
-
var NetBluetoothParams =
|
|
4342
|
-
var NetBluetoothDevice =
|
|
4343
|
-
name:
|
|
4344
|
-
address:
|
|
4345
|
-
connected:
|
|
4367
|
+
var NetBluetoothParams = z35.strictObject({});
|
|
4368
|
+
var NetBluetoothDevice = z35.strictObject({
|
|
4369
|
+
name: z35.string(),
|
|
4370
|
+
address: z35.string().nullable(),
|
|
4371
|
+
connected: z35.boolean(),
|
|
4346
4372
|
/** What it is, in the OS's words ("Headphones", "Keyboard"); null where it does not say. */
|
|
4347
|
-
kind:
|
|
4373
|
+
kind: z35.string().nullable(),
|
|
4348
4374
|
/** Battery percent, where the OS reports it. */
|
|
4349
|
-
battery:
|
|
4375
|
+
battery: z35.int().min(0).max(100).nullable()
|
|
4350
4376
|
});
|
|
4351
|
-
var NetBluetoothResult =
|
|
4377
|
+
var NetBluetoothResult = z35.strictObject({
|
|
4352
4378
|
/** Bluetooth is on; null where the OS does not say. */
|
|
4353
|
-
powered:
|
|
4354
|
-
devices:
|
|
4355
|
-
});
|
|
4356
|
-
var NetDevicesParams =
|
|
4357
|
-
var NetDevice =
|
|
4358
|
-
ip:
|
|
4359
|
-
mac:
|
|
4360
|
-
interface:
|
|
4379
|
+
powered: z35.boolean().nullable(),
|
|
4380
|
+
devices: z35.array(NetBluetoothDevice)
|
|
4381
|
+
});
|
|
4382
|
+
var NetDevicesParams = z35.strictObject({});
|
|
4383
|
+
var NetDevice = z35.strictObject({
|
|
4384
|
+
ip: z35.string(),
|
|
4385
|
+
mac: z35.string().nullable(),
|
|
4386
|
+
interface: z35.string().nullable(),
|
|
4361
4387
|
/** The name the local network gives it (reverse DNS / mDNS), when the table carries one. */
|
|
4362
|
-
hostname:
|
|
4388
|
+
hostname: z35.string().nullable()
|
|
4363
4389
|
});
|
|
4364
|
-
var NetDevicesResult =
|
|
4365
|
-
var NetMdnsParams =
|
|
4390
|
+
var NetDevicesResult = z35.strictObject({ devices: z35.array(NetDevice) });
|
|
4391
|
+
var NetMdnsParams = z35.strictObject({
|
|
4366
4392
|
/** A service type ("_http._tcp"); absent lists the service types found. */
|
|
4367
|
-
service_type:
|
|
4393
|
+
service_type: z35.string().min(1).max(64).regex(/^_[A-Za-z0-9-]+\._(tcp|udp)$/).optional(),
|
|
4368
4394
|
/** How long to listen. */
|
|
4369
|
-
timeout_s:
|
|
4395
|
+
timeout_s: z35.int().min(1).max(30).default(3)
|
|
4370
4396
|
});
|
|
4371
|
-
var NetMdnsService =
|
|
4372
|
-
name:
|
|
4373
|
-
type:
|
|
4374
|
-
domain:
|
|
4375
|
-
interface:
|
|
4397
|
+
var NetMdnsService = z35.strictObject({
|
|
4398
|
+
name: z35.string(),
|
|
4399
|
+
type: z35.string(),
|
|
4400
|
+
domain: z35.string(),
|
|
4401
|
+
interface: z35.string().nullable()
|
|
4376
4402
|
});
|
|
4377
|
-
var NetMdnsResult =
|
|
4378
|
-
var NetScanParams =
|
|
4403
|
+
var NetMdnsResult = z35.strictObject({ services: z35.array(NetMdnsService) });
|
|
4404
|
+
var NetScanParams = z35.strictObject({
|
|
4379
4405
|
/** A host name or address; a private or loopback address unless `allow_public`. */
|
|
4380
|
-
host:
|
|
4381
|
-
ports:
|
|
4382
|
-
timeout_ms:
|
|
4406
|
+
host: z35.string().min(1).max(253),
|
|
4407
|
+
ports: z35.array(z35.int().min(1).max(65535)).min(1).max(1024),
|
|
4408
|
+
timeout_ms: z35.int().min(50).max(1e4).default(800),
|
|
4383
4409
|
/** Scanning a host on the public internet needs saying so. */
|
|
4384
|
-
allow_public:
|
|
4410
|
+
allow_public: z35.boolean().default(false)
|
|
4385
4411
|
});
|
|
4386
|
-
var NetScanResult =
|
|
4387
|
-
host:
|
|
4412
|
+
var NetScanResult = z35.strictObject({
|
|
4413
|
+
host: z35.string(),
|
|
4388
4414
|
/** The address the host resolved to. */
|
|
4389
|
-
address:
|
|
4390
|
-
open:
|
|
4415
|
+
address: z35.string(),
|
|
4416
|
+
open: z35.array(z35.int().min(1).max(65535)),
|
|
4391
4417
|
closed: nonNegInt,
|
|
4392
4418
|
elapsed_ms: nonNegInt
|
|
4393
4419
|
});
|
|
4394
|
-
var NetDownloadParams =
|
|
4395
|
-
url:
|
|
4420
|
+
var NetDownloadParams = z35.strictObject({
|
|
4421
|
+
url: z35.string().min(1).max(8192).regex(/^https?:\/\//),
|
|
4396
4422
|
/** Where to save it: an absolute path (a folder keeps the URL's file name). */
|
|
4397
4423
|
path: AbsPath,
|
|
4398
|
-
overwrite:
|
|
4399
|
-
timeout_s:
|
|
4424
|
+
overwrite: z35.boolean().default(false),
|
|
4425
|
+
timeout_s: z35.int().min(1).max(3600).default(300),
|
|
4400
4426
|
/** Refuse anything larger. */
|
|
4401
|
-
max_bytes:
|
|
4427
|
+
max_bytes: z35.int().min(1).max(10737418240).default(2147483648)
|
|
4402
4428
|
});
|
|
4403
|
-
var NetDownloadResult =
|
|
4404
|
-
path:
|
|
4429
|
+
var NetDownloadResult = z35.strictObject({
|
|
4430
|
+
path: z35.string(),
|
|
4405
4431
|
bytes: nonNegInt,
|
|
4406
|
-
content_type:
|
|
4432
|
+
content_type: z35.string().nullable(),
|
|
4407
4433
|
/** The final URL after redirects. */
|
|
4408
|
-
url:
|
|
4434
|
+
url: z35.string(),
|
|
4409
4435
|
elapsed_ms: nonNegInt
|
|
4410
4436
|
});
|
|
4411
4437
|
|
|
4412
4438
|
// src/schema/personal.ts
|
|
4413
|
-
import { z as
|
|
4414
|
-
var Text =
|
|
4415
|
-
var AutomationScriptParams =
|
|
4439
|
+
import { z as z36 } from "zod";
|
|
4440
|
+
var Text = z36.string().max(65536);
|
|
4441
|
+
var AutomationScriptParams = z36.strictObject({
|
|
4416
4442
|
/** applescript and jxa: macOS (osascript); powershell: Windows (and pwsh where installed). */
|
|
4417
|
-
language:
|
|
4418
|
-
script:
|
|
4419
|
-
timeout_s:
|
|
4420
|
-
});
|
|
4421
|
-
var AutomationScriptResult =
|
|
4422
|
-
stdout:
|
|
4423
|
-
stderr:
|
|
4424
|
-
exit_code:
|
|
4425
|
-
timed_out:
|
|
4443
|
+
language: z36.enum(["applescript", "jxa", "powershell"]),
|
|
4444
|
+
script: z36.string().min(1).max(262144),
|
|
4445
|
+
timeout_s: z36.int().min(1).max(600).default(60)
|
|
4446
|
+
});
|
|
4447
|
+
var AutomationScriptResult = z36.strictObject({
|
|
4448
|
+
stdout: z36.string(),
|
|
4449
|
+
stderr: z36.string(),
|
|
4450
|
+
exit_code: z36.int(),
|
|
4451
|
+
timed_out: z36.boolean(),
|
|
4426
4452
|
/** stdout or stderr was cut at 1 MiB. */
|
|
4427
|
-
truncated:
|
|
4453
|
+
truncated: z36.boolean(),
|
|
4428
4454
|
elapsed_ms: nonNegInt
|
|
4429
4455
|
});
|
|
4430
|
-
var MailAccountsParams =
|
|
4431
|
-
var MailAccount =
|
|
4432
|
-
name:
|
|
4433
|
-
emails:
|
|
4434
|
-
enabled:
|
|
4456
|
+
var MailAccountsParams = z36.strictObject({});
|
|
4457
|
+
var MailAccount = z36.strictObject({
|
|
4458
|
+
name: z36.string(),
|
|
4459
|
+
emails: z36.array(z36.string()),
|
|
4460
|
+
enabled: z36.boolean(),
|
|
4435
4461
|
/** (1.67) The account's mailboxes by name (Matrx Local's email_accounts listed them). */
|
|
4436
|
-
mailboxes:
|
|
4462
|
+
mailboxes: z36.array(z36.string()).optional()
|
|
4437
4463
|
});
|
|
4438
|
-
var MailAccountsResult =
|
|
4439
|
-
var MailListParams =
|
|
4464
|
+
var MailAccountsResult = z36.strictObject({ accounts: z36.array(MailAccount) });
|
|
4465
|
+
var MailListParams = z36.strictObject({
|
|
4440
4466
|
/** The account's name in Mail; absent: every account. */
|
|
4441
|
-
account:
|
|
4467
|
+
account: z36.string().min(1).max(256).optional(),
|
|
4442
4468
|
/** The mailbox's name ("INBOX", "Sent Messages"). */
|
|
4443
|
-
mailbox:
|
|
4444
|
-
unread_only:
|
|
4445
|
-
limit:
|
|
4446
|
-
});
|
|
4447
|
-
var MailMessage =
|
|
4448
|
-
id:
|
|
4449
|
-
subject:
|
|
4450
|
-
sender:
|
|
4469
|
+
mailbox: z36.string().min(1).max(256).default("INBOX"),
|
|
4470
|
+
unread_only: z36.boolean().default(false),
|
|
4471
|
+
limit: z36.int().min(1).max(200).default(25)
|
|
4472
|
+
});
|
|
4473
|
+
var MailMessage = z36.strictObject({
|
|
4474
|
+
id: z36.string(),
|
|
4475
|
+
subject: z36.string(),
|
|
4476
|
+
sender: z36.string(),
|
|
4451
4477
|
received_at_ms: epochMs.nullable(),
|
|
4452
|
-
read:
|
|
4453
|
-
account:
|
|
4454
|
-
mailbox:
|
|
4478
|
+
read: z36.boolean(),
|
|
4479
|
+
account: z36.string(),
|
|
4480
|
+
mailbox: z36.string(),
|
|
4455
4481
|
/** The first lines of the message's text. */
|
|
4456
|
-
preview:
|
|
4482
|
+
preview: z36.string()
|
|
4457
4483
|
});
|
|
4458
|
-
var MailListResult =
|
|
4459
|
-
var MailSendParams =
|
|
4460
|
-
to:
|
|
4461
|
-
cc:
|
|
4484
|
+
var MailListResult = z36.strictObject({ messages: z36.array(MailMessage) });
|
|
4485
|
+
var MailSendParams = z36.strictObject({
|
|
4486
|
+
to: z36.array(z36.string().min(3).max(320)).min(1).max(50),
|
|
4487
|
+
cc: z36.array(z36.string().min(3).max(320)).max(50).default([]),
|
|
4462
4488
|
/** (1.67) Blind copies (Matrx Local's send_email bcc). */
|
|
4463
|
-
bcc:
|
|
4464
|
-
subject:
|
|
4489
|
+
bcc: z36.array(z36.string().min(3).max(320)).max(50).optional(),
|
|
4490
|
+
subject: z36.string().max(998),
|
|
4465
4491
|
body: Text,
|
|
4466
4492
|
/** The sending account's address; absent: Mail's default. */
|
|
4467
|
-
from:
|
|
4493
|
+
from: z36.string().min(3).max(320).optional(),
|
|
4468
4494
|
/** false leaves it open in Mail as a draft for the person to send. */
|
|
4469
|
-
send:
|
|
4495
|
+
send: z36.boolean().default(true)
|
|
4470
4496
|
});
|
|
4471
|
-
var MailSendResult =
|
|
4472
|
-
var OutlookStatusParams =
|
|
4473
|
-
var OutlookAccount =
|
|
4474
|
-
var OutlookStatusResult =
|
|
4497
|
+
var MailSendResult = z36.strictObject({ sent: z36.boolean() });
|
|
4498
|
+
var OutlookStatusParams = z36.strictObject({});
|
|
4499
|
+
var OutlookAccount = z36.strictObject({ name: z36.string(), email: z36.string().nullable() });
|
|
4500
|
+
var OutlookStatusResult = z36.strictObject({
|
|
4475
4501
|
/** classic_windows: scriptable. new_windows / mac: installed, not scriptable. none: not found. */
|
|
4476
|
-
client:
|
|
4477
|
-
scriptable:
|
|
4478
|
-
version:
|
|
4479
|
-
accounts:
|
|
4502
|
+
client: z36.enum(["classic_windows", "new_windows", "mac", "none"]),
|
|
4503
|
+
scriptable: z36.boolean(),
|
|
4504
|
+
version: z36.string().nullable(),
|
|
4505
|
+
accounts: z36.array(OutlookAccount),
|
|
4480
4506
|
/** Why it is not scriptable here, in a sentence the person can act on; null when it is. */
|
|
4481
|
-
reason:
|
|
4482
|
-
});
|
|
4483
|
-
var Address =
|
|
4484
|
-
var OutlookDraftParams =
|
|
4485
|
-
to:
|
|
4486
|
-
cc:
|
|
4487
|
-
bcc:
|
|
4488
|
-
subject:
|
|
4489
|
-
body:
|
|
4490
|
-
body_format:
|
|
4507
|
+
reason: z36.string().nullable()
|
|
4508
|
+
});
|
|
4509
|
+
var Address = z36.string().min(3).max(320);
|
|
4510
|
+
var OutlookDraftParams = z36.strictObject({
|
|
4511
|
+
to: z36.array(Address).max(100).default([]),
|
|
4512
|
+
cc: z36.array(Address).max(100).default([]),
|
|
4513
|
+
bcc: z36.array(Address).max(100).default([]),
|
|
4514
|
+
subject: z36.string().max(998).default(""),
|
|
4515
|
+
body: z36.string().max(1048576).default(""),
|
|
4516
|
+
body_format: z36.enum(["text", "html"]).default("text"),
|
|
4491
4517
|
/** Files on this computer to attach (absolute paths). */
|
|
4492
|
-
attachments:
|
|
4518
|
+
attachments: z36.array(z36.string().min(1).max(4096)).max(50).default([]),
|
|
4493
4519
|
/** The sending account's address (one of outlook.status's accounts); absent: Outlook's default. */
|
|
4494
4520
|
account: Address.optional(),
|
|
4495
4521
|
/** true also opens the draft in a window for the person. */
|
|
4496
|
-
display:
|
|
4522
|
+
display: z36.boolean().default(false)
|
|
4497
4523
|
});
|
|
4498
|
-
var OutlookDraftResult =
|
|
4524
|
+
var OutlookDraftResult = z36.strictObject({
|
|
4499
4525
|
/** The draft's id in Outlook (outlook.read takes it). */
|
|
4500
|
-
id:
|
|
4501
|
-
account:
|
|
4502
|
-
folder:
|
|
4526
|
+
id: z36.string(),
|
|
4527
|
+
account: z36.string().nullable(),
|
|
4528
|
+
folder: z36.string(),
|
|
4503
4529
|
attachments: nonNegInt,
|
|
4504
|
-
displayed:
|
|
4530
|
+
displayed: z36.boolean()
|
|
4505
4531
|
});
|
|
4506
|
-
var OutlookListParams =
|
|
4507
|
-
folder:
|
|
4532
|
+
var OutlookListParams = z36.strictObject({
|
|
4533
|
+
folder: z36.enum(["inbox", "sent", "drafts"]).default("inbox"),
|
|
4508
4534
|
/** The account's address; absent: the default account. */
|
|
4509
4535
|
account: Address.optional(),
|
|
4510
|
-
unread_only:
|
|
4511
|
-
limit:
|
|
4536
|
+
unread_only: z36.boolean().default(false),
|
|
4537
|
+
limit: z36.int().min(1).max(200).default(25)
|
|
4512
4538
|
});
|
|
4513
|
-
var OutlookMessage =
|
|
4514
|
-
id:
|
|
4515
|
-
subject:
|
|
4516
|
-
sender:
|
|
4539
|
+
var OutlookMessage = z36.strictObject({
|
|
4540
|
+
id: z36.string(),
|
|
4541
|
+
subject: z36.string(),
|
|
4542
|
+
sender: z36.string(),
|
|
4517
4543
|
received_at_ms: epochMs.nullable(),
|
|
4518
|
-
read:
|
|
4519
|
-
has_attachments:
|
|
4544
|
+
read: z36.boolean(),
|
|
4545
|
+
has_attachments: z36.boolean(),
|
|
4520
4546
|
/** The first lines of the message's text. */
|
|
4521
|
-
preview:
|
|
4522
|
-
});
|
|
4523
|
-
var OutlookListResult =
|
|
4524
|
-
var OutlookReadParams =
|
|
4525
|
-
var OutlookReadResult =
|
|
4526
|
-
id:
|
|
4527
|
-
subject:
|
|
4528
|
-
sender:
|
|
4529
|
-
to:
|
|
4530
|
-
cc:
|
|
4547
|
+
preview: z36.string()
|
|
4548
|
+
});
|
|
4549
|
+
var OutlookListResult = z36.strictObject({ folder: z36.string(), messages: z36.array(OutlookMessage) });
|
|
4550
|
+
var OutlookReadParams = z36.strictObject({ id: z36.string().min(1).max(1024) });
|
|
4551
|
+
var OutlookReadResult = z36.strictObject({
|
|
4552
|
+
id: z36.string(),
|
|
4553
|
+
subject: z36.string(),
|
|
4554
|
+
sender: z36.string(),
|
|
4555
|
+
to: z36.array(z36.string()),
|
|
4556
|
+
cc: z36.array(z36.string()),
|
|
4531
4557
|
received_at_ms: epochMs.nullable(),
|
|
4532
4558
|
/** The plain text body, cut at 1 MiB. */
|
|
4533
|
-
body:
|
|
4534
|
-
attachments:
|
|
4535
|
-
});
|
|
4536
|
-
var MessagesChatsParams =
|
|
4537
|
-
var MessagesChat =
|
|
4538
|
-
chat_id:
|
|
4539
|
-
name:
|
|
4540
|
-
participants:
|
|
4559
|
+
body: z36.string(),
|
|
4560
|
+
attachments: z36.array(z36.strictObject({ name: z36.string(), size: nonNegInt }))
|
|
4561
|
+
});
|
|
4562
|
+
var MessagesChatsParams = z36.strictObject({ limit: z36.int().min(1).max(200).default(25) });
|
|
4563
|
+
var MessagesChat = z36.strictObject({
|
|
4564
|
+
chat_id: z36.string(),
|
|
4565
|
+
name: z36.string().nullable(),
|
|
4566
|
+
participants: z36.array(z36.string()),
|
|
4541
4567
|
last_message_at_ms: epochMs.nullable(),
|
|
4542
|
-
service:
|
|
4568
|
+
service: z36.string().nullable(),
|
|
4543
4569
|
/** (1.67) The newest message's text (Matrx Local's list_conversations preview); absent when it has none. */
|
|
4544
|
-
last_message:
|
|
4570
|
+
last_message: z36.string().optional()
|
|
4545
4571
|
});
|
|
4546
|
-
var MessagesChatsResult =
|
|
4547
|
-
var MessagesListParams =
|
|
4572
|
+
var MessagesChatsResult = z36.strictObject({ chats: z36.array(MessagesChat) });
|
|
4573
|
+
var MessagesListParams = z36.strictObject({
|
|
4548
4574
|
/** One chat (messages.chats' chat_id); absent: the newest across all. */
|
|
4549
|
-
chat_id:
|
|
4550
|
-
limit:
|
|
4575
|
+
chat_id: z36.string().min(1).max(512).optional(),
|
|
4576
|
+
limit: z36.int().min(1).max(500).default(50),
|
|
4551
4577
|
/** (1.67) Only messages with this handle or chat name in them (partial: a phone, an email, a name). */
|
|
4552
|
-
contact:
|
|
4578
|
+
contact: z36.string().min(1).max(320).optional(),
|
|
4553
4579
|
/** (1.67) Only messages not yet read. */
|
|
4554
|
-
unread_only:
|
|
4580
|
+
unread_only: z36.boolean().optional()
|
|
4555
4581
|
});
|
|
4556
|
-
var MessagesMessage =
|
|
4557
|
-
id:
|
|
4558
|
-
chat_id:
|
|
4559
|
-
text:
|
|
4560
|
-
from_me:
|
|
4582
|
+
var MessagesMessage = z36.strictObject({
|
|
4583
|
+
id: z36.string(),
|
|
4584
|
+
chat_id: z36.string().nullable(),
|
|
4585
|
+
text: z36.string(),
|
|
4586
|
+
from_me: z36.boolean(),
|
|
4561
4587
|
/** The other person's handle (phone or email); null for the person's own messages. */
|
|
4562
|
-
sender:
|
|
4588
|
+
sender: z36.string().nullable(),
|
|
4563
4589
|
sent_at_ms: epochMs.nullable(),
|
|
4564
4590
|
/** (1.67) Whether it has been read. */
|
|
4565
|
-
read:
|
|
4591
|
+
read: z36.boolean().optional(),
|
|
4566
4592
|
/** (1.67) iMessage, SMS or RCS, as the Messages database says. */
|
|
4567
|
-
service:
|
|
4593
|
+
service: z36.string().optional(),
|
|
4568
4594
|
/** (1.67) The chat's name (group chats); absent for a one-to-one chat. */
|
|
4569
|
-
chat_name:
|
|
4595
|
+
chat_name: z36.string().optional()
|
|
4570
4596
|
});
|
|
4571
|
-
var MessagesListResult =
|
|
4572
|
-
var MessagesSendParams =
|
|
4597
|
+
var MessagesListResult = z36.strictObject({ messages: z36.array(MessagesMessage) });
|
|
4598
|
+
var MessagesSendParams = z36.strictObject({
|
|
4573
4599
|
/** A phone number or email the person can message. */
|
|
4574
|
-
to:
|
|
4575
|
-
text:
|
|
4600
|
+
to: z36.string().min(3).max(320),
|
|
4601
|
+
text: z36.string().min(1).max(2e4),
|
|
4576
4602
|
/**
|
|
4577
4603
|
* Send only over this service (Matrx Local's SendMessage `service`). Absent: iMessage first, and
|
|
4578
4604
|
* SMS when the recipient has no iMessage (since 1.42).
|
|
4579
4605
|
*/
|
|
4580
|
-
service:
|
|
4606
|
+
service: z36.enum(["iMessage", "SMS"]).optional()
|
|
4581
4607
|
});
|
|
4582
|
-
var MessagesSendResult =
|
|
4583
|
-
var ContactsSearchParams =
|
|
4608
|
+
var MessagesSendResult = z36.strictObject({ sent: z36.boolean() });
|
|
4609
|
+
var ContactsSearchParams = z36.strictObject({
|
|
4584
4610
|
/** Matched against names, organizations, emails and phone numbers; absent (1.67): the first `limit` contacts. */
|
|
4585
|
-
query:
|
|
4586
|
-
limit:
|
|
4611
|
+
query: z36.string().min(1).max(256).optional(),
|
|
4612
|
+
limit: z36.int().min(1).max(200).default(25)
|
|
4587
4613
|
});
|
|
4588
|
-
var ContactLabeled =
|
|
4589
|
-
var ContactSummary =
|
|
4590
|
-
id:
|
|
4591
|
-
name:
|
|
4592
|
-
organization:
|
|
4593
|
-
emails:
|
|
4594
|
-
phones:
|
|
4595
|
-
});
|
|
4596
|
-
var ContactsSearchResult =
|
|
4597
|
-
var ContactsGetParams =
|
|
4598
|
-
var ContactDetail =
|
|
4599
|
-
id:
|
|
4600
|
-
name:
|
|
4601
|
-
organization:
|
|
4602
|
-
job_title:
|
|
4603
|
-
emails:
|
|
4604
|
-
phones:
|
|
4605
|
-
addresses:
|
|
4606
|
-
birthday:
|
|
4607
|
-
note:
|
|
4608
|
-
});
|
|
4609
|
-
var ContactsGetResult =
|
|
4610
|
-
var CalendarListParams =
|
|
4614
|
+
var ContactLabeled = z36.strictObject({ label: z36.string().nullable(), value: z36.string() });
|
|
4615
|
+
var ContactSummary = z36.strictObject({
|
|
4616
|
+
id: z36.string(),
|
|
4617
|
+
name: z36.string(),
|
|
4618
|
+
organization: z36.string().nullable(),
|
|
4619
|
+
emails: z36.array(ContactLabeled),
|
|
4620
|
+
phones: z36.array(ContactLabeled)
|
|
4621
|
+
});
|
|
4622
|
+
var ContactsSearchResult = z36.strictObject({ contacts: z36.array(ContactSummary) });
|
|
4623
|
+
var ContactsGetParams = z36.strictObject({ id: z36.string().min(1).max(256) });
|
|
4624
|
+
var ContactDetail = z36.strictObject({
|
|
4625
|
+
id: z36.string(),
|
|
4626
|
+
name: z36.string(),
|
|
4627
|
+
organization: z36.string().nullable(),
|
|
4628
|
+
job_title: z36.string().nullable(),
|
|
4629
|
+
emails: z36.array(ContactLabeled),
|
|
4630
|
+
phones: z36.array(ContactLabeled),
|
|
4631
|
+
addresses: z36.array(ContactLabeled),
|
|
4632
|
+
birthday: z36.string().nullable(),
|
|
4633
|
+
note: z36.string().nullable()
|
|
4634
|
+
});
|
|
4635
|
+
var ContactsGetResult = z36.strictObject({ contact: ContactDetail });
|
|
4636
|
+
var CalendarListParams = z36.strictObject({
|
|
4611
4637
|
from_ms: epochMs,
|
|
4612
4638
|
to_ms: epochMs,
|
|
4613
4639
|
/** One calendar's name; absent: every calendar. */
|
|
4614
|
-
calendar:
|
|
4640
|
+
calendar: z36.string().min(1).max(256).optional(),
|
|
4615
4641
|
/** (1.67) Several calendars by name (Matrx Local's calendar_names); with `calendar`, both count. */
|
|
4616
|
-
calendars:
|
|
4617
|
-
limit:
|
|
4642
|
+
calendars: z36.array(z36.string().min(1).max(256)).min(1).max(100).optional(),
|
|
4643
|
+
limit: z36.int().min(1).max(500).default(100)
|
|
4618
4644
|
});
|
|
4619
|
-
var CalendarEvent =
|
|
4620
|
-
id:
|
|
4621
|
-
title:
|
|
4645
|
+
var CalendarEvent = z36.strictObject({
|
|
4646
|
+
id: z36.string(),
|
|
4647
|
+
title: z36.string(),
|
|
4622
4648
|
start_ms: epochMs,
|
|
4623
4649
|
end_ms: epochMs,
|
|
4624
|
-
all_day:
|
|
4625
|
-
calendar:
|
|
4626
|
-
location:
|
|
4627
|
-
notes:
|
|
4650
|
+
all_day: z36.boolean(),
|
|
4651
|
+
calendar: z36.string(),
|
|
4652
|
+
location: z36.string().nullable(),
|
|
4653
|
+
notes: z36.string().nullable(),
|
|
4628
4654
|
/** (1.67) The event's link; absent when it has none. */
|
|
4629
|
-
url:
|
|
4655
|
+
url: z36.string().optional()
|
|
4630
4656
|
});
|
|
4631
|
-
var CalendarListResult =
|
|
4632
|
-
var CalendarCreateParams =
|
|
4633
|
-
title:
|
|
4657
|
+
var CalendarListResult = z36.strictObject({ events: z36.array(CalendarEvent) });
|
|
4658
|
+
var CalendarCreateParams = z36.strictObject({
|
|
4659
|
+
title: z36.string().min(1).max(1024),
|
|
4634
4660
|
start_ms: epochMs,
|
|
4635
4661
|
end_ms: epochMs,
|
|
4636
|
-
all_day:
|
|
4662
|
+
all_day: z36.boolean().default(false),
|
|
4637
4663
|
/** The calendar's name; absent: the first writable calendar. */
|
|
4638
|
-
calendar:
|
|
4639
|
-
location:
|
|
4664
|
+
calendar: z36.string().min(1).max(256).optional(),
|
|
4665
|
+
location: z36.string().max(1024).optional(),
|
|
4640
4666
|
notes: Text.optional()
|
|
4641
4667
|
});
|
|
4642
|
-
var CalendarCreateResult =
|
|
4643
|
-
var RemindersListParams =
|
|
4668
|
+
var CalendarCreateResult = z36.strictObject({ id: z36.string(), calendar: z36.string() });
|
|
4669
|
+
var RemindersListParams = z36.strictObject({
|
|
4644
4670
|
/** One list's name; absent: every list. */
|
|
4645
|
-
list:
|
|
4671
|
+
list: z36.string().min(1).max(256).optional(),
|
|
4646
4672
|
/** (1.67) Several lists by name (Matrx Local's list_names); with `list`, both count. */
|
|
4647
|
-
lists:
|
|
4648
|
-
include_completed:
|
|
4649
|
-
limit:
|
|
4650
|
-
});
|
|
4651
|
-
var Reminder =
|
|
4652
|
-
id:
|
|
4653
|
-
title:
|
|
4654
|
-
list:
|
|
4673
|
+
lists: z36.array(z36.string().min(1).max(256)).min(1).max(100).optional(),
|
|
4674
|
+
include_completed: z36.boolean().default(false),
|
|
4675
|
+
limit: z36.int().min(1).max(500).default(100)
|
|
4676
|
+
});
|
|
4677
|
+
var Reminder = z36.strictObject({
|
|
4678
|
+
id: z36.string(),
|
|
4679
|
+
title: z36.string(),
|
|
4680
|
+
list: z36.string(),
|
|
4655
4681
|
due_ms: epochMs.nullable(),
|
|
4656
|
-
completed:
|
|
4657
|
-
notes:
|
|
4682
|
+
completed: z36.boolean(),
|
|
4683
|
+
notes: z36.string().nullable(),
|
|
4658
4684
|
/** (1.67) 0 none, 1 high … 9 low (EventKit's scale). */
|
|
4659
|
-
priority:
|
|
4685
|
+
priority: z36.int().min(0).max(9).optional(),
|
|
4660
4686
|
/** (1.67) When it was completed; absent while open. */
|
|
4661
4687
|
completed_at_ms: epochMs.optional()
|
|
4662
4688
|
});
|
|
4663
|
-
var RemindersListResult =
|
|
4664
|
-
var RemindersCreateParams =
|
|
4665
|
-
title:
|
|
4689
|
+
var RemindersListResult = z36.strictObject({ reminders: z36.array(Reminder) });
|
|
4690
|
+
var RemindersCreateParams = z36.strictObject({
|
|
4691
|
+
title: z36.string().min(1).max(1024),
|
|
4666
4692
|
due_ms: epochMs.optional(),
|
|
4667
|
-
list:
|
|
4693
|
+
list: z36.string().min(1).max(256).optional(),
|
|
4668
4694
|
notes: Text.optional()
|
|
4669
4695
|
});
|
|
4670
|
-
var RemindersCreateResult =
|
|
4671
|
-
var PhotosSearchParams =
|
|
4696
|
+
var RemindersCreateResult = z36.strictObject({ id: z36.string(), list: z36.string() });
|
|
4697
|
+
var PhotosSearchParams = z36.strictObject({
|
|
4672
4698
|
/** Matched against file names, titles, descriptions and keywords; absent: the newest. */
|
|
4673
|
-
query:
|
|
4699
|
+
query: z36.string().min(1).max(256).optional(),
|
|
4674
4700
|
from_ms: epochMs.optional(),
|
|
4675
4701
|
to_ms: epochMs.optional(),
|
|
4676
|
-
favorites_only:
|
|
4702
|
+
favorites_only: z36.boolean().default(false),
|
|
4677
4703
|
/** (1.67) image, video or all (Matrx Local's media_type); absent: all. */
|
|
4678
|
-
media_type:
|
|
4679
|
-
limit:
|
|
4704
|
+
media_type: z36.enum(["image", "video", "all"]).optional(),
|
|
4705
|
+
limit: z36.int().min(1).max(200).default(25)
|
|
4680
4706
|
});
|
|
4681
|
-
var Photo =
|
|
4682
|
-
id:
|
|
4683
|
-
filename:
|
|
4707
|
+
var Photo = z36.strictObject({
|
|
4708
|
+
id: z36.string(),
|
|
4709
|
+
filename: z36.string(),
|
|
4684
4710
|
taken_at_ms: epochMs.nullable(),
|
|
4685
4711
|
width: nonNegInt.nullable(),
|
|
4686
4712
|
height: nonNegInt.nullable(),
|
|
4687
|
-
favorite:
|
|
4688
|
-
title:
|
|
4713
|
+
favorite: z36.boolean(),
|
|
4714
|
+
title: z36.string().nullable(),
|
|
4689
4715
|
/** (1.67) What the asset is. */
|
|
4690
|
-
media_type:
|
|
4716
|
+
media_type: z36.enum(["image", "video", "audio", "unknown"]).optional(),
|
|
4691
4717
|
/** (1.67) A video's length in seconds; absent for a still. */
|
|
4692
|
-
duration_s:
|
|
4718
|
+
duration_s: z36.number().min(0).optional()
|
|
4693
4719
|
});
|
|
4694
|
-
var PhotosSearchResult =
|
|
4695
|
-
var PhotosGetParams =
|
|
4696
|
-
id:
|
|
4720
|
+
var PhotosSearchResult = z36.strictObject({ photos: z36.array(Photo) });
|
|
4721
|
+
var PhotosGetParams = z36.strictObject({
|
|
4722
|
+
id: z36.string().min(1).max(256),
|
|
4697
4723
|
/** Copy the original into a folder Matrx 2 owns and answer its path (then fs_read or desktop_documents reads it). */
|
|
4698
|
-
export:
|
|
4724
|
+
export: z36.boolean().default(false),
|
|
4699
4725
|
/** (1.67) Also answer a PNG thumbnail no larger than this many pixels a side (Matrx Local's get_photo thumbnail). */
|
|
4700
|
-
thumbnail_size:
|
|
4726
|
+
thumbnail_size: z36.int().min(64).max(2048).optional()
|
|
4701
4727
|
});
|
|
4702
|
-
var PhotosGetResult =
|
|
4728
|
+
var PhotosGetResult = z36.strictObject({
|
|
4703
4729
|
photo: Photo,
|
|
4704
|
-
path:
|
|
4730
|
+
path: z36.string().nullable(),
|
|
4705
4731
|
/** (1.67) The thumbnail as base64 PNG, when thumbnail_size asked for one; absent when it could not be drawn. */
|
|
4706
|
-
thumbnail_png_base64:
|
|
4732
|
+
thumbnail_png_base64: z36.string().optional()
|
|
4707
4733
|
});
|
|
4708
|
-
var LocationGetParams =
|
|
4709
|
-
var LocationGetResult =
|
|
4710
|
-
latitude:
|
|
4711
|
-
longitude:
|
|
4734
|
+
var LocationGetParams = z36.strictObject({ timeout_s: z36.int().min(1).max(60).default(15) });
|
|
4735
|
+
var LocationGetResult = z36.strictObject({
|
|
4736
|
+
latitude: z36.number().min(-90).max(90),
|
|
4737
|
+
longitude: z36.number().min(-180).max(180),
|
|
4712
4738
|
/** Metres; null where the OS does not say. */
|
|
4713
|
-
accuracy_m:
|
|
4739
|
+
accuracy_m: z36.number().min(0).nullable(),
|
|
4714
4740
|
at_ms: epochMs,
|
|
4715
4741
|
/** Who answered: the OS's own location service. */
|
|
4716
|
-
source:
|
|
4742
|
+
source: z36.enum(["corelocation", "windows", "geoclue"]),
|
|
4717
4743
|
/** (1.67) Metres above sea level, its accuracy, speed (m/s) and course (degrees); absent where the OS does not say. */
|
|
4718
|
-
altitude_m:
|
|
4719
|
-
vertical_accuracy_m:
|
|
4720
|
-
speed_mps:
|
|
4721
|
-
course_deg:
|
|
4744
|
+
altitude_m: z36.number().optional(),
|
|
4745
|
+
vertical_accuracy_m: z36.number().min(0).optional(),
|
|
4746
|
+
speed_mps: z36.number().min(0).optional(),
|
|
4747
|
+
course_deg: z36.number().min(0).max(360).optional()
|
|
4722
4748
|
});
|
|
4723
4749
|
|
|
4724
4750
|
// src/schema/windows.ts
|
|
4725
|
-
import { z as
|
|
4726
|
-
var RegistryKey =
|
|
4727
|
-
var RegistryValueType =
|
|
4728
|
-
var WindowsRegistryReadParams =
|
|
4751
|
+
import { z as z37 } from "zod";
|
|
4752
|
+
var RegistryKey = z37.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)(\\.*)?$/);
|
|
4753
|
+
var RegistryValueType = z37.enum(["REG_SZ", "REG_EXPAND_SZ", "REG_MULTI_SZ", "REG_DWORD", "REG_QWORD", "REG_BINARY", "REG_NONE"]);
|
|
4754
|
+
var WindowsRegistryReadParams = z37.strictObject({
|
|
4729
4755
|
key: RegistryKey,
|
|
4730
4756
|
/** One value's name ("" is the key's default value); absent: every value and the subkeys. */
|
|
4731
|
-
name:
|
|
4757
|
+
name: z37.string().max(16383).optional()
|
|
4732
4758
|
});
|
|
4733
|
-
var RegistryValue =
|
|
4734
|
-
var WindowsRegistryReadResult =
|
|
4735
|
-
key:
|
|
4736
|
-
exists:
|
|
4737
|
-
values:
|
|
4738
|
-
subkeys:
|
|
4759
|
+
var RegistryValue = z37.strictObject({ name: z37.string(), type: RegistryValueType, data: z37.string() });
|
|
4760
|
+
var WindowsRegistryReadResult = z37.strictObject({
|
|
4761
|
+
key: z37.string(),
|
|
4762
|
+
exists: z37.boolean(),
|
|
4763
|
+
values: z37.array(RegistryValue),
|
|
4764
|
+
subkeys: z37.array(z37.string())
|
|
4739
4765
|
});
|
|
4740
|
-
var WindowsRegistryWriteParams =
|
|
4766
|
+
var WindowsRegistryWriteParams = z37.strictObject({
|
|
4741
4767
|
key: RegistryKey,
|
|
4742
|
-
name:
|
|
4768
|
+
name: z37.string().max(16383),
|
|
4743
4769
|
type: RegistryValueType.default("REG_SZ"),
|
|
4744
4770
|
/** As reg.exe takes it: text, a number, hex for binary, \\0 between the strings of a multi-string. */
|
|
4745
|
-
data:
|
|
4771
|
+
data: z37.string().max(1048576),
|
|
4746
4772
|
/** Remove the value instead of writing it. */
|
|
4747
|
-
delete:
|
|
4773
|
+
delete: z37.boolean().default(false)
|
|
4748
4774
|
});
|
|
4749
|
-
var WindowsRegistryWriteResult =
|
|
4750
|
-
var WindowsServicesParams =
|
|
4775
|
+
var WindowsRegistryWriteResult = z37.strictObject({ key: z37.string(), name: z37.string(), deleted: z37.boolean() });
|
|
4776
|
+
var WindowsServicesParams = z37.strictObject({
|
|
4751
4777
|
/** Matched against the service's name and display name. */
|
|
4752
|
-
filter:
|
|
4778
|
+
filter: z37.string().min(1).max(256).optional(),
|
|
4753
4779
|
/** (1.67) Only services in this state (Matrx Local's service_list status). */
|
|
4754
|
-
status:
|
|
4755
|
-
limit:
|
|
4780
|
+
status: z37.enum(["running", "stopped", "paused"]).optional(),
|
|
4781
|
+
limit: z37.int().min(1).max(1e3).default(200)
|
|
4756
4782
|
});
|
|
4757
|
-
var WindowsService =
|
|
4758
|
-
name:
|
|
4759
|
-
display_name:
|
|
4783
|
+
var WindowsService = z37.strictObject({
|
|
4784
|
+
name: z37.string(),
|
|
4785
|
+
display_name: z37.string(),
|
|
4760
4786
|
/** Running, Stopped, Paused… as Windows says it. */
|
|
4761
|
-
status:
|
|
4787
|
+
status: z37.string(),
|
|
4762
4788
|
/** Automatic, Manual, Disabled…; null where Windows does not say. */
|
|
4763
|
-
start_type:
|
|
4789
|
+
start_type: z37.string().nullable()
|
|
4764
4790
|
});
|
|
4765
|
-
var WindowsServicesResult =
|
|
4766
|
-
var WindowsServiceControlParams =
|
|
4767
|
-
name:
|
|
4791
|
+
var WindowsServicesResult = z37.strictObject({ services: z37.array(WindowsService) });
|
|
4792
|
+
var WindowsServiceControlParams = z37.strictObject({
|
|
4793
|
+
name: z37.string().min(1).max(256),
|
|
4768
4794
|
/** pause and resume since 1.67 (Matrx Local's service_control). */
|
|
4769
|
-
action:
|
|
4795
|
+
action: z37.enum(["start", "stop", "restart", "pause", "resume"])
|
|
4770
4796
|
});
|
|
4771
|
-
var WindowsServiceControlResult =
|
|
4772
|
-
var WindowsEventLogParams =
|
|
4773
|
-
log:
|
|
4797
|
+
var WindowsServiceControlResult = z37.strictObject({ name: z37.string(), status: z37.string() });
|
|
4798
|
+
var WindowsEventLogParams = z37.strictObject({
|
|
4799
|
+
log: z37.string().min(1).max(256).default("System"),
|
|
4774
4800
|
/** Only these levels; absent: all. */
|
|
4775
|
-
levels:
|
|
4801
|
+
levels: z37.array(z37.enum(["critical", "error", "warning", "information", "verbose"])).max(5).optional(),
|
|
4776
4802
|
since_ms: epochMs.optional(),
|
|
4777
4803
|
/** (1.67) Only events whose source (provider) name contains this. */
|
|
4778
|
-
source:
|
|
4779
|
-
limit:
|
|
4804
|
+
source: z37.string().min(1).max(256).optional(),
|
|
4805
|
+
limit: z37.int().min(1).max(500).default(50)
|
|
4780
4806
|
});
|
|
4781
|
-
var WindowsEvent =
|
|
4782
|
-
id:
|
|
4783
|
-
level:
|
|
4784
|
-
source:
|
|
4807
|
+
var WindowsEvent = z37.strictObject({
|
|
4808
|
+
id: z37.int(),
|
|
4809
|
+
level: z37.string(),
|
|
4810
|
+
source: z37.string(),
|
|
4785
4811
|
at_ms: epochMs,
|
|
4786
|
-
message:
|
|
4812
|
+
message: z37.string()
|
|
4787
4813
|
});
|
|
4788
|
-
var WindowsEventLogResult =
|
|
4789
|
-
var WindowsFeaturesParams =
|
|
4790
|
-
filter:
|
|
4814
|
+
var WindowsEventLogResult = z37.strictObject({ log: z37.string(), events: z37.array(WindowsEvent) });
|
|
4815
|
+
var WindowsFeaturesParams = z37.strictObject({
|
|
4816
|
+
filter: z37.string().min(1).max(256).optional(),
|
|
4791
4817
|
/** (1.67) Only features that are on (Matrx Local's windows_features installed_only). */
|
|
4792
|
-
installed_only:
|
|
4818
|
+
installed_only: z37.boolean().optional()
|
|
4793
4819
|
});
|
|
4794
|
-
var WindowsFeature =
|
|
4795
|
-
var WindowsFeaturesResult =
|
|
4820
|
+
var WindowsFeature = z37.strictObject({ name: z37.string(), state: z37.string() });
|
|
4821
|
+
var WindowsFeaturesResult = z37.strictObject({ features: z37.array(WindowsFeature) });
|
|
4796
4822
|
|
|
4797
4823
|
// src/schema/schedule.ts
|
|
4798
|
-
import { z as
|
|
4799
|
-
var OpRef =
|
|
4800
|
-
var ScheduleCreateParams =
|
|
4801
|
-
name:
|
|
4824
|
+
import { z as z38 } from "zod";
|
|
4825
|
+
var OpRef = z38.string().min(3).max(128).regex(/^[a-z_]+(\.[a-z_]+)+$/);
|
|
4826
|
+
var ScheduleCreateParams = z38.strictObject({
|
|
4827
|
+
name: z38.string().min(1).max(200),
|
|
4802
4828
|
op: OpRef,
|
|
4803
4829
|
/** The op's params, exactly as the op takes them; checked when the task is created. */
|
|
4804
|
-
params:
|
|
4805
|
-
interval_s:
|
|
4830
|
+
params: z38.record(z38.string(), z38.unknown()).default({}),
|
|
4831
|
+
interval_s: z38.int().min(10).max(2592e3),
|
|
4806
4832
|
/** Stop after this many runs; absent: until canceled. */
|
|
4807
|
-
max_runs:
|
|
4833
|
+
max_runs: z38.int().min(1).max(1e5).optional(),
|
|
4808
4834
|
/** Run once now, before the first interval. */
|
|
4809
|
-
run_now:
|
|
4835
|
+
run_now: z38.boolean().default(false)
|
|
4810
4836
|
});
|
|
4811
|
-
var ScheduleRun =
|
|
4837
|
+
var ScheduleRun = z38.strictObject({
|
|
4812
4838
|
at_ms: epochMs,
|
|
4813
|
-
ok:
|
|
4839
|
+
ok: z38.boolean(),
|
|
4814
4840
|
elapsed_ms: nonNegInt,
|
|
4815
4841
|
/** The error's code and message when the run failed. */
|
|
4816
|
-
error:
|
|
4842
|
+
error: z38.string().nullable(),
|
|
4817
4843
|
/** The start of the answer, as JSON (cut at 4 KiB). */
|
|
4818
|
-
result_preview:
|
|
4844
|
+
result_preview: z38.string().nullable()
|
|
4819
4845
|
});
|
|
4820
|
-
var ScheduledTask =
|
|
4821
|
-
id:
|
|
4822
|
-
name:
|
|
4823
|
-
op:
|
|
4824
|
-
params:
|
|
4846
|
+
var ScheduledTask = z38.strictObject({
|
|
4847
|
+
id: z38.string(),
|
|
4848
|
+
name: z38.string(),
|
|
4849
|
+
op: z38.string(),
|
|
4850
|
+
params: z38.record(z38.string(), z38.unknown()),
|
|
4825
4851
|
interval_s: nonNegInt,
|
|
4826
4852
|
max_runs: nonNegInt.nullable(),
|
|
4827
4853
|
runs: nonNegInt,
|
|
4828
4854
|
created_at_ms: epochMs,
|
|
4829
4855
|
next_run_at_ms: epochMs.nullable(),
|
|
4830
4856
|
/** active, done (ran max_runs), canceled. */
|
|
4831
|
-
state:
|
|
4857
|
+
state: z38.enum(["active", "done", "cancelled"]),
|
|
4832
4858
|
/** The newest runs, newest first (at most 10). */
|
|
4833
|
-
recent:
|
|
4859
|
+
recent: z38.array(ScheduleRun)
|
|
4834
4860
|
});
|
|
4835
|
-
var ScheduleCreateResult =
|
|
4836
|
-
var ScheduleListParams =
|
|
4837
|
-
var ScheduleListResult =
|
|
4838
|
-
var ScheduleCancelParams =
|
|
4839
|
-
var ScheduleCancelResult =
|
|
4861
|
+
var ScheduleCreateResult = z38.strictObject({ task: ScheduledTask });
|
|
4862
|
+
var ScheduleListParams = z38.strictObject({ include_finished: z38.boolean().default(false) });
|
|
4863
|
+
var ScheduleListResult = z38.strictObject({ tasks: z38.array(ScheduledTask) });
|
|
4864
|
+
var ScheduleCancelParams = z38.strictObject({ id: z38.string().min(1).max(64) });
|
|
4865
|
+
var ScheduleCancelResult = z38.strictObject({ task: ScheduledTask });
|
|
4840
4866
|
|
|
4841
4867
|
// src/schema/notes.ts
|
|
4842
|
-
import { z as
|
|
4843
|
-
var NoteFolder =
|
|
4844
|
-
var NotePath =
|
|
4845
|
-
var NotesFoldersParams =
|
|
4846
|
-
var NotesFolder =
|
|
4847
|
-
var NotesFoldersResult =
|
|
4868
|
+
import { z as z39 } from "zod";
|
|
4869
|
+
var NoteFolder = z39.string().min(1).max(512).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*$/);
|
|
4870
|
+
var NotePath = z39.string().min(4).max(1024).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*\.md$/);
|
|
4871
|
+
var NotesFoldersParams = z39.strictObject({});
|
|
4872
|
+
var NotesFolder = z39.strictObject({ folder: z39.string(), notes: nonNegInt });
|
|
4873
|
+
var NotesFoldersResult = z39.strictObject({
|
|
4848
4874
|
/** The notes root on this computer. */
|
|
4849
|
-
root:
|
|
4850
|
-
folders:
|
|
4875
|
+
root: z39.string(),
|
|
4876
|
+
folders: z39.array(NotesFolder)
|
|
4851
4877
|
});
|
|
4852
|
-
var NotesListParams =
|
|
4878
|
+
var NotesListParams = z39.strictObject({
|
|
4853
4879
|
folder: NoteFolder.optional(),
|
|
4854
|
-
limit:
|
|
4880
|
+
limit: z39.int().min(1).max(2e3).default(500)
|
|
4855
4881
|
});
|
|
4856
|
-
var NoteEntry =
|
|
4857
|
-
path:
|
|
4858
|
-
label:
|
|
4859
|
-
folder:
|
|
4882
|
+
var NoteEntry = z39.strictObject({
|
|
4883
|
+
path: z39.string(),
|
|
4884
|
+
label: z39.string(),
|
|
4885
|
+
folder: z39.string(),
|
|
4860
4886
|
bytes: nonNegInt,
|
|
4861
4887
|
modified_at_ms: epochMs
|
|
4862
4888
|
});
|
|
4863
|
-
var NotesListResult =
|
|
4864
|
-
var NotesReadParams =
|
|
4865
|
-
var NotesReadResult =
|
|
4866
|
-
path:
|
|
4867
|
-
content:
|
|
4889
|
+
var NotesListResult = z39.strictObject({ root: z39.string(), notes: z39.array(NoteEntry), total: nonNegInt });
|
|
4890
|
+
var NotesReadParams = z39.strictObject({ path: NotePath });
|
|
4891
|
+
var NotesReadResult = z39.strictObject({
|
|
4892
|
+
path: z39.string(),
|
|
4893
|
+
content: z39.string(),
|
|
4868
4894
|
bytes: nonNegInt,
|
|
4869
4895
|
modified_at_ms: epochMs,
|
|
4870
4896
|
/** SHA-256 of the content: pass it back as `if_hash` to write only over this version. */
|
|
4871
|
-
hash:
|
|
4897
|
+
hash: z39.string()
|
|
4872
4898
|
});
|
|
4873
|
-
var NotesWriteParams =
|
|
4899
|
+
var NotesWriteParams = z39.strictObject({
|
|
4874
4900
|
folder: NoteFolder.default("General"),
|
|
4875
4901
|
/** The note's name, without ".md". */
|
|
4876
|
-
label:
|
|
4877
|
-
content:
|
|
4902
|
+
label: z39.string().min(1).max(200).regex(/^[^/\\:*?"<>|]+$/),
|
|
4903
|
+
content: z39.string().max(10485760),
|
|
4878
4904
|
/** Write only when the note is still this version (notes.read's hash); a change since answers CONFLICT. */
|
|
4879
|
-
if_hash:
|
|
4905
|
+
if_hash: z39.string().length(64).optional()
|
|
4880
4906
|
});
|
|
4881
|
-
var NotesWriteResult =
|
|
4882
|
-
var NotesSearchParams =
|
|
4883
|
-
query:
|
|
4884
|
-
limit:
|
|
4907
|
+
var NotesWriteResult = z39.strictObject({ path: z39.string(), bytes: nonNegInt, created: z39.boolean(), hash: z39.string() });
|
|
4908
|
+
var NotesSearchParams = z39.strictObject({
|
|
4909
|
+
query: z39.string().min(1).max(512),
|
|
4910
|
+
limit: z39.int().min(1).max(200).default(50)
|
|
4885
4911
|
});
|
|
4886
|
-
var NotesMatch =
|
|
4887
|
-
path:
|
|
4888
|
-
label:
|
|
4889
|
-
folder:
|
|
4912
|
+
var NotesMatch = z39.strictObject({
|
|
4913
|
+
path: z39.string(),
|
|
4914
|
+
label: z39.string(),
|
|
4915
|
+
folder: z39.string(),
|
|
4890
4916
|
/** The matching lines (at most five), trimmed. */
|
|
4891
|
-
lines:
|
|
4917
|
+
lines: z39.array(z39.string())
|
|
4892
4918
|
});
|
|
4893
|
-
var NotesSearchResult =
|
|
4919
|
+
var NotesSearchResult = z39.strictObject({ matches: z39.array(NotesMatch), total: nonNegInt });
|
|
4894
4920
|
|
|
4895
4921
|
// src/schema/documents.ts
|
|
4896
|
-
import { z as
|
|
4922
|
+
import { z as z40 } from "zod";
|
|
4897
4923
|
var DOCUMENTS_MAX_TEXT_CHARS = 1048576;
|
|
4898
|
-
var DocumentsPdfTextParams =
|
|
4924
|
+
var DocumentsPdfTextParams = z40.strictObject({
|
|
4899
4925
|
path: AbsPath,
|
|
4900
4926
|
/** 1-based, inclusive. */
|
|
4901
|
-
first_page:
|
|
4902
|
-
last_page:
|
|
4903
|
-
max_chars:
|
|
4927
|
+
first_page: z40.int().min(1).optional(),
|
|
4928
|
+
last_page: z40.int().min(1).optional(),
|
|
4929
|
+
max_chars: z40.int().min(1).max(DOCUMENTS_MAX_TEXT_CHARS).default(2e5)
|
|
4904
4930
|
});
|
|
4905
|
-
var DocumentsPdfPage =
|
|
4906
|
-
var DocumentsPdfTextResult =
|
|
4931
|
+
var DocumentsPdfPage = z40.strictObject({ page: z40.int().min(1), text: z40.string() });
|
|
4932
|
+
var DocumentsPdfTextResult = z40.strictObject({
|
|
4907
4933
|
pages: nonNegInt,
|
|
4908
4934
|
/** Each page read, in order (an image-only page has empty text: OCR it). */
|
|
4909
|
-
read:
|
|
4910
|
-
truncated:
|
|
4911
|
-
title:
|
|
4912
|
-
author:
|
|
4935
|
+
read: z40.array(DocumentsPdfPage),
|
|
4936
|
+
truncated: z40.boolean(),
|
|
4937
|
+
title: z40.string().nullable(),
|
|
4938
|
+
author: z40.string().nullable()
|
|
4913
4939
|
});
|
|
4914
|
-
var DocumentsOcrParams =
|
|
4940
|
+
var DocumentsOcrParams = z40.strictObject({
|
|
4915
4941
|
path: AbsPath,
|
|
4916
4942
|
/** BCP-47 language hints ("en-US", "fr-FR"); absent: the OS's own choice. */
|
|
4917
|
-
languages:
|
|
4943
|
+
languages: z40.array(z40.string().min(2).max(16)).max(8).optional(),
|
|
4918
4944
|
/** Faster, less accurate. */
|
|
4919
|
-
fast:
|
|
4945
|
+
fast: z40.boolean().default(false)
|
|
4920
4946
|
});
|
|
4921
|
-
var DocumentsOcrLine =
|
|
4922
|
-
text:
|
|
4947
|
+
var DocumentsOcrLine = z40.strictObject({
|
|
4948
|
+
text: z40.string(),
|
|
4923
4949
|
/** 0–1; null where the engine does not say. */
|
|
4924
|
-
confidence:
|
|
4950
|
+
confidence: z40.number().min(0).max(1).nullable()
|
|
4925
4951
|
});
|
|
4926
|
-
var DocumentsOcrResult =
|
|
4927
|
-
text:
|
|
4928
|
-
lines:
|
|
4929
|
-
truncated:
|
|
4952
|
+
var DocumentsOcrResult = z40.strictObject({
|
|
4953
|
+
text: z40.string(),
|
|
4954
|
+
lines: z40.array(DocumentsOcrLine),
|
|
4955
|
+
truncated: z40.boolean(),
|
|
4930
4956
|
/** Which engine read it ("vision" on macOS, "windows-ocr", "tesseract"). */
|
|
4931
|
-
engine:
|
|
4957
|
+
engine: z40.string()
|
|
4932
4958
|
});
|
|
4933
|
-
var DocumentsImageResizeParams =
|
|
4959
|
+
var DocumentsImageResizeParams = z40.strictObject({
|
|
4934
4960
|
path: AbsPath,
|
|
4935
4961
|
/** Where to write it; absent: next to the original, "<name>-resized.<ext>". */
|
|
4936
4962
|
out_path: AbsPath.optional(),
|
|
4937
4963
|
/** The longest side, kept in proportion; absent: the size stays (a format change only). */
|
|
4938
|
-
max_size:
|
|
4939
|
-
format:
|
|
4940
|
-
overwrite:
|
|
4964
|
+
max_size: z40.int().min(1).max(32768).optional(),
|
|
4965
|
+
format: z40.enum(["png", "jpeg", "tiff", "heic", "bmp", "gif"]).optional(),
|
|
4966
|
+
overwrite: z40.boolean().default(false)
|
|
4941
4967
|
});
|
|
4942
|
-
var DocumentsImageResizeResult =
|
|
4943
|
-
path:
|
|
4968
|
+
var DocumentsImageResizeResult = z40.strictObject({
|
|
4969
|
+
path: z40.string(),
|
|
4944
4970
|
width: nonNegInt,
|
|
4945
4971
|
height: nonNegInt,
|
|
4946
4972
|
bytes: nonNegInt
|
|
4947
4973
|
});
|
|
4948
|
-
var DocumentsParagraph =
|
|
4949
|
-
style:
|
|
4950
|
-
text:
|
|
4974
|
+
var DocumentsParagraph = z40.strictObject({
|
|
4975
|
+
style: z40.enum(["title", "heading1", "heading2", "heading3", "body", "bullet", "numbered", "quote", "code"]).default("body"),
|
|
4976
|
+
text: z40.string().max(1e5)
|
|
4951
4977
|
});
|
|
4952
|
-
var DocumentsSheet =
|
|
4953
|
-
name:
|
|
4978
|
+
var DocumentsSheet = z40.strictObject({
|
|
4979
|
+
name: z40.string().min(1).max(31),
|
|
4954
4980
|
/** Rows of cells; the first row is the header when `header` is true. */
|
|
4955
|
-
rows:
|
|
4956
|
-
header:
|
|
4981
|
+
rows: z40.array(z40.array(z40.union([z40.string().max(32767), z40.number(), z40.boolean(), z40.null()])).max(16384)).max(1e5),
|
|
4982
|
+
header: z40.boolean().default(true)
|
|
4957
4983
|
});
|
|
4958
|
-
var DocumentsOfficeGenerateParams =
|
|
4959
|
-
kind:
|
|
4984
|
+
var DocumentsOfficeGenerateParams = z40.strictObject({
|
|
4985
|
+
kind: z40.enum(["docx", "xlsx"]),
|
|
4960
4986
|
path: AbsPath,
|
|
4961
|
-
title:
|
|
4987
|
+
title: z40.string().max(1024).optional(),
|
|
4962
4988
|
/** docx: the document's paragraphs, in order. */
|
|
4963
|
-
paragraphs:
|
|
4989
|
+
paragraphs: z40.array(DocumentsParagraph).max(5e4).optional(),
|
|
4964
4990
|
/** xlsx: the workbook's sheets, in order. */
|
|
4965
|
-
sheets:
|
|
4966
|
-
overwrite:
|
|
4991
|
+
sheets: z40.array(DocumentsSheet).min(1).max(64).optional(),
|
|
4992
|
+
overwrite: z40.boolean().default(false)
|
|
4967
4993
|
});
|
|
4968
|
-
var DocumentsOfficeGenerateResult =
|
|
4969
|
-
var EntitiesNerParams =
|
|
4970
|
-
text:
|
|
4994
|
+
var DocumentsOfficeGenerateResult = z40.strictObject({ path: z40.string(), bytes: nonNegInt });
|
|
4995
|
+
var EntitiesNerParams = z40.strictObject({
|
|
4996
|
+
text: z40.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
|
|
4971
4997
|
/** Which kinds to keep; absent: all three. */
|
|
4972
|
-
labels:
|
|
4998
|
+
labels: z40.array(z40.enum(["person", "place", "organization"])).min(1).max(3).optional()
|
|
4973
4999
|
});
|
|
4974
|
-
var EntitySpan =
|
|
4975
|
-
text:
|
|
4976
|
-
label:
|
|
5000
|
+
var EntitySpan = z40.strictObject({
|
|
5001
|
+
text: z40.string(),
|
|
5002
|
+
label: z40.string(),
|
|
4977
5003
|
/** Character offsets into the text (UTF-16, as JavaScript counts). */
|
|
4978
5004
|
start: nonNegInt,
|
|
4979
5005
|
end: nonNegInt
|
|
4980
5006
|
});
|
|
4981
|
-
var EntitiesNerResult =
|
|
4982
|
-
var PiiKind =
|
|
4983
|
-
var EntitiesPiiParams =
|
|
4984
|
-
text:
|
|
4985
|
-
kinds:
|
|
5007
|
+
var EntitiesNerResult = z40.strictObject({ entities: z40.array(EntitySpan), engine: z40.string() });
|
|
5008
|
+
var PiiKind = z40.enum(["email", "phone", "credit_card", "us_ssn", "iban", "ip_address", "url", "api_key"]);
|
|
5009
|
+
var EntitiesPiiParams = z40.strictObject({
|
|
5010
|
+
text: z40.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
|
|
5011
|
+
kinds: z40.array(PiiKind).min(1).max(8).optional(),
|
|
4986
5012
|
/** Also answer the text with each finding replaced by its kind ("[email]"). */
|
|
4987
|
-
redact:
|
|
5013
|
+
redact: z40.boolean().default(false)
|
|
4988
5014
|
});
|
|
4989
|
-
var EntitiesPiiResult =
|
|
4990
|
-
findings:
|
|
4991
|
-
redacted:
|
|
5015
|
+
var EntitiesPiiResult = z40.strictObject({
|
|
5016
|
+
findings: z40.array(z40.strictObject({ kind: PiiKind, text: z40.string(), start: nonNegInt, end: nonNegInt })),
|
|
5017
|
+
redacted: z40.string().nullable()
|
|
4992
5018
|
});
|
|
4993
5019
|
|
|
4994
5020
|
// src/schema/registry.ts
|
|
@@ -5366,9 +5392,24 @@ var SERVICES = {
|
|
|
5366
5392
|
"tools.web_runtime_install": { params: WebRuntimeParams, result: WebRuntimeState },
|
|
5367
5393
|
"tools.web_runtime_remove": { params: WebRuntimeParams, result: WebRuntimeState }
|
|
5368
5394
|
}
|
|
5395
|
+
},
|
|
5396
|
+
// (1.86) The on-device agent turn (matrx-desktop python/agent): first-use install, then the /ai listener.
|
|
5397
|
+
agent: {
|
|
5398
|
+
progress: AgentServiceProgress,
|
|
5399
|
+
ops: {
|
|
5400
|
+
"agent.status": { params: AgentStatusParams, result: AgentServiceState },
|
|
5401
|
+
"agent.install": { params: AgentInstallParams, result: AgentServiceState },
|
|
5402
|
+
"agent.start": { params: AgentStartParams, result: AgentServiceState }
|
|
5403
|
+
}
|
|
5369
5404
|
}
|
|
5370
5405
|
};
|
|
5371
5406
|
var NAMED_SCHEMAS = {
|
|
5407
|
+
AgentServiceStateName,
|
|
5408
|
+
AgentStatusParams,
|
|
5409
|
+
AgentInstallParams,
|
|
5410
|
+
AgentStartParams,
|
|
5411
|
+
AgentServiceState,
|
|
5412
|
+
AgentServiceProgress,
|
|
5372
5413
|
AgentAssetTool,
|
|
5373
5414
|
AgentAssetKind,
|
|
5374
5415
|
AgentAssetOrigin,
|
|
@@ -7007,6 +7048,12 @@ export {
|
|
|
7007
7048
|
AgentAssetCount,
|
|
7008
7049
|
CodingAssetsGetParams,
|
|
7009
7050
|
CodingAssetsGetResult,
|
|
7051
|
+
AgentServiceStateName,
|
|
7052
|
+
AgentStatusParams,
|
|
7053
|
+
AgentInstallParams,
|
|
7054
|
+
AgentStartParams,
|
|
7055
|
+
AgentServiceState,
|
|
7056
|
+
AgentServiceProgress,
|
|
7010
7057
|
BrowserClientInstance,
|
|
7011
7058
|
BrowserKind,
|
|
7012
7059
|
BrowserSessionState,
|
|
@@ -7180,4 +7227,4 @@ export {
|
|
|
7180
7227
|
SERVICES,
|
|
7181
7228
|
NAMED_SCHEMAS
|
|
7182
7229
|
};
|
|
7183
|
-
//# sourceMappingURL=chunk-server-
|
|
7230
|
+
//# sourceMappingURL=chunk-server-AANZ3QIC.js.map
|