@celljs/ai-anthropic 3.8.0 → 3.9.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 (59) hide show
  1. package/esm/common/api/anthropic-api.d.ts +15 -0
  2. package/esm/common/api/anthropic-api.js +93 -0
  3. package/esm/common/api/anthropic-api.js.map +1 -0
  4. package/esm/common/api/anthropic-model.d.ts +33 -0
  5. package/esm/common/api/anthropic-model.js +36 -0
  6. package/esm/common/api/anthropic-model.js.map +1 -0
  7. package/esm/common/api/api-protocol.d.ts +40 -0
  8. package/esm/common/api/api-protocol.js +3 -0
  9. package/esm/common/api/api-protocol.js.map +1 -0
  10. package/esm/common/api/chat-request.d.ts +149 -0
  11. package/esm/common/api/chat-request.js +184 -0
  12. package/esm/common/api/chat-request.js.map +1 -0
  13. package/esm/common/api/chat-response.d.ts +71 -0
  14. package/esm/common/api/chat-response.js +120 -0
  15. package/esm/common/api/chat-response.js.map +1 -0
  16. package/esm/common/api/content-block.d.ts +99 -0
  17. package/esm/common/api/content-block.js +127 -0
  18. package/esm/common/api/content-block.js.map +1 -0
  19. package/esm/common/api/event.d.ts +187 -0
  20. package/esm/common/api/event.js +344 -0
  21. package/esm/common/api/event.js.map +1 -0
  22. package/esm/common/api/index.d.ts +9 -0
  23. package/esm/common/api/index.js +10 -0
  24. package/esm/common/api/index.js.map +1 -0
  25. package/esm/common/api/message.d.ts +40 -0
  26. package/esm/common/api/message.js +54 -0
  27. package/esm/common/api/message.js.map +1 -0
  28. package/esm/common/api/usage.d.ts +14 -0
  29. package/esm/common/api/usage.js +28 -0
  30. package/esm/common/api/usage.js.map +1 -0
  31. package/esm/common/index.d.ts +2 -0
  32. package/esm/common/index.js +3 -0
  33. package/esm/common/index.js.map +1 -0
  34. package/esm/common/model/anthropic-chat-model.d.ts +19 -0
  35. package/esm/common/model/anthropic-chat-model.js +169 -0
  36. package/esm/common/model/anthropic-chat-model.js.map +1 -0
  37. package/esm/common/model/anthropic-chat-options.d.ts +54 -0
  38. package/esm/common/model/anthropic-chat-options.js +170 -0
  39. package/esm/common/model/anthropic-chat-options.js.map +1 -0
  40. package/esm/common/model/index.d.ts +2 -0
  41. package/esm/common/model/index.js +3 -0
  42. package/esm/common/model/index.js.map +1 -0
  43. package/esm/common/module.d.ts +3 -0
  44. package/esm/common/module.js +4 -0
  45. package/esm/common/module.js.map +1 -0
  46. package/esm/common/test/mock-anthropic-api.d.ts +9 -0
  47. package/esm/common/test/mock-anthropic-api.js +61 -0
  48. package/esm/common/test/mock-anthropic-api.js.map +1 -0
  49. package/esm/common/test/test-container.d.ts +2 -0
  50. package/esm/common/test/test-container.js +11 -0
  51. package/esm/common/test/test-container.js.map +1 -0
  52. package/esm/common/utils/index.d.ts +1 -0
  53. package/esm/common/utils/index.js +2 -0
  54. package/esm/common/utils/index.js.map +1 -0
  55. package/esm/common/utils/stream-util.d.ts +8 -0
  56. package/esm/common/utils/stream-util.js +110 -0
  57. package/esm/common/utils/stream-util.js.map +1 -0
  58. package/esm/package.json +3 -0
  59. package/package.json +46 -6
