@positronic/client-anthropic 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
@@ -515,6 +515,241 @@ export var AnthropicClient = /*#__PURE__*/ function() {
515
515
  });
516
516
  }).call(this);
517
517
  }
518
+ },
519
+ {
520
+ key: "streamText",
521
+ value: function streamText(params) {
522
+ return _async_to_generator(function() {
523
+ var system, prompt, _params_messages, messages, tools, _params_maxSteps, maxSteps, anthropicTools, anthropicMessages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, msg, allToolCalls, totalTokens, finalText, step, response, stepText, stepToolCalls, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, block, toolResults, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, toolCall, tool, result, err;
524
+ return _ts_generator(this, function(_state) {
525
+ switch(_state.label){
526
+ case 0:
527
+ system = params.system, prompt = params.prompt, _params_messages = params.messages, messages = _params_messages === void 0 ? [] : _params_messages, tools = params.tools, _params_maxSteps = params.maxSteps, maxSteps = _params_maxSteps === void 0 ? 10 : _params_maxSteps;
528
+ // Convert tools to Anthropic format
529
+ anthropicTools = Object.entries(tools).map(function(param) {
530
+ var _param = _sliced_to_array(param, 2), name = _param[0], tool = _param[1];
531
+ return {
532
+ name: name,
533
+ description: tool.description,
534
+ input_schema: zodToJsonSchema(tool.inputSchema)
535
+ };
536
+ });
537
+ // Build initial messages
538
+ anthropicMessages = [];
539
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
540
+ try {
541
+ // Add context messages
542
+ for(_iterator = messages[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
543
+ msg = _step.value;
544
+ if (msg.role === 'user') {
545
+ anthropicMessages.push({
546
+ role: 'user',
547
+ content: msg.content
548
+ });
549
+ } else if (msg.role === 'assistant') {
550
+ anthropicMessages.push({
551
+ role: 'assistant',
552
+ content: msg.content
553
+ });
554
+ }
555
+ }
556
+ } catch (err) {
557
+ _didIteratorError = true;
558
+ _iteratorError = err;
559
+ } finally{
560
+ try {
561
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
562
+ _iterator.return();
563
+ }
564
+ } finally{
565
+ if (_didIteratorError) {
566
+ throw _iteratorError;
567
+ }
568
+ }
569
+ }
570
+ // Add the initial prompt
571
+ anthropicMessages.push({
572
+ role: 'user',
573
+ content: prompt
574
+ });
575
+ // Collect all tool calls with results across steps
576
+ allToolCalls = [];
577
+ totalTokens = 0;
578
+ step = 0;
579
+ _state.label = 1;
580
+ case 1:
581
+ if (!(step < maxSteps)) return [
582
+ 3,
583
+ 13
584
+ ];
585
+ step++;
586
+ return [
587
+ 4,
588
+ this.anthropicSdk.messages.create({
589
+ model: 'claude-sonnet-4-20250514',
590
+ max_tokens: 8192,
591
+ system: system,
592
+ messages: anthropicMessages,
593
+ tools: anthropicTools
594
+ })
595
+ ];
596
+ case 2:
597
+ response = _state.sent();
598
+ totalTokens += response.usage.input_tokens + response.usage.output_tokens;
599
+ // Extract text and tool calls from response
600
+ stepText = void 0;
601
+ stepToolCalls = [];
602
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
603
+ try {
604
+ for(_iterator1 = response.content[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
605
+ block = _step1.value;
606
+ if (block.type === 'text') {
607
+ stepText = (stepText || '') + block.text;
608
+ } else if (block.type === 'tool_use') {
609
+ stepToolCalls.push({
610
+ id: block.id,
611
+ name: block.name,
612
+ input: block.input
613
+ });
614
+ }
615
+ }
616
+ } catch (err) {
617
+ _didIteratorError1 = true;
618
+ _iteratorError1 = err;
619
+ } finally{
620
+ try {
621
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
622
+ _iterator1.return();
623
+ }
624
+ } finally{
625
+ if (_didIteratorError1) {
626
+ throw _iteratorError1;
627
+ }
628
+ }
629
+ }
630
+ finalText = stepText;
631
+ // If no tool calls, we're done
632
+ if (stepToolCalls.length === 0) {
633
+ return [
634
+ 3,
635
+ 13
636
+ ];
637
+ }
638
+ // Add assistant message with tool calls
639
+ anthropicMessages.push({
640
+ role: 'assistant',
641
+ content: response.content
642
+ });
643
+ // Execute tools and collect results
644
+ toolResults = [];
645
+ _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
646
+ _state.label = 3;
647
+ case 3:
648
+ _state.trys.push([
649
+ 3,
650
+ 10,
651
+ 11,
652
+ 12
653
+ ]);
654
+ _iterator2 = stepToolCalls[Symbol.iterator]();
655
+ _state.label = 4;
656
+ case 4:
657
+ if (!!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done)) return [
658
+ 3,
659
+ 9
660
+ ];
661
+ toolCall = _step2.value;
662
+ tool = tools[toolCall.name];
663
+ result = void 0;
664
+ if (!(tool === null || tool === void 0 ? void 0 : tool.execute)) return [
665
+ 3,
666
+ 6
667
+ ];
668
+ return [
669
+ 4,
670
+ tool.execute(toolCall.input)
671
+ ];
672
+ case 5:
673
+ result = _state.sent();
674
+ return [
675
+ 3,
676
+ 7
677
+ ];
678
+ case 6:
679
+ result = {
680
+ success: true
681
+ };
682
+ _state.label = 7;
683
+ case 7:
684
+ allToolCalls.push({
685
+ toolCallId: toolCall.id,
686
+ toolName: toolCall.name,
687
+ args: toolCall.input,
688
+ result: result
689
+ });
690
+ toolResults.push({
691
+ type: 'tool_result',
692
+ tool_use_id: toolCall.id,
693
+ content: typeof result === 'string' ? result : JSON.stringify(result)
694
+ });
695
+ _state.label = 8;
696
+ case 8:
697
+ _iteratorNormalCompletion2 = true;
698
+ return [
699
+ 3,
700
+ 4
701
+ ];
702
+ case 9:
703
+ return [
704
+ 3,
705
+ 12
706
+ ];
707
+ case 10:
708
+ err = _state.sent();
709
+ _didIteratorError2 = true;
710
+ _iteratorError2 = err;
711
+ return [
712
+ 3,
713
+ 12
714
+ ];
715
+ case 11:
716
+ try {
717
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
718
+ _iterator2.return();
719
+ }
720
+ } finally{
721
+ if (_didIteratorError2) {
722
+ throw _iteratorError2;
723
+ }
724
+ }
725
+ return [
726
+ 7
727
+ ];
728
+ case 12:
729
+ // Add user message with tool results
730
+ anthropicMessages.push({
731
+ role: 'user',
732
+ content: toolResults
733
+ });
734
+ return [
735
+ 3,
736
+ 1
737
+ ];
738
+ case 13:
739
+ return [
740
+ 2,
741
+ {
742
+ toolCalls: allToolCalls,
743
+ text: finalText,
744
+ usage: {
745
+ totalTokens: totalTokens
746
+ }
747
+ }
748
+ ];
749
+ }
750
+ });
751
+ }).call(this);
752
+ }
518
753
  }
