@positronic/client-vercel 0.0.52 → 0.0.53

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/src/index.js CHANGED
@@ -196,7 +196,7 @@ function _ts_generator(thisArg, body) {
196
196
  };
197
197
  }
198
198
  }
199
- import { generateObject, generateText } from 'ai';
199
+ import { generateObject, generateText, streamText as vercelStreamText, stepCountIs } from 'ai';
200
200
  export var VercelClient = /*#__PURE__*/ function() {
201
201
  "use strict";
202
202
  function VercelClient(model) {
@@ -400,6 +400,188 @@ export var VercelClient = /*#__PURE__*/ function() {
400
400
  });
401
401
  }).call(this);
402
402
  }
403
+ },
404
+ {
405
+ key: "streamText",
406
+ value: function streamText(params) {
407
+ return _async_to_generator(function() {
408
+ var system, prompt, messages, tools, _params_maxSteps, maxSteps, modelMessages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, msg, aiTools, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, name, tool, stream, _ref, steps, text, usage, allToolCalls, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, step, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _loop, _iterator3, _step3, _usage_totalTokens;
409
+ return _ts_generator(this, function(_state) {
410
+ switch(_state.label){
411
+ case 0:
412
+ system = params.system, prompt = params.prompt, messages = params.messages, tools = params.tools, _params_maxSteps = params.maxSteps, maxSteps = _params_maxSteps === void 0 ? 10 : _params_maxSteps;
413
+ // Build messages array
414
+ modelMessages = [];
415
+ if (system) {
416
+ modelMessages.push({
417
+ role: 'system',
418
+ content: system
419
+ });
420
+ }
421
+ // Add any context messages
422
+ if (messages) {
423
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
424
+ try {
425
+ for(_iterator = messages[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
426
+ msg = _step.value;
427
+ if (msg.role === 'user') {
428
+ modelMessages.push({
429
+ role: 'user',
430
+ content: msg.content
431
+ });
432
+ } else if (msg.role === 'assistant') {
433
+ modelMessages.push({
434
+ role: 'assistant',
435
+ content: msg.content
436
+ });
437
+ } else if (msg.role === 'tool') {
438
+ modelMessages.push({
439
+ role: 'tool',
440
+ content: [
441
+ {
442
+ type: 'tool-result',
443
+ toolCallId: msg.toolCallId,
444
+ toolName: msg.toolName,
445
+ output: {
446
+ type: 'text',
447
+ value: msg.content
448
+ }
449
+ }
450
+ ]
451
+ });
452
+ }
453
+ }
454
+ } catch (err) {
455
+ _didIteratorError = true;
456
+ _iteratorError = err;
457
+ } finally{
458
+ try {
459
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
460
+ _iterator.return();
461
+ }
462
+ } finally{
463
+ if (_didIteratorError) {
464
+ throw _iteratorError;
465
+ }
466
+ }
467
+ }
468
+ }
469
+ // Add the initial prompt
470
+ modelMessages.push({
471
+ role: 'user',
472
+ content: prompt
473
+ });
474
+ // Convert tools to Vercel AI SDK format (with execute functions)
475
+ aiTools = {};
476
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
477
+ try {
478
+ for(_iterator1 = Object.entries(tools)[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
479
+ _step_value = _sliced_to_array(_step1.value, 2), name = _step_value[0], tool = _step_value[1];
480
+ aiTools[name] = {
481
+ description: tool.description,
482
+ inputSchema: tool.inputSchema,
483
+ execute: tool.execute
484
+ };
485
+ }
486
+ } catch (err) {
487
+ _didIteratorError1 = true;
488
+ _iteratorError1 = err;
489
+ } finally{
490
+ try {
491
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
492
+ _iterator1.return();
493
+ }
494
+ } finally{
495
+ if (_didIteratorError1) {
496
+ throw _iteratorError1;
497
+ }
498
+ }
499
+ }
500
+ // Call Vercel's streamText with multi-step support
501
+ stream = vercelStreamText({
502
+ model: this.model,
503
+ messages: modelMessages,
504
+ tools: aiTools,
505
+ stopWhen: stepCountIs(maxSteps)
506
+ });
507
+ return [
508
+ 4,
509
+ Promise.all([
510
+ stream.steps,
511
+ stream.text,
512
+ stream.totalUsage
513
+ ])
514
+ ];
515
+ case 1:
516
+ _ref = _sliced_to_array.apply(void 0, [
517
+ _state.sent(),
518
+ 3
519
+ ]), steps = _ref[0], text = _ref[1], usage = _ref[2];
520
+ // Collect all tool calls across all steps with their results
521
+ allToolCalls = [];
522
+ _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
523
+ try {
524
+ for(_iterator2 = steps[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
525
+ step = _step2.value;
526
+ _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = undefined;
527
+ try {
528
+ _loop = function() {
529
+ var toolCall = _step3.value;
530
+ var toolResult = step.toolResults.find(function(tr) {
531
+ return tr.toolCallId === toolCall.toolCallId;
532
+ });
533
+ allToolCalls.push({
534
+ toolCallId: toolCall.toolCallId,
535
+ toolName: toolCall.toolName,
536
+ args: toolCall.input,
537
+ result: toolResult === null || toolResult === void 0 ? void 0 : toolResult.output
538
+ });
539
+ };
540
+ // Match tool calls with their results
541
+ for(_iterator3 = step.toolCalls[Symbol.iterator](); !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true)_loop();
542
+ } catch (err) {
543
+ _didIteratorError3 = true;
544
+ _iteratorError3 = err;
545
+ } finally{
546
+ try {
547
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
548
+ _iterator3.return();
549
+ }
550
+ } finally{
551
+ if (_didIteratorError3) {
552
+ throw _iteratorError3;
553
+ }
554
+ }
555
+ }
556
+ }
557
+ } catch (err) {
558
+ _didIteratorError2 = true;
559
+ _iteratorError2 = err;
560
+ } finally{
561
+ try {
562
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
563
+ _iterator2.return();
564
+ }
565
+ } finally{
566
+ if (_didIteratorError2) {
567
+ throw _iteratorError2;
568
+ }
569
+ }
570
+ }
571
+ return [
572
+ 2,
573
+ {
574
+ toolCalls: allToolCalls,
575
+ text: text || undefined,
576
+ usage: {
577
+ totalTokens: (_usage_totalTokens = usage === null || usage === void 0 ? void 0 : usage.totalTokens) !== null && _usage_totalTokens !== void 0 ? _usage_totalTokens : 0
578
+ }
579
+ }
580
+ ];
581
+ }
582
+ });
583
+ }).call(this);
584
+ }
403
585
  }
