@dxos/plugin-assistant 0.8.3-main.7f5a14c → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs → AssistantDialog-MQOOR364.mjs} +5 -5
- package/dist/lib/browser/{BlueprintContainer-4MEK52NT.mjs → BlueprintContainer-AT5Y7EXG.mjs} +145 -28
- package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs.map +7 -0
- package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs → ChatContainer-C2NEAS3A.mjs} +5 -5
- package/dist/lib/browser/{ai-client-MTCTMJ5N.mjs → ai-client-MK2ZZII2.mjs} +6 -6
- package/dist/lib/browser/ai-client-MK2ZZII2.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-DBCVARVI.mjs → app-graph-builder-E4H5DCOJ.mjs} +35 -22
- package/dist/lib/browser/app-graph-builder-E4H5DCOJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZVHA24BL.mjs → chunk-AAOKC2JN.mjs} +10 -8
- package/dist/lib/browser/{chunk-ZVHA24BL.mjs.map → chunk-AAOKC2JN.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-WFZ4EPPI.mjs → chunk-BI6AHRNJ.mjs} +6 -6
- package/dist/lib/browser/{chunk-WFZ4EPPI.mjs.map → chunk-BI6AHRNJ.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-DLWFPGZE.mjs → chunk-JO4W3MF7.mjs} +6 -6
- package/dist/lib/browser/{chunk-DLWFPGZE.mjs.map → chunk-JO4W3MF7.mjs.map} +3 -3
- package/dist/lib/browser/chunk-MEGMOFJB.mjs +16 -0
- package/dist/lib/browser/{chunk-3TIEETB2.mjs → chunk-UE3IZ4PN.mjs} +1 -1
- package/dist/lib/browser/{chunk-3TIEETB2.mjs.map → chunk-UE3IZ4PN.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +66 -23
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs → intent-resolver-3UICTGPM.mjs} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-OD23FVUD.mjs → react-surface-LXCNUSZN.mjs} +23 -6
- package/dist/lib/browser/react-surface-LXCNUSZN.mjs.map +7 -0
- package/dist/lib/browser/{settings-FUYUBGSQ.mjs → settings-XRHXVWGB.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs → AssistantDialog-AN4Z6YUV.cjs} +9 -9
- package/dist/lib/node/{BlueprintContainer-VD6EIWH7.cjs → BlueprintContainer-NOWLDYCZ.cjs} +141 -26
- package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs.map +7 -0
- package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs → ChatContainer-VKYBQHUB.cjs} +9 -9
- package/dist/lib/node/{ai-client-3XNIFMJX.cjs → ai-client-7HNSMUMT.cjs} +9 -9
- package/dist/lib/node/ai-client-7HNSMUMT.cjs.map +7 -0
- package/dist/lib/node/{app-graph-builder-VEPLBTML.cjs → app-graph-builder-PPR5B5KU.cjs} +42 -29
- package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs.map +7 -0
- package/dist/lib/node/{chunk-BGRQNE3L.cjs → chunk-FUAGEO7Q.cjs} +9 -9
- package/dist/lib/node/{chunk-DXBAFX6M.cjs → chunk-IKZBMHSW.cjs} +11 -11
- package/dist/lib/node/{chunk-DXBAFX6M.cjs.map → chunk-IKZBMHSW.cjs.map} +1 -1
- package/dist/lib/node/{chunk-7TQAIKE2.cjs → chunk-LMDJEGZ2.cjs} +14 -12
- package/dist/lib/node/chunk-LMDJEGZ2.cjs.map +7 -0
- package/dist/lib/node/{chunk-WR5L3TVB.cjs → chunk-NIDICM57.cjs} +18 -18
- package/dist/lib/node/{chunk-WR5L3TVB.cjs.map → chunk-NIDICM57.cjs.map} +3 -3
- package/dist/lib/node/{chunk-ZP732NHS.cjs → chunk-QGPWY6GW.cjs} +4 -4
- package/dist/lib/node/{chunk-ZP732NHS.cjs.map → chunk-QGPWY6GW.cjs.map} +1 -1
- package/dist/lib/node/index.cjs +118 -76
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs → intent-resolver-QSWGTKON.cjs} +8 -8
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-FANQXIRI.cjs → react-surface-D3NBYRZ6.cjs} +40 -23
- package/dist/lib/node/react-surface-D3NBYRZ6.cjs.map +7 -0
- package/dist/lib/node/{settings-PXPIPYJN.cjs → settings-2JXLKYGE.cjs} +6 -6
- package/dist/lib/node/types/index.cjs +14 -14
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs → AssistantDialog-6WEMLUPU.mjs} +5 -5
- package/dist/lib/node-esm/{BlueprintContainer-SVOKCRCP.mjs → BlueprintContainer-STOJAVML.mjs} +145 -28
- package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs.map +7 -0
- package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs → ChatContainer-3MVBTUJN.mjs} +5 -5
- package/dist/lib/node-esm/{ai-client-YIP44I4D.mjs → ai-client-XGZBJ6BE.mjs} +6 -6
- package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-WJXDXLBQ.mjs → app-graph-builder-3SY5MBIK.mjs} +35 -22
- package/dist/lib/node-esm/app-graph-builder-3SY5MBIK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-34EX6E5Q.mjs +18 -0
- package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs → chunk-3UEZLJ2V.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs.map → chunk-3UEZLJ2V.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-24LIHQST.mjs → chunk-J6UXXZGJ.mjs} +10 -8
- package/dist/lib/node-esm/{chunk-24LIHQST.mjs.map → chunk-J6UXXZGJ.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs → chunk-OD574YIU.mjs} +6 -6
- package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs.map → chunk-OD574YIU.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs → chunk-UCOFKNKN.mjs} +6 -6
- package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs.map → chunk-UCOFKNKN.mjs.map} +1 -1
- package/dist/lib/node-esm/index.mjs +66 -23
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs → intent-resolver-E6MXTYAU.mjs} +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-NAN4SDCE.mjs → react-surface-7HA5EDWY.mjs} +23 -6
- package/dist/lib/node-esm/react-surface-7HA5EDWY.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-JHMKX3UV.mjs → settings-5IAY6BT4.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-client.d.ts +2 -2
- package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
- package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/hooks/processor.d.ts +3 -3
- package/dist/types/src/hooks/useMessageQueue.d.ts +2 -2
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/queue-logger.d.ts +11 -0
- package/dist/types/src/queue-logger.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +75 -11
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/chat.d.ts +12 -9
- package/dist/types/src/types/chat.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +51 -102
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/src/types/template.d.ts +3 -23
- package/dist/types/src/types/template.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +5 -5
- package/package.json +70 -69
- package/src/AssistantPlugin.tsx +26 -3
- package/src/capabilities/ai-client.ts +4 -4
- package/src/capabilities/app-graph-builder.ts +34 -22
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/react-surface.tsx +16 -0
- package/src/components/BlueprintContainer.tsx +10 -22
- package/src/components/PromptSettings.tsx +1 -1
- package/src/components/Thread/Thread.stories.tsx +19 -27
- package/src/components/Thread/ThreadContainer.stories.tsx +5 -5
- package/src/components/Thread/ThreadContainer.tsx +1 -1
- package/src/components/Thread/reducer.ts +3 -3
- package/src/events.ts +11 -0
- package/src/hooks/processor.ts +4 -4
- package/src/index.ts +1 -0
- package/src/queue-logger.ts +125 -0
- package/src/stories/Query.stories.tsx +4 -4
- package/src/stories/Research.stories.tsx +11 -11
- package/src/stories/test-data.ts +4 -4
- package/src/testing/test-blueprint.ts +1 -1
- package/src/tools/openapi.test.ts +4 -4
- package/src/translations.ts +16 -4
- package/src/types/template.ts +11 -6
- package/dist/lib/browser/BlueprintContainer-4MEK52NT.mjs.map +0 -7
- package/dist/lib/browser/ai-client-MTCTMJ5N.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-DBCVARVI.mjs.map +0 -7
- package/dist/lib/browser/chunk-AKYSTUBJ.mjs +0 -16
- package/dist/lib/browser/react-surface-OD23FVUD.mjs.map +0 -7
- package/dist/lib/node/BlueprintContainer-VD6EIWH7.cjs.map +0 -7
- package/dist/lib/node/ai-client-3XNIFMJX.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-VEPLBTML.cjs.map +0 -7
- package/dist/lib/node/chunk-7TQAIKE2.cjs.map +0 -7
- package/dist/lib/node/react-surface-FANQXIRI.cjs.map +0 -7
- package/dist/lib/node-esm/BlueprintContainer-SVOKCRCP.mjs.map +0 -7
- package/dist/lib/node-esm/ai-client-YIP44I4D.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-WJXDXLBQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZKTIHNT7.mjs +0 -18
- package/dist/lib/node-esm/react-surface-NAN4SDCE.mjs.map +0 -7
- /package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs.map → AssistantDialog-MQOOR364.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs.map → ChatContainer-C2NEAS3A.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-AKYSTUBJ.mjs.map → chunk-MEGMOFJB.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs.map → intent-resolver-3UICTGPM.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-FUYUBGSQ.mjs.map → settings-XRHXVWGB.mjs.map} +0 -0
- /package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs.map → AssistantDialog-AN4Z6YUV.cjs.map} +0 -0
- /package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs.map → ChatContainer-VKYBQHUB.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-BGRQNE3L.cjs.map → chunk-FUAGEO7Q.cjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs.map → intent-resolver-QSWGTKON.cjs.map} +0 -0
- /package/dist/lib/node/{settings-PXPIPYJN.cjs.map → settings-2JXLKYGE.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs.map → AssistantDialog-6WEMLUPU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs.map → ChatContainer-3MVBTUJN.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-ZKTIHNT7.mjs.map → chunk-34EX6E5Q.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs.map → intent-resolver-E6MXTYAU.mjs.map} +0 -0
- /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
|
|
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
|
|
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
|
|
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
|
|
3
|
+
"version": "0.8.3",
|
|
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/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/assistant": "0.8.3
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/echo-
|
|
64
|
-
"@dxos/
|
|
65
|
-
"@dxos/
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/graph": "0.8.3
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/plugin-client": "0.8.3
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/plugin-explorer": "0.8.3
|
|
78
|
-
"@dxos/plugin-
|
|
79
|
-
"@dxos/plugin-
|
|
80
|
-
"@dxos/plugin-
|
|
81
|
-
"@dxos/plugin-
|
|
82
|
-
"@dxos/plugin-sketch": "0.8.3
|
|
83
|
-
"@dxos/plugin-
|
|
84
|
-
"@dxos/plugin-
|
|
85
|
-
"@dxos/plugin-
|
|
86
|
-
"@dxos/plugin-
|
|
87
|
-
"@dxos/plugin-
|
|
88
|
-
"@dxos/
|
|
89
|
-
"@dxos/
|
|
90
|
-
"@dxos/
|
|
91
|
-
"@dxos/react-
|
|
92
|
-
"@dxos/react-ui-
|
|
93
|
-
"@dxos/react-ui-canvas-
|
|
94
|
-
"@dxos/react-ui-
|
|
95
|
-
"@dxos/react-ui-
|
|
96
|
-
"@dxos/react-ui-
|
|
97
|
-
"@dxos/react-ui-
|
|
98
|
-
"@dxos/react-ui-
|
|
99
|
-
"@dxos/react-ui-
|
|
100
|
-
"@dxos/react-ui-
|
|
101
|
-
"@dxos/react-ui-
|
|
102
|
-
"@dxos/
|
|
103
|
-
"@dxos/schema": "0.8.3
|
|
104
|
-
"@dxos/
|
|
51
|
+
"@dxos/ai": "0.8.3",
|
|
52
|
+
"@dxos/app-framework": "0.8.3",
|
|
53
|
+
"@dxos/artifact": "0.8.3",
|
|
54
|
+
"@dxos/assistant": "0.8.3",
|
|
55
|
+
"@dxos/client": "0.8.3",
|
|
56
|
+
"@dxos/compute": "0.8.3",
|
|
57
|
+
"@dxos/conductor": "0.8.3",
|
|
58
|
+
"@dxos/config": "0.8.3",
|
|
59
|
+
"@dxos/async": "0.8.3",
|
|
60
|
+
"@dxos/context": "0.8.3",
|
|
61
|
+
"@dxos/debug": "0.8.3",
|
|
62
|
+
"@dxos/devtools": "0.8.3",
|
|
63
|
+
"@dxos/echo-db": "0.8.3",
|
|
64
|
+
"@dxos/echo-protocol": "0.8.3",
|
|
65
|
+
"@dxos/echo-schema": "0.8.3",
|
|
66
|
+
"@dxos/edge-client": "0.8.3",
|
|
67
|
+
"@dxos/echo": "0.8.3",
|
|
68
|
+
"@dxos/effect": "0.8.3",
|
|
69
|
+
"@dxos/graph": "0.8.3",
|
|
70
|
+
"@dxos/invariant": "0.8.3",
|
|
71
|
+
"@dxos/keys": "0.8.3",
|
|
72
|
+
"@dxos/functions": "0.8.3",
|
|
73
|
+
"@dxos/live-object": "0.8.3",
|
|
74
|
+
"@dxos/log": "0.8.3",
|
|
75
|
+
"@dxos/plugin-client": "0.8.3",
|
|
76
|
+
"@dxos/local-storage": "0.8.3",
|
|
77
|
+
"@dxos/plugin-explorer": "0.8.3",
|
|
78
|
+
"@dxos/plugin-deck": "0.8.3",
|
|
79
|
+
"@dxos/plugin-inbox": "0.8.3",
|
|
80
|
+
"@dxos/plugin-graph": "0.8.3",
|
|
81
|
+
"@dxos/plugin-markdown": "0.8.3",
|
|
82
|
+
"@dxos/plugin-sketch": "0.8.3",
|
|
83
|
+
"@dxos/plugin-script": "0.8.3",
|
|
84
|
+
"@dxos/plugin-space": "0.8.3",
|
|
85
|
+
"@dxos/plugin-stack": "0.8.3",
|
|
86
|
+
"@dxos/plugin-preview": "0.8.3",
|
|
87
|
+
"@dxos/plugin-transcription": "0.8.3",
|
|
88
|
+
"@dxos/plugin-wnfs": "0.8.3",
|
|
89
|
+
"@dxos/protocols": "0.8.3",
|
|
90
|
+
"@dxos/react-edge-client": "0.8.3",
|
|
91
|
+
"@dxos/react-client": "0.8.3",
|
|
92
|
+
"@dxos/react-ui-attention": "0.8.3",
|
|
93
|
+
"@dxos/react-ui-canvas-compute": "0.8.3",
|
|
94
|
+
"@dxos/react-ui-components": "0.8.3",
|
|
95
|
+
"@dxos/react-ui-dnd": "0.8.3",
|
|
96
|
+
"@dxos/react-ui-editor": "0.8.3",
|
|
97
|
+
"@dxos/react-ui-canvas-editor": "0.8.3",
|
|
98
|
+
"@dxos/react-ui-form": "0.8.3",
|
|
99
|
+
"@dxos/react-ui-list": "0.8.3",
|
|
100
|
+
"@dxos/react-ui-graph": "0.8.3",
|
|
101
|
+
"@dxos/react-ui-sfx": "0.8.3",
|
|
102
|
+
"@dxos/util": "0.8.3",
|
|
103
|
+
"@dxos/schema": "0.8.3",
|
|
104
|
+
"@dxos/react-ui-stack": "0.8.3",
|
|
105
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.3"
|
|
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
|
|
118
|
-
"@dxos/
|
|
119
|
-
"@dxos/plugin-inbox": "0.8.3
|
|
120
|
-
"@dxos/plugin-
|
|
121
|
-
"@dxos/
|
|
122
|
-
"@dxos/plugin-
|
|
123
|
-
"@dxos/
|
|
124
|
-
"@dxos/
|
|
125
|
-
"@dxos/
|
|
126
|
-
"@dxos/react-ui-
|
|
127
|
-
"@dxos/storybook-utils": "0.8.3
|
|
128
|
-
"@dxos/
|
|
118
|
+
"@dxos/artifact-testing": "0.8.3",
|
|
119
|
+
"@dxos/echo-db": "0.8.3",
|
|
120
|
+
"@dxos/plugin-inbox": "0.8.3",
|
|
121
|
+
"@dxos/plugin-chess": "0.8.3",
|
|
122
|
+
"@dxos/plugin-map": "0.8.3",
|
|
123
|
+
"@dxos/plugin-table": "0.8.3",
|
|
124
|
+
"@dxos/react-ui": "0.8.3",
|
|
125
|
+
"@dxos/react-ui-menu": "0.8.3",
|
|
126
|
+
"@dxos/random": "0.8.3",
|
|
127
|
+
"@dxos/react-ui-theme": "0.8.3",
|
|
128
|
+
"@dxos/storybook-utils": "0.8.3",
|
|
129
|
+
"@dxos/plugin-markdown": "0.8.3"
|
|
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
|
|
137
|
-
"@dxos/react-ui-theme": "0.8.3
|
|
137
|
+
"@dxos/react-ui": "0.8.3",
|
|
138
|
+
"@dxos/react-ui-theme": "0.8.3"
|
|
138
139
|
},
|
|
139
140
|
"publishConfig": {
|
|
140
141
|
"access": "public"
|
package/src/AssistantPlugin.tsx
CHANGED
|
@@ -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
|
|
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<
|
|
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
|
|
29
|
+
aiClient.value = new OllamaAiServiceClient();
|
|
30
30
|
} else {
|
|
31
|
-
aiClient.value = new
|
|
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
|
-
|
|
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 (
|
|
239
|
+
if (chats.length > 0) {
|
|
228
240
|
// TODO(burdon): Is this the most recent?
|
|
229
|
-
return
|
|
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
|
|
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<
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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='
|
|
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 {
|
|
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 {
|
|
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 =
|
|
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 = {
|