@tangle-network/sandbox-ui 0.39.1 → 0.40.0
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/WorkflowGraph-5QO6WCY2.js +169 -0
- package/dist/assistant.d.ts +471 -0
- package/dist/assistant.js +2306 -0
- package/dist/{chunk-EX3UZWLB.js → chunk-6UDHPI2R.js} +16 -7
- package/dist/chunk-7JLB7UZ3.js +18 -0
- package/dist/chunk-SUC6ZJZW.js +207 -0
- package/dist/dashboard.d.ts +6 -1
- package/dist/dashboard.js +1 -1
- package/dist/globals.css +41 -0
- package/dist/hooks.js +3 -3
- package/dist/index.js +86 -86
- package/dist/styles.css +41 -0
- package/dist/workflows.d.ts +67 -0
- package/dist/workflows.js +63 -0
- package/package.json +17 -3
|
@@ -861,6 +861,14 @@ function SandboxCard({
|
|
|
861
861
|
const isRunning = sandbox.status === "running";
|
|
862
862
|
const isTransitioning = sandbox.status === "provisioning" || sandbox.status === "creating";
|
|
863
863
|
const isStopped = !isRunning && !isTransitioning;
|
|
864
|
+
const isHibernating = sandbox.status === "hibernating";
|
|
865
|
+
const resolveResumeHandler = (status) => {
|
|
866
|
+
if (onResume) return onResume;
|
|
867
|
+
if (status === "hibernating") return onWake;
|
|
868
|
+
return void 0;
|
|
869
|
+
};
|
|
870
|
+
const resumeLabel = isHibernating ? "Wake Sandbox" : "Resume Sandbox";
|
|
871
|
+
const resumeHandler = isStopped ? resolveResumeHandler(sandbox.status) : void 0;
|
|
864
872
|
return /* @__PURE__ */ jsxs9("div", { className: cn(
|
|
865
873
|
"group relative flex flex-col justify-between overflow-hidden rounded-lg border bg-card p-5 transition-colors",
|
|
866
874
|
isRunning ? "border-[var(--status-running)]/30" : "border-border",
|
|
@@ -936,15 +944,16 @@ function SandboxCard({
|
|
|
936
944
|
] })
|
|
937
945
|
] }),
|
|
938
946
|
isStopped && /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
939
|
-
|
|
947
|
+
resumeHandler && /* @__PURE__ */ jsxs9(DropdownMenuItem2, { onClick: () => resumeHandler(sandbox.id), children: [
|
|
940
948
|
/* @__PURE__ */ jsx10(Power, { className: "mr-2 h-4 w-4" }),
|
|
941
|
-
"
|
|
949
|
+
" ",
|
|
950
|
+
resumeLabel
|
|
942
951
|
] }),
|
|
943
952
|
onFork && /* @__PURE__ */ jsxs9(DropdownMenuItem2, { onClick: () => onFork(sandbox.id), children: [
|
|
944
953
|
/* @__PURE__ */ jsx10(Copy, { className: "mr-2 h-4 w-4" }),
|
|
945
954
|
" Fork Sandbox"
|
|
946
955
|
] }),
|
|
947
|
-
(
|
|
956
|
+
(resumeHandler || onFork) && /* @__PURE__ */ jsx10(DropdownMenuSeparator2, {})
|
|
948
957
|
] }),
|
|
949
958
|
onDelete && canAdminSandbox(sandbox) && /* @__PURE__ */ jsxs9(DropdownMenuItem2, { className: "text-destructive focus:bg-destructive/10 focus:text-destructive", onClick: () => onDelete(sandbox.id), children: [
|
|
950
959
|
/* @__PURE__ */ jsx10(Trash2, { className: "mr-2 h-4 w-4" }),
|
|
@@ -993,15 +1002,15 @@ function SandboxCard({
|
|
|
993
1002
|
"button",
|
|
994
1003
|
{
|
|
995
1004
|
type: "button",
|
|
996
|
-
onClick: () =>
|
|
997
|
-
disabled: isTransitioning,
|
|
1005
|
+
onClick: () => resumeHandler?.(sandbox.id),
|
|
1006
|
+
disabled: isTransitioning || !resumeHandler,
|
|
998
1007
|
className: cn(
|
|
999
1008
|
"flex w-full items-center justify-center gap-2 rounded-md px-4 py-2 text-sm font-semibold transition-colors border",
|
|
1000
|
-
isTransitioning ? "bg-muted text-muted-foreground cursor-not-allowed border-border" : "bg-card text-foreground hover:bg-muted border-border active:scale-[0.97]"
|
|
1009
|
+
isTransitioning || !resumeHandler ? "bg-muted text-muted-foreground cursor-not-allowed border-border" : "bg-card text-foreground hover:bg-muted border-border active:scale-[0.97]"
|
|
1001
1010
|
),
|
|
1002
1011
|
children: [
|
|
1003
1012
|
/* @__PURE__ */ jsx10(Play, { className: "h-4 w-4" }),
|
|
1004
|
-
isTransitioning ? "Starting..." :
|
|
1013
|
+
isTransitioning ? "Starting..." : resumeLabel
|
|
1005
1014
|
]
|
|
1006
1015
|
}
|
|
1007
1016
|
) })
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/assistant/provider-label.ts
|
|
2
|
+
var PROVIDER_LABELS = {
|
|
3
|
+
github: "GitHub",
|
|
4
|
+
gitlab: "GitLab",
|
|
5
|
+
slack: "Slack",
|
|
6
|
+
stripe: "Stripe",
|
|
7
|
+
notion: "Notion",
|
|
8
|
+
linear: "Linear",
|
|
9
|
+
discord: "Discord"
|
|
10
|
+
};
|
|
11
|
+
function providerLabel(provider) {
|
|
12
|
+
const key = provider.toLowerCase();
|
|
13
|
+
return PROVIDER_LABELS[key] ?? provider.charAt(0).toUpperCase() + provider.slice(1);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
providerLabel
|
|
18
|
+
};
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import {
|
|
2
|
+
providerLabel
|
|
3
|
+
} from "./chunk-7JLB7UZ3.js";
|
|
4
|
+
|
|
5
|
+
// src/workflows/model.ts
|
|
6
|
+
import { parse as parseYaml } from "yaml";
|
|
7
|
+
var ROW_GAP = 112;
|
|
8
|
+
var BRANCH_X = 300;
|
|
9
|
+
var BRANCH_ROW_GAP = 84;
|
|
10
|
+
var BRANCH_STACK_PADDING = 40;
|
|
11
|
+
function asRecord(v) {
|
|
12
|
+
return v && typeof v === "object" && !Array.isArray(v) ? v : {};
|
|
13
|
+
}
|
|
14
|
+
function str(v) {
|
|
15
|
+
return typeof v === "string" && v.trim() !== "" ? v : void 0;
|
|
16
|
+
}
|
|
17
|
+
function urlHost(url) {
|
|
18
|
+
try {
|
|
19
|
+
return new URL(url).host;
|
|
20
|
+
} catch {
|
|
21
|
+
return url;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function describeAction(action) {
|
|
25
|
+
const rec = asRecord(action);
|
|
26
|
+
const [kind] = Object.keys(rec);
|
|
27
|
+
const cfg = asRecord(rec[kind]);
|
|
28
|
+
switch (kind) {
|
|
29
|
+
case "sandbox.spawn":
|
|
30
|
+
return {
|
|
31
|
+
title: "Spawn sandbox",
|
|
32
|
+
subtitle: str(cfg.template),
|
|
33
|
+
hasBranches: false,
|
|
34
|
+
isRoot: false,
|
|
35
|
+
tone: "action"
|
|
36
|
+
};
|
|
37
|
+
case "integration.invoke": {
|
|
38
|
+
const path = str(cfg.path);
|
|
39
|
+
return {
|
|
40
|
+
title: "Integration",
|
|
41
|
+
subtitle: path,
|
|
42
|
+
provider: path?.split(".")[0],
|
|
43
|
+
hasBranches: false,
|
|
44
|
+
isRoot: false,
|
|
45
|
+
tone: "action"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
case "notify": {
|
|
49
|
+
const url = str(cfg.url);
|
|
50
|
+
return {
|
|
51
|
+
title: "Notify",
|
|
52
|
+
subtitle: url ? urlHost(url) : void 0,
|
|
53
|
+
hasBranches: false,
|
|
54
|
+
isRoot: false,
|
|
55
|
+
tone: "action"
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
case "agent.run":
|
|
59
|
+
return {
|
|
60
|
+
title: "Run agent",
|
|
61
|
+
subtitle: str(cfg.model) ?? str(cfg.profile) ?? str(cfg.prompt),
|
|
62
|
+
hasBranches: false,
|
|
63
|
+
isRoot: false,
|
|
64
|
+
tone: "action"
|
|
65
|
+
};
|
|
66
|
+
case "parallel": {
|
|
67
|
+
const branches = Array.isArray(cfg.branches) ? cfg.branches : [];
|
|
68
|
+
return {
|
|
69
|
+
title: "Parallel",
|
|
70
|
+
subtitle: `${branches.length} branch${branches.length === 1 ? "" : "es"}`,
|
|
71
|
+
badge: branches.length > 0 ? `\xD7${branches.length}` : void 0,
|
|
72
|
+
hasBranches: branches.length > 0,
|
|
73
|
+
isRoot: false,
|
|
74
|
+
tone: "structural"
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
case "foreach":
|
|
78
|
+
return {
|
|
79
|
+
title: "For each",
|
|
80
|
+
subtitle: typeof cfg.items === "string" ? cfg.items : "list",
|
|
81
|
+
// Only fans out when a `do` template is actually present.
|
|
82
|
+
hasBranches: Boolean(cfg.do),
|
|
83
|
+
isRoot: false,
|
|
84
|
+
tone: "structural"
|
|
85
|
+
};
|
|
86
|
+
default:
|
|
87
|
+
return {
|
|
88
|
+
title: kind ? kind : "Action",
|
|
89
|
+
hasBranches: false,
|
|
90
|
+
isRoot: false,
|
|
91
|
+
tone: "action"
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function describeTrigger(on) {
|
|
96
|
+
const rec = asRecord(on);
|
|
97
|
+
if (rec.provider_event) {
|
|
98
|
+
const ev = asRecord(rec.provider_event);
|
|
99
|
+
const connection = str(ev.connection);
|
|
100
|
+
const event = str(ev.event);
|
|
101
|
+
const actions = Array.isArray(ev.actions) ? ev.actions.filter((a) => typeof a === "string") : [];
|
|
102
|
+
const repo = str(ev.repo);
|
|
103
|
+
let subtitle = connection ? providerLabel(connection) : "Event";
|
|
104
|
+
if (event) subtitle += ` \xB7 ${event}`;
|
|
105
|
+
if (actions.length > 0) subtitle += ` (${actions.join("/")})`;
|
|
106
|
+
if (repo) subtitle += ` on ${repo}`;
|
|
107
|
+
return {
|
|
108
|
+
title: "Trigger",
|
|
109
|
+
subtitle,
|
|
110
|
+
provider: connection,
|
|
111
|
+
hasBranches: false,
|
|
112
|
+
isRoot: true,
|
|
113
|
+
tone: "trigger"
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (rec.schedule) {
|
|
117
|
+
const sch = asRecord(rec.schedule);
|
|
118
|
+
const cron = str(sch.cron);
|
|
119
|
+
const tz = str(sch.timezone);
|
|
120
|
+
return {
|
|
121
|
+
title: "Schedule",
|
|
122
|
+
subtitle: cron ? tz ? `${cron} (${tz})` : cron : void 0,
|
|
123
|
+
hasBranches: false,
|
|
124
|
+
isRoot: true,
|
|
125
|
+
tone: "trigger"
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
title: "Trigger",
|
|
130
|
+
hasBranches: false,
|
|
131
|
+
isRoot: true,
|
|
132
|
+
tone: "trigger"
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function buildWorkflowGraph(yaml) {
|
|
136
|
+
if (!yaml || yaml.trim() === "") {
|
|
137
|
+
return { nodes: [], edges: [], error: "No definition" };
|
|
138
|
+
}
|
|
139
|
+
let parsed;
|
|
140
|
+
try {
|
|
141
|
+
parsed = parseYaml(yaml);
|
|
142
|
+
} catch {
|
|
143
|
+
return { nodes: [], edges: [], error: "Invalid YAML" };
|
|
144
|
+
}
|
|
145
|
+
const def = asRecord(parsed);
|
|
146
|
+
const actions = Array.isArray(def.do) ? def.do : [];
|
|
147
|
+
if (!def.on && actions.length === 0) {
|
|
148
|
+
return { nodes: [], edges: [], error: "Empty workflow" };
|
|
149
|
+
}
|
|
150
|
+
const nodes = [];
|
|
151
|
+
const edges = [];
|
|
152
|
+
let y = 0;
|
|
153
|
+
let prevId = null;
|
|
154
|
+
const addEdge = (source, target, branch) => {
|
|
155
|
+
edges.push({
|
|
156
|
+
id: `${source}->${target}`,
|
|
157
|
+
source,
|
|
158
|
+
target,
|
|
159
|
+
sourceHandle: branch ? "branch" : "out"
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
if (def.on) {
|
|
163
|
+
nodes.push({
|
|
164
|
+
id: "trigger",
|
|
165
|
+
position: { x: 0, y },
|
|
166
|
+
data: describeTrigger(def.on)
|
|
167
|
+
});
|
|
168
|
+
prevId = "trigger";
|
|
169
|
+
y += ROW_GAP;
|
|
170
|
+
}
|
|
171
|
+
actions.forEach((action, i) => {
|
|
172
|
+
const id = `a${i}`;
|
|
173
|
+
const data = describeAction(action);
|
|
174
|
+
nodes.push({ id, position: { x: 0, y }, data });
|
|
175
|
+
if (prevId) addEdge(prevId, id, false);
|
|
176
|
+
prevId = id;
|
|
177
|
+
const rec = asRecord(action);
|
|
178
|
+
const children = "parallel" in rec ? Array.isArray(asRecord(rec.parallel).branches) ? asRecord(rec.parallel).branches : [] : "foreach" in rec ? (
|
|
179
|
+
// A foreach with no `do` template has no child to render.
|
|
180
|
+
[asRecord(rec.foreach).do].filter(Boolean)
|
|
181
|
+
) : [];
|
|
182
|
+
if (children.length > 0) {
|
|
183
|
+
let by = y;
|
|
184
|
+
children.forEach((child, j) => {
|
|
185
|
+
const cid = `${id}-b${j}`;
|
|
186
|
+
nodes.push({
|
|
187
|
+
id: cid,
|
|
188
|
+
position: { x: BRANCH_X, y: by },
|
|
189
|
+
data: describeAction(child)
|
|
190
|
+
});
|
|
191
|
+
addEdge(id, cid, true);
|
|
192
|
+
by += BRANCH_ROW_GAP;
|
|
193
|
+
});
|
|
194
|
+
y += Math.max(
|
|
195
|
+
ROW_GAP,
|
|
196
|
+
children.length * BRANCH_ROW_GAP + BRANCH_STACK_PADDING
|
|
197
|
+
);
|
|
198
|
+
} else {
|
|
199
|
+
y += ROW_GAP;
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
return { nodes, edges, error: null };
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export {
|
|
206
|
+
buildWorkflowGraph
|
|
207
|
+
};
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -486,11 +486,16 @@ interface SandboxCardProps {
|
|
|
486
486
|
sandbox: SandboxCardData;
|
|
487
487
|
onOpenIDE?: (id: string) => void;
|
|
488
488
|
onOpenTerminal?: (id: string) => void;
|
|
489
|
+
/** Preferred start handler; drives the footer + dropdown Resume action. */
|
|
490
|
+
onResume?: (id: string) => void;
|
|
491
|
+
/**
|
|
492
|
+
* @deprecated Use `onResume`. Retained for back-compat: only a
|
|
493
|
+
* `hibernating` card falls back to `onWake` when `onResume` is absent.
|
|
494
|
+
*/
|
|
489
495
|
onWake?: (id: string) => void;
|
|
490
496
|
onRestore?: (id: string) => void;
|
|
491
497
|
onDelete?: (id: string) => void;
|
|
492
498
|
onStop?: (id: string) => void;
|
|
493
|
-
onResume?: (id: string) => void;
|
|
494
499
|
onFork?: (id: string) => void;
|
|
495
500
|
onKeepAlive?: (id: string) => void;
|
|
496
501
|
onUsage?: (id: string) => void;
|
package/dist/dashboard.js
CHANGED
package/dist/globals.css
CHANGED
|
@@ -623,6 +623,9 @@
|
|
|
623
623
|
width: calc(var(--spacing) * 3);
|
|
624
624
|
height: calc(var(--spacing) * 3);
|
|
625
625
|
}
|
|
626
|
+
.\!h-2 {
|
|
627
|
+
height: calc(var(--spacing) * 2) !important;
|
|
628
|
+
}
|
|
626
629
|
.h-1 {
|
|
627
630
|
height: calc(var(--spacing) * 1);
|
|
628
631
|
}
|
|
@@ -830,6 +833,9 @@
|
|
|
830
833
|
.min-h-screen {
|
|
831
834
|
min-height: 100vh;
|
|
832
835
|
}
|
|
836
|
+
.\!w-2 {
|
|
837
|
+
width: calc(var(--spacing) * 2) !important;
|
|
838
|
+
}
|
|
833
839
|
.w-0 {
|
|
834
840
|
width: calc(var(--spacing) * 0);
|
|
835
841
|
}
|
|
@@ -959,6 +965,9 @@
|
|
|
959
965
|
.w-\[72\%\] {
|
|
960
966
|
width: 72%;
|
|
961
967
|
}
|
|
968
|
+
.w-\[240px\] {
|
|
969
|
+
width: 240px;
|
|
970
|
+
}
|
|
962
971
|
.w-\[268px\] {
|
|
963
972
|
width: 268px;
|
|
964
973
|
}
|
|
@@ -1103,6 +1112,9 @@
|
|
|
1103
1112
|
.max-w-xl {
|
|
1104
1113
|
max-width: var(--container-xl);
|
|
1105
1114
|
}
|
|
1115
|
+
.\!min-w-0 {
|
|
1116
|
+
min-width: calc(var(--spacing) * 0) !important;
|
|
1117
|
+
}
|
|
1106
1118
|
.min-w-0 {
|
|
1107
1119
|
min-width: calc(var(--spacing) * 0);
|
|
1108
1120
|
}
|
|
@@ -1151,6 +1163,9 @@
|
|
|
1151
1163
|
.flex-shrink-0 {
|
|
1152
1164
|
flex-shrink: 0;
|
|
1153
1165
|
}
|
|
1166
|
+
.shrink {
|
|
1167
|
+
flex-shrink: 1;
|
|
1168
|
+
}
|
|
1154
1169
|
.shrink-0 {
|
|
1155
1170
|
flex-shrink: 0;
|
|
1156
1171
|
}
|
|
@@ -1237,6 +1252,9 @@
|
|
|
1237
1252
|
.cursor-default {
|
|
1238
1253
|
cursor: default;
|
|
1239
1254
|
}
|
|
1255
|
+
.cursor-ew-resize {
|
|
1256
|
+
cursor: ew-resize;
|
|
1257
|
+
}
|
|
1240
1258
|
.cursor-not-allowed {
|
|
1241
1259
|
cursor: not-allowed;
|
|
1242
1260
|
}
|
|
@@ -1619,6 +1637,10 @@
|
|
|
1619
1637
|
.rounded-bl-lg {
|
|
1620
1638
|
border-bottom-left-radius: var(--radius-lg);
|
|
1621
1639
|
}
|
|
1640
|
+
.\!border-0 {
|
|
1641
|
+
border-style: var(--tw-border-style) !important;
|
|
1642
|
+
border-width: 0px !important;
|
|
1643
|
+
}
|
|
1622
1644
|
.border {
|
|
1623
1645
|
border-style: var(--tw-border-style);
|
|
1624
1646
|
border-width: 1px;
|
|
@@ -1831,6 +1853,9 @@
|
|
|
1831
1853
|
.border-t-transparent {
|
|
1832
1854
|
border-top-color: transparent;
|
|
1833
1855
|
}
|
|
1856
|
+
.\!bg-transparent {
|
|
1857
|
+
background-color: transparent !important;
|
|
1858
|
+
}
|
|
1834
1859
|
.bg-\[color-mix\(in_oklch\,var\(--color-warning\,orange\)_18\%\,transparent\)\] {
|
|
1835
1860
|
background-color: var(--color-warning,orange);
|
|
1836
1861
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2952,6 +2977,10 @@
|
|
|
2952
2977
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2953
2978
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2954
2979
|
}
|
|
2980
|
+
.shadow-xl {
|
|
2981
|
+
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2982
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2983
|
+
}
|
|
2955
2984
|
.ring {
|
|
2956
2985
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2957
2986
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -3477,6 +3506,13 @@
|
|
|
3477
3506
|
}
|
|
3478
3507
|
}
|
|
3479
3508
|
}
|
|
3509
|
+
.hover\:opacity-90 {
|
|
3510
|
+
&:hover {
|
|
3511
|
+
@media (hover: hover) {
|
|
3512
|
+
opacity: 90%;
|
|
3513
|
+
}
|
|
3514
|
+
}
|
|
3515
|
+
}
|
|
3480
3516
|
.hover\:opacity-100 {
|
|
3481
3517
|
&:hover {
|
|
3482
3518
|
@media (hover: hover) {
|
|
@@ -3686,6 +3722,11 @@
|
|
|
3686
3722
|
opacity: 30%;
|
|
3687
3723
|
}
|
|
3688
3724
|
}
|
|
3725
|
+
.disabled\:opacity-40 {
|
|
3726
|
+
&:disabled {
|
|
3727
|
+
opacity: 40%;
|
|
3728
|
+
}
|
|
3729
|
+
}
|
|
3689
3730
|
.disabled\:opacity-50 {
|
|
3690
3731
|
&:disabled {
|
|
3691
3732
|
opacity: 50%;
|
package/dist/hooks.js
CHANGED
|
@@ -18,13 +18,13 @@ import {
|
|
|
18
18
|
useSessions,
|
|
19
19
|
useToolCallStream
|
|
20
20
|
} from "./chunk-SOKKTB7W.js";
|
|
21
|
-
import {
|
|
22
|
-
usePtySession
|
|
23
|
-
} from "./chunk-77WVVJA4.js";
|
|
24
21
|
import {
|
|
25
22
|
useSessionStream,
|
|
26
23
|
useSidecarAuth
|
|
27
24
|
} from "./chunk-MEDE37J5.js";
|
|
25
|
+
import {
|
|
26
|
+
usePtySession
|
|
27
|
+
} from "./chunk-77WVVJA4.js";
|
|
28
28
|
export {
|
|
29
29
|
RealtimeSessionRegistry,
|
|
30
30
|
createAuthFetcher,
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RealtimeSessionRegistry,
|
|
3
|
+
createAuthFetcher,
|
|
4
|
+
useApiKey,
|
|
5
|
+
useAuth,
|
|
6
|
+
useAutoScroll,
|
|
7
|
+
useCreateSession,
|
|
8
|
+
useDeleteSession,
|
|
9
|
+
useDropdownMenu,
|
|
10
|
+
useLiveTime,
|
|
11
|
+
useRealtimeSession,
|
|
12
|
+
useRenameSession,
|
|
13
|
+
useRunCollapseState,
|
|
14
|
+
useRunGroups,
|
|
15
|
+
useSSEStream,
|
|
16
|
+
useSandboxMetrics,
|
|
17
|
+
useSdkSession,
|
|
18
|
+
useSessions,
|
|
19
|
+
useToolCallStream
|
|
20
|
+
} from "./chunk-SOKKTB7W.js";
|
|
21
|
+
import {
|
|
22
|
+
useSessionStream,
|
|
23
|
+
useSidecarAuth
|
|
24
|
+
} from "./chunk-MEDE37J5.js";
|
|
1
25
|
import {
|
|
2
26
|
activeSessionsAtom,
|
|
3
27
|
addMessage,
|
|
@@ -52,91 +76,6 @@ import {
|
|
|
52
76
|
timeAgo,
|
|
53
77
|
truncateText
|
|
54
78
|
} from "./chunk-TK46XFLM.js";
|
|
55
|
-
import {
|
|
56
|
-
AuthHeader,
|
|
57
|
-
GitHubLoginButton,
|
|
58
|
-
LoginLayout,
|
|
59
|
-
TangleLoginButton,
|
|
60
|
-
UserMenu
|
|
61
|
-
} from "./chunk-IOB2PW5Z.js";
|
|
62
|
-
import {
|
|
63
|
-
RealtimeSessionRegistry,
|
|
64
|
-
createAuthFetcher,
|
|
65
|
-
useApiKey,
|
|
66
|
-
useAuth,
|
|
67
|
-
useAutoScroll,
|
|
68
|
-
useCreateSession,
|
|
69
|
-
useDeleteSession,
|
|
70
|
-
useDropdownMenu,
|
|
71
|
-
useLiveTime,
|
|
72
|
-
useRealtimeSession,
|
|
73
|
-
useRenameSession,
|
|
74
|
-
useRunCollapseState,
|
|
75
|
-
useRunGroups,
|
|
76
|
-
useSSEStream,
|
|
77
|
-
useSandboxMetrics,
|
|
78
|
-
useSdkSession,
|
|
79
|
-
useSessions,
|
|
80
|
-
useToolCallStream
|
|
81
|
-
} from "./chunk-SOKKTB7W.js";
|
|
82
|
-
import {
|
|
83
|
-
usePtySession
|
|
84
|
-
} from "./chunk-77WVVJA4.js";
|
|
85
|
-
import {
|
|
86
|
-
useSessionStream,
|
|
87
|
-
useSidecarAuth
|
|
88
|
-
} from "./chunk-MEDE37J5.js";
|
|
89
|
-
import {
|
|
90
|
-
AgentSessionControls,
|
|
91
|
-
AgentTimeline,
|
|
92
|
-
ArtifactAgentDock,
|
|
93
|
-
ChatContainer,
|
|
94
|
-
ChatInput,
|
|
95
|
-
ChatMessage,
|
|
96
|
-
DEFAULT_REASONING_LEVEL_OPTIONS,
|
|
97
|
-
HARNESS_MODEL_POLICIES,
|
|
98
|
-
MessageList,
|
|
99
|
-
ReasoningLevelPicker,
|
|
100
|
-
ThinkingIndicator,
|
|
101
|
-
UserMessage,
|
|
102
|
-
createFetchTransport,
|
|
103
|
-
isModelCompatibleWithHarness,
|
|
104
|
-
modelProvider,
|
|
105
|
-
snapHarnessToModel,
|
|
106
|
-
snapModelToHarness
|
|
107
|
-
} from "./chunk-CUUUFJF5.js";
|
|
108
|
-
import {
|
|
109
|
-
ExpandedToolDetail,
|
|
110
|
-
InlineThinkingItem,
|
|
111
|
-
InlineToolItem,
|
|
112
|
-
LiveDuration,
|
|
113
|
-
RunGroup
|
|
114
|
-
} from "./chunk-JBGKGLD7.js";
|
|
115
|
-
import {
|
|
116
|
-
AgentWorkbench,
|
|
117
|
-
ApprovalQueue,
|
|
118
|
-
ArtifactPane,
|
|
119
|
-
AuditResults,
|
|
120
|
-
CalendarView,
|
|
121
|
-
DirectoryPane,
|
|
122
|
-
RuntimePane,
|
|
123
|
-
SESSION_CREATED_EVENT,
|
|
124
|
-
SandboxWorkbench,
|
|
125
|
-
SessionActivityMonitor,
|
|
126
|
-
SessionSidebar,
|
|
127
|
-
StatusBanner,
|
|
128
|
-
StatusBar,
|
|
129
|
-
TaskBoard,
|
|
130
|
-
TerminalPanel,
|
|
131
|
-
WorkspaceLayout,
|
|
132
|
-
createShellShouldRevalidate,
|
|
133
|
-
dispatchSessionCreated,
|
|
134
|
-
shellShouldRevalidate,
|
|
135
|
-
useOptimisticSessionItems
|
|
136
|
-
} from "./chunk-6NDOA4SB.js";
|
|
137
|
-
import {
|
|
138
|
-
OpenUIArtifactRenderer
|
|
139
|
-
} from "./chunk-AZ3AWMTM.js";
|
|
140
79
|
import {
|
|
141
80
|
FileArtifactPane,
|
|
142
81
|
FilePreview,
|
|
@@ -199,7 +138,17 @@ import {
|
|
|
199
138
|
canAdminSandbox,
|
|
200
139
|
parseInsufficientBalance,
|
|
201
140
|
useSidebar
|
|
202
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-6UDHPI2R.js";
|
|
142
|
+
import {
|
|
143
|
+
usePtySession
|
|
144
|
+
} from "./chunk-77WVVJA4.js";
|
|
145
|
+
import {
|
|
146
|
+
AuthHeader,
|
|
147
|
+
GitHubLoginButton,
|
|
148
|
+
LoginLayout,
|
|
149
|
+
TangleLoginButton,
|
|
150
|
+
UserMenu
|
|
151
|
+
} from "./chunk-IOB2PW5Z.js";
|
|
203
152
|
import {
|
|
204
153
|
BillingDashboard,
|
|
205
154
|
InfoPanel,
|
|
@@ -295,6 +244,25 @@ import {
|
|
|
295
244
|
useTheme,
|
|
296
245
|
useToast
|
|
297
246
|
} from "./chunk-4ZZUMXPX.js";
|
|
247
|
+
import {
|
|
248
|
+
AgentSessionControls,
|
|
249
|
+
AgentTimeline,
|
|
250
|
+
ArtifactAgentDock,
|
|
251
|
+
ChatContainer,
|
|
252
|
+
ChatInput,
|
|
253
|
+
ChatMessage,
|
|
254
|
+
DEFAULT_REASONING_LEVEL_OPTIONS,
|
|
255
|
+
HARNESS_MODEL_POLICIES,
|
|
256
|
+
MessageList,
|
|
257
|
+
ReasoningLevelPicker,
|
|
258
|
+
ThinkingIndicator,
|
|
259
|
+
UserMessage,
|
|
260
|
+
createFetchTransport,
|
|
261
|
+
isModelCompatibleWithHarness,
|
|
262
|
+
modelProvider,
|
|
263
|
+
snapHarnessToModel,
|
|
264
|
+
snapModelToHarness
|
|
265
|
+
} from "./chunk-CUUUFJF5.js";
|
|
298
266
|
import {
|
|
299
267
|
BackendSelector,
|
|
300
268
|
HARNESS_BRAND,
|
|
@@ -312,7 +280,39 @@ import {
|
|
|
312
280
|
formatPricing,
|
|
313
281
|
modelDedupKey
|
|
314
282
|
} from "./chunk-3RNYDTQ3.js";
|
|
283
|
+
import {
|
|
284
|
+
ExpandedToolDetail,
|
|
285
|
+
InlineThinkingItem,
|
|
286
|
+
InlineToolItem,
|
|
287
|
+
LiveDuration,
|
|
288
|
+
RunGroup
|
|
289
|
+
} from "./chunk-JBGKGLD7.js";
|
|
290
|
+
import {
|
|
291
|
+
AgentWorkbench,
|
|
292
|
+
ApprovalQueue,
|
|
293
|
+
ArtifactPane,
|
|
294
|
+
AuditResults,
|
|
295
|
+
CalendarView,
|
|
296
|
+
DirectoryPane,
|
|
297
|
+
RuntimePane,
|
|
298
|
+
SESSION_CREATED_EVENT,
|
|
299
|
+
SandboxWorkbench,
|
|
300
|
+
SessionActivityMonitor,
|
|
301
|
+
SessionSidebar,
|
|
302
|
+
StatusBanner,
|
|
303
|
+
StatusBar,
|
|
304
|
+
TaskBoard,
|
|
305
|
+
TerminalPanel,
|
|
306
|
+
WorkspaceLayout,
|
|
307
|
+
createShellShouldRevalidate,
|
|
308
|
+
dispatchSessionCreated,
|
|
309
|
+
shellShouldRevalidate,
|
|
310
|
+
useOptimisticSessionItems
|
|
311
|
+
} from "./chunk-6NDOA4SB.js";
|
|
315
312
|
import "./chunk-EI44GEQ5.js";
|
|
313
|
+
import {
|
|
314
|
+
OpenUIArtifactRenderer
|
|
315
|
+
} from "./chunk-AZ3AWMTM.js";
|
|
316
316
|
|
|
317
317
|
// src/index.ts
|
|
318
318
|
import { CodeBlock as CodeBlock2 } from "@tangle-network/ui/markdown";
|