@dxos/assistant 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc

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 (172) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +2 -1
  3. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/neutral/extraction/index.mjs +204 -0
  5. package/dist/lib/neutral/extraction/index.mjs.map +7 -0
  6. package/dist/lib/neutral/index.mjs +1755 -0
  7. package/dist/lib/neutral/index.mjs.map +7 -0
  8. package/dist/lib/neutral/meta.json +1 -0
  9. package/dist/types/src/extraction/extraction-ner-function/index.d.ts +0 -1
  10. package/dist/types/src/extraction/extraction-ner-function/index.d.ts.map +1 -1
  11. package/dist/types/src/extraction/extraction-ner-function/named-entity-recognition.d.ts.map +1 -1
  12. package/dist/types/src/extraction/extraction.d.ts +1065 -312
  13. package/dist/types/src/extraction/extraction.d.ts.map +1 -1
  14. package/dist/types/src/extraction/index.d.ts +0 -1
  15. package/dist/types/src/extraction/index.d.ts.map +1 -1
  16. package/dist/types/src/extraction/quotes.d.ts +2 -2
  17. package/dist/types/src/extraction/quotes.d.ts.map +1 -1
  18. package/dist/types/src/functions/services.d.ts +13 -15
  19. package/dist/types/src/functions/services.d.ts.map +1 -1
  20. package/dist/types/src/index.d.ts +2 -5
  21. package/dist/types/src/index.d.ts.map +1 -1
  22. package/dist/types/src/request/AiRequest.d.ts +104 -0
  23. package/dist/types/src/request/AiRequest.d.ts.map +1 -0
  24. package/dist/types/src/{session → request}/artifact-diff.d.ts +1 -1
  25. package/dist/types/src/request/artifact-diff.d.ts.map +1 -0
  26. package/dist/types/src/request/format.d.ts +15 -0
  27. package/dist/types/src/request/format.d.ts.map +1 -0
  28. package/dist/types/src/request/index.d.ts +4 -0
  29. package/dist/types/src/request/index.d.ts.map +1 -0
  30. package/dist/types/src/{session → request}/observer.d.ts +6 -5
  31. package/dist/types/src/request/observer.d.ts.map +1 -0
  32. package/dist/types/src/{session → request}/version-pin.d.ts +3 -3
  33. package/dist/types/src/request/version-pin.d.ts.map +1 -0
  34. package/dist/types/src/session/AiContext.d.ts +154 -0
  35. package/dist/types/src/session/AiContext.d.ts.map +1 -0
  36. package/dist/types/src/session/AiContext.test.d.ts +2 -0
  37. package/dist/types/src/session/AiContext.test.d.ts.map +1 -0
  38. package/dist/types/src/session/AiSession.d.ts +73 -0
  39. package/dist/types/src/session/AiSession.d.ts.map +1 -0
  40. package/dist/types/src/session/index.d.ts +2 -4
  41. package/dist/types/src/session/index.d.ts.map +1 -1
  42. package/dist/types/src/session/toolkit.d.ts +10 -9
  43. package/dist/types/src/session/toolkit.d.ts.map +1 -1
  44. package/dist/types/src/templates/system.d.ts +1 -2
  45. package/dist/types/src/templates/system.d.ts.map +1 -1
  46. package/dist/types/src/util/artifact.d.ts +27 -0
  47. package/dist/types/src/util/artifact.d.ts.map +1 -0
  48. package/dist/types/src/{diff.d.ts → util/diff.d.ts} +3 -1
  49. package/dist/types/src/util/diff.d.ts.map +1 -0
  50. package/dist/types/src/{diff.test.d.ts.map → util/diff.test.d.ts.map} +1 -1
  51. package/dist/types/src/util/error-handling.d.ts.map +1 -0
  52. package/dist/types/src/{errors.d.ts → util/errors.d.ts} +32 -40
  53. package/dist/types/src/util/errors.d.ts.map +1 -0
  54. package/dist/types/src/{execution-graph.d.ts → util/execution-graph.d.ts} +5 -2
  55. package/dist/types/src/util/execution-graph.d.ts.map +1 -0
  56. package/dist/types/src/util/execution-graph.test.d.ts.map +1 -0
  57. package/dist/types/src/util/index.d.ts +7 -0
  58. package/dist/types/src/util/index.d.ts.map +1 -0
  59. package/dist/types/src/util/tracing.d.ts +233 -0
  60. package/dist/types/src/util/tracing.d.ts.map +1 -0
  61. package/dist/types/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +36 -42
  63. package/src/extraction/extraction-ner-function/index.ts +0 -1
  64. package/src/extraction/extraction-ner-function/named-entity-recognition.test.ts +10 -5
  65. package/src/extraction/extraction.ts +43 -14
  66. package/src/extraction/index.ts +0 -1
  67. package/src/extraction/quotes.ts +4 -5
  68. package/src/functions/services.ts +119 -63
  69. package/src/index.ts +2 -5
  70. package/src/request/AiRequest.ts +348 -0
  71. package/src/{session → request}/artifact-diff.ts +1 -1
  72. package/src/{session → request}/format.ts +29 -24
  73. package/src/request/index.ts +8 -0
  74. package/src/{session → request}/observer.ts +6 -3
  75. package/src/{session → request}/version-pin.ts +6 -6
  76. package/src/session/AiContext.test.ts +53 -0
  77. package/src/session/AiContext.ts +403 -0
  78. package/src/session/AiSession.ts +324 -0
  79. package/src/session/index.ts +3 -4
  80. package/src/session/toolkit.ts +27 -28
  81. package/src/templates/{format.tpl → instructions/format.tpl} +1 -4
  82. package/src/templates/{system.tpl → instructions/system.tpl} +50 -2
  83. package/src/templates/system.ts +9 -8
  84. package/src/{types → util}/artifact.ts +42 -6
  85. package/src/util/diff.test.ts +74 -0
  86. package/src/{diff.ts → util/diff.ts} +13 -4
  87. package/src/{session → util}/error-handling.ts +3 -2
  88. package/src/util/errors.ts +15 -0
  89. package/src/{execution-graph.test.ts → util/execution-graph.test.ts} +47 -45
  90. package/src/{execution-graph.ts → util/execution-graph.ts} +41 -22
  91. package/src/util/index.ts +10 -0
  92. package/src/util/tracing.ts +57 -0
  93. package/dist/lib/browser/chunk-4VIJTKPM.mjs +0 -354
  94. package/dist/lib/browser/chunk-4VIJTKPM.mjs.map +0 -7
  95. package/dist/lib/browser/chunk-UB26N5UF.mjs +0 -89
  96. package/dist/lib/browser/chunk-UB26N5UF.mjs.map +0 -7
  97. package/dist/lib/browser/extraction/index.mjs +0 -272
  98. package/dist/lib/browser/extraction/index.mjs.map +0 -7
  99. package/dist/lib/browser/index.mjs +0 -900
  100. package/dist/lib/browser/index.mjs.map +0 -7
  101. package/dist/lib/browser/meta.json +0 -1
  102. package/dist/lib/browser/named-entity-recognition-QPYHML66.mjs +0 -13
  103. package/dist/lib/node-esm/chunk-AUUC7II4.mjs +0 -356
  104. package/dist/lib/node-esm/chunk-AUUC7II4.mjs.map +0 -7
  105. package/dist/lib/node-esm/chunk-BCFXTNSK.mjs +0 -91
  106. package/dist/lib/node-esm/chunk-BCFXTNSK.mjs.map +0 -7
  107. package/dist/lib/node-esm/extraction/index.mjs +0 -273
  108. package/dist/lib/node-esm/extraction/index.mjs.map +0 -7
  109. package/dist/lib/node-esm/index.mjs +0 -901
  110. package/dist/lib/node-esm/index.mjs.map +0 -7
  111. package/dist/lib/node-esm/meta.json +0 -1
  112. package/dist/lib/node-esm/named-entity-recognition-2HDF46YX.mjs +0 -14
  113. package/dist/lib/node-esm/named-entity-recognition-2HDF46YX.mjs.map +0 -7
  114. package/dist/types/src/conversation/context.d.ts +0 -103
  115. package/dist/types/src/conversation/context.d.ts.map +0 -1
  116. package/dist/types/src/conversation/conversation.d.ts +0 -41
  117. package/dist/types/src/conversation/conversation.d.ts.map +0 -1
  118. package/dist/types/src/conversation/index.d.ts +0 -3
  119. package/dist/types/src/conversation/index.d.ts.map +0 -1
  120. package/dist/types/src/diff.d.ts.map +0 -1
  121. package/dist/types/src/errors.d.ts.map +0 -1
  122. package/dist/types/src/execution-graph.d.ts.map +0 -1
  123. package/dist/types/src/execution-graph.test.d.ts.map +0 -1
  124. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.d.ts +0 -4
  125. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.d.ts.map +0 -1
  126. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.test.d.ts +0 -2
  127. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.test.d.ts.map +0 -1
  128. package/dist/types/src/extraction/extraction-llm-function/index.d.ts +0 -2
  129. package/dist/types/src/extraction/extraction-llm-function/index.d.ts.map +0 -1
  130. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts +0 -345
  131. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts.map +0 -1
  132. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.test.d.ts +0 -2
  133. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.test.d.ts.map +0 -1
  134. package/dist/types/src/session/artifact-diff.d.ts.map +0 -1
  135. package/dist/types/src/session/error-handling.d.ts.map +0 -1
  136. package/dist/types/src/session/format.d.ts +0 -186
  137. package/dist/types/src/session/format.d.ts.map +0 -1
  138. package/dist/types/src/session/format.test.d.ts +0 -2
  139. package/dist/types/src/session/format.test.d.ts.map +0 -1
  140. package/dist/types/src/session/observer.d.ts.map +0 -1
  141. package/dist/types/src/session/session.d.ts +0 -51
  142. package/dist/types/src/session/session.d.ts.map +0 -1
  143. package/dist/types/src/session/session.test.d.ts +0 -2
  144. package/dist/types/src/session/session.test.d.ts.map +0 -1
  145. package/dist/types/src/session/version-pin.d.ts.map +0 -1
  146. package/dist/types/src/summarization/summarization.test.d.ts +0 -2
  147. package/dist/types/src/summarization/summarization.test.d.ts.map +0 -1
  148. package/dist/types/src/types/artifact.d.ts +0 -16
  149. package/dist/types/src/types/artifact.d.ts.map +0 -1
  150. package/dist/types/src/types/index.d.ts +0 -2
  151. package/dist/types/src/types/index.d.ts.map +0 -1
  152. package/src/conversation/context.ts +0 -186
  153. package/src/conversation/conversation.ts +0 -128
  154. package/src/conversation/index.ts +0 -6
  155. package/src/diff.test.ts +0 -43
  156. package/src/errors.ts +0 -15
  157. package/src/extraction/extraction-llm-function/extraction-llm-function.test.ts +0 -84
  158. package/src/extraction/extraction-llm-function/extraction-llm-function.ts +0 -72
  159. package/src/extraction/extraction-llm-function/index.ts +0 -5
  160. package/src/extraction/extraction-ner-function/extraction-ner-function.test.ts +0 -115
  161. package/src/extraction/extraction-ner-function/extraction-ner-function.ts +0 -64
  162. package/src/session/format.test.ts +0 -60
  163. package/src/session/session.conversations.json +0 -1
  164. package/src/session/session.test.ts +0 -149
  165. package/src/session/session.ts +0 -213
  166. package/src/summarization/summarization.test.ts +0 -202
  167. package/src/types/index.ts +0 -5
  168. /package/dist/lib/{browser/named-entity-recognition-QPYHML66.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  169. /package/dist/types/src/{diff.test.d.ts → util/diff.test.d.ts} +0 -0
  170. /package/dist/types/src/{session → util}/error-handling.d.ts +0 -0
  171. /package/dist/types/src/{execution-graph.test.d.ts → util/execution-graph.test.d.ts} +0 -0
  172. /package/src/extraction/extraction-llm-function/{instructions.tpl → transcription-instructions.tpl} +0 -0
@@ -1,202 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- // ISSUE(burdon): defineFunction
6
- // @ts-nocheck
7
-
8
- import * as Function from 'effect/Function';
9
- import * as Schema from 'effect/Schema';
10
- import { beforeAll, describe, test } from 'vitest';
11
-
12
- import { AiService, MixedStreamParser } from '@dxos/ai';
13
- import { Obj } from '@dxos/echo';
14
- import { type EchoDatabase } from '@dxos/echo-db';
15
- import { EchoTestBuilder } from '@dxos/echo-db/testing';
16
- import { FunctionExecutor, ServiceContainer, defineFunction } from '@dxos/functions';
17
- import { type ContentBlock, DataType } from '@dxos/schema';
18
- import { createTestData } from '@dxos/schema/testing';
19
- import { trim } from '@dxos/util';
20
-
21
- const summarizationFn = defineFunction({
22
- key: 'dxos.org/function/summarization/summarize',
23
- name: 'Summarize transcript',
24
- description: 'Summarize a document',
25
- inputSchema: Schema.Struct({
26
- document: Schema.optional(DataType.Text),
27
- transcript: Schema.Array(DataType.Message),
28
- }),
29
- outputSchema: DataType.Text,
30
- handler: async ({ data: { document, transcript }, context }) => {
31
- const ai = context.getService(AiService.AiService);
32
- const result = await new MixedStreamParser().parse(
33
- await ai.client.execStream({
34
- model: '@anthropic/claude-3-5-haiku-20241022',
35
- // TODO(burdon): Factor out and test prompts.
36
- systemPrompt: trim`
37
- Your job is to summarize a meeting transcript.
38
- Transcript Summarizer updates an existing summary within <summary> tags with a new transcript that is placed in <transcript> tags.
39
- Transcript Summarizer updates only the relevant parts of the summary.
40
- If there's no summary, create a new one.
41
- Transcript Summarizer outputs only the summary texts and nothing else.
42
- Transcript Summarizer keeps the original summary structure.
43
- Transcript Summarizer keeps the unrelated parts of the summary untouched.
44
- The Transcript Summarizer errs on the side of being too verbose.
45
- The Transcript Summarizer outputs the entire update summary.
46
- The summary is formatted as hierarchical markdown bullet points with no headings.
47
- The hierarchical structure is deeply nested.
48
- The Transcript Summarizer formats the bullets with "-" symbol as prefix and two spaces indentation.
49
- The Transcript Summarizer knows that the content of transcript will be updated solely by its output.
50
- The Transcript Summarizer outputs only the summary text.
51
- `,
52
- history: [
53
- Obj.make(DataType.Message, {
54
- created: new Date().toISOString(),
55
- sender: { role: 'user' },
56
- blocks: [
57
- {
58
- _tag: 'text',
59
- text: trim`
60
- <transcript>
61
- ${JSON.stringify(transcript, null, 2)}
62
- </transcript>
63
- `,
64
- },
65
- ...(document != null && document.content.length > 0
66
- ? [
67
- {
68
- _tag: 'text',
69
- text: trim`
70
- <summary>
71
- ${document.content}
72
- </summary>
73
- `,
74
- } satisfies ContentBlock.Text,
75
- ]
76
- : []),
77
- ],
78
- }),
79
- ],
80
- }),
81
- );
82
-
83
- return DataType.makeText(Function.pipe(result[0]?.blocks[0], (c) => (c?._tag === 'text' ? c.text : '')));
84
- },
85
- });
86
-
87
- const refinementFn = defineFunction({
88
- key: 'dxos.org/function/summarization/refine',
89
- name: 'Refine transcript summary',
90
- description: 'Refine a summary',
91
- inputSchema: Schema.Struct({
92
- summaries: Schema.Array(DataType.Text),
93
- }),
94
- outputSchema: Schema.Struct({
95
- summary: DataType.Text,
96
- }),
97
- handler: async ({ data: { summaries }, context }) => {
98
- const ai = context.getService(AiService.AiService);
99
- const result = await new MixedStreamParser().parse(
100
- await ai.client.execStream({
101
- model: '@anthropic/claude-3-5-haiku-20241022',
102
- // TODO(burdon): Factor out and test prompts.
103
- systemPrompt: trim`
104
- You are a Transcript Summary Refiner.
105
- Transcript Summary Refiner works on a history of evolving summaries that were generated based on the transcript.
106
- The summaries are presented starting from the oldest to the newest.
107
- Each iteration of the summary contains a new part of the transcript.
108
- The Transcript Summary Refiner refines the summary based on the history of summaries.
109
- The Transcript Summary Refiner identifies any potential data lost between the iterations and adds its back to the output.
110
- The Transcript Summary Refiner updates the summary to be more structured.
111
- The Transcript Summary Refiner errs on the side of being too verbose.
112
- The Transcript Summary Refiner errs on keeping the original summary structure.
113
- The Transcript Summary Refiner outputs the entire update summary.
114
- The Transcript Summary is formatted as hierarchical markdown bullet points with no headings.
115
- The hierarchical structure is deeply nested.
116
- The Transcript Summary Refiner formats the bullets with "-" symbol as prefix and two spaces indentation.
117
- The Transcript Summary Refiner knows that the content of transcript will be updated solely by its output.
118
- The Transcript Summary Refiner outputs only the summary text.
119
- `,
120
- history: [
121
- Obj.make(DataType.Message, {
122
- created: new Date().toISOString(),
123
- sender: { role: 'user' },
124
- blocks: summaries.map(
125
- (summary) =>
126
- ({
127
- _tag: 'text',
128
- text: trim`
129
- <summary>
130
- ${summary.content}
131
- </summary>
132
- `,
133
- }) satisfies ContentBlock.Text,
134
- ),
135
- }),
136
- ],
137
- }),
138
- );
139
- return {
140
- summary: DataType.makeText(Function.pipe(result[0]?.blocks[0], (c) => (c?._tag === 'text' ? c.text : ''))),
141
- };
142
- },
143
- });
144
-
145
- describe.skip('Summarization', () => {
146
- let builder: EchoTestBuilder;
147
- let db: EchoDatabase;
148
- let executor: FunctionExecutor;
149
-
150
- // TODO(burdon): Rewrite test.
151
- beforeAll(async () => {
152
- // TODO(dmaretskyi): Helper to scaffold this from a config.
153
- builder = await new EchoTestBuilder().open();
154
- const { db: db1 } = await builder.createDatabase({ indexing: { vector: true } });
155
- db = db1;
156
- executor = new FunctionExecutor(
157
- new ServiceContainer().setServices({
158
- ai: todo(),
159
- database: {
160
- db,
161
- },
162
- }),
163
- );
164
- });
165
-
166
- test('keeps transcript outline', { timeout: 1000_000 }, async () => {
167
- const { transcriptMessages } = createTestData();
168
-
169
- const summary = DataType.makeText();
170
-
171
- const summaries = [];
172
-
173
- for (let i = 0; i < transcriptMessages.length; i++) {
174
- const blocks = transcriptMessages.slice(Math.max(0, i - 2), i + 1);
175
- const result = await executor.invoke(summarizationFn, {
176
- document: summary,
177
- transcript: blocks,
178
- });
179
- summary.content = result.content;
180
- summaries.push(DataType.makeText(result.content));
181
-
182
- console.log(blocks.at(-1));
183
- console.log();
184
- console.log(summary.content);
185
- console.log();
186
-
187
- if (i % 3 === 0 && i > 0) {
188
- const history: any = summaries.slice(-5);
189
- const result = await executor.invoke(refinementFn, {
190
- summaries: history,
191
- });
192
- summary.content = result.summary.content;
193
- summaries.push(DataType.makeText(result.summary.content));
194
-
195
- console.log('REFINED');
196
- console.log();
197
- console.log(summary.content);
198
- console.log();
199
- }
200
- }
201
- });
202
- });
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './artifact';