@tickernelz/paperclip-pro-shared 2026.1002.7 → 2026.1004.0

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.
Files changed (84) hide show
  1. package/dist/.paperclip-build-complete +1 -1
  2. package/dist/app-definitions/openwa.json +70 -0
  3. package/dist/app-definitions-url.test.js +5 -0
  4. package/dist/app-definitions-url.test.js.map +1 -1
  5. package/dist/app-definitions.d.ts.map +1 -1
  6. package/dist/app-definitions.generated.d.ts.map +1 -1
  7. package/dist/app-definitions.generated.js +68 -67
  8. package/dist/app-definitions.generated.js.map +1 -1
  9. package/dist/app-definitions.js +13 -1
  10. package/dist/app-definitions.js.map +1 -1
  11. package/dist/app-definitions.test.js +1 -1
  12. package/dist/constants.d.ts +5 -2
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +6 -2
  15. package/dist/constants.js.map +1 -1
  16. package/dist/index.d.ts +5 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/issue-thread-interactions.test.js +8 -0
  21. package/dist/issue-thread-interactions.test.js.map +1 -1
  22. package/dist/openwa-operations.d.ts +51 -0
  23. package/dist/openwa-operations.d.ts.map +1 -0
  24. package/dist/openwa-operations.js +9749 -0
  25. package/dist/openwa-operations.js.map +1 -0
  26. package/dist/openwa-operations.test.d.ts +2 -0
  27. package/dist/openwa-operations.test.d.ts.map +1 -0
  28. package/dist/openwa-operations.test.js +60 -0
  29. package/dist/openwa-operations.test.js.map +1 -0
  30. package/dist/openwa-tools.d.ts +269 -0
  31. package/dist/openwa-tools.d.ts.map +1 -0
  32. package/dist/openwa-tools.js +147 -0
  33. package/dist/openwa-tools.js.map +1 -0
  34. package/dist/openwa-tools.test.d.ts +2 -0
  35. package/dist/openwa-tools.test.d.ts.map +1 -0
  36. package/dist/openwa-tools.test.js +82 -0
  37. package/dist/openwa-tools.test.js.map +1 -0
  38. package/dist/settings-visibility.d.ts +1 -1
  39. package/dist/settings-visibility.d.ts.map +1 -1
  40. package/dist/settings-visibility.js +1 -0
  41. package/dist/settings-visibility.js.map +1 -1
  42. package/dist/types/app-definition.d.ts +1 -1
  43. package/dist/types/app-definition.d.ts.map +1 -1
  44. package/dist/types/chat-channels.d.ts +263 -1
  45. package/dist/types/chat-channels.d.ts.map +1 -1
  46. package/dist/types/chat-channels.js +47 -0
  47. package/dist/types/chat-channels.js.map +1 -1
  48. package/dist/types/index.d.ts +2 -2
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/types/index.js +1 -1
  51. package/dist/types/index.js.map +1 -1
  52. package/dist/types/instance.d.ts +11 -0
  53. package/dist/types/instance.d.ts.map +1 -1
  54. package/dist/types/instance.js +8 -0
  55. package/dist/types/instance.js.map +1 -1
  56. package/dist/types/issue.d.ts +1 -0
  57. package/dist/types/issue.d.ts.map +1 -1
  58. package/dist/types/tool-access.d.ts +1 -1
  59. package/dist/types/tool-access.d.ts.map +1 -1
  60. package/dist/validators/app-definition.d.ts +3 -0
  61. package/dist/validators/app-definition.d.ts.map +1 -1
  62. package/dist/validators/app-definition.js +1 -1
  63. package/dist/validators/app-definition.js.map +1 -1
  64. package/dist/validators/chat-channels-openwa.test.d.ts +2 -0
  65. package/dist/validators/chat-channels-openwa.test.d.ts.map +1 -0
  66. package/dist/validators/chat-channels-openwa.test.js +155 -0
  67. package/dist/validators/chat-channels-openwa.test.js.map +1 -0
  68. package/dist/validators/chat-channels.d.ts +279 -0
  69. package/dist/validators/chat-channels.d.ts.map +1 -1
  70. package/dist/validators/chat-channels.js +197 -2
  71. package/dist/validators/chat-channels.js.map +1 -1
  72. package/dist/validators/index.d.ts +1 -1
  73. package/dist/validators/index.d.ts.map +1 -1
  74. package/dist/validators/index.js +1 -1
  75. package/dist/validators/index.js.map +1 -1
  76. package/dist/validators/instance.d.ts +24 -0
  77. package/dist/validators/instance.d.ts.map +1 -1
  78. package/dist/validators/instance.js +45 -1
  79. package/dist/validators/instance.js.map +1 -1
  80. package/dist/validators/issue.d.ts +3 -0
  81. package/dist/validators/issue.d.ts.map +1 -1
  82. package/dist/validators/issue.js +2 -1
  83. package/dist/validators/issue.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,269 @@
