@dxos/assistant 0.8.0 → 0.8.1-main.81238a8

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 (87) hide show
  1. package/dist/lib/browser/chunk-RFTY3OMK.mjs +2276 -0
  2. package/dist/lib/browser/chunk-RFTY3OMK.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +33 -1236
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +17 -3
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/chunk-4ZDZUCAS.cjs +2287 -0
  9. package/dist/lib/node/chunk-4ZDZUCAS.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +40 -1236
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +40 -29
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/lib/node-esm/chunk-JUVGBQBL.mjs +2278 -0
  16. package/dist/lib/node-esm/chunk-JUVGBQBL.mjs.map +7 -0
  17. package/dist/lib/node-esm/index.mjs +33 -1236
  18. package/dist/lib/node-esm/index.mjs.map +4 -4
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/testing/index.mjs +17 -3
  21. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  22. package/dist/types/src/ai-service/defs.d.ts +8 -2
  23. package/dist/types/src/ai-service/defs.d.ts.map +1 -1
  24. package/dist/types/src/ai-service/edge-client.d.ts +19 -0
  25. package/dist/types/src/ai-service/edge-client.d.ts.map +1 -0
  26. package/dist/types/src/ai-service/index.d.ts +4 -1
  27. package/dist/types/src/ai-service/index.d.ts.map +1 -1
  28. package/dist/types/src/ai-service/message-collector.d.ts +88 -0
  29. package/dist/types/src/ai-service/message-collector.d.ts.map +1 -0
  30. package/dist/types/src/ai-service/ollama-client.d.ts +39 -0
  31. package/dist/types/src/ai-service/ollama-client.d.ts.map +1 -0
  32. package/dist/types/src/ai-service/parser.d.ts +11 -9
  33. package/dist/types/src/ai-service/parser.d.ts.map +1 -1
  34. package/dist/types/src/ai-service/service.d.ts +9 -0
  35. package/dist/types/src/ai-service/service.d.ts.map +1 -0
  36. package/dist/types/src/ai-service/stream.d.ts +2 -1
  37. package/dist/types/src/ai-service/stream.d.ts.map +1 -1
  38. package/dist/types/src/ai-service/testing/mock.d.ts +2 -2
  39. package/dist/types/src/ai-service/testing/mock.d.ts.map +1 -1
  40. package/dist/types/src/ai-service/types.d.ts +91 -157
  41. package/dist/types/src/ai-service/types.d.ts.map +1 -1
  42. package/dist/types/src/conversation/conversation.d.ts +11 -9
  43. package/dist/types/src/conversation/conversation.d.ts.map +1 -1
  44. package/dist/types/src/conversation/types.d.ts +1 -1
  45. package/dist/types/src/conversation/types.d.ts.map +1 -1
  46. package/dist/types/src/testing/index.d.ts +1 -0
  47. package/dist/types/src/testing/index.d.ts.map +1 -1
  48. package/dist/types/src/testing/ollama.d.ts +6 -0
  49. package/dist/types/src/testing/ollama.d.ts.map +1 -0
  50. package/dist/types/src/testing/query-promts.d.ts +1 -1
  51. package/dist/types/src/testing/query-promts.d.ts.map +1 -1
  52. package/dist/types/src/testing/test-data.d.ts +1 -1
  53. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  54. package/dist/types/src/testing/test-schema.d.ts +1 -1
  55. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  56. package/package.json +17 -14
  57. package/src/ai-service/client.test.ts +100 -13
  58. package/src/ai-service/defs.ts +17 -2
  59. package/src/ai-service/{client.ts → edge-client.ts} +15 -24
  60. package/src/ai-service/index.ts +4 -1
  61. package/src/ai-service/message-collector.ts +84 -0
  62. package/src/ai-service/ollama-client.ts +499 -0
  63. package/src/ai-service/parser.ts +7 -2
  64. package/src/ai-service/service.ts +15 -0
  65. package/src/ai-service/stream.ts +5 -3
  66. package/src/ai-service/testing/mock.ts +7 -2
  67. package/src/ai-service/types.ts +3 -3
  68. package/src/bin/chat.ts +3 -3
  69. package/src/conversation/conversation.test.ts +5 -5
  70. package/src/conversation/conversation.ts +3 -2
  71. package/src/conversation/types.ts +1 -1
  72. package/src/testing/artifacts.test.ts +4 -4
  73. package/src/testing/index.ts +1 -0
  74. package/src/testing/object-extraction.test.ts +1 -1
  75. package/src/testing/ollama.ts +15 -0
  76. package/src/testing/query-promts.ts +1 -1
  77. package/src/testing/query.test.ts +4 -4
  78. package/src/testing/test-data.ts +1 -1
  79. package/src/testing/test-schema.ts +1 -1
  80. package/dist/lib/browser/chunk-AXUUNA7O.mjs +0 -565
  81. package/dist/lib/browser/chunk-AXUUNA7O.mjs.map +0 -7
  82. package/dist/lib/node/chunk-QPHGQINW.cjs +0 -577
  83. package/dist/lib/node/chunk-QPHGQINW.cjs.map +0 -7
  84. package/dist/lib/node-esm/chunk-GOVFOBIB.mjs +0 -567
  85. package/dist/lib/node-esm/chunk-GOVFOBIB.mjs.map +0 -7
  86. package/dist/types/src/ai-service/client.d.ts +0 -25
  87. package/dist/types/src/ai-service/client.d.ts.map +0 -1
