@ai-matrx/desktop-protocol 0.21.28 → 0.21.29

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/client.cjs CHANGED
@@ -144,7 +144,7 @@ var import_zod2 = require("zod");
144
144
  var import_zod = require("zod");
145
145
  var import_uuid = require("@ai-matrx/kit/uuid");
146
146
  var PROTOCOL_MAJOR = 1;
147
- var PROTOCOL_MINOR = 33;
147
+ var PROTOCOL_MINOR = 37;
148
148
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
149
149
  var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
150
150
  var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -227,8 +227,11 @@ var ErrorReason = import_zod2.z.enum([
227
227
  // AUTH_FORBIDDEN: the named browser is signed in to another account
228
228
  "browser_connection_off",
229
229
  // AUTH_FORBIDDEN: the person turned Browser connection off
230
- "awaiting_confirmation"
230
+ "awaiting_confirmation",
231
231
  // TIMEOUT: the person did not answer the browser's confirmation in time
232
+ // 1.34 (REASONS_SINCE): the per-device tool policy (src/tools/policy.ts)
233
+ "tool_disabled_on_device"
234
+ // AUTH_FORBIDDEN: the person turned this tool off for agents on this computer (Agents › Tools)
232
235
  ]);
233
236
  var FsPatchEditFailure = import_zod2.z.strictObject({ edit_index: nonNegInt, reason: import_zod2.z.string().max(300) });
