@dxos/plugin-assistant 0.8.3-main.7f5a14c → 0.8.3-staging.0fa589b

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 (155) hide show
  1. package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs → AssistantDialog-MQOOR364.mjs} +5 -5
  2. package/dist/lib/browser/{BlueprintContainer-4MEK52NT.mjs → BlueprintContainer-AT5Y7EXG.mjs} +145 -28
  3. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs → ChatContainer-C2NEAS3A.mjs} +5 -5
  5. package/dist/lib/browser/{ai-client-MTCTMJ5N.mjs → ai-client-MK2ZZII2.mjs} +6 -6
  6. package/dist/lib/browser/ai-client-MK2ZZII2.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-DBCVARVI.mjs → app-graph-builder-E4H5DCOJ.mjs} +35 -22
  8. package/dist/lib/browser/app-graph-builder-E4H5DCOJ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-ZVHA24BL.mjs → chunk-AAOKC2JN.mjs} +10 -8
  10. package/dist/lib/browser/{chunk-ZVHA24BL.mjs.map → chunk-AAOKC2JN.mjs.map} +3 -3
  11. package/dist/lib/browser/{chunk-WFZ4EPPI.mjs → chunk-BI6AHRNJ.mjs} +6 -6
  12. package/dist/lib/browser/{chunk-WFZ4EPPI.mjs.map → chunk-BI6AHRNJ.mjs.map} +1 -1
  13. package/dist/lib/browser/{chunk-DLWFPGZE.mjs → chunk-JO4W3MF7.mjs} +6 -6
  14. package/dist/lib/browser/{chunk-DLWFPGZE.mjs.map → chunk-JO4W3MF7.mjs.map} +3 -3
  15. package/dist/lib/browser/chunk-MEGMOFJB.mjs +16 -0
  16. package/dist/lib/browser/{chunk-3TIEETB2.mjs → chunk-UE3IZ4PN.mjs} +1 -1
  17. package/dist/lib/browser/{chunk-3TIEETB2.mjs.map → chunk-UE3IZ4PN.mjs.map} +1 -1
  18. package/dist/lib/browser/index.mjs +66 -23
  19. package/dist/lib/browser/index.mjs.map +4 -4
  20. package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs → intent-resolver-3UICTGPM.mjs} +2 -2
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-surface-OD23FVUD.mjs → react-surface-LXCNUSZN.mjs} +23 -6
  23. package/dist/lib/browser/react-surface-LXCNUSZN.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-FUYUBGSQ.mjs → settings-XRHXVWGB.mjs} +2 -2
  25. package/dist/lib/browser/types/index.mjs +1 -1
  26. package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs → AssistantDialog-AN4Z6YUV.cjs} +9 -9
  27. package/dist/lib/node/{BlueprintContainer-VD6EIWH7.cjs → BlueprintContainer-NOWLDYCZ.cjs} +141 -26
  28. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs.map +7 -0
  29. package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs → ChatContainer-VKYBQHUB.cjs} +9 -9
  30. package/dist/lib/node/{ai-client-3XNIFMJX.cjs → ai-client-7HNSMUMT.cjs} +9 -9
  31. package/dist/lib/node/ai-client-7HNSMUMT.cjs.map +7 -0
  32. package/dist/lib/node/{app-graph-builder-VEPLBTML.cjs → app-graph-builder-PPR5B5KU.cjs} +42 -29
  33. package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-BGRQNE3L.cjs → chunk-FUAGEO7Q.cjs} +9 -9
  35. package/dist/lib/node/{chunk-DXBAFX6M.cjs → chunk-IKZBMHSW.cjs} +11 -11
  36. package/dist/lib/node/{chunk-DXBAFX6M.cjs.map → chunk-IKZBMHSW.cjs.map} +1 -1
  37. package/dist/lib/node/{chunk-7TQAIKE2.cjs → chunk-LMDJEGZ2.cjs} +14 -12
  38. package/dist/lib/node/chunk-LMDJEGZ2.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-WR5L3TVB.cjs → chunk-NIDICM57.cjs} +18 -18
  40. package/dist/lib/node/{chunk-WR5L3TVB.cjs.map → chunk-NIDICM57.cjs.map} +3 -3
  41. package/dist/lib/node/{chunk-ZP732NHS.cjs → chunk-QGPWY6GW.cjs} +4 -4
  42. package/dist/lib/node/{chunk-ZP732NHS.cjs.map → chunk-QGPWY6GW.cjs.map} +1 -1
  43. package/dist/lib/node/index.cjs +118 -76
  44. package/dist/lib/node/index.cjs.map +4 -4
  45. package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs → intent-resolver-QSWGTKON.cjs} +8 -8
  46. package/dist/lib/node/meta.json +1 -1
  47. package/dist/lib/node/{react-surface-FANQXIRI.cjs → react-surface-D3NBYRZ6.cjs} +40 -23
  48. package/dist/lib/node/react-surface-D3NBYRZ6.cjs.map +7 -0
  49. package/dist/lib/node/{settings-PXPIPYJN.cjs → settings-2JXLKYGE.cjs} +6 -6
  50. package/dist/lib/node/types/index.cjs +14 -14
  51. package/dist/lib/node/types/index.cjs.map +1 -1
  52. package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs → AssistantDialog-6WEMLUPU.mjs} +5 -5
  53. package/dist/lib/node-esm/{BlueprintContainer-SVOKCRCP.mjs → BlueprintContainer-STOJAVML.mjs} +145 -28
  54. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs.map +7 -0
  55. package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs → ChatContainer-3MVBTUJN.mjs} +5 -5
  56. package/dist/lib/node-esm/{ai-client-YIP44I4D.mjs → ai-client-XGZBJ6BE.mjs} +6 -6
  57. package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs.map +7 -0
  58. package/dist/lib/node-esm/{app-graph-builder-WJXDXLBQ.mjs → app-graph-builder-3SY5MBIK.mjs} +35 -22
  59. package/dist/lib/node-esm/app-graph-builder-3SY5MBIK.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs +18 -0
  61. package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs → chunk-3UEZLJ2V.mjs} +1 -1
  62. package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs.map → chunk-3UEZLJ2V.mjs.map} +1 -1
  63. package/dist/lib/node-esm/{chunk-24LIHQST.mjs → chunk-J6UXXZGJ.mjs} +10 -8
  64. package/dist/lib/node-esm/{chunk-24LIHQST.mjs.map → chunk-J6UXXZGJ.mjs.map} +3 -3
  65. package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs → chunk-OD574YIU.mjs} +6 -6
  66. package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs.map → chunk-OD574YIU.mjs.map} +3 -3
  67. package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs → chunk-UCOFKNKN.mjs} +6 -6
  68. package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs.map → chunk-UCOFKNKN.mjs.map} +1 -1
  69. package/dist/lib/node-esm/index.mjs +66 -23
  70. package/dist/lib/node-esm/index.mjs.map +4 -4
  71. package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs → intent-resolver-E6MXTYAU.mjs} +2 -2
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/{react-surface-NAN4SDCE.mjs → react-surface-7HA5EDWY.mjs} +23 -6
  74. package/dist/lib/node-esm/react-surface-7HA5EDWY.mjs.map +7 -0
  75. package/dist/lib/node-esm/{settings-JHMKX3UV.mjs → settings-5IAY6BT4.mjs} +2 -2
  76. package/dist/lib/node-esm/types/index.mjs +1 -1
  77. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  79. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  82. package/dist/types/src/capabilities/index.d.ts +1 -1
  83. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  84. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
  85. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  86. package/dist/types/src/events.d.ts +4 -0
  87. package/dist/types/src/events.d.ts.map +1 -0
  88. package/dist/types/src/hooks/processor.d.ts +3 -3
  89. package/dist/types/src/hooks/useMessageQueue.d.ts +2 -2
  90. package/dist/types/src/index.d.ts +1 -0
  91. package/dist/types/src/index.d.ts.map +1 -1
  92. package/dist/types/src/queue-logger.d.ts +11 -0
  93. package/dist/types/src/queue-logger.d.ts.map +1 -0
  94. package/dist/types/src/translations.d.ts +75 -11
  95. package/dist/types/src/translations.d.ts.map +1 -1
  96. package/dist/types/src/types/chat.d.ts +12 -9
  97. package/dist/types/src/types/chat.d.ts.map +1 -1
  98. package/dist/types/src/types/service.d.ts +51 -102
  99. package/dist/types/src/types/service.d.ts.map +1 -1
  100. package/dist/types/src/types/template.d.ts +3 -23
  101. package/dist/types/src/types/template.d.ts.map +1 -1
  102. package/dist/types/src/types/types.d.ts +5 -5
  103. package/package.json +70 -69
  104. package/src/AssistantPlugin.tsx +26 -3
  105. package/src/capabilities/ai-client.ts +4 -4
  106. package/src/capabilities/app-graph-builder.ts +34 -22
  107. package/src/capabilities/capabilities.ts +2 -2
  108. package/src/capabilities/react-surface.tsx +16 -0
  109. package/src/components/BlueprintContainer.tsx +10 -22
  110. package/src/components/PromptSettings.tsx +1 -1
  111. package/src/components/Thread/Thread.stories.tsx +19 -27
  112. package/src/components/Thread/ThreadContainer.stories.tsx +5 -5
  113. package/src/components/Thread/ThreadContainer.tsx +1 -1
  114. package/src/components/Thread/reducer.ts +3 -3
  115. package/src/events.ts +11 -0
  116. package/src/hooks/processor.ts +4 -4
  117. package/src/index.ts +1 -0
  118. package/src/queue-logger.ts +125 -0
  119. package/src/stories/Query.stories.tsx +4 -4
  120. package/src/stories/Research.stories.tsx +11 -11
  121. package/src/stories/test-data.ts +4 -4
  122. package/src/testing/test-blueprint.ts +1 -1
  123. package/src/tools/openapi.test.ts +4 -4
  124. package/src/translations.ts +16 -4
  125. package/src/types/template.ts +11 -6
  126. package/dist/lib/browser/BlueprintContainer-4MEK52NT.mjs.map +0 -7
  127. package/dist/lib/browser/ai-client-MTCTMJ5N.mjs.map +0 -7
  128. package/dist/lib/browser/app-graph-builder-DBCVARVI.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-AKYSTUBJ.mjs +0 -16
  130. package/dist/lib/browser/react-surface-OD23FVUD.mjs.map +0 -7
  131. package/dist/lib/node/BlueprintContainer-VD6EIWH7.cjs.map +0 -7
  132. package/dist/lib/node/ai-client-3XNIFMJX.cjs.map +0 -7
  133. package/dist/lib/node/app-graph-builder-VEPLBTML.cjs.map +0 -7
  134. package/dist/lib/node/chunk-7TQAIKE2.cjs.map +0 -7
  135. package/dist/lib/node/react-surface-FANQXIRI.cjs.map +0 -7
  136. package/dist/lib/node-esm/BlueprintContainer-SVOKCRCP.mjs.map +0 -7
  137. package/dist/lib/node-esm/ai-client-YIP44I4D.mjs.map +0 -7
  138. package/dist/lib/node-esm/app-graph-builder-WJXDXLBQ.mjs.map +0 -7
  139. package/dist/lib/node-esm/chunk-ZKTIHNT7.mjs +0 -18
  140. package/dist/lib/node-esm/react-surface-NAN4SDCE.mjs.map +0 -7
  141. /package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs.map → AssistantDialog-MQOOR364.mjs.map} +0 -0
  142. /package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs.map → ChatContainer-C2NEAS3A.mjs.map} +0 -0
  143. /package/dist/lib/browser/{chunk-AKYSTUBJ.mjs.map → chunk-MEGMOFJB.mjs.map} +0 -0
  144. /package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs.map → intent-resolver-3UICTGPM.mjs.map} +0 -0
  145. /package/dist/lib/browser/{settings-FUYUBGSQ.mjs.map → settings-XRHXVWGB.mjs.map} +0 -0
  146. /package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs.map → AssistantDialog-AN4Z6YUV.cjs.map} +0 -0
  147. /package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs.map → ChatContainer-VKYBQHUB.cjs.map} +0 -0
  148. /package/dist/lib/node/{chunk-BGRQNE3L.cjs.map → chunk-FUAGEO7Q.cjs.map} +0 -0
  149. /package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs.map → intent-resolver-QSWGTKON.cjs.map} +0 -0
  150. /package/dist/lib/node/{settings-PXPIPYJN.cjs.map → settings-2JXLKYGE.cjs.map} +0 -0
  151. /package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs.map → AssistantDialog-6WEMLUPU.mjs.map} +0 -0
  152. /package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs.map → ChatContainer-3MVBTUJN.mjs.map} +0 -0
  153. /package/dist/lib/node-esm/{chunk-ZKTIHNT7.mjs.map → chunk-34EX6E5Q.mjs.map} +0 -0
  154. /package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs.map → intent-resolver-E6MXTYAU.mjs.map} +0 -0
  155. /package/dist/lib/node-esm/{settings-JHMKX3UV.mjs.map → settings-5IAY6BT4.mjs.map} +0 -0
