flowstudio 0.0.29 → 0.0.31
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/ai_creator.d.ts +1 -1
- package/dist/ai_creator.js +32 -128
- package/dist/ai_creator.js.map +1 -1
- package/dist/api_calls.d.ts +2 -0
- package/dist/api_calls.js +148 -0
- package/dist/api_calls.js.map +1 -0
- package/dist/app_analytics.d.ts +1 -1
- package/dist/app_analytics.js +75 -69
- package/dist/app_analytics.js.map +1 -1
- package/dist/app_details.d.ts +1 -1
- package/dist/app_details.js +25 -24
- package/dist/app_details.js.map +1 -1
- package/dist/app_layout.d.ts +2 -2
- package/dist/app_layout.js +4 -4
- package/dist/app_layout.js.map +1 -1
- package/dist/app_settings.d.ts +1 -1
- package/dist/app_settings.js +74 -7
- package/dist/app_settings.js.map +1 -1
- package/dist/bottom_left_panel.d.ts +1 -0
- package/dist/bottom_left_panel.js +8 -0
- package/dist/bottom_left_panel.js.map +1 -0
- package/dist/code.d.ts +1 -1
- package/dist/code.js +6 -2
- package/dist/code.js.map +1 -1
- package/dist/components/ftable.d.ts +13 -0
- package/dist/components/ftable.js +65 -0
- package/dist/components/ftable.js.map +1 -0
- package/dist/components/gsheet/index.d.ts +1 -0
- package/dist/components/gsheet/index.js +21 -0
- package/dist/components/gsheet/index.js.map +1 -0
- package/dist/components/mention_input/index.d.ts +18 -1
- package/dist/components/mention_input/index.js +203 -111
- package/dist/components/mention_input/index.js.map +1 -1
- package/dist/components/paginator_table.d.ts +1 -1
- package/dist/components/paginator_table.js +2 -2
- package/dist/components/paginator_table.js.map +1 -1
- package/dist/components/sheet/index.d.ts +1 -1
- package/dist/components/sheet/index.js +4 -2
- package/dist/components/sheet/index.js.map +1 -1
- package/dist/components/ui/alert.d.ts +8 -0
- package/dist/components/ui/alert.js +23 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/badge.js +21 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.js +35 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.js +17 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +19 -0
- package/dist/components/ui/dialog.js +33 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/dropdown-menu.js +46 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/form.d.ts +24 -0
- package/dist/components/ui/form.js +61 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input-group.js +65 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/input.js +9 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.js +10 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/popover.js +23 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/scroll-area.js +12 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/select.js +37 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/separator.js +8 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +13 -0
- package/dist/components/ui/sheet.js +93 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/sonner.js +42 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +7 -0
- package/dist/components/ui/spinner.js +17 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/switch.js +8 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/table.js +21 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/tabs.js +13 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/textarea.js +9 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/components/ui/tooltip.js +11 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/constants.js +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js +2 -2
- package/dist/context.js.map +1 -1
- package/dist/envs.d.ts +2 -2
- package/dist/envs.js +2 -150
- package/dist/envs.js.map +1 -1
- package/dist/functions.d.ts +2 -5
- package/dist/functions.js +2 -210
- package/dist/functions.js.map +1 -1
- package/dist/globals.css +253 -0
- package/dist/home.d.ts +1 -1
- package/dist/home.js +24 -14
- package/dist/home.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +57 -16
- package/dist/index.js.map +1 -1
- package/dist/lib/pane-context.d.ts +10 -0
- package/dist/lib/pane-context.js +21 -0
- package/dist/lib/pane-context.js.map +1 -0
- package/dist/lib/toast.d.ts +12 -0
- package/dist/lib/toast.js +36 -0
- package/dist/lib/toast.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/new_project.d.ts +1 -1
- package/dist/new_project.js +60 -41
- package/dist/new_project.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.js +157 -39
- package/dist/node.js.map +1 -1
- package/dist/project_widget.d.ts +2 -1
- package/dist/project_widget.js +6 -2
- package/dist/project_widget.js.map +1 -1
- package/dist/secrets.d.ts +2 -0
- package/dist/secrets.js +129 -0
- package/dist/secrets.js.map +1 -0
- package/dist/simulator.d.ts +1 -1
- package/dist/simulator.js +36 -33
- package/dist/simulator.js.map +1 -1
- package/dist/studio_pane.d.ts +1 -1
- package/dist/studio_pane.js +281 -56
- package/dist/studio_pane.js.map +1 -1
- package/dist/studio_pane_old.d.ts +1 -1
- package/dist/studio_pane_old.js +2 -3
- package/dist/studio_pane_old.js.map +1 -1
- package/dist/studio_pane_old_new.d.ts +1 -1
- package/dist/studio_pane_old_new.js +2 -3
- package/dist/studio_pane_old_new.js.map +1 -1
- package/dist/styles/globals.css +59 -0
- package/dist/styles.css +2 -0
- package/dist/top_center_panel.d.ts +1 -1
- package/dist/top_center_panel.js +4 -3
- package/dist/top_center_panel.js.map +1 -1
- package/dist/top_left_panel.d.ts +1 -1
- package/dist/top_left_panel.js +7 -41
- package/dist/top_left_panel.js.map +1 -1
- package/dist/top_right_panel.d.ts +1 -1
- package/dist/top_right_panel.js +12 -13
- package/dist/top_right_panel.js.map +1 -1
- package/dist/triggers.d.ts +2 -2
- package/dist/triggers.js +57 -37
- package/dist/triggers.js.map +1 -1
- package/dist/zustand/store.d.ts +319 -3
- package/package.json +51 -24
- package/src/globals.css +253 -0
- package/src/styles/globals.css +59 -0
- package/dist/components/combo_box/index.d.ts +0 -2
- package/dist/components/combo_box/index.js +0 -150
- package/dist/components/combo_box/index.js.map +0 -1
- package/dist/components/combo_box/style.css +0 -10
- package/dist/components/date_picker/index.d.ts +0 -1
- package/dist/components/date_picker/index.js +0 -46
- package/dist/components/date_picker/index.js.map +0 -1
- package/dist/components/date_picker/style.css +0 -204
- package/dist/components/gtable.d.ts +0 -15
- package/dist/components/gtable.js +0 -122
- package/dist/components/gtable.js.map +0 -1
- package/src/components/combo_box/style.css +0 -10
- package/src/components/date_picker/style.css +0 -204
package/dist/ai_creator.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function AICreator({ projectId }: any): import("react
|
|
1
|
+
export default function AICreator({ projectId }: any): import("react").JSX.Element;
|
package/dist/ai_creator.js
CHANGED
|
@@ -1,140 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Button, Card, Flex, TextField, Text, Spinner, Popover, Tooltip } from "@radix-ui/themes";
|
|
4
|
-
import { useForm } from "react-hook-form";
|
|
3
|
+
import { useState } from "react";
|
|
5
4
|
import * as Form from "@radix-ui/react-form";
|
|
6
|
-
import {
|
|
5
|
+
import { useForm } from "react-hook-form";
|
|
6
|
+
import { yupResolver } from "@hookform/resolvers/yup";
|
|
7
7
|
import * as Yup from "yup";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
8
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "@osanim/shared";
|
|
9
|
+
import { Tooltip, TooltipContent, TooltipTrigger, } from "@osanim/shared";
|
|
10
|
+
import { Button } from "@osanim/shared";
|
|
11
|
+
import { Input } from "@osanim/shared";
|
|
12
|
+
import { ScrollArea } from "@osanim/shared";
|
|
13
|
+
import { SendHorizonalIcon, Plus, Mic, MessageSquare, } from "lucide-react";
|
|
12
14
|
export default function AICreator({ projectId }) {
|
|
13
|
-
|
|
14
|
-
const [deploymentType, setDeploymentType] = useState('draft');
|
|
15
|
-
const [userType, setUserType] = useState('normal');
|
|
16
|
-
const [flowMessage, setFlowMessage] = useState('');
|
|
17
|
-
const [refreshing, setRefreshing] = useState(false);
|
|
18
|
-
// const [description, setDescription] = useState('');
|
|
15
|
+
const [messages, setMessages] = useState([]);
|
|
19
16
|
const [isGenerating, setIsGenerating] = useState(false);
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
// const aiEndpoint = ``
|
|
23
|
-
// const NODE_TYPES = ''
|
|
24
|
-
const AI_API_KEY = '';
|
|
25
|
-
async function generateFlowFromDescription(description) {
|
|
26
|
-
const prompt = `
|
|
27
|
-
Convert this flow description into nodes and edges:
|
|
28
|
-
"${description}"
|
|
29
|
-
|
|
30
|
-
Available node types: ${JSON.stringify(nodeTypes)}
|
|
31
|
-
Respond with JSON format: {nodes: [], edges: []}
|
|
32
|
-
`;
|
|
33
|
-
const response = await fetch('https://api.openai.com/v1/chat/completions', {
|
|
34
|
-
method: 'POST',
|
|
35
|
-
headers: {
|
|
36
|
-
'Content-Type': 'application/json',
|
|
37
|
-
'Authorization': `Bearer ${AI_API_KEY}`
|
|
38
|
-
},
|
|
39
|
-
body: JSON.stringify({
|
|
40
|
-
model: "gpt-4",
|
|
41
|
-
messages: [{ role: "user", content: prompt }],
|
|
42
|
-
temperature: 0.7
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
return parseAIResponse(await response.json());
|
|
46
|
-
}
|
|
47
|
-
const ussdFormSchema = Yup.object().shape({
|
|
48
|
-
query: Yup.string().required('required')
|
|
17
|
+
const schema = Yup.object().shape({
|
|
18
|
+
query: Yup.string().required(),
|
|
49
19
|
});
|
|
50
|
-
const { register
|
|
51
|
-
resolver: yupResolver(
|
|
52
|
-
defaultValues: {}
|
|
20
|
+
const { register, handleSubmit, reset, formState: { errors, isSubmitting }, } = useForm({
|
|
21
|
+
resolver: yupResolver(schema),
|
|
53
22
|
});
|
|
54
|
-
const
|
|
23
|
+
const handleSend = async (data) => {
|
|
24
|
+
const userMessage = { role: "user", content: data.query };
|
|
25
|
+
setMessages((prev) => [...prev, userMessage]);
|
|
55
26
|
setIsGenerating(true);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
27
|
+
// 👉 Call your existing AI logic here
|
|
28
|
+
// const flow = await generateFlowFromDescription(data.query)
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
setMessages((prev) => [
|
|
31
|
+
...prev,
|
|
32
|
+
{ role: "ai", content: "Generated flow successfully 🚀" },
|
|
33
|
+
]);
|
|
63
34
|
setIsGenerating(false);
|
|
64
|
-
}
|
|
35
|
+
}, 1000);
|
|
36
|
+
reset();
|
|
65
37
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
throw new Error('Empty AI response');
|
|
72
|
-
const parsed = JSON.parse(content);
|
|
73
|
-
// Validate nodes
|
|
74
|
-
if (!Array.isArray(parsed.nodes)) {
|
|
75
|
-
throw new Error('Nodes must be an array');
|
|
76
|
-
}
|
|
77
|
-
// Calculate positions to avoid overlap
|
|
78
|
-
const existingXPositions = existingNodes.map((n) => n.position.x);
|
|
79
|
-
const maxX = existingXPositions.length > 0 ? Math.max(...existingXPositions) : 0;
|
|
80
|
-
const startX = maxX + 200; // Start new nodes to the right
|
|
81
|
-
// Process nodes
|
|
82
|
-
const nodes = parsed.nodes.map((node, index) => {
|
|
83
|
-
if (!node.id)
|
|
84
|
-
throw new Error('Node missing ID');
|
|
85
|
-
return {
|
|
86
|
-
id: String(node.id),
|
|
87
|
-
type: validateNodeType(node.type), // Ensure type is valid
|
|
88
|
-
data: {
|
|
89
|
-
label: node.label || `Step ${index + 1}`,
|
|
90
|
-
...(node.data || {}) // Preserve additional data
|
|
91
|
-
},
|
|
92
|
-
position: node.position || {
|
|
93
|
-
x: startX + (index * 200),
|
|
94
|
-
y: (index % 3) * 100 // Stagger vertically
|
|
95
|
-
},
|
|
96
|
-
...(node.style && { style: node.style })
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
// Process edges
|
|
100
|
-
const edges = (parsed.edges || []).map((edge, index) => {
|
|
101
|
-
if (!edge.source || !edge.target) {
|
|
102
|
-
throw new Error('Edge missing source or target');
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
id: edge.id || `edge-${edge.source}-${edge.target}-${index}`,
|
|
106
|
-
source: String(edge.source),
|
|
107
|
-
target: String(edge.target),
|
|
108
|
-
label: edge.label || '',
|
|
109
|
-
type: edge.type || 'default',
|
|
110
|
-
...(edge.animated && { animated: true })
|
|
111
|
-
};
|
|
112
|
-
});
|
|
113
|
-
return { nodes, edges };
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
console.log('AI Response Parsing Error:', error);
|
|
117
|
-
// Fallback UI that shows the error to the user
|
|
118
|
-
return {
|
|
119
|
-
nodes: [{
|
|
120
|
-
id: 'error-node',
|
|
121
|
-
type: 'error',
|
|
122
|
-
data: {
|
|
123
|
-
label: 'Error Generating Flow',
|
|
124
|
-
error: error === null || error === void 0 ? void 0 : error.message
|
|
125
|
-
},
|
|
126
|
-
position: { x: 0, y: 0 }
|
|
127
|
-
}],
|
|
128
|
-
edges: [],
|
|
129
|
-
error: error.message
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Helper function to validate node types
|
|
134
|
-
function validateNodeType(type) {
|
|
135
|
-
const validTypes = ['input', 'output', 'default', 'custom']; // Add your types
|
|
136
|
-
return validTypes.includes(type) ? type : 'default';
|
|
137
|
-
}
|
|
138
|
-
return (_jsxs(Popover.Root, { children: [_jsx(Tooltip, { content: 'AI Mode - Coming Soon', side: 'right', children: _jsx(Popover.Trigger, { children: _jsx(Button, { disabled: true, size: '1', highContrast: true, children: "AI" }) }) }), _jsx(Popover.Content, { side: 'right', sideOffset: 10, children: _jsxs(Flex, { direction: 'column', gap: '3', children: [_jsx(Flex, { justify: 'between', children: _jsx(Text, { weight: 'bold', children: "AI App Designer" }) }), _jsx(Card, { style: { height: 'auto', minHeight: '200px', width: '100%', maxWidth: '300px' }, children: _jsx(Text, { wrap: 'wrap', color: 'gray', size: '1', children: parse(flowMessage) || 'No message' }) }), _jsx(Form.Root, { onSubmit: handleFormSubmit(handleSubmit), noValidate: true, children: _jsxs(Form.Field, { name: 'query', serverInvalid: errors.query != null, children: [_jsx(TextField.Root, { type: "text", ...registerInput('query'), id: "query", autoComplete: "off", placeholder: 'Ask AI anything', autoFocus: true, children: _jsx(TextField.Slot, { side: 'right', pr: '1', children: _jsxs(Button, { size: '1', highContrast: true, disabled: true, type: "submit", children: [_jsx(Spinner, { loading: isSubmitting }), !isSubmitting && _jsx(SendHorizonalIcon, { size: '15' })] }) }) }), ((_a = errors.query) === null || _a === void 0 ? void 0 : _a.message) && _jsx(Form.Message, { children: (_b = errors.query) === null || _b === void 0 ? void 0 : _b.message })] }) })] }) })] }));
|
|
38
|
+
return (_jsxs(Popover, { children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { size: "xs", variant: "secondary", className: "text-xs", children: "AI Prompting" }) }) }), _jsx(TooltipContent, { side: "right", children: "AI Mode" })] }), _jsx(PopoverContent, { side: "top", align: "start", className: "w-[380px] p-0 overflow-hidden", children: _jsxs("div", { className: "flex flex-col h-[500px]", children: [_jsx("div", { className: "p-3 border-b font-semibold", children: "AI App Designer" }), _jsxs(ScrollArea, { className: "flex-1 p-3 space-y-3", children: [messages.length === 0 && (_jsx("p", { className: "text-xs text-muted-foreground", children: "Ask AI to generate your USSD flow..." })), messages.map((msg, i) => (_jsx("div", { className: `flex ${msg.role === "user"
|
|
39
|
+
? "justify-end"
|
|
40
|
+
: "justify-start"}`, children: _jsx("div", { className: `max-w-[75%] rounded-xl px-3 py-2 text-sm ${msg.role === "user"
|
|
41
|
+
? "bg-primary text-white"
|
|
42
|
+
: "bg-muted"}`, children: msg.content }) }, i)))] }), _jsx("div", { className: "p-2 border-t", children: _jsxs(Form.Root, { onSubmit: handleSubmit(handleSend), children: [_jsx("div", { className: "p-[1.5px] rounded-2xl bg-gradient-to-r from-pink-500 via-purple-500 to-blue-500", children: _jsxs("div", { className: "relative rounded-2xl bg-[#1f1f1f] text-white", children: [_jsx(Input, { ...register("query"), placeholder: "Ask AI to create a USSD flow...", className: "bg-transparent border-none outline-0 text-white placeholder:text-gray-400 pr-24 h-12" }), _jsx("div", { className: "absolute left-2 top-1/2 -translate-y-1/2", children: _jsx(Button, { size: "icon", variant: "ghost", children: _jsx(Plus, { size: 16 }) }) }), _jsxs("div", { className: "absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1", children: [_jsx(Button, { size: "icon", variant: "ghost", children: _jsx(MessageSquare, { size: 16 }) }), _jsx(Button, { size: "icon", variant: "ghost", children: _jsx(Mic, { size: 10 }) }), _jsx(Button, { size: "sm", type: "submit", disabled: isSubmitting, className: "rounded-full", children: _jsx(SendHorizonalIcon, { size: 10 }) })] })] }) }), errors.query && (_jsx("p", { className: "text-xs text-red-500 mt-1", children: errors.query.message }))] }) })] }) })] }));
|
|
139
43
|
}
|
|
140
44
|
//# sourceMappingURL=ai_creator.js.map
|
package/dist/ai_creator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai_creator.js","sourceRoot":"","sources":["../src/ai_creator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai_creator.js","sourceRoot":"","sources":["../src/ai_creator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EACL,iBAAiB,EACjB,IAAI,EACJ,GAAG,EACH,aAAa,GACd,MAAM,cAAc,CAAA;AAErB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,SAAS,EAAO;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAA;IACnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC,CAAA;IAEF,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GACpC,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;KAC9B,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QAEzD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;QAC7C,eAAe,CAAC,IAAI,CAAC,CAAA;QAErB,sCAAsC;QACtC,6DAA6D;QAE7D,UAAU,CAAC,GAAG,EAAE;YACd,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,GAAG,IAAI;gBACP,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gCAAgC,EAAE;aAC1D,CAAC,CAAA;YACF,eAAe,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IAED,OAAO,CACL,MAAC,OAAO,eACN,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,SAAS,6BAEhD,GACM,GACF,EACjB,KAAC,cAAc,IAAC,IAAI,EAAC,OAAO,wBAEX,IACT,EAEV,KAAC,cAAc,IACb,IAAI,EAAC,KAAK,EACV,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,+BAA+B,YAEzC,eAAK,SAAS,EAAC,yBAAyB,aAGtC,cAAK,SAAS,EAAC,4BAA4B,gCAErC,EAGN,MAAC,UAAU,IAAC,SAAS,EAAC,sBAAsB,aACzC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CACxB,YAAG,SAAS,EAAC,+BAA+B,qDAExC,CACL,EAEA,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,cAEE,SAAS,EAAE,QACT,GAAG,CAAC,IAAI,KAAK,MAAM;wCACjB,CAAC,CAAC,aAAa;wCACf,CAAC,CAAC,eACN,EAAE,YAEF,cACE,SAAS,EAAE,4CACT,GAAG,CAAC,IAAI,KAAK,MAAM;4CACjB,CAAC,CAAC,uBAAuB;4CACzB,CAAC,CAAC,UACN,EAAE,YAED,GAAG,CAAC,OAAO,GACR,IAfD,CAAC,CAgBF,CACP,CAAC,IACS,EAGb,cAAK,SAAS,EAAC,cAAc,YAC3B,MAAC,IAAI,CAAC,IAAI,IAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,aAE3C,cAAK,SAAS,EAAC,iFAAiF,YAC9F,eAAK,SAAS,EAAC,8CAA8C,aAE3D,KAAC,KAAK,OACA,QAAQ,CAAC,OAAO,CAAC,EACrB,WAAW,EAAC,iCAAiC,EAC7C,SAAS,EAAC,sFAAsF,GAChG,EAGF,cAAK,SAAS,EAAC,0CAA0C,YACvD,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,YACjC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,GACL,EAGN,eAAK,SAAS,EAAC,mEAAmE,aAEhF,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,YACjC,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,EAET,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,YACjC,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,EAET,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,cAAc,YAExB,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,GACxB,IACL,IACF,GACF,EAEL,MAAM,CAAC,KAAK,IAAI,CACf,YAAG,SAAS,EAAC,2BAA2B,YACrC,MAAM,CAAC,KAAK,CAAC,OAAO,GACnB,CACL,IACS,GACR,IACF,GACS,IACT,CACX,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Button, Tabs, TabsList, TabsTrigger } from "@osanim/shared";
|
|
4
|
+
import { Alert, AlertDescription } from "@osanim/shared";
|
|
5
|
+
import { Card } from "@osanim/shared";
|
|
6
|
+
import { Popover, PopoverContent, PopoverTrigger, PopoverClose } from "@osanim/shared";
|
|
7
|
+
import { Separator } from "@osanim/shared";
|
|
8
|
+
import { Spinner } from "@osanim/shared";
|
|
9
|
+
import { Input } from "@osanim/shared";
|
|
10
|
+
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
11
|
+
import { FaChevronDown } from "react-icons/fa";
|
|
12
|
+
import { useEffect, useState } from "react";
|
|
13
|
+
import * as Zod from "zod";
|
|
14
|
+
import { zodResolver } from "@hookform/resolvers/zod";
|
|
15
|
+
import { useForm } from "react-hook-form";
|
|
16
|
+
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@osanim/shared";
|
|
17
|
+
import { BsTrash } from "react-icons/bs";
|
|
18
|
+
import flow_constants from "./constants";
|
|
19
|
+
import { toast } from "./lib/toast";
|
|
20
|
+
import { Plus } from "lucide-react";
|
|
21
|
+
import { useReactFlow } from "@xyflow/react";
|
|
22
|
+
import MentionTextarea from "./components/mention_input";
|
|
23
|
+
const isValidJson = (value) => {
|
|
24
|
+
if (!value)
|
|
25
|
+
return true;
|
|
26
|
+
try {
|
|
27
|
+
JSON.parse(value);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const formSchema = Zod.object({
|
|
35
|
+
name: Zod.string().min(1, 'required'),
|
|
36
|
+
api: Zod.string().refine(isValidJson, { message: 'Must be valid JSON' }),
|
|
37
|
+
call_type: Zod.enum(['fetch', 'action']).default('fetch'),
|
|
38
|
+
});
|
|
39
|
+
export default function APICalls({ api_key, project, functions, functionsRefetch, envs }) {
|
|
40
|
+
var _a;
|
|
41
|
+
const [open, setOpen] = useState(false);
|
|
42
|
+
const { getNodes } = useReactFlow();
|
|
43
|
+
const form = useForm({
|
|
44
|
+
resolver: zodResolver(formSchema),
|
|
45
|
+
defaultValues: { name: '', api: '', call_type: 'fetch' }
|
|
46
|
+
});
|
|
47
|
+
const onSubmit = async (data) => {
|
|
48
|
+
try {
|
|
49
|
+
const api_name = (data.name || '').trim().toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
|
|
50
|
+
form.setValue('name', api_name);
|
|
51
|
+
const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/api-calls`, {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: { 'X-API-KEY': `${api_key}`, 'Content-Type': 'application/json' },
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
project: project === null || project === void 0 ? void 0 : project.identifier,
|
|
56
|
+
name: api_name,
|
|
57
|
+
api: data.api ? JSON.parse(data.api) : {},
|
|
58
|
+
call_type: data.call_type || 'fetch',
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
if (response.ok) {
|
|
62
|
+
functionsRefetch();
|
|
63
|
+
form.reset();
|
|
64
|
+
setOpen(false);
|
|
65
|
+
toast.success('API Call Created Successfully');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
toast.error('Failed to create API call');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
console.log(e);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
return (_jsxs("div", { className: "flex flex-col gap-3 mt-1", children: [_jsx(Alert, { variant: "default", className: "rounded-sm", children: _jsx(AlertDescription, { className: "text-xs text-muted-foreground", children: "Create API calls to use in your flow. Each call has a name and a JSON configuration." }) }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm font-bold", children: "API Calls" }), _jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { size: "xs", className: "text-xs", children: [_jsx(Plus, {}), " API Call"] }) }), _jsx(PopoverContent, { align: "end", className: "w-[400px]", children: _jsx("div", { className: "flex flex-col gap-3", children: _jsx(Form, { ...form, children: _jsx("form", { onSubmit: form.handleSubmit(onSubmit), children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(APICallFormFields, { form: form, nodes: getNodes(), apiCalls: (functions === null || functions === void 0 ? void 0 : functions.results) || [], secrets: (envs === null || envs === void 0 ? void 0 : envs.results) || [] }), _jsxs("div", { className: "flex justify-end gap-3", children: [_jsx(PopoverClose, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "sm", children: "Cancel" }) }), _jsxs(Button, { type: "submit", disabled: form.formState.isSubmitting, size: "sm", children: [_jsx(Spinner, { loading: form.formState.isSubmitting }), form.formState.isSubmitting ? 'Creating' : 'Create'] })] })] }) }) }) }) })] })] }), (_a = functions === null || functions === void 0 ? void 0 : functions.results) === null || _a === void 0 ? void 0 : _a.map((val, ind) => (_jsx(APICallItem, { api_key: api_key, project: project, item: val, refetch: functionsRefetch, allFunctions: functions === null || functions === void 0 ? void 0 : functions.results, envs: envs }, ind)))] }));
|
|
76
|
+
}
|
|
77
|
+
export function APICallItem({ api_key, project, item, refetch, allFunctions, envs }) {
|
|
78
|
+
const [deleting, setDeleting] = useState(false);
|
|
79
|
+
const { getNodes } = useReactFlow();
|
|
80
|
+
const form = useForm({
|
|
81
|
+
resolver: zodResolver(formSchema),
|
|
82
|
+
defaultValues: { name: '', api: '', call_type: 'fetch' }
|
|
83
|
+
});
|
|
84
|
+
const onSubmit = async (data) => {
|
|
85
|
+
try {
|
|
86
|
+
const api_name = (data.name || '').trim().toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
|
|
87
|
+
form.setValue('name', api_name);
|
|
88
|
+
const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/api-calls/${item === null || item === void 0 ? void 0 : item.identifier}`, {
|
|
89
|
+
method: 'PATCH',
|
|
90
|
+
headers: { 'X-API-KEY': `${api_key}`, 'Content-Type': 'application/json' },
|
|
91
|
+
body: JSON.stringify({
|
|
92
|
+
project: item === null || item === void 0 ? void 0 : item.project,
|
|
93
|
+
name: api_name,
|
|
94
|
+
api: data.api ? JSON.parse(data.api) : {},
|
|
95
|
+
call_type: data.call_type || 'fetch',
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
if (response.ok) {
|
|
99
|
+
refetch();
|
|
100
|
+
toast.success('API Call Updated Successfully');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
toast.error('Failed to update API call');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
console.log(e);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (item) {
|
|
112
|
+
form.reset({
|
|
113
|
+
name: item.name,
|
|
114
|
+
api: item.api ? JSON.stringify(item.api, null, 2) : '',
|
|
115
|
+
call_type: item.call_type || 'fetch',
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}, [item]);
|
|
119
|
+
const deleteItem = async (identifier) => {
|
|
120
|
+
try {
|
|
121
|
+
setDeleting(true);
|
|
122
|
+
const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/api-calls/${identifier}`, {
|
|
123
|
+
method: 'DELETE',
|
|
124
|
+
headers: { 'X-API-KEY': `${api_key}`, 'Content-Type': 'application/json' },
|
|
125
|
+
});
|
|
126
|
+
if (response.ok) {
|
|
127
|
+
refetch();
|
|
128
|
+
toast.success('API Call Deleted Successfully');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
toast.error('Failed to delete API call');
|
|
132
|
+
}
|
|
133
|
+
setDeleting(false);
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
console.log('API Call Error: ' + e);
|
|
137
|
+
setDeleting(false);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
return (_jsx(Card, { className: "p-0 rounded-md", children: _jsx(Form, { ...form, children: _jsx("form", { onSubmit: form.handleSubmit(onSubmit), noValidate: true, children: _jsx(Collapsible.Root, { defaultOpen: false, children: _jsxs("div", { className: "flex flex-col", children: [_jsx(Collapsible.Trigger, { style: { backgroundColor: 'transparent', border: 'none', padding: 0 }, children: _jsxs("div", { className: "flex justify-between items-center p-2 bg-accent/50", children: [_jsx("span", { className: "font-bold text-muted-foreground", children: form.watch('name') }), _jsx(FaChevronDown, { className: "text-muted-foreground" })] }) }), _jsx(Collapsible.Content, { children: _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx(Separator, {}), _jsxs("div", { className: "flex flex-col gap-3 px-3 pb-3", children: [_jsx(APICallFormFields, { form: form, nodes: getNodes(), apiCalls: allFunctions || [], secrets: (envs === null || envs === void 0 ? void 0 : envs.results) || [] }), _jsxs("div", { className: "flex justify-end gap-3", children: [_jsxs(Button, { type: "submit", size: "sm", disabled: form.formState.isSubmitting, children: [_jsx(Spinner, { loading: form.formState.isSubmitting }), form.formState.isSubmitting ? 'Saving' : 'Save'] }), _jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { "aria-label": "Delete API Call", variant: "destructive", size: "sm", children: _jsx(BsTrash, {}) }) }), _jsxs(PopoverContent, { align: "end", className: "w-[250px]", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "Are you sure you want to delete this API Call?" }), _jsx(Separator, { className: "my-3" }), _jsxs("div", { className: "flex justify-end gap-3 mt-3", children: [_jsx(PopoverClose, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "sm", children: "Cancel" }) }), _jsxs(Button, { variant: "destructive", type: "button", size: "sm", disabled: deleting, onClick: () => { deleteItem(item === null || item === void 0 ? void 0 : item.identifier); }, children: [_jsx(Spinner, { loading: deleting }), " ", deleting ? 'Deleting' : 'Delete'] })] })] })] })] })] })] }) })] }) }) }) }) }));
|
|
141
|
+
}
|
|
142
|
+
function APICallFormFields({ form, nodes = [], apiCalls = [], secrets = [] }) {
|
|
143
|
+
const callType = form.watch('call_type') || 'fetch';
|
|
144
|
+
return (_jsxs(_Fragment, { children: [_jsx(FormField, { control: form.control, name: "call_type", render: ({ field }) => (_jsxs(FormItem, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx(FormLabel, { className: "text-xs", children: "Type" }), _jsx(FormControl, { children: _jsx(Tabs, { value: callType, onValueChange: field.onChange, children: _jsxs(TabsList, { className: "h-6 p-0.5", children: [_jsx(TabsTrigger, { value: "fetch", className: "h-5 px-2 text-xs", children: "Fetch" }), _jsx(TabsTrigger, { value: "action", className: "h-5 px-2 text-xs", children: "Action" })] }) }) })] }), _jsx("p", { className: "text-[10px] text-muted-foreground text-right", children: callType === 'action'
|
|
145
|
+
? 'Executes and auto-advances (e.g. SMS, email)'
|
|
146
|
+
: 'Returns a list for the user to select from' })] })) }), _jsx(FormField, { control: form.control, name: "name", render: ({ field }) => (_jsxs(FormItem, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx(FormLabel, { children: "Name" }), _jsx(FormMessage, {})] }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g. product_name, unit_cost", className: "text-sm text-muted-foreground", autoComplete: "off", "aria-label": "API Call Name", onChange: (e) => field.onChange(e.target.value.toLowerCase().replace(/\s+/g, '_')), value: field.value }) })] })) }), _jsx(FormField, { control: form.control, name: "api", render: ({ field }) => (_jsxs(FormItem, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx(FormLabel, { children: "API (JSON)" }), _jsx(FormMessage, {})] }), _jsx(FormControl, { children: _jsx(MentionTextarea, { placeholder: '{"url": "https://api.example.com", "method": "POST"}', className: "text-sm text-muted-foreground min-h-[160px] font-mono", value: field.value, onChange: field.onChange, nodes: nodes, apiCalls: apiCalls, secrets: secrets }) })] })) })] }));
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=api_calls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api_calls.js","sourceRoot":"","sources":["../src/api_calls.tsx"],"names":[],"mappings":"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"}
|
package/dist/app_analytics.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function AppAnalytics({ api_key, project }: any): import("react
|
|
1
|
+
export default function AppAnalytics({ api_key, project }: any): import("react").JSX.Element;
|