234
237
  var ProtocolErrorBody = import_zod2.z.strictObject({
@@ -1239,7 +1242,9 @@ var SystemSettingsPane = import_zod16.z.enum([
1239
1242
  "energy",
1240
1243
  "about",
1241
1244
  "storage",
1242
- "system_report"
1245
+ "system_report",
1246
+ /** (1.35) Privacy & Security › Microphone: where the person allows Matrx 2 the microphone. */
1247
+ "microphone"
1243
1248
  ]);
1244
1249
  var SystemOpenSettingsParams = import_zod16.z.strictObject({ pane: SystemSettingsPane });
1245
1250
  var SystemOpenSettingsResult = import_zod16.z.strictObject({ pane: SystemSettingsPane });
@@ -2432,6 +2437,10 @@ var AppsProjectsToWindowParams = import_zod30.z.strictObject({
2432
2437
  group: import_zod30.z.boolean().default(false),
2433
2438
  /** 1.32: also pin them in that window (now if closed, else when it next closes). */
2434
2439
  pin: import_zod30.z.boolean().optional(),
2440
+ /** 1.36: a batch: exactly these chats of the project and no other (a reused marker is a label, never a sweep). */
2441
+ chat_ids: import_zod30.z.array(ChatId).min(1).max(5e3).optional(),
2442
+ /** 1.36: take them off this one side window only (a Move's origin), never main or another window that lists them. */
2443
+ take_off_from: ChatPlace.optional(),
2435
2444
  dry_run: import_zod30.z.boolean().default(false)
2436
2445
  });
2437
2446
  var AppsProjectsToWindowResult = import_zod30.z.strictObject({
@@ -2706,6 +2715,41 @@ var BrowserCallResult = import_zod31.z.strictObject({
2706
2715
  result: import_zod31.z.unknown(),
2707
2716
  duration_ms: nonNegInt
2708
2717
  });
2718
+ var BrowserToolMetricsParams = import_zod31.z.strictObject({ client_instance: BrowserClientInstance });
2719
+ var BrowserToolMetric = import_zod31.z.strictObject({
2720
+ tool: import_zod31.z.string().max(256),
2721
+ calls: nonNegInt,
2722
+ errors: nonNegInt,
2723
+ /** Over the last 200 answered calls; null before the first answer. */
2724
+ p50_ms: nonNegInt.nullable(),
2725
+ p95_ms: nonNegInt.nullable(),
2726
+ last_call_at_ms: epochMs.nullable(),
2727
+ last_error: import_zod31.z.string().max(2048).nullable()
2728
+ });
2729
+ var BrowserToolMetricsResult = import_zod31.z.strictObject({ client_instance: import_zod31.z.string(), tools: import_zod31.z.array(BrowserToolMetric) });
2730
+ var BrowserResetCountersParams = import_zod31.z.strictObject({ client_instance: BrowserClientInstance });
2731
+ var BrowserResetCountersResult = import_zod31.z.strictObject({ reset: import_zod31.z.boolean() });
2732
+ var BrowserLogParams = import_zod31.z.strictObject({
2733
+ /** Only messages after this seq (0: from the oldest kept; the core keeps the last 500). */
2734
+ after_seq: nonNegInt.default(0),
2735
+ limit: import_zod31.z.int().min(1).max(500).default(500)
2736
+ });
2737
+ var BrowserLogMessage = import_zod31.z.strictObject({
2738
+ seq: nonNegInt,
2739
+ at_ms: epochMs,
2740
+ direction: import_zod31.z.enum(["to_browser", "from_browser", "core"]),
2741
+ client_instance: import_zod31.z.string(),
2742
+ kind: import_zod31.z.enum(["register", "invoke", "result", "progress", "timeout", "closed"]),
2743
+ tool: import_zod31.z.string().nullable(),
2744
+ call_id: import_zod31.z.string().nullable(),
2745
+ ok: import_zod31.z.boolean().nullable(),
2746
+ detail: import_zod31.z.string().max(1024)
2747
+ });
2748
+ var BrowserLogResult = import_zod31.z.strictObject({
2749
+ messages: import_zod31.z.array(BrowserLogMessage),
2750
+ /** The newest seq the core has written (pass it back as after_seq to follow the log). */
2751
+ last_seq: nonNegInt
2752
+ });
2709
2753
  var BrowserInvokeEvent = import_zod31.z.strictObject({
2710
2754
  call_id: import_zod31.z.string().min(1).max(64),
2711
2755
  tool: import_zod31.z.string().min(1).max(96),
@@ -2730,6 +2774,575 @@ var DesktopHealth = import_zod31.z.strictObject({
2730
2774
  var BrowserPairRequest = import_zod31.z.strictObject({ client_instance: BrowserClientInstance });
2731
2775
  var BrowserPairResult = import_zod31.z.strictObject({ pair_token: import_zod31.z.string().min(16).max(128), ws_path: import_zod31.z.literal("/v1/connect") });
2732
2776
 
2777
+ // src/schema/net.ts
2778
+ var import_zod32 = require("zod");
2779
+ var NetInfoParams = import_zod32.z.strictObject({});
2780
+ var NetAddress = import_zod32.z.strictObject({
2781
+ address: import_zod32.z.string(),
2782
+ family: import_zod32.z.enum(["ipv4", "ipv6"]),
2783
+ netmask: import_zod32.z.string().nullable(),
2784
+ /** CIDR form ("192.168.1.20/24"); null where the OS gives no prefix. */
2785
+ cidr: import_zod32.z.string().nullable()
2786
+ });
2787
+ var NetInterface = import_zod32.z.strictObject({
2788
+ name: import_zod32.z.string(),
2789
+ mac: import_zod32.z.string().nullable(),
2790
+ /** Loopback and other internal interfaces. */
2791
+ internal: import_zod32.z.boolean(),
2792
+ addresses: import_zod32.z.array(NetAddress)
2793
+ });
2794
+ var NetInfoResult = import_zod32.z.strictObject({
2795
+ hostname: import_zod32.z.string(),
2796
+ interfaces: import_zod32.z.array(NetInterface),
2797
+ /** The default route's gateway; null when the OS does not say (or there is none). */
2798
+ gateway: import_zod32.z.string().nullable(),
2799
+ /** The DNS servers the OS uses; empty when it does not say. */
2800
+ dns: import_zod32.z.array(import_zod32.z.string())
2801
+ });
2802
+ var NetWifiParams = import_zod32.z.strictObject({});
2803
+ var NetWifiNetwork = import_zod32.z.strictObject({
2804
+ /** null: the OS hides the name (macOS without Location Services for this app). */
2805
+ ssid: import_zod32.z.string().nullable(),
2806
+ /** dBm; null where the OS does not say. */
2807
+ rssi: import_zod32.z.int().nullable(),
2808
+ channel: import_zod32.z.string().nullable(),
2809
+ security: import_zod32.z.string().nullable()
2810
+ });
2811
+ var NetWifiResult = import_zod32.z.strictObject({
2812
+ /** Whether the computer has a Wi-Fi interface at all. */
2813
+ available: import_zod32.z.boolean(),
2814
+ /** The network the computer is on; null when it is on none. */
2815
+ current: NetWifiNetwork.nullable(),
2816
+ /** Networks in range (may be empty where the OS lists none to apps). */
2817
+ networks: import_zod32.z.array(NetWifiNetwork)
2818
+ });
2819
+ var NetBluetoothParams = import_zod32.z.strictObject({});
2820
+ var NetBluetoothDevice = import_zod32.z.strictObject({
2821
+ name: import_zod32.z.string(),
2822
+ address: import_zod32.z.string().nullable(),
2823
+ connected: import_zod32.z.boolean(),
2824
+ /** What it is, in the OS's words ("Headphones", "Keyboard"); null where it does not say. */
2825
+ kind: import_zod32.z.string().nullable(),
2826
+ /** Battery percent, where the OS reports it. */
2827
+ battery: import_zod32.z.int().min(0).max(100).nullable()
2828
+ });
2829
+ var NetBluetoothResult = import_zod32.z.strictObject({
2830
+ /** Bluetooth is on; null where the OS does not say. */
2831
+ powered: import_zod32.z.boolean().nullable(),
2832
+ devices: import_zod32.z.array(NetBluetoothDevice)
2833
+ });
2834
+ var NetDevicesParams = import_zod32.z.strictObject({});
2835
+ var NetDevice = import_zod32.z.strictObject({
2836
+ ip: import_zod32.z.string(),
2837
+ mac: import_zod32.z.string().nullable(),
2838
+ interface: import_zod32.z.string().nullable(),
2839
+ /** The name the local network gives it (reverse DNS / mDNS), when the table carries one. */
2840
+ hostname: import_zod32.z.string().nullable()
2841
+ });
2842
+ var NetDevicesResult = import_zod32.z.strictObject({ devices: import_zod32.z.array(NetDevice) });
2843
+ var NetMdnsParams = import_zod32.z.strictObject({
2844
+ /** A service type ("_http._tcp"); absent lists the service types found. */
2845
+ service_type: import_zod32.z.string().min(1).max(64).regex(/^_[A-Za-z0-9-]+\._(tcp|udp)$/).optional(),
2846
+ /** How long to listen. */
2847
+ timeout_s: import_zod32.z.int().min(1).max(30).default(3)
2848
+ });
2849
+ var NetMdnsService = import_zod32.z.strictObject({
2850
+ name: import_zod32.z.string(),
2851
+ type: import_zod32.z.string(),
2852
+ domain: import_zod32.z.string(),
2853
+ interface: import_zod32.z.string().nullable()
2854
+ });
2855
+ var NetMdnsResult = import_zod32.z.strictObject({ services: import_zod32.z.array(NetMdnsService) });
2856
+ var NetScanParams = import_zod32.z.strictObject({
2857
+ /** A host name or address; a private or loopback address unless `allow_public`. */
2858
+ host: import_zod32.z.string().min(1).max(253),
2859
+ ports: import_zod32.z.array(import_zod32.z.int().min(1).max(65535)).min(1).max(1024),
2860
+ timeout_ms: import_zod32.z.int().min(50).max(1e4).default(800),
2861
+ /** Scanning a host on the public internet needs saying so. */
2862
+ allow_public: import_zod32.z.boolean().default(false)
2863
+ });
2864
+ var NetScanResult = import_zod32.z.strictObject({
2865
+ host: import_zod32.z.string(),
2866
+ /** The address the host resolved to. */
2867
+ address: import_zod32.z.string(),
2868
+ open: import_zod32.z.array(import_zod32.z.int().min(1).max(65535)),
2869
+ closed: nonNegInt,
2870
+ elapsed_ms: nonNegInt
2871
+ });
2872
+ var NetDownloadParams = import_zod32.z.strictObject({
2873
+ url: import_zod32.z.string().min(1).max(8192).regex(/^https?:\/\//),
2874
+ /** Where to save it: an absolute path (a folder keeps the URL's file name). */
2875
+ path: AbsPath,
2876
+ overwrite: import_zod32.z.boolean().default(false),
2877
+ timeout_s: import_zod32.z.int().min(1).max(3600).default(300),
2878
+ /** Refuse anything larger. */
2879
+ max_bytes: import_zod32.z.int().min(1).max(10737418240).default(2147483648)
2880
+ });
2881
+ var NetDownloadResult = import_zod32.z.strictObject({
2882
+ path: import_zod32.z.string(),
2883
+ bytes: nonNegInt,
2884
+ content_type: import_zod32.z.string().nullable(),
2885
+ /** The final URL after redirects. */
2886
+ url: import_zod32.z.string(),
2887
+ elapsed_ms: nonNegInt
2888
+ });
2889
+
2890
+ // src/schema/personal.ts
2891
+ var import_zod33 = require("zod");
2892
+ var Text = import_zod33.z.string().max(65536);
2893
+ var AutomationScriptParams = import_zod33.z.strictObject({
2894
+ /** applescript and jxa: macOS (osascript); powershell: Windows (and pwsh where installed). */
2895
+ language: import_zod33.z.enum(["applescript", "jxa", "powershell"]),
2896
+ script: import_zod33.z.string().min(1).max(262144),
2897
+ timeout_s: import_zod33.z.int().min(1).max(600).default(60)
2898
+ });
2899
+ var AutomationScriptResult = import_zod33.z.strictObject({
2900
+ stdout: import_zod33.z.string(),
2901
+ stderr: import_zod33.z.string(),
2902
+ exit_code: import_zod33.z.int(),
2903
+ timed_out: import_zod33.z.boolean(),
2904
+ /** stdout or stderr was cut at 1 MiB. */
2905
+ truncated: import_zod33.z.boolean(),
2906
+ elapsed_ms: nonNegInt
2907
+ });
2908
+ var MailAccountsParams = import_zod33.z.strictObject({});
2909
+ var MailAccount = import_zod33.z.strictObject({ name: import_zod33.z.string(), emails: import_zod33.z.array(import_zod33.z.string()), enabled: import_zod33.z.boolean() });
2910
+ var MailAccountsResult = import_zod33.z.strictObject({ accounts: import_zod33.z.array(MailAccount) });
2911
+ var MailListParams = import_zod33.z.strictObject({
2912
+ /** The account's name in Mail; absent: every account. */
2913
+ account: import_zod33.z.string().min(1).max(256).optional(),
2914
+ /** The mailbox's name ("INBOX", "Sent Messages"). */
2915
+ mailbox: import_zod33.z.string().min(1).max(256).default("INBOX"),
2916
+ unread_only: import_zod33.z.boolean().default(false),
2917
+ limit: import_zod33.z.int().min(1).max(200).default(25)
2918
+ });
2919
+ var MailMessage = import_zod33.z.strictObject({
2920
+ id: import_zod33.z.string(),
2921
+ subject: import_zod33.z.string(),
2922
+ sender: import_zod33.z.string(),
2923
+ received_at_ms: epochMs.nullable(),
2924
+ read: import_zod33.z.boolean(),
2925
+ account: import_zod33.z.string(),
2926
+ mailbox: import_zod33.z.string(),
2927
+ /** The first lines of the message's text. */
2928
+ preview: import_zod33.z.string()
2929
+ });
2930
+ var MailListResult = import_zod33.z.strictObject({ messages: import_zod33.z.array(MailMessage) });
2931
+ var MailSendParams = import_zod33.z.strictObject({
2932
+ to: import_zod33.z.array(import_zod33.z.string().min(3).max(320)).min(1).max(50),
2933
+ cc: import_zod33.z.array(import_zod33.z.string().min(3).max(320)).max(50).default([]),
2934
+ subject: import_zod33.z.string().max(998),
2935
+ body: Text,
2936
+ /** The sending account's address; absent: Mail's default. */
2937
+ from: import_zod33.z.string().min(3).max(320).optional(),
2938
+ /** false leaves it open in Mail as a draft for the person to send. */
2939
+ send: import_zod33.z.boolean().default(true)
2940
+ });
2941
+ var MailSendResult = import_zod33.z.strictObject({ sent: import_zod33.z.boolean() });
2942
+ var MessagesChatsParams = import_zod33.z.strictObject({ limit: import_zod33.z.int().min(1).max(200).default(25) });
2943
+ var MessagesChat = import_zod33.z.strictObject({
2944
+ chat_id: import_zod33.z.string(),
2945
+ name: import_zod33.z.string().nullable(),
2946
+ participants: import_zod33.z.array(import_zod33.z.string()),
2947
+ last_message_at_ms: epochMs.nullable(),
2948
+ service: import_zod33.z.string().nullable()
2949
+ });
2950
+ var MessagesChatsResult = import_zod33.z.strictObject({ chats: import_zod33.z.array(MessagesChat) });
2951
+ var MessagesListParams = import_zod33.z.strictObject({
2952
+ /** One chat (messages.chats' chat_id); absent: the newest across all. */
2953
+ chat_id: import_zod33.z.string().min(1).max(512).optional(),
2954
+ limit: import_zod33.z.int().min(1).max(500).default(50)
2955
+ });
2956
+ var MessagesMessage = import_zod33.z.strictObject({
2957
+ id: import_zod33.z.string(),
2958
+ chat_id: import_zod33.z.string().nullable(),
2959
+ text: import_zod33.z.string(),
2960
+ from_me: import_zod33.z.boolean(),
2961
+ /** The other person's handle (phone or email); null for the person's own messages. */
2962
+ sender: import_zod33.z.string().nullable(),
2963
+ sent_at_ms: epochMs.nullable()
2964
+ });
2965
+ var MessagesListResult = import_zod33.z.strictObject({ messages: import_zod33.z.array(MessagesMessage) });
2966
+ var MessagesSendParams = import_zod33.z.strictObject({
2967
+ /** A phone number or email the person can message. */
2968
+ to: import_zod33.z.string().min(3).max(320),
2969
+ text: import_zod33.z.string().min(1).max(2e4)
2970
+ });
2971
+ var MessagesSendResult = import_zod33.z.strictObject({ sent: import_zod33.z.boolean() });
2972
+ var ContactsSearchParams = import_zod33.z.strictObject({
2973
+ /** Matched against names, organizations, emails and phone numbers. */
2974
+ query: import_zod33.z.string().min(1).max(256),
2975
+ limit: import_zod33.z.int().min(1).max(200).default(25)
2976
+ });
2977
+ var ContactLabeled = import_zod33.z.strictObject({ label: import_zod33.z.string().nullable(), value: import_zod33.z.string() });
2978
+ var ContactSummary = import_zod33.z.strictObject({
2979
+ id: import_zod33.z.string(),
2980
+ name: import_zod33.z.string(),
2981
+ organization: import_zod33.z.string().nullable(),
2982
+ emails: import_zod33.z.array(ContactLabeled),
2983
+ phones: import_zod33.z.array(ContactLabeled)
2984
+ });
2985
+ var ContactsSearchResult = import_zod33.z.strictObject({ contacts: import_zod33.z.array(ContactSummary) });
2986
+ var ContactsGetParams = import_zod33.z.strictObject({ id: import_zod33.z.string().min(1).max(256) });
2987
+ var ContactDetail = import_zod33.z.strictObject({
2988
+ id: import_zod33.z.string(),
2989
+ name: import_zod33.z.string(),
2990
+ organization: import_zod33.z.string().nullable(),
2991
+ job_title: import_zod33.z.string().nullable(),
2992
+ emails: import_zod33.z.array(ContactLabeled),
2993
+ phones: import_zod33.z.array(ContactLabeled),
2994
+ addresses: import_zod33.z.array(ContactLabeled),
2995
+ birthday: import_zod33.z.string().nullable(),
2996
+ note: import_zod33.z.string().nullable()
2997
+ });
2998
+ var ContactsGetResult = import_zod33.z.strictObject({ contact: ContactDetail });
2999
+ var CalendarListParams = import_zod33.z.strictObject({
3000
+ from_ms: epochMs,
3001
+ to_ms: epochMs,
3002
+ /** One calendar's name; absent: every calendar. */
3003
+ calendar: import_zod33.z.string().min(1).max(256).optional(),
3004
+ limit: import_zod33.z.int().min(1).max(500).default(100)
3005
+ });
3006
+ var CalendarEvent = import_zod33.z.strictObject({
3007
+ id: import_zod33.z.string(),
3008
+ title: import_zod33.z.string(),
3009
+ start_ms: epochMs,
3010
+ end_ms: epochMs,
3011
+ all_day: import_zod33.z.boolean(),
3012
+ calendar: import_zod33.z.string(),
3013
+ location: import_zod33.z.string().nullable(),
3014
+ notes: import_zod33.z.string().nullable()
3015
+ });
3016
+ var CalendarListResult = import_zod33.z.strictObject({ events: import_zod33.z.array(CalendarEvent) });
3017
+ var CalendarCreateParams = import_zod33.z.strictObject({
3018
+ title: import_zod33.z.string().min(1).max(1024),
3019
+ start_ms: epochMs,
3020
+ end_ms: epochMs,
3021
+ all_day: import_zod33.z.boolean().default(false),
3022
+ /** The calendar's name; absent: the first writable calendar. */
3023
+ calendar: import_zod33.z.string().min(1).max(256).optional(),
3024
+ location: import_zod33.z.string().max(1024).optional(),
3025
+ notes: Text.optional()
3026
+ });
3027
+ var CalendarCreateResult = import_zod33.z.strictObject({ id: import_zod33.z.string(), calendar: import_zod33.z.string() });
3028
+ var RemindersListParams = import_zod33.z.strictObject({
3029
+ /** One list's name; absent: every list. */
3030
+ list: import_zod33.z.string().min(1).max(256).optional(),
3031
+ include_completed: import_zod33.z.boolean().default(false),
3032
+ limit: import_zod33.z.int().min(1).max(500).default(100)
3033
+ });
3034
+ var Reminder = import_zod33.z.strictObject({
3035
+ id: import_zod33.z.string(),
3036
+ title: import_zod33.z.string(),
3037
+ list: import_zod33.z.string(),
3038
+ due_ms: epochMs.nullable(),
3039
+ completed: import_zod33.z.boolean(),
3040
+ notes: import_zod33.z.string().nullable()
3041
+ });
3042
+ var RemindersListResult = import_zod33.z.strictObject({ reminders: import_zod33.z.array(Reminder) });
3043
+ var RemindersCreateParams = import_zod33.z.strictObject({
3044
+ title: import_zod33.z.string().min(1).max(1024),
3045
+ due_ms: epochMs.optional(),
3046
+ list: import_zod33.z.string().min(1).max(256).optional(),
3047
+ notes: Text.optional()
3048
+ });
3049
+ var RemindersCreateResult = import_zod33.z.strictObject({ id: import_zod33.z.string(), list: import_zod33.z.string() });
3050
+ var PhotosSearchParams = import_zod33.z.strictObject({
3051
+ /** Matched against file names, titles, descriptions and keywords; absent: the newest. */
3052
+ query: import_zod33.z.string().min(1).max(256).optional(),
3053
+ from_ms: epochMs.optional(),
3054
+ to_ms: epochMs.optional(),
3055
+ favorites_only: import_zod33.z.boolean().default(false),
3056
+ limit: import_zod33.z.int().min(1).max(200).default(25)
3057
+ });
3058
+ var Photo = import_zod33.z.strictObject({
3059
+ id: import_zod33.z.string(),
3060
+ filename: import_zod33.z.string(),
3061
+ taken_at_ms: epochMs.nullable(),
3062
+ width: nonNegInt.nullable(),
3063
+ height: nonNegInt.nullable(),
3064
+ favorite: import_zod33.z.boolean(),
3065
+ title: import_zod33.z.string().nullable()
3066
+ });
3067
+ var PhotosSearchResult = import_zod33.z.strictObject({ photos: import_zod33.z.array(Photo) });
3068
+ var PhotosGetParams = import_zod33.z.strictObject({
3069
+ id: import_zod33.z.string().min(1).max(256),
3070
+ /** Copy the original into a folder Matrx 2 owns and answer its path (then fs_read or desktop_documents reads it). */
3071
+ export: import_zod33.z.boolean().default(false)
3072
+ });
3073
+ var PhotosGetResult = import_zod33.z.strictObject({ photo: Photo, path: import_zod33.z.string().nullable() });
3074
+ var LocationGetParams = import_zod33.z.strictObject({ timeout_s: import_zod33.z.int().min(1).max(60).default(15) });
3075
+ var LocationGetResult = import_zod33.z.strictObject({
3076
+ latitude: import_zod33.z.number().min(-90).max(90),
3077
+ longitude: import_zod33.z.number().min(-180).max(180),
3078
+ /** Metres; null where the OS does not say. */
3079
+ accuracy_m: import_zod33.z.number().min(0).nullable(),
3080
+ at_ms: epochMs,
3081
+ /** Who answered: the OS's own location service. */
3082
+ source: import_zod33.z.enum(["corelocation", "windows", "geoclue"])
3083
+ });
3084
+
3085
+ // src/schema/windows.ts
3086
+ var import_zod34 = require("zod");
3087
+ var RegistryKey = import_zod34.z.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)(\\.*)?$/);
3088
+ var RegistryValueType = import_zod34.z.enum(["REG_SZ", "REG_EXPAND_SZ", "REG_MULTI_SZ", "REG_DWORD", "REG_QWORD", "REG_BINARY", "REG_NONE"]);
3089
+ var WindowsRegistryReadParams = import_zod34.z.strictObject({
3090
+ key: RegistryKey,
3091
+ /** One value's name ("" is the key's default value); absent: every value and the subkeys. */
3092
+ name: import_zod34.z.string().max(16383).optional()
3093
+ });
3094
+ var RegistryValue = import_zod34.z.strictObject({ name: import_zod34.z.string(), type: RegistryValueType, data: import_zod34.z.string() });
3095
+ var WindowsRegistryReadResult = import_zod34.z.strictObject({
3096
+ key: import_zod34.z.string(),
3097
+ exists: import_zod34.z.boolean(),
3098
+ values: import_zod34.z.array(RegistryValue),
3099
+ subkeys: import_zod34.z.array(import_zod34.z.string())
3100
+ });
3101
+ var WindowsRegistryWriteParams = import_zod34.z.strictObject({
3102
+ key: RegistryKey,
3103
+ name: import_zod34.z.string().max(16383),
3104
+ type: RegistryValueType.default("REG_SZ"),
3105
+ /** As reg.exe takes it: text, a number, hex for binary, \\0 between the strings of a multi-string. */
3106
+ data: import_zod34.z.string().max(1048576),
3107
+ /** Remove the value instead of writing it. */
3108
+ delete: import_zod34.z.boolean().default(false)
3109
+ });
3110
+ var WindowsRegistryWriteResult = import_zod34.z.strictObject({ key: import_zod34.z.string(), name: import_zod34.z.string(), deleted: import_zod34.z.boolean() });
3111
+ var WindowsServicesParams = import_zod34.z.strictObject({
3112
+ /** Matched against the service's name and display name. */
3113
+ filter: import_zod34.z.string().min(1).max(256).optional(),
3114
+ limit: import_zod34.z.int().min(1).max(1e3).default(200)
3115
+ });
3116
+ var WindowsService = import_zod34.z.strictObject({
3117
+ name: import_zod34.z.string(),
3118
+ display_name: import_zod34.z.string(),
3119
+ /** Running, Stopped, Paused… as Windows says it. */
3120
+ status: import_zod34.z.string(),
3121
+ /** Automatic, Manual, Disabled…; null where Windows does not say. */
3122
+ start_type: import_zod34.z.string().nullable()
3123
+ });
3124
+ var WindowsServicesResult = import_zod34.z.strictObject({ services: import_zod34.z.array(WindowsService) });
3125
+ var WindowsServiceControlParams = import_zod34.z.strictObject({
3126
+ name: import_zod34.z.string().min(1).max(256),
3127
+ action: import_zod34.z.enum(["start", "stop", "restart"])
3128
+ });
3129
+ var WindowsServiceControlResult = import_zod34.z.strictObject({ name: import_zod34.z.string(), status: import_zod34.z.string() });
3130
+ var WindowsEventLogParams = import_zod34.z.strictObject({
3131
+ log: import_zod34.z.string().min(1).max(256).default("System"),
3132
+ /** Only these levels; absent: all. */
3133
+ levels: import_zod34.z.array(import_zod34.z.enum(["critical", "error", "warning", "information", "verbose"])).max(5).optional(),
3134
+ since_ms: epochMs.optional(),
3135
+ limit: import_zod34.z.int().min(1).max(500).default(50)
3136
+ });
3137
+ var WindowsEvent = import_zod34.z.strictObject({
3138
+ id: import_zod34.z.int(),
3139
+ level: import_zod34.z.string(),
3140
+ source: import_zod34.z.string(),
3141
+ at_ms: epochMs,
3142
+ message: import_zod34.z.string()
3143
+ });
3144
+ var WindowsEventLogResult = import_zod34.z.strictObject({ log: import_zod34.z.string(), events: import_zod34.z.array(WindowsEvent) });
3145
+ var WindowsFeaturesParams = import_zod34.z.strictObject({ filter: import_zod34.z.string().min(1).max(256).optional() });
3146
+ var WindowsFeature = import_zod34.z.strictObject({ name: import_zod34.z.string(), state: import_zod34.z.string() });
3147
+ var WindowsFeaturesResult = import_zod34.z.strictObject({ features: import_zod34.z.array(WindowsFeature) });
3148
+
3149
+ // src/schema/schedule.ts
3150
+ var import_zod35 = require("zod");
3151
+ var OpRef = import_zod35.z.string().min(3).max(128).regex(/^[a-z_]+(\.[a-z_]+)+$/);
3152
+ var ScheduleCreateParams = import_zod35.z.strictObject({
3153
+ name: import_zod35.z.string().min(1).max(200),
3154
+ op: OpRef,
3155
+ /** The op's params, exactly as the op takes them; checked when the task is created. */
3156
+ params: import_zod35.z.record(import_zod35.z.string(), import_zod35.z.unknown()).default({}),
3157
+ interval_s: import_zod35.z.int().min(10).max(2592e3),
3158
+ /** Stop after this many runs; absent: until cancelled. */
3159
+ max_runs: import_zod35.z.int().min(1).max(1e5).optional(),
3160
+ /** Run once now, before the first interval. */
3161
+ run_now: import_zod35.z.boolean().default(false)
3162
+ });
3163
+ var ScheduleRun = import_zod35.z.strictObject({
3164
+ at_ms: epochMs,
3165
+ ok: import_zod35.z.boolean(),
3166
+ elapsed_ms: nonNegInt,
3167
+ /** The error's code and message when the run failed. */
3168
+ error: import_zod35.z.string().nullable(),
3169
+ /** The start of the answer, as JSON (cut at 4 KiB). */
3170
+ result_preview: import_zod35.z.string().nullable()
3171
+ });
3172
+ var ScheduledTask = import_zod35.z.strictObject({
3173
+ id: import_zod35.z.string(),
3174
+ name: import_zod35.z.string(),
3175
+ op: import_zod35.z.string(),
3176
+ params: import_zod35.z.record(import_zod35.z.string(), import_zod35.z.unknown()),
3177
+ interval_s: nonNegInt,
3178
+ max_runs: nonNegInt.nullable(),
3179
+ runs: nonNegInt,
3180
+ created_at_ms: epochMs,
3181
+ next_run_at_ms: epochMs.nullable(),
3182
+ /** active, done (ran max_runs), cancelled. */
3183
+ state: import_zod35.z.enum(["active", "done", "cancelled"]),
3184
+ /** The newest runs, newest first (at most 10). */
3185
+ recent: import_zod35.z.array(ScheduleRun)
3186
+ });
3187
+ var ScheduleCreateResult = import_zod35.z.strictObject({ task: ScheduledTask });
3188
+ var ScheduleListParams = import_zod35.z.strictObject({ include_finished: import_zod35.z.boolean().default(false) });
3189
+ var ScheduleListResult = import_zod35.z.strictObject({ tasks: import_zod35.z.array(ScheduledTask) });
3190
+ var ScheduleCancelParams = import_zod35.z.strictObject({ id: import_zod35.z.string().min(1).max(64) });
3191
+ var ScheduleCancelResult = import_zod35.z.strictObject({ task: ScheduledTask });
3192
+
3193
+ // src/schema/notes.ts
3194
+ var import_zod36 = require("zod");
3195
+ var NoteFolder = import_zod36.z.string().min(1).max(512).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*$/);
3196
+ var NotePath = import_zod36.z.string().min(4).max(1024).regex(/^[^/\\:*?"<>|][^\\:*?"<>|]*\.md$/);
3197
+ var NotesFoldersParams = import_zod36.z.strictObject({});
3198
+ var NotesFolder = import_zod36.z.strictObject({ folder: import_zod36.z.string(), notes: nonNegInt });
3199
+ var NotesFoldersResult = import_zod36.z.strictObject({
3200
+ /** The notes root on this computer. */
3201
+ root: import_zod36.z.string(),
3202
+ folders: import_zod36.z.array(NotesFolder)
3203
+ });
3204
+ var NotesListParams = import_zod36.z.strictObject({
3205
+ folder: NoteFolder.optional(),
3206
+ limit: import_zod36.z.int().min(1).max(2e3).default(500)
3207
+ });
3208
+ var NoteEntry = import_zod36.z.strictObject({
3209
+ path: import_zod36.z.string(),
3210
+ label: import_zod36.z.string(),
3211
+ folder: import_zod36.z.string(),
3212
+ bytes: nonNegInt,
3213
+ modified_at_ms: epochMs
3214
+ });
3215
+ var NotesListResult = import_zod36.z.strictObject({ root: import_zod36.z.string(), notes: import_zod36.z.array(NoteEntry), total: nonNegInt });
3216
+ var NotesReadParams = import_zod36.z.strictObject({ path: NotePath });
3217
+ var NotesReadResult = import_zod36.z.strictObject({
3218
+ path: import_zod36.z.string(),
3219
+ content: import_zod36.z.string(),
3220
+ bytes: nonNegInt,
3221
+ modified_at_ms: epochMs,
3222
+ /** SHA-256 of the content: pass it back as `if_hash` to write only over this version. */
3223
+ hash: import_zod36.z.string()
3224
+ });
3225
+ var NotesWriteParams = import_zod36.z.strictObject({
3226
+ folder: NoteFolder.default("General"),
3227
+ /** The note's name, without ".md". */
3228
+ label: import_zod36.z.string().min(1).max(200).regex(/^[^/\\:*?"<>|]+$/),
3229
+ content: import_zod36.z.string().max(10485760),
3230
+ /** Write only when the note is still this version (notes.read's hash); a change since answers CONFLICT. */
3231
+ if_hash: import_zod36.z.string().length(64).optional()
3232
+ });
3233
+ var NotesWriteResult = import_zod36.z.strictObject({ path: import_zod36.z.string(), bytes: nonNegInt, created: import_zod36.z.boolean(), hash: import_zod36.z.string() });
3234
+ var NotesSearchParams = import_zod36.z.strictObject({
3235
+ query: import_zod36.z.string().min(1).max(512),
3236
+ limit: import_zod36.z.int().min(1).max(200).default(50)
3237
+ });
3238
+ var NotesMatch = import_zod36.z.strictObject({
3239
+ path: import_zod36.z.string(),
3240
+ label: import_zod36.z.string(),
3241
+ folder: import_zod36.z.string(),
3242
+ /** The matching lines (at most five), trimmed. */
3243
+ lines: import_zod36.z.array(import_zod36.z.string())
3244
+ });
3245
+ var NotesSearchResult = import_zod36.z.strictObject({ matches: import_zod36.z.array(NotesMatch), total: nonNegInt });
3246
+
3247
+ // src/schema/documents.ts
3248
+ var import_zod37 = require("zod");
3249
+ var DOCUMENTS_MAX_TEXT_CHARS = 1048576;
3250
+ var DocumentsPdfTextParams = import_zod37.z.strictObject({
3251
+ path: AbsPath,
3252
+ /** 1-based, inclusive. */
3253
+ first_page: import_zod37.z.int().min(1).optional(),
3254
+ last_page: import_zod37.z.int().min(1).optional(),
3255
+ max_chars: import_zod37.z.int().min(1).max(DOCUMENTS_MAX_TEXT_CHARS).default(2e5)
3256
+ });
3257
+ var DocumentsPdfPage = import_zod37.z.strictObject({ page: import_zod37.z.int().min(1), text: import_zod37.z.string() });
3258
+ var DocumentsPdfTextResult = import_zod37.z.strictObject({
3259
+ pages: nonNegInt,
3260
+ /** Each page read, in order (an image-only page has empty text: OCR it). */
3261
+ read: import_zod37.z.array(DocumentsPdfPage),
3262
+ truncated: import_zod37.z.boolean(),
3263
+ title: import_zod37.z.string().nullable(),
3264
+ author: import_zod37.z.string().nullable()
3265
+ });
3266
+ var DocumentsOcrParams = import_zod37.z.strictObject({
3267
+ path: AbsPath,
3268
+ /** BCP-47 language hints ("en-US", "fr-FR"); absent: the OS's own choice. */
3269
+ languages: import_zod37.z.array(import_zod37.z.string().min(2).max(16)).max(8).optional(),
3270
+ /** Faster, less accurate. */
3271
+ fast: import_zod37.z.boolean().default(false)
3272
+ });
3273
+ var DocumentsOcrLine = import_zod37.z.strictObject({
3274
+ text: import_zod37.z.string(),
3275
+ /** 0–1; null where the engine does not say. */
3276
+ confidence: import_zod37.z.number().min(0).max(1).nullable()
3277
+ });
3278
+ var DocumentsOcrResult = import_zod37.z.strictObject({
3279
+ text: import_zod37.z.string(),
3280
+ lines: import_zod37.z.array(DocumentsOcrLine),
3281
+ truncated: import_zod37.z.boolean(),
3282
+ /** Which engine read it ("vision" on macOS, "windows-ocr", "tesseract"). */
3283
+ engine: import_zod37.z.string()
3284
+ });
3285
+ var DocumentsImageResizeParams = import_zod37.z.strictObject({
3286
+ path: AbsPath,
3287
+ /** Where to write it; absent: next to the original, "<name>-resized.<ext>". */
3288
+ out_path: AbsPath.optional(),
3289
+ /** The longest side, kept in proportion; absent: the size stays (a format change only). */
3290
+ max_size: import_zod37.z.int().min(1).max(32768).optional(),
3291
+ format: import_zod37.z.enum(["png", "jpeg", "tiff", "heic", "bmp", "gif"]).optional(),
3292
+ overwrite: import_zod37.z.boolean().default(false)
3293
+ });
3294
+ var DocumentsImageResizeResult = import_zod37.z.strictObject({
3295
+ path: import_zod37.z.string(),
3296
+ width: nonNegInt,
3297
+ height: nonNegInt,
3298
+ bytes: nonNegInt
3299
+ });
3300
+ var DocumentsParagraph = import_zod37.z.strictObject({
3301
+ style: import_zod37.z.enum(["title", "heading1", "heading2", "heading3", "body", "bullet", "numbered", "quote", "code"]).default("body"),
3302
+ text: import_zod37.z.string().max(1e5)
3303
+ });
3304
+ var DocumentsSheet = import_zod37.z.strictObject({
3305
+ name: import_zod37.z.string().min(1).max(31),
3306
+ /** Rows of cells; the first row is the header when `header` is true. */
3307
+ rows: import_zod37.z.array(import_zod37.z.array(import_zod37.z.union([import_zod37.z.string().max(32767), import_zod37.z.number(), import_zod37.z.boolean(), import_zod37.z.null()])).max(16384)).max(1e5),
3308
+ header: import_zod37.z.boolean().default(true)
3309
+ });
3310
+ var DocumentsOfficeGenerateParams = import_zod37.z.strictObject({
3311
+ kind: import_zod37.z.enum(["docx", "xlsx"]),
3312
+ path: AbsPath,
3313
+ title: import_zod37.z.string().max(1024).optional(),
3314
+ /** docx: the document's paragraphs, in order. */
3315
+ paragraphs: import_zod37.z.array(DocumentsParagraph).max(5e4).optional(),
3316
+ /** xlsx: the workbook's sheets, in order. */
3317
+ sheets: import_zod37.z.array(DocumentsSheet).min(1).max(64).optional(),
3318
+ overwrite: import_zod37.z.boolean().default(false)
3319
+ });
3320
+ var DocumentsOfficeGenerateResult = import_zod37.z.strictObject({ path: import_zod37.z.string(), bytes: nonNegInt });
3321
+ var EntitiesNerParams = import_zod37.z.strictObject({
3322
+ text: import_zod37.z.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
3323
+ /** Which kinds to keep; absent: all three. */
3324
+ labels: import_zod37.z.array(import_zod37.z.enum(["person", "place", "organization"])).min(1).max(3).optional()
3325
+ });
3326
+ var EntitySpan = import_zod37.z.strictObject({
3327
+ text: import_zod37.z.string(),
3328
+ label: import_zod37.z.string(),
3329
+ /** Character offsets into the text (UTF-16, as JavaScript counts). */
3330
+ start: nonNegInt,
3331
+ end: nonNegInt
3332
+ });
3333
+ var EntitiesNerResult = import_zod37.z.strictObject({ entities: import_zod37.z.array(EntitySpan), engine: import_zod37.z.string() });
3334
+ var PiiKind = import_zod37.z.enum(["email", "phone", "credit_card", "us_ssn", "iban", "ip_address", "url", "api_key"]);
3335
+ var EntitiesPiiParams = import_zod37.z.strictObject({
3336
+ text: import_zod37.z.string().min(1).max(DOCUMENTS_MAX_TEXT_CHARS),
3337
+ kinds: import_zod37.z.array(PiiKind).min(1).max(8).optional(),
3338
+ /** Also answer the text with each finding replaced by its kind ("[email]"). */
3339
+ redact: import_zod37.z.boolean().default(false)
3340
+ });
3341
+ var EntitiesPiiResult = import_zod37.z.strictObject({
3342
+ findings: import_zod37.z.array(import_zod37.z.strictObject({ kind: PiiKind, text: import_zod37.z.string(), start: nonNegInt, end: nonNegInt })),
3343
+ redacted: import_zod37.z.string().nullable()
3344
+ });
3345
+
2733
3346
  // src/schema/registry.ts
2734
3347
  var FS_ERR = ["NOT_FOUND", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "RESOURCE_BUSY", "INTERNAL"];
2735
3348
  var OPS = {
@@ -2894,7 +3507,55 @@ var OPS = {
2894
3507
  "browser.set_enabled": { params: BrowserSetEnabledParams, result: BrowserSetEnabledResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2895
3508
  "browser.pair_code": { params: BrowserPairCodeParams, result: BrowserPairCodeResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2896
3509
  "browser.pair_reset": { params: BrowserPairResetParams, result: BrowserPairCodeResult, kind: "unary", since: "1.28", errors: ["AUTH_FORBIDDEN", "INTERNAL"] },
2897
- "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"] }
3510
+ "browser.tool_metrics": { params: BrowserToolMetricsParams, result: BrowserToolMetricsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
3511
+ "browser.reset_counters": { params: BrowserResetCountersParams, result: BrowserResetCountersResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
3512
+ "browser.log": { params: BrowserLogParams, result: BrowserLogResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS"] },
3513
+ "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"] },
3514
+ // 1.37: Matrx Local's remaining sidecar tools in the core (net, automation, the person's apps,
3515
+ // Windows administration, schedules, local notes, documents and entities).
3516
+ "net.info": { params: NetInfoParams, result: NetInfoResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
3517
+ "net.wifi": { params: NetWifiParams, result: NetWifiResult, kind: "unary", since: "1.37", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3518
+ "net.bluetooth": { params: NetBluetoothParams, result: NetBluetoothResult, kind: "unary", since: "1.37", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3519
+ "net.devices": { params: NetDevicesParams, result: NetDevicesResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3520
+ "net.mdns": { params: NetMdnsParams, result: NetMdnsResult, kind: "unary", since: "1.37", errors: ["PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3521
+ "net.scan": { params: NetScanParams, result: NetScanResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "AUTH_FORBIDDEN", "TIMEOUT", "INTERNAL"] },
3522
+ "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"] },
3523
+ "automation.script": { params: AutomationScriptParams, result: AutomationScriptResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3524
+ "mail.accounts": { params: MailAccountsParams, result: MailAccountsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3525
+ "mail.list": { params: MailListParams, result: MailListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3526
+ "mail.send": { params: MailSendParams, result: MailSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3527
+ "messages.chats": { params: MessagesChatsParams, result: MessagesChatsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3528
+ "messages.list": { params: MessagesListParams, result: MessagesListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3529
+ "messages.send": { params: MessagesSendParams, result: MessagesSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3530
+ "contacts.search": { params: ContactsSearchParams, result: ContactsSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3531
+ "contacts.get": { params: ContactsGetParams, result: ContactsGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3532
+ "calendar.list": { params: CalendarListParams, result: CalendarListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3533
+ "calendar.create": { params: CalendarCreateParams, result: CalendarCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3534
+ "reminders.list": { params: RemindersListParams, result: RemindersListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3535
+ "reminders.create": { params: RemindersCreateParams, result: RemindersCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3536
+ "photos.search": { params: PhotosSearchParams, result: PhotosSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3537
+ "photos.get": { params: PhotosGetParams, result: PhotosGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3538
+ "location.get": { params: LocationGetParams, result: LocationGetResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3539
+ "windows.registry_read": { params: WindowsRegistryReadParams, result: WindowsRegistryReadResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3540
+ "windows.registry_write": { params: WindowsRegistryWriteParams, result: WindowsRegistryWriteResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3541
+ "windows.services": { params: WindowsServicesParams, result: WindowsServicesResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3542
+ "windows.service_control": { params: WindowsServiceControlParams, result: WindowsServiceControlResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3543
+ "windows.event_log": { params: WindowsEventLogParams, result: WindowsEventLogResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3544
+ "windows.features": { params: WindowsFeaturesParams, result: WindowsFeaturesResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3545
+ "schedule.create": { params: ScheduleCreateParams, result: ScheduleCreateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3546
+ "schedule.list": { params: ScheduleListParams, result: ScheduleListResult, kind: "unary", since: "1.37", errors: ["INTERNAL"] },
3547
+ "schedule.cancel": { params: ScheduleCancelParams, result: ScheduleCancelResult, kind: "unary", since: "1.37", errors: ["NOT_FOUND", "INTERNAL"] },
3548
+ "notes.folders": { params: NotesFoldersParams, result: NotesFoldersResult, kind: "unary", since: "1.37", errors: ["INTERNAL"] },
3549
+ "notes.list": { params: NotesListParams, result: NotesListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3550
+ "notes.read": { params: NotesReadParams, result: NotesReadResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "INTERNAL"] },
3551
+ "notes.write": { params: NotesWriteParams, result: NotesWriteResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "CONFLICT", "PERMISSION_DENIED_OS", "INTERNAL"] },
3552
+ "notes.search": { params: NotesSearchParams, result: NotesSearchResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "INTERNAL"] },
3553
+ "documents.pdf_text": { params: DocumentsPdfTextParams, result: DocumentsPdfTextResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3554
+ "documents.ocr": { params: DocumentsOcrParams, result: DocumentsOcrResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3555
+ "documents.image_resize": { params: DocumentsImageResizeParams, result: DocumentsImageResizeResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3556
+ "documents.office_generate": { params: DocumentsOfficeGenerateParams, result: DocumentsOfficeGenerateResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "INTERNAL"] },
3557
+ "entities.ner": { params: EntitiesNerParams, result: EntitiesNerResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
3558
+ "entities.pii": { params: EntitiesPiiParams, result: EntitiesPiiResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "INTERNAL"] }
2898
3559
  };
2899
3560
  var EVENTS = {
2900
3561
  "fs.changed": FsChangedEvent,