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