@agentuity/workbench 0.0.86 → 0.0.88
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/components/App.d.ts.map +1 -1
- package/dist/components/App.js +18 -2
- package/dist/components/App.js.map +1 -1
- package/dist/components/ai-elements/code-block.d.ts +3 -3
- package/dist/components/ai-elements/code-block.d.ts.map +1 -1
- package/dist/components/ai-elements/code-block.js +29 -7
- package/dist/components/ai-elements/code-block.js.map +1 -1
- package/dist/components/internal/Chat.d.ts +3 -2
- package/dist/components/internal/Chat.d.ts.map +1 -1
- package/dist/components/internal/Chat.js +23 -24
- package/dist/components/internal/Chat.js.map +1 -1
- package/dist/components/internal/InputSection.d.ts +3 -2
- package/dist/components/internal/InputSection.d.ts.map +1 -1
- package/dist/components/internal/InputSection.js +68 -6
- package/dist/components/internal/InputSection.js.map +1 -1
- package/dist/components/internal/MonacoJsonEditor.d.ts +3 -1
- package/dist/components/internal/MonacoJsonEditor.d.ts.map +1 -1
- package/dist/components/internal/MonacoJsonEditor.js +41 -57
- package/dist/components/internal/MonacoJsonEditor.js.map +1 -1
- package/dist/components/internal/Schema.d.ts +1 -2
- package/dist/components/internal/Schema.d.ts.map +1 -1
- package/dist/components/internal/Schema.js +2 -3
- package/dist/components/internal/Schema.js.map +1 -1
- package/dist/components/internal/WorkbenchProvider.d.ts.map +1 -1
- package/dist/components/internal/WorkbenchProvider.js +55 -8
- package/dist/components/internal/WorkbenchProvider.js.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/input-group.js +2 -2
- package/dist/components/ui/input-group.js.map +1 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/{styles.css → standalone.css} +206 -1554
- package/package.json +29 -29
- package/src/{styles.css → base.css} +36 -52
- package/src/components/App.tsx +41 -5
- package/src/components/ai-elements/code-block.tsx +42 -10
- package/src/components/internal/Chat.tsx +112 -119
- package/src/components/internal/InputSection.tsx +79 -9
- package/src/components/internal/MonacoJsonEditor.tsx +59 -65
- package/src/components/internal/Schema.tsx +74 -86
- package/src/components/internal/WorkbenchProvider.tsx +69 -10
- package/src/components/ui/input-group.tsx +2 -2
- package/src/components/ui/input.tsx +2 -3
- package/src/index.ts +5 -14
- package/src/integration.css +15 -0
- package/src/standalone.css +25 -0
- package/dist/components/ConnectionStatus.d.ts +0 -7
- package/dist/components/ConnectionStatus.d.ts.map +0 -1
- package/dist/components/ConnectionStatus.js +0 -52
- package/dist/components/ConnectionStatus.js.map +0 -1
- package/dist/components/Inline.d.ts +0 -10
- package/dist/components/Inline.d.ts.map +0 -1
- package/dist/components/Inline.js +0 -11
- package/dist/components/Inline.js.map +0 -1
- package/dist/components/ai-elements/artifact.d.ts +0 -24
- package/dist/components/ai-elements/artifact.d.ts.map +0 -1
- package/dist/components/ai-elements/artifact.js +0 -21
- package/dist/components/ai-elements/artifact.js.map +0 -1
- package/dist/components/ai-elements/branch.d.ts +0 -21
- package/dist/components/ai-elements/branch.d.ts.map +0 -1
- package/dist/components/ai-elements/branch.js +0 -71
- package/dist/components/ai-elements/branch.js.map +0 -1
- package/dist/components/ai-elements/canvas.d.ts +0 -9
- package/dist/components/ai-elements/canvas.d.ts.map +0 -1
- package/dist/components/ai-elements/canvas.js +0 -6
- package/dist/components/ai-elements/canvas.js.map +0 -1
- package/dist/components/ai-elements/chain-of-thought.d.ts +0 -30
- package/dist/components/ai-elements/chain-of-thought.d.ts.map +0 -1
- package/dist/components/ai-elements/chain-of-thought.js +0 -52
- package/dist/components/ai-elements/chain-of-thought.js.map +0 -1
- package/dist/components/ai-elements/confirmation.d.ts +0 -27
- package/dist/components/ai-elements/confirmation.d.ts.map +0 -1
- package/dist/components/ai-elements/confirmation.js +0 -57
- package/dist/components/ai-elements/confirmation.js.map +0 -1
- package/dist/components/ai-elements/connection.d.ts +0 -3
- package/dist/components/ai-elements/connection.d.ts.map +0 -1
- package/dist/components/ai-elements/connection.js +0 -4
- package/dist/components/ai-elements/connection.js.map +0 -1
- package/dist/components/ai-elements/context.d.ts +0 -33
- package/dist/components/ai-elements/context.d.ts.map +0 -1
- package/dist/components/ai-elements/context.js +0 -167
- package/dist/components/ai-elements/context.js.map +0 -1
- package/dist/components/ai-elements/controls.d.ts +0 -5
- package/dist/components/ai-elements/controls.d.ts.map +0 -1
- package/dist/components/ai-elements/controls.js +0 -6
- package/dist/components/ai-elements/controls.js.map +0 -1
- package/dist/components/ai-elements/edge.d.ts +0 -6
- package/dist/components/ai-elements/edge.d.ts.map +0 -1
- package/dist/components/ai-elements/edge.js +0 -83
- package/dist/components/ai-elements/edge.js.map +0 -1
- package/dist/components/ai-elements/image.d.ts +0 -7
- package/dist/components/ai-elements/image.d.ts.map +0 -1
- package/dist/components/ai-elements/image.js +0 -4
- package/dist/components/ai-elements/image.js.map +0 -1
- package/dist/components/ai-elements/inline-citation.d.ts +0 -39
- package/dist/components/ai-elements/inline-citation.d.ts.map +0 -1
- package/dist/components/ai-elements/inline-citation.js +0 -62
- package/dist/components/ai-elements/inline-citation.js.map +0 -1
- package/dist/components/ai-elements/loader.d.ts +0 -6
- package/dist/components/ai-elements/loader.d.ts.map +0 -1
- package/dist/components/ai-elements/loader.js +0 -5
- package/dist/components/ai-elements/loader.js.map +0 -1
- package/dist/components/ai-elements/node.d.ts +0 -22
- package/dist/components/ai-elements/node.d.ts.map +0 -1
- package/dist/components/ai-elements/node.js +0 -12
- package/dist/components/ai-elements/node.js.map +0 -1
- package/dist/components/ai-elements/open-in-chat.d.ts +0 -29
- package/dist/components/ai-elements/open-in-chat.d.ts.map +0 -1
- package/dist/components/ai-elements/open-in-chat.js +0 -97
- package/dist/components/ai-elements/open-in-chat.js.map +0 -1
- package/dist/components/ai-elements/panel.d.ts +0 -6
- package/dist/components/ai-elements/panel.d.ts.map +0 -1
- package/dist/components/ai-elements/panel.js +0 -5
- package/dist/components/ai-elements/panel.js.map +0 -1
- package/dist/components/ai-elements/plan.d.ts +0 -26
- package/dist/components/ai-elements/plan.d.ts.map +0 -1
- package/dist/components/ai-elements/plan.js +0 -32
- package/dist/components/ai-elements/plan.js.map +0 -1
- package/dist/components/ai-elements/queue.d.ts +0 -62
- package/dist/components/ai-elements/queue.d.ts.map +0 -1
- package/dist/components/ai-elements/queue.js +0 -25
- package/dist/components/ai-elements/queue.js.map +0 -1
- package/dist/components/ai-elements/reasoning.d.ts +0 -17
- package/dist/components/ai-elements/reasoning.d.ts.map +0 -1
- package/dist/components/ai-elements/reasoning.js +0 -77
- package/dist/components/ai-elements/reasoning.js.map +0 -1
- package/dist/components/ai-elements/response.d.ts +0 -6
- package/dist/components/ai-elements/response.d.ts.map +0 -1
- package/dist/components/ai-elements/response.js +0 -8
- package/dist/components/ai-elements/response.js.map +0 -1
- package/dist/components/ai-elements/sources.d.ts +0 -13
- package/dist/components/ai-elements/sources.d.ts.map +0 -1
- package/dist/components/ai-elements/sources.js +0 -10
- package/dist/components/ai-elements/sources.js.map +0 -1
- package/dist/components/ai-elements/suggestion.d.ts +0 -11
- package/dist/components/ai-elements/suggestion.d.ts.map +0 -1
- package/dist/components/ai-elements/suggestion.js +0 -13
- package/dist/components/ai-elements/suggestion.js.map +0 -1
- package/dist/components/ai-elements/task.d.ts +0 -15
- package/dist/components/ai-elements/task.d.ts.map +0 -1
- package/dist/components/ai-elements/task.js +0 -11
- package/dist/components/ai-elements/task.js.map +0 -1
- package/dist/components/ai-elements/tool.d.ts +0 -24
- package/dist/components/ai-elements/tool.d.ts.map +0 -1
- package/dist/components/ai-elements/tool.js +0 -47
- package/dist/components/ai-elements/tool.js.map +0 -1
- package/dist/components/ai-elements/toolbar.d.ts +0 -6
- package/dist/components/ai-elements/toolbar.d.ts.map +0 -1
- package/dist/components/ai-elements/toolbar.js +0 -5
- package/dist/components/ai-elements/toolbar.js.map +0 -1
- package/dist/components/ai-elements/web-preview.d.ts +0 -35
- package/dist/components/ai-elements/web-preview.d.ts.map +0 -1
- package/dist/components/ai-elements/web-preview.js +0 -63
- package/dist/components/ai-elements/web-preview.js.map +0 -1
- package/dist/components/ui/alert.d.ts +0 -10
- package/dist/components/ui/alert.d.ts.map +0 -1
- package/dist/components/ui/alert.js +0 -25
- package/dist/components/ui/alert.js.map +0 -1
- package/dist/components/ui/badge.d.ts +0 -10
- package/dist/components/ui/badge.d.ts.map +0 -1
- package/dist/components/ui/badge.js +0 -23
- package/dist/components/ui/badge.js.map +0 -1
- package/dist/components/ui/card.d.ts +0 -10
- package/dist/components/ui/card.d.ts.map +0 -1
- package/dist/components/ui/card.js +0 -25
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/carousel.d.ts +0 -20
- package/dist/components/ui/carousel.d.ts.map +0 -1
- package/dist/components/ui/carousel.js +0 -92
- package/dist/components/ui/carousel.js.map +0 -1
- package/dist/components/ui/checkbox.d.ts +0 -5
- package/dist/components/ui/checkbox.d.ts.map +0 -1
- package/dist/components/ui/checkbox.js +0 -9
- package/dist/components/ui/checkbox.js.map +0 -1
- package/dist/components/ui/collapsible.d.ts +0 -6
- package/dist/components/ui/collapsible.d.ts.map +0 -1
- package/dist/components/ui/collapsible.js +0 -14
- package/dist/components/ui/collapsible.js.map +0 -1
- package/dist/components/ui/field.d.ts +0 -25
- package/dist/components/ui/field.d.ts.map +0 -1
- package/dist/components/ui/field.js +0 -74
- package/dist/components/ui/field.js.map +0 -1
- package/dist/components/ui/form.d.ts +0 -25
- package/dist/components/ui/form.d.ts.map +0 -1
- package/dist/components/ui/form.js +0 -58
- package/dist/components/ui/form.js.map +0 -1
- package/dist/components/ui/label.d.ts +0 -5
- package/dist/components/ui/label.d.ts.map +0 -1
- package/dist/components/ui/label.js +0 -9
- package/dist/components/ui/label.js.map +0 -1
- package/dist/components/ui/progress.d.ts +0 -5
- package/dist/components/ui/progress.d.ts.map +0 -1
- package/dist/components/ui/progress.js +0 -9
- package/dist/components/ui/progress.js.map +0 -1
- package/dist/components/ui/separator.d.ts +0 -5
- package/dist/components/ui/separator.d.ts.map +0 -1
- package/dist/components/ui/separator.js +0 -9
- package/dist/components/ui/separator.js.map +0 -1
- package/dist/components/ui/switch.d.ts +0 -5
- package/dist/components/ui/switch.d.ts.map +0 -1
- package/dist/components/ui/switch.js +0 -8
- package/dist/components/ui/switch.js.map +0 -1
- package/dist/components/ui/tabs.d.ts +0 -8
- package/dist/components/ui/tabs.d.ts.map +0 -1
- package/dist/components/ui/tabs.js +0 -17
- package/dist/components/ui/tabs.js.map +0 -1
- package/dist/components/ui/toggle.d.ts +0 -10
- package/dist/components/ui/toggle.d.ts.map +0 -1
- package/dist/components/ui/toggle.js +0 -26
- package/dist/components/ui/toggle.js.map +0 -1
- package/dist/components.d.ts +0 -12
- package/dist/components.d.ts.map +0 -1
- package/dist/components.js +0 -13
- package/dist/components.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -7
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -5
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useWorkbenchSchemas.d.ts +0 -56
- package/dist/hooks/useWorkbenchSchemas.d.ts.map +0 -1
- package/dist/hooks/useWorkbenchSchemas.js +0 -63
- package/dist/hooks/useWorkbenchSchemas.js.map +0 -1
- package/src/components/ConnectionStatus.tsx +0 -67
- package/src/components/Inline.tsx +0 -16
- package/src/components/ai-elements/artifact.tsx +0 -118
- package/src/components/ai-elements/branch.tsx +0 -187
- package/src/components/ai-elements/canvas.tsx +0 -24
- package/src/components/ai-elements/chain-of-thought.tsx +0 -198
- package/src/components/ai-elements/confirmation.tsx +0 -119
- package/src/components/ai-elements/connection.tsx +0 -16
- package/src/components/ai-elements/context.tsx +0 -357
- package/src/components/ai-elements/controls.tsx +0 -18
- package/src/components/ai-elements/edge.tsx +0 -131
- package/src/components/ai-elements/image.tsx +0 -16
- package/src/components/ai-elements/inline-citation.tsx +0 -246
- package/src/components/ai-elements/loader.tsx +0 -88
- package/src/components/ai-elements/node.tsx +0 -66
- package/src/components/ai-elements/open-in-chat.tsx +0 -333
- package/src/components/ai-elements/panel.tsx +0 -12
- package/src/components/ai-elements/plan.tsx +0 -123
- package/src/components/ai-elements/queue.tsx +0 -231
- package/src/components/ai-elements/reasoning.tsx +0 -163
- package/src/components/ai-elements/response.tsx +0 -19
- package/src/components/ai-elements/sources.tsx +0 -53
- package/src/components/ai-elements/suggestion.tsx +0 -47
- package/src/components/ai-elements/task.tsx +0 -64
- package/src/components/ai-elements/tool.tsx +0 -136
- package/src/components/ai-elements/toolbar.tsx +0 -13
- package/src/components/ai-elements/web-preview.tsx +0 -238
- package/src/components/ui/alert.tsx +0 -60
- package/src/components/ui/badge.tsx +0 -40
- package/src/components/ui/card.tsx +0 -41
- package/src/components/ui/carousel.tsx +0 -234
- package/src/components/ui/checkbox.tsx +0 -27
- package/src/components/ui/collapsible.tsx +0 -21
- package/src/components/ui/field.tsx +0 -234
- package/src/components/ui/form.tsx +0 -154
- package/src/components/ui/label.tsx +0 -21
- package/src/components/ui/progress.tsx +0 -28
- package/src/components/ui/separator.tsx +0 -28
- package/src/components/ui/switch.tsx +0 -26
- package/src/components/ui/tabs.tsx +0 -52
- package/src/components/ui/toggle.tsx +0 -44
- package/src/components.tsx +0 -29
- package/src/hooks/index.ts +0 -20
- package/src/hooks/useWorkbenchSchemas.ts +0 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACxB,YAAY,EAAE,MAAM,CAAC;CACrB;AAsCD,wBAAgB,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,QAAQ,2CAW7C;AAED,eAAe,GAAG,CAAC"}
|
package/dist/components/App.js
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { WorkbenchProvider } from './internal/WorkbenchProvider';
|
|
3
4
|
import { Header } from './internal/Header';
|
|
4
5
|
import { Chat } from './internal/Chat';
|
|
6
|
+
import { Schema } from './internal/Schema';
|
|
5
7
|
import { ThemeProvider } from './ui/theme-provider';
|
|
6
8
|
import { ResizableProvider } from './ui/resizable-provider';
|
|
9
|
+
import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './ui/resizable';
|
|
10
|
+
import { useResizable } from './ui/resizable-provider';
|
|
7
11
|
import { decodeWorkbenchConfig } from '@agentuity/core/workbench';
|
|
12
|
+
function AppContent() {
|
|
13
|
+
const [schemaOpen, setSchemaOpen] = useState(false);
|
|
14
|
+
const { getPanelSizes, setPanelSizes } = useResizable();
|
|
15
|
+
const defaultSizes = [55, 45];
|
|
16
|
+
const panelSizes = getPanelSizes('main-layout') || defaultSizes;
|
|
17
|
+
return (_jsxs("div", { className: "flex flex-col h-full", children: [_jsx(Header, {}), _jsxs(ResizablePanelGroup, { direction: "horizontal", className: "flex-1", onLayout: (sizes) => {
|
|
18
|
+
// Only save sizes when schema panel is open
|
|
19
|
+
if (schemaOpen && sizes.length === 2) {
|
|
20
|
+
setPanelSizes('main-layout', sizes);
|
|
21
|
+
}
|
|
22
|
+
}, children: [_jsx(ResizablePanel, { defaultSize: panelSizes[0], minSize: 30, className: "flex flex-col", children: _jsx(Chat, { schemaOpen: schemaOpen, onSchemaToggle: () => setSchemaOpen(!schemaOpen) }) }), schemaOpen && (_jsxs(_Fragment, { children: [_jsx(ResizableHandle, { withHandle: true }), _jsx(ResizablePanel, { defaultSize: panelSizes[1], minSize: 20, maxSize: 50, children: _jsx(Schema, { onOpenChange: setSchemaOpen }) })] }))] })] }));
|
|
23
|
+
}
|
|
8
24
|
export function App({ configBase64 }) {
|
|
9
25
|
const decodedConfig = decodeWorkbenchConfig(configBase64);
|
|
10
|
-
return (_jsx(WorkbenchProvider, { config: decodedConfig, children: _jsx(ThemeProvider, { children: _jsx(ResizableProvider, { children:
|
|
26
|
+
return (_jsx(WorkbenchProvider, { config: decodedConfig, children: _jsx(ThemeProvider, { children: _jsx(ResizableProvider, { children: _jsx(AppContent, {}) }) }) }));
|
|
11
27
|
}
|
|
12
28
|
export default App;
|
|
13
29
|
//# sourceMappingURL=App.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAMlE,SAAS,UAAU;IAClB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IAExD,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC;IAEhE,OAAO,CACN,eAAK,SAAS,EAAC,sBAAsB,aACpC,KAAC,MAAM,KAAG,EACV,MAAC,mBAAmB,IACnB,SAAS,EAAC,YAAY,EACtB,SAAS,EAAC,QAAQ,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBACnB,4CAA4C;oBAC5C,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;oBACrC,CAAC;gBACF,CAAC,aAED,KAAC,cAAc,IAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,YACjF,KAAC,IAAI,IAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAI,GAClE,EAChB,UAAU,IAAI,CACd,8BACC,KAAC,eAAe,IAAC,UAAU,SAAG,EAC9B,KAAC,cAAc,IAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,YACnE,KAAC,MAAM,IAAC,YAAY,EAAE,aAAa,GAAI,GACvB,IACf,CACH,IACoB,IACjB,CACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,YAAY,EAAY;IAC7C,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC1D,OAAO,CACN,KAAC,iBAAiB,IAAC,MAAM,EAAE,aAAa,YACvC,KAAC,aAAa,cACb,KAAC,iBAAiB,cACjB,KAAC,UAAU,KAAG,GACK,GACL,GACG,CACpB,CAAC;AACH,CAAC;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Button } from '../ui/button';
|
|
2
2
|
import { type ComponentProps, type HTMLAttributes } from 'react';
|
|
3
|
-
|
|
3
|
+
type SupportedLanguage = 'json' | 'javascript' | 'typescript';
|
|
4
4
|
type CodeBlockProps = HTMLAttributes<HTMLDivElement> & {
|
|
5
5
|
code: string;
|
|
6
|
-
language:
|
|
6
|
+
language: SupportedLanguage;
|
|
7
7
|
showLineNumbers?: boolean;
|
|
8
8
|
};
|
|
9
|
-
export declare function highlightCode(code: string, language:
|
|
9
|
+
export declare function highlightCode(code: string, language: SupportedLanguage, showLineNumbers?: boolean): Promise<readonly [string, string]>;
|
|
10
10
|
export declare const CodeBlock: ({ code, language, showLineNumbers, className, children, ...props }: CodeBlockProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export type CodeBlockCopyButtonProps = ComponentProps<typeof Button> & {
|
|
12
12
|
onCopy?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/code-block.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EACN,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKnB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/code-block.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EACN,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKnB,MAAM,OAAO,CAAC;AAkBf,KAAK,iBAAiB,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC;AAE9D,KAAK,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA6CF,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,UAAQ,GACrB,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBpC;AAED,eAAO,MAAM,SAAS,GAAI,oEAOvB,cAAc,4CA8ChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACtE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,6DAOjC,wBAAwB,4CAiC1B,CAAC"}
|
|
@@ -4,10 +4,31 @@ import { Button } from '../ui/button';
|
|
|
4
4
|
import { cn } from '../../lib/utils';
|
|
5
5
|
import { CheckIcon, CopyIcon } from 'lucide-react';
|
|
6
6
|
import { createContext, useContext, useEffect, useRef, useState, } from 'react';
|
|
7
|
-
import {
|
|
7
|
+
import { createHighlighterCore } from 'shiki/core';
|
|
8
|
+
import { createOnigurumaEngine } from 'shiki/engine/oniguruma';
|
|
9
|
+
import oneLightModule from '@shikijs/themes/one-light';
|
|
10
|
+
import oneDarkProModule from '@shikijs/themes/one-dark-pro';
|
|
11
|
+
import jsonLang from '@shikijs/langs/json';
|
|
12
|
+
import javascriptLang from '@shikijs/langs/javascript';
|
|
13
|
+
import typescriptLang from '@shikijs/langs/typescript';
|
|
14
|
+
// Extract theme objects from default exports
|
|
15
|
+
const oneLight = ('default' in oneLightModule ? oneLightModule.default : oneLightModule);
|
|
16
|
+
const oneDarkPro = ('default' in oneDarkProModule ? oneDarkProModule.default : oneDarkProModule);
|
|
8
17
|
const CodeBlockContext = createContext({
|
|
9
18
|
code: '',
|
|
10
19
|
});
|
|
20
|
+
// Initialize highlighter with only the languages and themes we need
|
|
21
|
+
let highlighterPromise = null;
|
|
22
|
+
function getHighlighter() {
|
|
23
|
+
if (!highlighterPromise) {
|
|
24
|
+
highlighterPromise = createHighlighterCore({
|
|
25
|
+
themes: [oneLight, oneDarkPro],
|
|
26
|
+
langs: [jsonLang, javascriptLang, typescriptLang],
|
|
27
|
+
engine: createOnigurumaEngine(import('shiki/wasm')),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return highlighterPromise;
|
|
31
|
+
}
|
|
11
32
|
const lineNumberTransformer = {
|
|
12
33
|
name: 'line-numbers',
|
|
13
34
|
line(node, line) {
|
|
@@ -29,19 +50,20 @@ const lineNumberTransformer = {
|
|
|
29
50
|
},
|
|
30
51
|
};
|
|
31
52
|
export async function highlightCode(code, language, showLineNumbers = false) {
|
|
53
|
+
const highlighter = await getHighlighter();
|
|
32
54
|
const transformers = showLineNumbers ? [lineNumberTransformer] : [];
|
|
33
|
-
return
|
|
34
|
-
codeToHtml(code, {
|
|
55
|
+
return [
|
|
56
|
+
highlighter.codeToHtml(code, {
|
|
35
57
|
lang: language,
|
|
36
|
-
theme: 'one-light',
|
|
58
|
+
theme: oneLight.name ?? 'one-light',
|
|
37
59
|
transformers,
|
|
38
60
|
}),
|
|
39
|
-
codeToHtml(code, {
|
|
61
|
+
highlighter.codeToHtml(code, {
|
|
40
62
|
lang: language,
|
|
41
|
-
theme: 'one-dark-pro',
|
|
63
|
+
theme: oneDarkPro.name ?? 'one-dark-pro',
|
|
42
64
|
transformers,
|
|
43
65
|
}),
|
|
44
|
-
]
|
|
66
|
+
];
|
|
45
67
|
}
|
|
46
68
|
export const CodeBlock = ({ code, language, showLineNumbers = false, className, children, ...props }) => {
|
|
47
69
|
const [html, setHtml] = useState('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/components/ai-elements/code-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAEN,aAAa,EAEb,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/components/ai-elements/code-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAEN,aAAa,EAEb,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,6CAA6C;AAC7C,MAAM,QAAQ,GAAG,CAChB,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAChD,CAAC;AACvB,MAAM,UAAU,GAAG,CAClB,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CACtD,CAAC;AAcvB,MAAM,gBAAgB,GAAG,aAAa,CAAuB;IAC5D,IAAI,EAAE,EAAE;CACR,CAAC,CAAC;AAEH,oEAAoE;AACpE,IAAI,kBAAkB,GAAoD,IAAI,CAAC;AAE/E,SAAS,cAAc;IACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzB,kBAAkB,GAAG,qBAAqB,CAAC;YAC1C,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC;YACjD,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACnD,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AAED,MAAM,qBAAqB,GAAqB;IAC/C,IAAI,EAAE,cAAc;IACpB,IAAI,CAAC,IAAa,EAAE,IAAY;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM;YACf,UAAU,EAAE;gBACX,SAAS,EAAE;oBACV,cAAc;oBACd,UAAU;oBACV,MAAM;oBACN,YAAY;oBACZ,aAAa;oBACb,uBAAuB;iBACvB;aACD;YACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;IACJ,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,IAAY,EACZ,QAA2B,EAC3B,eAAe,GAAG,KAAK;IAEvB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAuB,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,OAAO;QACN,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,WAAW;YACnC,YAAY;SACZ,CAAC;QACF,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,cAAc;YACxC,YAAY;SACZ,CAAC;KACO,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,eAAe,GAAG,KAAK,EACvB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACQ,EAAE,EAAE;IACpB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACd,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtC,OAAO,CACN,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YACzC,cACC,SAAS,EAAE,EAAE,CACZ,uFAAuF,EACvF,SAAS,CACT,KACG,KAAK,YAET,eAAK,SAAS,EAAC,UAAU,aACxB,cACC,SAAS,EAAC,yJAAyJ;wBACnK,0EAA0E;wBAC1E,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GACxC,EACF,cACC,SAAS,EAAC,+JAA+J;wBACzK,0EAA0E;wBAC1E,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAC5C,EACD,QAAQ,IAAI,CACZ,cAAK,SAAS,EAAC,gDAAgD,YAAE,QAAQ,GAAO,CAChF,IACI,GACD,GACqB,CAC5B,CAAC;AACH,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EACnC,MAAM,EACN,OAAO,EACP,OAAO,GAAG,IAAI,EACd,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACkB,EAAE,EAAE;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACpD,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,EAAE,EAAE,CAAC;YACX,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE7C,OAAO,CACN,KAAC,MAAM,IACN,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EACpC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,OAAO,KACX,KAAK,YAER,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACvB,CACT,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import '../../styles.css';
|
|
2
1
|
export interface ChatProps {
|
|
3
2
|
className?: string;
|
|
3
|
+
schemaOpen: boolean;
|
|
4
|
+
onSchemaToggle: () => void;
|
|
4
5
|
}
|
|
5
6
|
/**
|
|
6
7
|
* Chat component - conversation and input area (everything except header)
|
|
7
8
|
* Must be used within WorkbenchProvider
|
|
8
9
|
*/
|
|
9
|
-
export declare function Chat({ className: _className }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function Chat({ className: _className, schemaOpen, onSchemaToggle }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
export default Chat;
|
|
11
12
|
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/components/internal/Chat.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/components/internal/Chat.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,SAAS,2CAmKpF;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
2
|
+
/* Styles should be imported in app's CSS file (e.g., globals.css) */
|
|
3
|
+
/* import '../../styles.css'; */
|
|
3
4
|
import { useState } from 'react';
|
|
4
5
|
import { ChevronRight, Copy, Loader, RefreshCcw } from 'lucide-react';
|
|
5
6
|
import { Action, Actions } from '../ai-elements/actions';
|
|
@@ -10,16 +11,14 @@ import { Shimmer } from '../ai-elements/shimmer';
|
|
|
10
11
|
import { cn } from '../../lib/utils';
|
|
11
12
|
import { useWorkbench } from './WorkbenchProvider';
|
|
12
13
|
import { useLogger } from '../../hooks/useLogger';
|
|
13
|
-
import { Schema } from './Schema';
|
|
14
14
|
/**
|
|
15
15
|
* Chat component - conversation and input area (everything except header)
|
|
16
16
|
* Must be used within WorkbenchProvider
|
|
17
17
|
*/
|
|
18
|
-
export function Chat({ className: _className }) {
|
|
18
|
+
export function Chat({ className: _className, schemaOpen, onSchemaToggle }) {
|
|
19
19
|
const logger = useLogger('Chat');
|
|
20
20
|
const { agents, suggestions, messages, selectedAgent, setSelectedAgent, isLoading, submitMessage, } = useWorkbench();
|
|
21
21
|
const [value, setValue] = useState('');
|
|
22
|
-
const [schemaOpen, setSchemaOpen] = useState(false);
|
|
23
22
|
const handleSubmit = async () => {
|
|
24
23
|
logger.debug('🎯 Chat handleSubmit - selectedAgent:', selectedAgent, 'value:', value);
|
|
25
24
|
const selectedAgentData = Object.values(agents).find((agent) => agent.metadata.agentId === selectedAgent);
|
|
@@ -37,26 +36,26 @@ export function Chat({ className: _className }) {
|
|
|
37
36
|
await submitMessage(value);
|
|
38
37
|
setValue('');
|
|
39
38
|
};
|
|
40
|
-
return (_jsxs("div", { className: "
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
39
|
+
return (_jsxs("div", { className: "flex flex-col h-full overflow-hidden", children: [_jsxs(Conversation, { className: "flex-1 overflow-y-auto", children: [_jsx(ConversationContent, { className: "pb-0", children: messages.map((message) => {
|
|
40
|
+
const { role, parts, id } = message;
|
|
41
|
+
const isStreaming = parts.some((part) => part.type === 'text' && part.state === 'streaming');
|
|
42
|
+
const tokens = 'tokens' in message ? message.tokens : undefined;
|
|
43
|
+
const duration = 'duration' in message
|
|
44
|
+
? message.duration
|
|
45
|
+
: undefined;
|
|
46
|
+
return (_jsxs("div", { className: "mb-2", children: [role === 'assistant' && (_jsxs("div", { className: cn('w-fit flex items-center mb-2 text-muted-foreground text-sm transition-colors', !isStreaming && 'hover:text-foreground cursor-pointer'), children: [_jsx(Loader, { className: cn('size-4 transition-all', isStreaming || isLoading ? 'animate-spin mr-2' : 'w-0 mr-2.5') }), isStreaming || isLoading ? (_jsx(Shimmer, { duration: 1, children: "Running..." })) : (_jsxs(_Fragment, { children: [duration && (_jsxs(_Fragment, { children: ["Ran for", _jsx("span", { className: "mx-1", children: duration })] })), duration && tokens && ` and consumed ${tokens} tokens`, (duration || tokens) && _jsx(ChevronRight, { className: "size-4" })] }))] })), (role === 'user' || !(isStreaming || isLoading)) && (_jsxs(_Fragment, { children: [_jsx(Message, { from: role, className: "p-0", children: _jsx(MessageContent, { children: parts.map((part, index) => {
|
|
47
|
+
switch (part.type) {
|
|
48
|
+
case 'text':
|
|
49
|
+
return (_jsx("div", { children: part.text || '' }, `${id}-${part.text}-${index}`));
|
|
50
|
+
}
|
|
51
|
+
}) }) }, id), _jsxs(Actions, { className: cn('mt-1 gap-0', role === 'user' && 'justify-end'), children: [role === 'user' && (_jsx(Action, { label: "Retry", className: "size-8 hover:bg-transparent!", onClick: () => setValue(parts
|
|
52
|
+
.filter((part) => part.type === 'text')
|
|
53
|
+
.map((part) => part.text)
|
|
54
|
+
.join('')), children: _jsx(RefreshCcw, { className: "size-4" }) })), _jsx(Action, { onClick: () => navigator.clipboard.writeText(parts
|
|
55
|
+
.filter((part) => part.type === 'text')
|
|
56
|
+
.map((part) => part.text)
|
|
57
|
+
.join('')), label: "Copy", className: "size-8 hover:bg-transparent!", children: _jsx(Copy, { className: "size-4" }) })] })] }))] }, id));
|
|
58
|
+
}) }), _jsx(ConversationScrollButton, {})] }), _jsx(InputSection, { value: value, onChange: setValue, onSubmit: handleSubmit, isLoading: isLoading, agents: agents, selectedAgent: selectedAgent, setSelectedAgent: setSelectedAgent, suggestions: suggestions, isSchemaOpen: schemaOpen, onSchemaToggle: onSchemaToggle })] }));
|
|
60
59
|
}
|
|
61
60
|
export default Chat;
|
|
62
61
|
//# sourceMappingURL=Chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../../src/components/internal/Chat.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../../src/components/internal/Chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ export interface InputSectionProps {
|
|
|
8
8
|
selectedAgent: string;
|
|
9
9
|
setSelectedAgent: (agentId: string) => void;
|
|
10
10
|
suggestions: string[];
|
|
11
|
-
|
|
11
|
+
isSchemaOpen: boolean;
|
|
12
|
+
onSchemaToggle: () => void;
|
|
12
13
|
}
|
|
13
|
-
export declare function InputSection({ value, onChange, onSubmit, isLoading, agents, selectedAgent, setSelectedAgent, suggestions,
|
|
14
|
+
export declare function InputSection({ value, onChange, onSubmit, isLoading, agents, selectedAgent, setSelectedAgent, suggestions, isSchemaOpen, onSchemaToggle, }: InputSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
//# sourceMappingURL=InputSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputSection.d.ts","sourceRoot":"","sources":["../../../src/components/internal/InputSection.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"InputSection.d.ts","sourceRoot":"","sources":["../../../src/components/internal/InputSection.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC3B;AAcD,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,GACd,EAAE,iBAAiB,2CAgTnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useState } from 'react';
|
|
2
|
+
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import { CheckIcon, ChevronsUpDownIcon, FileJson, SendIcon, Loader2Icon, Sparkles, } from 'lucide-react';
|
|
4
4
|
import { MonacoJsonEditor } from './MonacoJsonEditor';
|
|
5
5
|
import { PromptInput, PromptInputBody, PromptInputFooter, PromptInputTextarea, } from '../ai-elements/prompt-input';
|
|
@@ -22,9 +22,11 @@ function isSchemaRootObject(schemaJson) {
|
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
export function InputSection({ value, onChange, onSubmit, isLoading, agents, selectedAgent, setSelectedAgent, suggestions,
|
|
25
|
+
export function InputSection({ value, onChange, onSubmit, isLoading, agents, selectedAgent, setSelectedAgent, suggestions, isSchemaOpen, onSchemaToggle, }) {
|
|
26
26
|
const logger = useLogger('InputSection');
|
|
27
27
|
const [agentSelectOpen, setAgentSelectOpen] = useState(false);
|
|
28
|
+
const [isValidInput, setIsValidInput] = useState(true);
|
|
29
|
+
const [monacoHasErrors, setMonacoHasErrors] = useState(null);
|
|
28
30
|
const selectedAgentData = Object.values(agents).find((agent) => agent.metadata.agentId === selectedAgent);
|
|
29
31
|
// Determine input type for switch case
|
|
30
32
|
const inputType = useMemo(() => {
|
|
@@ -40,8 +42,58 @@ export function InputSection({ value, onChange, onSubmit, isLoading, agents, sel
|
|
|
40
42
|
return 'string'; // String schema
|
|
41
43
|
}
|
|
42
44
|
return 'none'; // Default to none for other types
|
|
43
|
-
}, [selectedAgentData?.schema.input?.json]);
|
|
45
|
+
}, [selectedAgentData?.schema.input?.json, logger]);
|
|
44
46
|
const isObjectSchema = inputType === 'object';
|
|
47
|
+
// Validate JSON input against schema using zod (fallback for non-Monaco cases)
|
|
48
|
+
const validateInput = useCallback((inputValue, schema) => {
|
|
49
|
+
if (!schema || !isObjectSchema || !inputValue.trim()) {
|
|
50
|
+
return true; // No validation needed or empty input
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
// Parse JSON first
|
|
54
|
+
const parsedJson = JSON.parse(inputValue);
|
|
55
|
+
// Convert schema to zod and validate
|
|
56
|
+
const schemaObject = typeof schema === 'string' ? JSON.parse(schema) : schema;
|
|
57
|
+
const zodSchema = convertJsonSchemaToZod(schemaObject);
|
|
58
|
+
// Validate with zod
|
|
59
|
+
const result = zodSchema.safeParse(parsedJson);
|
|
60
|
+
return result.success;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// JSON parse error or schema validation error
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}, [isObjectSchema]);
|
|
67
|
+
// Reset Monaco error state when schema changes
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (isObjectSchema) {
|
|
70
|
+
setMonacoHasErrors(null);
|
|
71
|
+
}
|
|
72
|
+
}, [selectedAgentData?.schema?.input?.json, isObjectSchema]);
|
|
73
|
+
// Update validation state - use Monaco errors if available, otherwise fall back to zod validation
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (isObjectSchema) {
|
|
76
|
+
if (monacoHasErrors !== null) {
|
|
77
|
+
// Monaco is handling validation, use its error state
|
|
78
|
+
setIsValidInput(!monacoHasErrors);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Monaco hasn't reported yet, use zod validation as fallback
|
|
82
|
+
const isValid = validateInput(value, selectedAgentData?.schema?.input?.json);
|
|
83
|
+
setIsValidInput(isValid);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// No schema or not object schema
|
|
88
|
+
setIsValidInput(true);
|
|
89
|
+
}
|
|
90
|
+
}, [
|
|
91
|
+
value,
|
|
92
|
+
selectedAgentData?.schema?.input?.json,
|
|
93
|
+
validateInput,
|
|
94
|
+
isObjectSchema,
|
|
95
|
+
monacoHasErrors,
|
|
96
|
+
]);
|
|
45
97
|
const handleGenerateSample = () => {
|
|
46
98
|
if (!selectedAgentData?.schema.input?.json || !isObjectSchema)
|
|
47
99
|
return;
|
|
@@ -57,6 +109,16 @@ export function InputSection({ value, onChange, onSubmit, isLoading, agents, sel
|
|
|
57
109
|
console.error('Failed to generate sample JSON:', error);
|
|
58
110
|
}
|
|
59
111
|
};
|
|
112
|
+
// Memoized submit disabled condition for readability
|
|
113
|
+
const isSubmitDisabled = useMemo(() => {
|
|
114
|
+
if (isLoading)
|
|
115
|
+
return true;
|
|
116
|
+
if (inputType === 'string' && !value.trim())
|
|
117
|
+
return true;
|
|
118
|
+
if (inputType === 'object' && (!isValidInput || !value.trim()))
|
|
119
|
+
return true;
|
|
120
|
+
return false;
|
|
121
|
+
}, [isLoading, inputType, value, isValidInput]);
|
|
60
122
|
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center gap-2 py-2 px-3", children: [_jsxs(Popover, { open: agentSelectOpen, onOpenChange: setAgentSelectOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { "aria-expanded": agentSelectOpen, className: "font-normal bg-transparent dark:bg-transparent", variant: "outline", size: "sm", children: [Object.values(agents).find((agent) => agent.metadata.agentId === selectedAgent)?.metadata.name || 'Select agent', _jsx(ChevronsUpDownIcon, { className: "size-4 shrink-0 opacity-50" })] }) }), _jsx(PopoverContent, { className: "w-fit p-0", children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: "Search agents..." }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No agents found." }), _jsx(CommandGroup, { children: Object.values(agents)
|
|
61
123
|
.sort((a, b) => a.metadata.name.localeCompare(b.metadata.name))
|
|
62
124
|
.map((agent) => {
|
|
@@ -73,16 +135,16 @@ export function InputSection({ value, onChange, onSubmit, isLoading, agents, sel
|
|
|
73
135
|
}
|
|
74
136
|
setAgentSelectOpen(false);
|
|
75
137
|
}, children: [_jsx(CheckIcon, { className: cn('size-4 text-green-500', isSelected ? 'opacity-100' : 'opacity-0') }), agent.metadata.name] }, agent.metadata.agentId));
|
|
76
|
-
}) })] })] }) })] }), suggestions.length > 0 && (_jsxs(Select, { onValueChange: (value) => onChange(value), children: [_jsx(SelectTrigger, { size: "sm", className: "ml-auto bg-transparent dark:bg-transparent text-foreground!", children: "Suggestions" }), _jsx(SelectContent, { className: "text-sm", side: "top", align: "end", children: suggestions.map((suggestion) => (_jsx(SelectItem, { value: suggestion, children: suggestion }, suggestion))) })] })), isObjectSchema && (_jsxs(Button, { "aria-label": "Generate Sample JSON", size: "sm", variant: "outline", className: "bg-none font-normal", onClick: handleGenerateSample, children: [_jsx(Sparkles, { className: "size-4" }), " Sample"] })), _jsxs(Button, { "aria-label":
|
|
138
|
+
}) })] })] }) })] }), suggestions.length > 0 && (_jsxs(Select, { onValueChange: (value) => onChange(value), children: [_jsx(SelectTrigger, { size: "sm", className: "ml-auto bg-transparent dark:bg-transparent text-foreground!", children: "Suggestions" }), _jsx(SelectContent, { className: "text-sm", side: "top", align: "end", children: suggestions.map((suggestion) => (_jsx(SelectItem, { value: suggestion, children: suggestion }, suggestion))) })] })), isObjectSchema && (_jsxs(Button, { "aria-label": "Generate Sample JSON", size: "sm", variant: "outline", className: "bg-none font-normal", onClick: handleGenerateSample, children: [_jsx(Sparkles, { className: "size-4" }), " Sample"] })), _jsxs(Button, { "aria-label": isSchemaOpen ? 'Hide Schema' : 'View Schema', size: "sm", variant: isSchemaOpen ? 'default' : 'outline', className: cn('font-normal', isSchemaOpen ? 'bg-primary' : 'bg-none'), onClick: onSchemaToggle, children: [_jsx(FileJson, { className: "size-4" }), " Schema"] })] }), _jsxs(PromptInput, { onSubmit: onSubmit, className: "px-3 pb-3", children: [_jsx(PromptInputBody, { children: (() => {
|
|
77
139
|
switch (inputType) {
|
|
78
140
|
case 'object':
|
|
79
|
-
return (_jsx(MonacoJsonEditor, { value: value, onChange: onChange, schema: selectedAgentData?.schema.input?.json, schemaUri: `agentuity://schema/${selectedAgentData?.metadata.id}/input
|
|
141
|
+
return (_jsx(MonacoJsonEditor, { value: value, onChange: onChange, schema: selectedAgentData?.schema.input?.json, schemaUri: `agentuity://schema/${selectedAgentData?.metadata.id}/input`, "aria-invalid": !isValidInput, onValidationChange: setMonacoHasErrors }));
|
|
80
142
|
case 'string':
|
|
81
143
|
return (_jsx(PromptInputTextarea, { placeholder: "Enter a message to send...", value: value, onChange: (e) => onChange(e.target.value) }));
|
|
82
144
|
default:
|
|
83
145
|
return (_jsxs("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center ", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: _jsxs("span", { className: "font-medium", children: ["This agent has no input schema.", ' '] }) }), _jsxs(Button, { "aria-label": "Run Agent", size: "sm", variant: "default", disabled: isLoading, onClick: onSubmit, className: "mt-2", children: [isLoading ? (_jsx(Loader2Icon, { className: "size-4 animate-spin mr-2" })) : (_jsx(SendIcon, { className: "size-4 mr-2" })), "Run Agent"] })] }));
|
|
84
146
|
}
|
|
85
|
-
})() }), _jsx(PromptInputFooter, { children: inputType !== 'none' && (_jsx(Button, { "aria-label": "Submit", size: "icon", variant: "default", disabled:
|
|
147
|
+
})() }), _jsx(PromptInputFooter, { children: inputType !== 'none' && (_jsx(Button, { "aria-label": "Submit", size: "icon", variant: "default", disabled: isSubmitDisabled, onClick: () => {
|
|
86
148
|
logger.debug('🔥 Submit button clicked! inputType:', inputType, 'value:', value);
|
|
87
149
|
onSubmit();
|
|
88
150
|
}, className: "ml-auto", children: isLoading ? (_jsx(Loader2Icon, { className: "size-4 animate-spin" })) : (_jsx(SendIcon, { className: "size-4" })) })) })] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputSection.js","sourceRoot":"","sources":["../../../src/components/internal/InputSection.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"InputSection.js","sourceRoot":"","sources":["../../../src/components/internal/InputSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ interface MonacoJsonEditorProps {
|
|
|
5
5
|
schema?: JSONSchema7;
|
|
6
6
|
schemaUri?: string;
|
|
7
7
|
className?: string;
|
|
8
|
+
'aria-invalid'?: boolean;
|
|
9
|
+
onValidationChange?: (hasErrors: boolean) => void;
|
|
8
10
|
}
|
|
9
|
-
export declare function MonacoJsonEditor({ value, onChange, schema, schemaUri, className, }: MonacoJsonEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function MonacoJsonEditor({ value, onChange, schema, schemaUri, className, 'aria-invalid': ariaInvalid, onValidationChange, }: MonacoJsonEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=MonacoJsonEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoJsonEditor.d.ts","sourceRoot":"","sources":["../../../src/components/internal/MonacoJsonEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MonacoJsonEditor.d.ts","sourceRoot":"","sources":["../../../src/components/internal/MonacoJsonEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAMtC,UAAU,qBAAqB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAwFD,wBAAgB,gBAAgB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAwC,EACxC,SAAc,EACd,cAAc,EAAE,WAAW,EAC3B,kBAAkB,GAClB,EAAE,qBAAqB,2CA+OvB"}
|