@arcadeai/arcadejs 1.2.0 → 1.3.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 (112) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +2 -2
  3. package/_shims/index.d.ts +2 -0
  4. package/_shims/index.js +5 -1
  5. package/_shims/index.mjs +5 -1
  6. package/core.d.ts +12 -1
  7. package/core.d.ts.map +1 -1
  8. package/core.js +10 -7
  9. package/core.js.map +1 -1
  10. package/core.mjs +11 -8
  11. package/core.mjs.map +1 -1
  12. package/index.d.mts +6 -2
  13. package/index.d.ts +6 -2
  14. package/index.d.ts.map +1 -1
  15. package/index.js +8 -0
  16. package/index.js.map +1 -1
  17. package/index.mjs +8 -0
  18. package/index.mjs.map +1 -1
  19. package/internal/qs/formats.d.ts +6 -0
  20. package/internal/qs/formats.d.ts.map +1 -0
  21. package/internal/qs/formats.js +11 -0
  22. package/internal/qs/formats.js.map +1 -0
  23. package/internal/qs/formats.mjs +8 -0
  24. package/internal/qs/formats.mjs.map +1 -0
  25. package/internal/qs/index.d.ts +10 -0
  26. package/internal/qs/index.d.ts.map +1 -0
  27. package/internal/qs/index.js +14 -0
  28. package/internal/qs/index.js.map +1 -0
  29. package/internal/qs/index.mjs +10 -0
  30. package/internal/qs/index.mjs.map +1 -0
  31. package/internal/qs/stringify.d.ts +3 -0
  32. package/internal/qs/stringify.d.ts.map +1 -0
  33. package/internal/qs/stringify.js +280 -0
  34. package/internal/qs/stringify.js.map +1 -0
  35. package/internal/qs/stringify.mjs +276 -0
  36. package/internal/qs/stringify.mjs.map +1 -0
  37. package/internal/qs/types.d.ts +57 -0
  38. package/internal/qs/types.d.ts.map +1 -0
  39. package/internal/qs/types.js +3 -0
  40. package/internal/qs/types.js.map +1 -0
  41. package/internal/qs/types.mjs +2 -0
  42. package/internal/qs/types.mjs.map +1 -0
  43. package/internal/qs/utils.d.ts +14 -0
  44. package/internal/qs/utils.d.ts.map +1 -0
  45. package/internal/qs/utils.js +229 -0
  46. package/internal/qs/utils.js.map +1 -0
  47. package/internal/qs/utils.mjs +217 -0
  48. package/internal/qs/utils.mjs.map +1 -0
  49. package/package.json +8 -29
  50. package/resources/chat.d.ts +2 -0
  51. package/resources/chat.d.ts.map +1 -0
  52. package/resources/chat.js +19 -0
  53. package/resources/chat.js.map +1 -0
  54. package/resources/chat.mjs +3 -0
  55. package/resources/chat.mjs.map +1 -0
  56. package/resources/index.d.ts +2 -1
  57. package/resources/index.d.ts.map +1 -1
  58. package/resources/index.js +4 -1
  59. package/resources/index.js.map +1 -1
  60. package/resources/index.mjs +1 -0
  61. package/resources/index.mjs.map +1 -1
  62. package/resources/tools/index.d.ts +1 -1
  63. package/resources/tools/index.d.ts.map +1 -1
  64. package/resources/tools/index.js.map +1 -1
  65. package/resources/tools/index.mjs.map +1 -1
  66. package/resources/tools/tools.d.ts +21 -4
  67. package/resources/tools/tools.d.ts.map +1 -1
  68. package/resources/tools/tools.js +5 -5
  69. package/resources/tools/tools.js.map +1 -1
  70. package/resources/tools/tools.mjs +5 -5
  71. package/resources/tools/tools.mjs.map +1 -1
  72. package/resources/tools.d.ts +1 -0
  73. package/resources/tools.d.ts.map +1 -1
  74. package/resources/tools.js +17 -0
  75. package/resources/tools.js.map +1 -1
  76. package/resources/tools.mjs +2 -1
  77. package/resources/tools.mjs.map +1 -1
  78. package/resources/workers.d.ts +180 -0
  79. package/resources/workers.d.ts.map +1 -0
  80. package/resources/workers.js +65 -0
  81. package/resources/workers.js.map +1 -0
  82. package/resources/workers.mjs +60 -0
  83. package/resources/workers.mjs.map +1 -0
  84. package/resources.d.ts +2 -0
  85. package/resources.d.ts.map +1 -0
  86. package/resources.js +18 -0
  87. package/resources.js.map +1 -0
  88. package/resources.mjs +2 -0
  89. package/resources.mjs.map +1 -0
  90. package/src/_shims/index.d.ts +2 -0
  91. package/src/_shims/index.js +5 -1
  92. package/src/_shims/index.mjs +5 -1
  93. package/src/core.ts +27 -8
  94. package/src/index.ts +35 -0
  95. package/src/internal/qs/LICENSE.md +13 -0
  96. package/src/internal/qs/README.md +3 -0
  97. package/src/internal/qs/formats.ts +9 -0
  98. package/src/internal/qs/index.ts +13 -0
  99. package/src/internal/qs/stringify.ts +388 -0
  100. package/src/internal/qs/types.ts +71 -0
  101. package/src/internal/qs/utils.ts +265 -0
  102. package/src/resources/chat.ts +3 -0
  103. package/src/resources/index.ts +13 -0
  104. package/src/resources/tools/index.ts +1 -0
  105. package/src/resources/tools/tools.ts +37 -5
  106. package/src/resources/tools.ts +3 -0
  107. package/src/resources/workers.ts +330 -0
  108. package/src/resources.ts +1 -0
  109. package/src/version.ts +1 -1
  110. package/version.d.ts +1 -1
  111. package/version.js +1 -1
  112. package/version.mjs +1 -1