@@ -8,11 +8,11 @@ export declare namespace AssistantAction {
8
8
  name: Schema.optional<typeof Schema.String>;
9
9
  }>;
10
10
  output: Schema.Struct<{
11
- object: import("@dxos/echo-schema").EchoTypeSchema<Schema.Struct<{
11
+ object: import("@dxos/echo/Type").obj<Schema.Struct<{
12
12
  id: import("@dxos/keys").ObjectIdClass;
13
13
  name: Schema.optional<typeof Schema.String>;
14
- queue: import("@dxos/echo-schema").Ref$<import("@dxos/echo-db").Queue<import("@dxos/echo-schema").AnyEchoObject>>;
15
- }>, {}>;
14
+ queue: import("@dxos/echo/Type").ref<Schema.Schema<import("@dxos/echo-db").Queue<import("@dxos/echo/Obj").Any | import("@dxos/echo/Relation").Any>, import("@dxos/echo-db").Queue<import("@dxos/echo/Obj").Any | import("@dxos/echo/Relation").Any>, never>>;
15
+ }>>;
16
16
  }>;
17
17
  }>;
18
18
  export class CreateChat extends CreateChat_base {
@@ -24,14 +24,14 @@ export declare namespace AssistantAction {
24
24
  name: Schema.optional<typeof Schema.String>;
25
25
  }>;
26
26
  output: Schema.Struct<{
27
- object: import("@dxos/echo-schema").EchoTypeSchema<Schema.Struct<{
27
+ object: import("@dxos/echo/Type").obj<Schema.Struct<{
28
28
  name: Schema.optional<typeof Schema.String>;
29
29
  steps: Schema.Array$<Schema.Struct<{
30
30
  id: import("@dxos/keys").ObjectIdClass;
31
31
  instructions: typeof Schema.String;
32
32
  tools: Schema.optional<Schema.Array$<typeof Schema.String>>;
33
33
  }>>;
34
- }>, {}>;
34
+ }>>;
35
35
  }>;
36
36
  }>;