519
754
  ]);
520
755
  return AnthropicClient;
@@ -33,5 +33,27 @@ export declare class AnthropicClient implements ObjectGenerator {
33
33
  totalTokens: number;
34
34
  };
35
35
  }>;
36
+ streamText(params: {
37
+ system?: string;
38
+ prompt: string;
39
+ messages?: ToolMessage[];
40
+ tools: Record<string, {
41
+ description: string;
42
+ inputSchema: z.ZodSchema;
43
+ execute?: (args: unknown) => Promise<unknown> | unknown;
44
+ }>;
45
+ maxSteps?: number;
46
+ }): Promise<{
47
+ toolCalls: Array<{
48
+ toolCallId: string;
49
+ toolName: string;
50
+ args: unknown;
51
+ result: unknown;
52
+ }>;
53
+ text?: string;
54
+ usage: {
55
+ totalTokens: number;
56
+ };
57
+ }>;
36
58
  }
37
59
  //# 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,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,YAAY,CAAY;;IAY1B,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;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACxE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAoCjB,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;CA2GH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,YAAY,CAAY;;IAY1B,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;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACxE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAoCjB,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;IA4GI,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;CAyHH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/client-anthropic",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@anthropic-ai/sdk": "^0.52.0",
24
- "@positronic/core": "^0.0.52",
24
+ "@positronic/core": "^0.0.53",
25
25
  "@instructor-ai/instructor": "^1.5.0",
26
26
  "llm-polyglot": "^2.4.0",
27
27
  "dotenv": "^16.4.7",