@@ -1,6 +1,9 @@
1
- export * from './client';
2
1
  export * from './defs';
2
+ export * from './edge-client';
3
+ export * from './message-collector';
4
+ export * from './ollama-client';
3
5
  export * from './parser';
6
+ export * from './service';
4
7
  export * from './stream';
5
8
  export * from './transform';
6
9
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,88 @@
1
+ import type { Message } from '@dxos/artifact';
2
+ import type { GenerationStreamEvent } from './types';
3
+ export declare class MessageCollector {
4
+ private _messages;
5
+ private _pendingMessage?;
6
+ get messages(): {
7
+ readonly id: string;
8
+ spaceId?: import("@dxos/keys").SpaceId | undefined;
9
+ threadId?: string | undefined;
10
+ foreignId?: string | undefined;
11
+ role: "user" | "assistant";
12
+ content: ({
13
+ pending?: boolean | undefined;
14
+ type: "text";
15
+ disposition?: string | undefined;
16
+ text: string;
17
+ } | {
18
+ pending?: boolean | undefined;
19
+ type: "json";
20
+ disposition?: string | undefined;
21
+ json: string;
22
+ } | {
23
+ pending?: boolean | undefined;
24
+ type: "image";
25
+ id?: string | undefined;
26
+ source?: {
27
+ type: "base64";
28
+ mediaType: string;
29
+ data: string;
30
+ } | undefined;
31
+ } | {
32
+ pending?: boolean | undefined;
33
+ name: string;
34
+ type: "tool_use";
35
+ id: string;
36
+ input: unknown;
37
+ } | {
38
+ pending?: boolean | undefined;
39
+ type: "tool_result";
40
+ content: string;
41
+ toolUseId: string;
42
+ isError?: boolean | undefined;
43
+ })[];
44
+ }[];
45
+ get pendingMessage(): {
46
+ readonly id: string;
47
+ spaceId?: import("@dxos/keys").SpaceId | undefined;
48
+ threadId?: string | undefined;
49
+ foreignId?: string | undefined;
50
+ role: "user" | "assistant";
51
+ content: ({
52
+ pending?: boolean | undefined;
53
+ type: "text";
54
+ disposition?: string | undefined;
55
+ text: string;
56
+ } | {
57
+ pending?: boolean | undefined;
58
+ type: "json";
59
+ disposition?: string | undefined;
60
+ json: string;
61
+ } | {
62
+ pending?: boolean | undefined;
63
+ type: "image";
64
+ id?: string | undefined;
65
+ source?: {
66
+ type: "base64";
67
+ mediaType: string;
68
+ data: string;
69
+ } | undefined;
70
+ } | {
71
+ pending?: boolean | undefined;
72
+ name: string;
73
+ type: "tool_use";
74
+ id: string;
75
+ input: unknown;
76
+ } | {
77
+ pending?: boolean | undefined;
78
+ type: "tool_result";
79
+ content: string;
80
+ toolUseId: string;
81
+ isError?: boolean | undefined;
82
+ })[];
83
+ } | undefined;
84
+ push(event: GenerationStreamEvent): void;
85
+ pushMessage(message: Message): void;
86
+ }
87
+ export declare function emitMessageAsEvents(message: Message): Iterable<GenerationStreamEvent>;
88
+ //# sourceMappingURL=message-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-collector.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/message-collector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,eAAe,CAAC,CAAsB;IAE9C,IAAW,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAElB;IAED,IAAW,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAExB;IAED,IAAI,CAAC,KAAK,EAAE,qBAAqB;IAkDjC,WAAW,CAAC,OAAO,EAAE,OAAO;CAG7B;AAED,wBAAiB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAQtF"}
@@ -0,0 +1,39 @@
1
+ import { type Tool } from '@dxos/artifact';
2
+ import { type AIServiceClient, type GenerationStream } from './service';
3
+ import { type GenerateRequest } from './types';
4
+ export type OllamaClientParams = {
5
+ endpoint?: string;
6
+ /**
7
+ * Tools that are executed within the client.
8
+ */
9
+ tools?: Tool[];
10
+ /**
11
+ * Override generation parameters.
12
+ */
13
+ overrides?: {
14
+ model?: string;
15
+ temperature?: number;
16
+ };
17
+ /**
18
+ * Maximum number of tool invocations in a single request that is allowed to run.
19
+ * @default 3
20
+ */
21
+ maxToolInvocations?: number;
22
+ };
23
+ export declare class OllamaClient implements AIServiceClient {
24
+ /**
25
+ * Check if Ollama server is running and accessible.
26
+ * @returns Promise that resolves to true if Ollama is running, false otherwise.
27
+ */
28
+ static isRunning(): Promise<boolean>;
29
+ private readonly _endpoint;
30
+ private readonly _tools;
31
+ private readonly _modelOverride?;
32
+ private readonly _temperatureOverride?;
33
+ private readonly _maxToolInvocations;
34
+ constructor({ endpoint, tools, overrides, maxToolInvocations }?: OllamaClientParams);
35
+ private _getEmbededTools;
36
+ private _generateStream;
37
+ exec(request: GenerateRequest): Promise<GenerationStream>;
38
+ }
39
+ //# sourceMappingURL=ollama-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-client.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/ollama-client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwC,KAAK,IAAI,EAAc,MAAM,gBAAgB,CAAC;AAO7F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,EAAa,KAAK,eAAe,EAA8B,MAAM,SAAS,CAAC;AAGtF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf;;OAEG;IAEH,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,qBAAa,YAAa,YAAW,eAAe;IAClD;;;OAGG;WACU,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAE,kBAAuB;IAQvF,OAAO,CAAC,gBAAgB;YAST,eAAe;IAwNxB,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgEhE"}
@@ -1,7 +1,8 @@
1
1
  import { Message, type MessageContentBlock } from '@dxos/artifact';