37
37
  export class CreateBlueprint extends CreateBlueprint_base {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-assistant",
3
- "version": "0.8.3-main.7f5a14c",
3
+ "version": "0.8.3-staging.0fa589b",
4
4
  "description": "Assistant plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -48,60 +48,61 @@
48
48
  "jsonpointer": "^5.0.1",
49
49
  "lodash.defaultsdeep": "^4.6.1",
50
50
  "unified": "^11.0.0",
51
- "@dxos/app-framework": "0.8.3-main.7f5a14c",
52
- "@dxos/artifact": "0.8.3-main.7f5a14c",
53
- "@dxos/async": "0.8.3-main.7f5a14c",
54
- "@dxos/assistant": "0.8.3-main.7f5a14c",
55
- "@dxos/ai": "0.8.3-main.7f5a14c",
56
- "@dxos/conductor": "0.8.3-main.7f5a14c",
57
- "@dxos/client": "0.8.3-main.7f5a14c",
58
- "@dxos/compute": "0.8.3-main.7f5a14c",
59
- "@dxos/context": "0.8.3-main.7f5a14c",
60
- "@dxos/echo": "0.8.3-main.7f5a14c",
61
- "@dxos/config": "0.8.3-main.7f5a14c",
62
- "@dxos/echo-db": "0.8.3-main.7f5a14c",
63
- "@dxos/echo-protocol": "0.8.3-main.7f5a14c",
64
- "@dxos/debug": "0.8.3-main.7f5a14c",
65
- "@dxos/edge-client": "0.8.3-main.7f5a14c",
66
- "@dxos/echo-schema": "0.8.3-main.7f5a14c",
67
- "@dxos/effect": "0.8.3-main.7f5a14c",
68
- "@dxos/functions": "0.8.3-main.7f5a14c",
69
- "@dxos/graph": "0.8.3-main.7f5a14c",
70
- "@dxos/keys": "0.8.3-main.7f5a14c",
71
- "@dxos/live-object": "0.8.3-main.7f5a14c",
72
- "@dxos/local-storage": "0.8.3-main.7f5a14c",
73
- "@dxos/log": "0.8.3-main.7f5a14c",
74
- "@dxos/invariant": "0.8.3-main.7f5a14c",
75
- "@dxos/plugin-client": "0.8.3-main.7f5a14c",
76
- "@dxos/plugin-deck": "0.8.3-main.7f5a14c",
77
- "@dxos/plugin-explorer": "0.8.3-main.7f5a14c",
78
- "@dxos/plugin-graph": "0.8.3-main.7f5a14c",
79
- "@dxos/plugin-markdown": "0.8.3-main.7f5a14c",
80
- "@dxos/plugin-script": "0.8.3-main.7f5a14c",
81
- "@dxos/plugin-preview": "0.8.3-main.7f5a14c",
82
- "@dxos/plugin-sketch": "0.8.3-main.7f5a14c",
83
- "@dxos/plugin-inbox": "0.8.3-main.7f5a14c",
84
- "@dxos/plugin-stack": "0.8.3-main.7f5a14c",
85
- "@dxos/plugin-space": "0.8.3-main.7f5a14c",
86
- "@dxos/plugin-transcription": "0.8.3-main.7f5a14c",
87
- "@dxos/plugin-wnfs": "0.8.3-main.7f5a14c",
88
- "@dxos/react-client": "0.8.3-main.7f5a14c",
89
- "@dxos/react-edge-client": "0.8.3-main.7f5a14c",
90
- "@dxos/protocols": "0.8.3-main.7f5a14c",
91
- "@dxos/react-ui-attention": "0.8.3-main.7f5a14c",
92
- "@dxos/react-ui-canvas-compute": "0.8.3-main.7f5a14c",
93
- "@dxos/react-ui-canvas-editor": "0.8.3-main.7f5a14c",
94
- "@dxos/react-ui-dnd": "0.8.3-main.7f5a14c",
95
- "@dxos/react-ui-components": "0.8.3-main.7f5a14c",
96
- "@dxos/react-ui-form": "0.8.3-main.7f5a14c",
97
- "@dxos/react-ui-graph": "0.8.3-main.7f5a14c",
98
- "@dxos/react-ui-list": "0.8.3-main.7f5a14c",
99
- "@dxos/react-ui-editor": "0.8.3-main.7f5a14c",
100
- "@dxos/react-ui-sfx": "0.8.3-main.7f5a14c",
101
- "@dxos/react-ui-stack": "0.8.3-main.7f5a14c",
102
- "@dxos/react-ui-syntax-highlighter": "0.8.3-main.7f5a14c",
103
- "@dxos/schema": "0.8.3-main.7f5a14c",
104
- "@dxos/util": "0.8.3-main.7f5a14c"
51
+ "@dxos/ai": "0.8.3-staging.0fa589b",
52
+ "@dxos/app-framework": "0.8.3-staging.0fa589b",
53
+ "@dxos/artifact": "0.8.3-staging.0fa589b",
54
+ "@dxos/assistant": "0.8.3-staging.0fa589b",
55
+ "@dxos/async": "0.8.3-staging.0fa589b",
56
+ "@dxos/client": "0.8.3-staging.0fa589b",
57
+ "@dxos/conductor": "0.8.3-staging.0fa589b",
58
+ "@dxos/compute": "0.8.3-staging.0fa589b",
59
+ "@dxos/debug": "0.8.3-staging.0fa589b",
60
+ "@dxos/config": "0.8.3-staging.0fa589b",
61
+ "@dxos/devtools": "0.8.3-staging.0fa589b",
62
+ "@dxos/context": "0.8.3-staging.0fa589b",
63
+ "@dxos/echo": "0.8.3-staging.0fa589b",
64
+ "@dxos/echo-db": "0.8.3-staging.0fa589b",
65
+ "@dxos/echo-protocol": "0.8.3-staging.0fa589b",
66
+ "@dxos/echo-schema": "0.8.3-staging.0fa589b",
67
+ "@dxos/edge-client": "0.8.3-staging.0fa589b",
68
+ "@dxos/effect": "0.8.3-staging.0fa589b",
69
+ "@dxos/functions": "0.8.3-staging.0fa589b",
70
+ "@dxos/graph": "0.8.3-staging.0fa589b",
71
+ "@dxos/invariant": "0.8.3-staging.0fa589b",
72
+ "@dxos/keys": "0.8.3-staging.0fa589b",
73
+ "@dxos/live-object": "0.8.3-staging.0fa589b",
74
+ "@dxos/local-storage": "0.8.3-staging.0fa589b",
75
+ "@dxos/log": "0.8.3-staging.0fa589b",
76
+ "@dxos/plugin-deck": "0.8.3-staging.0fa589b",
77
+ "@dxos/plugin-explorer": "0.8.3-staging.0fa589b",
78
+ "@dxos/plugin-client": "0.8.3-staging.0fa589b",
79
+ "@dxos/plugin-graph": "0.8.3-staging.0fa589b",
80
+ "@dxos/plugin-inbox": "0.8.3-staging.0fa589b",
81
+ "@dxos/plugin-preview": "0.8.3-staging.0fa589b",
82
+ "@dxos/plugin-markdown": "0.8.3-staging.0fa589b",
83
+ "@dxos/plugin-script": "0.8.3-staging.0fa589b",
84
+ "@dxos/plugin-sketch": "0.8.3-staging.0fa589b",
85
+ "@dxos/plugin-space": "0.8.3-staging.0fa589b",
86
+ "@dxos/plugin-stack": "0.8.3-staging.0fa589b",
87
+ "@dxos/plugin-wnfs": "0.8.3-staging.0fa589b",
88
+ "@dxos/plugin-transcription": "0.8.3-staging.0fa589b",
89
+ "@dxos/protocols": "0.8.3-staging.0fa589b",
90
+ "@dxos/react-ui-attention": "0.8.3-staging.0fa589b",
91
+ "@dxos/react-ui-canvas-compute": "0.8.3-staging.0fa589b",
92
+ "@dxos/react-edge-client": "0.8.3-staging.0fa589b",
93
+ "@dxos/react-ui-canvas-editor": "0.8.3-staging.0fa589b",
94
+ "@dxos/react-client": "0.8.3-staging.0fa589b",
95
+ "@dxos/react-ui-components": "0.8.3-staging.0fa589b",
96
+ "@dxos/react-ui-dnd": "0.8.3-staging.0fa589b",
97
+ "@dxos/react-ui-editor": "0.8.3-staging.0fa589b",
98
+ "@dxos/react-ui-form": "0.8.3-staging.0fa589b",
99
+ "@dxos/react-ui-list": "0.8.3-staging.0fa589b",
100
+ "@dxos/react-ui-graph": "0.8.3-staging.0fa589b",
101
+ "@dxos/react-ui-sfx": "0.8.3-staging.0fa589b",
102
+ "@dxos/react-ui-stack": "0.8.3-staging.0fa589b",
103
+ "@dxos/react-ui-syntax-highlighter": "0.8.3-staging.0fa589b",
104
+ "@dxos/schema": "0.8.3-staging.0fa589b",
105
+ "@dxos/util": "0.8.3-staging.0fa589b"
105
106
  },