@@ -0,0 +1,265 @@
1
+ import { RFC1738 } from './formats';
2
+ import type { DefaultEncoder, Format } from './types';
3
+
4
+ const has = Object.prototype.hasOwnProperty;
5
+ const is_array = Array.isArray;
6
+
7
+ const hex_table = (() => {
8
+ const array = [];
9
+ for (let i = 0; i < 256; ++i) {
10
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
11
+ }
12
+
13
+ return array;
14
+ })();
15
+
16
+ function compact_queue<T extends Record<string, any>>(queue: Array<{ obj: T; prop: string }>) {
17
+ while (queue.length > 1) {
18
+ const item = queue.pop();
19
+ if (!item) continue;
20
+
21
+ const obj = item.obj[item.prop];
22
+
23
+ if (is_array(obj)) {
24
+ const compacted: unknown[] = [];
25
+
26
+ for (let j = 0; j < obj.length; ++j) {
27
+ if (typeof obj[j] !== 'undefined') {
28
+ compacted.push(obj[j]);
29
+ }
30
+ }
31
+
32
+ // @ts-ignore
33
+ item.obj[item.prop] = compacted;
34
+ }
35
+ }
36
+ }
37
+
38
+ function array_to_object(source: any[], options: { plainObjects: boolean }) {
39
+ const obj = options && options.plainObjects ? Object.create(null) : {};
40
+ for (let i = 0; i < source.length; ++i) {
41
+ if (typeof source[i] !== 'undefined') {
42
+ obj[i] = source[i];
43
+ }
44
+ }
45
+
46
+ return obj;
47
+ }
48
+
49
+ export function merge(
50
+ target: any,
51
+ source: any,
52
+ options: { plainObjects?: boolean; allowPrototypes?: boolean } = {},
53
+ ) {
54
+ if (!source) {
55
+ return target;
56
+ }
57
+
58
+ if (typeof source !== 'object') {
59
+ if (is_array(target)) {
60
+ target.push(source);
61
+ } else if (target && typeof target === 'object') {
62
+ if (
63
+ (options && (options.plainObjects || options.allowPrototypes)) ||
64
+ !has.call(Object.prototype, source)
65
+ ) {
66
+ target[source] = true;
67
+ }
68
+ } else {
69
+ return [target, source];
70
+ }
71
+
72
+ return target;
73
+ }
74
+
75
+ if (!target || typeof target !== 'object') {
76
+ return [target].concat(source);
77
+ }
78
+
79
+ let mergeTarget = target;
80
+ if (is_array(target) && !is_array(source)) {
81
+ // @ts-ignore
82
+ mergeTarget = array_to_object(target, options);
83
+ }
84
+
85
+ if (is_array(target) && is_array(source)) {
86
+ source.forEach(function (item, i) {
87
+ if (has.call(target, i)) {
88
+ const targetItem = target[i];
89
+ if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
90
+ target[i] = merge(targetItem, item, options);
91
+ } else {
92
+ target.push(item);
93
+ }
94
+ } else {
95
+ target[i] = item;
96
+ }
97
+ });
98
+ return target;
99
+ }
100
+
101
+ return Object.keys(source).reduce(function (acc, key) {
102
+ const value = source[key];
103
+
104
+ if (has.call(acc, key)) {
105
+ acc[key] = merge(acc[key], value, options);
106
+ } else {
107
+ acc[key] = value;
108
+ }
109
+ return acc;
110
+ }, mergeTarget);
111
+ }
112
+
113
+ export function assign_single_source(target: any, source: any) {
114
+ return Object.keys(source).reduce(function (acc, key) {
115
+ acc[key] = source[key];
116
+ return acc;
117
+ }, target);
118
+ }
119
+
120
+ export function decode(str: string, _: any, charset: string) {
121
+ const strWithoutPlus = str.replace(/\+/g, ' ');
122
+ if (charset === 'iso-8859-1') {
123
+ // unescape never throws, no try...catch needed:
124
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
125
+ }
126
+ // utf-8
127
+ try {
128
+ return decodeURIComponent(strWithoutPlus);
129
+ } catch (e) {
130
+ return strWithoutPlus;
131
+ }
132
+ }
133
+
134
+ const limit = 1024;
135
+
136
+ export const encode: (
137
+ str: any,
138
+ defaultEncoder: DefaultEncoder,
139
+ charset: string,
140
+ type: 'key' | 'value',
141
+ format: Format,
142
+ ) => string = (str, _defaultEncoder, charset, _kind, format: Format) => {
143
+ // This code was originally written by Brian White for the io.js core querystring library.
144
+ // It has been adapted here for stricter adherence to RFC 3986
145
+ if (str.length === 0) {
146
+ return str;
147
+ }
148
+
149
+ let string = str;
150
+ if (typeof str === 'symbol') {
151
+ string = Symbol.prototype.toString.call(str);
152
+ } else if (typeof str !== 'string') {
153
+ string = String(str);
154
+ }
155
+
156
+ if (charset === 'iso-8859-1') {
157
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
158
+ return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
159
+ });
160
+ }
161
+
162
+ let out = '';
163
+ for (let j = 0; j < string.length; j += limit) {
164
+ const segment = string.length >= limit ? string.slice(j, j + limit) : string;
165
+ const arr = [];
166
+
167
+ for (let i = 0; i < segment.length; ++i) {
168
+ let c = segment.charCodeAt(i);
169
+ if (
170
+ c === 0x2d || // -
171
+ c === 0x2e || // .
172
+ c === 0x5f || // _
173
+ c === 0x7e || // ~
174
+ (c >= 0x30 && c <= 0x39) || // 0-9
175
+ (c >= 0x41 && c <= 0x5a) || // a-z
176
+ (c >= 0x61 && c <= 0x7a) || // A-Z
177
+ (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )
178
+ ) {
179
+ arr[arr.length] = segment.charAt(i);
180
+ continue;
181
+ }
182
+
183
+ if (c < 0x80) {
184
+ arr[arr.length] = hex_table[c];
185
+ continue;
186
+ }
187
+
188
+ if (c < 0x800) {
189
+ arr[arr.length] = hex_table[0xc0 | (c >> 6)]! + hex_table[0x80 | (c & 0x3f)];
190
+ continue;
191
+ }
192
+
193
+ if (c < 0xd800 || c >= 0xe000) {
194
+ arr[arr.length] =
195
+ hex_table[0xe0 | (c >> 12)]! + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];
196
+ continue;
197
+ }
198
+
199
+ i += 1;
200
+ c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));
201
+
202
+ arr[arr.length] =
203
+ hex_table[0xf0 | (c >> 18)]! +
204
+ hex_table[0x80 | ((c >> 12) & 0x3f)] +
205
+ hex_table[0x80 | ((c >> 6) & 0x3f)] +
206
+ hex_table[0x80 | (c & 0x3f)];
207
+ }
208
+
209
+ out += arr.join('');
210
+ }
211
+
212
+ return out;
213
+ };
214
+
215
+ export function compact(value: any) {
216
+ const queue = [{ obj: { o: value }, prop: 'o' }];
217
+ const refs = [];
218
+
219
+ for (let i = 0; i < queue.length; ++i) {
220
+ const item = queue[i];
221
+ // @ts-ignore
222
+ const obj = item.obj[item.prop];
223
+
224
+ const keys = Object.keys(obj);
225
+ for (let j = 0; j < keys.length; ++j) {
226
+ const key = keys[j]!;
227
+ const val = obj[key];
228
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
229
+ queue.push({ obj: obj, prop: key });
230
+ refs.push(val);
231
+ }
232
+ }
233
+ }
234
+
235
+ compact_queue(queue);
236
+
237
+ return value;
238
+ }
239
+
240
+ export function is_regexp(obj: any) {
241
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
242
+ }
243
+
244
+ export function is_buffer(obj: any) {
245
+ if (!obj || typeof obj !== 'object') {
246
+ return false;
247
+ }
248
+
249
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
250
+ }
251
+
252
+ export function combine(a: any, b: any) {
253
+ return [].concat(a, b);
254
+ }
255
+
256
+ export function maybe_map<T>(val: T[], fn: (v: T) => T) {
257
+ if (is_array(val)) {
258
+ const mapped = [];
259
+ for (let i = 0; i < val.length; i += 1) {
260
+ mapped.push(fn(val[i]!));
261
+ }
262
+ return mapped;
263
+ }
264
+ return fn(val);
265
+ }
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './chat/index';
@@ -25,4 +25,17 @@ export {
25
25
  type ToolListParams,
26
26
  type ToolAuthorizeParams,
27
27
  type ToolExecuteParams,
28
+ type ToolGetParams,
28
29
  } from './tools/tools';
