@superinterface/react 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1850 -1776
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +125 -97
- package/dist/index.d.ts +125 -97
- package/dist/index.js +1792 -1710
- package/dist/index.js.map +1 -1
- package/dist/mutationFns.cjs +22 -22
- package/dist/mutationFns.cjs.map +1 -1
- package/dist/mutationFns.d.cts +4 -4
- package/dist/mutationFns.d.ts +4 -4
- package/dist/mutationFns.js +19 -19
- package/dist/mutationFns.js.map +1 -1
- package/dist/queryFns.cjs +50 -50
- package/dist/queryFns.cjs.map +1 -1
- package/dist/queryFns.d.cts +3 -3
- package/dist/queryFns.d.ts +3 -3
- package/dist/queryFns.js +46 -46
- package/dist/queryFns.js.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +6 -6
- package/dist/types/index.d.ts +6 -6
- package/dist/utils.cjs +13 -13
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +4 -4
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +11 -11
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/mutationFns.cjs
CHANGED
|
@@ -263,12 +263,12 @@ var __toCommonJS = function(mod) {
|
|
|
263
263
|
// src/mutationFns.ts
|
|
264
264
|
var mutationFns_exports = {};
|
|
265
265
|
__export(mutationFns_exports, {
|
|
266
|
+
createMessageMutationFn: function() {
|
|
267
|
+
return createMessageMutationFn;
|
|
268
|
+
},
|
|
266
269
|
createRunMutationFn: function() {
|
|
267
270
|
return createRunMutationFn;
|
|
268
271
|
},
|
|
269
|
-
createThreadMessageMutationFn: function() {
|
|
270
|
-
return createThreadMessageMutationFn;
|
|
271
|
-
},
|
|
272
272
|
handleActionMutationFn: function() {
|
|
273
273
|
return handleActionMutationFn;
|
|
274
274
|
}
|
|
@@ -304,31 +304,31 @@ var getRunSteps = function() {
|
|
|
304
304
|
return _ref.apply(this, arguments);
|
|
305
305
|
};
|
|
306
306
|
}();
|
|
307
|
-
// src/lib/
|
|
308
|
-
var
|
|
307
|
+
// src/lib/messages/extendMessage.ts
|
|
308
|
+
var extendMessage = function() {
|
|
309
309
|
var _ref = _async_to_generator(function(param) {
|
|
310
|
-
var
|
|
310
|
+
var message, client, _tmp, _tmp1;
|
|
311
311
|
return _ts_generator(this, function(_state) {
|
|
312
312
|
switch(_state.label){
|
|
313
313
|
case 0:
|
|
314
|
-
|
|
315
|
-
if (!
|
|
314
|
+
message = param.message, client = param.client;
|
|
315
|
+
if (!message.run_id) {
|
|
316
316
|
return [
|
|
317
317
|
2,
|
|
318
|
-
_object_spread_props(_object_spread({},
|
|
318
|
+
_object_spread_props(_object_spread({}, message), {
|
|
319
319
|
runSteps: []
|
|
320
320
|
})
|
|
321
321
|
];
|
|
322
322
|
}
|
|
323
323
|
_tmp = [
|
|
324
|
-
_object_spread({},
|
|
324
|
+
_object_spread({}, message)
|
|
325
325
|
];
|
|
326
326
|
_tmp1 = {};
|
|
327
327
|
return [
|
|
328
328
|
4,
|
|
329
329
|
getRunSteps({
|
|
330
|
-
threadId:
|
|
331
|
-
runId:
|
|
330
|
+
threadId: message.thread_id,
|
|
331
|
+
runId: message.run_id,
|
|
332
332
|
client: client
|
|
333
333
|
})
|
|
334
334
|
];
|
|
@@ -342,14 +342,14 @@ var extendThreadMessage = function() {
|
|
|
342
342
|
}
|
|
343
343
|
});
|
|
344
344
|
});
|
|
345
|
-
return function
|
|
345
|
+
return function extendMessage(_) {
|
|
346
346
|
return _ref.apply(this, arguments);
|
|
347
347
|
};
|
|
348
348
|
}();
|
|
349
|
-
// src/lib/
|
|
350
|
-
var
|
|
349
|
+
// src/lib/messages/createMessageMutationFn.ts
|
|
350
|
+
var createMessageMutationFn = function() {
|
|
351
351
|
var _ref = _async_to_generator(function(param) {
|
|
352
|
-
var _param_client, client, content, threadId,
|
|
352
|
+
var _param_client, client, content, threadId, message, _tmp;
|
|
353
353
|
return _ts_generator(this, function(_state) {
|
|
354
354
|
switch(_state.label){
|
|
355
355
|
case 0:
|
|
@@ -362,24 +362,24 @@ var createThreadMessageMutationFn = function() {
|
|
|
362
362
|
})
|
|
363
363
|
];
|
|
364
364
|
case 1:
|
|
365
|
-
|
|
365
|
+
message = _state.sent();
|
|
366
366
|
_tmp = {};
|
|
367
367
|
return [
|
|
368
368
|
4,
|
|
369
|
-
|
|
370
|
-
|
|
369
|
+
extendMessage({
|
|
370
|
+
message: message,
|
|
371
371
|
client: client
|
|
372
372
|
})
|
|
373
373
|
];
|
|
374
374
|
case 2:
|
|
375
375
|
return [
|
|
376
376
|
2,
|
|
377
|
-
(_tmp.
|
|
377
|
+
(_tmp.message = _state.sent(), _tmp)
|
|
378
378
|
];
|
|
379
379
|
}
|
|
380
380
|
});
|
|
381
381
|
});
|
|
382
|
-
return function
|
|
382
|
+
return function createMessageMutationFn(_) {
|
|
383
383
|
return _ref.apply(this, arguments);
|
|
384
384
|
};
|
|
385
385
|
}();
|
|
@@ -510,8 +510,8 @@ var handleActionMutationFn = function() {
|
|
|
510
510
|
}();
|
|
511
511
|
// Annotate the CommonJS export names for ESM import in node:
|
|
512
512
|
0 && (module.exports = {
|
|
513
|
+
createMessageMutationFn: createMessageMutationFn,
|
|
513
514
|
createRunMutationFn: createRunMutationFn,
|
|
514
|
-
createThreadMessageMutationFn: createThreadMessageMutationFn,
|
|
515
515
|
handleActionMutationFn: handleActionMutationFn
|
|
516
516
|
});
|
|
517
517
|
//# sourceMappingURL=mutationFns.cjs.map
|
package/dist/mutationFns.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mutationFns.ts","../src/lib/ai/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/
|
|
1
|
+
{"version":3,"sources":["../src/mutationFns.ts","../src/lib/ai/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/createMessageMutationFn.ts","../src/lib/runs/createRunMutationFn.ts","../src/lib/actions/handleActionMutationFn/index.ts","../src/lib/actions/handleActionMutationFn/toolOutput/index.ts"],"names":["OpenAI","pMap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAmB;AAEZ,IAAM,gBAAgB,IAAI,cAAAA,QAAO;AAAA,EACtC,QAAQ,QAAQ,IAAI;AACtB,CAAC;;;ACIM,IAAM,cAAc,OAAO;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAM,mBAAmB,MAAM,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,IAC5D;AAAA,IACA;AAAA,EACF;AAEA,SAAO,iBAAiB;AAC1B;;;ACXO,IAAM,gBAAgB,OAAO;AAAA,EAClC;AAAA,EACA;AACF,MAAY;AACV,MAAI,CAAC,QAAQ,QAAQ;AACnB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,MAAM,YAAY;AAAA,MAC1B,UAAU,QAAQ;AAAA,MAClB,OAAO,QAAQ;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACbO,IAAM,0BAA0B,OAAO;AAAA,EAC5C,SAAS;AAAA,EACT;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,UAAU,MAAM,OAAO,KAAK,QAAQ,SAAS,OAAO,UAAU;AAAA,IAClE;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AAED,SAAO;AAAA,IACL,SAAS,MAAM,cAAc;AAAA,MAC3B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AChBO,IAAM,sBAAsB,OAAO;AAAA,EACxC,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA+B;AAC7B,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,OAAO,UAAU;AAAA,IAC1D,GAAG;AAAA,IACH,cAAc;AAAA,EAChB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;AC3BA,mBAAiB;;;ACQV,IAAM,aAAa,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAM,KAAK,UAAU,SAAS,SAAS,IAAI;AAE3C,MAAI,CAAC,IAAI;AACP,YAAQ,IAAI,EAAE,SAAS,CAAC;AACxB,UAAM,IAAI,MAAM,mBAAmB,SAAS,SAAS,IAAI,EAAE;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,cAAc,SAAS;AAAA,IACvB,QAAQ,MAAM,GAAG;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ADbO,IAAM,yBAAyB,OAAO;AAAA,EAC3C,SAAS;AAAA,EACT;AAAA,EACA,YAAY,CAAC;AACf,MAA+B;AAC7B,MAAI,CAAC,UAAU,iBAAiB;AAC9B,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AAEA,UAAQ,IAAI,iBAAiB,EAAE,UAAU,CAAC;AAE1C,QAAM,YAAY,UAAU,gBAAgB,oBAAoB;AAEhE,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK;AAAA,IACzC,UAAU;AAAA,IACV,UAAU;AAAA,IACV;AAAA,MACE,cAAc,UAAM,aAAAC,SAAK,WAAW,CAAC,aAAa,WAAW,EAAE,UAAU,WAAW,UAAU,CAAC,CAAC;AAAA,IAClG;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,EACF;AACF","sourcesContent":["export { createMessageMutationFn } from '@/lib/messages/createMessageMutationFn'\nexport { createRunMutationFn } from '@/lib/runs/createRunMutationFn'\nexport { handleActionMutationFn } from '@/lib/actions/handleActionMutationFn'\n","import OpenAI from 'openai'\n\nexport const defaultClient = new OpenAI({\n apiKey: process.env.OPENAI_API_KEY!,\n})\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.ThreadMessage\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import { defaultClient } from '@/lib/ai'\nimport { Message } from '@/types'\nimport { extendMessage } from '@/lib/messages/extendMessage'\n\nexport type Args = {\n client?: typeof defaultClient\n content: string\n threadId: string\n}\n\nexport type Response = {\n message: Message\n}\n\nexport const createMessageMutationFn = async ({\n client = defaultClient,\n content,\n threadId,\n}: Args): Promise<Response> => {\n const message = await client.beta.threads.messages.create(threadId, {\n content: content,\n role: 'user',\n })\n\n return {\n message: await extendMessage({\n message,\n client,\n }),\n }\n}\n","import OpenAI from 'openai'\nimport { Run } from '@/types'\nimport { defaultClient } from '@/lib/ai'\n\nexport type Args = {\n client?: typeof defaultClient\n threadId: string\n assistantId: string\n} & (OpenAI.Beta.Threads.Runs.RunCreateParams | {})\n\nexport type Response = {\n run: Run\n}\n\nexport const createRunMutationFn = async ({\n client = defaultClient,\n threadId,\n assistantId,\n ...rest\n}: Args): Promise<Response> => {\n const run = await client.beta.threads.runs.create(threadId, {\n ...rest,\n assistant_id: assistantId,\n })\n\n return {\n run,\n }\n}\n","import { Run, Functions } from '@/types'\nimport pMap from 'p-map'\nimport { defaultClient } from '@/lib/ai'\nimport { toolOutput } from './toolOutput'\n\nexport type Args = {\n client?: typeof defaultClient\n latestRun: Run\n functions?: Functions\n}\n\nexport type Response = {\n run: Run\n}\n\nexport const handleActionMutationFn = async ({\n client = defaultClient,\n latestRun,\n functions = {},\n}: Args): Promise<Response> => {\n if (!latestRun.required_action) {\n throw new Error('No required_action for run ${latestRun.id} with status ${latestRun.status}')\n }\n\n console.log('handleActions', { latestRun })\n\n const toolCalls = latestRun.required_action.submit_tool_outputs.tool_calls\n\n const run = await client.beta.threads.runs.submitToolOutputs(\n latestRun.thread_id,\n latestRun.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => toolOutput({ toolCall, latestRun, functions })),\n },\n )\n\n return {\n run,\n }\n}\n","import OpenAI from 'openai'\nimport { Functions } from '@/types'\n\ntype Args = {\n toolCall: OpenAI.Beta.Threads.Runs.RequiredActionFunctionToolCall\n latestRun: OpenAI.Beta.Threads.Runs.Run\n functions: Functions\n}\n\nexport const toolOutput = async ({\n toolCall,\n latestRun,\n functions,\n}: Args) => {\n const fn = functions[toolCall.function.name]\n\n if (!fn) {\n console.log({ toolCall })\n throw new Error(`No function for ${toolCall.function.name}`)\n }\n\n return {\n tool_call_id: toolCall.id,\n output: await fn({\n toolCall,\n latestRun,\n }),\n }\n}\n"]}
|
package/dist/mutationFns.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as defaultClient } from './index-CGpJFXMu.cjs';
|
|
2
|
-
import {
|
|
2
|
+
import { Message, Run, Functions } from './types/index.cjs';
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
4
|
|
|
5
5
|
type Args$2 = {
|
|
@@ -8,9 +8,9 @@ type Args$2 = {
|
|
|
8
8
|
threadId: string;
|
|
9
9
|
};
|
|
10
10
|
type Response$2 = {
|
|
11
|
-
|
|
11
|
+
message: Message;
|
|
12
12
|
};
|
|
13
|
-
declare const
|
|
13
|
+
declare const createMessageMutationFn: ({ client, content, threadId, }: Args$2) => Promise<Response$2>;
|
|
14
14
|
|
|
15
15
|
type Args$1 = {
|
|
16
16
|
client?: typeof defaultClient;
|
|
@@ -32,4 +32,4 @@ type Response = {
|
|
|
32
32
|
};
|
|
33
33
|
declare const handleActionMutationFn: ({ client, latestRun, functions, }: Args) => Promise<Response>;
|
|
34
34
|
|
|
35
|
-
export {
|
|
35
|
+
export { createMessageMutationFn, createRunMutationFn, handleActionMutationFn };
|
package/dist/mutationFns.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as defaultClient } from './index-CGpJFXMu.js';
|
|
2
|
-
import {
|
|
2
|
+
import { Message, Run, Functions } from './types/index.js';
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
4
|
|
|
5
5
|
type Args$2 = {
|
|
@@ -8,9 +8,9 @@ type Args$2 = {
|
|
|
8
8
|
threadId: string;
|
|
9
9
|
};
|
|
10
10
|
type Response$2 = {
|
|
11
|
-
|
|
11
|
+
message: Message;
|
|
12
12
|
};
|
|
13
|
-
declare const
|
|
13
|
+
declare const createMessageMutationFn: ({ client, content, threadId, }: Args$2) => Promise<Response$2>;
|
|
14
14
|
|
|
15
15
|
type Args$1 = {
|
|
16
16
|
client?: typeof defaultClient;
|
|
@@ -32,4 +32,4 @@ type Response = {
|
|
|
32
32
|
};
|
|
33
33
|
declare const handleActionMutationFn: ({ client, latestRun, functions, }: Args) => Promise<Response>;
|
|
34
34
|
|
|
35
|
-
export {
|
|
35
|
+
export { createMessageMutationFn, createRunMutationFn, handleActionMutationFn };
|
package/dist/mutationFns.js
CHANGED
|
@@ -231,31 +231,31 @@ var getRunSteps = function() {
|
|
|
231
231
|
return _ref.apply(this, arguments);
|
|
232
232
|
};
|
|
233
233
|
}();
|
|
234
|
-
// src/lib/
|
|
235
|
-
var
|
|
234
|
+
// src/lib/messages/extendMessage.ts
|
|
235
|
+
var extendMessage = function() {
|
|
236
236
|
var _ref = _async_to_generator(function(param) {
|
|
237
|
-
var
|
|
237
|
+
var message, client, _tmp, _tmp1;
|
|
238
238
|
return _ts_generator(this, function(_state) {
|
|
239
239
|
switch(_state.label){
|
|
240
240
|
case 0:
|
|
241
|
-
|
|
242
|
-
if (!
|
|
241
|
+
message = param.message, client = param.client;
|
|
242
|
+
if (!message.run_id) {
|
|
243
243
|
return [
|
|
244
244
|
2,
|
|
245
|
-
_object_spread_props(_object_spread({},
|
|
245
|
+
_object_spread_props(_object_spread({}, message), {
|
|
246
246
|
runSteps: []
|
|
247
247
|
})
|
|
248
248
|
];
|
|
249
249
|
}
|
|
250
250
|
_tmp = [
|
|
251
|
-
_object_spread({},
|
|
251
|
+
_object_spread({}, message)
|
|
252
252
|
];
|
|
253
253
|
_tmp1 = {};
|
|
254
254
|
return [
|
|
255
255
|
4,
|
|
256
256
|
getRunSteps({
|
|
257
|
-
threadId:
|
|
258
|
-
runId:
|
|
257
|
+
threadId: message.thread_id,
|
|
258
|
+
runId: message.run_id,
|
|
259
259
|
client: client
|
|
260
260
|
})
|
|
261
261
|
];
|
|
@@ -269,14 +269,14 @@ var extendThreadMessage = function() {
|
|
|
269
269
|
}
|
|
270
270
|
});
|
|
271
271
|
});
|
|
272
|
-
return function
|
|
272
|
+
return function extendMessage(_) {
|
|
273
273
|
return _ref.apply(this, arguments);
|
|
274
274
|
};
|
|
275
275
|
}();
|
|
276
|
-
// src/lib/
|
|
277
|
-
var
|
|
276
|
+
// src/lib/messages/createMessageMutationFn.ts
|
|
277
|
+
var createMessageMutationFn = function() {
|
|
278
278
|
var _ref = _async_to_generator(function(param) {
|
|
279
|
-
var _param_client, client, content, threadId,
|
|
279
|
+
var _param_client, client, content, threadId, message, _tmp;
|
|
280
280
|
return _ts_generator(this, function(_state) {
|
|
281
281
|
switch(_state.label){
|
|
282
282
|
case 0:
|
|
@@ -289,24 +289,24 @@ var createThreadMessageMutationFn = function() {
|
|
|
289
289
|
})
|
|
290
290
|
];
|
|
291
291
|
case 1:
|
|
292
|
-
|
|
292
|
+
message = _state.sent();
|
|
293
293
|
_tmp = {};
|
|
294
294
|
return [
|
|
295
295
|
4,
|
|
296
|
-
|
|
297
|
-
|
|
296
|
+
extendMessage({
|
|
297
|
+
message: message,
|
|
298
298
|
client: client
|
|
299
299
|
})
|
|
300
300
|
];
|
|
301
301
|
case 2:
|
|
302
302
|
return [
|
|
303
303
|
2,
|
|
304
|
-
(_tmp.
|
|
304
|
+
(_tmp.message = _state.sent(), _tmp)
|
|
305
305
|
];
|
|
306
306
|
}
|
|
307
307
|
});
|
|
308
308
|
});
|
|
309
|
-
return function
|
|
309
|
+
return function createMessageMutationFn(_) {
|
|
310
310
|
return _ref.apply(this, arguments);
|
|
311
311
|
};
|
|
312
312
|
}();
|
|
@@ -435,5 +435,5 @@ var handleActionMutationFn = function() {
|
|
|
435
435
|
return _ref.apply(this, arguments);
|
|
436
436
|
};
|
|
437
437
|
}();
|
|
438
|
-
export {
|
|
438
|
+
export { createMessageMutationFn, createRunMutationFn, handleActionMutationFn };
|
|
439
439
|
//# sourceMappingURL=mutationFns.js.map
|
package/dist/mutationFns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/ai/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/
|
|
1
|
+
{"version":3,"sources":["../src/lib/ai/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/createMessageMutationFn.ts","../src/lib/runs/createRunMutationFn.ts","../src/lib/actions/handleActionMutationFn/index.ts","../src/lib/actions/handleActionMutationFn/toolOutput/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY;AAEZ,IAAM,gBAAgB,IAAI,OAAO;AAAA,EACtC,QAAQ,QAAQ,IAAI;AACtB,CAAC;;;ACIM,IAAM,cAAc,OAAO;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAM,mBAAmB,MAAM,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,IAC5D;AAAA,IACA;AAAA,EACF;AAEA,SAAO,iBAAiB;AAC1B;;;ACXO,IAAM,gBAAgB,OAAO;AAAA,EAClC;AAAA,EACA;AACF,MAAY;AACV,MAAI,CAAC,QAAQ,QAAQ;AACnB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,MAAM,YAAY;AAAA,MAC1B,UAAU,QAAQ;AAAA,MAClB,OAAO,QAAQ;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACbO,IAAM,0BAA0B,OAAO;AAAA,EAC5C,SAAS;AAAA,EACT;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,UAAU,MAAM,OAAO,KAAK,QAAQ,SAAS,OAAO,UAAU;AAAA,IAClE;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AAED,SAAO;AAAA,IACL,SAAS,MAAM,cAAc;AAAA,MAC3B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AChBO,IAAM,sBAAsB,OAAO;AAAA,EACxC,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA+B;AAC7B,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,OAAO,UAAU;AAAA,IAC1D,GAAG;AAAA,IACH,cAAc;AAAA,EAChB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;AC3BA,OAAO,UAAU;;;ACQV,IAAM,aAAa,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAM,KAAK,UAAU,SAAS,SAAS,IAAI;AAE3C,MAAI,CAAC,IAAI;AACP,YAAQ,IAAI,EAAE,SAAS,CAAC;AACxB,UAAM,IAAI,MAAM,mBAAmB,SAAS,SAAS,IAAI,EAAE;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,cAAc,SAAS;AAAA,IACvB,QAAQ,MAAM,GAAG;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ADbO,IAAM,yBAAyB,OAAO;AAAA,EAC3C,SAAS;AAAA,EACT;AAAA,EACA,YAAY,CAAC;AACf,MAA+B;AAC7B,MAAI,CAAC,UAAU,iBAAiB;AAC9B,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AAEA,UAAQ,IAAI,iBAAiB,EAAE,UAAU,CAAC;AAE1C,QAAM,YAAY,UAAU,gBAAgB,oBAAoB;AAEhE,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK;AAAA,IACzC,UAAU;AAAA,IACV,UAAU;AAAA,IACV;AAAA,MACE,cAAc,MAAM,KAAK,WAAW,CAAC,aAAa,WAAW,EAAE,UAAU,WAAW,UAAU,CAAC,CAAC;AAAA,IAClG;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,EACF;AACF","sourcesContent":["import OpenAI from 'openai'\n\nexport const defaultClient = new OpenAI({\n apiKey: process.env.OPENAI_API_KEY!,\n})\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.ThreadMessage\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import { defaultClient } from '@/lib/ai'\nimport { Message } from '@/types'\nimport { extendMessage } from '@/lib/messages/extendMessage'\n\nexport type Args = {\n client?: typeof defaultClient\n content: string\n threadId: string\n}\n\nexport type Response = {\n message: Message\n}\n\nexport const createMessageMutationFn = async ({\n client = defaultClient,\n content,\n threadId,\n}: Args): Promise<Response> => {\n const message = await client.beta.threads.messages.create(threadId, {\n content: content,\n role: 'user',\n })\n\n return {\n message: await extendMessage({\n message,\n client,\n }),\n }\n}\n","import OpenAI from 'openai'\nimport { Run } from '@/types'\nimport { defaultClient } from '@/lib/ai'\n\nexport type Args = {\n client?: typeof defaultClient\n threadId: string\n assistantId: string\n} & (OpenAI.Beta.Threads.Runs.RunCreateParams | {})\n\nexport type Response = {\n run: Run\n}\n\nexport const createRunMutationFn = async ({\n client = defaultClient,\n threadId,\n assistantId,\n ...rest\n}: Args): Promise<Response> => {\n const run = await client.beta.threads.runs.create(threadId, {\n ...rest,\n assistant_id: assistantId,\n })\n\n return {\n run,\n }\n}\n","import { Run, Functions } from '@/types'\nimport pMap from 'p-map'\nimport { defaultClient } from '@/lib/ai'\nimport { toolOutput } from './toolOutput'\n\nexport type Args = {\n client?: typeof defaultClient\n latestRun: Run\n functions?: Functions\n}\n\nexport type Response = {\n run: Run\n}\n\nexport const handleActionMutationFn = async ({\n client = defaultClient,\n latestRun,\n functions = {},\n}: Args): Promise<Response> => {\n if (!latestRun.required_action) {\n throw new Error('No required_action for run ${latestRun.id} with status ${latestRun.status}')\n }\n\n console.log('handleActions', { latestRun })\n\n const toolCalls = latestRun.required_action.submit_tool_outputs.tool_calls\n\n const run = await client.beta.threads.runs.submitToolOutputs(\n latestRun.thread_id,\n latestRun.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => toolOutput({ toolCall, latestRun, functions })),\n },\n )\n\n return {\n run,\n }\n}\n","import OpenAI from 'openai'\nimport { Functions } from '@/types'\n\ntype Args = {\n toolCall: OpenAI.Beta.Threads.Runs.RequiredActionFunctionToolCall\n latestRun: OpenAI.Beta.Threads.Runs.Run\n functions: Functions\n}\n\nexport const toolOutput = async ({\n toolCall,\n latestRun,\n functions,\n}: Args) => {\n const fn = functions[toolCall.function.name]\n\n if (!fn) {\n console.log({ toolCall })\n throw new Error(`No function for ${toolCall.function.name}`)\n }\n\n return {\n tool_call_id: toolCall.id,\n output: await fn({\n toolCall,\n latestRun,\n }),\n }\n}\n"]}
|
package/dist/queryFns.cjs
CHANGED
|
@@ -261,11 +261,11 @@ var __toCommonJS = function(mod) {
|
|
|
261
261
|
// src/queryFns.ts
|
|
262
262
|
var queryFns_exports = {};
|
|
263
263
|
__export(queryFns_exports, {
|
|
264
|
+
messagesQueryFn: function() {
|
|
265
|
+
return messagesQueryFn;
|
|
266
|
+
},
|
|
264
267
|
runsQueryFn: function() {
|
|
265
268
|
return runsQueryFn;
|
|
266
|
-
},
|
|
267
|
-
threadMessagesQueryFn: function() {
|
|
268
|
-
return threadMessagesQueryFn;
|
|
269
269
|
}
|
|
270
270
|
});
|
|
271
271
|
module.exports = __toCommonJS(queryFns_exports);
|
|
@@ -274,7 +274,7 @@ var import_openai = __toESM(require("openai"), 1);
|
|
|
274
274
|
var defaultClient = new import_openai.default({
|
|
275
275
|
apiKey: process.env.OPENAI_API_KEY
|
|
276
276
|
});
|
|
277
|
-
// src/lib/
|
|
277
|
+
// src/lib/messages/messagesQueryFn/data/index.ts
|
|
278
278
|
var import_p_map = __toESM(require("p-map"), 1);
|
|
279
279
|
// src/lib/runSteps/getRunSteps/index.ts
|
|
280
280
|
var getRunSteps = function() {
|
|
@@ -301,31 +301,31 @@ var getRunSteps = function() {
|
|
|
301
301
|
return _ref.apply(this, arguments);
|
|
302
302
|
};
|
|
303
303
|
}();
|
|
304
|
-
// src/lib/
|
|
305
|
-
var
|
|
304
|
+
// src/lib/messages/extendMessage.ts
|
|
305
|
+
var extendMessage = function() {
|
|
306
306
|
var _ref = _async_to_generator(function(param) {
|
|
307
|
-
var
|
|
307
|
+
var message, client, _tmp, _tmp1;
|
|
308
308
|
return _ts_generator(this, function(_state) {
|
|
309
309
|
switch(_state.label){
|
|
310
310
|
case 0:
|
|
311
|
-
|
|
312
|
-
if (!
|
|
311
|
+
message = param.message, client = param.client;
|
|
312
|
+
if (!message.run_id) {
|
|
313
313
|
return [
|
|
314
314
|
2,
|
|
315
|
-
_object_spread_props(_object_spread({},
|
|
315
|
+
_object_spread_props(_object_spread({}, message), {
|
|
316
316
|
runSteps: []
|
|
317
317
|
})
|
|
318
318
|
];
|
|
319
319
|
}
|
|
320
320
|
_tmp = [
|
|
321
|
-
_object_spread({},
|
|
321
|
+
_object_spread({}, message)
|
|
322
322
|
];
|
|
323
323
|
_tmp1 = {};
|
|
324
324
|
return [
|
|
325
325
|
4,
|
|
326
326
|
getRunSteps({
|
|
327
|
-
threadId:
|
|
328
|
-
runId:
|
|
327
|
+
threadId: message.thread_id,
|
|
328
|
+
runId: message.run_id,
|
|
329
329
|
client: client
|
|
330
330
|
})
|
|
331
331
|
];
|
|
@@ -339,11 +339,11 @@ var extendThreadMessage = function() {
|
|
|
339
339
|
}
|
|
340
340
|
});
|
|
341
341
|
});
|
|
342
|
-
return function
|
|
342
|
+
return function extendMessage(_) {
|
|
343
343
|
return _ref.apply(this, arguments);
|
|
344
344
|
};
|
|
345
345
|
}();
|
|
346
|
-
// src/lib/
|
|
346
|
+
// src/lib/messages/messagesQueryFn/data/runMessages/getLatestRun.ts
|
|
347
347
|
var getLatestRun = function() {
|
|
348
348
|
var _ref = _async_to_generator(function(param) {
|
|
349
349
|
var threadId, client, runsResponse;
|
|
@@ -375,14 +375,14 @@ var import_radash = require("radash");
|
|
|
375
375
|
var optimisticId = function() {
|
|
376
376
|
return "-".concat((0, import_radash.uid)(24));
|
|
377
377
|
};
|
|
378
|
-
// src/lib/
|
|
379
|
-
var
|
|
378
|
+
// src/lib/messages/messagesQueryFn/data/runMessages/index.ts
|
|
379
|
+
var runMessages = function() {
|
|
380
380
|
var _ref = _async_to_generator(function(param) {
|
|
381
|
-
var
|
|
381
|
+
var messages, threadId, client, latestRun, messageFromLatestRun;
|
|
382
382
|
return _ts_generator(this, function(_state) {
|
|
383
383
|
switch(_state.label){
|
|
384
384
|
case 0:
|
|
385
|
-
|
|
385
|
+
messages = param.messages, threadId = param.threadId, client = param.client;
|
|
386
386
|
return [
|
|
387
387
|
4,
|
|
388
388
|
getLatestRun({
|
|
@@ -398,10 +398,10 @@ var runThreadMessages = function() {
|
|
|
398
398
|
[]
|
|
399
399
|
];
|
|
400
400
|
}
|
|
401
|
-
|
|
401
|
+
messageFromLatestRun = messages.find(function(m) {
|
|
402
402
|
return m.run_id === latestRun.id;
|
|
403
403
|
});
|
|
404
|
-
if (
|
|
404
|
+
if (messageFromLatestRun) {
|
|
405
405
|
return [
|
|
406
406
|
2,
|
|
407
407
|
[]
|
|
@@ -409,8 +409,8 @@ var runThreadMessages = function() {
|
|
|
409
409
|
}
|
|
410
410
|
return [
|
|
411
411
|
4,
|
|
412
|
-
|
|
413
|
-
|
|
412
|
+
extendMessage({
|
|
413
|
+
message: {
|
|
414
414
|
id: optimisticId(),
|
|
415
415
|
role: "assistant",
|
|
416
416
|
created_at: +/* @__PURE__ */ new Date(),
|
|
@@ -435,39 +435,39 @@ var runThreadMessages = function() {
|
|
|
435
435
|
}
|
|
436
436
|
});
|
|
437
437
|
});
|
|
438
|
-
return function
|
|
438
|
+
return function runMessages(_) {
|
|
439
439
|
return _ref.apply(this, arguments);
|
|
440
440
|
};
|
|
441
441
|
}();
|
|
442
|
-
// src/lib/
|
|
442
|
+
// src/lib/messages/messagesQueryFn/data/index.ts
|
|
443
443
|
var data = function() {
|
|
444
444
|
var _ref = _async_to_generator(function(param) {
|
|
445
|
-
var
|
|
445
|
+
var messagesResponse, pageParam, threadId, client, messages;
|
|
446
446
|
return _ts_generator(this, function(_state) {
|
|
447
447
|
switch(_state.label){
|
|
448
448
|
case 0:
|
|
449
|
-
|
|
449
|
+
messagesResponse = param.messagesResponse, pageParam = param.pageParam, threadId = param.threadId, client = param.client;
|
|
450
450
|
return [
|
|
451
451
|
4,
|
|
452
|
-
(0, import_p_map.default)(
|
|
453
|
-
return
|
|
452
|
+
(0, import_p_map.default)(messagesResponse.data, function(message) {
|
|
453
|
+
return extendMessage({
|
|
454
454
|
client: client,
|
|
455
|
-
|
|
455
|
+
message: message
|
|
456
456
|
});
|
|
457
457
|
})
|
|
458
458
|
];
|
|
459
459
|
case 1:
|
|
460
|
-
|
|
460
|
+
messages = _state.sent();
|
|
461
461
|
if (pageParam) {
|
|
462
462
|
return [
|
|
463
463
|
2,
|
|
464
|
-
|
|
464
|
+
messages
|
|
465
465
|
];
|
|
466
466
|
}
|
|
467
467
|
return [
|
|
468
468
|
4,
|
|
469
|
-
|
|
470
|
-
|
|
469
|
+
runMessages({
|
|
470
|
+
messages: messages,
|
|
471
471
|
threadId: threadId,
|
|
472
472
|
client: client
|
|
473
473
|
})
|
|
@@ -477,7 +477,7 @@ var data = function() {
|
|
|
477
477
|
2,
|
|
478
478
|
_to_consumable_array.apply(void 0, [
|
|
479
479
|
_state.sent()
|
|
480
|
-
]).concat(_to_consumable_array(
|
|
480
|
+
]).concat(_to_consumable_array(messages))
|
|
481
481
|
];
|
|
482
482
|
}
|
|
483
483
|
});
|
|
@@ -486,18 +486,18 @@ var data = function() {
|
|
|
486
486
|
return _ref.apply(this, arguments);
|
|
487
487
|
};
|
|
488
488
|
}();
|
|
489
|
-
// src/lib/
|
|
489
|
+
// src/lib/messages/messagesQueryFn/messagesLimit.ts
|
|
490
490
|
var messagesLimit = 10;
|
|
491
|
-
// src/lib/
|
|
491
|
+
// src/lib/messages/messagesQueryFn/hasNextPage.ts
|
|
492
492
|
var hasNextPage = function(param) {
|
|
493
|
-
var
|
|
494
|
-
if (
|
|
495
|
-
return
|
|
493
|
+
var messagesResponse = param.messagesResponse;
|
|
494
|
+
if (messagesResponse.data.length < messagesLimit) return false;
|
|
495
|
+
return messagesResponse.hasNextPage();
|
|
496
496
|
};
|
|
497
|
-
// src/lib/
|
|
498
|
-
var
|
|
497
|
+
// src/lib/messages/messagesQueryFn/index.ts
|
|
498
|
+
var messagesQueryFn = function() {
|
|
499
499
|
var _ref = _async_to_generator(function(param) {
|
|
500
|
-
var _param_client, client, threadId, pageParam,
|
|
500
|
+
var _param_client, client, threadId, pageParam, messagesResponse, _tmp;
|
|
501
501
|
return _ts_generator(this, function(_state) {
|
|
502
502
|
switch(_state.label){
|
|
503
503
|
case 0:
|
|
@@ -511,13 +511,13 @@ var threadMessagesQueryFn = function() {
|
|
|
511
511
|
}))
|
|
512
512
|
];
|
|
513
513
|
case 1:
|
|
514
|
-
|
|
514
|
+
messagesResponse = _state.sent();
|
|
515
515
|
_tmp = {};
|
|
516
516
|
return [
|
|
517
517
|
4,
|
|
518
518
|
data({
|
|
519
519
|
client: client,
|
|
520
|
-
|
|
520
|
+
messagesResponse: messagesResponse,
|
|
521
521
|
pageParam: pageParam,
|
|
522
522
|
threadId: threadId
|
|
523
523
|
})
|
|
@@ -526,14 +526,14 @@ var threadMessagesQueryFn = function() {
|
|
|
526
526
|
return [
|
|
527
527
|
2,
|
|
528
528
|
(_tmp.data = _state.sent(), _tmp.hasNextPage = hasNextPage({
|
|
529
|
-
|
|
529
|
+
messagesResponse: messagesResponse
|
|
530
530
|
}), _tmp.// @ts-ignore-next-line
|
|
531
|
-
lastId =
|
|
531
|
+
lastId = messagesResponse.body.last_id, _tmp)
|
|
532
532
|
];
|
|
533
533
|
}
|
|
534
534
|
});
|
|
535
535
|
});
|
|
536
|
-
return function
|
|
536
|
+
return function messagesQueryFn(_) {
|
|
537
537
|
return _ref.apply(this, arguments);
|
|
538
538
|
};
|
|
539
539
|
}();
|
|
@@ -572,7 +572,7 @@ var runsQueryFn = function() {
|
|
|
572
572
|
}();
|
|
573
573
|
// Annotate the CommonJS export names for ESM import in node:
|
|
574
574
|
0 && (module.exports = {
|
|
575
|
-
|
|
576
|
-
|
|
575
|
+
messagesQueryFn: messagesQueryFn,
|
|
576
|
+
runsQueryFn: runsQueryFn
|
|
577
577
|
});
|
|
578
578
|
//# sourceMappingURL=queryFns.cjs.map
|
package/dist/queryFns.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/queryFns.ts","../src/lib/ai/index.ts","../src/lib/
|
|
1
|
+
{"version":3,"sources":["../src/queryFns.ts","../src/lib/ai/index.ts","../src/lib/messages/messagesQueryFn/data/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/messagesQueryFn/data/runMessages/getLatestRun.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/messages/messagesQueryFn/data/runMessages/index.ts","../src/lib/messages/messagesQueryFn/messagesLimit.ts","../src/lib/messages/messagesQueryFn/hasNextPage.ts","../src/lib/messages/messagesQueryFn/index.ts","../src/lib/runs/runsQueryFn.ts"],"names":["OpenAI","pMap"],"mappings":"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","sourcesContent":["export { messagesQueryFn } from '@/lib/messages/messagesQueryFn'\nexport { runsQueryFn } from '@/lib/runs/runsQueryFn'\n","import OpenAI from 'openai'\n\nexport const defaultClient = new OpenAI({\n apiKey: process.env.OPENAI_API_KEY!,\n})\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { runMessages } from './runMessages'\n\nexport const data = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.ThreadMessage>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => {\n const messages = await pMap(messagesResponse.data, (message) => (\n extendMessage({\n client,\n message,\n })\n ))\n\n if (pageParam) {\n return messages\n }\n\n return [\n ...await runMessages({\n messages,\n threadId,\n client,\n }),\n ...messages,\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.ThreadMessage\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n client: OpenAI\n}\n\nexport const getLatestRun = async ({\n threadId,\n client,\n}: Args) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return runsResponse.data[0]\n}\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import OpenAI from 'openai'\nimport { Message } from '@/types'\nimport { getLatestRun } from './getLatestRun'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\n\ntype Args = {\n messages: Message[]\n threadId: string\n client: OpenAI\n}\n\nexport const runMessages = async ({\n messages,\n threadId,\n client,\n}: Args) => {\n const latestRun = await getLatestRun({ threadId, client })\n\n if (!latestRun) {\n return []\n }\n\n const messageFromLatestRun = messages.find(m => m.run_id === latestRun.id)\n\n if (messageFromLatestRun) {\n return []\n }\n\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: 'assistant' as OpenAI.Beta.Threads.Messages.ThreadMessage['role'],\n created_at: +new Date(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.ThreadMessage['object'],\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n file_ids: [],\n metadata: {},\n },\n client,\n }),\n ]\n}\n","export const messagesLimit = 10\n","import OpenAI from 'openai'\nimport { messagesLimit } from './messagesLimit'\n\nexport const hasNextPage = ({\n messagesResponse,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.ThreadMessage>\n}) => {\n if (messagesResponse.data.length < messagesLimit) return false\n\n return messagesResponse.hasNextPage()\n}\n","import _ from 'lodash'\nimport { defaultClient } from '@/lib/ai'\nimport { MessagesPage } from '@/types'\nimport { data } from './data'\nimport { messagesLimit } from './messagesLimit'\nimport { hasNextPage } from './hasNextPage'\n\ntype Args = {\n client?: typeof defaultClient\n threadId: string\n pageParam?: string\n}\n\nexport const messagesQueryFn = async ({\n client = defaultClient,\n threadId,\n pageParam,\n}: Args): Promise<MessagesPage> => {\n const messagesResponse = await client.beta.threads.messages.list(threadId, {\n ...(pageParam ? { after: pageParam } : {}),\n limit: messagesLimit,\n })\n\n return {\n data: await data({\n client,\n messagesResponse,\n pageParam,\n threadId,\n }),\n hasNextPage: hasNextPage({ messagesResponse }),\n // @ts-ignore-next-line\n lastId: messagesResponse.body.last_id,\n }\n}\n","import { RunsPage } from '@/types'\nimport { defaultClient } from '@/lib/ai'\n\ntype Args = {\n client?: typeof defaultClient\n threadId: string\n}\n\nexport const runsQueryFn = async ({\n client = defaultClient,\n threadId,\n}: Args): Promise<RunsPage> => {\n const response = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return {\n // @ts-ignore-next-line\n data: response.data,\n hasNextPage: response.hasNextPage(),\n // @ts-ignore-next-line\n lastId: response.body.last_id,\n }\n}\n"]}
|