106
107
  "devDependencies": {
107
108
  "@effect-rx/rx-react": "^0.34.1",
@@ -114,18 +115,18 @@
114
115
  "react": "~18.2.0",
115
116
  "react-dom": "~18.2.0",
116
117
  "vite": "5.4.7",
117
- "@dxos/artifact-testing": "0.8.3-main.7f5a14c",
118
- "@dxos/plugin-chess": "0.8.3-main.7f5a14c",
119
- "@dxos/plugin-inbox": "0.8.3-main.7f5a14c",
120
- "@dxos/plugin-map": "0.8.3-main.7f5a14c",
121
- "@dxos/echo-db": "0.8.3-main.7f5a14c",
122
- "@dxos/plugin-markdown": "0.8.3-main.7f5a14c",
123
- "@dxos/plugin-table": "0.8.3-main.7f5a14c",
124
- "@dxos/random": "0.8.3-main.7f5a14c",
125
- "@dxos/react-ui": "0.8.3-main.7f5a14c",
126
- "@dxos/react-ui-menu": "0.8.3-main.7f5a14c",
127
- "@dxos/storybook-utils": "0.8.3-main.7f5a14c",
128
- "@dxos/react-ui-theme": "0.8.3-main.7f5a14c"
118
+ "@dxos/artifact-testing": "0.8.3-staging.0fa589b",
119
+ "@dxos/plugin-chess": "0.8.3-staging.0fa589b",
120
+ "@dxos/echo-db": "0.8.3-staging.0fa589b",
121
+ "@dxos/plugin-inbox": "0.8.3-staging.0fa589b",
122
+ "@dxos/plugin-map": "0.8.3-staging.0fa589b",
123
+ "@dxos/plugin-markdown": "0.8.3-staging.0fa589b",
124
+ "@dxos/random": "0.8.3-staging.0fa589b",
125
+ "@dxos/react-ui": "0.8.3-staging.0fa589b",
126
+ "@dxos/plugin-table": "0.8.3-staging.0fa589b",
127
+ "@dxos/react-ui-menu": "0.8.3-staging.0fa589b",
128
+ "@dxos/react-ui-theme": "0.8.3-staging.0fa589b",
129
+ "@dxos/storybook-utils": "0.8.3-staging.0fa589b"
129
130
  },