30
+ export {
31
+ WorkerResponsesOffsetPage,
32
+ Workers,
33
+ type CreateWorkerRequest,
34
+ type UpdateWorkerRequest,
35
+ type WorkerHealthResponse,
36
+ type WorkerResponse,
37
+ type WorkerCreateParams,
38
+ type WorkerUpdateParams,
39
+ type WorkerListParams,
40
+ type WorkerToolsParams,
41
+ } from './workers';
@@ -23,4 +23,5 @@ export {
23
23
  type ToolListParams,
24
24
  type ToolAuthorizeParams,
25
25
  type ToolExecuteParams,
26
+ type ToolGetParams,
26
27
  } from './tools';
@@ -61,8 +61,17 @@ export class Tools extends APIResource {
61
61
  /**
62
62
  * Returns the arcade tool specification for a specific tool
63
63
  */
64
- get(name: string, options?: Core.RequestOptions): Core.APIPromise<ToolDefinition> {
65
- return this._client.get(`/v1/tools/${name}`, options);
64
+ get(name: string, query?: ToolGetParams, options?: Core.RequestOptions): Core.APIPromise<ToolDefinition>;
65
+ get(name: string, options?: Core.RequestOptions): Core.APIPromise<ToolDefinition>;
66
+ get(
67
+ name: string,
68
+ query: ToolGetParams | Core.RequestOptions = {},
69
+ options?: Core.RequestOptions,
70
+ ): Core.APIPromise<ToolDefinition> {
71
+ if (isRequestOptions(query)) {
72
+ return this.get(name, {}, query);
73
+ }
74
+ return this._client.get(`/v1/tools/${name}`, { query, ...options });
66
75
  }
67
76
  }
68
77
 
@@ -94,7 +103,7 @@ export interface ExecuteToolRequest {
94
103
 
95
104
  /**
96
105
  * The time at which the tool should be run (optional). If not provided, the tool
97
- * is run immediately
106
+ * is run immediately. Format ISO 8601: YYYY-MM-DDTHH:MM:SS
98
107
  */
99
108
  run_at?: string;
100
109
 
@@ -166,15 +175,19 @@ export namespace ExecuteToolResponse {
166
175
  }
167
176
 
168
177
  export interface ToolDefinition {
178
+ fully_qualified_name: string;
179
+
169
180
  input: ToolDefinition.Input;
170
181
 
171
182
  name: string;
172
183
 
184
+ qualified_name: string;
185
+
173
186
  toolkit: ToolDefinition.Toolkit;
174
187
 
175
188
  description?: string;
176
189
 
177
- fully_qualified_name?: string;
190
+ formatted_schema?: Record<string, unknown>;
178
191
 
179
192
  output?: ToolDefinition.Output;
180
193
 
@@ -218,6 +231,8 @@ export namespace ToolDefinition {
218
231
 
219
232
  export interface Requirements {
220
233
  authorization?: Requirements.Authorization;
234
+
235
+ secrets?: Array<Requirements.Secret>;
221
236
  }
222
237
 
223
238
  export namespace Requirements {
@@ -236,6 +251,10 @@ export namespace ToolDefinition {
236
251
  scopes?: Array<string>;
237
252
  }
238
253
  }
254
+
255
+ export interface Secret {
256
+ key: string;
257
+ }
239
258
  }
240
259
  }
241
260
 
@@ -322,6 +341,11 @@ export interface ValueSchema {
322
341
  }
323
342
 
324
343
  export interface ToolListParams extends OffsetPageParams {
344
+ /**
345
+ * Comma separated tool formats that will be included in the response.
346
+ */
347
+ include_format?: Array<'arcade' | 'openai' | 'anthropic'>;
348
+
325
349
  /**
326
350
  * Toolkit name
327
351
  */
@@ -352,7 +376,7 @@ export interface ToolExecuteParams {
352
376
 
353
377
  /**
354
378
  * The time at which the tool should be run (optional). If not provided, the tool
355
- * is run immediately
379
+ * is run immediately. Format ISO 8601: YYYY-MM-DDTHH:MM:SS
356
380
  */
357
381
  run_at?: string;
358
382
 
@@ -364,6 +388,13 @@ export interface ToolExecuteParams {
364
388
  user_id?: string;
365
389
  }
366
390
 
391
+ export interface ToolGetParams {
392
+ /**
393
+ * Comma separated tool formats that will be included in the response.
394
+ */
395
+ include_format?: Array<'arcade' | 'openai' | 'anthropic'>;
396
+ }
397
+
367
398
  Tools.ToolDefinitionsOffsetPage = ToolDefinitionsOffsetPage;
368
399
  Tools.Scheduled = Scheduled;
369
400
  Tools.Formatted = Formatted;
@@ -382,6 +413,7 @@ export declare namespace Tools {
382
413
  type ToolListParams as ToolListParams,
383
414
  type ToolAuthorizeParams as ToolAuthorizeParams,
384
415
  type ToolExecuteParams as ToolExecuteParams,
416
+ type ToolGetParams as ToolGetParams,
385
417
  };
386
418
 
387
419
  export {
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './tools/index';