@@ -0,0 +1,110 @@
1
+ import { Assert } from '@celljs/core';
2
+ import { ChatResponseBuilderReference } from '../api/chat-response.js';
3
+ import { EventType } from '../api/event.js';
4
+ import { ContentBlock, ContentBlockType } from '../api/content-block.js';
5
+ export class StreamUtil {
6
+ static isToolUseStart(event) {
7
+ if (!event || !event.type || event.type !== EventType.CONTENT_BLOCK_START) {
8
+ return false;
9
+ }
10
+ return event.contentBlock.type === ContentBlockType.TOOL_USE;
11
+ }
12
+ static isToolUseFinish(event) {
13
+ if (!event || !event.type || event.type !== EventType.CONTENT_BLOCK_STOP) {
14
+ return false;
15
+ }
16
+ return true;
17
+ }
18
+ static mergeToolUseEvents(previousEvent, event) {
19
+ if (!previousEvent || !event) {
20
+ return event;
21
+ }
22
+ const eventAggregator = previousEvent;
23
+ if (event.type === EventType.CONTENT_BLOCK_START) {
24
+ const contentBlockStart = event;
25
+ if (contentBlockStart.contentBlock.type === ContentBlockType.TOOL_USE) {
26
+ const cbToolUse = contentBlockStart.contentBlock;
27
+ eventAggregator.id = cbToolUse.id;
28
+ eventAggregator.name = cbToolUse.name;
29
+ eventAggregator.index = contentBlockStart.index;
30
+ eventAggregator.partialJson = '';
31
+ }
32
+ }
33
+ else if (event.type === EventType.CONTENT_BLOCK_DELTA) {
34
+ const contentBlockDelta = event;
35
+ Assert.isTrue(contentBlockDelta.delta.type === ContentBlockType.INPUT_JSON_DELTA, 'The json content block delta should have been aggregated. Unsupported content block type: ' + contentBlockDelta.delta.type);
36
+ if (contentBlockDelta.delta.type === ContentBlockType.INPUT_JSON_DELTA) {
37
+ return eventAggregator.appendPartialJson(contentBlockDelta.delta.partialJson);
38
+ }
39
+ }
40
+ else if (event.type === EventType.CONTENT_BLOCK_STOP) {
41
+ if (!eventAggregator.isEmpty()) {
42
+ eventAggregator.squashIntoContentBlock();
43
+ return eventAggregator;
44
+ }
45
+ }
46
+ return event;
47
+ }
48
+ static eventToChatResponse(event) {
49
+ if (event.type === EventType.MESSAGE_START) {
50
+ ChatResponseBuilderReference.reset();
51
+ const messageStartEvent = event;
52
+ ChatResponseBuilderReference.get()
53
+ .withType(event.type)
54
+ .withId(messageStartEvent.message.id)
55
+ .withRole(messageStartEvent.message.role)
56
+ .withModel(messageStartEvent.message.model)
57
+ .withUsage(messageStartEvent.message.usage)
58
+ .withContent([]);
59
+ }
60
+ else if (event.type === EventType.TOOL_USE_AGGREGATE) {
61
+ const eventToolUseBuilder = event;
62
+ if (eventToolUseBuilder.toolContentBlocks && eventToolUseBuilder.toolContentBlocks.length > 0) {
63
+ const content = eventToolUseBuilder.toolContentBlocks.map(toolToUse => new ContentBlock(ContentBlockType.TOOL_USE, undefined, undefined, undefined, toolToUse.id, toolToUse.name, toolToUse.input));
64
+ ChatResponseBuilderReference.get().withContent(content);
65
+ }
66
+ }
67
+ else if (event.type === EventType.CONTENT_BLOCK_START) {
68
+ const contentBlockStartEvent = event;
69
+ Assert.isTrue(contentBlockStartEvent.contentBlock.type === ContentBlockType.TEXT, 'The json content block should have been aggregated. Unsupported content block type: ' + contentBlockStartEvent.contentBlock.type);
70
+ if (contentBlockStartEvent.contentBlock.type === ContentBlockType.TEXT) {
71
+ const contentBlockText = contentBlockStartEvent.contentBlock;
72
+ ChatResponseBuilderReference
73
+ .get()
74
+ .withType(event.type)
75
+ .withContent([new ContentBlock(ContentBlockType.TEXT, undefined, contentBlockText.text, contentBlockStartEvent.index)]);
76
+ }
77
+ }
78
+ else if (event.type === EventType.CONTENT_BLOCK_DELTA) {
79
+ const contentBlockDeltaEvent = event;
80
+ if (contentBlockDeltaEvent.delta.type === ContentBlockType.TEXT_DELTA) {
81
+ const deltaTxt = contentBlockDeltaEvent.delta;
82
+ ChatResponseBuilderReference
83
+ .get()
84
+ .withType(event.type)
85
+ .withContent([new ContentBlock(ContentBlockType.TEXT_DELTA, undefined, deltaTxt.text, contentBlockDeltaEvent.index)]);
86
+ }
87
+ }
88
+ else if (event.type === EventType.MESSAGE_DELTA) {
89
+ ChatResponseBuilderReference.get().withType(event.type);
90
+ const messageDeltaEvent = event;
91
+ if (messageDeltaEvent.delta.stopReason) {
92
+ ChatResponseBuilderReference.get().withStopReason(messageDeltaEvent.delta.stopReason);
93
+ }
94
+ if (messageDeltaEvent.delta.stopSequence) {
95
+ ChatResponseBuilderReference.get().withStopSequence(messageDeltaEvent.delta.stopSequence);
96
+ }
97
+ if (messageDeltaEvent.usage) {
98
+ ChatResponseBuilderReference.get().withOutputTokens(messageDeltaEvent.usage.outputTokens);
99
+ }
100
+ }
101
+ else if (event.type === EventType.MESSAGE_STOP) {
102
+ // pass through
103
+ }
104
+ else {
105
+ ChatResponseBuilderReference.get().withType(event.type).withContent([]);
106
+ }
107
+ return ChatResponseBuilderReference.get().build();
108
+ }
109
+ }
110
+ //# sourceMappingURL=stream-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-util.js","sourceRoot":"","sources":["../../../src/common/utils/stream-util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celljs/ai-anthropic",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "Authropic models support",
5
5
  "keywords": [
6
6
  "cell-component"
@@ -18,24 +18,64 @@
18
18
  "typings": "lib/common/index.d.ts",
19
19
  "files": [
20
20
  "lib",
21
+ "esm",
21
22
  "src",
22
23
  "cell.yml"
23
24
  ],
24
25
  "scripts": {
25
- "build": "tsc -b",
26
- "clean": "rm -rf lib *.tsbuildinfo",
26
+ "build": "tsc -b && bun ../../scripts/build-esm.ts",
27
+ "clean": "rm -rf lib esm *.tsbuildinfo",
27
28
  "test": "bun test --preload reflect-metadata ./lib",
28
29
  "watch": "tsc -b -w --preserveWatchOutput"
29
30
  },
30
31
  "dependencies": {
31
- "@celljs/ai-core": "3.8.0",
32
- "@celljs/core": "3.8.0",
33
- "@celljs/http": "3.8.0",
32
+ "@celljs/ai-core": "3.9.0",
33
+ "@celljs/core": "3.9.0",
34
+ "@celljs/http": "3.9.0",
34
35
  "class-transformer": "^0.5.1",
35
36
  "rxjs": "^6.6.0",
36
37
  "tslib": "^2.8.0"
37
38
  },
38
39
  "publishConfig": {
39
40
  "access": "public"
41
+ },
42
+ "exports": {
43
+ ".": {
44
+ "webpack": "./lib/common/index.js",
45
+ "import": "./esm/common/index.js",
46
+ "default": "./lib/common/index.js"
47
+ },
48
+ "./package.json": "./package.json",
49
+ "./lib/common": {
50
+ "webpack": "./lib/common/index.js",
51
+ "import": "./esm/common/index.js",
52
+ "default": "./lib/common/index.js"
53
+ },
54
+ "./lib/common/api": {
55
+ "webpack": "./lib/common/api/index.js",
56
+ "import": "./esm/common/api/index.js",
57
+ "default": "./lib/common/api/index.js"
58
+ },
59
+ "./lib/common/model": {
60
+ "webpack": "./lib/common/model/index.js",
61
+ "import": "./esm/common/model/index.js",
62
+ "default": "./lib/common/model/index.js"
63
+ },
64
+ "./lib/common/utils": {
65
+ "webpack": "./lib/common/utils/index.js",
66
+ "import": "./esm/common/utils/index.js",
67
+ "default": "./lib/common/utils/index.js"
68
+ },
69
+ "./lib/*.js": {
70
+ "webpack": "./lib/*.js",
71
+ "import": "./esm/*.js",
72
+ "default": "./lib/*.js"
73
+ },
74
+ "./lib/*": {
75
+ "webpack": "./lib/*.js",
76
+ "import": "./esm/*.js",
77
+ "default": "./lib/*.js"
78
+ },
79
+ "./*": "./*"
40
80
  }
41
81
  }