130
131
  "peerDependencies": {
131
132
  "@effect-rx/rx-react": "^0.34.1",
@@ -133,8 +134,8 @@
133
134
  "effect": "^3.13.3",
134
135
  "react": "~18.2.0",
135
136
  "react-dom": "~18.2.0",
136
- "@dxos/react-ui": "0.8.3-main.7f5a14c",
137
- "@dxos/react-ui-theme": "0.8.3-main.7f5a14c"
137
+ "@dxos/react-ui": "0.8.3-staging.0fa589b",
138
+ "@dxos/react-ui-theme": "0.8.3-staging.0fa589b"
138
139
  },
139
140
  "publishConfig": {
140
141
  "access": "public"
@@ -2,6 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Effect } from 'effect';
6
+
5
7
  import {
6
8
  Capabilities,
7
9
  Events,
@@ -12,12 +14,13 @@ import {
12
14
  definePlugin,
13
15
  } from '@dxos/app-framework';
14
16
  import { Blueprint } from '@dxos/assistant';
15
- import { Type } from '@dxos/echo';
17
+ import { Ref, Type } from '@dxos/echo';
16
18
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
17
- import { SpaceCapabilities } from '@dxos/plugin-space';
18
- import { defineObjectForm } from '@dxos/plugin-space/types';
19
+ import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
20
+ import { CollectionAction, defineObjectForm } from '@dxos/plugin-space/types';
19
21
 
20
22
  import { AiClient, AppGraphBuilder, IntentResolver, ReactSurface, Settings } from './capabilities';
23
+ import { AssistantEvents } from './events';
21
24
  import { meta } from './meta';
22
25
  import translations from './translations';
23
26
  import { AssistantAction, AIChatType, ServiceType, TemplateType, CompanionTo } from './types';
@@ -77,6 +80,25 @@ export const AssistantPlugin = () =>
77
80
  activatesOn: ClientEvents.SetupSchema,
78
81
  activate: () => contributes(ClientCapabilities.Schema, [ServiceType, TemplateType, CompanionTo]),
79
82
  }),
