@ai-matrx/desktop-protocol 0.21.28 → 0.21.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { z } from "zod";
3
3
  import { UUID_SHAPE_PATTERN } from "@ai-matrx/kit/uuid";
4
4
  var PROTOCOL_MAJOR = 1;
5
- var PROTOCOL_MINOR = 33;
5
+ var PROTOCOL_MINOR = 39;
6
6
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
7
7
  var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
8
8
  var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -86,8 +86,11 @@ var ErrorReason = z2.enum([
86
86
  // AUTH_FORBIDDEN: the named browser is signed in to another account
87
87
  "browser_connection_off",
88
88
  // AUTH_FORBIDDEN: the person turned Browser connection off
89
- "awaiting_confirmation"
89
+ "awaiting_confirmation",
90
90
  // TIMEOUT: the person did not answer the browser's confirmation in time
91
+ // 1.34 (REASONS_SINCE): the per-device tool policy (src/tools/policy.ts)
92
+ "tool_disabled_on_device"
93
+ // AUTH_FORBIDDEN: the person turned this tool off for agents on this computer (Agents › Tools)
91
94
  ]);
92
95
  var FsPatchEditFailure = z2.strictObject({ edit_index: nonNegInt, reason: z2.string().max(300) });
93
96
  var ProtocolErrorBody = z2.strictObject({
@@ -923,7 +926,22 @@ var AccountAgent = z11.strictObject({
923
926
  shared_by: z11.string().max(320).nullable(),
924
927
  /** The organization it belongs to. */
925
928
  organization: z11.string().max(200).nullable(),
926
- updated_at_ms: epochMs
929
+ updated_at_ms: epochMs,
930
+ // 1.39: the catalogue's own row (agx_get_list_full, read whole through @ai-matrx/agents/catalog).
931
+ /** The agent's tags (the library's search and its inspector). */
932
+ tags: z11.array(z11.string().max(120)).max(50).optional(),
933
+ /** The model it runs (a model catalogue id); absent when it names none. */
934
+ model_id: AccountRowId.optional(),
935
+ /** The person's access: owner, admin, editor, viewer or system (the database's own words); absent when unknown. */
936
+ access_level: z11.string().min(1).max(40).optional(),
937
+ /** The organization's id (the label is `organization`); absent when it has none. */
938
+ organization_id: AccountRowId.optional(),
939
+ /** Whose it is: the person's own, shared with them, or one AI Matrx ships (Gallery). */
940
+ origin: z11.enum(["mine", "shared", "system"]).optional(),
941
+ /** Archived (the catalogue's archive filter decides whether the library lists it). */
942
+ is_archived: z11.boolean().optional(),
943
+ /** An orchestra: it conducts other agents. */
944
+ orchestra: z11.boolean().optional()
927
945
  });
928
946
  var AccountAgentsListParams = z11.strictObject({});
929
947
  var AccountAgentsListResult = z11.strictObject({
@@ -932,6 +950,70 @@ var AccountAgentsListResult = z11.strictObject({
932
950
  problem: z11.string().max(300).nullable(),
933
951
  agents: z11.array(AccountAgent).max(2e3)
934
952
  });
953
+ var AccountAgentVariable = z11.strictObject({
954
+ name: z11.string().min(1).max(200),
955
+ /** The default value as text ("" when it has none). */
956
+ default_value: z11.string().max(4e3),
957
+ required: z11.boolean(),
958
+ help: z11.string().max(1e3)
959
+ });
960
+ var AccountAgentDetail = z11.strictObject({
961
+ agent: AccountAgent,
962
+ /** The inputs a run asks for (the agent's variables). */
963
+ variables: z11.array(AccountAgentVariable).max(100),
964
+ /** How many tools, custom tools, skills and connections it may use. */
965
+ tool_count: z11.int().min(0),
966
+ custom_tool_count: z11.int().min(0),
967
+ skill_count: z11.int().min(0),
968
+ connection_count: z11.int().min(0),
969
+ /** The model's display name when the catalogue knows it. */
970
+ model_name: z11.string().max(200).nullable()
971
+ });
972
+ var AccountAgentsGetParams = z11.strictObject({ agent_id: AccountRowId });
973
+ var AccountAgentsGetResult = z11.strictObject({
974
+ state: AccountReadState,
975
+ problem: z11.string().max(300).nullable(),
976
+ /** Null when the person cannot open it (not theirs, not shared with them, or gone). */
977
+ detail: AccountAgentDetail.nullable()
978
+ });
979
+ var AccountAgentRunStatus = z11.enum(["succeeded", "warned", "failed", "stopped", "waiting", "running"]);
980
+ var AccountAgentRun = z11.strictObject({
981
+ run_id: AccountRowId,
982
+ status: AccountAgentRunStatus,
983
+ started_at_ms: epochMs,
984
+ completed_at_ms: epochMs.nullable(),
985
+ duration_ms: z11.int().min(0).nullable(),
986
+ cost: z11.number().min(0).nullable(),
987
+ tokens: z11.int().min(0).nullable(),
988
+ /** One line of the answer (at most 240 characters), when the run kept one. */
989
+ output_preview: z11.string().max(240).nullable(),
990
+ /** The run's error, one line. */
991
+ error: z11.string().max(300).nullable(),
992
+ /** The mandate it served, when one named it. */
993
+ mandate_key: z11.string().max(200).nullable(),
994
+ organization: z11.string().max(200).nullable(),
995
+ /** The conversation that holds its transcript, when it kept one. */
996
+ conversation_id: AccountRowId.nullable(),
997
+ has_transcript: z11.boolean()
998
+ });
999
+ var AccountAgentRunSort = z11.enum(["started_at", "duration", "cost", "status"]);
1000
+ var AccountAgentsRunsParams = z11.strictObject({
1001
+ agent_id: AccountRowId,
1002
+ status: AccountAgentRunStatus.optional(),
1003
+ sort: AccountAgentRunSort.optional(),
1004
+ descending: z11.boolean().optional(),
1005
+ offset: z11.int().min(0).max(1e5).optional(),
1006
+ limit: z11.int().min(1).max(100).optional()
1007
+ });
1008
+ var AccountAgentsRunsResult = z11.strictObject({
1009
+ state: AccountReadState,
1010
+ problem: z11.string().max(300).nullable(),
1011
+ /** Every run of this agent the person may see (rows is one page of it). */
1012
+ total: z11.int().min(0),
1013
+ rows: z11.array(AccountAgentRun).max(100)
1014
+ });
1015
+ var AccountAgentsFavoriteParams = z11.strictObject({ agent_id: AccountRowId, favorite: z11.boolean() });
1016
+ var AccountAgentsFavoriteResult = z11.strictObject({ favorite: z11.boolean() });
935
1017
  var VaultItemKind = z11.enum(["login", "passkey", "key", "other"]);
936
1018
  var VaultFieldSummary = z11.strictObject({
937
1019
  key: z11.string().min(1).max(120),
@@ -1388,6 +1470,10 @@ var AppsProjectsToWindowParams = z14.strictObject({
1388
1470
  group: z14.boolean().default(false),
1389
1471
  /** 1.32: also pin them in that window (now if closed, else when it next closes). */
1390
1472
  pin: z14.boolean().optional(),
1473
+ /** 1.36: a batch: exactly these chats of the project and no other (a reused marker is a label, never a sweep). */
1474
+ chat_ids: z14.array(ChatId).min(1).max(5e3).optional(),
1475
+ /** 1.36: take them off this one side window only (a Move's origin), never main or another window that lists them. */
1476
+ take_off_from: ChatPlace.optional(),
1391
1477
  dry_run: z14.boolean().default(false)
1392
1478
  });
1393
1479
  var AppsProjectsToWindowResult = z14.strictObject({
@@ -1891,7 +1977,9 @@ var SystemSettingsPane = z21.enum([
1891
1977
  "energy",
1892
1978
  "about",
1893
1979
  "storage",
1894
- "system_report"
1980
+ "system_report",
1981
+ /** (1.35) Privacy & Security › Microphone: where the person allows Matrx 2 the microphone. */
1982
+ "microphone"
1895
1983
  ]);
1896
1984
  var SystemOpenSettingsParams = z21.strictObject({ pane: SystemSettingsPane });
1897
1985
  var SystemOpenSettingsResult = z21.strictObject({ pane: SystemSettingsPane });
@@ -2671,22 +2759,387 @@ var CodingHistoryProgressEvent = z32.strictObject({
2671
2759
  failed: nonNegInt
2672
2760
  });
2673
2761
 
2674
- // src/schema/browser.ts
2762
+ // src/schema/coding-sessions.ts
2675
2763
  import { z as z33 } from "zod";
2676
- var BrowserClientInstance = z33.string().min(1).max(64).regex(/^[A-Za-z0-9_.:-]+$/);
2677
- var BrowserKind = z33.enum(["chrome", "edge", "brave", "arc", "opera", "vivaldi", "chromium", "firefox", "other"]);
2678
- var BrowserSessionState = z33.enum(["connected", "different_account", "extension_signed_out", "device_signed_out", "unverified"]);
2679
- var BrowserSession = z33.strictObject({
2764
+ var CodingProviderName = z33.enum(["claude", "codex"]);
2765
+ var CodingRunStatus = z33.enum(["starting", "running", "completed", "stopped", "failed"]);
2766
+ var SessionKey = z33.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
2767
+ var IsoTime = z33.string().min(10).max(40);
2768
+ var LocalPath = z33.string().min(1).max(4096);
2769
+ var CodingClientRequestId = z33.string().regex(/^[A-Za-z0-9_-]{8,64}$/);
2770
+ var ShortText = z33.string().max(500);
2771
+ var CodingRunUsage = z33.strictObject({
2772
+ inputTokens: nonNegInt,
2773
+ outputTokens: nonNegInt,
2774
+ cachedInputTokens: nonNegInt
2775
+ });
2776
+ var CodingStartedBy = z33.strictObject({
2777
+ kind: z33.enum(["this_computer", "web", "phone", "agent", "other"]),
2778
+ label: z33.string().min(1).max(80)
2779
+ });
2780
+ var CodingRunRecord = z33.strictObject({
2781
+ runId: z33.string().min(1).max(64),
2782
+ sessionId: SessionKey,
2783
+ provider: CodingProviderName,
2784
+ cwd: LocalPath,
2785
+ prompt: z33.string().max(1048576),
2786
+ model: z33.string().max(200).nullable(),
2787
+ status: CodingRunStatus,
2788
+ startedAt: IsoTime,
2789
+ endedAt: IsoTime.nullable(),
2790
+ error: z33.string().max(65536).nullable(),
2791
+ usage: CodingRunUsage.nullable(),
2792
+ costUsd: z33.number().nullable(),
2793
+ billing: z33.enum(["subscription", "api", "unknown"]).nullable(),
2794
+ startedBy: CodingStartedBy.nullable()
2795
+ });
2796
+ var CodingSessionAgentPart = z33.strictObject({
2797
+ part: z33.enum(["instructions", "skills", "tools"]),
2798
+ loaded: nonNegInt,
2799
+ total: nonNegInt
2800
+ });
2801
+ var CodingSessionAgent = z33.strictObject({
2802
+ agentId: z33.string().min(1).max(64),
2803
+ versionId: z33.string().max(64).nullable(),
2804
+ versionNumber: nonNegInt.nullable(),
2805
+ name: z33.string().max(300),
2806
+ definitionHash: z33.string().max(200),
2807
+ loaded: z33.array(CodingSessionAgentPart).max(3),
2808
+ unavailable: z33.array(z33.strictObject({ kind: z33.string().max(60), name: z33.string().max(300), reason: ShortText })).max(500),
2809
+ skills: z33.array(z33.string().max(300)).max(500),
2810
+ tools: z33.array(z33.string().max(300)).max(500),
2811
+ variables: z33.record(z33.string().max(200), z33.unknown()),
2812
+ blockDue: z33.boolean(),
2813
+ deliveredAt: IsoTime.nullable(),
2814
+ replaces: z33.string().max(300).nullable()
2815
+ });
2816
+ var CodingSessionRecord = z33.strictObject({
2817
+ id: SessionKey,
2818
+ provider: CodingProviderName,
2819
+ providerSessionId: SessionKey.nullable(),
2820
+ cwd: LocalPath,
2821
+ title: z33.string().max(500),
2822
+ model: z33.string().max(200).nullable(),
2823
+ effort: z33.string().max(40).nullable(),
2824
+ origin: z33.enum(["started", "takeover"]),
2825
+ createdAt: IsoTime,
2826
+ updatedAt: IsoTime,
2827
+ lastRunId: z33.string().max(64).nullable(),
2828
+ lastRunStatus: CodingRunStatus.nullable(),
2829
+ queued: z33.array(z33.string().max(1048576)).max(100),
2830
+ agent: CodingSessionAgent.nullable(),
2831
+ agentRemovedDue: z33.boolean()
2832
+ });
2833
+ var CodingActiveElsewhere = z33.strictObject({
2834
+ reason: z33.enum(["process", "recent-write", "open-tool-call", "open"]),
2835
+ message: ShortText,
2836
+ /** The process driving it, when the evidence is a process (re-checked before any stop). */
2837
+ pid: z33.int().min(1).nullable()
2838
+ });
2839
+ var CodingTitleSource = z33.enum(["app", "app-remembered", "custom-title", "ai-title", "agent-name", "summary", "first-prompt", "last-prompt", "unknown"]);
2840
+ var CodingDiscoveredChat = z33.strictObject({
2841
+ provider: CodingProviderName,
2842
+ providerSessionId: SessionKey,
2843
+ cwd: LocalPath.nullable(),
2844
+ title: z33.string().max(500),
2845
+ titleSource: CodingTitleSource.optional(),
2846
+ titlePending: z33.boolean().optional(),
2847
+ archived: z33.boolean().optional(),
2848
+ scheduled: z33.boolean().optional(),
2849
+ unlisted: z33.boolean().optional(),
2850
+ unavailable: ShortText.nullable(),
2851
+ updatedAt: IsoTime,
2852
+ source: z33.string().max(60).nullable(),
2853
+ activeElsewhere: CodingActiveElsewhere.nullable()
2854
+ });
2855
+ var CodingTranscriptItem = z33.discriminatedUnion("kind", [
2856
+ z33.strictObject({ kind: z33.literal("user"), id: z33.string().max(200), text: z33.string(), at: IsoTime.nullable() }),
2857
+ z33.strictObject({ kind: z33.literal("text"), id: z33.string().max(200), text: z33.string() }),
2858
+ z33.strictObject({ kind: z33.literal("text-delta"), id: z33.string().max(200), text: z33.string() }),
2859
+ z33.strictObject({ kind: z33.literal("reasoning"), id: z33.string().max(200), text: z33.string() }),
2860
+ z33.strictObject({ kind: z33.literal("tool-call"), id: z33.string().max(200), name: z33.string().max(300), input: z33.unknown() }),
2861
+ z33.strictObject({
2862
+ kind: z33.literal("tool-result"),
2863
+ id: z33.string().max(200),
2864
+ output: z33.string(),
2865
+ isError: z33.boolean(),
2866
+ /** The output's full size when only its start is here; `coding.item.full` reads the rest. */
2867
+ fullBytes: nonNegInt.optional()
2868
+ }),
2869
+ z33.strictObject({ kind: z33.literal("usage"), usage: CodingRunUsage, costUsd: z33.number().nullable() }),
2870
+ z33.strictObject({ kind: z33.literal("notice"), id: z33.string().max(200), level: z33.enum(["info", "warning"]), text: z33.string() }),
2871
+ z33.strictObject({ kind: z33.literal("error"), id: z33.string().max(200), text: z33.string() })
2872
+ ]);
2873
+ var CodingHistoryRecord = z33.strictObject({
2874
+ items: z33.array(CodingTranscriptItem),
2875
+ /** Only the end of the chat is here; "Show earlier" reads more (a bigger `max_bytes`). */
2876
+ truncated: z33.boolean(),
2877
+ unavailable: ShortText.nullable(),
2878
+ /** The last live item `seq` this read already contains; a watch applies only newer ones. */
2879
+ seq: nonNegInt
2880
+ });
2881
+ var CodingQuotaWindow = z33.strictObject({
2882
+ label: z33.string().max(120),
2883
+ usedPercent: z33.number().nullable(),
2884
+ resetsAt: z33.string().max(80).nullable(),
2885
+ valueLabel: z33.string().max(120).nullable()
2886
+ });
2887
+ var CodingProviderProblem = z33.strictObject({
2888
+ kind: z33.enum(["usage-limit", "signed-out"]),
2889
+ message: z33.string().max(2e3),
2890
+ until: z33.string().max(120).nullable(),
2891
+ at: IsoTime
2892
+ });
2893
+ var CodingProviderBinary = z33.strictObject({
2894
+ path: LocalPath,
2895
+ version: z33.string().max(80).nullable(),
2896
+ source: z33.enum(["desktop-app", "path", "npm-global", "configured"]),
2897
+ sourceLabel: z33.string().max(120),
2898
+ newer: z33.strictObject({ path: LocalPath, version: z33.string().max(80), sourceLabel: z33.string().max(120) }).nullable()
2899
+ });
2900
+ var CodingProviderStatus = z33.strictObject({
2901
+ provider: CodingProviderName,
2902
+ label: z33.string().max(60),
2903
+ installed: z33.boolean(),
2904
+ version: z33.string().max(80).nullable(),
2905
+ loggedIn: z33.boolean(),
2906
+ billing: z33.enum(["subscription", "api", "unknown"]),
2907
+ plan: z33.string().max(80).nullable(),
2908
+ account: z33.string().max(320).nullable(),
2909
+ problem: ShortText.nullable(),
2910
+ fix: ShortText.nullable(),
2911
+ ready: z33.boolean(),
2912
+ lastProblem: CodingProviderProblem.nullable(),
2913
+ quota: z33.array(CodingQuotaWindow).max(20),
2914
+ models: z33.array(z33.strictObject({ id: z33.string().max(200), label: z33.string().max(200) })).max(200),
2915
+ efforts: z33.array(z33.string().max(40)).max(20),
2916
+ defaultModel: z33.strictObject({ id: z33.string().max(200), source: z33.enum(["settings", "driver"]) }).nullable(),
2917
+ defaultEffort: z33.string().max(40).nullable(),
2918
+ binary: CodingProviderBinary.nullable()
2919
+ });
2920
+ var CodingChatPreference = z33.strictObject({
2921
+ title: z33.string().max(500).nullable(),
2922
+ pinned: z33.boolean(),
2923
+ hidden: z33.boolean(),
2924
+ /** When the person last had this chat open on any screen of this computer (the "New output" dot). */
2925
+ lastSeenAt: IsoTime.nullable(),
2926
+ updatedAt: IsoTime.nullable()
2927
+ });
2928
+ var CodingTitleStatus = z33.strictObject({
2929
+ owner: z33.boolean(),
2930
+ pending: z33.boolean(),
2931
+ problem: ShortText.nullable(),
2932
+ renames: ShortText.nullable()
2933
+ });
2934
+ var CodingRecentRow = z33.strictObject({
2935
+ target: z33.string().min(3).max(200),
2936
+ title: z33.string().max(500),
2937
+ provider: CodingProviderName,
2938
+ sessionId: SessionKey.nullable(),
2939
+ providerSessionId: SessionKey.nullable(),
2940
+ cwd: LocalPath.nullable(),
2941
+ updatedAt: IsoTime,
2942
+ state: z33.enum(["running", "needs_attention", "new_output", "elsewhere", "idle"]),
2943
+ stateLabel: z33.string().max(120).nullable(),
2944
+ pinned: z33.boolean(),
2945
+ startedBy: CodingStartedBy.nullable()
2946
+ });
2947
+ var CodingFolderCheck = z33.strictObject({
2948
+ path: z33.string().max(4096),
2949
+ exists: z33.boolean(),
2950
+ isDirectory: z33.boolean()
2951
+ });
2952
+ var CodingRecentFolder = z33.strictObject({ path: LocalPath, lastUsedAt: IsoTime, exists: z33.boolean() });
2953
+ var CodingAgentSelectionParams = z33.strictObject({
2954
+ agent_id: z33.string().min(1).max(64),
2955
+ version_id: z33.string().min(1).max(64).optional(),
2956
+ variables: z33.record(z33.string().max(200), z33.unknown()).optional()
2957
+ });
2958
+ var CodingSendResult = z33.strictObject({
2959
+ session: CodingSessionRecord,
2960
+ run: CodingRunRecord.nullable(),
2961
+ /** The prompt waits behind a live run (it shows as a queued bubble). */
2962
+ queued: z33.boolean()
2963
+ });
2964
+ var CodingProvidersParams = z33.strictObject({});
2965
+ var CodingProvidersResult = z33.strictObject({ providers: z33.array(CodingProviderStatus).max(4) });
2966
+ var CodingSessionsListParams = z33.strictObject({});
2967
+ var CodingSessionsListResult = z33.strictObject({
2968
+ sessions: z33.array(CodingSessionRecord),
2969
+ /** The latest run of each session, by session id. */
2970
+ runs: z33.record(z33.string().max(128), CodingRunRecord),
2971
+ recent: z33.array(CodingRecentRow),
2972
+ title_status: CodingTitleStatus
2973
+ });
2974
+ var CodingDiscoverParams = z33.strictObject({ limit: z33.int().min(1).max(1e3).optional() });
2975
+ var CodingDiscoverResult = z33.strictObject({ chats: z33.array(CodingDiscoveredChat) });
2976
+ var CodingRunsListParams = z33.strictObject({ session_id: SessionKey });
2977
+ var CodingRunsListResult = z33.strictObject({ runs: z33.array(CodingRunRecord) });
2978
+ var CodingHistoryParams = z33.strictObject({ session_id: SessionKey, max_bytes: z33.int().min(1024).max(209715200).optional() });
2979
+ var CodingHistoryResult = CodingHistoryRecord;
2980
+ var CodingTranscriptReadParams = z33.strictObject({
2981
+ provider: CodingProviderName,
2982
+ provider_session_id: SessionKey,
2983
+ max_bytes: z33.int().min(1024).max(209715200).optional()
2984
+ });
2985
+ var CodingTranscriptReadResult = CodingHistoryRecord;
2986
+ var CodingItemFullParams = z33.strictObject({
2987
+ provider: CodingProviderName,
2988
+ provider_session_id: SessionKey,
2989
+ item_id: z33.string().min(1).max(200)
2990
+ });
2991
+ var CodingItemFullResult = z33.strictObject({ output: z33.string(), bytes: nonNegInt });
2992
+ var CodingActivityParams = z33.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
2993
+ var CodingActivityResult = z33.strictObject({ active: CodingActiveElsewhere.nullable() });
2994
+ var CodingFoldersRecentParams = z33.strictObject({});
2995
+ var CodingFoldersRecentResult = z33.strictObject({ folders: z33.array(CodingRecentFolder).max(100) });
2996
+ var CodingFoldersCheckParams = z33.strictObject({ path: z33.string().min(1).max(4096) });
2997
+ var CodingFoldersCheckResult = CodingFolderCheck;
2998
+ var CodingFoldersCreateParams = z33.strictObject({ path: z33.string().min(1).max(4096) });
2999
+ var CodingFoldersCreateResult = CodingFolderCheck;
3000
+ var CodingStartParams = z33.strictObject({
3001
+ provider: CodingProviderName,
3002
+ cwd: z33.string().min(1).max(4096),
3003
+ prompt: z33.string().min(1).max(1048576),
3004
+ model: z33.string().min(1).max(200).optional(),
3005
+ effort: z33.string().min(1).max(40).optional(),
3006
+ agent: CodingAgentSelectionParams.optional(),
3007
+ /** One of the person's coding accounts on this computer (Accounts); absent = the default login. */
3008
+ account_profile_id: z33.string().min(1).max(64).optional(),
3009
+ client_request_id: CodingClientRequestId
3010
+ });
3011
+ var CodingStartResult = CodingSendResult;
3012
+ var CodingTakeoverParams = z33.strictObject({
3013
+ provider: CodingProviderName,
3014
+ provider_session_id: SessionKey,
3015
+ cwd: z33.string().min(1).max(4096),
3016
+ title: z33.string().max(500).optional(),
3017
+ agent: CodingAgentSelectionParams.optional(),
3018
+ confirm_elsewhere: z33.boolean().optional()
3019
+ });
3020
+ var CodingTakeoverResult = z33.strictObject({ session: CodingSessionRecord });
3021
+ var CodingSendParams = z33.strictObject({
3022
+ session_id: SessionKey,
3023
+ prompt: z33.string().min(1).max(1048576),
3024
+ client_request_id: CodingClientRequestId
3025
+ });
3026
+ var CodingStopParams = z33.strictObject({ run_id: z33.string().min(1).max(64) });
3027
+ var CodingStopResult = z33.strictObject({ run: CodingRunRecord.nullable() });
3028
+ var CodingStopElsewhereParams = z33.strictObject({
3029
+ provider: CodingProviderName,
3030
+ provider_session_id: SessionKey,
3031
+ pid: z33.int().min(1)
3032
+ });
3033
+ var CodingStopElsewhereResult = z33.strictObject({ stopped: z33.boolean(), message: ShortText });
3034
+ var CodingOptionsSetParams = z33.strictObject({
3035
+ session_id: SessionKey,
3036
+ model: z33.string().max(200).optional(),
3037
+ effort: z33.string().max(40).optional()
3038
+ });
3039
+ var CodingOptionsSetResult = z33.strictObject({ session: CodingSessionRecord });
3040
+ var CodingAgentSetParams = z33.strictObject({ session_id: SessionKey, agent: CodingAgentSelectionParams.optional() });
3041
+ var CodingAgentSetResult = z33.strictObject({ session: CodingSessionRecord });
3042
+ var CodingAgentsAccessParams = z33.strictObject({});
3043
+ var CodingAgentsAccessResult = z33.strictObject({
3044
+ signedIn: z33.boolean(),
3045
+ userId: z33.string().max(64).nullable(),
3046
+ organizationId: z33.string().max(64).nullable(),
3047
+ configured: z33.boolean()
3048
+ });
3049
+ var CodingTitlesStatusParams = z33.strictObject({});
3050
+ var CodingTitlesStatusResult = CodingTitleStatus;
3051
+ var CodingPrefsListParams = z33.strictObject({});
3052
+ var CodingPrefsListResult = z33.strictObject({ preferences: z33.record(z33.string().max(200), CodingChatPreference) });
3053
+ var CodingPrefsSetParams = z33.strictObject({
3054
+ key: z33.string().min(1).max(200),
3055
+ title: z33.string().min(1).max(500).optional(),
3056
+ clear_title: z33.boolean().optional(),
3057
+ pinned: z33.boolean().optional(),
3058
+ hidden: z33.boolean().optional()
3059
+ });
3060
+ var CodingPrefsSetResult = CodingPrefsListResult;
3061
+ var CodingRecentSeenParams = z33.strictObject({ target: z33.string().min(3).max(200) });
3062
+ var CodingRecentSeenResult = z33.strictObject({ recent: z33.array(CodingRecentRow) });
3063
+ var CodingSearchParams = z33.strictObject({
3064
+ query: z33.string().min(1).max(500),
3065
+ cursor: nonNegInt.optional(),
3066
+ limit: z33.int().min(1).max(100).optional()
3067
+ });
3068
+ var CodingSearchResult = z33.strictObject({
3069
+ query: z33.string().max(500),
3070
+ hits: z33.array(
3071
+ z33.strictObject({
3072
+ provider: CodingProviderName,
3073
+ providerSessionId: SessionKey,
3074
+ title: z33.string().max(500),
3075
+ cwd: LocalPath.nullable(),
3076
+ updatedAt: IsoTime,
3077
+ where: z33.enum(["title", "content"]),
3078
+ snippet: z33.string().max(2e3).nullable()
3079
+ })
3080
+ ),
3081
+ scanned: nonNegInt,
3082
+ total: nonNegInt,
3083
+ nextCursor: nonNegInt.nullable()
3084
+ });
3085
+ var CodingReconcileParams = z33.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
3086
+ var CodingReconcileResult = z33.strictObject({
3087
+ state: z33.enum(["done", "blocked", "nothing_to_do"]),
3088
+ summary: z33.string().max(400)
3089
+ });
3090
+ var CodingTranscriptRawParams = z33.strictObject({ provider: CodingProviderName, provider_session_id: SessionKey });
3091
+ var CodingTranscriptRawResult = z33.strictObject({
3092
+ available: z33.boolean(),
3093
+ reason: ShortText.nullable(),
3094
+ file_name: z33.string().max(300).nullable(),
3095
+ bytes: nonNegInt,
3096
+ /** The opt-in cloud backup was refreshed (false: off, unchanged, or signed out). */
3097
+ backup_refreshed: z33.boolean(),
3098
+ /** Subagent transcripts beside the chat (Claude Code), downloaded separately. */
3099
+ subagents: nonNegInt
3100
+ });
3101
+ var CodingWatchParams = z33.strictObject({});
3102
+ var CodingWatchResult = z33.strictObject({ resource_id: ResourceId });
3103
+ var CodingSessionWatchParams = z33.strictObject({ session_id: SessionKey, since_seq: nonNegInt.optional() });
3104
+ var CodingSessionWatchResult = z33.strictObject({
3105
+ resource_id: ResourceId,
3106
+ /** The newest item seq the device has for this session right now. */
3107
+ seq: nonNegInt
3108
+ });
3109
+ var CodingChangedEvent = z33.discriminatedUnion("kind", [
3110
+ z33.strictObject({ kind: z33.literal("session"), session: CodingSessionRecord }),
3111
+ z33.strictObject({ kind: z33.literal("run"), run: CodingRunRecord }),
3112
+ z33.strictObject({ kind: z33.literal("preferences"), preferences: z33.record(z33.string().max(200), CodingChatPreference) }),
3113
+ z33.strictObject({ kind: z33.literal("titles") }),
3114
+ z33.strictObject({ kind: z33.literal("recent"), recent: z33.array(CodingRecentRow) })
3115
+ ]);
3116
+ var CodingWatchStateEvent = z33.strictObject({ live: z33.boolean(), reason: ShortText.nullable(), beat_ms: z33.int().min(1e3) });
3117
+ var CodingItemEvent = z33.strictObject({
3118
+ session_id: SessionKey,
3119
+ run_id: z33.string().min(1).max(64),
3120
+ seq: nonNegInt,
3121
+ item: CodingTranscriptItem
3122
+ });
3123
+ var CodingGapEvent = z33.strictObject({ session_id: SessionKey, since_seq: nonNegInt, seq: nonNegInt });
3124
+ var SessionIdentifyParams = z33.strictObject({ label: z33.string().min(1).max(60) });
3125
+ var SessionIdentifyResult = z33.strictObject({ label: z33.string().max(60) });
3126
+
3127
+ // src/schema/browser.ts
3128
+ import { z as z34 } from "zod";
3129
+ var BrowserClientInstance = z34.string().min(1).max(64).regex(/^[A-Za-z0-9_.:-]+$/);
3130
+ var BrowserKind = z34.enum(["chrome", "edge", "brave", "arc", "opera", "vivaldi", "chromium", "firefox", "other"]);
3131
+ var BrowserSessionState = z34.enum(["connected", "different_account", "extension_signed_out", "device_signed_out", "unverified"]);
3132
+ var BrowserSession = z34.strictObject({
2680
3133
  client_instance: BrowserClientInstance,
2681
3134
  /** What the person sees ("Chrome — Work"), set by the extension. */
2682
- client_label: z33.string().min(1).max(128),
3135
+ client_label: z34.string().min(1).max(128),
2683
3136
  browser: BrowserKind,
2684
- extension_version: z33.string().min(1).max(32),
3137
+ extension_version: z34.string().min(1).max(32),
2685
3138
  state: BrowserSessionState,
2686
3139
  /** True only for `connected`: an agent's call can reach this session. */
2687
- routable: z33.boolean(),
3140
+ routable: z34.boolean(),
2688
3141
  /** The extension's account email from its token (null when signed out or unknown). */
2689
- account_email: z33.string().max(320).nullable(),
3142
+ account_email: z34.string().max(320).nullable(),
2690
3143
  connected_at_ms: epochMs,
2691
3144
  last_call_at_ms: epochMs.nullable(),
2692
3145
  calls: nonNegInt,
@@ -2695,90 +3148,694 @@ var BrowserSession = z33.strictObject({
2695
3148
  p50_ms: nonNegInt.nullable(),
2696
3149
  p95_ms: nonNegInt.nullable(),
2697
3150
  /** A call is waiting for the person to confirm it in the browser. */
2698
- awaiting_confirmation: z33.boolean()
3151
+ awaiting_confirmation: z34.boolean()
2699
3152
  });
2700
- var BrowserRegisterParams = z33.strictObject({
3153
+ var BrowserRegisterParams = z34.strictObject({
2701
3154
  client_instance: BrowserClientInstance,
2702
- client_label: z33.string().min(1).max(128),
3155
+ client_label: z34.string().min(1).max(128),
2703
3156
  browser: BrowserKind,
2704
- extension_version: z33.string().min(1).max(32),
3157
+ extension_version: z34.string().min(1).max(32),
2705
3158
  /** The extension's current AI Matrx access token, checked against the device owner; null when signed out. */
2706
- account_token: z33.string().min(16).max(8192).nullable()
3159
+ account_token: z34.string().min(16).max(8192).nullable()
2707
3160
  });
2708
- var BrowserRegisterResult = z33.strictObject({ session: BrowserSession });
2709
- var BrowserCallError = z33.strictObject({
2710
- message: z33.string().max(1e3),
3161
+ var BrowserRegisterResult = z34.strictObject({ session: BrowserSession });
3162
+ var BrowserCallError = z34.strictObject({
3163
+ message: z34.string().max(1e3),
2711
3164
  /** The extension's own error code, when it has one ("tool_not_found", "denied"). */
2712
- code: z33.string().max(64).nullable()
3165
+ code: z34.string().max(64).nullable()
2713
3166
  });
2714
- var BrowserResultParams = z33.strictObject({
2715
- call_id: z33.string().min(1).max(64),
2716
- ok: z33.boolean(),
3167
+ var BrowserResultParams = z34.strictObject({
3168
+ call_id: z34.string().min(1).max(64),
3169
+ ok: z34.boolean(),
2717
3170
  /** The tool's result when ok (any JSON). */
2718
- result: z33.unknown(),
3171
+ result: z34.unknown(),
2719
3172
  error: BrowserCallError.nullable()
2720
3173
  });
2721
- var BrowserResultResult = z33.strictObject({ accepted: z33.boolean() });
2722
- var BrowserCallPhase = z33.enum(["awaiting_confirmation", "running"]);
2723
- var BrowserProgressParams = z33.strictObject({ call_id: z33.string().min(1).max(64), phase: BrowserCallPhase });
2724
- var BrowserProgressResult = z33.strictObject({ accepted: z33.boolean() });
2725
- var BrowserSessionsParams = z33.strictObject({});
2726
- var BrowserSessionsResult = z33.strictObject({
3174
+ var BrowserResultResult = z34.strictObject({ accepted: z34.boolean() });
3175
+ var BrowserCallPhase = z34.enum(["awaiting_confirmation", "running"]);
3176
+ var BrowserProgressParams = z34.strictObject({ call_id: z34.string().min(1).max(64), phase: BrowserCallPhase });
3177
+ var BrowserProgressResult = z34.strictObject({ accepted: z34.boolean() });
3178
+ var BrowserSessionsParams = z34.strictObject({});
3179
+ var BrowserSessionsResult = z34.strictObject({
2727
3180
  /** The person's Browser connection switch. Off: no pairing, no extension sessions. */
2728
- enabled: z33.boolean(),
3181
+ enabled: z34.boolean(),
2729
3182
  /** Whether Matrx 2 is signed in (without an owner no session is routable). */
2730
- owner_signed_in: z33.boolean(),
2731
- sessions: z33.array(BrowserSession).max(64)
2732
- });
2733
- var BrowserDisconnectParams = z33.strictObject({ client_instance: BrowserClientInstance });
2734
- var BrowserDisconnectResult = z33.strictObject({ disconnected: z33.boolean() });
2735
- var BrowserSetEnabledParams = z33.strictObject({ enabled: z33.boolean() });
2736
- var BrowserSetEnabledResult = z33.strictObject({ enabled: z33.boolean() });
2737
- var BrowserPairCodeParams = z33.strictObject({});
2738
- var BrowserPairCodeResult = z33.strictObject({ code: z33.string().min(16).max(128) });
2739
- var BrowserPairResetParams = z33.strictObject({});
2740
- var BrowserCallParams = z33.strictObject({
2741
- tool: z33.string().min(1).max(96).regex(/^[a-z][a-z0-9_]*$/),
2742
- args: z33.record(z33.string(), z33.unknown()),
3183
+ owner_signed_in: z34.boolean(),
3184
+ sessions: z34.array(BrowserSession).max(64)
3185
+ });
3186
+ var BrowserDisconnectParams = z34.strictObject({ client_instance: BrowserClientInstance });
3187
+ var BrowserDisconnectResult = z34.strictObject({ disconnected: z34.boolean() });
3188
+ var BrowserSetEnabledParams = z34.strictObject({ enabled: z34.boolean() });
3189
+ var BrowserSetEnabledResult = z34.strictObject({ enabled: z34.boolean() });
3190
+ var BrowserPairCodeParams = z34.strictObject({});
3191
+ var BrowserPairCodeResult = z34.strictObject({ code: z34.string().min(16).max(128) });
3192
+ var BrowserPairResetParams = z34.strictObject({});
3193
+ var BrowserCallParams = z34.strictObject({
3194
+ tool: z34.string().min(1).max(96).regex(/^[a-z][a-z0-9_]*$/),
3195
+ args: z34.record(z34.string(), z34.unknown()),
2743
3196
  /** Which session; default: the most recently active routable one (BROWSER ambiguity → CONFLICT). */
2744
3197
  client_instance: BrowserClientInstance.optional(),
2745
3198
  /** How long to wait, including a person's confirmation; default 120 s. */
2746
- timeout_ms: z33.int().min(1e3).max(6e5).optional()
3199
+ timeout_ms: z34.int().min(1e3).max(6e5).optional()
2747
3200
  });
2748
- var BrowserCallResult = z33.strictObject({
3201
+ var BrowserCallResult = z34.strictObject({
2749
3202
  client_instance: BrowserClientInstance,
2750
- result: z33.unknown(),
3203
+ result: z34.unknown(),
2751
3204
  duration_ms: nonNegInt
2752
3205
  });
2753
- var BrowserInvokeEvent = z33.strictObject({
2754
- call_id: z33.string().min(1).max(64),
2755
- tool: z33.string().min(1).max(96),
2756
- args: z33.record(z33.string(), z33.unknown()),
3206
+ var BrowserToolMetricsParams = z34.strictObject({ client_instance: BrowserClientInstance });
3207
+ var BrowserToolMetric = z34.strictObject({
3208
+ tool: z34.string().max(256),
3209
+ calls: nonNegInt,
3210
+ errors: nonNegInt,
3211
+ /** Over the last 200 answered calls; null before the first answer. */
3212
+ p50_ms: nonNegInt.nullable(),
3213
+ p95_ms: nonNegInt.nullable(),
3214
+ last_call_at_ms: epochMs.nullable(),
3215
+ last_error: z34.string().max(2048).nullable()
3216
+ });
3217
+ var BrowserToolMetricsResult = z34.strictObject({ client_instance: z34.string(), tools: z34.array(BrowserToolMetric) });
3218
+ var BrowserResetCountersParams = z34.strictObject({ client_instance: BrowserClientInstance });
3219
+ var BrowserResetCountersResult = z34.strictObject({ reset: z34.boolean() });
3220
+ var BrowserLogParams = z34.strictObject({
3221
+ /** Only messages after this seq (0: from the oldest kept; the core keeps the last 500). */
3222
+ after_seq: nonNegInt.default(0),
3223
+ limit: z34.int().min(1).max(500).default(500)
3224
+ });
3225
+ var BrowserLogMessage = z34.strictObject({
3226
+ seq: nonNegInt,
3227
+ at_ms: epochMs,
3228
+ direction: z34.enum(["to_browser", "from_browser", "core"]),
3229
+ client_instance: z34.string(),
3230
+ kind: z34.enum(["register", "invoke", "result", "progress", "timeout", "closed"]),
3231
+ tool: z34.string().nullable(),
3232
+ call_id: z34.string().nullable(),
3233
+ ok: z34.boolean().nullable(),
3234
+ detail: z34.string().max(1024)
3235
+ });
3236
+ var BrowserLogResult = z34.strictObject({
3237
+ messages: z34.array(BrowserLogMessage),
3238
+ /** The newest seq the core has written (pass it back as after_seq to follow the log). */
3239
+ last_seq: nonNegInt
3240
+ });
3241
+ var BrowserInvokeEvent = z34.strictObject({
3242
+ call_id: z34.string().min(1).max(64),
3243
+ tool: z34.string().min(1).max(96),
3244
+ args: z34.record(z34.string(), z34.unknown()),
2757
3245
  deadline_ms: epochMs
2758
3246
  });
2759
- var BrowserSessionsChangedEvent = z33.strictObject({ count: nonNegInt, enabled: z33.boolean() });
2760
- var BrowserProgressEvent = z33.strictObject({
2761
- call_id: z33.string().min(1).max(64),
3247
+ var BrowserSessionsChangedEvent = z34.strictObject({ count: nonNegInt, enabled: z34.boolean() });
3248
+ var BrowserProgressEvent = z34.strictObject({
3249
+ call_id: z34.string().min(1).max(64),
2762
3250
  client_instance: BrowserClientInstance,
2763
3251
  phase: BrowserCallPhase
2764
3252
  });
2765
- var DesktopHealth = z33.strictObject({
2766
- status: z33.literal("ok"),
2767
- service: z33.literal("matrx-desktop"),
2768
- version: z33.string().max(32),
2769
- protocol_version: z33.string().max(16),
2770
- ws_path: z33.literal("/v1/connect"),
2771
- device_id: z33.string().max(64),
2772
- browser_connection: z33.enum(["on", "off"])
2773
- });
2774
- var BrowserPairRequest = z33.strictObject({ client_instance: BrowserClientInstance });
2775
- var BrowserPairResult = z33.strictObject({ pair_token: z33.string().min(16).max(128), ws_path: z33.literal("/v1/connect") });
3253
+ var DesktopHealth = z34.strictObject({
3254
+ status: z34.literal("ok"),
3255
+ service: z34.literal("matrx-desktop"),
3256
+ version: z34.string().max(32),
3257
+ protocol_version: z34.string().max(16),
3258
+ ws_path: z34.literal("/v1/connect"),
3259
+ device_id: z34.string().max(64),
3260
+ browser_connection: z34.enum(["on", "off"])
3261
+ });
3262
+ var BrowserPairRequest = z34.strictObject({ client_instance: BrowserClientInstance });
3263
+ var BrowserPairResult = z34.strictObject({ pair_token: z34.string().min(16).max(128), ws_path: z34.literal("/v1/connect") });
2776
3264
  var MATRX_EXTENSION_IDS = {
2777
3265
  store: "hnfolienncfklkgmdjjmhhegglimlamg",
2778
3266
  development: "cihdmkcdjjckfhjpgoedmgfpoljebaml"
2779
3267
  };
2780
3268
  var DISCOVERY_FILE = { live: "matrx2.json", development: "matrx2-dev.json" };
2781
3269
 
3270
+ // src/schema/net.ts
3271
+ import { z as z35 } from "zod";
3272
+ var NetInfoParams = z35.strictObject({});
3273
+ var NetAddress = z35.strictObject({
3274
+ address: z35.string(),
3275
+ family: z35.enum(["ipv4", "ipv6"]),
3276
+ netmask: z35.string().nullable(),
3277
+ /** CIDR form ("192.168.1.20/24"); null where the OS gives no prefix. */
3278
+ cidr: z35.string().nullable()
3279
+ });
3280
+ var NetInterface = z35.strictObject({
3281
+ name: z35.string(),
3282
+ mac: z35.string().nullable(),
3283
+ /** Loopback and other internal interfaces. */
3284
+ internal: z35.boolean(),
3285
+ addresses: z35.array(NetAddress)
3286
+ });
3287
+ var NetInfoResult = z35.strictObject({
3288
+ hostname: z35.string(),
3289
+ interfaces: z35.array(NetInterface),
3290
+ /** The default route's gateway; null when the OS does not say (or there is none). */
3291
+ gateway: z35.string().nullable(),
3292
+ /** The DNS servers the OS uses; empty when it does not say. */
3293
+ dns: z35.array(z35.string())
3294
+ });
3295
+ var NetWifiParams = z35.strictObject({});
3296
+ var NetWifiNetwork = z35.strictObject({
3297
+ /** null: the OS hides the name (macOS without Location Services for this app). */
3298
+ ssid: z35.string().nullable(),
3299
+ /** dBm; null where the OS does not say. */
3300
+ rssi: z35.int().nullable(),
3301
+ channel: z35.string().nullable(),
3302
+ security: z35.string().nullable()
3303
+ });
3304
+ var NetWifiResult = z35.strictObject({
3305
+ /** Whether the computer has a Wi-Fi interface at all. */
3306
+ available: z35.boolean(),
3307
+ /** The network the computer is on; null when it is on none. */
3308
+ current: NetWifiNetwork.nullable(),
3309
+ /** Networks in range (may be empty where the OS lists none to apps). */
3310
+ networks: z35.array(NetWifiNetwork)
3311
+ });
3312
+ var NetBluetoothParams = z35.strictObject({});
3313
+ var NetBluetoothDevice = z35.strictObject({
3314
+ name: z35.string(),
3315
+ address: z35.string().nullable(),
3316
+ connected: z35.boolean(),
3317
+ /** What it is, in the OS's words ("Headphones", "Keyboard"); null where it does not say. */
3318
+ kind: z35.string().nullable(),
3319
+ /** Battery percent, where the OS reports it. */
3320
+ battery: z35.int().min(0).max(100).nullable()
3321
+ });
3322
+ var NetBluetoothResult = z35.strictObject({
3323
+ /** Bluetooth is on; null where the OS does not say. */
3324
+ powered: z35.boolean().nullable(),
3325
+ devices: z35.array(NetBluetoothDevice)
3326
+ });
3327
+ var NetDevicesParams = z35.strictObject({});
3328
+ var NetDevice = z35.strictObject({
3329
+ ip: z35.string(),
3330
+ mac: z35.string().nullable(),
3331
+ interface: z35.string().nullable(),
3332
+ /** The name the local network gives it (reverse DNS / mDNS), when the table carries one. */
3333
+ hostname: z35.string().nullable()
3334
+ });
3335
+ var NetDevicesResult = z35.strictObject({ devices: z35.array(NetDevice) });
3336
+ var NetMdnsParams = z35.strictObject({
3337
+ /** A service type ("_http._tcp"); absent lists the service types found. */
3338
+ service_type: z35.string().min(1).max(64).regex(/^_[A-Za-z0-9-]+\._(tcp|udp)$/).optional(),
3339
+ /** How long to listen. */
3340
+ timeout_s: z35.int().min(1).max(30).default(3)
3341
+ });
3342
+ var NetMdnsService = z35.strictObject({
3343
+ name: z35.string(),
3344
+ type: z35.string(),
3345
+ domain: z35.string(),
3346
+ interface: z35.string().nullable()
3347
+ });
3348
+ var NetMdnsResult = z35.strictObject({ services: z35.array(NetMdnsService) });
3349
+ var NetScanParams = z35.strictObject({
3350
+ /** A host name or address; a private or loopback address unless `allow_public`. */
3351
+ host: z35.string().min(1).max(253),
3352
+ ports: z35.array(z35.int().min(1).max(65535)).min(1).max(1024),
3353
+ timeout_ms: z35.int().min(50).max(1e4).default(800),
3354
+ /** Scanning a host on the public internet needs saying so. */
3355
+ allow_public: z35.boolean().default(false)
3356
+ });
3357
+ var NetScanResult = z35.strictObject({
3358
+ host: z35.string(),
3359
+ /** The address the host resolved to. */
3360
+ address: z35.string(),
3361
+ open: z35.array(z35.int().min(1).max(65535)),
3362
+ closed: nonNegInt,
3363
+ elapsed_ms: nonNegInt
3364
+ });
3365
+ var NetDownloadParams = z35.strictObject({
3366
+ url: z35.string().min(1).max(8192).regex(/^https?:\/\//),
3367
+ /** Where to save it: an absolute path (a folder keeps the URL's file name). */
3368
+ path: AbsPath,
3369
+ overwrite: z35.boolean().default(false),
3370
+ timeout_s: z35.int().min(1).max(3600).default(300),
3371
+ /** Refuse anything larger. */
3372
+ max_bytes: z35.int().min(1).max(10737418240).default(2147483648)
3373
+ });
3374
+ var NetDownloadResult = z35.strictObject({
3375
+ path: z35.string(),
3376
+ bytes: nonNegInt,
3377
+ content_type: z35.string().nullable(),
3378
+ /** The final URL after redirects. */
3379
+ url: z35.string(),
3380
+ elapsed_ms: nonNegInt
3381
+ });
3382
+
3383
+ // src/schema/personal.ts
3384
+ import { z as z36 } from "zod";
3385
+ var Text = z36.string().max(65536);
3386
+ var AutomationScriptParams = z36.strictObject({
3387
+ /** applescript and jxa: macOS (osascript); powershell: Windows (and pwsh where installed). */
3388
+ language: z36.enum(["applescript", "jxa", "powershell"]),
3389
+ script: z36.string().min(1).max(262144),
3390
+ timeout_s: z36.int().min(1).max(600).default(60)
3391
+ });
3392
+ var AutomationScriptResult = z36.strictObject({
3393
+ stdout: z36.string(),
3394
+ stderr: z36.string(),
3395
+ exit_code: z36.int(),
3396
+ timed_out: z36.boolean(),
3397
+ /** stdout or stderr was cut at 1 MiB. */
3398
+ truncated: z36.boolean(),
3399
+ elapsed_ms: nonNegInt
3400
+ });
3401
+ var MailAccountsParams = z36.strictObject({});
3402
+ var MailAccount = z36.strictObject({ name: z36.string(), emails: z36.array(z36.string()), enabled: z36.boolean() });
3403
+ var MailAccountsResult = z36.strictObject({ accounts: z36.array(MailAccount) });
3404
+ var MailListParams = z36.strictObject({
3405
+ /** The account's name in Mail; absent: every account. */
3406
+ account: z36.string().min(1).max(256).optional(),
3407
+ /** The mailbox's name ("INBOX", "Sent Messages"). */
3408
+ mailbox: z36.string().min(1).max(256).default("INBOX"),
3409
+ unread_only: z36.boolean().default(false),
3410
+ limit: z36.int().min(1).max(200).default(25)
3411
+ });
3412
+ var MailMessage = z36.strictObject({
3413
+ id: z36.string(),
3414
+ subject: z36.string(),
3415
+ sender: z36.string(),
3416
+ received_at_ms: epochMs.nullable(),
3417
+ read: z36.boolean(),
3418
+ account: z36.string(),
3419
+ mailbox: z36.string(),
3420
+ /** The first lines of the message's text. */
3421
+ preview: z36.string()
3422
+ });
3423
+ var MailListResult = z36.strictObject({ messages: z36.array(MailMessage) });
3424
+ var MailSendParams = z36.strictObject({
3425
+ to: z36.array(z36.string().min(3).max(320)).min(1).max(50),
3426
+ cc: z36.array(z36.string().min(3).max(320)).max(50).default([]),
3427
+ subject: z36.string().max(998),
3428
+ body: Text,
3429
+ /** The sending account's address; absent: Mail's default. */
3430
+ from: z36.string().min(3).max(320).optional(),
3431
+ /** false leaves it open in Mail as a draft for the person to send. */
3432
+ send: z36.boolean().default(true)
3433
+ });
3434
+ var MailSendResult = z36.strictObject({ sent: z36.boolean() });
3435
+ var MessagesChatsParams = z36.strictObject({ limit: z36.int().min(1).max(200).default(25) });
3436
+ var MessagesChat = z36.strictObject({
3437
+ chat_id: z36.string(),
3438
+ name: z36.string().nullable(),
3439
+ participants: z36.array(z36.string()),
3440
+ last_message_at_ms: epochMs.nullable(),
3441
+ service: z36.string().nullable()
3442
+ });
3443
+ var MessagesChatsResult = z36.strictObject({ chats: z36.array(MessagesChat) });
3444
+ var MessagesListParams = z36.strictObject({
3445
+ /** One chat (messages.chats' chat_id); absent: the newest across all. */
3446
+ chat_id: z36.string().min(1).max(512).optional(),
3447
+ limit: z36.int().min(1).max(500).default(50)
3448
+ });
3449
+ var MessagesMessage = z36.strictObject({
3450
+ id: z36.string(),
3451
+ chat_id: z36.string().nullable(),
3452
+ text: z36.string(),
3453
+ from_me: z36.boolean(),
3454
+ /** The other person's handle (phone or email); null for the person's own messages. */
3455
+ sender: z36.string().nullable(),
3456
+ sent_at_ms: epochMs.nullable()
3457
+ });
3458
+ var MessagesListResult = z36.strictObject({ messages: z36.array(MessagesMessage) });
3459
+ var MessagesSendParams = z36.strictObject({
3460
+ /** A phone number or email the person can message. */
3461
+ to: z36.string().min(3).max(320),
3462
+ text: z36.string().min(1).max(2e4)
3463
+ });
3464
+ var MessagesSendResult = z36.strictObject({ sent: z36.boolean() });
3465
+ var ContactsSearchParams = z36.strictObject({
3466
+ /** Matched against names, organizations, emails and phone numbers. */
3467
+ query: z36.string().min(1).max(256),
3468
+ limit: z36.int().min(1).max(200).default(25)
3469
+ });
3470
+ var ContactLabeled = z36.strictObject({ label: z36.string().nullable(), value: z36.string() });
3471
+ var ContactSummary = z36.strictObject({
3472
+ id: z36.string(),
3473
+ name: z36.string(),
3474
+ organization: z36.string().nullable(),
3475
+ emails: z36.array(ContactLabeled),
3476
+ phones: z36.array(ContactLabeled)
3477
+ });
3478
+ var ContactsSearchResult = z36.strictObject({ contacts: z36.array(ContactSummary) });
3479
+ var ContactsGetParams = z36.strictObject({ id: z36.string().min(1).max(256) });
3480
+ var ContactDetail = z36.strictObject({
3481
+ id: z36.string(),
3482
+ name: z36.string(),
3483
+ organization: z36.string().nullable(),
3484
+ job_title: z36.string().nullable(),
3485
+ emails: z36.array(ContactLabeled),
3486
+ phones: z36.array(ContactLabeled),
3487
+ addresses: z36.array(ContactLabeled),
3488
+ birthday: z36.string().nullable(),
3489
+ note: z36.string().nullable()
3490
+ });
3491
+ var ContactsGetResult = z36.strictObject({ contact: ContactDetail });
3492
+ var CalendarListParams = z36.strictObject({
3493
+ from_ms: epochMs,
3494
+ to_ms: epochMs,
3495
+ /** One calendar's name; absent: every calendar. */
3496
+ calendar: z36.string().min(1).max(256).optional(),
3497
+ limit: z36.int().min(1).max(500).default(100)
3498
+ });
3499
+ var CalendarEvent = z36.strictObject({
3500
+ id: z36.string(),
3501
+ title: z36.string(),
3502
+ start_ms: epochMs,
3503
+ end_ms: epochMs,
3504
+ all_day: z36.boolean(),
3505
+ calendar: z36.string(),
3506
+ location: z36.string().nullable(),
3507
+ notes: z36.string().nullable()
3508
+ });
3509
+ var CalendarListResult = z36.strictObject({ events: z36.array(CalendarEvent) });
3510
+ var CalendarCreateParams = z36.strictObject({
3511
+ title: z36.string().min(1).max(1024),
3512
+ start_ms: epochMs,
3513
+ end_ms: epochMs,
3514
+ all_day: z36.boolean().default(false),
3515
+ /** The calendar's name; absent: the first writable calendar. */
3516
+ calendar: z36.string().min(1).max(256).optional(),
3517
+ location: z36.string().max(1024).optional(),
3518
+ notes: Text.optional()
3519
+ });
3520
+ var CalendarCreateResult = z36.strictObject({ id: z36.string(), calendar: z36.string() });
3521
+ var RemindersListParams = z36.strictObject({
3522
+ /** One list's name; absent: every list. */
3523
+ list: z36.string().min(1).max(256).optional(),
3524
+ include_completed: z36.boolean().default(false),
3525
+ limit: z36.int().min(1).max(500).default(100)
3526
+ });
3527
+ var Reminder = z36.strictObject({
3528
+ id: z36.string(),
3529
+ title: z36.string(),
3530
+ list: z36.string(),
3531
+ due_ms: epochMs.nullable(),
3532
+ completed: z36.boolean(),
3533
+ notes: z36.string().nullable()
3534
+ });
3535
+ var RemindersListResult = z36.strictObject({ reminders: z36.array(Reminder) });
3536
+ var RemindersCreateParams = z36.strictObject({
3537
+ title: z36.string().min(1).max(1024),
3538
+ due_ms: epochMs.optional(),
3539
+ list: z36.string().min(1).max(256).optional(),
3540
+ notes: Text.optional()
3541
+ });
3542
+ var RemindersCreateResult = z36.strictObject({ id: z36.string(), list: z36.string() });
3543
+ var PhotosSearchParams = z36.strictObject({
3544
+ /** Matched against file names, titles, descriptions and keywords; absent: the newest. */
3545
+ query: z36.string().min(1).max(256).optional(),
3546
+ from_ms: epochMs.optional(),
3547
+ to_ms: epochMs.optional(),
3548
+ favorites_only: z36.boolean().default(false),
3549
+ limit: z36.int().min(1).max(200).default(25)
3550
+ });
3551
+ var Photo = z36.strictObject({
3552
+ id: z36.string(),
3553
+ filename: z36.string(),
3554
+ taken_at_ms: epochMs.nullable(),
3555
+ width: nonNegInt.nullable(),
3556
+ height: nonNegInt.nullable(),
3557
+ favorite: z36.boolean(),
3558
+ title: z36.string().nullable()
3559
+ });
3560
+ var PhotosSearchResult = z36.strictObject({ photos: z36.array(Photo) });
3561
+ var PhotosGetParams = z36.strictObject({
3562
+ id: z36.string().min(1).max(256),
3563
+ /** Copy the original into a folder Matrx 2 owns and answer its path (then fs_read or desktop_documents reads it). */
3564
+ export: z36.boolean().default(false)
3565
+ });
3566
+ var PhotosGetResult = z36.strictObject({ photo: Photo, path: z36.string().nullable() });
3567
+ var LocationGetParams = z36.strictObject({ timeout_s: z36.int().min(1).max(60).default(15) });
3568
+ var LocationGetResult = z36.strictObject({
3569
+ latitude: z36.number().min(-90).max(90),
3570
+ longitude: z36.number().min(-180).max(180),
3571
+ /** Metres; null where the OS does not say. */
3572
+ accuracy_m: z36.number().min(0).nullable(),
3573
+ at_ms: epochMs,
3574
+ /** Who answered: the OS's own location service. */
3575
+ source: z36.enum(["corelocation", "windows", "geoclue"])
3576
+ });
3577
+
3578
+ // src/schema/windows.ts
3579
+ import { z as z37 } from "zod";
3580
+ 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)(\\.*)?$/);
3581
+ var RegistryValueType = z37.enum(["REG_SZ", "REG_EXPAND_SZ", "REG_MULTI_SZ", "REG_DWORD", "REG_QWORD", "REG_BINARY", "REG_NONE"]);
3582
+ var WindowsRegistryReadParams = z37.strictObject({
3583
+ key: RegistryKey,
3584
+ /** One value's name ("" is the key's default value); absent: every value and the subkeys. */
3585
+ name: z37.string().max(16383).optional()
3586
+ });
3587
+ var RegistryValue = z37.strictObject({ name: z37.string(), type: RegistryValueType, data: z37.string() });
3588
+ var WindowsRegistryReadResult = z37.strictObject({
3589
+ key: z37.string(),
3590
+ exists: z37.boolean(),
3591
+ values: z37.array(RegistryValue),
3592
+ subkeys: z37.array(z37.string())
3593
+ });
3594
+ var WindowsRegistryWriteParams = z37.strictObject({
3595
+ key: RegistryKey,
3596
+ name: z37.string().max(16383),
3597
+ type: RegistryValueType.default("REG_SZ"),
3598
+ /** As reg.exe takes it: text, a number, hex for binary, \\0 between the strings of a multi-string. */
3599
+ data: z37.string().max(1048576),
3600
+ /** Remove the value instead of writing it. */
3601
+ delete: z37.boolean().default(false)
3602
+ });
3603
+ var WindowsRegistryWriteResult = z37.strictObject({ key: z37.string(), name: z37.string(), deleted: z37.boolean() });
3604
+ var WindowsServicesParams = z37.strictObject({
3605
+ /** Matched against the service's name and display name. */
3606
+ filter: z37.string().min(1).max(256).optional(),
3607
+ limit: z37.int().min(1).max(1e3).default(200)
3608
+ });
3609
+ var WindowsService = z37.strictObject({
3610
+ name: z37.string(),
3611
+ display_name: z37.string(),
3612
+ /** Running, Stopped, Paused… as Windows says it. */
3613
+ status: z37.string(),
3614
+ /** Automatic, Manual, Disabled…; null where Windows does not say. */
3615
+ start_type: z37.string().nullable()
3616
+ });
3617
+ var WindowsServicesResult = z37.strictObject({ services: z37.array(WindowsService) });
3618
+ var WindowsServiceControlParams = z37.strictObject({
3619
+ name: z37.string().min(1).max(256),
3620
+ action: z37.enum(["start", "stop", "restart"])
3621
+ });
3622
+ var WindowsServiceControlResult = z37.strictObject({ name: z37.string(), status: z37.string() });
3623
+ var WindowsEventLogParams = z37.strictObject({
3624
+ log: z37.string().min(1).max(256).default("System"),
3625
+ /** Only these levels; absent: all. */
3626
+ levels: z37.array(z37.enum(["critical", "error", "warning", "information", "verbose"])).max(5).optional(),
3627
+ since_ms: epochMs.optional(),
3628
+ limit: z37.int().min(1).max(500).default(50)
3629
+ });
3630
+ var WindowsEvent = z37.strictObject({
3631
+ id: z37.int(),
3632
+ level: z37.string(),
3633
+ source: z37.string(),
3634
+ at_ms: epochMs,
3635
+ message: z37.string()
3636
+ });
3637
+ var WindowsEventLogResult = z37.strictObject({ log: z37.string(), events: z37.array(WindowsEvent) });
3638
+ var WindowsFeaturesParams = z37.strictObject({ filter: z37.string().min(1).max(256).optional() });
3639
+ var WindowsFeature = z37.strictObject({ name: z37.string(), state: z37.string() });
3640
+ var WindowsFeaturesResult = z37.strictObject({ features: z37.array(WindowsFeature) });
3641
+
3642
+ // src/schema/schedule.ts
3643
+ import { z as z38 } from "zod";
3644
+ var OpRef = z38.string().min(3).max(128).regex(/^[a-z_]+(\.[a-z_]+)+$/);
3645
+ var ScheduleCreateParams = z38.strictObject({
3646
+ name: z38.string().min(1).max(200),
3647
+ op: OpRef,
3648
+ /** The op's params, exactly as the op takes them; checked when the task is created. */
3649
+ params: z38.record(z38.string(), z38.unknown()).default({}),
3650
+ interval_s: z38.int().min(10).max(2592e3),
3651
+ /** Stop after this many runs; absent: until cancelled. */
3652
+ max_runs: z38.int().min(1).max(1e5).optional(),
3653
+ /** Run once now, before the first interval. */
3654
+ run_now: z38.boolean().default(false)
3655
+ });
3656
+ var ScheduleRun = z38.strictObject({
3657
+ at_ms: epochMs,
3658
+ ok: z38.boolean(),
3659
+ elapsed_ms: nonNegInt,
3660
+ /** The error's code and message when the run failed. */
3661
+ error: z38.string().nullable(),
3662
+ /** The start of the answer, as JSON (cut at 4 KiB). */
3663
+ result_preview: z38.string().nullable()
3664
+ });
3665
+ var ScheduledTask = z38.strictObject({
3666
+ id: z38.string(),
3667
+ name: z38.string(),
3668
+ op: z38.string(),
3669
+ params: z38.record(z38.string(), z38.unknown()),
3670
+ interval_s: nonNegInt,
3671
+ max_runs: nonNegInt.nullable(),
3672
+ runs: nonNegInt,
3673
+ created_at_ms: epochMs,
3674
+ next_run_at_ms: epochMs.nullable(),
3675
+ /** active, done (ran max_runs), cancelled. */
3676
+ state: z38.enum(["active", "done", "cancelled"]),
3677
+ /** The newest runs, newest first (at most 10). */
3678
+ recent: z38.array(ScheduleRun)
3679
+ });
3680
+ var ScheduleCreateResult = z38.strictObject({ task: ScheduledTask });
3681
+ var ScheduleListParams = z38.strictObject({ include_finished: z38.boolean().default(false) });
3682
+ var ScheduleListResult = z38.strictObject({ tasks: z38.array(ScheduledTask) });
3683
+ var ScheduleCancelParams = z38.strictObject({ id: z38.string().min(1).max(64) });
3684
+ var ScheduleCancelResult = z38.strictObject({ task: ScheduledTask });
3685
+
3686
+ // src/schema/notes.ts
3687
+ import { z as z39 } from "zod";
3688
+ var NoteFolder = z39.string().min(1).max(512).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*$/);
3689
+ var NotePath = z39.string().min(4).max(1024).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*\.md$/);
3690
+ var NotesFoldersParams = z39.strictObject({});
3691
+ var NotesFolder = z39.strictObject({ folder: z39.string(), notes: nonNegInt });
3692
+ var NotesFoldersResult = z39.strictObject({
3693
+ /** The notes root on this computer. */
3694
+ root: z39.string(),
3695
+ folders: z39.array(NotesFolder)
3696
+ });
3697
+ var NotesListParams = z39.strictObject({
3698
+ folder: NoteFolder.optional(),
3699
+ limit: z39.int().min(1).max(2e3).default(500)
3700
+ });
3701
+ var NoteEntry = z39.strictObject({
3702
+ path: z39.string(),
3703
+ label: z39.string(),
3704
+ folder: z39.string(),
3705
+ bytes: nonNegInt,
3706
+ modified_at_ms: epochMs
3707
+ });
3708
+ var NotesListResult = z39.strictObject({ root: z39.string(), notes: z39.array(NoteEntry), total: nonNegInt });
3709
+ var NotesReadParams = z39.strictObject({ path: NotePath });
3710
+ var NotesReadResult = z39.strictObject({
3711
+ path: z39.string(),
3712
+ content: z39.string(),
3713
+ bytes: nonNegInt,
3714
+ modified_at_ms: epochMs,
3715
+ /** SHA-256 of the content: pass it back as `if_hash` to write only over this version. */
3716
+ hash: z39.string()
3717
+ });
3718
+ var NotesWriteParams = z39.strictObject({
3719
+ folder: NoteFolder.default("General"),
3720
+ /** The note's name, without ".md". */
3721
+ label: z39.string().min(1).max(200).regex(/^[^/\\:*?"<>|]+$/),
3722
+ content: z39.string().max(10485760),
3723
+ /** Write only when the note is still this version (notes.read's hash); a change since answers CONFLICT. */
3724
+ if_hash: z39.string().length(64).optional()
3725
+ });
3726
+ var NotesWriteResult = z39.strictObject({ path: z39.string(), bytes: nonNegInt, created: z39.boolean(), hash: z39.string() });
3727
+ var NotesSearchParams = z39.strictObject({
3728
+ query: z39.string().min(1).max(512),
3729
+ limit: z39.int().min(1).max(200).default(50)
3730
+ });
3731
+ var NotesMatch = z39.strictObject({
3732
+ path: z39.string(),
3733
+ label: z39.string(),
3734
+ folder: z39.string(),
3735
+ /** The matching lines (at most five), trimmed. */
3736
+ lines: z39.array(z39.string())
3737
+ });
3738
+ var NotesSearchResult = z39.strictObject({ matches: z39.array(NotesMatch), total: nonNegInt });
3739
+
3740
+ // src/schema/documents.ts
3741
+ import { z as z40 } from "zod";
3742
+ var DOCUMENTS_MAX_TEXT_CHARS = 1048576;
3743
+ var DocumentsPdfTextParams = z40.strictObject({
3744
+ path: AbsPath,
3745
+ /** 1-based, inclusive. */
3746
+ first_page: z40.int().min(1).optional(),
3747
+ last_page: z40.int().min(1).optional(),
3748
+ max_chars: z40.int().min(1).max(DOCUMENTS_MAX_TEXT_CHARS).default(2e5)
3749
+ });
3750
+ var DocumentsPdfPage = z40.strictObject({ page: z40.int().min(1), text: z40.string() });
3751
+ var DocumentsPdfTextResult = z40.strictObject({
3752
+ pages: nonNegInt,
3753
+ /** Each page read, in order (an image-only page has empty text: OCR it). */
3754
+ read: z40.array(DocumentsPdfPage),
3755
+ truncated: z40.boolean(),
3756
+ title: z40.string().nullable(),
3757
+ author: z40.string().nullable()
3758
+ });
3759
+ var DocumentsOcrParams = z40.strictObject({
3760
+ path: AbsPath,
3761
+ /** BCP-47 language hints ("en-US", "fr-FR"); absent: the OS's own choice. */
3762
+ languages: z40.array(z40.string().min(2).max(16)).max(8).optional(),
3763
+ /** Faster, less accurate. */
3764
+ fast: z40.boolean().default(false)
3765
+ });
3766
+ var DocumentsOcrLine = z40.strictObject({
3767
+ text: z40.string(),
3768
+ /** 0–1; null where the engine does not say. */
3769
+ confidence: z40.number().min(0).max(1).nullable()
3770
+ });
3771
+ var DocumentsOcrResult = z40.strictObject({
3772
+ text: z40.string(),
3773
+ lines: z40.array(DocumentsOcrLine),
3774
+ truncated: z40.boolean(),
3775
+ /** Which engine read it ("vision" on macOS, "windows-ocr", "tesseract"). */
3776
+ engine: z40.string()
3777
+ });
3778
+ var DocumentsImageResizeParams = z40.strictObject({
3779
+ path: AbsPath,
3780
+ /** Where to write it; absent: next to the original, "<name>-resized.<ext>". */
3781
+ out_path: AbsPath.optional(),
3782
+ /** The longest side, kept in proportion; absent: the size stays (a format change only). */
3783
+ max_size: z40.int().min(1).max(32768).optional(),
3784
+ format: z40.enum(["png", "jpeg", "tiff", "heic", "bmp", "gif"]).optional(),
3785
+ overwrite: z40.boolean().default(false)
3786
+ });
3787
+ var DocumentsImageResizeResult = z40.strictObject({
3788
+ path: z40.string(),
3789
+ width: nonNegInt,
3790
+ height: nonNegInt,
3791
+ bytes: nonNegInt
3792
+ });
3793
+ var DocumentsParagraph = z40.strictObject({
3794
+ style: z40.enum(["title", "heading1", "heading2", "heading3", "body", "bullet", "numbered", "quote", "code"]).default("body"),
3795
+ text: z40.string().max(1e5)
3796
+ });
3797
+ var DocumentsSheet = z40.strictObject({
3798
+ name: z40.string().min(1).max(31),
3799
+ /** Rows of cells; the first row is the header when `header` is true. */
3800
+ rows: z40.array(z40.array(z40.union([z40.string().max(32767), z40.number(), z40.boolean(), z40.null()])).max(16384)).max(1e5),
3801
+ header: z40.boolean().default(true)
3802
+ });
3803
+ var DocumentsOfficeGenerateParams = z40.strictObject({
3804
+ kind: z40.enum(["docx", "xlsx"]),
3805
+ path: AbsPath,
3806
+ title: z40.string().max(1024).optional(),
3807
+ /** docx: the document's paragraphs, in order. */
3808
+ paragraphs: z40.array(DocumentsParagraph).max(5e4).optional(),
3809
+ /** xlsx: the workbook's sheets, in order. */
3810
+ sheets: z40.array(DocumentsSheet).min(1).max(64).optional(),
3811
+ overwrite: z40.boolean().default(false)
3812
+ });
3813
+ var DocumentsOfficeGenerateResult = z40.strictObject({ path: z40.string(), bytes: nonNegInt });
3814
+ var EntitiesNerParams = z40.strictObject({
3815
+ text: z40.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
3816
+ /** Which kinds to keep; absent: all three. */
3817
+ labels: z40.array(z40.enum(["person", "place", "organization"])).min(1).max(3).optional()
3818
+ });
3819
+ var EntitySpan = z40.strictObject({
3820
+ text: z40.string(),
3821
+ label: z40.string(),
3822
+ /** Character offsets into the text (UTF-16, as JavaScript counts). */
3823
+ start: nonNegInt,
3824
+ end: nonNegInt
3825
+ });
3826
+ var EntitiesNerResult = z40.strictObject({ entities: z40.array(EntitySpan), engine: z40.string() });
3827
+ var PiiKind = z40.enum(["email", "phone", "credit_card", "us_ssn", "iban", "ip_address", "url", "api_key"]);
3828
+ var EntitiesPiiParams = z40.strictObject({
3829
+ text: z40.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
3830
+ kinds: z40.array(PiiKind).min(1).max(8).optional(),
3831
+ /** Also answer the text with each finding replaced by its kind ("[email]"). */
3832
+ redact: z40.boolean().default(false)
3833
+ });
3834
+ var EntitiesPiiResult = z40.strictObject({
3835
+ findings: z40.array(z40.strictObject({ kind: PiiKind, text: z40.string(), start: nonNegInt, end: nonNegInt })),
3836
+ redacted: z40.string().nullable()
3837
+ });
3838
+
2782
3839
  // src/schema/registry.ts
2783
3840
  var FS_ERR = ["NOT_FOUND", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "RESOURCE_BUSY", "INTERNAL"];
2784
3841
  var OPS = {
@@ -2910,6 +3967,36 @@ var OPS = {
2910
3967
  "apps.windows.shown": { params: AppsWindowsShownParams, result: AppsWindowsShownResult, kind: "unary", since: "1.21", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2911
3968
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
2912
3969
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] },
3970
+ // Code from anywhere (1.38): the coding engine's sessions, read and driven over any transport.
3971
+ "coding.providers": { params: CodingProvidersParams, result: CodingProvidersResult, kind: "unary", since: "1.38", errors: ["INTERNAL"] },
3972
+ "coding.sessions.list": { params: CodingSessionsListParams, result: CodingSessionsListResult, kind: "unary", since: "1.38", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
3973
+ "coding.discover": { params: CodingDiscoverParams, result: CodingDiscoverResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
3974
+ "coding.runs.list": { params: CodingRunsListParams, result: CodingRunsListResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "INTERNAL"] },
3975
+ "coding.history": { params: CodingHistoryParams, result: CodingHistoryResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3976
+ "coding.transcript.read": { params: CodingTranscriptReadParams, result: CodingTranscriptReadResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3977
+ "coding.item.full": { params: CodingItemFullParams, result: CodingItemFullResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "PAYLOAD_TOO_LARGE", "INTERNAL"] },
3978
+ "coding.activity": { params: CodingActivityParams, result: CodingActivityResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "INTERNAL"] },
3979
+ "coding.folders.recent": { params: CodingFoldersRecentParams, result: CodingFoldersRecentResult, kind: "unary", since: "1.38", errors: ["INTERNAL"] },
3980
+ "coding.folders.check": { params: CodingFoldersCheckParams, result: CodingFoldersCheckResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "AUTH_FORBIDDEN", "INTERNAL"] },
3981
+ "coding.folders.create": { params: CodingFoldersCreateParams, result: CodingFoldersCreateResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INTERNAL"] },
3982
+ "coding.start": { params: CodingStartParams, result: CodingStartResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "AUTH_FORBIDDEN", "RATE_LIMITED", "INTERNAL"] },
3983
+ "coding.takeover": { params: CodingTakeoverParams, result: CodingTakeoverResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "RESOURCE_BUSY", "AUTH_FORBIDDEN", "INTERNAL"] },
3984
+ "coding.send": { params: CodingSendParams, result: CodingSendResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "RATE_LIMITED", "INTERNAL"] },
3985
+ "coding.stop": { params: CodingStopParams, result: CodingStopResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "INTERNAL"] },
3986
+ "coding.stop_elsewhere": { params: CodingStopElsewhereParams, result: CodingStopElsewhereResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "INTERNAL"] },
3987
+ "coding.options.set": { params: CodingOptionsSetParams, result: CodingOptionsSetResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3988
+ "coding.agent.set": { params: CodingAgentSetParams, result: CodingAgentSetResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "AUTH_FORBIDDEN", "INTERNAL"] },
3989
+ "coding.agents.access": { params: CodingAgentsAccessParams, result: CodingAgentsAccessResult, kind: "unary", since: "1.38", errors: ["INTERNAL"] },
3990
+ "coding.titles.status": { params: CodingTitlesStatusParams, result: CodingTitlesStatusResult, kind: "unary", since: "1.38", errors: ["INTERNAL"] },
3991
+ "coding.prefs.list": { params: CodingPrefsListParams, result: CodingPrefsListResult, kind: "unary", since: "1.38", errors: ["INTERNAL"] },
3992
+ "coding.prefs.set": { params: CodingPrefsSetParams, result: CodingPrefsSetResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "INTERNAL"] },
3993
+ "coding.recent.seen": { params: CodingRecentSeenParams, result: CodingRecentSeenResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "INTERNAL"] },
3994
+ "coding.search": { params: CodingSearchParams, result: CodingSearchResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "TIMEOUT", "INTERNAL"] },
3995
+ "coding.reconcile": { params: CodingReconcileParams, result: CodingReconcileResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "RESOURCE_BUSY", "CANCELLED", "INTERNAL"] },
3996
+ "coding.transcript.raw": { params: CodingTranscriptRawParams, result: CodingTranscriptRawResult, kind: "stream", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "CANCELLED", "INTERNAL"] },
3997
+ "coding.watch": { params: CodingWatchParams, result: CodingWatchResult, kind: "resource", since: "1.38", errors: ["PLATFORM_UNSUPPORTED", "RATE_LIMITED", "INTERNAL"] },
3998
+ "coding.session.watch": { params: CodingSessionWatchParams, result: CodingSessionWatchResult, kind: "resource", since: "1.38", errors: ["INVALID_PARAMS", "NOT_FOUND", "RATE_LIMITED", "INTERNAL"] },
3999
+ "session.identify": { params: SessionIdentifyParams, result: SessionIdentifyResult, kind: "unary", since: "1.38", errors: ["INVALID_PARAMS"] },
2913
4000
  // 1.22: git for agents (core `git`, the system git; the cloud sandbox's /git/* set, SPEC 6.1).
2914
4001
  "git.status": { params: GitStatusParams, result: GitStatusResult, kind: "unary", since: "1.22", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
2915
4002
  "git.diff": { params: GitDiffParams, result: GitDiffResult, kind: "unary", since: "1.22", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
@@ -2930,6 +4017,10 @@ var OPS = {
2930
4017
  "account.agents.list": { params: AccountAgentsListParams, result: AccountAgentsListResult, kind: "unary", since: "1.23", errors: ["INTERNAL"] },
2931
4018
  "account.vault.list": { params: AccountVaultListParams, result: AccountVaultListResult, kind: "unary", since: "1.23", errors: ["INTERNAL"] },
2932
4019
  "account.vault.copy": { params: AccountVaultCopyParams, result: AccountVaultCopyResult, kind: "unary", since: "1.23", errors: ["AUTH_REQUIRED", "AUTH_FORBIDDEN", "NOT_FOUND", "INVALID_PARAMS", "DEVICE_OFFLINE", "INTERNAL"] },
4020
+ // 1.39: one agent opened (its inputs and what it uses), its runs (mandate.run_history, one agent at a time) and its star.
4021
+ "account.agents.get": { params: AccountAgentsGetParams, result: AccountAgentsGetResult, kind: "unary", since: "1.39", errors: ["INVALID_PARAMS", "INTERNAL"] },
4022
+ "account.agents.runs": { params: AccountAgentsRunsParams, result: AccountAgentsRunsResult, kind: "unary", since: "1.39", errors: ["INVALID_PARAMS", "INTERNAL"] },
4023
+ "account.agents.favorite": { params: AccountAgentsFavoriteParams, result: AccountAgentsFavoriteResult, kind: "unary", since: "1.39", errors: ["AUTH_REQUIRED", "NOT_FOUND", "INVALID_PARAMS", "DEVICE_OFFLINE", "INTERNAL"] },
2933
4024
  // 1.26: the app's own update (it installs only once every window quit) and bringing the windows back.
2934
4025
  "apps.windows.update_state": { params: AppsWindowsUpdateStateParams, result: AppsWindowsUpdateStateResult, kind: "unary", since: "1.26", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2935
4026
  "apps.windows.reopen": { params: AppsWindowsReopenParams, result: AppsWindowsReopenResult, kind: "unary", since: "1.26", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
@@ -2943,7 +4034,55 @@ var OPS = {
2943
4034
  "browser.set_enabled": { params: BrowserSetEnabledParams, result: BrowserSetEnabledResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2944
4035
  "browser.pair_code": { params: BrowserPairCodeParams, result: BrowserPairCodeResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2945
4036
  "browser.pair_reset": { params: BrowserPairResetParams, result: BrowserPairCodeResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2946
- "browser.call": { params: BrowserCallParams, result: BrowserCallResult, kind: "unary", since: "1.28", errors: ["NOT_FOUND", "CONFLICT", "AUTH_FORBIDDEN", "INVALID_PARAMS", "TIMEOUT", "CANCELLED", "RESOURCE_GONE", "PAYLOAD_TOO_LARGE", "INTERNAL"] }
4037
+ "browser.tool_metrics": { params: BrowserToolMetricsParams, result: BrowserToolMetricsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
4038
+ "browser.reset_counters": { params: BrowserResetCountersParams, result: BrowserResetCountersResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
4039
+ "browser.log": { params: BrowserLogParams, result: BrowserLogResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
4040
+ "browser.call": { params: BrowserCallParams, result: BrowserCallResult, kind: "unary", since: "1.28", errors: ["NOT_FOUND", "CONFLICT", "AUTH_FORBIDDEN", "INVALID_PARAMS", "TIMEOUT", "CANCELLED", "RESOURCE_GONE", "PAYLOAD_TOO_LARGE", "INTERNAL"] },
4041
+ // 1.37: Matrx Local's remaining sidecar tools in the core (net, automation, the person's apps,
4042
+ // Windows administration, schedules, local notes, documents and entities).
4043
+ "net.info": { params: NetInfoParams, result: NetInfoResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
4044
+ "net.wifi": { params: NetWifiParams, result: NetWifiResult, kind: "unary", since: "1.37", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4045
+ "net.bluetooth": { params: NetBluetoothParams, result: NetBluetoothResult, kind: "unary", since: "1.37", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4046
+ "net.devices": { params: NetDevicesParams, result: NetDevicesResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4047
+ "net.mdns": { params: NetMdnsParams, result: NetMdnsResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4048
+ "net.scan": { params: NetScanParams, result: NetScanResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "AUTH_FORBIDDEN", "TIMEOUT", "INTERNAL"] },
4049
+ "net.download": { params: NetDownloadParams, result: NetDownloadResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "PAYLOAD_TOO_LARGE", "TIMEOUT", "INTERNAL"] },
4050
+ "automation.script": { params: AutomationScriptParams, result: AutomationScriptResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4051
+ "mail.accounts": { params: MailAccountsParams, result: MailAccountsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4052
+ "mail.list": { params: MailListParams, result: MailListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4053
+ "mail.send": { params: MailSendParams, result: MailSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4054
+ "messages.chats": { params: MessagesChatsParams, result: MessagesChatsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4055
+ "messages.list": { params: MessagesListParams, result: MessagesListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4056
+ "messages.send": { params: MessagesSendParams, result: MessagesSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4057
+ "contacts.search": { params: ContactsSearchParams, result: ContactsSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4058
+ "contacts.get": { params: ContactsGetParams, result: ContactsGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4059
+ "calendar.list": { params: CalendarListParams, result: CalendarListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4060
+ "calendar.create": { params: CalendarCreateParams, result: CalendarCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4061
+ "reminders.list": { params: RemindersListParams, result: RemindersListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4062
+ "reminders.create": { params: RemindersCreateParams, result: RemindersCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4063
+ "photos.search": { params: PhotosSearchParams, result: PhotosSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4064
+ "photos.get": { params: PhotosGetParams, result: PhotosGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4065
+ "location.get": { params: LocationGetParams, result: LocationGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4066
+ "windows.registry_read": { params: WindowsRegistryReadParams, result: WindowsRegistryReadResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4067
+ "windows.registry_write": { params: WindowsRegistryWriteParams, result: WindowsRegistryWriteResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4068
+ "windows.services": { params: WindowsServicesParams, result: WindowsServicesResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4069
+ "windows.service_control": { params: WindowsServiceControlParams, result: WindowsServiceControlResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4070
+ "windows.event_log": { params: WindowsEventLogParams, result: WindowsEventLogResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4071
+ "windows.features": { params: WindowsFeaturesParams, result: WindowsFeaturesResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4072
+ "schedule.create": { params: ScheduleCreateParams, result: ScheduleCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
4073
+ "schedule.list": { params: ScheduleListParams, result: ScheduleListResult, kind: "unary", since: "1.37", errors: ["INTERNAL"] },
4074
+ "schedule.cancel": { params: ScheduleCancelParams, result: ScheduleCancelResult, kind: "unary", since: "1.37", errors: ["NOT_FOUND", "INTERNAL"] },
4075
+ "notes.folders": { params: NotesFoldersParams, result: NotesFoldersResult, kind: "unary", since: "1.37", errors: ["INTERNAL"] },
4076
+ "notes.list": { params: NotesListParams, result: NotesListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
4077
+ "notes.read": { params: NotesReadParams, result: NotesReadResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
4078
+ "notes.write": { params: NotesWriteParams, result: NotesWriteResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "CONFLICT", "PERMISSION_DENIED_OS", "INTERNAL"] },
4079
+ "notes.search": { params: NotesSearchParams, result: NotesSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "INTERNAL"] },
4080
+ "documents.pdf_text": { params: DocumentsPdfTextParams, result: DocumentsPdfTextResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4081
+ "documents.ocr": { params: DocumentsOcrParams, result: DocumentsOcrResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4082
+ "documents.image_resize": { params: DocumentsImageResizeParams, result: DocumentsImageResizeResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4083
+ "documents.office_generate": { params: DocumentsOfficeGenerateParams, result: DocumentsOfficeGenerateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "INTERNAL"] },
4084
+ "entities.ner": { params: EntitiesNerParams, result: EntitiesNerResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4085
+ "entities.pii": { params: EntitiesPiiParams, result: EntitiesPiiResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "INTERNAL"] }
2947
4086
  };
2948
4087
  var EVENTS = {
2949
4088
  "fs.changed": FsChangedEvent,
@@ -2955,6 +4094,10 @@ var EVENTS = {
2955
4094
  "session.control_changed": SessionControlChangedEvent,
2956
4095
  "models.progress": ModelsProgressEvent,
2957
4096
  "coding.history.progress": CodingHistoryProgressEvent,
4097
+ "coding.changed": CodingChangedEvent,
4098
+ "coding.watch_state": CodingWatchStateEvent,
4099
+ "coding.item": CodingItemEvent,
4100
+ "coding.gap": CodingGapEvent,
2958
4101
  "relay.device_status": RelayDeviceStatusEvent,
2959
4102
  "relay.auth_expiring": RelayAuthExpiringEvent,
2960
4103
  "diag.errors.changed": DiagErrorsChangedEvent,
@@ -3129,6 +4272,91 @@ var NAMED_SCHEMAS = {
3129
4272
  CodingHistoryImportMissingParams,
3130
4273
  CodingHistoryImportMissingResult,
3131
4274
  CodingHistoryProgressEvent,
4275
+ CodingProviderName,
4276
+ CodingRunStatus,
4277
+ CodingClientRequestId,
4278
+ CodingRunUsage,
4279
+ CodingStartedBy,
4280
+ CodingRunRecord,
4281
+ CodingSessionAgentPart,
4282
+ CodingSessionAgent,
4283
+ CodingSessionRecord,
4284
+ CodingActiveElsewhere,
4285
+ CodingDiscoveredChat,
4286
+ CodingTranscriptItem,
4287
+ CodingHistoryRecord,
4288
+ CodingQuotaWindow,
4289
+ CodingProviderProblem,
4290
+ CodingProviderBinary,
4291
+ CodingProviderStatus,
4292
+ CodingChatPreference,
4293
+ CodingTitleStatus,
4294
+ CodingRecentRow,
4295
+ CodingFolderCheck,
4296
+ CodingRecentFolder,
4297
+ CodingAgentSelectionParams,
4298
+ CodingSendResult,
4299
+ CodingProvidersParams,
4300
+ CodingProvidersResult,
4301
+ CodingSessionsListParams,
4302
+ CodingSessionsListResult,
4303
+ CodingDiscoverParams,
4304
+ CodingDiscoverResult,
4305
+ CodingRunsListParams,
4306
+ CodingRunsListResult,
4307
+ CodingHistoryParams,
4308
+ CodingHistoryResult,
4309
+ CodingTranscriptReadParams,
4310
+ CodingTranscriptReadResult,
4311
+ CodingItemFullParams,
4312
+ CodingItemFullResult,
4313
+ CodingActivityParams,
4314
+ CodingActivityResult,
4315
+ CodingFoldersRecentParams,
4316
+ CodingFoldersRecentResult,
4317
+ CodingFoldersCheckParams,
4318
+ CodingFoldersCheckResult,
4319
+ CodingFoldersCreateParams,
4320
+ CodingFoldersCreateResult,
4321
+ CodingStartParams,
4322
+ CodingStartResult,
4323
+ CodingTakeoverParams,
4324
+ CodingTakeoverResult,
4325
+ CodingSendParams,
4326
+ CodingStopParams,
4327
+ CodingStopResult,
4328
+ CodingStopElsewhereParams,
4329
+ CodingStopElsewhereResult,
4330
+ CodingOptionsSetParams,
4331
+ CodingOptionsSetResult,
4332
+ CodingAgentSetParams,
4333
+ CodingAgentSetResult,
4334
+ CodingAgentsAccessParams,
4335
+ CodingAgentsAccessResult,
4336
+ CodingTitlesStatusParams,
4337
+ CodingTitlesStatusResult,
4338
+ CodingPrefsListParams,
4339
+ CodingPrefsListResult,
4340
+ CodingPrefsSetParams,
4341
+ CodingPrefsSetResult,
4342
+ CodingRecentSeenParams,
4343
+ CodingRecentSeenResult,
4344
+ CodingSearchParams,
4345
+ CodingSearchResult,
4346
+ CodingReconcileParams,
4347
+ CodingReconcileResult,
4348
+ CodingTranscriptRawParams,
4349
+ CodingTranscriptRawResult,
4350
+ CodingWatchParams,
4351
+ CodingWatchResult,
4352
+ CodingSessionWatchParams,
4353
+ CodingSessionWatchResult,
4354
+ SessionIdentifyParams,
4355
+ SessionIdentifyResult,
4356
+ CodingChangedEvent,
4357
+ CodingWatchStateEvent,
4358
+ CodingItemEvent,
4359
+ CodingGapEvent,
3132
4360
  ServiceName,
3133
4361
  ContractHash,
3134
4362
  ServiceToken,
@@ -3438,6 +4666,17 @@ var NAMED_SCHEMAS = {
3438
4666
  AccountVaultListResult,
3439
4667
  AccountVaultCopyParams,
3440
4668
  AccountVaultCopyResult,
4669
+ AccountAgentVariable,
4670
+ AccountAgentDetail,
4671
+ AccountAgentsGetParams,
4672
+ AccountAgentsGetResult,
4673
+ AccountAgentRunStatus,
4674
+ AccountAgentRun,
4675
+ AccountAgentRunSort,
4676
+ AccountAgentsRunsParams,
4677
+ AccountAgentsRunsResult,
4678
+ AccountAgentsFavoriteParams,
4679
+ AccountAgentsFavoriteResult,
3441
4680
  AppsWindowsUpdateStateParams,
3442
4681
  AppsWindowsUpdateStateResult,
3443
4682
  AppsWindowsReopenParams,
@@ -3472,7 +4711,133 @@ var NAMED_SCHEMAS = {
3472
4711
  BrowserProgressEvent,
3473
4712
  DesktopHealth,
3474
4713
  BrowserPairRequest,
3475
- BrowserPairResult
4714
+ BrowserPairResult,
4715
+ BrowserToolMetricsParams,
4716
+ BrowserToolMetric,
4717
+ BrowserToolMetricsResult,
4718
+ BrowserResetCountersParams,
4719
+ BrowserResetCountersResult,
4720
+ BrowserLogParams,
4721
+ BrowserLogMessage,
4722
+ BrowserLogResult,
4723
+ NetInfoParams,
4724
+ NetAddress,
4725
+ NetInterface,
4726
+ NetInfoResult,
4727
+ NetWifiParams,
4728
+ NetWifiNetwork,
4729
+ NetWifiResult,
4730
+ NetBluetoothParams,
4731
+ NetBluetoothDevice,
4732
+ NetBluetoothResult,
4733
+ NetDevicesParams,
4734
+ NetDevice,
4735
+ NetDevicesResult,
4736
+ NetMdnsParams,
4737
+ NetMdnsService,
4738
+ NetMdnsResult,
4739
+ NetScanParams,
4740
+ NetScanResult,
4741
+ NetDownloadParams,
4742
+ NetDownloadResult,
4743
+ AutomationScriptParams,
4744
+ AutomationScriptResult,
4745
+ MailAccountsParams,
4746
+ MailAccount,
4747
+ MailAccountsResult,
4748
+ MailListParams,
4749
+ MailMessage,
4750
+ MailListResult,
4751
+ MailSendParams,
4752
+ MailSendResult,
4753
+ MessagesChatsParams,
4754
+ MessagesChat,
4755
+ MessagesChatsResult,
4756
+ MessagesListParams,
4757
+ MessagesMessage,
4758
+ MessagesListResult,
4759
+ MessagesSendParams,
4760
+ MessagesSendResult,
4761
+ ContactsSearchParams,
4762
+ ContactLabeled,
4763
+ ContactSummary,
4764
+ ContactsSearchResult,
4765
+ ContactsGetParams,
4766
+ ContactDetail,
4767
+ ContactsGetResult,
4768
+ CalendarListParams,
4769
+ CalendarEvent,
4770
+ CalendarListResult,
4771
+ CalendarCreateParams,
4772
+ CalendarCreateResult,
4773
+ RemindersListParams,
4774
+ Reminder,
4775
+ RemindersListResult,
4776
+ RemindersCreateParams,
4777
+ RemindersCreateResult,
4778
+ PhotosSearchParams,
4779
+ Photo,
4780
+ PhotosSearchResult,
4781
+ PhotosGetParams,
4782
+ PhotosGetResult,
4783
+ LocationGetParams,
4784
+ LocationGetResult,
4785
+ RegistryValueType,
4786
+ WindowsRegistryReadParams,
4787
+ RegistryValue,
4788
+ WindowsRegistryReadResult,
4789
+ WindowsRegistryWriteParams,
4790
+ WindowsRegistryWriteResult,
4791
+ WindowsServicesParams,
4792
+ WindowsService,
4793
+ WindowsServicesResult,
4794
+ WindowsServiceControlParams,
4795
+ WindowsServiceControlResult,
4796
+ WindowsEventLogParams,
4797
+ WindowsEvent,
4798
+ WindowsEventLogResult,
4799
+ WindowsFeaturesParams,
4800
+ WindowsFeature,
4801
+ WindowsFeaturesResult,
4802
+ ScheduleCreateParams,
4803
+ ScheduleRun,
4804
+ ScheduledTask,
4805
+ ScheduleCreateResult,
4806
+ ScheduleListParams,
4807
+ ScheduleListResult,
4808
+ ScheduleCancelParams,
4809
+ ScheduleCancelResult,
4810
+ NotesFoldersParams,
4811
+ NotesFolder,
4812
+ NotesFoldersResult,
4813
+ NotesListParams,
4814
+ NoteEntry,
4815
+ NotesListResult,
4816
+ NotesReadParams,
4817
+ NotesReadResult,
4818
+ NotesWriteParams,
4819
+ NotesWriteResult,
4820
+ NotesSearchParams,
4821
+ NotesMatch,
4822
+ NotesSearchResult,
4823
+ DocumentsPdfTextParams,
4824
+ DocumentsPdfPage,
4825
+ DocumentsPdfTextResult,
4826
+ DocumentsOcrParams,
4827
+ DocumentsOcrLine,
4828
+ DocumentsOcrResult,
4829
+ DocumentsImageResizeParams,
4830
+ DocumentsImageResizeResult,
4831
+ DocumentsParagraph,
4832
+ DocumentsSheet,
4833
+ DocumentsOfficeGenerateParams,
4834
+ DocumentsOfficeGenerateResult,
4835
+ EntitiesNerParams,
4836
+ EntitySpan,
4837
+ EntitiesNerResult,
4838
+ PiiKind,
4839
+ EntitiesPiiParams,
4840
+ EntitiesPiiResult
3476
4841
  };
3477
4842
 
3478
4843
  // src/versioning.ts
@@ -3494,9 +4859,10 @@ var FIELDS_SINCE = {
3494
4859
  PowerStatusResult: { energy: "1.24" },
3495
4860
  AppsSpendResult: { days: "1.24" },
3496
4861
  AppsWindowsUpdateStateResult: { closed_by_update: "1.27" },
3497
- AppsProjectsToWindowParams: { pin: "1.32" },
4862
+ AppsProjectsToWindowParams: { pin: "1.32", chat_ids: "1.36", take_off_from: "1.36" },
3498
4863
  AppsProjectsToWindowResult: { pin: "1.32" },
3499
- AppsChatsTitlesCheckResult: { stale_windows: "1.33" }
4864
+ AppsChatsTitlesCheckResult: { stale_windows: "1.33" },
4865
+ AccountAgent: { tags: "1.39", model_id: "1.39", access_level: "1.39", organization_id: "1.39", origin: "1.39", is_archived: "1.39", orchestra: "1.39" }
3500
4866
  };
3501
4867
  var NULL_SINCE = {
3502
4868
  "RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
@@ -3513,7 +4879,8 @@ var REASONS_SINCE = {
3513
4879
  browser_ambiguous: "1.28",
3514
4880
  browser_account_mismatch: "1.28",
3515
4881
  browser_connection_off: "1.28",
3516
- awaiting_confirmation: "1.28"
4882
+ awaiting_confirmation: "1.28",
4883
+ tool_disabled_on_device: "1.34"
3517
4884
  };
3518
4885
  function statusForPeer(status, version) {
3519
4886
  const rule = NULL_SINCE["RelayDeviceStatusEvent.since_ms"];
@@ -3571,7 +4938,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
3571
4938
  ["apps.chats.place", [["chat", "ChatRow"]]],
3572
4939
  ["apps.accounts.usage", [["accounts", "AccountUsage"]]],
3573
4940
  ["resources.snapshot", [["disks", "ResourcesDisk"]]],
3574
- ["stack.state", [["servers", "StackServer"]]]
4941
+ ["stack.state", [["servers", "StackServer"]]],
4942
+ ["account.agents.list", [["agents", "AccountAgent"]]]
3575
4943
  ]);
3576
4944
  function stripNested(value, nested, version) {
3577
4945
  if (value === null || typeof value !== "object" || Array.isArray(value)) return value;
@@ -3632,7 +5000,7 @@ function forPeer(op, part, value, version) {
3632
5000
  var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
3633
5001
 
3634
5002
  // src/contract.ts
3635
- var CONTRACT_SHA256 = "04a029fc56c9405f376906fc981659997f4617c98bd0b88bb052d1f6d587a7a2";
5003
+ var CONTRACT_SHA256 = "542bc69319741eea52154d413b4fe974ee5a56f7aef351e78b866b0562e82753";
3636
5004
 
3637
5005
  // src/close-policy.ts
3638
5006
  var CLOSE_RULES = {
@@ -3696,25 +5064,31 @@ var TOOL_CATALOG = [
3696
5064
  { name: "desktop_power", group: "os_control", state: "built", path: "device_op", ops: ["power.status", "power.history", "power.prevent_sleep"], platforms: ALL, summary: "Battery and keep awake" },
3697
5065
  { name: "desktop_resources", group: "os_control", state: "built", path: "device_op", ops: ["resources.snapshot", "resources.activity", "resources.stop_job", "resources.incidents"], platforms: ALL, summary: "CPU, memory and disk use; what is using them, grouped into jobs; stop a job; the slowdown log" },
3698
5066
  { name: "fs_watch", group: "os_control", state: "built", path: "device_op", ops: ["fs.watch.start", "fs.watch.events", "fs.watch.stop"], platforms: ALL, summary: "Watch a folder; read what changed" },
3699
- // ── 3. Personal apps and automation ──────────────────────────────────────────────────────────
3700
- { name: "desktop_automation", group: "personal_automation", state: "planned", path: "device_op", ops: ["automation.script"], platforms: ["darwin", "win32"], summary: "AppleScript on a Mac, PowerShell on Windows" },
3701
- { name: "desktop_mail", group: "personal_automation", state: "planned", path: "device_op", ops: ["mail.accounts", "mail.list", "mail.send"], platforms: ["darwin"], summary: "The Mail app" },
3702
- { name: "desktop_messages", group: "personal_automation", state: "planned", path: "device_op", ops: ["messages.conversations", "messages.list", "messages.send"], platforms: ["darwin"], summary: "The Messages app" },
3703
- { name: "desktop_contacts", group: "personal_automation", state: "planned", path: "device_op", ops: ["contacts.search", "contacts.get"], platforms: ["darwin"], summary: "Contacts" },
3704
- { name: "desktop_calendar", group: "personal_automation", state: "planned", path: "device_op", ops: ["calendar.list", "calendar.create", "reminders.list", "reminders.create"], platforms: ["darwin"], summary: "Calendar and reminders" },
3705
- { name: "desktop_photos", group: "personal_automation", state: "planned", path: "device_op", ops: ["photos.search", "photos.get"], platforms: ["darwin"], summary: "Photos library" },
3706
- { name: "desktop_location", group: "personal_automation", state: "planned", path: "device_op", ops: ["location.get"], platforms: ["darwin", "win32"], summary: "Where the computer is" },
3707
- { name: "desktop_net", group: "personal_automation", state: "planned", path: "device_op", ops: ["net.info", "net.wifi", "net.bluetooth", "net.devices", "net.mdns", "net.scan", "net.download"], platforms: ALL, summary: "Local network and downloads" },
3708
- // ── 4. Python `tools` service ────────────────────────────────────────────────────────────────
3709
- { name: "desktop_documents", group: "tools_service", state: "planned", path: "device_op", ops: ["tools.pdf_extract", "tools.office_generate", "tools.ocr", "tools.image_resize"], platforms: ALL, summary: "PDF text, Office files, OCR, images" },
5067
+ // ── 3. Personal apps and automation (1.37: the core's `automation`, `personal`, `net` and `schedule` owners) ──
5068
+ { name: "desktop_automation", group: "personal_automation", state: "built", path: "device_op", ops: ["automation.script"], platforms: ["darwin", "win32"], summary: "AppleScript or JavaScript for Automation on a Mac, PowerShell on Windows" },
5069
+ { name: "desktop_mail", group: "personal_automation", state: "built", path: "device_op", ops: ["mail.accounts", "mail.list", "mail.send"], platforms: ["darwin"], summary: "The Mail app: accounts, messages, send" },
5070
+ { name: "desktop_messages", group: "personal_automation", state: "built", path: "device_op", ops: ["messages.chats", "messages.list", "messages.send"], platforms: ["darwin"], summary: "The Messages app: chats, messages, send" },
5071
+ { name: "desktop_contacts", group: "personal_automation", state: "built", path: "device_op", ops: ["contacts.search", "contacts.get"], platforms: ["darwin"], summary: "Contacts: search, one card" },
5072
+ { name: "desktop_calendar", group: "personal_automation", state: "built", path: "device_op", ops: ["calendar.list", "calendar.create", "reminders.list", "reminders.create"], platforms: ["darwin"], summary: "Calendar and Reminders: list and add" },
5073
+ { name: "desktop_photos", group: "personal_automation", state: "built", path: "device_op", ops: ["photos.search", "photos.get"], platforms: ["darwin"], summary: "The Photos library: find, export an original" },
5074
+ { name: "desktop_location", group: "personal_automation", state: "built", path: "device_op", ops: ["location.get"], platforms: ["darwin", "win32"], summary: "Where the computer is (the OS's location service)" },
5075
+ { name: "desktop_net", group: "personal_automation", state: "built", path: "device_op", ops: ["net.info", "net.wifi", "net.bluetooth", "net.devices", "net.mdns", "net.scan", "net.download"], platforms: ALL, summary: "Local network, Wi-Fi, Bluetooth, open ports and downloads" },
5076
+ { name: "desktop_schedule", group: "personal_automation", state: "built", path: "device_op", ops: ["schedule.create", "schedule.list", "schedule.cancel"], platforms: ALL, summary: "Run a tool's op on this computer on an interval; list and cancel" },
5077
+ // 1.38, code from anywhere: the person's Claude Code and Codex sessions on this computer. Turning
5078
+ // either off in Agents › Tools refuses its ops on every relay connection (the existing switch).
5079
+ { name: "coding_sessions_read", group: "personal_automation", state: "built", path: "device_op", ops: ["coding.providers", "coding.sessions.list", "coding.discover", "coding.runs.list", "coding.history", "coding.transcript.read", "coding.item.full", "coding.activity", "coding.folders.recent", "coding.folders.check", "coding.agents.access", "coding.titles.status", "coding.prefs.list", "coding.recent.seen", "coding.search", "coding.transcript.raw", "coding.watch", "coding.session.watch"], platforms: ALL, summary: "Claude Code and Codex sessions: list, read live, search, download" },
5080
+ { name: "coding_sessions_drive", group: "personal_automation", state: "built", path: "device_op", ops: ["coding.start", "coding.takeover", "coding.send", "coding.stop", "coding.stop_elsewhere", "coding.options.set", "coding.agent.set", "coding.folders.create", "coding.prefs.set", "coding.reconcile"], platforms: ALL, summary: "Claude Code and Codex sessions: start, send, stop, take over, rename" },
5081
+ // ── 4. Documents, notes and entities (1.37: the core's `documents` and `notes` owners; desktop_web is the `tools` service) ──
5082
+ { name: "desktop_documents", group: "tools_service", state: "built", path: "device_op", ops: ["documents.pdf_text", "documents.ocr", "documents.image_resize", "documents.office_generate"], platforms: ALL, summary: "PDF text, OCR, images, Word and Excel files" },
3710
5083
  { name: "desktop_web", group: "tools_service", state: "built", path: "device_op", ops: ["web.fetch", "web.scrape", "web.search", "web.fetch_with_browser"], platforms: ALL, summary: "Fetch, scrape and search the web from this computer's own connection" },
3711
- { name: "desktop_entities", group: "tools_service", state: "planned", path: "device_op", ops: ["tools.ner", "tools.pii"], platforms: ALL, summary: "Names and private data, found on the device" },
5084
+ { name: "desktop_entities", group: "tools_service", state: "built", path: "device_op", ops: ["entities.ner", "entities.pii"], platforms: ALL, summary: "Names, places, organizations and private data, found on the device" },
5085
+ { name: "desktop_notes", group: "files_shell", state: "built", path: "device_op", ops: ["notes.folders", "notes.list", "notes.read", "notes.write", "notes.search"], platforms: ALL, summary: "The person's local notes (Documents/Matrx/Notes): list, read, write, search" },
3712
5086
  // ── 5. Python `ml` service ───────────────────────────────────────────────────────────────────
3713
5087
  // Built: models.transcribe through local_proxy's POST /op/{cap.op} (matrx-ai implementations/desktop.py).
3714
5088
  // Whisper detects the language itself, so matrx-local's speech_locales needs no op of its own.
3715
5089
  { name: "desktop_transcribe", group: "ml_service", state: "built", path: "device_op", ops: ["models.transcribe"], platforms: ALL, summary: "Speech to text on the device" },
3716
5090
  // ── 6. Windows administration ────────────────────────────────────────────────────────────────
3717
- { name: "desktop_windows_admin", group: "windows_admin", state: "planned", path: "device_op", ops: ["windows.registry_read", "windows.registry_write", "windows.services", "windows.service_control", "windows.event_log", "windows.features"], platforms: ["win32"], summary: "Registry, services, event log" }
5091
+ { name: "desktop_windows_admin", group: "windows_admin", state: "built", path: "device_op", ops: ["windows.registry_read", "windows.registry_write", "windows.services", "windows.service_control", "windows.event_log", "windows.features"], platforms: ["win32"], summary: "Registry, services, event log, optional features" }
3718
5092
  ];
3719
5093
  var EXCLUDED_TOOLS = {
3720
5094
  git_ingest: "Runs on the server: it ingests repository URLs. A local path on a bound computer or sandbox is refused with the fs_* and shell remedy, since the server cannot see it"
@@ -3803,15 +5177,17 @@ var LEGACY_ACTIONS = {
3803
5177
  "local_monitor.watch_events": tool("fs_watch"),
3804
5178
  "local_monitor.stop_watch": tool("fs_watch"),
3805
5179
  "local_monitor.heartbeat": dropped("The relay's device status replaces the heartbeat"),
3806
- "local_schedule.create": dropped("One scheduler: the platform's runs the agent on time and reaches the device through the relay"),
3807
- "local_schedule.list": dropped("One scheduler: the platform's runs the agent on time and reaches the device through the relay"),
3808
- "local_schedule.cancel": dropped("One scheduler: the platform's runs the agent on time and reaches the device through the relay"),
5180
+ // Matrx Local's scheduler ran one of its tools on an interval; desktop_schedule runs an op so.
5181
+ "local_schedule.create": tool("desktop_schedule"),
5182
+ "local_schedule.list": tool("desktop_schedule"),
5183
+ "local_schedule.cancel": tool("desktop_schedule"),
3809
5184
  "local_schedule.prevent_sleep": tool("desktop_power"),
3810
- "local_documents.list": dropped("matrx-local's private document store is gone; documents are files (fs_*) or cloud Knowledge"),
3811
- "local_documents.folders": dropped("matrx-local's private document store is gone; documents are files (fs_*) or cloud Knowledge"),
3812
- "local_documents.read": dropped("matrx-local's private document store is gone; documents are files (fs_*) or cloud Knowledge"),
3813
- "local_documents.write": dropped("matrx-local's private document store is gone; documents are files (fs_*) or cloud Knowledge"),
3814
- "local_documents.search": dropped("matrx-local's private document store is gone; documents are files (fs_*) or cloud Knowledge"),
5185
+ // Matrx Local's documents are the Markdown notes in Documents/Matrx/Notes; desktop_notes reads and writes them.
5186
+ "local_documents.list": tool("desktop_notes"),
5187
+ "local_documents.folders": tool("desktop_notes"),
5188
+ "local_documents.read": tool("desktop_notes"),
5189
+ "local_documents.write": tool("desktop_notes"),
5190
+ "local_documents.search": tool("desktop_notes"),
3815
5191
  "local_media.ocr": tool("desktop_documents"),
3816
5192
  "local_media.resize": tool("desktop_documents"),
3817
5193
  "local_media.pdf_extract": tool("desktop_documents"),
@@ -4002,8 +5378,19 @@ function sharedOpsBlocking(tool2, disabledTools) {
4002
5378
  export {
4003
5379
  AbsPath,
4004
5380
  AccountAgent,
5381
+ AccountAgentDetail,
5382
+ AccountAgentRun,
5383
+ AccountAgentRunSort,
5384
+ AccountAgentRunStatus,
5385
+ AccountAgentVariable,
5386
+ AccountAgentsFavoriteParams,
5387
+ AccountAgentsFavoriteResult,
5388
+ AccountAgentsGetParams,
5389
+ AccountAgentsGetResult,
4005
5390
  AccountAgentsListParams,
4006
5391
  AccountAgentsListResult,
5392
+ AccountAgentsRunsParams,
5393
+ AccountAgentsRunsResult,
4007
5394
  AccountReadState,
4008
5395
  AccountReset,
4009
5396
  AccountRowId,
@@ -4104,6 +5491,8 @@ export {
4104
5491
  AudioRecordParams,
4105
5492
  AudioRecordResult,
4106
5493
  AudioSetLevelsParams,
5494
+ AutomationScriptParams,
5495
+ AutomationScriptResult,
4107
5496
  BEARER_PREFIX,
4108
5497
  BROADCAST_CID,
4109
5498
  BrowserCallError,
@@ -4115,6 +5504,9 @@ export {
4115
5504
  BrowserDisconnectResult,
4116
5505
  BrowserInvokeEvent,
4117
5506
  BrowserKind,
5507
+ BrowserLogMessage,
5508
+ BrowserLogParams,
5509
+ BrowserLogResult,
4118
5510
  BrowserPairCodeParams,
4119
5511
  BrowserPairCodeResult,
4120
5512
  BrowserPairRequest,
@@ -4125,6 +5517,8 @@ export {
4125
5517
  BrowserProgressResult,
4126
5518
  BrowserRegisterParams,
4127
5519
  BrowserRegisterResult,
5520
+ BrowserResetCountersParams,
5521
+ BrowserResetCountersResult,
4128
5522
  BrowserResultParams,
4129
5523
  BrowserResultResult,
4130
5524
  BrowserSession,
@@ -4134,8 +5528,16 @@ export {
4134
5528
  BrowserSessionsResult,
4135
5529
  BrowserSetEnabledParams,
4136
5530
  BrowserSetEnabledResult,
5531
+ BrowserToolMetric,
5532
+ BrowserToolMetricsParams,
5533
+ BrowserToolMetricsResult,
4137
5534
  CLOSE_RULES,
4138
5535
  CONTRACT_SHA256,
5536
+ CalendarCreateParams,
5537
+ CalendarCreateResult,
5538
+ CalendarEvent,
5539
+ CalendarListParams,
5540
+ CalendarListResult,
4139
5541
  CancelMsg,
4140
5542
  ChatAppProject,
4141
5543
  ChatFamily,
@@ -4157,18 +5559,108 @@ export {
4157
5559
  ClipboardWriteResult,
4158
5560
  CloseCode,
4159
5561
  CloseCodeValue,
5562
+ CodingActiveElsewhere,
5563
+ CodingActivityParams,
5564
+ CodingActivityResult,
5565
+ CodingAgentSelectionParams,
5566
+ CodingAgentSetParams,
5567
+ CodingAgentSetResult,
5568
+ CodingAgentsAccessParams,
5569
+ CodingAgentsAccessResult,
5570
+ CodingChangedEvent,
5571
+ CodingChatPreference,
5572
+ CodingClientRequestId,
5573
+ CodingDiscoverParams,
5574
+ CodingDiscoverResult,
5575
+ CodingDiscoveredChat,
5576
+ CodingFolderCheck,
5577
+ CodingFoldersCheckParams,
5578
+ CodingFoldersCheckResult,
5579
+ CodingFoldersCreateParams,
5580
+ CodingFoldersCreateResult,
5581
+ CodingFoldersRecentParams,
5582
+ CodingFoldersRecentResult,
5583
+ CodingGapEvent,
4160
5584
  CodingHistoryBlocked,
4161
5585
  CodingHistoryFailure,
4162
5586
  CodingHistoryImportMissingParams,
4163
5587
  CodingHistoryImportMissingResult,
5588
+ CodingHistoryParams,
4164
5589
  CodingHistoryProgressEvent,
5590
+ CodingHistoryRecord,
5591
+ CodingHistoryResult,
4165
5592
  CodingHistoryRun,
4166
5593
  CodingHistoryStep,
4167
5594
  CodingImportNextParams,
5595
+ CodingItemEvent,
5596
+ CodingItemFullParams,
5597
+ CodingItemFullResult,
5598
+ CodingOptionsSetParams,
5599
+ CodingOptionsSetResult,
4168
5600
  CodingPlanMissingParams,
5601
+ CodingPrefsListParams,
5602
+ CodingPrefsListResult,
5603
+ CodingPrefsSetParams,
5604
+ CodingPrefsSetResult,
5605
+ CodingProviderBinary,
5606
+ CodingProviderName,
5607
+ CodingProviderProblem,
5608
+ CodingProviderStatus,
5609
+ CodingProvidersParams,
5610
+ CodingProvidersResult,
5611
+ CodingQuotaWindow,
5612
+ CodingRecentFolder,
5613
+ CodingRecentRow,
5614
+ CodingRecentSeenParams,
5615
+ CodingRecentSeenResult,
5616
+ CodingReconcileParams,
5617
+ CodingReconcileResult,
5618
+ CodingRunRecord,
5619
+ CodingRunStatus,
5620
+ CodingRunUsage,
5621
+ CodingRunsListParams,
5622
+ CodingRunsListResult,
5623
+ CodingSearchParams,
5624
+ CodingSearchResult,
5625
+ CodingSendParams,
5626
+ CodingSendResult,
4169
5627
  CodingServiceCredentials,
4170
5628
  CodingServiceProgress,
5629
+ CodingSessionAgent,
5630
+ CodingSessionAgentPart,
5631
+ CodingSessionRecord,
5632
+ CodingSessionWatchParams,
5633
+ CodingSessionWatchResult,
5634
+ CodingSessionsListParams,
5635
+ CodingSessionsListResult,
5636
+ CodingStartParams,
5637
+ CodingStartResult,
5638
+ CodingStartedBy,
5639
+ CodingStopElsewhereParams,
5640
+ CodingStopElsewhereResult,
5641
+ CodingStopParams,
5642
+ CodingStopResult,
5643
+ CodingTakeoverParams,
5644
+ CodingTakeoverResult,
5645
+ CodingTitleStatus,
5646
+ CodingTitlesStatusParams,
5647
+ CodingTitlesStatusResult,
5648
+ CodingTranscriptItem,
5649
+ CodingTranscriptRawParams,
5650
+ CodingTranscriptRawResult,
5651
+ CodingTranscriptReadParams,
5652
+ CodingTranscriptReadResult,
5653
+ CodingWatchParams,
5654
+ CodingWatchResult,
5655
+ CodingWatchStateEvent,
4171
5656
  ColdChat,
5657
+ ContactDetail,
5658
+ ContactLabeled,
5659
+ ContactSummary,
5660
+ ContactsGetParams,
5661
+ ContactsGetResult,
5662
+ ContactsSearchParams,
5663
+ ContactsSearchResult,
4172
5664
  ContractHash,
4173
5665
  CoreToClientMsg,
4174
5666
  CoreToServiceMsg,
@@ -4177,6 +5669,7 @@ export {
4177
5669
  DEFAULT_MAX_MESSAGE_BYTES,
4178
5670
  DEFAULT_WINDOW_BYTES,
4179
5671
  DISCOVERY_FILE,
5672
+ DOCUMENTS_MAX_TEXT_CHARS,
4180
5673
  DesktopHealth,
4181
5674
  DesktopProtocolError,
4182
5675
  DeviceId,
@@ -4189,10 +5682,27 @@ export {
4189
5682
  DiagErrorsReportParams,
4190
5683
  DiagErrorsReportResult,
4191
5684
  DiagProcess,
5685
+ DocumentsImageResizeParams,
5686
+ DocumentsImageResizeResult,
5687
+ DocumentsOcrLine,
5688
+ DocumentsOcrParams,
5689
+ DocumentsOcrResult,
5690
+ DocumentsOfficeGenerateParams,
5691
+ DocumentsOfficeGenerateResult,
5692
+ DocumentsParagraph,
5693
+ DocumentsPdfPage,
5694
+ DocumentsPdfTextParams,
5695
+ DocumentsPdfTextResult,
5696
+ DocumentsSheet,
4192
5697
  EVENTS,
4193
5698
  EXCLUDED_TOOLS,
4194
5699
  EndMsg,
4195
5700
  EndReason,
5701
+ EntitiesNerParams,
5702
+ EntitiesNerResult,
5703
+ EntitiesPiiParams,
5704
+ EntitiesPiiResult,
5705
+ EntitySpan,
4196
5706
  ErrorCode,
4197
5707
  ErrorMsg,
4198
5708
  ErrorReason,
@@ -4313,7 +5823,25 @@ export {
4313
5823
  Limits,
4314
5824
  LlmRunning,
4315
5825
  LlmServerState,
5826
+ LocationGetParams,
5827
+ LocationGetResult,
4316
5828
  MATRX_EXTENSION_IDS,
5829
+ MailAccount,
5830
+ MailAccountsParams,
5831
+ MailAccountsResult,
5832
+ MailListParams,
5833
+ MailListResult,
5834
+ MailMessage,
5835
+ MailSendParams,
5836
+ MailSendResult,
5837
+ MessagesChat,
5838
+ MessagesChatsParams,
5839
+ MessagesChatsResult,
5840
+ MessagesListParams,
5841
+ MessagesListResult,
5842
+ MessagesMessage,
5843
+ MessagesSendParams,
5844
+ MessagesSendResult,
4317
5845
  MlInstallPhase,
4318
5846
  MlInstallProgress,
4319
5847
  MlProgress,
@@ -4339,6 +5867,39 @@ export {
4339
5867
  ModelsTranscribeResult,
4340
5868
  NAMED_SCHEMAS,
4341
5869
  NULL_SINCE,
5870
+ NetAddress,
5871
+ NetBluetoothDevice,
5872
+ NetBluetoothParams,
5873
+ NetBluetoothResult,
5874
+ NetDevice,
5875
+ NetDevicesParams,
5876
+ NetDevicesResult,
5877
+ NetDownloadParams,
5878
+ NetDownloadResult,
5879
+ NetInfoParams,
5880
+ NetInfoResult,
5881
+ NetInterface,
5882
+ NetMdnsParams,
5883
+ NetMdnsResult,
5884
+ NetMdnsService,
5885
+ NetScanParams,
5886
+ NetScanResult,
5887
+ NetWifiNetwork,
5888
+ NetWifiParams,
5889
+ NetWifiResult,
5890
+ NoteEntry,
5891
+ NotesFolder,
5892
+ NotesFoldersParams,
5893
+ NotesFoldersResult,
5894
+ NotesListParams,
5895
+ NotesListResult,
5896
+ NotesMatch,
5897
+ NotesReadParams,
5898
+ NotesReadResult,
5899
+ NotesSearchParams,
5900
+ NotesSearchResult,
5901
+ NotesWriteParams,
5902
+ NotesWriteResult,
4342
5903
  OPS,
4343
5904
  OpDescriptor,
4344
5905
  OsPermissionName,
@@ -4347,6 +5908,12 @@ export {
4347
5908
  PROTOCOL_MAJOR,
4348
5909
  PROTOCOL_MINOR,
4349
5910
  PROTOCOL_VERSION,
5911
+ Photo,
5912
+ PhotosGetParams,
5913
+ PhotosGetResult,
5914
+ PhotosSearchParams,
5915
+ PhotosSearchResult,
5916
+ PiiKind,
4350
5917
  PowerEnergy,
4351
5918
  PowerHistoryParams,
4352
5919
  PowerHistoryPoint,
@@ -4375,6 +5942,8 @@ export {
4375
5942
  RELAY_CALL_HELLO_ID,
4376
5943
  RELAY_CALL_REQUEST_ID,
4377
5944
  RELAY_CALL_VERSION_HEADER,
5945
+ RegistryValue,
5946
+ RegistryValueType,
4378
5947
  RelayAuthExpiringEvent,
4379
5948
  RelayCallEnvelope,
4380
5949
  RelayCallHello,
@@ -4385,6 +5954,11 @@ export {
4385
5954
  RelayHopEnvelopeHeader,
4386
5955
  RelayMsg,
4387
5956
  RelayStatusResponse,
5957
+ Reminder,
5958
+ RemindersCreateParams,
5959
+ RemindersCreateResult,
5960
+ RemindersListParams,
5961
+ RemindersListResult,
4388
5962
  RequestId,
4389
5963
  RequestMsg,
4390
5964
  ResourceId,
@@ -4410,6 +5984,14 @@ export {
4410
5984
  SERVICES,
4411
5985
  SERVICE_MAX_FRAME_BYTES,
4412
5986
  SUBPROTOCOL,
5987
+ ScheduleCancelParams,
5988
+ ScheduleCancelResult,
5989
+ ScheduleCreateParams,
5990
+ ScheduleCreateResult,
5991
+ ScheduleListParams,
5992
+ ScheduleListResult,
5993
+ ScheduleRun,
5994
+ ScheduledTask,
4413
5995
  ScreenCaptureParams,
4414
5996
  ScreenCaptureResult,
4415
5997
  ScreenDisplay,
@@ -4433,6 +6015,8 @@ export {
4433
6015
  SessionControlChangedEvent,
4434
6016
  SessionDetachParams,
4435
6017
  SessionDetachResult,
6018
+ SessionIdentifyParams,
6019
+ SessionIdentifyResult,
4436
6020
  SessionListParams,
4437
6021
  SessionListResult,
4438
6022
  SessionReleaseParams,
@@ -4528,6 +6112,21 @@ export {
4528
6112
  WindowMinimizeResult,
4529
6113
  WindowMoveParams,
4530
6114
  WindowMoveResult,
6115
+ WindowsEvent,
6116
+ WindowsEventLogParams,
6117
+ WindowsEventLogResult,
6118
+ WindowsFeature,
6119
+ WindowsFeaturesParams,
6120
+ WindowsFeaturesResult,
6121
+ WindowsRegistryReadParams,
6122
+ WindowsRegistryReadResult,
6123
+ WindowsRegistryWriteParams,
6124
+ WindowsRegistryWriteResult,
6125
+ WindowsService,
6126
+ WindowsServiceControlParams,
6127
+ WindowsServiceControlResult,
6128
+ WindowsServicesParams,
6129
+ WindowsServicesResult,
4531
6130
  announcedVersion,
4532
6131
  assertFrameHeader,
4533
6132
  buildToolStatus,