2
2
  import { Event } from '@dxos/async';
3
- import { type GenerationStream } from './stream';
3
+ import { type GenerationStream } from './service';
4
4
  import { type StreamBlock } from './transform';
5
+ import type { GenerationStreamEvent } from './types';
5
6
  /**
6
7
  * Parse mixed content of plain text, XML fragments, and JSON blocks.
7
8
  */
@@ -12,11 +13,14 @@ export declare class MixedStreamParser {
12
13
  message: Event<{
13
14
  readonly id: string;
14
15
  spaceId?: import("@dxos/keys").SpaceId | undefined;
16
+ threadId?: string | undefined;
17
+ foreignId?: string | undefined;
18
+ role: "user" | "assistant";
15
19
  content: ({
16
20
  pending?: boolean | undefined;
17
21
  type: "text";
18
- text: string;
19
22
  disposition?: string | undefined;
23
+ text: string;
20
24
  } | {
21
25
  pending?: boolean | undefined;
22
26
  type: "json";
@@ -24,8 +28,8 @@ export declare class MixedStreamParser {
24
28
  json: string;
25
29
  } | {
26
30
  pending?: boolean | undefined;
27
- id?: string | undefined;
28
31
  type: "image";
32
+ id?: string | undefined;
29
33
  source?: {
30
34
  type: "base64";
31
35
  mediaType: string;
@@ -33,20 +37,17 @@ export declare class MixedStreamParser {
33
37
  } | undefined;
34
38
  } | {
35
39
  pending?: boolean | undefined;
36
- id: string;
37
- type: "tool_use";
38
40
  name: string;
41
+ type: "tool_use";
42
+ id: string;
39
43
  input: unknown;
40
44
  } | {
41
45
  pending?: boolean | undefined;
42
46
  type: "tool_result";
43
- toolUseId: string;
44
47
  content: string;
48
+ toolUseId: string;
45
49
  isError?: boolean | undefined;
46
50
  })[];
47
- threadId?: string | undefined;
48
- foreignId?: string | undefined;
49
- role: "user" | "assistant";
50
51
  }>;
51
52
  /**
52
53
  * Complete block added to Message.
@@ -118,6 +119,7 @@ export declare class MixedStreamParser {
118
119
  toolUseId: string;
119
120
  isError?: boolean | undefined;
120
121
  }>;
122
+ streamEvent: Event<GenerationStreamEvent>;
121
123
  /**
122
124
  * Current message.
123
125
  */
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACI,OAAO;;;;mBA6IsB,CAAA;;;uBAGZ,CAAC;;mBACS,CAAC;;uBACE,CAAC;;;mBAEhB,CAAF;cAAiC,CAAC;;kBAEhC,CAAd;;;;;;mBAGgB,CAApB;;;;;;mBAIc,CAAJ;;;;mBAME,CAAR;;;;;OAnK8B;IAEtC;;OAEG;IACI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEhD;;OAEG;IACI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAEvC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiM1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBACd,mBAAmB,eACpB,WAAW,KACvB,mBAAmB,GAAG,SAuFxB,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IAEtC;;OAEG;IACI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEhD;;OAEG;IACI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAE1C,WAAW,+BAAsC;IAExD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAEvC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAmM1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBACd,mBAAmB,eACpB,WAAW,KACvB,mBAAmB,GAAG,SAuFxB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type GenerateRequest, type GenerationStreamEvent } from './types';
2
+ export interface AIServiceClient {
3
+ exec(request: GenerateRequest): Promise<GenerationStream>;
4
+ }
5
+ export interface GenerationStream extends AsyncIterable<GenerationStreamEvent> {
6
+ abort(): void;
7
+ complete(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IAC5E,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -1,3 +1,4 @@
1
+ import type { GenerationStream } from './service';
1
2
  import { type GenerationStreamEvent } from './types';
2
3
  /**
3
4
  * Creates a stream from an SSE response.
@@ -7,7 +8,7 @@ export declare const createGenerationStream: (response: Response, controller?: A
7
8
  * Server-Sent Events (SSE) stream from the AI service.
8
9
  * https://html.spec.whatwg.org/multipage/server-sent-events.html#server-sent-events
9
10
  */
10
- export declare class GenerationStream implements AsyncIterable<GenerationStreamEvent> {
11
+ export declare class GenerationStreamImpl implements GenerationStream {
11
12
  private readonly _controller;
12
13
  private readonly _getIterator;
13
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/stream.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,sBAAsB,aAAc,QAAQ,mCAAuC,gBAuC/F,CAAC;AAEF;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,aAAa,CAAC,qBAAqB,CAAC;IAYzE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAC,CAAmD;gBAGlD,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,MAAM,qBAAqB,CAAC,qBAAqB,CAAC;IAGnF;;OAEG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC;IAI9D;;OAEG;IACH,KAAK;IAIL;;OAEG;IACG,QAAQ;IAId;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/stream.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,sBAAsB,aAAc,QAAQ,mCAAuC,gBAuC/F,CAAC;AAEF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAYzD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAC,CAAmD;gBAGlD,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,MAAM,qBAAqB,CAAC,qBAAqB,CAAC;IAGnF;;OAEG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC;IAI9D;;OAEG;IACH,KAAK;IAIL;;OAEG;IACG,QAAQ;IAId;;OAEG;IACH,OAAO,CAAC,eAAe;CAkBxB"}
@@ -1,5 +1,5 @@
1
- import { type GenerationStream, type AIService, type GenerateRequest } from '@dxos/assistant';
2
- export declare class MockAIService implements AIService {
1
+ import { type GenerationStream, type AIServiceClient, type GenerateRequest } from '@dxos/assistant';
2
+ export declare class MockAIService implements AIServiceClient {
3
3
  private readonly _responses;
4
4
  constructor(_responses: string[]);
5
5
  exec(request: GenerateRequest): Promise<GenerationStream>;
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/testing/mock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAA0B,MAAM,iBAAiB,CAAC;AAItH,qBAAa,aAAc,YAAW,SAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,EAAE;IAI3C,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGhE"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/testing/mock.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EAErB,MAAM,iBAAiB,CAAC;AAIzB,qBAAa,aAAc,YAAW,eAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,EAAE;IAI3C,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGhE"}
@@ -1,8 +1,8 @@
1
- import { Schema as S } from '@effect/schema';
1
+ import { Schema as S } from 'effect';
2
2
  import { Message, type MessageContentBlock } from '@dxos/artifact';
3
3
  import { ObjectId } from '@dxos/echo-schema';
4
4
  export declare const createArtifactElement: (id: ObjectId) => string;
5
- export declare const LLMModel: S.Schema<string, string, never>;
5
+ export declare const LLMModel: S.SchemaClass<string, string, never>;
6
6
  export type LLMModel = S.Schema.Type<typeof LLMModel>;
7
7
  export declare const ToolTypes: Readonly<{
8
8
  TextToImage: "text_to_image";
@@ -16,7 +16,7 @@ export declare const GenerateRequest: S.Struct<{
16
16
  /**
17
17
  * Preferred model or system default.
18
18
  */
19
- model: S.optional<S.Schema<string, string, never>>;
19
+ model: S.optional<S.SchemaClass<string, string, never>>;
20
20
  /**
21
21
  * Tools available for the LLM.
22
22
  */
@@ -37,163 +37,97 @@ export declare const GenerateRequest: S.Struct<{
37
37
  /**
38
38
  * History of messages to include in the context window.
39
39
  */
40
- history: S.optional<S.Array$<S.Schema<{
41
- readonly id: string;
42
- spaceId?: import("@dxos/keys").SpaceId | undefined;
43
- content: ({
44
- pending?: boolean | undefined;
45
- type: "text";
46
- text: string;
47
- disposition?: string | undefined;
48
- } | {
49
- pending?: boolean | undefined;
50
- type: "json";
51
- disposition?: string | undefined;
52
- json: string;
53
- } | {
54
- pending?: boolean | undefined;
55
- id?: string | undefined;
56
- type: "image";
57
- source?: {
58
- type: "base64";
59
- mediaType: string;
60
- data: string;
61
- } | undefined;
62
- } | {
63
- pending?: boolean | undefined;
64
- id: string;
65
- type: "tool_use";
66
- name: string;
67
- input: unknown;
68
- } | {
69
- pending?: boolean | undefined;
70
- type: "tool_result";
71
- toolUseId: string;
72
- content: string;
73
- isError?: boolean | undefined;
74
- })[];
75
- threadId?: string | undefined;
76
- foreignId?: string | undefined;
77
- role: "user" | "assistant";
78
- }, {
79
- readonly id: string;
80
- spaceId?: import("@dxos/keys").SpaceId | undefined;
81
- content: ({
82
- pending?: boolean | undefined;
83
- type: "text";
84
- text: string;
85
- disposition?: string | undefined;
86
- } | {
87
- pending?: boolean | undefined;
88
- type: "json";
89
- disposition?: string | undefined;
90
- json: string;
91
- } | {
92
- pending?: boolean | undefined;
93
- id?: string | undefined;
94
- type: "image";
95
- source?: {
96
- type: "base64";
97
- mediaType: string;
98
- data: string;
99
- } | undefined;
100
- } | {
101
- pending?: boolean | undefined;
102
- id: string;
103
- type: "tool_use";
104
- name: string;
105
- input: unknown;
106
- } | {
107
- pending?: boolean | undefined;
108
- type: "tool_result";
109
- toolUseId: string;
110
- content: string;
111
- isError?: boolean | undefined;
112
- })[];
113
- threadId?: string | undefined;
114
- foreignId?: string | undefined;
115
- role: "user" | "assistant";
116
- }, never>>>;
40
+ history: S.optional<S.Array$<import("@dxos/echo-schema").EchoObjectSchema<S.Struct<{
41
+ id: import("@dxos/echo-schema").ObjectIdClass;
42
+ spaceId: S.optional<S.Schema<import("@dxos/keys").SpaceId, string, never>>;
43
+ threadId: S.optional<import("@dxos/echo-schema").ObjectIdClass>;
44
+ foreignId: S.optional<typeof S.String>;
45
+ role: S.refine<"user" | "assistant", S.Schema<string, string, never>>;
46
+ content: S.mutable<S.Array$<S.Union<[S.mutable<S.extend<S.Struct<{
47
+ pending: S.optional<typeof S.Boolean>;
48
+ }>, S.Struct<{
49
+ type: S.Literal<["text"]>;
50
+ disposition: S.optional<typeof S.String>;
51
+ text: typeof S.String;
52
+ }>>>, S.mutable<S.extend<S.Struct<{
53
+ pending: S.optional<typeof S.Boolean>;
54
+ }>, S.Struct<{
55
+ type: S.Literal<["json"]>;
56
+ disposition: S.optional<typeof S.String>;
57
+ json: typeof S.String;
58
+ }>>>, S.mutable<S.extend<S.Struct<{
59
+ pending: S.optional<typeof S.Boolean>;
60
+ }>, S.Struct<{
61
+ type: S.Literal<["image"]>;
62
+ id: S.optional<typeof S.String>;
63
+ source: S.optional<S.mutable<S.Struct<{
64
+ type: S.Literal<["base64"]>;
65
+ mediaType: typeof S.String;
66
+ data: typeof S.String;
67
+ }>>>;
68
+ }>>>, S.mutable<S.extend<S.Struct<{
69
+ pending: S.optional<typeof S.Boolean>;
70
+ }>, S.Struct<{
71
+ type: S.Literal<["tool_use"]>;
72
+ id: typeof S.String;
73
+ name: typeof S.String;
74
+ input: typeof S.Unknown;
75
+ }>>>, S.mutable<S.extend<S.Struct<{
76
+ pending: S.optional<typeof S.Boolean>;
77
+ }>, S.Struct<{
78
+ type: S.Literal<["tool_result"]>;
79
+ toolUseId: typeof S.String;
80
+ content: typeof S.String;
81
+ isError: S.optional<typeof S.Boolean>;
82
+ }>>>]>>>;
83
+ }>>>>;
117
84
  /**
118
85
  * Current request.
119
86
  */
120
- prompt: S.optional<S.Schema<{
121
- readonly id: string;
122
- spaceId?: import("@dxos/keys").SpaceId | undefined;
123
- content: ({
124
- pending?: boolean | undefined;
125
- type: "text";
126
- text: string;
127
- disposition?: string | undefined;
128
- } | {
129
- pending?: boolean | undefined;
130
- type: "json";
131
- disposition?: string | undefined;
132
- json: string;
133
- } | {
134
- pending?: boolean | undefined;
135
- id?: string | undefined;
136
- type: "image";
137
- source?: {
138
- type: "base64";
139
- mediaType: string;
140
- data: string;
141
- } | undefined;
142
- } | {
143
- pending?: boolean | undefined;
144
- id: string;
145
- type: "tool_use";
146
- name: string;
147
- input: unknown;
148
- } | {
149
- pending?: boolean | undefined;
150
- type: "tool_result";
151
- toolUseId: string;
152
- content: string;
153
- isError?: boolean | undefined;
154
- })[];
155
- threadId?: string | undefined;
156
- foreignId?: string | undefined;
157
- role: "user" | "assistant";
158
- }, {
159
- readonly id: string;
160
- spaceId?: import("@dxos/keys").SpaceId | undefined;
161
- content: ({
162
- pending?: boolean | undefined;
163
- type: "text";
164
- text: string;
165
- disposition?: string | undefined;
166
- } | {
167
- pending?: boolean | undefined;
168
- type: "json";
169
- disposition?: string | undefined;
170
- json: string;
171
- } | {
172
- pending?: boolean | undefined;
173
- id?: string | undefined;
174
- type: "image";
175
- source?: {
176
- type: "base64";
177
- mediaType: string;
178
- data: string;
179
- } | undefined;
180
- } | {
181
- pending?: boolean | undefined;
182
- id: string;
183
- type: "tool_use";
184
- name: string;
185
- input: unknown;
186
- } | {
187
- pending?: boolean | undefined;
188
- type: "tool_result";
189
- toolUseId: string;
190
- content: string;
191
- isError?: boolean | undefined;
192
- })[];
193
- threadId?: string | undefined;
194
- foreignId?: string | undefined;
195
- role: "user" | "assistant";
196
- }, never>>;
87
+ prompt: S.optional<import("@dxos/echo-schema").EchoObjectSchema<S.Struct<{
88
+ id: import("@dxos/echo-schema").ObjectIdClass;
89
+ spaceId: S.optional<S.Schema<import("@dxos/keys").SpaceId, string, never>>;
90
+ threadId: S.optional<import("@dxos/echo-schema").ObjectIdClass>;
91
+ foreignId: S.optional<typeof S.String>;
92
+ role: S.refine<"user" | "assistant", S.Schema<string, string, never>>;
93
+ content: S.mutable<S.Array$<S.Union<[S.mutable<S.extend<S.Struct<{
94
+ pending: S.optional<typeof S.Boolean>;
95
+ }>, S.Struct<{
96
+ type: S.Literal<["text"]>;
97
+ disposition: S.optional<typeof S.String>;
98
+ text: typeof S.String;
99
+ }>>>, S.mutable<S.extend<S.Struct<{
100
+ pending: S.optional<typeof S.Boolean>;
101
+ }>, S.Struct<{
102
+ type: S.Literal<["json"]>;
103
+ disposition: S.optional<typeof S.String>;
104
+ json: typeof S.String;
105
+ }>>>, S.mutable<S.extend<S.Struct<{
106
+ pending: S.optional<typeof S.Boolean>;
107
+ }>, S.Struct<{
108
+ type: S.Literal<["image"]>;
109
+ id: S.optional<typeof S.String>;
110
+ source: S.optional<S.mutable<S.Struct<{
111
+ type: S.Literal<["base64"]>;
112
+ mediaType: typeof S.String;
113
+ data: typeof S.String;
114
+ }>>>;
115
+ }>>>, S.mutable<S.extend<S.Struct<{
116
+ pending: S.optional<typeof S.Boolean>;
117
+ }>, S.Struct<{
118
+ type: S.Literal<["tool_use"]>;
119
+ id: typeof S.String;
120
+ name: typeof S.String;
121
+ input: typeof S.Unknown;
122
+ }>>>, S.mutable<S.extend<S.Struct<{
123
+ pending: S.optional<typeof S.Boolean>;
124
+ }>, S.Struct<{
125
+ type: S.Literal<["tool_result"]>;
126
+ toolUseId: typeof S.String;
127
+ content: typeof S.String;
128
+ isError: S.optional<typeof S.Boolean>;
129
+ }>>>]>>>;
130
+ }>>>;
197
131
  }>;
198
132
  export type GenerateRequest = S.Schema.Type<typeof GenerateRequest>;
199
133
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAQ,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,eAAO,MAAM,qBAAqB,OAAQ,QAAQ,WAA4B,CAAC;AAE/E,eAAO,MAAM,QAAQ,iCAAmC,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEtD,eAAO,MAAM,SAAS;;EAIpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;IAI1B;;OAEG;;IAGH;;OAEG;;qBA6B6B,EAChC,MACD;mBAAgB,EAAG,QAAQ,QAAO,EAAG,MAAM;kBACtC,EAAA,QAAO,QAAO,EAAG,MACvB;cAiBe,EAAG,QAAQ,QAAO,EAC3B,MAAC;iBAIK,EAAA,QAAK,QAAO,EACd,MAAH;qBAGiB,EAAG,QAC1B,QAAS,EAAC,MACP;oBAKgE,EAAG,QAAQ,CAAC,EAAE,MAAM;iBAAyI,EAAG,QAAQ,QAAO,EAAG,GAAG;;IA/DvP;;OAEG;;IAGH;;OAEG;;;;;mBAwDyvE,CAAC;;;uBAAsF,CAAC;;mBAA+C,CAAC;;uBAAgE,CAAC;;;mBAAqE,CAAC;cAAiC,CAAC;;kBAA2D,CAAC;;;;;;mBAAyI,CAAC;;;;;;mBAA4I,CAAC;;;;mBAAuH,CAAC;;;;;;;;;mBAAwO,CAAC;;;uBAAsF,CAAC;;mBAA+C,CAAC;;uBAAgE,CAAC;;;mBAAqE,CAAC;cAAiC,CAAC;;kBAA2D,CAAC;;;;;;mBAAyI,CAAC;;;;;;mBAA4I,CAAC;;;;mBAAuH,CAAC;;;;;;IApD59H;;OAEG;;;;;mBAkDyvE,CAAC;;;uBAAsF,CAAC;;mBAA+C,CAAC;;uBAAgE,CAAC;;;mBAAqE,CAAC;cAAiC,CAAC;;kBAA2D,CAAC;;;;;;mBAAyI,CAAC;;;;;;mBAA4I,CAAC;;;;mBAAuH,CAAC;;;;;;;;;mBAAwO,CAAC;;;uBAAsF,CAAC;;mBAA+C,CAAC;;uBAAgE,CAAC;;;mBAAqE,CAAC;cAAiC,CAAC;;kBAA2D,CAAC;;;;;;mBAAyI,CAAC;;;;;;mBAA4I,CAAC;;;;mBAAuH,CAAC;;;;;;EAhD59H,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;AAEpE;;;;;GAKG;AAEH,MAAM,MAAM,qBAAqB,GAC7B;IAEE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;CAChD,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE;QACL,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;KACrC,CAAC;CACH,GACD;IACE,IAAI,EAAE,cAAc,CAAC;CACtB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EACD;QACE,IAAI,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,GACD;QACE,IAAI,EAAE,kBAAkB,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACP,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/types.ts"],"names":[],"mappings":"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"}
@@ -24,11 +24,14 @@ export declare const runLLM: (params: CreateLLMConversationParams) => Promise<{
24
24
  history: {
25
25
  readonly id: string;
26
26
  spaceId?: SpaceId | undefined;
27
+ threadId?: string | undefined;
28
+ foreignId?: string | undefined;
29
+ role: "user" | "assistant";
27
30
  content: ({
28
31
  pending?: boolean | undefined;
29
32
  type: "text";
30
- text: string;
31
33
  disposition?: string | undefined;
34
+ text: string;
32
35
  } | {
33
36
  pending?: boolean | undefined;
34
37
  type: "json";
@@ -36,8 +39,8 @@ export declare const runLLM: (params: CreateLLMConversationParams) => Promise<{
36
39
  json: string;
37
40
  } | {
38
41
  pending?: boolean | undefined;
39
- id?: string | undefined;
40
42
  type: "image";
43
+ id?: string | undefined;
41
44
  source?: {
42
45
  type: "base64";
43
46
  mediaType: string;
@@ -45,23 +48,22 @@ export declare const runLLM: (params: CreateLLMConversationParams) => Promise<{
45
48
  } | undefined;
46
49
  } | {
47
50
  pending?: boolean | undefined;
48
- id: string;
49
- type: "tool_use";
50
51
  name: string;
52
+ type: "tool_use";
53
+ id: string;
51
54
  input: unknown;
52
55
  } | {
53
56
  pending?: boolean | undefined;
54
57
  type: "tool_result";
55
- toolUseId: string;
56
58
  content: string;
59
+ toolUseId: string;
57
60
  isError?: boolean | undefined;
58
61
  })[];
59
- threadId?: string | undefined;
60
- foreignId?: string | undefined;
61
- role: "user" | "assistant";
62
62
  }[];
63
63
  }>;
64
- export declare const isToolUse: (message: Message) => boolean;
64
+ export declare const isToolUse: (message: Message, { onlyToolNames }?: {
65
+ onlyToolNames?: string[];
66
+ }) => boolean;
65
67
  export type RunToolsOptions = {
66
68
  message: Message;
67
69
  tools: Tool[];
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../src/conversation/conversation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAc,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,QAAQ,CAAC;IAEhB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,GACD,qBAAqB,CAAC;AAG1B,eAAO,MAAM,MAAM,WAAkB,2BAA2B;;;;;;mBAsIgB,CAAC;;;uBAGlE,CAAC;;mBAA+C,CAAC;;uBAEjB,CAAC;;;mBAK/B,CAAC;cACK,CAAA;;kBACV,CAAC;;;;;;mBAML,CAAA;;;;;;mBAGU,CAAC;;;;mBAKH,CAAC;;;;;;EAnDjB,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,OAAO,YAIzC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,eAAO,MAAM,QAAQ,mCAA0C,eAAe,KAAG,OAAO,CAAC,cAAc,CAoEtG,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../src/conversation/conversation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAc,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,QAAQ,CAAC;IAEhB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,GACD,qBAAqB,CAAC;AAG1B,eAAO,MAAM,MAAM,WAAkB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6G/D,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,OAAO,sBAAqB;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,YAI1F,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,eAAO,MAAM,QAAQ,mCAA0C,eAAe,KAAG,OAAO,CAAC,cAAc,CAqEtG,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Schema as S } from '@effect/schema';
1
+ import { Schema as S } from 'effect';
2
2
  import { type Message, type MessageContentBlock } from '@dxos/artifact';
3
3
  import { JsonSchemaType, ObjectId } from '@dxos/echo-schema';
4
4
  import type { SpaceId } from '@dxos/keys';