83
+ defineModule({
84
+ id: `${meta.id}/module/on-space-created`,
85
+ activatesOn: SpaceEvents.SpaceCreated,
86
+ activate: (context) => {
87
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
88
+ return contributes(SpaceCapabilities.OnSpaceCreated, async ({ space, rootCollection }) => {
89
+ const program = Effect.gen(function* () {
90
+ const { object: collection } = yield* dispatch(
91
+ createIntent(CollectionAction.CreateQueryCollection, { typename: Type.getTypename(AIChatType) }),
92
+ );
93
+ rootCollection.objects.push(Ref.make(collection));
94
+
95
+ const { object: chat } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));
96
+ space.db.add(chat);
97
+ });
98
+ await Effect.runPromise(program);
99
+ });
100
+ },
101
+ }),
80
102
  defineModule({
81
103
  id: `${meta.id}/module/app-graph-builder`,
82
104
  activatesOn: Events.SetupAppGraph,
@@ -97,6 +119,7 @@ export const AssistantPlugin = () =>
97
119
  defineModule({
98
120
  id: `${meta.id}/module/ai-client`,
99
121
  activatesOn: allOf(ClientEvents.ClientReady, Events.SettingsReady),
122
+ activatesAfter: [AssistantEvents.AiClientReady],
100
123
  activate: AiClient,
101
124
  }),
102
125
  ]);
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { effect, signal } from '@preact/signals-core';
6
6
 
7
- import { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/ai';
7
+ import { type AiServiceClient, EdgeAiServiceClient, OllamaAiServiceClient } from '@dxos/ai';
8
8
  import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
9
9
  import { ClientCapabilities } from '@dxos/plugin-client';
10
10
 
@@ -18,7 +18,7 @@ const DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';
18
18
  export default (context: PluginContext) => {
19
19
  const client = context.getCapability(ClientCapabilities.Client);
20
20
  const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;
21
- const aiClient = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));
21
+ const aiClient = signal<AiServiceClient>(new EdgeAiServiceClient({ endpoint }));
22
22
 
