@tanstack/ai-devtools-core 0.3.6 → 0.3.8
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/Shell/GHXECDJV.js +5056 -0
- package/dist/Shell/MUFU35SY.js +4242 -0
- package/dist/dev.js +11 -0
- package/dist/{esm/index.d.ts → index.d.ts} +7 -5
- package/dist/index.js +11 -0
- package/dist/production/Shell/GHXECDJV.js +5056 -0
- package/dist/production/Shell/MUFU35SY.js +4242 -0
- package/dist/production/dev.js +8 -0
- package/dist/production/index.d.ts +12 -0
- package/dist/production/index.js +8 -0
- package/dist/production/server.js +8 -0
- package/dist/server.js +11 -0
- package/package.json +45 -11
- package/src/{core.tsx → core.ts} +4 -5
- package/dist/esm/components/ConversationDetails.d.ts +0 -2
- package/dist/esm/components/ConversationDetails.js +0 -192
- package/dist/esm/components/ConversationDetails.js.map +0 -1
- package/dist/esm/components/ConversationsList.d.ts +0 -2
- package/dist/esm/components/ConversationsList.js +0 -30
- package/dist/esm/components/ConversationsList.js.map +0 -1
- package/dist/esm/components/Shell.d.ts +0 -1
- package/dist/esm/components/Shell.js +0 -94
- package/dist/esm/components/Shell.js.map +0 -1
- package/dist/esm/components/conversation/ActivityEventsTab.d.ts +0 -8
- package/dist/esm/components/conversation/ActivityEventsTab.js +0 -72
- package/dist/esm/components/conversation/ActivityEventsTab.js.map +0 -1
- package/dist/esm/components/conversation/ChunkBadges.d.ts +0 -7
- package/dist/esm/components/conversation/ChunkBadges.js +0 -54
- package/dist/esm/components/conversation/ChunkBadges.js.map +0 -1
- package/dist/esm/components/conversation/ChunkItem.d.ts +0 -9
- package/dist/esm/components/conversation/ChunkItem.js +0 -247
- package/dist/esm/components/conversation/ChunkItem.js.map +0 -1
- package/dist/esm/components/conversation/ChunksCollapsible.d.ts +0 -7
- package/dist/esm/components/conversation/ChunksCollapsible.js +0 -77
- package/dist/esm/components/conversation/ChunksCollapsible.js.map +0 -1
- package/dist/esm/components/conversation/ChunksTab.d.ts +0 -8
- package/dist/esm/components/conversation/ChunksTab.js +0 -87
- package/dist/esm/components/conversation/ChunksTab.js.map +0 -1
- package/dist/esm/components/conversation/ConversationHeader.d.ts +0 -7
- package/dist/esm/components/conversation/ConversationHeader.js +0 -230
- package/dist/esm/components/conversation/ConversationHeader.js.map +0 -1
- package/dist/esm/components/conversation/ConversationTabs.d.ts +0 -10
- package/dist/esm/components/conversation/ConversationTabs.js +0 -176
- package/dist/esm/components/conversation/ConversationTabs.js.map +0 -1
- package/dist/esm/components/conversation/MessageCard.d.ts +0 -7
- package/dist/esm/components/conversation/MessageCard.js +0 -207
- package/dist/esm/components/conversation/MessageCard.js.map +0 -1
- package/dist/esm/components/conversation/MessageGroup.d.ts +0 -15
- package/dist/esm/components/conversation/MessageGroup.js +0 -119
- package/dist/esm/components/conversation/MessageGroup.js.map +0 -1
- package/dist/esm/components/conversation/MessagesTab.d.ts +0 -7
- package/dist/esm/components/conversation/MessagesTab.js +0 -37
- package/dist/esm/components/conversation/MessagesTab.js.map +0 -1
- package/dist/esm/components/conversation/SummariesTab.d.ts +0 -7
- package/dist/esm/components/conversation/SummariesTab.js +0 -110
- package/dist/esm/components/conversation/SummariesTab.js.map +0 -1
- package/dist/esm/components/conversation/ToolCallDisplay.d.ts +0 -7
- package/dist/esm/components/conversation/ToolCallDisplay.js +0 -123
- package/dist/esm/components/conversation/ToolCallDisplay.js.map +0 -1
- package/dist/esm/components/conversation/index.d.ts +0 -7
- package/dist/esm/components/list/ConversationRow.d.ts +0 -7
- package/dist/esm/components/list/ConversationRow.js +0 -122
- package/dist/esm/components/list/ConversationRow.js.map +0 -1
- package/dist/esm/components/list/index.d.ts +0 -1
- package/dist/esm/components/utils/format.d.ts +0 -6
- package/dist/esm/components/utils/format.js +0 -68
- package/dist/esm/components/utils/format.js.map +0 -1
- package/dist/esm/components/utils/index.d.ts +0 -1
- package/dist/esm/core.d.ts +0 -22
- package/dist/esm/core.js +0 -9
- package/dist/esm/core.js.map +0 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/production.d.ts +0 -2
- package/dist/esm/production.js +0 -5
- package/dist/esm/production.js.map +0 -1
- package/dist/esm/store/ai-context.d.ts +0 -135
- package/dist/esm/store/ai-context.js +0 -1238
- package/dist/esm/store/ai-context.js.map +0 -1
- package/dist/esm/store/ai-store.d.ts +0 -1
- package/dist/esm/styles/tokens.d.ts +0 -298
- package/dist/esm/styles/tokens.js +0 -107
- package/dist/esm/styles/tokens.js.map +0 -1
- package/dist/esm/styles/use-styles.d.ts +0 -233
- package/dist/esm/styles/use-styles.js +0 -1602
- package/dist/esm/styles/use-styles.js.map +0 -1
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { template, insert, createComponent, effect, className, memo } from "solid-js/web";
|
|
2
|
-
import { Show } from "solid-js";
|
|
3
|
-
import { JsonTree } from "@tanstack/devtools-ui";
|
|
4
|
-
import { useStyles } from "../../styles/use-styles.js";
|
|
5
|
-
import { formatDuration } from "../utils/format.js";
|
|
6
|
-
var _tmpl$ = /* @__PURE__ */ template(`<div>⏱️ `), _tmpl$2 = /* @__PURE__ */ template(`<div>APPROVAL REQUIRED`), _tmpl$3 = /* @__PURE__ */ template(`<div><div>Arguments</div><div>`), _tmpl$4 = /* @__PURE__ */ template(`<div><div>Result</div><div>`), _tmpl$5 = /* @__PURE__ */ template(`<details><summary><div> </div><div></div></summary><div>`);
|
|
7
|
-
const ToolCallDisplay = (props) => {
|
|
8
|
-
const styles = useStyles();
|
|
9
|
-
const tool = () => props.tool;
|
|
10
|
-
const parsedArguments = () => {
|
|
11
|
-
const args = tool().arguments;
|
|
12
|
-
if (typeof args === "string") {
|
|
13
|
-
try {
|
|
14
|
-
return JSON.parse(args);
|
|
15
|
-
} catch {
|
|
16
|
-
return args;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return args;
|
|
20
|
-
};
|
|
21
|
-
return (() => {
|
|
22
|
-
var _el$ = _tmpl$5(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$9 = _el$2.nextSibling;
|
|
23
|
-
insert(_el$3, () => tool().approvalRequired ? "⚠️" : "🔧", _el$4);
|
|
24
|
-
insert(_el$3, () => tool().name, null);
|
|
25
|
-
insert(_el$5, () => tool().state);
|
|
26
|
-
insert(_el$2, createComponent(Show, {
|
|
27
|
-
get when() {
|
|
28
|
-
return memo(() => tool().duration !== void 0)() && tool().duration > 0;
|
|
29
|
-
},
|
|
30
|
-
get children() {
|
|
31
|
-
var _el$6 = _tmpl$();
|
|
32
|
-
_el$6.firstChild;
|
|
33
|
-
insert(_el$6, () => formatDuration(tool().duration), null);
|
|
34
|
-
effect(() => className(_el$6, styles().conversationDetails.durationBadge));
|
|
35
|
-
return _el$6;
|
|
36
|
-
}
|
|
37
|
-
}), null);
|
|
38
|
-
insert(_el$2, createComponent(Show, {
|
|
39
|
-
get when() {
|
|
40
|
-
return tool().approvalRequired;
|
|
41
|
-
},
|
|
42
|
-
get children() {
|
|
43
|
-
var _el$8 = _tmpl$2();
|
|
44
|
-
effect(() => className(_el$8, styles().conversationDetails.approvalRequiredBadge));
|
|
45
|
-
return _el$8;
|
|
46
|
-
}
|
|
47
|
-
}), null);
|
|
48
|
-
insert(_el$9, createComponent(Show, {
|
|
49
|
-
get when() {
|
|
50
|
-
return tool().arguments;
|
|
51
|
-
},
|
|
52
|
-
get children() {
|
|
53
|
-
var _el$0 = _tmpl$3(), _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling;
|
|
54
|
-
insert(_el$10, createComponent(JsonTree, {
|
|
55
|
-
get value() {
|
|
56
|
-
return parsedArguments();
|
|
57
|
-
},
|
|
58
|
-
defaultExpansionDepth: 2,
|
|
59
|
-
copyable: true
|
|
60
|
-
}));
|
|
61
|
-
effect((_p$) => {
|
|
62
|
-
var _v$ = styles().conversationDetails.toolSection, _v$2 = styles().conversationDetails.toolSectionLabel, _v$3 = styles().conversationDetails.toolJsonContainer;
|
|
63
|
-
_v$ !== _p$.e && className(_el$0, _p$.e = _v$);
|
|
64
|
-
_v$2 !== _p$.t && className(_el$1, _p$.t = _v$2);
|
|
65
|
-
_v$3 !== _p$.a && className(_el$10, _p$.a = _v$3);
|
|
66
|
-
return _p$;
|
|
67
|
-
}, {
|
|
68
|
-
e: void 0,
|
|
69
|
-
t: void 0,
|
|
70
|
-
a: void 0
|
|
71
|
-
});
|
|
72
|
-
return _el$0;
|
|
73
|
-
}
|
|
74
|
-
}), null);
|
|
75
|
-
insert(_el$9, createComponent(Show, {
|
|
76
|
-
get when() {
|
|
77
|
-
return tool().result !== void 0;
|
|
78
|
-
},
|
|
79
|
-
get children() {
|
|
80
|
-
var _el$11 = _tmpl$4(), _el$12 = _el$11.firstChild, _el$13 = _el$12.nextSibling;
|
|
81
|
-
insert(_el$13, createComponent(JsonTree, {
|
|
82
|
-
get value() {
|
|
83
|
-
return tool().result;
|
|
84
|
-
},
|
|
85
|
-
defaultExpansionDepth: 2,
|
|
86
|
-
copyable: true
|
|
87
|
-
}));
|
|
88
|
-
effect((_p$) => {
|
|
89
|
-
var _v$4 = styles().conversationDetails.toolSection, _v$5 = styles().conversationDetails.toolSectionLabel, _v$6 = styles().conversationDetails.toolJsonContainer;
|
|
90
|
-
_v$4 !== _p$.e && className(_el$11, _p$.e = _v$4);
|
|
91
|
-
_v$5 !== _p$.t && className(_el$12, _p$.t = _v$5);
|
|
92
|
-
_v$6 !== _p$.a && className(_el$13, _p$.a = _v$6);
|
|
93
|
-
return _p$;
|
|
94
|
-
}, {
|
|
95
|
-
e: void 0,
|
|
96
|
-
t: void 0,
|
|
97
|
-
a: void 0
|
|
98
|
-
});
|
|
99
|
-
return _el$11;
|
|
100
|
-
}
|
|
101
|
-
}), null);
|
|
102
|
-
effect((_p$) => {
|
|
103
|
-
var _v$7 = `${styles().conversationDetails.toolCall} ${tool().approvalRequired ? styles().conversationDetails.toolCallApproval : styles().conversationDetails.toolCallNormal}`, _v$8 = styles().conversationDetails.toolCallHeader, _v$9 = `${styles().conversationDetails.toolCallName} ${tool().approvalRequired ? styles().conversationDetails.toolCallNameApproval : styles().conversationDetails.toolCallNameNormal}`, _v$0 = `${styles().conversationDetails.toolStateBadge} ${tool().approvalRequired ? styles().conversationDetails.toolStateBadgeApproval : styles().conversationDetails.toolStateBadgeNormal}`, _v$1 = styles().conversationDetails.toolCallContent;
|
|
104
|
-
_v$7 !== _p$.e && className(_el$, _p$.e = _v$7);
|
|
105
|
-
_v$8 !== _p$.t && className(_el$2, _p$.t = _v$8);
|
|
106
|
-
_v$9 !== _p$.a && className(_el$3, _p$.a = _v$9);
|
|
107
|
-
_v$0 !== _p$.o && className(_el$5, _p$.o = _v$0);
|
|
108
|
-
_v$1 !== _p$.i && className(_el$9, _p$.i = _v$1);
|
|
109
|
-
return _p$;
|
|
110
|
-
}, {
|
|
111
|
-
e: void 0,
|
|
112
|
-
t: void 0,
|
|
113
|
-
a: void 0,
|
|
114
|
-
o: void 0,
|
|
115
|
-
i: void 0
|
|
116
|
-
});
|
|
117
|
-
return _el$;
|
|
118
|
-
})();
|
|
119
|
-
};
|
|
120
|
-
export {
|
|
121
|
-
ToolCallDisplay
|
|
122
|
-
};
|
|
123
|
-
//# sourceMappingURL=ToolCallDisplay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCallDisplay.js","sources":["../../../../src/components/conversation/ToolCallDisplay.tsx"],"sourcesContent":["import { Show } from 'solid-js'\nimport { JsonTree } from '@tanstack/devtools-ui'\nimport { useStyles } from '../../styles/use-styles'\nimport { formatDuration } from '../utils'\nimport type { Component } from 'solid-js'\nimport type { ToolCall } from '../../store/ai-context'\n\ninterface ToolCallDisplayProps {\n tool: ToolCall\n}\n\nexport const ToolCallDisplay: Component<ToolCallDisplayProps> = (props) => {\n const styles = useStyles()\n const tool = () => props.tool\n\n // Parse arguments if they're a string\n const parsedArguments = () => {\n const args = tool().arguments\n if (typeof args === 'string') {\n try {\n return JSON.parse(args)\n } catch {\n return args\n }\n }\n return args\n }\n\n return (\n <details\n class={`${styles().conversationDetails.toolCall} ${\n tool().approvalRequired\n ? styles().conversationDetails.toolCallApproval\n : styles().conversationDetails.toolCallNormal\n }`}\n >\n <summary class={styles().conversationDetails.toolCallHeader}>\n <div\n class={`${styles().conversationDetails.toolCallName} ${\n tool().approvalRequired\n ? styles().conversationDetails.toolCallNameApproval\n : styles().conversationDetails.toolCallNameNormal\n }`}\n >\n {tool().approvalRequired ? '⚠️' : '🔧'} {tool().name}\n </div>\n <div\n class={`${styles().conversationDetails.toolStateBadge} ${\n tool().approvalRequired\n ? styles().conversationDetails.toolStateBadgeApproval\n : styles().conversationDetails.toolStateBadgeNormal\n }`}\n >\n {tool().state}\n </div>\n <Show when={tool().duration !== undefined && tool().duration! > 0}>\n <div class={styles().conversationDetails.durationBadge}>\n ⏱️ {formatDuration(tool().duration)}\n </div>\n </Show>\n <Show when={tool().approvalRequired}>\n <div class={styles().conversationDetails.approvalRequiredBadge}>\n APPROVAL REQUIRED\n </div>\n </Show>\n </summary>\n <div class={styles().conversationDetails.toolCallContent}>\n <Show when={tool().arguments}>\n <div class={styles().conversationDetails.toolSection}>\n <div class={styles().conversationDetails.toolSectionLabel}>\n Arguments\n </div>\n <div class={styles().conversationDetails.toolJsonContainer}>\n <JsonTree\n value={parsedArguments() as Record<string, unknown>}\n defaultExpansionDepth={2}\n copyable\n />\n </div>\n </div>\n </Show>\n <Show when={tool().result !== undefined}>\n <div class={styles().conversationDetails.toolSection}>\n <div class={styles().conversationDetails.toolSectionLabel}>\n Result\n </div>\n <div class={styles().conversationDetails.toolJsonContainer}>\n <JsonTree\n value={tool().result as Record<string, unknown>}\n defaultExpansionDepth={2}\n copyable\n />\n </div>\n </div>\n </Show>\n </div>\n </details>\n )\n}\n"],"names":["ToolCallDisplay","props","styles","useStyles","tool","parsedArguments","args","arguments","JSON","parse","_el$","_tmpl$5","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$9","_$insert","approvalRequired","name","state","_$createComponent","Show","when","_$memo","duration","undefined","children","_el$6","_tmpl$","formatDuration","_$effect","_$className","conversationDetails","durationBadge","_el$8","_tmpl$2","approvalRequiredBadge","_el$0","_tmpl$3","_el$1","_el$10","JsonTree","value","defaultExpansionDepth","copyable","_p$","_v$","toolSection","_v$2","toolSectionLabel","_v$3","toolJsonContainer","e","t","a","result","_el$11","_tmpl$4","_el$12","_el$13","_v$4","_v$5","_v$6","_v$7","toolCall","toolCallApproval","toolCallNormal","_v$8","toolCallHeader","_v$9","toolCallName","toolCallNameApproval","toolCallNameNormal","_v$0","toolStateBadge","toolStateBadgeApproval","toolStateBadgeNormal","_v$1","toolCallContent","o","i"],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { ConversationHeader } from './ConversationHeader.js';
|
|
2
|
-
export { ConversationTabs } from './ConversationTabs.js';
|
|
3
|
-
export type { TabType } from './ConversationTabs.js';
|
|
4
|
-
export { MessagesTab } from './MessagesTab.js';
|
|
5
|
-
export { ChunksTab } from './ChunksTab.js';
|
|
6
|
-
export { SummariesTab } from './SummariesTab.js';
|
|
7
|
-
export { ActivityEventsTab } from './ActivityEventsTab.js';
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { template, insert, createComponent, effect, className, setAttribute, setStyleProperty, delegateEvents } from "solid-js/web";
|
|
2
|
-
import { Show } from "solid-js";
|
|
3
|
-
import { useStyles } from "../../styles/use-styles.js";
|
|
4
|
-
import { useAIStore } from "../../store/ai-context.js";
|
|
5
|
-
import { getTypeColor, getStatusColor } from "../utils/format.js";
|
|
6
|
-
var _tmpl$ = /* @__PURE__ */ template(`<div>🔧 `), _tmpl$2 = /* @__PURE__ */ template(`<div>⟳`), _tmpl$3 = /* @__PURE__ */ template(`<div>🎯 `), _tmpl$4 = /* @__PURE__ */ template(`<div><div><div><div><div></div><div></div></div><div><div></div></div></div><div><div>💬 </div><div>📦 `);
|
|
7
|
-
const ConversationRow = (props) => {
|
|
8
|
-
const {
|
|
9
|
-
state,
|
|
10
|
-
selectConversation
|
|
11
|
-
} = useAIStore();
|
|
12
|
-
const styles = useStyles();
|
|
13
|
-
const conv = () => props.conversation;
|
|
14
|
-
const hasToolCalls = () => {
|
|
15
|
-
return conv().messages.some((msg) => msg.toolCalls && msg.toolCalls.length > 0);
|
|
16
|
-
};
|
|
17
|
-
const countToolCalls = () => {
|
|
18
|
-
return conv().messages.reduce((total, msg) => {
|
|
19
|
-
return total + (msg.toolCalls?.length || 0);
|
|
20
|
-
}, 0);
|
|
21
|
-
};
|
|
22
|
-
const totalRawChunks = () => {
|
|
23
|
-
return conv().chunks.reduce((sum, c) => sum + (c.chunkCount || 1), 0);
|
|
24
|
-
};
|
|
25
|
-
return (() => {
|
|
26
|
-
var _el$ = _tmpl$4(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$9 = _el$4.nextSibling, _el$1 = _el$9.firstChild, _el$10 = _el$3.nextSibling, _el$11 = _el$10.firstChild;
|
|
27
|
-
_el$11.firstChild;
|
|
28
|
-
var _el$13 = _el$11.nextSibling;
|
|
29
|
-
_el$13.firstChild;
|
|
30
|
-
_el$.$$click = () => selectConversation(conv().id);
|
|
31
|
-
insert(_el$6, () => conv().label);
|
|
32
|
-
insert(_el$4, createComponent(Show, {
|
|
33
|
-
get when() {
|
|
34
|
-
return hasToolCalls();
|
|
35
|
-
},
|
|
36
|
-
get children() {
|
|
37
|
-
var _el$7 = _tmpl$();
|
|
38
|
-
_el$7.firstChild;
|
|
39
|
-
insert(_el$7, countToolCalls, null);
|
|
40
|
-
effect((_p$) => {
|
|
41
|
-
var _v$ = styles().conversationsList.toolCallsBadge, _v$2 = `${countToolCalls()} tool call${countToolCalls() !== 1 ? "s" : ""}`;
|
|
42
|
-
_v$ !== _p$.e && className(_el$7, _p$.e = _v$);
|
|
43
|
-
_v$2 !== _p$.t && setAttribute(_el$7, "title", _p$.t = _v$2);
|
|
44
|
-
return _p$;
|
|
45
|
-
}, {
|
|
46
|
-
e: void 0,
|
|
47
|
-
t: void 0
|
|
48
|
-
});
|
|
49
|
-
return _el$7;
|
|
50
|
-
}
|
|
51
|
-
}), null);
|
|
52
|
-
insert(_el$9, createComponent(Show, {
|
|
53
|
-
get when() {
|
|
54
|
-
return conv().status === "active";
|
|
55
|
-
},
|
|
56
|
-
get children() {
|
|
57
|
-
var _el$0 = _tmpl$2();
|
|
58
|
-
effect(() => className(_el$0, styles().conversationsList.loadingIndicator));
|
|
59
|
-
return _el$0;
|
|
60
|
-
}
|
|
61
|
-
}), _el$1);
|
|
62
|
-
insert(_el$11, () => conv().messages.length, null);
|
|
63
|
-
insert(_el$13, totalRawChunks, null);
|
|
64
|
-
insert(_el$10, createComponent(Show, {
|
|
65
|
-
get when() {
|
|
66
|
-
return conv().usage;
|
|
67
|
-
},
|
|
68
|
-
get children() {
|
|
69
|
-
var _el$15 = _tmpl$3();
|
|
70
|
-
_el$15.firstChild;
|
|
71
|
-
insert(_el$15, () => conv().usage?.totalTokens.toLocaleString() || 0, null);
|
|
72
|
-
effect((_p$) => {
|
|
73
|
-
var _v$3 = styles().conversationsList.tokensBadge, _v$4 = `Prompt: ${conv().usage?.promptTokens || 0} | Completion: ${conv().usage?.completionTokens || 0}`;
|
|
74
|
-
_v$3 !== _p$.e && className(_el$15, _p$.e = _v$3);
|
|
75
|
-
_v$4 !== _p$.t && setAttribute(_el$15, "title", _p$.t = _v$4);
|
|
76
|
-
return _p$;
|
|
77
|
-
}, {
|
|
78
|
-
e: void 0,
|
|
79
|
-
t: void 0
|
|
80
|
-
});
|
|
81
|
-
return _el$15;
|
|
82
|
-
}
|
|
83
|
-
}), null);
|
|
84
|
-
effect((_p$) => {
|
|
85
|
-
var _v$5 = `${styles().utilRow} ${state.activeConversationId === conv().id ? styles().utilRowSelected : ""}`, _v$6 = styles().conversationsList.rowMain, _v$7 = styles().conversationsList.rowTop, _v$8 = styles().conversationsList.rowInfo, _v$9 = styles().conversationsList.typeDot, _v$0 = getTypeColor(conv().type), _v$1 = styles().conversationsList.label, _v$10 = styles().conversationsList.rowRight, _v$11 = styles().conversationsList.statusDot, _v$12 = getStatusColor(conv().status), _v$13 = styles().conversationsList.stats, _v$14 = styles().conversationsList.statItem, _v$15 = styles().conversationsList.statItem;
|
|
86
|
-
_v$5 !== _p$.e && className(_el$, _p$.e = _v$5);
|
|
87
|
-
_v$6 !== _p$.t && className(_el$2, _p$.t = _v$6);
|
|
88
|
-
_v$7 !== _p$.a && className(_el$3, _p$.a = _v$7);
|
|
89
|
-
_v$8 !== _p$.o && className(_el$4, _p$.o = _v$8);
|
|
90
|
-
_v$9 !== _p$.i && className(_el$5, _p$.i = _v$9);
|
|
91
|
-
_v$0 !== _p$.n && setStyleProperty(_el$5, "background", _p$.n = _v$0);
|
|
92
|
-
_v$1 !== _p$.s && className(_el$6, _p$.s = _v$1);
|
|
93
|
-
_v$10 !== _p$.h && className(_el$9, _p$.h = _v$10);
|
|
94
|
-
_v$11 !== _p$.r && className(_el$1, _p$.r = _v$11);
|
|
95
|
-
_v$12 !== _p$.d && setStyleProperty(_el$1, "background", _p$.d = _v$12);
|
|
96
|
-
_v$13 !== _p$.l && className(_el$10, _p$.l = _v$13);
|
|
97
|
-
_v$14 !== _p$.u && className(_el$11, _p$.u = _v$14);
|
|
98
|
-
_v$15 !== _p$.c && className(_el$13, _p$.c = _v$15);
|
|
99
|
-
return _p$;
|
|
100
|
-
}, {
|
|
101
|
-
e: void 0,
|
|
102
|
-
t: void 0,
|
|
103
|
-
a: void 0,
|
|
104
|
-
o: void 0,
|
|
105
|
-
i: void 0,
|
|
106
|
-
n: void 0,
|
|
107
|
-
s: void 0,
|
|
108
|
-
h: void 0,
|
|
109
|
-
r: void 0,
|
|
110
|
-
d: void 0,
|
|
111
|
-
l: void 0,
|
|
112
|
-
u: void 0,
|
|
113
|
-
c: void 0
|
|
114
|
-
});
|
|
115
|
-
return _el$;
|
|
116
|
-
})();
|
|
117
|
-
};
|
|
118
|
-
delegateEvents(["click"]);
|
|
119
|
-
export {
|
|
120
|
-
ConversationRow
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=ConversationRow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationRow.js","sources":["../../../../src/components/list/ConversationRow.tsx"],"sourcesContent":["import { Show } from 'solid-js'\nimport { useStyles } from '../../styles/use-styles'\nimport { useAIStore } from '../../store/ai-context'\nimport { getStatusColor, getTypeColor } from '../utils'\nimport type { Conversation } from '../../store/ai-context'\nimport type { Component } from 'solid-js'\n\ninterface ConversationRowProps {\n conversation: Conversation\n}\n\nexport const ConversationRow: Component<ConversationRowProps> = (props) => {\n const { state, selectConversation } = useAIStore()\n const styles = useStyles()\n const conv = () => props.conversation\n\n const hasToolCalls = () => {\n return conv().messages.some(\n (msg) => msg.toolCalls && msg.toolCalls.length > 0,\n )\n }\n\n const countToolCalls = () => {\n return conv().messages.reduce((total, msg) => {\n return total + (msg.toolCalls?.length || 0)\n }, 0)\n }\n\n // Total raw chunks = sum of all chunkCounts from all chunks\n const totalRawChunks = () => {\n return conv().chunks.reduce((sum, c) => sum + (c.chunkCount || 1), 0)\n }\n\n return (\n <div\n class={`${styles().utilRow} ${state.activeConversationId === conv().id ? styles().utilRowSelected : ''}`}\n onClick={() => selectConversation(conv().id)}\n >\n <div class={styles().conversationsList.rowMain}>\n <div class={styles().conversationsList.rowTop}>\n <div class={styles().conversationsList.rowInfo}>\n <div\n class={styles().conversationsList.typeDot}\n style={{ background: getTypeColor(conv().type) }}\n />\n <div class={styles().conversationsList.label}>{conv().label}</div>\n <Show when={hasToolCalls()}>\n <div\n class={styles().conversationsList.toolCallsBadge}\n title={`${countToolCalls()} tool call${countToolCalls() !== 1 ? 's' : ''}`}\n >\n 🔧 {countToolCalls()}\n </div>\n </Show>\n </div>\n <div class={styles().conversationsList.rowRight}>\n <Show when={conv().status === 'active'}>\n <div class={styles().conversationsList.loadingIndicator}>⟳</div>\n </Show>\n <div\n class={styles().conversationsList.statusDot}\n style={{ background: getStatusColor(conv().status) }}\n />\n </div>\n </div>\n <div class={styles().conversationsList.stats}>\n <div class={styles().conversationsList.statItem}>\n 💬 {conv().messages.length}\n </div>\n <div class={styles().conversationsList.statItem}>\n 📦 {totalRawChunks()}\n </div>\n <Show when={conv().usage}>\n <div\n class={styles().conversationsList.tokensBadge}\n title={`Prompt: ${conv().usage?.promptTokens || 0} | Completion: ${conv().usage?.completionTokens || 0}`}\n >\n 🎯 {conv().usage?.totalTokens.toLocaleString() || 0}\n </div>\n </Show>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["ConversationRow","props","state","selectConversation","useAIStore","styles","useStyles","conv","conversation","hasToolCalls","messages","some","msg","toolCalls","length","countToolCalls","reduce","total","totalRawChunks","chunks","sum","c","chunkCount","_el$","_tmpl$4","_el$2","firstChild","_el$3","_el$4","_el$5","_el$6","nextSibling","_el$9","_el$1","_el$10","_el$11","_el$13","$$click","id","_$insert","label","_$createComponent","Show","when","children","_el$7","_tmpl$","_$effect","_p$","_v$","conversationsList","toolCallsBadge","_v$2","e","_$className","t","_$setAttribute","undefined","status","_el$0","_tmpl$2","loadingIndicator","usage","_el$15","_tmpl$3","totalTokens","toLocaleString","_v$3","tokensBadge","_v$4","promptTokens","completionTokens","_v$5","utilRow","activeConversationId","utilRowSelected","_v$6","rowMain","_v$7","rowTop","_v$8","rowInfo","_v$9","typeDot","_v$0","getTypeColor","type","_v$1","_v$10","rowRight","_v$11","statusDot","_v$12","getStatusColor","_v$13","stats","_v$14","statItem","_v$15","a","o","i","n","_$setStyleProperty","s","h","r","d","l","u","_$delegateEvents"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ConversationRow } from './ConversationRow.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Chunk } from '../../store/ai-store.js';
|
|
2
|
-
export declare const formatTimestamp: (timestamp: number) => string;
|
|
3
|
-
export declare const formatDuration: (ms?: number) => string;
|
|
4
|
-
export declare const getChunkTypeColor: (type: Chunk["type"]) => string;
|
|
5
|
-
export declare const getStatusColor: (status: "active" | "completed" | "error") => string;
|
|
6
|
-
export declare const getTypeColor: (type: "client" | "server") => string;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
const formatTimestamp = (timestamp) => {
|
|
2
|
-
const date = new Date(timestamp);
|
|
3
|
-
return date.toLocaleTimeString() + "." + date.getMilliseconds().toString().padStart(3, "0");
|
|
4
|
-
};
|
|
5
|
-
const formatDuration = (ms) => {
|
|
6
|
-
if (!ms) return "-";
|
|
7
|
-
if (ms < 1e3) return `${ms}ms`;
|
|
8
|
-
return `${(ms / 1e3).toFixed(2)}s`;
|
|
9
|
-
};
|
|
10
|
-
const getChunkTypeColor = (type) => {
|
|
11
|
-
switch (type) {
|
|
12
|
-
case "content":
|
|
13
|
-
return "#10b981";
|
|
14
|
-
// green
|
|
15
|
-
case "tool_call":
|
|
16
|
-
return "#8b5cf6";
|
|
17
|
-
// purple
|
|
18
|
-
case "tool_result":
|
|
19
|
-
return "#3b82f6";
|
|
20
|
-
// blue
|
|
21
|
-
case "done":
|
|
22
|
-
return "#6b7280";
|
|
23
|
-
// gray
|
|
24
|
-
case "error":
|
|
25
|
-
return "#ef4444";
|
|
26
|
-
// red
|
|
27
|
-
case "approval":
|
|
28
|
-
return "#f59e0b";
|
|
29
|
-
// orange/amber
|
|
30
|
-
default:
|
|
31
|
-
return "#6b7280";
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
const getStatusColor = (status) => {
|
|
35
|
-
switch (status) {
|
|
36
|
-
case "active":
|
|
37
|
-
return "oklch(0.7 0.17 142)";
|
|
38
|
-
// green
|
|
39
|
-
case "completed":
|
|
40
|
-
return "oklch(0.65 0.1 260)";
|
|
41
|
-
// blue
|
|
42
|
-
case "error":
|
|
43
|
-
return "oklch(0.65 0.2 25)";
|
|
44
|
-
// red
|
|
45
|
-
default:
|
|
46
|
-
return "oklch(0.6 0.05 200)";
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
const getTypeColor = (type) => {
|
|
50
|
-
switch (type) {
|
|
51
|
-
case "client":
|
|
52
|
-
return "oklch(0.68 0.16 330)";
|
|
53
|
-
// pink
|
|
54
|
-
case "server":
|
|
55
|
-
return "oklch(0.68 0.15 280)";
|
|
56
|
-
// purple
|
|
57
|
-
default:
|
|
58
|
-
return "oklch(0.6 0.05 200)";
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
export {
|
|
62
|
-
formatDuration,
|
|
63
|
-
formatTimestamp,
|
|
64
|
-
getChunkTypeColor,
|
|
65
|
-
getStatusColor,
|
|
66
|
-
getTypeColor
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sources":["../../../../src/components/utils/format.ts"],"sourcesContent":["import type { Chunk } from '../../store/ai-store'\n\nexport const formatTimestamp = (timestamp: number): string => {\n const date = new Date(timestamp)\n return (\n date.toLocaleTimeString() +\n '.' +\n date.getMilliseconds().toString().padStart(3, '0')\n )\n}\n\nexport const formatDuration = (ms?: number): string => {\n if (!ms) return '-'\n if (ms < 1000) return `${ms}ms`\n return `${(ms / 1000).toFixed(2)}s`\n}\n\nexport const getChunkTypeColor = (type: Chunk['type']): string => {\n switch (type) {\n case 'content':\n return '#10b981' // green\n case 'tool_call':\n return '#8b5cf6' // purple\n case 'tool_result':\n return '#3b82f6' // blue\n case 'done':\n return '#6b7280' // gray\n case 'error':\n return '#ef4444' // red\n case 'approval':\n return '#f59e0b' // orange/amber\n default:\n return '#6b7280' // gray\n }\n}\n\nexport const getStatusColor = (\n status: 'active' | 'completed' | 'error',\n): string => {\n switch (status) {\n case 'active':\n return 'oklch(0.7 0.17 142)' // green\n case 'completed':\n return 'oklch(0.65 0.1 260)' // blue\n case 'error':\n return 'oklch(0.65 0.2 25)' // red\n default:\n return 'oklch(0.6 0.05 200)'\n }\n}\n\nexport const getTypeColor = (type: 'client' | 'server'): string => {\n switch (type) {\n case 'client':\n return 'oklch(0.68 0.16 330)' // pink\n case 'server':\n return 'oklch(0.68 0.15 280)' // purple\n default:\n return 'oklch(0.6 0.05 200)'\n }\n}\n"],"names":[],"mappings":"AAEO,MAAM,kBAAkB,CAAC,cAA8B;AAC5D,QAAM,OAAO,IAAI,KAAK,SAAS;AAC/B,SACE,KAAK,uBACL,MACA,KAAK,gBAAA,EAAkB,SAAA,EAAW,SAAS,GAAG,GAAG;AAErD;AAEO,MAAM,iBAAiB,CAAC,OAAwB;AACrD,MAAI,CAAC,GAAI,QAAO;AAChB,MAAI,KAAK,IAAM,QAAO,GAAG,EAAE;AAC3B,SAAO,IAAI,KAAK,KAAM,QAAQ,CAAC,CAAC;AAClC;AAEO,MAAM,oBAAoB,CAAC,SAAgC;AAChE,UAAQ,MAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEO,MAAM,iBAAiB,CAC5B,WACW;AACX,UAAQ,QAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEO,MAAM,eAAe,CAAC,SAAsC;AACjE,UAAQ,MAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA;AAAA,IACT,KAAK;AACH,aAAO;AAAA;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './format.js';
|
package/dist/esm/core.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface AiDevtoolsInit {
|
|
2
|
-
}
|
|
3
|
-
declare const AiDevtoolsCore: new () => {
|
|
4
|
-
"__#private@#isMounted": boolean;
|
|
5
|
-
"__#private@#isMounting": boolean;
|
|
6
|
-
"__#private@#mountCb": (() => void) | null;
|
|
7
|
-
"__#private@#dispose"?: () => void;
|
|
8
|
-
"__#private@#Component": any;
|
|
9
|
-
"__#private@#ThemeProvider": any;
|
|
10
|
-
mount<T extends HTMLElement>(el: T, theme: "light" | "dark"): Promise<void>;
|
|
11
|
-
unmount(): void;
|
|
12
|
-
}, AiDevtoolsCoreNoOp: new () => {
|
|
13
|
-
mount<T extends HTMLElement>(_el: T, _theme: "light" | "dark"): Promise<void>;
|
|
14
|
-
unmount(): void;
|
|
15
|
-
"__#private@#isMounted": boolean;
|
|
16
|
-
"__#private@#isMounting": boolean;
|
|
17
|
-
"__#private@#mountCb": (() => void) | null;
|
|
18
|
-
"__#private@#dispose"?: () => void;
|
|
19
|
-
"__#private@#Component": any;
|
|
20
|
-
"__#private@#ThemeProvider": any;
|
|
21
|
-
};
|
|
22
|
-
export { AiDevtoolsCore, AiDevtoolsCoreNoOp };
|
package/dist/esm/core.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { lazy } from "solid-js";
|
|
2
|
-
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
3
|
-
const Component = lazy(() => import("./components/Shell.js"));
|
|
4
|
-
const [AiDevtoolsCore, AiDevtoolsCoreNoOp] = constructCoreClass(Component);
|
|
5
|
-
export {
|
|
6
|
-
AiDevtoolsCore,
|
|
7
|
-
AiDevtoolsCoreNoOp
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=core.js.map
|
package/dist/esm/core.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import { lazy } from 'solid-js'\nimport { constructCoreClass } from '@tanstack/devtools-utils/solid'\n\nconst Component = lazy(() => import('./components/Shell'))\n\nexport interface AiDevtoolsInit {}\n\nconst [AiDevtoolsCore, AiDevtoolsCoreNoOp] = constructCoreClass(Component)\n\nexport { AiDevtoolsCore, AiDevtoolsCoreNoOp }\n"],"names":["Component","lazy","AiDevtoolsCore","AiDevtoolsCoreNoOp","constructCoreClass"],"mappings":";;AAGA,MAAMA,YAAYC,KAAK,MAAM,OAAO,uBAAoB,CAAC;AAIzD,MAAM,CAACC,gBAAgBC,kBAAkB,IAAIC,mBAAmBJ,SAAS;"}
|
package/dist/esm/index.js
DELETED
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import * as Devtools from './core'\n\nexport const AiDevtoolsCore =\n process.env.NODE_ENV !== 'development'\n ? Devtools.AiDevtoolsCoreNoOp\n : Devtools.AiDevtoolsCore\n\nexport type { AiDevtoolsInit } from './core'\n"],"names":["Devtools.AiDevtoolsCoreNoOp","Devtools.AiDevtoolsCore"],"mappings":";AAEO,MAAM,iBACX,QAAQ,IAAI,aAAa,gBACrBA,qBACAC;"}
|
package/dist/esm/production.d.ts
DELETED
package/dist/esm/production.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"production.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { ContentPartSource } from '@tanstack/ai';
|
|
2
|
-
import { ParentComponent } from 'solid-js';
|
|
3
|
-
interface MessagePart {
|
|
4
|
-
type: 'text' | 'tool-call' | 'tool-result' | 'thinking' | 'image' | 'audio' | 'video' | 'document';
|
|
5
|
-
content?: string;
|
|
6
|
-
toolCallId?: string;
|
|
7
|
-
toolName?: string;
|
|
8
|
-
arguments?: string;
|
|
9
|
-
state?: string;
|
|
10
|
-
output?: unknown;
|
|
11
|
-
error?: string;
|
|
12
|
-
source?: ContentPartSource;
|
|
13
|
-
metadata?: unknown;
|
|
14
|
-
}
|
|
15
|
-
export interface ToolCall {
|
|
16
|
-
id: string;
|
|
17
|
-
name: string;
|
|
18
|
-
arguments: string;
|
|
19
|
-
state: string;
|
|
20
|
-
result?: unknown;
|
|
21
|
-
approvalRequired?: boolean;
|
|
22
|
-
approvalId?: string;
|
|
23
|
-
/** Duration of tool execution in milliseconds */
|
|
24
|
-
duration?: number;
|
|
25
|
-
}
|
|
26
|
-
interface TokenUsage {
|
|
27
|
-
promptTokens: number;
|
|
28
|
-
completionTokens: number;
|
|
29
|
-
totalTokens: number;
|
|
30
|
-
}
|
|
31
|
-
export interface Message {
|
|
32
|
-
id: string;
|
|
33
|
-
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
34
|
-
content: string;
|
|
35
|
-
timestamp: number;
|
|
36
|
-
parts?: Array<MessagePart>;
|
|
37
|
-
toolCalls?: Array<ToolCall>;
|
|
38
|
-
/** Consolidated chunks - consecutive same-type chunks are merged into one entry */
|
|
39
|
-
chunks?: Array<Chunk>;
|
|
40
|
-
/** Total number of raw chunks received (before consolidation) */
|
|
41
|
-
totalChunkCount?: number;
|
|
42
|
-
model?: string;
|
|
43
|
-
usage?: TokenUsage;
|
|
44
|
-
thinkingContent?: string;
|
|
45
|
-
/** Source of the message: 'client' for aggregated client-side data, 'server' for individual server chunks */
|
|
46
|
-
source?: 'client' | 'server';
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Consolidated chunk - represents one or more raw chunks of the same type.
|
|
50
|
-
* Consecutive content/thinking chunks are merged into a single entry with accumulated content.
|
|
51
|
-
*/
|
|
52
|
-
export interface Chunk {
|
|
53
|
-
id: string;
|
|
54
|
-
type: 'content' | 'tool_call' | 'tool_result' | 'done' | 'error' | 'approval' | 'thinking';
|
|
55
|
-
timestamp: number;
|
|
56
|
-
messageId?: string;
|
|
57
|
-
/** Accumulated content from all merged chunks */
|
|
58
|
-
content?: string;
|
|
59
|
-
/** The last delta received (kept for debugging) */
|
|
60
|
-
delta?: string;
|
|
61
|
-
toolName?: string;
|
|
62
|
-
toolCallId?: string;
|
|
63
|
-
finishReason?: string;
|
|
64
|
-
error?: string;
|
|
65
|
-
approvalId?: string;
|
|
66
|
-
input?: unknown;
|
|
67
|
-
/** Tool arguments for tool_call chunks */
|
|
68
|
-
arguments?: string;
|
|
69
|
-
/** Tool result data for tool_result chunks */
|
|
70
|
-
result?: unknown;
|
|
71
|
-
/** Duration in ms for tool execution */
|
|
72
|
-
duration?: number;
|
|
73
|
-
/** Number of raw chunks that were merged into this consolidated chunk */
|
|
74
|
-
chunkCount: number;
|
|
75
|
-
/** Whether this is a client-side tool execution */
|
|
76
|
-
isClientTool?: boolean;
|
|
77
|
-
}
|
|
78
|
-
export interface SummarizeOperation {
|
|
79
|
-
id: string;
|
|
80
|
-
model: string;
|
|
81
|
-
inputLength: number;
|
|
82
|
-
outputLength?: number;
|
|
83
|
-
duration?: number;
|
|
84
|
-
timestamp: number;
|
|
85
|
-
status: 'started' | 'completed';
|
|
86
|
-
}
|
|
87
|
-
export interface ActivityEvent {
|
|
88
|
-
id: string;
|
|
89
|
-
name: string;
|
|
90
|
-
timestamp: number;
|
|
91
|
-
payload: unknown;
|
|
92
|
-
}
|
|
93
|
-
export interface Conversation {
|
|
94
|
-
id: string;
|
|
95
|
-
type: 'client' | 'server';
|
|
96
|
-
label: string;
|
|
97
|
-
messages: Array<Message>;
|
|
98
|
-
chunks: Array<Chunk>;
|
|
99
|
-
model?: string;
|
|
100
|
-
provider?: string;
|
|
101
|
-
status: 'active' | 'completed' | 'error';
|
|
102
|
-
startedAt: number;
|
|
103
|
-
completedAt?: number;
|
|
104
|
-
usage?: TokenUsage;
|
|
105
|
-
iterationCount?: number;
|
|
106
|
-
toolNames?: Array<string>;
|
|
107
|
-
options?: Record<string, unknown>;
|
|
108
|
-
modelOptions?: Record<string, unknown>;
|
|
109
|
-
systemPrompts?: Array<string>;
|
|
110
|
-
/** Flags for which operation types this conversation has */
|
|
111
|
-
hasChat?: boolean;
|
|
112
|
-
hasSummarize?: boolean;
|
|
113
|
-
hasImage?: boolean;
|
|
114
|
-
hasSpeech?: boolean;
|
|
115
|
-
hasTranscription?: boolean;
|
|
116
|
-
hasVideo?: boolean;
|
|
117
|
-
/** Summarize operations in this conversation */
|
|
118
|
-
summaries?: Array<SummarizeOperation>;
|
|
119
|
-
imageEvents?: Array<ActivityEvent>;
|
|
120
|
-
speechEvents?: Array<ActivityEvent>;
|
|
121
|
-
transcriptionEvents?: Array<ActivityEvent>;
|
|
122
|
-
videoEvents?: Array<ActivityEvent>;
|
|
123
|
-
}
|
|
124
|
-
interface AIStoreState {
|
|
125
|
-
conversations: Record<string, Conversation>;
|
|
126
|
-
activeConversationId: string | null;
|
|
127
|
-
}
|
|
128
|
-
interface AIContextValue {
|
|
129
|
-
state: AIStoreState;
|
|
130
|
-
clearAllConversations: () => void;
|
|
131
|
-
selectConversation: (id: string) => void;
|
|
132
|
-
}
|
|
133
|
-
export declare function useAIStore(): AIContextValue;
|
|
134
|
-
export declare const AIProvider: ParentComponent;
|
|
135
|
-
export {};
|