1
+ import { z } from "zod";
2
+ export declare const OPENWA_TOOL_SCHEMA_BUDGET_BYTES = 12000;
3
+ export declare const OPENWA_TOOL_RESULT_LIMIT_BYTES = 16384;
4
+ export declare const OPENWA_SEND_KINDS: readonly ["text", "image", "video", "audio", "voice", "document", "sticker", "location", "contact", "poll"];
5
+ export type OpenwaSendKind = (typeof OPENWA_SEND_KINDS)[number];
6
+ export type OpenwaToolRisk = "read" | "write";
7
+ export declare const OPENWA_APPROVAL_MESSAGE_MAX_LENGTH = 3500;
8
+ export declare const OPENWA_CONFIG_UI_ONLY_FIELDS: readonly ["credentials", "apiKey", "adminApiKey", "baseUrl", "sessionId", "numberMode", "owners", "gatewayAdminTools"];
9
+ export declare const OPENWA_TOOLS: readonly [{
10
+ name: "openwa_send";
11
+ risk: OpenwaToolRisk;
12
+ description: string;
13
+ schema: z.ZodObject<{
14
+ chat: z.ZodOptional<z.ZodString>;
15
+ kind: z.ZodOptional<z.ZodEnum<{
16
+ audio: "audio";
17
+ contact: "contact";
18
+ document: "document";
19
+ image: "image";
20
+ location: "location";
21
+ poll: "poll";
22
+ sticker: "sticker";
23
+ text: "text";
24
+ video: "video";
25
+ voice: "voice";
26
+ }>>;
27
+ text: z.ZodOptional<z.ZodString>;
28
+ attachmentId: z.ZodOptional<z.ZodString>;
29
+ location: z.ZodOptional<z.ZodObject<{
30
+ lat: z.ZodNumber;
31
+ lng: z.ZodNumber;
32
+ name: z.ZodOptional<z.ZodString>;
33
+ address: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strict>>;
35
+ contact: z.ZodOptional<z.ZodObject<{
36
+ name: z.ZodString;
37
+ number: z.ZodString;
38
+ }, z.core.$strict>>;
39
+ poll: z.ZodOptional<z.ZodObject<{
40
+ question: z.ZodString;
41
+ options: z.ZodArray<z.ZodString>;
42
+ multi: z.ZodOptional<z.ZodBoolean>;
43
+ }, z.core.$strict>>;
44
+ mentions: z.ZodOptional<z.ZodArray<z.ZodString>>;
45
+ quoteMessageId: z.ZodOptional<z.ZodString>;
46
+ idempotencyKey: z.ZodString;
47
+ }, z.core.$strict>;
48
+ inputSchema: {
49
+ [x: string]: unknown;
50
+ };
51
+ }, {
52
+ name: "openwa_read_chat";
53
+ risk: OpenwaToolRisk;
54
+ description: string;
55
+ schema: z.ZodObject<{
56
+ chat: z.ZodOptional<z.ZodString>;
57
+ source: z.ZodOptional<z.ZodEnum<{
58
+ live: "live";
59
+ stored: "stored";
60
+ }>>;
61
+ cursor: z.ZodOptional<z.ZodString>;
62
+ limit: z.ZodOptional<z.ZodNumber>;
63
+ deep: z.ZodOptional<z.ZodBoolean>;
64
+ }, z.core.$strict>;
65
+ inputSchema: {
66
+ [x: string]: unknown;
67
+ };
68
+ }, {
69
+ name: "openwa_get_media";
70
+ risk: OpenwaToolRisk;
71
+ description: string;
72
+ schema: z.ZodObject<{
73
+ chat: z.ZodOptional<z.ZodString>;
74
+ messageId: z.ZodString;
75
+ }, z.core.$strict>;
76
+ inputSchema: {
77
+ [x: string]: unknown;
78
+ };
79
+ }, {
80
+ name: "openwa_find";
81
+ risk: OpenwaToolRisk;
82
+ description: string;
83
+ schema: z.ZodObject<{
84
+ query: z.ZodOptional<z.ZodString>;
85
+ phone: z.ZodOptional<z.ZodString>;
86
+ lid: z.ZodOptional<z.ZodString>;
87
+ cursor: z.ZodOptional<z.ZodString>;
88
+ }, z.core.$strict>;
89
+ inputSchema: {
90
+ [x: string]: unknown;
91
+ };
92
+ }, {
93
+ name: "openwa_request_approval";
94
+ risk: OpenwaToolRisk;
95
+ description: string;
96
+ schema: z.ZodObject<{
97
+ categories: z.ZodOptional<z.ZodArray<z.ZodEnum<{
98
+ create_task: "create_task";
99
+ cross_chat_send: "cross_chat_send";
100
+ external_tools: "external_tools";
101
+ gateway_admin: "gateway_admin";
102
+ reply: "reply";
103
+ reply_outside_allowlist: "reply_outside_allowlist";
104
+ wa_admin: "wa_admin";
105
+ }>>>;
106
+ scope: z.ZodOptional<z.ZodEnum<{
107
+ one_action: "one_action";
108
+ requester: "requester";
109
+ }>>;
110
+ summary: z.ZodOptional<z.ZodString>;
111
+ proposedAction: z.ZodOptional<z.ZodString>;
112
+ messageToOwners: z.ZodString;
113
+ remindRequestId: z.ZodOptional<z.ZodString>;
114
+ idempotencyKey: z.ZodString;
115
+ }, z.core.$strict>;
116
+ inputSchema: {
117
+ [x: string]: unknown;
118
+ };
119
+ }, {
120
+ name: "openwa_approval_resolve";
121
+ risk: OpenwaToolRisk;
122
+ description: string;
123
+ schema: z.ZodObject<{
124
+ requestId: z.ZodString;
125
+ decision: z.ZodEnum<{
126
+ approve: "approve";
127
+ clarify: "clarify";
128
+ reject: "reject";
129
+ }>;
130
+ conditions: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strict>;
132
+ inputSchema: {
133
+ [x: string]: unknown;
134
+ };
135
+ }, {
136
+ name: "openwa_stay_silent";
137
+ risk: OpenwaToolRisk;
138
+ description: string;
139
+ schema: z.ZodObject<{
140
+ triggerIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
141
+ }, z.core.$strict>;
142
+ inputSchema: {
143
+ [x: string]: unknown;
144
+ };
145
+ }, {
146
+ name: "openwa_handoff";
147
+ risk: OpenwaToolRisk;
148
+ description: string;
149
+ schema: z.ZodObject<{
150
+ triggerIds: z.ZodArray<z.ZodString>;
151
+ note: z.ZodString;
152
+ }, z.core.$strict>;
153
+ inputSchema: {
154
+ [x: string]: unknown;
155
+ };
156
+ }, {
157
+ name: "openwa_catalog";
158
+ risk: OpenwaToolRisk;
159
+ description: string;
160
+ schema: z.ZodObject<{
161
+ category: z.ZodOptional<z.ZodEnum<{
162
+ gateway_admin: "gateway_admin";
163
+ paperclip: "paperclip";
164
+ read: "read";
165
+ wa_admin: "wa_admin";
166
+ write: "write";
167
+ }>>;
168
+ query: z.ZodOptional<z.ZodString>;
169
+ cursor: z.ZodOptional<z.ZodString>;
170
+ }, z.core.$strict>;
171
+ inputSchema: {
172
+ [x: string]: unknown;
173
+ };
174
+ }, {
175
+ name: "openwa_endpoint_config";
176
+ risk: OpenwaToolRisk;
177
+ description: string;
178
+ schema: z.ZodObject<{
179
+ senders: z.ZodOptional<z.ZodObject<{
180
+ add: z.ZodOptional<z.ZodArray<z.ZodObject<{
181
+ list: z.ZodEnum<{
182
+ allow: "allow";
183
+ deny: "deny";
184
+ }>;
185
+ number: z.ZodString;
186
+ label: z.ZodOptional<z.ZodString>;
187
+ }, z.core.$strict>>>;
188
+ remove: z.ZodOptional<z.ZodArray<z.ZodObject<{
189
+ list: z.ZodEnum<{
190
+ allow: "allow";
191
+ deny: "deny";
192
+ }>;
193
+ number: z.ZodString;
194
+ }, z.core.$strict>>>;
195
+ }, z.core.$strict>>;
196
+ chat: z.ZodOptional<z.ZodString>;
197
+ chatSettings: z.ZodOptional<z.ZodObject<{
198
+ activation: z.ZodOptional<z.ZodEnum<{
199
+ auto: "auto";
200
+ off: "off";
201
+ on: "on";
202
+ }>>;
203
+ triggers: z.ZodOptional<z.ZodNullable<z.ZodObject<{
204
+ directMessage: z.ZodOptional<z.ZodBoolean>;
205
+ agentMentioned: z.ZodOptional<z.ZodBoolean>;
206
+ replyToAgent: z.ZodOptional<z.ZodBoolean>;
207
+ commandPrefix: z.ZodOptional<z.ZodObject<{
208
+ enabled: z.ZodOptional<z.ZodBoolean>;
209
+ prefix: z.ZodOptional<z.ZodString>;
210
+ }, z.core.$strict>>;
211
+ selfChat: z.ZodOptional<z.ZodBoolean>;
212
+ ownerMentionedAbsent: z.ZodOptional<z.ZodBoolean>;
213
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ allMessages: z.ZodOptional<z.ZodBoolean>;
215
+ }, z.core.$strict>>>;
216
+ absenceSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
217
+ replyPolicy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
218
+ allowed: "allowed";
219
+ ask_owner: "ask_owner";
220
+ owner_absent_only: "owner_absent_only";
221
+ }>>>;
222
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
223
+ }, z.core.$strict>>;
224
+ approvals: z.ZodOptional<z.ZodObject<{
225
+ createTask: z.ZodOptional<z.ZodBoolean>;
226
+ externalTools: z.ZodOptional<z.ZodBoolean>;
227
+ crossChatSend: z.ZodOptional<z.ZodBoolean>;
228
+ waAdmin: z.ZodOptional<z.ZodBoolean>;
229
+ gatewayAdmin: z.ZodOptional<z.ZodBoolean>;
230
+ reminderMinutes: z.ZodOptional<z.ZodNumber>;
231
+ maxReminders: z.ZodOptional<z.ZodNumber>;
232
+ }, z.core.$strict>>;
233
+ customInstructions: z.ZodOptional<z.ZodString>;
234
+ }, z.core.$strict>;
235
+ inputSchema: {
236
+ [x: string]: unknown;
237
+ };
238
+ }, {
239
+ name: "openwa_describe";
240
+ risk: OpenwaToolRisk;
241
+ description: string;
242
+ schema: z.ZodObject<{
243
+ operation: z.ZodString;
244
+ }, z.core.$strict>;
245
+ inputSchema: {
246
+ [x: string]: unknown;
247
+ };
248
+ }, {
249
+ name: "openwa_call";
250
+ risk: OpenwaToolRisk;
251
+ description: string;
252
+ schema: z.ZodObject<{
253
+ operation: z.ZodString;
254
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
255
+ idempotencyKey: z.ZodOptional<z.ZodString>;
256
+ cursor: z.ZodOptional<z.ZodString>;
257
+ }, z.core.$strict>;
258
+ inputSchema: {
259
+ [x: string]: unknown;
260
+ };
261
+ }];
262
+ export type OpenwaToolName = (typeof OPENWA_TOOLS)[number]["name"];
263
+ export type OpenwaToolDescriptor = (typeof OPENWA_TOOLS)[number];
264
+ export declare function openwaTool(name: string): OpenwaToolDescriptor | undefined;
265
+ export declare const openwaToolCallSchema: z.ZodObject<{
266
+ tool: z.ZodString;
267
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
268
+ }, z.core.$strict>;
269
+ //# sourceMappingURL=openwa-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openwa-tools.d.ts","sourceRoot":"","sources":["../src/openwa-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,iBAAiB,YAAI,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAC7I,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAU9C,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAEvD,eAAO,MAAM,4BAA4B,YAAI,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,CAAU,CAAC;AAgBnK,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgKf,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEzE;AAED,eAAO,MAAM,oBAAoB;;;kBAKtB,CAAC"}
@@ -0,0 +1,147 @@
1
+ import { z } from "zod";
2
+ import { OPENWA_CHAT_NOTE_MAX_LENGTH, OPENWA_CUSTOM_INSTRUCTIONS_MAX_LENGTH, openwaChatActivationSchema, openwaReplyPolicySchema, openwaTriggerOverridesSchema, } from "./validators/chat-channels.js";
3
+ export const OPENWA_TOOL_SCHEMA_BUDGET_BYTES = 12_000;
4
+ export const OPENWA_TOOL_RESULT_LIMIT_BYTES = 16_384;
5
+ export const OPENWA_SEND_KINDS = ["text", "image", "video", "audio", "voice", "document", "sticker", "location", "contact", "poll"];
6
+ const chat = z.string().min(3).max(200).optional().describe("chatRef, group id or E.164 number; default: origin chat");
7
+ const e164 = z.string().regex(/^\+?[1-9]\d{6,14}$/);
8
+ const messageId = z.string().min(1).max(200);
9
+ const mention = z.string().regex(/^(\+?[1-9]\d{6,14}|openwa:[A-Za-z0-9-]{1,64}:\d{5,25}@(c\.us|lid))$/);
10
+ const triggerIds = z.array(z.string().uuid()).min(1).max(50);
11
+ const operation = z.string().min(1).max(100);
12
+ const cursor = z.string().min(1).max(200).optional();
13
+ const GRANT_CATEGORIES = ["create_task", "external_tools", "cross_chat_send", "wa_admin", "gateway_admin", "reply_outside_allowlist", "reply"];
14
+ export const OPENWA_APPROVAL_MESSAGE_MAX_LENGTH = 3500;
15
+ const MEDIA_KINDS = new Set(["image", "video", "audio", "voice", "document", "sticker"]);
16
+ export const OPENWA_CONFIG_UI_ONLY_FIELDS = ["credentials", "apiKey", "adminApiKey", "baseUrl", "sessionId", "numberMode", "owners", "gatewayAdminTools"];
17
+ const senderRule = z.object({ list: z.enum(["allow", "deny"]), number: e164 }).strict();
18
+ function tool(name, risk, description, shape, refine) {
19
+ const base = z.object(shape).strict();
20
+ const schema = refine ? base.superRefine(refine) : base;
21
+ const { $schema: _schema, ...inputSchema } = z.toJSONSchema(schema, { io: "input" });
22
+ return { name: `openwa_${name}`, risk, description, schema, inputSchema };
23
+ }
24
+ export const OPENWA_TOOLS = [
25
+ tool("send", "write", "Send to a WhatsApp chat (default origin chat). text is markdown. Media comes from a task attachment. mentions: E.164 numbers or DM chatRefs; @tokens are added for you. Retry only with the same idempotencyKey; an uncertain send is reconciled, never resent.", {
26
+ chat,
27
+ kind: z.enum(OPENWA_SEND_KINDS).optional(),
28
+ text: z.string().min(1).max(20_000).optional(),
29
+ attachmentId: z.string().uuid().optional(),
30
+ location: z.object({ lat: z.number().min(-90).max(90), lng: z.number().min(-180).max(180), name: z.string().max(256).optional(), address: z.string().max(1024).optional() }).strict().optional(),
31
+ contact: z.object({ name: z.string().min(1).max(255), number: e164 }).strict().optional(),
32
+ poll: z.object({ question: z.string().min(1).max(255), options: z.array(z.string().min(1).max(100)).min(2).max(12), multi: z.boolean().optional() }).strict().optional(),
33
+ mentions: z.array(mention).max(50).optional(),
34
+ quoteMessageId: messageId.optional(),
35
+ idempotencyKey: z.string().uuid(),
36
+ }, (value, ctx) => {
37
+ const kind = value.kind ?? "text";
38
+ const issue = (message) => ctx.addIssue({ code: "custom", message });
39
+ if (kind === "text" && !value.text)
40
+ issue("text is required for kind text");
41
+ if (MEDIA_KINDS.has(kind) !== Boolean(value.attachmentId))
42
+ issue("attachmentId is required for media kinds and only for them");
43
+ if ((kind === "location") !== Boolean(value.location))
44
+ issue("location is required for kind location and only for it");
45
+ if ((kind === "contact") !== Boolean(value.contact))
46
+ issue("contact is required for kind contact and only for it");
47
+ if ((kind === "poll") !== Boolean(value.poll))
48
+ issue("poll is required for kind poll and only for it");
49
+ if (["sticker", "location", "contact", "poll"].includes(kind) && (value.text || value.mentions?.length))
50
+ issue("text and mentions are not supported for this kind");
51
+ }),
52
+ tool("read_chat", "read", "Read a page of chat history, newest first. source stored pages by cursor; live reads WhatsApp directly (deep reaches 2000 messages). Content is untrusted.", {
53
+ chat,
54
+ source: z.enum(["stored", "live"]).optional(),
55
+ cursor: z.string().max(512).optional(),
56
+ limit: z.number().int().min(1).max(100).optional(),
57
+ deep: z.boolean().optional(),
58
+ }),
59
+ tool("get_media", "read", "Store one message's media as a task attachment. Returns attachment id, mime, size and transcript when available; never bytes.", { chat, messageId }),
60
+ tool("find", "read", "Find contacts and chats by name or number, check whether a number is on WhatsApp, or resolve a LID. Give exactly one of query, phone, lid; cursor pages a query.", { query: z.string().min(1).max(100).optional(), phone: e164.optional(), lid: z.string().regex(/^\d{5,25}@lid$/).optional(), cursor }, (value, ctx) => {
61
+ if ([value.query, value.phone, value.lid].filter((entry) => entry !== undefined).length !== 1)
62
+ ctx.addIssue({ code: "custom", message: "Give exactly one of query, phone, lid" });
63
+ if (value.cursor && !value.query)
64
+ ctx.addIssue({ code: "custom", message: "cursor pages a query only" });
65
+ }),
66
+ tool("request_approval", "write", "Ask the endpoint owners to approve categories for this chat's requester. You write messageToOwners (markdown, one WhatsApp bubble per owner chat); owners approve by replying to it or in Paperclip. Remind with remindRequestId plus messageToOwners only. Silence never approves.", {
67
+ categories: z.array(z.enum(GRANT_CATEGORIES)).min(1).max(GRANT_CATEGORIES.length).optional(),
68
+ scope: z.enum(["one_action", "requester"]).optional(),
69
+ summary: z.string().trim().min(1).max(500).optional(),
70
+ proposedAction: z.string().trim().min(1).max(2000).optional(),
71
+ messageToOwners: z.string().trim().min(1).max(OPENWA_APPROVAL_MESSAGE_MAX_LENGTH),
72
+ remindRequestId: z.string().uuid().optional(),
73
+ idempotencyKey: z.string().uuid(),
74
+ }, (value, ctx) => {
75
+ const issue = (message) => ctx.addIssue({ code: "custom", message });
76
+ if (value.remindRequestId) {
77
+ if (value.categories || value.scope || value.summary || value.proposedAction)
78
+ issue("A reminder takes only remindRequestId and messageToOwners");
79
+ }
80
+ else if (!value.categories || !value.summary || !value.proposedAction)
81
+ issue("categories, summary and proposedAction are required");
82
+ if (value.categories && new Set(value.categories).size !== value.categories.length)
83
+ issue("categories must be unique");
84
+ }),
85
+ tool("approval_resolve", "write", "Record the owner's decision on an approval request. Only in the run started by that owner's reply to the request bubble. clarify keeps it pending.", {
86
+ requestId: z.string().uuid(),
87
+ decision: z.enum(["approve", "reject", "clarify"]),
88
+ conditions: z.string().trim().min(1).max(2000).optional(),
89
+ }),
90
+ tool("stay_silent", "write", "Deliberately leave triggers unanswered: marks the listed (default all visible pending) triggers silenced.", { triggerIds: triggerIds.optional() }),
91
+ tool("handoff", "write", "Hand owner triggers to a follow-up owner run carrying your note.", { triggerIds, note: z.string().min(1).max(2000) }),
92
+ tool("catalog", "read", "List OpenWA gateway operations with category and availability on this engine and key. Filter by category or text; page with cursor.", {
93
+ category: z.enum(["read", "write", "wa_admin", "gateway_admin", "paperclip"]).optional(),
94
+ query: z.string().min(1).max(100).optional(),
95
+ cursor,
96
+ }),
97
+ tool("endpoint_config", "write", "Owner-triggered runs only: change sender allow/deny lists, one chat's settings (default origin chat; null clears an override), approval toggles and reminders, or custom instructions. Empty call reads them. Credentials, number mode, owners and gateway admin level stay in Paperclip.", {
98
+ senders: z
99
+ .object({
100
+ add: z.array(senderRule.extend({ label: z.string().trim().min(1).max(120).optional() })).max(50).optional(),
101
+ remove: z.array(senderRule).max(50).optional(),
102
+ })
103
+ .strict()
104
+ .optional(),
105
+ chat,
106
+ chatSettings: z
107
+ .object({
108
+ activation: openwaChatActivationSchema.optional(),
109
+ triggers: openwaTriggerOverridesSchema.nullable().optional(),
110
+ absenceSeconds: z.number().int().min(10).max(86_400).nullable().optional(),
111
+ replyPolicy: openwaReplyPolicySchema.nullable().optional(),
112
+ note: z.string().max(OPENWA_CHAT_NOTE_MAX_LENGTH).nullable().optional(),
113
+ })
114
+ .strict()
115
+ .optional(),
116
+ approvals: z
117
+ .object({
118
+ createTask: z.boolean().optional(),
119
+ externalTools: z.boolean().optional(),
120
+ crossChatSend: z.boolean().optional(),
121
+ waAdmin: z.boolean().optional(),
122
+ gatewayAdmin: z.boolean().optional(),
123
+ reminderMinutes: z.number().int().min(1).max(1440).optional(),
124
+ maxReminders: z.number().int().min(0).max(10).optional(),
125
+ })
126
+ .strict()
127
+ .optional(),
128
+ customInstructions: z.string().max(OPENWA_CUSTOM_INSTRUCTIONS_MAX_LENGTH).optional(),
129
+ }),
130
+ tool("describe", "read", "Argument schema and gates of one operation from openwa_catalog.", { operation }),
131
+ tool("call", "write", "Run one catalog operation. args follow openwa_describe; the session is implied. Non-read operations need an idempotencyKey; retry only with the same key.", {
132
+ operation,
133
+ args: z.record(z.string(), z.unknown()).optional(),
134
+ idempotencyKey: z.string().uuid().optional(),
135
+ cursor,
136
+ }),
137
+ ];
138
+ export function openwaTool(name) {
139
+ return OPENWA_TOOLS.find((entry) => entry.name === name);
140
+ }
141
+ export const openwaToolCallSchema = z
142
+ .object({
143
+ tool: z.string().min(1).max(100),
144
+ arguments: z.record(z.string(), z.unknown()),
145
+ })
146
+ .strict();
147
+ //# sourceMappingURL=openwa-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openwa-tools.js","sourceRoot":"","sources":["../src/openwa-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=openwa-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openwa-tools.test.d.ts","sourceRoot":"","sources":["../src/openwa-tools.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { z } from "zod";
3
+ import { OPENWA_CONFIG_UI_ONLY_FIELDS, OPENWA_TOOLS, OPENWA_TOOL_SCHEMA_BUDGET_BYTES, openwaTool } from "./openwa-tools.js";
4
+ describe("OpenWA tool catalog", () => {
5
+ it("keeps every tool schema within the context budget", () => {
6
+ const listing = OPENWA_TOOLS.map(({ name, description, inputSchema }) => ({ name, description, inputSchema }));
7
+ expect(Buffer.byteLength(JSON.stringify(listing))).toBeLessThanOrEqual(OPENWA_TOOL_SCHEMA_BUDGET_BYTES);
8
+ expect(OPENWA_TOOL_SCHEMA_BUDGET_BYTES).toBe(12_000);
9
+ });
10
+ it("exposes the first-class tools with a risk and no run-context arguments", () => {
11
+ expect(OPENWA_TOOLS.map((tool) => [tool.name, tool.risk])).toEqual([
12
+ ["openwa_send", "write"],
13
+ ["openwa_read_chat", "read"],
14
+ ["openwa_get_media", "read"],
15
+ ["openwa_find", "read"],
16
+ ["openwa_request_approval", "write"],
17
+ ["openwa_approval_resolve", "write"],
18
+ ["openwa_stay_silent", "write"],
19
+ ["openwa_handoff", "write"],
20
+ ["openwa_catalog", "read"],
21
+ ["openwa_endpoint_config", "write"],
22
+ ["openwa_describe", "read"],
23
+ ["openwa_call", "write"],
24
+ ]);
25
+ for (const tool of OPENWA_TOOLS) {
26
+ const properties = Object.keys((tool.inputSchema.properties ?? {}));
27
+ for (const forbidden of ["companyId", "endpointId", "sessionId", "issueId", "runId", "profile", "triggerClass"])
28
+ expect(properties).not.toContain(forbidden);
29
+ expect(tool.inputSchema.additionalProperties).toBe(false);
30
+ }
31
+ });
32
+ it("validates send shapes per kind and requires an idempotency key", () => {
33
+ const send = openwaTool("openwa_send").schema;
34
+ const key = "9c0dc094-41b6-4d84-a2f1-1df331774489";
35
+ expect(send.safeParse({ text: "hi", idempotencyKey: key }).success).toBe(true);
36
+ expect(send.safeParse({ text: "hi" }).success).toBe(false);
37
+ expect(send.safeParse({ kind: "image", idempotencyKey: key }).success).toBe(false);
38
+ expect(send.safeParse({ kind: "voice", attachmentId: key, idempotencyKey: key }).success).toBe(true);
39
+ expect(send.safeParse({ kind: "poll", poll: { question: "Lunch?", options: ["a", "b"] }, idempotencyKey: key }).success).toBe(true);
40
+ expect(send.safeParse({ kind: "poll", poll: { question: "Lunch?", options: ["a"] }, idempotencyKey: key }).success).toBe(false);
41
+ expect(send.safeParse({ text: "hi", mentions: ["not-a-number"], idempotencyKey: key }).success).toBe(false);
42
+ expect(send.safeParse({ text: "hi", companyId: key, idempotencyKey: key }).success).toBe(false);
43
+ expect(openwaTool("openwa_find").schema.safeParse({ query: "a", phone: "+628111" }).success).toBe(false);
44
+ expect(z.toJSONSchema(openwaTool("openwa_handoff").schema)).toMatchObject({ required: ["triggerIds", "note"] });
45
+ const call = openwaTool("openwa_call").schema;
46
+ expect(call.safeParse({ operation: "MessageController_sendText", args: { chatId: "x", text: "y" }, idempotencyKey: key }).success).toBe(true);
47
+ expect(call.safeParse({ operation: "MessageController_sendText", sessionId: "s" }).success).toBe(false);
48
+ expect(openwaTool("openwa_catalog").schema.safeParse({ category: "paperclip" }).success).toBe(true);
49
+ expect(openwaTool("openwa_catalog").schema.safeParse({ category: "other" }).success).toBe(false);
50
+ });
51
+ it("validates approval request and reminder shapes", () => {
52
+ const request = openwaTool("openwa_request_approval").schema;
53
+ const key = "9c0dc094-41b6-4d84-a2f1-1df331774489";
54
+ const create = { categories: ["create_task"], summary: "Create a task", proposedAction: "Open a child issue", messageToOwners: "May I?", idempotencyKey: key };
55
+ expect(request.safeParse(create).success).toBe(true);
56
+ expect(request.safeParse({ ...create, categories: [] }).success).toBe(false);
57
+ expect(request.safeParse({ ...create, categories: ["create_task", "create_task"] }).success).toBe(false);
58
+ expect(request.safeParse({ ...create, summary: undefined }).success).toBe(false);
59
+ expect(request.safeParse({ remindRequestId: key, messageToOwners: "Reminder", idempotencyKey: key }).success).toBe(true);
60
+ expect(request.safeParse({ ...create, remindRequestId: key }).success).toBe(false);
61
+ const resolve = openwaTool("openwa_approval_resolve").schema;
62
+ expect(resolve.safeParse({ requestId: key, decision: "approve" }).success).toBe(true);
63
+ expect(resolve.safeParse({ requestId: key, decision: "maybe" }).success).toBe(false);
64
+ });
65
+ it("validates endpoint config shapes and leaves Paperclip-only settings out of the schema", () => {
66
+ const config = openwaTool("openwa_endpoint_config");
67
+ expect(config.schema.safeParse({}).success).toBe(true);
68
+ expect(config.schema.safeParse({ senders: { add: [{ list: "deny", number: "+628111222333" }] } }).success).toBe(true);
69
+ expect(config.schema.safeParse({ senders: { add: [{ list: "block", number: "+628111222333" }] } }).success).toBe(false);
70
+ expect(config.schema.safeParse({ chatSettings: { activation: "on", replyPolicy: null, note: null, triggers: { keywords: ["invoice"] } } }).success).toBe(true);
71
+ expect(config.schema.safeParse({ chatSettings: { activation: "maybe" } }).success).toBe(false);
72
+ expect(config.schema.safeParse({ approvals: { createTask: false, reminderMinutes: 15 } }).success).toBe(true);
73
+ expect(config.schema.safeParse({ approvals: { grantTtlHours: 2 } }).success).toBe(false);
74
+ expect(config.schema.safeParse({ customInstructions: "x".repeat(8001) }).success).toBe(false);
75
+ const properties = Object.keys((config.inputSchema.properties ?? {}));
76
+ for (const field of OPENWA_CONFIG_UI_ONLY_FIELDS) {
77
+ expect(properties).not.toContain(field);
78
+ expect(config.schema.safeParse({ [field]: "x" }).success).toBe(false);
79
+ }
80
+ });
81
+ });
82
+ //# sourceMappingURL=openwa-tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openwa-tools.test.js","sourceRoot":"","sources":["../src/openwa-tools.test.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export type HideableCompanySection = (typeof HIDEABLE_COMPANY_SECTIONS)[number];
51
51
  * (their suffix names a general-settings field) also floor writes to that
52
52
  * field; `deploymentStatus` and `signOut` are read-only UI with no field.
53
53
  */
54
- export declare const HIDEABLE_GENERAL_SECTIONS: readonly ["instance.general.deploymentStatus", "instance.general.censorUsernameInLogs", "instance.general.keyboardShortcuts", "instance.general.backupRetention", "instance.general.feedbackDataSharingPreference", "instance.general.signOut"];
54
+ export declare const HIDEABLE_GENERAL_SECTIONS: readonly ["instance.general.deploymentStatus", "instance.general.censorUsernameInLogs", "instance.general.keyboardShortcuts", "instance.general.backupRetention", "instance.general.feedbackDataSharingPreference", "instance.general.speechToText", "instance.general.signOut"];
55
55
  export type HideableGeneralSection = (typeof HIDEABLE_GENERAL_SECTIONS)[number];
56
56
  /** General sections that are informational UI only, with no settings field. */
57
57
  export declare const UI_ONLY_GENERAL_SECTIONS: readonly ["instance.general.deploymentStatus", "instance.general.signOut"];
@@ -1 +1 @@
1
- {"version":3,"file":"settings-visibility.d.ts","sourceRoot":"","sources":["../src/settings-visibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,YAClC,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,CACX,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,YACjC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,CACR,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,YACpC,wBAAwB,EACxB,2BAA2B,CACnB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,YACpC,mCAAmC,EACnC,uCAAuC,EACvC,oCAAoC,EACpC,kCAAkC,EAClC,gDAAgD,EAChD,0BAA0B,CAClB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,4EAGiB,CAAC;AAEvD,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,kBAAkB,EAAE,CAAC;AAExF,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,2BAA2B,CAE3F;AAED,uFAAuF;AACvF,eAAO,MAAM,2BAA2B,YAAI,sBAAsB,CAAU,CAAC;AAC7E,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,2BAA2B,CAAC;AAEhC,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAO9D,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,oCAAoC,8BAA8B,CAAC;AAEhF,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAiBrF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAET;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAET"}
1
+ {"version":3,"file":"settings-visibility.d.ts","sourceRoot":"","sources":["../src/settings-visibility.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,7 @@ export const HIDEABLE_GENERAL_SECTIONS = [
70
70
  "instance.general.keyboardShortcuts",
71
71
  "instance.general.backupRetention",
72
72
  "instance.general.feedbackDataSharingPreference",
73
+ "instance.general.speechToText",
73
74
  "instance.general.signOut",
74
75
  ];
75
76
  /** General sections that are informational UI only, with no settings field. */
@@ -1 +1 @@
1
- {"version":3,"file":"settings-visibility.js","sourceRoot":"","sources":["../src/settings-visibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-visibility.js","sourceRoot":"","sources":["../src/settings-visibility.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export interface ConnectionMethodDef {
33
33
  key: string;
34
34
  label?: string;
35
35
  purpose?: ToolConnectionPurpose;
36
- provider?: "slack" | "github" | "discord" | "microsoft-teams" | "telegram" | "agentmail" | "imessage-photon";
36
+ provider?: "slack" | "github" | "discord" | "microsoft-teams" | "telegram" | "agentmail" | "imessage-photon" | "openwa";
37
37
  transport: ToolConnectionTransport;
38
38
  auth: "oauth" | "api_key" | "none";
39
39
  oauthStrategy?: "paperclip_cloud_connector" | "paperclip_id_connector";
@@ -1 +1 @@
1
- {"version":3,"file":"app-definition.d.ts","sourceRoot":"","sources":["../../src/types/app-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-definition.d.ts","sourceRoot":"","sources":["../../src/types/app-definition.ts"],"names":[],"mappings":"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"}