23
23
  const unsubscribe = effect(() => {
24
24
  const settings = context
@@ -26,9 +26,9 @@ export default (context: PluginContext) => {
26
26
  .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;
27
27
 
28
28
  if (settings?.llmProvider === 'ollama') {
29
- aiClient.value = new OllamaClient();
29
+ aiClient.value = new OllamaAiServiceClient();
30
30
  } else {
31
- aiClient.value = new AIServiceEdgeClient({
31
+ aiClient.value = new EdgeAiServiceClient({
32
32
  endpoint,
33
33
  defaultGenerationOptions: {
34
34
  // model: '@anthropic/claude-sonnet-4-20250514',
@@ -13,12 +13,13 @@ import {
13
13
  type PromiseIntentDispatcher,
14
14
  type PluginContext,
15
15
  } from '@dxos/app-framework';
16
+ import { Blueprint } from '@dxos/assistant';
16
17
  import { Obj } from '@dxos/echo';
17
18
  import { invariant } from '@dxos/invariant';
18
19
  import { ClientCapabilities } from '@dxos/plugin-client';
19
20
  import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
20
21
  import { createExtension, ROOT_ID } from '@dxos/plugin-graph';
21
- import { rxFromQuery } from '@dxos/plugin-space';
22
+ import { getActiveSpace, rxFromQuery } from '@dxos/plugin-space';
22
23
  import { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';
23
24
  import {
24
25
  type Space,
@@ -48,25 +49,9 @@ export default (context: PluginContext) =>
48
49
  data: async () => {
49
50
  const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
50
51
  const client = context.getCapability(ClientCapabilities.Client);
51
- const layout = context.getCapability(Capabilities.Layout);
52
- const { graph } = context.getCapability(Capabilities.AppGraph);
53
-
54
- // TODO(burdon): Get space from workspace.
55
- // TODO(burdon): If need to create chat, then add to dispatch stack below.
56
- let chat: AIChatType | undefined;
57
- if (layout.active.length > 0) {
58
- const node = graph.getNode(layout.active[0]).pipe(Option.getOrNull);
59
- if (node) {
60
- const space = getSpace(node.data);
61
- if (space) {
62
- chat = await getOrCreateChat(dispatch, space);
63
- }
64
- }
65
- } else {
66
- const space = client.spaces.default;
67
- chat = await getOrCreateChat(dispatch, space);
68
- }
69
52
 
53
+ const space = getActiveSpace(context) ?? client.spaces.default;
54
+ const chat = await getOrCreateChat(dispatch, space);
70
55
  if (!chat) {
71
56
  return;
72
57
  }
@@ -144,6 +129,30 @@ export default (context: PluginContext) =>
144
129
  },
145
130
  }),
146
131
 
132
+ createExtension({
133
+ id: `${ASSISTANT_PLUGIN}/blueprint-logs`,
134
+ connector: (node) =>
135
+ Rx.make((get) =>
136
+ pipe(
137
+ get(node),
138
+ Option.flatMap((node) => (Obj.instanceOf(Blueprint, node.data) ? Option.some(node) : Option.none())),
139
+ Option.map((node) => [
140
+ {
141
+ id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),
142
+ type: PLANK_COMPANION_TYPE,
143
+ data: 'logs',
144
+ properties: {
145
+ label: ['blueprint logs label', { ns: ASSISTANT_PLUGIN }],
146
+ icon: 'ph--clock-countdown--regular',
147
+ disposition: 'hidden',
148
+ },
149
+ },
150
+ ]),
151
+ Option.getOrElse(() => []),
152
+ ),
153
+ ),
154
+ }),
155
+
147
156
  createExtension({
148
157
  id: `${ASSISTANT_PLUGIN}/root`,
149
158
  connector: (node) => {
@@ -222,11 +231,14 @@ export default (context: PluginContext) =>
222
231
 
223
232
  // TODO(burdon): Factor out.
224
233
  const getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {
225
- const { objects } = await space.db.query(Filter.type(AIChatType)).run();
234
+ // TODO(wittjosiah): This should be possible with a single query.
235
+ const { objects: allChats } = await space.db.query(Query.type(AIChatType)).run();
236
+ const { objects: relatedChats } = await space.db.query(Query.type(AIChatType).sourceOf(CompanionTo).source()).run();
237
+ const chats = allChats.filter((chat) => !relatedChats.includes(chat));
226
238
  // console.log('objects', JSON.stringify(objects, null, 2));
227
- if (objects.length > 0) {
239
+ if (chats.length > 0) {
228
240
  // TODO(burdon): Is this the most recent?
229
- return objects[objects.length - 1];
241
+ return chats[chats.length - 1];
230
242
  }
231
243
 
232
244
  const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { space }));
@@ -4,12 +4,12 @@
4
4
 
5
5
  import { type ReadonlySignal } from '@preact/signals-core';
6
6
 
7
- import { type AIServiceClient } from '@dxos/ai';
7
+ import { type AiServiceClient } from '@dxos/ai';
8
8
  import { defineCapability } from '@dxos/app-framework';
9
9
 
10
10
  import { ASSISTANT_PLUGIN } from '../meta';
11
11
 
12
12
  // TODO(burdon): Move to types to import from other plugins?
13
13
  export namespace AssistantCapabilities {
14
- export const AiClient = defineCapability<ReadonlySignal<AIServiceClient>>(`${ASSISTANT_PLUGIN}/capability/ai-client`);
14
+ export const AiClient = defineCapability<ReadonlySignal<AiServiceClient>>(`${ASSISTANT_PLUGIN}/capability/ai-client`);
15
15
  }
@@ -7,10 +7,12 @@ import React, { useEffect, useMemo } from 'react';
7
7
 
8
8
  import { Capabilities, contributes, createIntent, createSurface, useIntentDispatcher } from '@dxos/app-framework';
9
9
  import { Blueprint } from '@dxos/assistant';
10
+ import { InvocationTraceContainer } from '@dxos/devtools';
10
11
  import { Filter, type Key, Obj, Query } from '@dxos/echo';
11
12
  import { SettingsStore } from '@dxos/local-storage';
12
13
  import { SpaceAction } from '@dxos/plugin-space/types';
13
14
  import { fullyQualifiedId, getSpace, getTypename } from '@dxos/react-client/echo';
15
+ import { StackItem } from '@dxos/react-ui-stack';
14
16
 
15
17
  import {
16
18
  AssistantDialog,
@@ -100,6 +102,20 @@ export default () =>
100
102
  filter: (data): data is { subject: Blueprint } => Obj.instanceOf(Blueprint, data.subject),
101
103
  component: ({ data, role }) => <BlueprintContainer role={role} blueprint={data.subject} />,
102
104
  }),
105
+ createSurface({
106
+ id: `${ASSISTANT_PLUGIN}/companion/logs`,
107
+ role: 'article',
108
+ filter: (data): data is { companionTo: Blueprint } =>
109
+ Obj.instanceOf(Blueprint, data.companionTo) && data.subject === 'logs',
110
+ component: ({ data, role }) => {
111
+ const space = getSpace(data.companionTo);
112
+ return (
113
+ <StackItem.Content role={role}>
114
+ <InvocationTraceContainer space={space} target={data.companionTo} detailAxis='block' />
115
+ </StackItem.Content>
116
+ );
117
+ },
118
+ }),
103
119
  createSurface({
104
120
  id: `${ASSISTANT_PLUGIN}/template`,
105
121
  role: 'article',
@@ -11,8 +11,6 @@ import { useCapability } from '@dxos/app-framework';
11
11
  import {
12
12
  type Blueprint,
13
13
  type BlueprintDefinition,
14
- BlueprintLoggerAdapter,
15
- BlueprintParser,
16
14
  BlueprintMachine,
17
15
  createLocalSearchTool,
18
16
  createExaTool,
@@ -27,6 +25,7 @@ import { StackItem, type StackItemContentProps } from '@dxos/react-ui-stack';
27
25
  import { BlueprintEditor } from './BlueprintEditor';
28
26
  import { AssistantCapabilities } from '../capabilities';
29
27
  import { meta } from '../meta';
28
+ import { QueueLogger } from '../queue-logger';
30
29
 
31
30
  // TODO(burdon): Move to config.
32
31
  export const EXA_API_KEY = '9c7e17ff-0c85-4cd5-827a-8b489f139e03';
@@ -76,13 +75,13 @@ export const BlueprintContainer = ({
76
75
  queue,
77
76
  schema: [], // TODO(burdon): Get schema from client/blueprint?
78
77
  onDone: async (objects) => {
79
- queue.append(objects);
78
+ await queue.append(objects);
80
79
  },
81
80
  }),
82
81
  ]);
83
82
  }, [blueprint]);
84
83
 
85
- const formatAndSave = (): BlueprintDefinition | undefined => {
84
+ const formatAndSave = useCallback((): BlueprintDefinition | undefined => {
86
85
  if (!blueprint) {
87
86
  return;
88
87
  }
@@ -112,28 +111,18 @@ export const BlueprintContainer = ({
112
111
  });
113
112
  }
114
113
 
115
- return definition;
116
- };
114
+ return blueprint;
115
+ }, [blueprint]);
117
116
 
118
117
  // TODO(burdon): Save raw blueprint separately from parsed blueprint? (like Script).
119
- const handleSave = useCallback(() => {
120
- const definition = formatAndSave();
121
- if (!definition) {
122
- return;
123
- }
124
-
125
- setDefinition(definition);
126
- }, [blueprint]);
118
+ const handleSave = useCallback(() => formatAndSave(), [formatAndSave]);
127
119
 
128
120
  const handleRun = useCallback(async () => {
129
121
  if (!aiClient?.value || !toolRegistry) {
130
122
  return;
131
123
  }
132
124
 
133
- const definition = formatAndSave();
134
- if (!definition) {
135
- return;
136
- }
125
+ formatAndSave();
137
126
 
138
127
  // Get input from selection.
139
128
  const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));
@@ -141,14 +130,13 @@ export const BlueprintContainer = ({
141
130
  return;
142
131
  }
143
132
 
144
- const blueprint = BlueprintParser.create().parse(definition);
145
- const machine = new BlueprintMachine(toolRegistry, blueprint).setLogger(new BlueprintLoggerAdapter());
133
+ const machine = new BlueprintMachine(toolRegistry, blueprint).setLogger(new QueueLogger(blueprint));
146
134
  await machine.runToCompletion({ aiClient: aiClient.value, input });
147
- }, [aiClient.value, toolRegistry]);
135
+ }, [aiClient.value, blueprint, formatAndSave, selectionManager, toolRegistry]);
148
136
 
149
137
  return (
150
138
  <StackItem.Content role={role} toolbar>
151
- <Toolbar.Root classNames='border-be border-subduedSeparator'>
139
+ <Toolbar.Root>
152
140
  <Toolbar.Button onClick={handleSave}>{t('button save')}</Toolbar.Button>
153
141
  <Toolbar.Button onClick={handleRun}>{t('button run')}</Toolbar.Button>
154
142
  </Toolbar.Root>
@@ -48,7 +48,7 @@ export const PromptSettings = ({ template }: { template: TemplateType }) => {
48
48
  );
49
49
 
50
50
  return (
51
- <div className='p-2 flex flex-col gap-4'>
51
+ <div className='flex flex-col gap-4'>
52
52
  <h2>{t('prompt rules label')}</h2>
53
53
  <Toolbar.Root>
54
54
  <Select.Root value={template.kind.include} onValueChange={handleKindChange}>
@@ -7,10 +7,10 @@ import '@dxos-theme';
7
7
  import { type StoryObj, type Meta } from '@storybook/react';
8
8
  import React, { useCallback, useEffect, useState } from 'react';
9
9
 
10
- import { type Message } from '@dxos/ai';
10
+ import { Message } from '@dxos/ai';
11
11
  import { IntentPlugin } from '@dxos/app-framework';
12
12
  import { withPluginManager } from '@dxos/app-framework/testing';
13
- import { Type } from '@dxos/echo';
13
+ import { Obj } from '@dxos/echo';
14
14
  import { faker } from '@dxos/random';
15
15
  import { withClientProvider } from '@dxos/react-client/testing';
16
16
  import { withLayout, withSignals, withTheme } from '@dxos/storybook-utils';
@@ -29,12 +29,11 @@ const DefaultStory = ({ messages: _messages, ...props }: ThreadProps) => {
29
29
 
30
30
  const handleSubmit = useCallback(
31
31
  (text: string) => {
32
- const request: Message = { id: Type.ObjectId.random(), role: 'user', content: [{ type: 'text', text }] };
33
- const response: Message = {
34
- id: Type.ObjectId.random(),
32
+ const request: Message = Obj.make(Message, { role: 'user', content: [{ type: 'text', text }] });
33
+ const response: Message = Obj.make(Message, {
35
34
  role: 'assistant',
36
35
  content: [{ type: 'text', disposition: 'cot', pending: true, text: faker.lorem.paragraphs(1) }],
37
- };
36
+ });
38
37
  setMessages([...messages, request, response]);
39
38
  setProcessing(true);
40
39
  setTimeout(() => {
@@ -43,11 +42,10 @@ const DefaultStory = ({ messages: _messages, ...props }: ThreadProps) => {
43
42
  ...messages,
44
43
  request,
45
44
  response,
46
- {
47
- id: Type.ObjectId.random(),
45
+ Obj.make(Message, {
48
46
  role: 'assistant',
49
47
  content: [{ type: 'text', text: faker.lorem.paragraphs(1) }],
50
- },
48
+ }),
51
49
  ]);
52
50
  setProcessing(false);
53
51
  }, 3_000);
@@ -89,8 +87,7 @@ export default meta;
89
87
  type Story = StoryObj<ThreadProps>;
90
88
 
91
89
  const TEST_MESSAGES: Message[] = [
92
- {
93
- id: Type.ObjectId.random(),
90
+ Obj.make(Message, {
94
91
  role: 'user',
95
92
  content: [
96
93
  {
@@ -98,9 +95,8 @@ const TEST_MESSAGES: Message[] = [
98
95
  text: faker.lorem.sentence(5),
99
96
  },
100
97
  ],
101
- },
102
- {
103
- id: Type.ObjectId.random(),
98
+ }),
99
+ Obj.make(Message, {
104
100
  role: 'assistant',
105
101
  content: [
106
102
  {
@@ -123,9 +119,8 @@ const TEST_MESSAGES: Message[] = [
123
119
  input: {},
124
120
  },
125
121
  ],
126
- },
127
- {
128
- id: Type.ObjectId.random(),
122
+ }),
123
+ Obj.make(Message, {
129
124
  role: 'user',
130
125
  content: [
131
126
  {
@@ -134,9 +129,8 @@ const TEST_MESSAGES: Message[] = [
134
129
  content: 'This is a tool result.',
135
130
  },
136
131
  ],
137
- },
138
- {
139
- id: Type.ObjectId.random(),
132
+ }),
133
+ Obj.make(Message, {
140
134
  role: 'assistant',
141
135
  content: [
142
136
  {
@@ -146,9 +140,8 @@ const TEST_MESSAGES: Message[] = [
146
140
  input: {},
147
141
  },
148
142
  ],
149
- },
150
- {
151
- id: Type.ObjectId.random(),
143
+ }),
144
+ Obj.make(Message, {
152
145
  role: 'user',
153
146
  content: [
154
147
  {
@@ -157,9 +150,8 @@ const TEST_MESSAGES: Message[] = [
157
150
  content: 'This is a tool result.',
158
151
  },
159
152
  ],
160
- },
161
- {
162
- id: Type.ObjectId.random(),
153
+ }),
154
+ Obj.make(Message, {
163
155
  role: 'assistant',
164
156
  content: [
165
157
  {
@@ -167,7 +159,7 @@ const TEST_MESSAGES: Message[] = [
167
159
  text: faker.lorem.paragraphs(1),
168
160
  },
169
161
  ],
170
- },
162
+ }),
171
163
  ];
172
164
 
173
165
  export const Default: Story = {