404
586
  ]);
405
587
  return VercelClient;
@@ -30,5 +30,27 @@ export declare class VercelClient implements ObjectGenerator {
30
30
  totalTokens: number;
31
31
  };
32
32
  }>;
33
+ streamText(params: {
34
+ system?: string;
35
+ prompt: string;
36
+ messages?: ToolMessage[];
37
+ tools: Record<string, {
38
+ description: string;
39
+ inputSchema: z.ZodSchema;
40
+ execute?: (args: unknown) => Promise<unknown> | unknown;
41
+ }>;
42
+ maxSteps?: number;
43
+ }): Promise<{
44
+ toolCalls: Array<{
45
+ toolCallId: string;
46
+ toolName: string;
47
+ args: unknown;
48
+ result: unknown;
49
+ }>;
50
+ text?: string;
51
+ usage: {
52
+ totalTokens: number;
53
+ };
54
+ }>;
33
55
  }
34
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,IAAI,CAAC;AAEtD,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,KAAK,CAAgB;gBAEjB,KAAK,EAAE,aAAa;IAI1B,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA8CjB,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAA;SAAE,CAAC,CAAC;KAC1E,GAAG,OAAO,CAAC;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAC3E,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC;CA6DH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,IAAI,CAAC;AAEtD,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,KAAK,CAAgB;gBAEjB,KAAK,EAAE,aAAa;IAI1B,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA8CjB,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAA;SAAE,CAAC,CAAC;KAC1E,GAAG,OAAO,CAAC;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAC3E,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC;IA8DI,UAAU,CAAC,MAAM,EAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;YACE,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;YACzB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;SACzD,CACF,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QACV,SAAS,EAAE,KAAK,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC;YACd,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC;CAmGH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/client-vercel",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,7 +23,7 @@
23
23
  "ai": "^5.0.0"
24
24
  },
25
25
  "dependencies": {
26
- "@positronic/core": "^0.0.52",
26
+ "@positronic/core": "^0.0.53",
27
27
  "zod": "^3.24.1"
28
28
  }
29
29
  }