@tangle-network/sandbox-ui 0.45.0 → 0.46.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-7YYGIBNV.js → WorkflowGraph-6IKZYPST.js} +2 -1
- package/dist/assets.js +1 -0
- package/dist/assistant.js +2 -1
- package/dist/auth.js +1 -0
- package/dist/chat.js +4 -3
- package/dist/{chunk-6NDOA4SB.js → chunk-2ISY4R72.js} +112 -104
- package/dist/{chunk-KIRJZUX2.js → chunk-BR2LMUAE.js} +61 -34
- package/dist/{chunk-H7GMPMPB.js → chunk-CXV6X33U.js} +19 -1
- package/dist/{chunk-CUUUFJF5.js → chunk-KOUYJ6QP.js} +23 -23
- package/dist/{chunk-3RNYDTQ3.js → chunk-LQHTCM56.js} +21 -27
- package/dist/chunk-NXUSLH7H.js +7528 -0
- package/dist/{chunk-2XNT74ZX.js → chunk-OMUIPJQZ.js} +28 -20
- package/dist/{chunk-KCWIC3SJ.js → chunk-PZ62T5PM.js} +281 -214
- package/dist/chunk-U67V476Y.js +35 -0
- package/dist/chunk-VIREDUBF.js +215 -0
- package/dist/dashboard.d.ts +82 -66
- package/dist/dashboard.js +5 -4
- package/dist/editor.js +2 -0
- package/dist/files.d.ts +5 -0
- package/dist/files.js +1 -0
- package/dist/globals.css +1149 -48
- package/dist/hooks.js +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +95 -65
- package/dist/integrations.js +2 -1
- package/dist/markdown.js +2 -0
- package/dist/openui.d.ts +0 -5
- package/dist/openui.js +1 -0
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +89 -88
- package/dist/ports-list-DfG0VfPt.d.ts +17 -0
- package/dist/primitives.js +1 -0
- package/dist/run.js +1 -0
- package/dist/sdk-hooks.js +1 -0
- package/dist/stores.js +1 -0
- package/dist/styles.css +1149 -48
- package/dist/terminal.js +5 -209
- package/dist/utils.js +1 -0
- package/dist/workbench.d.ts +227 -0
- package/dist/workbench.js +40 -0
- package/dist/workflows.js +2 -1
- package/dist/workspace.d.ts +6 -2
- package/dist/workspace.js +2 -1
- package/package.json +13 -7
package/dist/pages.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
PricingPage,
|
|
5
5
|
TemplateCard,
|
|
6
6
|
UsageChart
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OMUIPJQZ.js";
|
|
8
8
|
import {
|
|
9
9
|
Badge,
|
|
10
10
|
Button,
|
|
@@ -24,10 +24,11 @@ import {
|
|
|
24
24
|
Switch,
|
|
25
25
|
Textarea
|
|
26
26
|
} from "./chunk-4ZZUMXPX.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-LQHTCM56.js";
|
|
28
28
|
import {
|
|
29
29
|
cn
|
|
30
30
|
} from "./chunk-EI44GEQ5.js";
|
|
31
|
+
import "./chunk-U67V476Y.js";
|
|
31
32
|
|
|
32
33
|
// src/pages/auth-page.tsx
|
|
33
34
|
import { useState } from "react";
|
|
@@ -271,7 +272,7 @@ function BillingPageSkeleton({
|
|
|
271
272
|
/* @__PURE__ */ jsx2(SkeletonCard, {}),
|
|
272
273
|
/* @__PURE__ */ jsx2(SkeletonCard, {})
|
|
273
274
|
] }),
|
|
274
|
-
/* @__PURE__ */ jsxs2("div", { className: "space-y-4 rounded-xl border border-
|
|
275
|
+
/* @__PURE__ */ jsxs2("div", { className: "space-y-4 rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-6", children: [
|
|
275
276
|
/* @__PURE__ */ jsx2(Skeleton, { className: "h-6 w-48" }),
|
|
276
277
|
/* @__PURE__ */ jsx2("div", { className: "h-48", children: /* @__PURE__ */ jsx2(Skeleton, { className: "h-full w-full" }) })
|
|
277
278
|
] })
|
|
@@ -448,7 +449,7 @@ function BillingPage({
|
|
|
448
449
|
title: "Credit Usage History",
|
|
449
450
|
unit: "credits"
|
|
450
451
|
}
|
|
451
|
-
) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-col items-center justify-center rounded-xl border border-
|
|
452
|
+
) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-col items-center justify-center rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-12 text-center", children: [
|
|
452
453
|
/* @__PURE__ */ jsxs2(
|
|
453
454
|
"svg",
|
|
454
455
|
{
|
|
@@ -584,7 +585,7 @@ function AddSshKeyDialog({
|
|
|
584
585
|
placeholder: "My laptop",
|
|
585
586
|
autoComplete: "off",
|
|
586
587
|
"aria-invalid": errors.name ? true : void 0,
|
|
587
|
-
className: "w-full rounded-md border border-
|
|
588
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
588
589
|
}
|
|
589
590
|
),
|
|
590
591
|
errors.name && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.name })
|
|
@@ -609,7 +610,7 @@ function AddSshKeyDialog({
|
|
|
609
610
|
autoComplete: "off",
|
|
610
611
|
spellCheck: false,
|
|
611
612
|
"aria-invalid": errors.publicKey ? true : void 0,
|
|
612
|
-
className: "min-h-24 w-full resize-y rounded-md border border-
|
|
613
|
+
className: "min-h-24 w-full resize-y rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
613
614
|
}
|
|
614
615
|
),
|
|
615
616
|
errors.publicKey && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.publicKey })
|
|
@@ -624,7 +625,7 @@ function AddSshKeyDialog({
|
|
|
624
625
|
type: "button",
|
|
625
626
|
onClick: () => onOpenChange(false),
|
|
626
627
|
disabled: isSaving,
|
|
627
|
-
className: "rounded-md border border-
|
|
628
|
+
className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors disabled:opacity-50",
|
|
628
629
|
children: "Cancel"
|
|
629
630
|
}
|
|
630
631
|
),
|
|
@@ -652,7 +653,7 @@ var VALID_DRIVERS = /* @__PURE__ */ new Set([
|
|
|
652
653
|
"firecracker",
|
|
653
654
|
"tangle"
|
|
654
655
|
]);
|
|
655
|
-
var SECTION_CARD_CLASS = "rounded-lg border border-
|
|
656
|
+
var SECTION_CARD_CLASS = "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-sm";
|
|
656
657
|
var FIELD_LABEL_CLASS = "block text-xs font-medium text-muted-foreground uppercase tracking-[0.06em]";
|
|
657
658
|
var STACK_DISPLAY = {
|
|
658
659
|
universal: {
|
|
@@ -851,7 +852,7 @@ function SshAccessStep({ config }) {
|
|
|
851
852
|
},
|
|
852
853
|
className: cn(
|
|
853
854
|
"group p-3 text-left rounded-lg border transition-colors duration-200",
|
|
854
|
-
selected ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-
|
|
855
|
+
selected ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
|
|
855
856
|
),
|
|
856
857
|
children: /* @__PURE__ */ jsxs4("div", { className: "flex items-start justify-between gap-2", children: [
|
|
857
858
|
/* @__PURE__ */ jsxs4("span", { className: "min-w-0", children: [
|
|
@@ -868,7 +869,7 @@ function SshAccessStep({ config }) {
|
|
|
868
869
|
"aria-hidden": "true",
|
|
869
870
|
className: cn(
|
|
870
871
|
"flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px] border-2 transition-colors duration-200",
|
|
871
|
-
selected ? "border-primary bg-primary" : "border-
|
|
872
|
+
selected ? "border-primary bg-primary" : "border-[var(--md3-outline-variant)] group-hover:border-primary/40"
|
|
872
873
|
),
|
|
873
874
|
children: selected && /* @__PURE__ */ jsx4(Check, { className: "h-2.5 w-2.5 text-primary-foreground" })
|
|
874
875
|
}
|
|
@@ -1210,17 +1211,17 @@ function ProvisioningWizard({
|
|
|
1210
1211
|
onClick: () => setSelectedEnv(env.id),
|
|
1211
1212
|
className: cn(
|
|
1212
1213
|
"group p-3.5 rounded-lg text-left border transition-colors duration-200",
|
|
1213
|
-
selectedEnv === env.id ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-
|
|
1214
|
+
selectedEnv === env.id ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
|
|
1214
1215
|
),
|
|
1215
1216
|
children: [
|
|
1216
1217
|
/* @__PURE__ */ jsxs4("div", { className: "flex justify-between items-start mb-2.5", children: [
|
|
1217
|
-
/* @__PURE__ */ jsx4("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-
|
|
1218
|
+
/* @__PURE__ */ jsx4("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-surface-container-high border border-[var(--md3-outline-variant)]", children: env.icon }),
|
|
1218
1219
|
/* @__PURE__ */ jsx4(
|
|
1219
1220
|
"div",
|
|
1220
1221
|
{
|
|
1221
1222
|
className: cn(
|
|
1222
1223
|
"w-4 h-4 rounded-full border-2 flex items-center justify-center transition-colors duration-200",
|
|
1223
|
-
selectedEnv === env.id ? "border-primary bg-primary" : "border-
|
|
1224
|
+
selectedEnv === env.id ? "border-primary bg-primary" : "border-[var(--md3-outline-variant)] group-hover:border-primary/40"
|
|
1224
1225
|
),
|
|
1225
1226
|
children: selectedEnv === env.id && /* @__PURE__ */ jsx4(Check, { className: "h-2.5 w-2.5 text-primary-foreground" })
|
|
1226
1227
|
}
|
|
@@ -1250,7 +1251,7 @@ function ProvisioningWizard({
|
|
|
1250
1251
|
disabled: p.locked,
|
|
1251
1252
|
className: cn(
|
|
1252
1253
|
"p-2.5 rounded-lg transition-colors duration-200 text-center group border relative",
|
|
1253
|
-
active ? "bg-primary/5 border-primary ring-1 ring-primary/20" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-
|
|
1254
|
+
active ? "bg-primary/5 border-primary ring-1 ring-primary/20" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
|
|
1254
1255
|
),
|
|
1255
1256
|
children: [
|
|
1256
1257
|
p.locked && /* @__PURE__ */ jsx4("div", { className: "absolute -top-1.5 -right-1.5 bg-primary text-primary-foreground text-[9px] font-semibold px-1.5 py-0.5 rounded-full uppercase tracking-wider", children: p.unlockLabel }),
|
|
@@ -1471,7 +1472,7 @@ function ProvisioningWizard({
|
|
|
1471
1472
|
}
|
|
1472
1473
|
)
|
|
1473
1474
|
] }, env.uid)),
|
|
1474
|
-
envVars.length === 0 && /* @__PURE__ */ jsx4("div", { className: "text-center p-3 border border-dashed border-
|
|
1475
|
+
envVars.length === 0 && /* @__PURE__ */ jsx4("div", { className: "text-center p-3 border border-dashed border-[var(--md3-outline-variant)] rounded-lg text-muted-foreground/60 text-xs italic", children: "No environment variables set" })
|
|
1475
1476
|
] })
|
|
1476
1477
|
] }),
|
|
1477
1478
|
availableScripts.length > 0 && /* @__PURE__ */ jsxs4("div", { children: [
|
|
@@ -1483,7 +1484,7 @@ function ProvisioningWizard({
|
|
|
1483
1484
|
return /* @__PURE__ */ jsxs4(
|
|
1484
1485
|
"label",
|
|
1485
1486
|
{
|
|
1486
|
-
className: "flex items-start gap-3 cursor-pointer group rounded-lg border border-
|
|
1487
|
+
className: "flex items-start gap-3 cursor-pointer group rounded-lg border border-[var(--md3-outline-variant)] p-3 transition-colors hover:border-primary/30",
|
|
1487
1488
|
children: [
|
|
1488
1489
|
/* @__PURE__ */ jsx4(
|
|
1489
1490
|
"input",
|
|
@@ -1495,7 +1496,7 @@ function ProvisioningWizard({
|
|
|
1495
1496
|
(id) => id !== script.id
|
|
1496
1497
|
) : [...prev, script.id]
|
|
1497
1498
|
),
|
|
1498
|
-
className: "mt-0.5 h-4 w-4 rounded border-
|
|
1499
|
+
className: "mt-0.5 h-4 w-4 rounded border-[var(--md3-outline-variant)] text-primary focus:ring-primary/30"
|
|
1499
1500
|
}
|
|
1500
1501
|
),
|
|
1501
1502
|
/* @__PURE__ */ jsxs4("div", { className: "flex-1 min-w-0", children: [
|
|
@@ -1504,7 +1505,7 @@ function ProvisioningWizard({
|
|
|
1504
1505
|
script.injectSecrets.length > 0 && /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1 mt-1.5", children: script.injectSecrets.map((s) => /* @__PURE__ */ jsxs4(
|
|
1505
1506
|
"span",
|
|
1506
1507
|
{
|
|
1507
|
-
className: "inline-flex items-center gap-0.5 rounded-full bg-
|
|
1508
|
+
className: "inline-flex items-center gap-0.5 rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] text-muted-foreground",
|
|
1508
1509
|
children: [
|
|
1509
1510
|
/* @__PURE__ */ jsxs4(
|
|
1510
1511
|
"svg",
|
|
@@ -1542,7 +1543,7 @@ function ProvisioningWizard({
|
|
|
1542
1543
|
);
|
|
1543
1544
|
}) })
|
|
1544
1545
|
] }),
|
|
1545
|
-
/* @__PURE__ */ jsxs4("div", { className: "pt-3 border-t border-
|
|
1546
|
+
/* @__PURE__ */ jsxs4("div", { className: "pt-3 border-t border-[var(--md3-outline-variant)] flex items-start justify-between gap-3", children: [
|
|
1546
1547
|
/* @__PURE__ */ jsxs4("div", { children: [
|
|
1547
1548
|
/* @__PURE__ */ jsx4(
|
|
1548
1549
|
"label",
|
|
@@ -1564,13 +1565,13 @@ function ProvisioningWizard({
|
|
|
1564
1565
|
}
|
|
1565
1566
|
)
|
|
1566
1567
|
] }),
|
|
1567
|
-
sshAccess && /* @__PURE__ */ jsx4("div", { className: "pt-3 border-t border-
|
|
1568
|
+
sshAccess && /* @__PURE__ */ jsx4("div", { className: "pt-3 border-t border-[var(--md3-outline-variant)]", children: /* @__PURE__ */ jsx4(SshAccessStep, { config: sshAccess }) })
|
|
1568
1569
|
] })
|
|
1569
1570
|
] }) })
|
|
1570
1571
|
] })
|
|
1571
1572
|
] }),
|
|
1572
1573
|
/* @__PURE__ */ jsxs4("div", { className: "col-span-12 xl:col-span-4 sticky top-4 space-y-4", children: [
|
|
1573
|
-
/* @__PURE__ */ jsxs4("div", { className: "rounded-lg border border-
|
|
1574
|
+
/* @__PURE__ */ jsxs4("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-sm", children: [
|
|
1574
1575
|
/* @__PURE__ */ jsxs4("div", { className: "flex justify-between items-center mb-3", children: [
|
|
1575
1576
|
/* @__PURE__ */ jsx4("span", { className: FIELD_LABEL_CLASS, children: "Run Cost" }),
|
|
1576
1577
|
/* @__PURE__ */ jsxs4(
|
|
@@ -1578,7 +1579,7 @@ function ProvisioningWizard({
|
|
|
1578
1579
|
{
|
|
1579
1580
|
role: "group",
|
|
1580
1581
|
"aria-label": "Pricing view",
|
|
1581
|
-
className: "inline-flex items-center rounded-md border border-
|
|
1582
|
+
className: "inline-flex items-center rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low p-0.5",
|
|
1582
1583
|
children: [
|
|
1583
1584
|
/* @__PURE__ */ jsx4(
|
|
1584
1585
|
"button",
|
|
@@ -1588,7 +1589,7 @@ function ProvisioningWizard({
|
|
|
1588
1589
|
onClick: () => setPricingView("hourly"),
|
|
1589
1590
|
className: cn(
|
|
1590
1591
|
"rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
|
|
1591
|
-
pricingView === "hourly" ? "bg-
|
|
1592
|
+
pricingView === "hourly" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
|
|
1592
1593
|
),
|
|
1593
1594
|
children: "Per Hour"
|
|
1594
1595
|
}
|
|
@@ -1601,7 +1602,7 @@ function ProvisioningWizard({
|
|
|
1601
1602
|
onClick: () => setPricingView("perSecond"),
|
|
1602
1603
|
className: cn(
|
|
1603
1604
|
"rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
|
|
1604
|
-
pricingView === "perSecond" ? "bg-
|
|
1605
|
+
pricingView === "perSecond" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
|
|
1605
1606
|
),
|
|
1606
1607
|
children: "Per Second"
|
|
1607
1608
|
}
|
|
@@ -1627,7 +1628,7 @@ function ProvisioningWizard({
|
|
|
1627
1628
|
),
|
|
1628
1629
|
/* @__PURE__ */ jsx4("span", { className: "text-muted-foreground text-sm", children: pricingSuffix })
|
|
1629
1630
|
] }),
|
|
1630
|
-
/* @__PURE__ */ jsxs4("div", { className: "space-y-2 rounded-md border border-
|
|
1631
|
+
/* @__PURE__ */ jsxs4("div", { className: "space-y-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-high p-3", children: [
|
|
1631
1632
|
/* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-muted-foreground", children: [
|
|
1632
1633
|
/* @__PURE__ */ jsx4("span", { children: "COMPUTE" }),
|
|
1633
1634
|
/* @__PURE__ */ jsxs4("span", { className: "text-foreground", children: [
|
|
@@ -1652,7 +1653,7 @@ function ProvisioningWizard({
|
|
|
1652
1653
|
rateSuffix
|
|
1653
1654
|
] })
|
|
1654
1655
|
] }),
|
|
1655
|
-
hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-primary border-t border-
|
|
1656
|
+
hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-primary border-t border-[var(--md3-outline-variant)] pt-2", children: [
|
|
1656
1657
|
/* @__PURE__ */ jsx4("span", { children: "MIN CHARGE" }),
|
|
1657
1658
|
/* @__PURE__ */ jsxs4("span", { children: [
|
|
1658
1659
|
"$",
|
|
@@ -1812,9 +1813,9 @@ function StandalonePricingPage({
|
|
|
1812
1813
|
loading: state.selectingTier
|
|
1813
1814
|
}
|
|
1814
1815
|
),
|
|
1815
|
-
/* @__PURE__ */ jsxs5("div", { className: "mx-auto max-w-2xl space-y-4 border-t border-
|
|
1816
|
+
/* @__PURE__ */ jsxs5("div", { className: "mx-auto max-w-2xl space-y-4 border-t border-[var(--md3-outline-variant)] pt-12", children: [
|
|
1816
1817
|
/* @__PURE__ */ jsx5("h2", { className: "text-center text-xl font-bold text-foreground mb-6", children: "Frequently Asked Questions" }),
|
|
1817
|
-
FAQ.map(({ q, a }) => /* @__PURE__ */ jsxs5("details", { className: "group rounded-xl border border-
|
|
1818
|
+
FAQ.map(({ q, a }) => /* @__PURE__ */ jsxs5("details", { className: "group rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container overflow-hidden", children: [
|
|
1818
1819
|
/* @__PURE__ */ jsxs5("summary", { className: "flex cursor-pointer items-center justify-between px-6 py-4 font-medium text-foreground text-sm", children: [
|
|
1819
1820
|
q,
|
|
1820
1821
|
/* @__PURE__ */ jsx5(ChevronDown, { className: "h-4 w-4 text-muted-foreground transition-transform group-open:rotate-180" })
|
|
@@ -2068,7 +2069,7 @@ function ProfileCard({
|
|
|
2068
2069
|
return /* @__PURE__ */ jsxs6(
|
|
2069
2070
|
Card,
|
|
2070
2071
|
{
|
|
2071
|
-
className: "cursor-pointer p-4 transition-colors hover:border-
|
|
2072
|
+
className: "cursor-pointer p-4 transition-colors hover:border-[var(--md3-outline)]",
|
|
2072
2073
|
onClick: onView,
|
|
2073
2074
|
children: [
|
|
2074
2075
|
/* @__PURE__ */ jsxs6("div", { className: "flex items-start justify-between", children: [
|
|
@@ -2110,7 +2111,7 @@ function ProfileCard({
|
|
|
2110
2111
|
] }),
|
|
2111
2112
|
profile.model && /* @__PURE__ */ jsx6(Badge2, { variant: "outline", className: "text-xs", children: profile.model.split("/").pop() })
|
|
2112
2113
|
] }),
|
|
2113
|
-
profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "mt-3 flex gap-4 border-
|
|
2114
|
+
profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "mt-3 flex gap-4 border-[var(--md3-outline-variant)] border-t pt-3 text-muted-foreground text-xs", children: [
|
|
2114
2115
|
/* @__PURE__ */ jsxs6("span", { children: [
|
|
2115
2116
|
profile.metrics.total_runs,
|
|
2116
2117
|
" runs"
|
|
@@ -2248,7 +2249,7 @@ function ProfileFormDialog({
|
|
|
2248
2249
|
{
|
|
2249
2250
|
value: formData.extends,
|
|
2250
2251
|
onChange: (e) => setFormData((d) => ({ ...d, extends: e.target.value })),
|
|
2251
|
-
className: "w-full rounded-md border border-
|
|
2252
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm",
|
|
2252
2253
|
children: [
|
|
2253
2254
|
/* @__PURE__ */ jsx6("option", { value: "", children: "None (start from scratch)" }),
|
|
2254
2255
|
builtinProfiles.map((p) => /* @__PURE__ */ jsxs6("option", { value: p.name, children: [
|
|
@@ -2281,7 +2282,7 @@ function ProfileFormDialog({
|
|
|
2281
2282
|
onChange: (e) => setFormData((d) => ({ ...d, system_prompt: e.target.value })),
|
|
2282
2283
|
placeholder: "Custom system prompt for the agent...",
|
|
2283
2284
|
rows: 4,
|
|
2284
|
-
className: "w-full rounded-md border border-
|
|
2285
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-sm"
|
|
2285
2286
|
}
|
|
2286
2287
|
)
|
|
2287
2288
|
] }),
|
|
@@ -2308,7 +2309,7 @@ function ProfileFormDialog({
|
|
|
2308
2309
|
id: "is_public",
|
|
2309
2310
|
checked: formData.is_public,
|
|
2310
2311
|
onChange: (e) => setFormData((d) => ({ ...d, is_public: e.target.checked })),
|
|
2311
|
-
className: "rounded border-
|
|
2312
|
+
className: "rounded border-[var(--md3-outline-variant)]"
|
|
2312
2313
|
}
|
|
2313
2314
|
),
|
|
2314
2315
|
/* @__PURE__ */ jsx6("label", { htmlFor: "is_public", className: "text-sm", children: "Make this profile public (visible to other users)" })
|
|
@@ -2413,7 +2414,7 @@ function ProfileDetailDialog({
|
|
|
2413
2414
|
profile.system_prompt && /* @__PURE__ */ jsxs6("div", { children: [
|
|
2414
2415
|
/* @__PURE__ */ jsx6("label", { className: "font-medium text-muted-foreground text-xs", children: "System Prompt" }),
|
|
2415
2416
|
/* @__PURE__ */ jsxs6("div", { className: "relative mt-1", children: [
|
|
2416
|
-
/* @__PURE__ */ jsx6("pre", { className: "max-h-48 overflow-auto rounded-lg bg-
|
|
2417
|
+
/* @__PURE__ */ jsx6("pre", { className: "max-h-48 overflow-auto rounded-lg bg-surface-container-low p-3 font-mono text-sm", children: profile.system_prompt }),
|
|
2417
2418
|
/* @__PURE__ */ jsx6(
|
|
2418
2419
|
Button2,
|
|
2419
2420
|
{
|
|
@@ -2434,7 +2435,7 @@ function ProfileDetailDialog({
|
|
|
2434
2435
|
inst
|
|
2435
2436
|
] }, i)) })
|
|
2436
2437
|
] }),
|
|
2437
|
-
profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "rounded-lg border border-
|
|
2438
|
+
profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high p-4", children: [
|
|
2438
2439
|
/* @__PURE__ */ jsx6("label", { className: "font-medium text-muted-foreground text-xs", children: "Performance Metrics" }),
|
|
2439
2440
|
/* @__PURE__ */ jsxs6("div", { className: "mt-2 grid grid-cols-2 gap-4 sm:grid-cols-4", children: [
|
|
2440
2441
|
/* @__PURE__ */ jsxs6("div", { children: [
|
|
@@ -2737,7 +2738,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2737
2738
|
{
|
|
2738
2739
|
type: "button",
|
|
2739
2740
|
onClick: () => setIsImportOpen(true),
|
|
2740
|
-
className: "inline-flex items-center gap-2 rounded-lg border border-
|
|
2741
|
+
className: "inline-flex items-center gap-2 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2.5 text-sm font-semibold text-foreground hover:bg-surface-container-high transition-colors active:scale-[0.97]",
|
|
2741
2742
|
children: [
|
|
2742
2743
|
/* @__PURE__ */ jsx7(Upload, { className: "h-4 w-4" }),
|
|
2743
2744
|
"Import .env"
|
|
@@ -2759,7 +2760,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2759
2760
|
] })
|
|
2760
2761
|
}
|
|
2761
2762
|
),
|
|
2762
|
-
teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-
|
|
2763
|
+
teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
|
|
2763
2764
|
/* @__PURE__ */ jsx7(Users, { className: "h-5 w-5 shrink-0 text-[var(--accent-text)]", "aria-hidden": "true" }),
|
|
2764
2765
|
/* @__PURE__ */ jsxs7("div", { className: "flex-1 text-sm", children: [
|
|
2765
2766
|
/* @__PURE__ */ jsx7("p", { className: "font-semibold text-foreground", children: "Setting up secrets for a team?" }),
|
|
@@ -2774,7 +2775,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2774
2775
|
{
|
|
2775
2776
|
type: "button",
|
|
2776
2777
|
onClick: teamSecretsHint.onNavigate,
|
|
2777
|
-
className: "inline-flex shrink-0 items-center gap-1 rounded-md border border-
|
|
2778
|
+
className: "inline-flex shrink-0 items-center gap-1 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-1.5 text-xs font-semibold text-foreground hover:bg-surface-container-high transition-colors",
|
|
2778
2779
|
children: [
|
|
2779
2780
|
teamSecretsHint.label ?? "Manage team secrets",
|
|
2780
2781
|
/* @__PURE__ */ jsx7(ArrowRight, { className: "h-3 w-3", "aria-hidden": "true" })
|
|
@@ -2783,11 +2784,11 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2783
2784
|
)
|
|
2784
2785
|
] }),
|
|
2785
2786
|
/* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-4", children: [
|
|
2786
|
-
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-
|
|
2787
|
+
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
|
|
2787
2788
|
/* @__PURE__ */ jsx7("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Total Active Secrets" }),
|
|
2788
2789
|
/* @__PURE__ */ jsx7("div", { className: "mt-2 flex items-baseline gap-2", children: /* @__PURE__ */ jsx7("span", { className: "font-display text-2xl font-extrabold text-foreground", children: secrets.length }) })
|
|
2789
2790
|
] }),
|
|
2790
|
-
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-
|
|
2791
|
+
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
|
|
2791
2792
|
/* @__PURE__ */ jsx7("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Status" }),
|
|
2792
2793
|
/* @__PURE__ */ jsxs7("div", { className: "mt-2 flex items-center gap-2", children: [
|
|
2793
2794
|
/* @__PURE__ */ jsx7(CheckCircle, { className: "h-4 w-4 text-[var(--surface-success-text,#047857)]" }),
|
|
@@ -2842,7 +2843,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2842
2843
|
onChange: (e) => setNewName(e.target.value.toUpperCase().replace(/[^A-Z0-9_]/g, "_")),
|
|
2843
2844
|
placeholder: "MY_SECRET_KEY",
|
|
2844
2845
|
autoComplete: "off",
|
|
2845
|
-
className: "w-full rounded-md border border-
|
|
2846
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2.5 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
2846
2847
|
}
|
|
2847
2848
|
)
|
|
2848
2849
|
] }),
|
|
@@ -2859,7 +2860,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2859
2860
|
onChange: (e) => setNewValue(e.target.value),
|
|
2860
2861
|
placeholder: "Enter secret value...",
|
|
2861
2862
|
autoComplete: "new-password",
|
|
2862
|
-
className: "w-full rounded-md border border-
|
|
2863
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2.5 pr-10 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
2863
2864
|
}
|
|
2864
2865
|
),
|
|
2865
2866
|
/* @__PURE__ */ jsx7(
|
|
@@ -2891,7 +2892,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2891
2892
|
setNewValue("");
|
|
2892
2893
|
setCreateError(null);
|
|
2893
2894
|
},
|
|
2894
|
-
className: "rounded-md border border-
|
|
2895
|
+
className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
|
|
2895
2896
|
children: "Cancel"
|
|
2896
2897
|
}
|
|
2897
2898
|
),
|
|
@@ -2940,7 +2941,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2940
2941
|
{
|
|
2941
2942
|
type: "button",
|
|
2942
2943
|
onClick: () => fileInputRef.current?.click(),
|
|
2943
|
-
className: "inline-flex items-center gap-2 rounded-md border border-
|
|
2944
|
+
className: "inline-flex items-center gap-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-2 text-xs font-semibold text-foreground hover:bg-surface-container-high transition-colors",
|
|
2944
2945
|
children: [
|
|
2945
2946
|
/* @__PURE__ */ jsx7(Upload, { className: "h-3.5 w-3.5" }),
|
|
2946
2947
|
"Choose .env file"
|
|
@@ -2967,7 +2968,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2967
2968
|
onChange: (e) => setImportText(e.target.value),
|
|
2968
2969
|
rows: 6,
|
|
2969
2970
|
spellCheck: false,
|
|
2970
|
-
className: "w-full rounded-md border border-
|
|
2971
|
+
className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
2971
2972
|
}
|
|
2972
2973
|
),
|
|
2973
2974
|
/* @__PURE__ */ jsxs7("p", { className: "text-[11px] text-muted-foreground", children: [
|
|
@@ -3017,7 +3018,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3017
3018
|
/* @__PURE__ */ jsx7("div", { className: "max-h-64 space-y-2 overflow-y-auto", children: importResult.rows.map((row, index) => {
|
|
3018
3019
|
const status = rowStatus[index];
|
|
3019
3020
|
const message = rowMessages[index];
|
|
3020
|
-
return /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-2 rounded-md border border-
|
|
3021
|
+
return /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-high p-2", children: [
|
|
3021
3022
|
/* @__PURE__ */ jsx7(
|
|
3022
3023
|
"input",
|
|
3023
3024
|
{
|
|
@@ -3026,7 +3027,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3026
3027
|
value: row.key,
|
|
3027
3028
|
onChange: (e) => updateRowKey(index, e.target.value),
|
|
3028
3029
|
disabled: isImportSaving,
|
|
3029
|
-
className: "w-2/5 rounded border border-
|
|
3030
|
+
className: "w-2/5 rounded border border-[var(--md3-outline-variant)] bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
|
|
3030
3031
|
}
|
|
3031
3032
|
),
|
|
3032
3033
|
/* @__PURE__ */ jsx7(
|
|
@@ -3037,7 +3038,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3037
3038
|
value: row.value,
|
|
3038
3039
|
onChange: (e) => updateRowValue(index, e.target.value),
|
|
3039
3040
|
disabled: isImportSaving,
|
|
3040
|
-
className: "w-2/5 rounded border border-
|
|
3041
|
+
className: "w-2/5 rounded border border-[var(--md3-outline-variant)] bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
|
|
3041
3042
|
}
|
|
3042
3043
|
),
|
|
3043
3044
|
/* @__PURE__ */ jsxs7("div", { className: "flex w-1/5 flex-col items-end gap-1", children: [
|
|
@@ -3076,7 +3077,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3076
3077
|
resetImportState();
|
|
3077
3078
|
},
|
|
3078
3079
|
disabled: isImportSaving,
|
|
3079
|
-
className: "rounded-md border border-
|
|
3080
|
+
className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors disabled:opacity-50 disabled:pointer-events-none",
|
|
3080
3081
|
children: "Cancel"
|
|
3081
3082
|
}
|
|
3082
3083
|
),
|
|
@@ -3109,7 +3110,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3109
3110
|
{
|
|
3110
3111
|
type: "button",
|
|
3111
3112
|
onClick: () => setDeleteTarget(null),
|
|
3112
|
-
className: "rounded-md border border-
|
|
3113
|
+
className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
|
|
3113
3114
|
children: "Cancel"
|
|
3114
3115
|
}
|
|
3115
3116
|
),
|
|
@@ -3125,8 +3126,8 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3125
3126
|
)
|
|
3126
3127
|
] })
|
|
3127
3128
|
] }) }),
|
|
3128
|
-
/* @__PURE__ */ jsxs7("div", { className: "overflow-hidden rounded-lg border border-
|
|
3129
|
-
/* @__PURE__ */ jsxs7("div", { className: "border-b border-
|
|
3129
|
+
/* @__PURE__ */ jsxs7("div", { className: "overflow-hidden rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container shadow-[var(--shadow-card)]", children: [
|
|
3130
|
+
/* @__PURE__ */ jsxs7("div", { className: "border-b border-[var(--md3-outline-variant)] px-6 py-4 flex items-center justify-between", children: [
|
|
3130
3131
|
/* @__PURE__ */ jsx7("div", { className: "flex gap-6", children: /* @__PURE__ */ jsx7("button", { type: "button", className: "text-xs font-bold uppercase tracking-widest text-foreground border-b-2 border-foreground pb-1", children: "All Secrets" }) }),
|
|
3131
3132
|
/* @__PURE__ */ jsxs7("span", { className: "text-xs text-muted-foreground font-mono", children: [
|
|
3132
3133
|
secrets.length,
|
|
@@ -3152,18 +3153,18 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3152
3153
|
}
|
|
3153
3154
|
)
|
|
3154
3155
|
] }) : /* @__PURE__ */ jsxs7("table", { className: "w-full text-left border-collapse", children: [
|
|
3155
|
-
/* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "bg-
|
|
3156
|
+
/* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "bg-surface-container-high border-b border-[var(--md3-outline-variant)]", children: [
|
|
3156
3157
|
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Secret Name" }),
|
|
3157
3158
|
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Encrypted Value" }),
|
|
3158
3159
|
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground text-right", children: "Created" }),
|
|
3159
3160
|
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 w-12" })
|
|
3160
3161
|
] }) }),
|
|
3161
|
-
/* @__PURE__ */ jsx7("tbody", { className: "divide-y divide-border", children: secrets.map((secret) => /* @__PURE__ */ jsxs7("tr", { className: "hover:bg-
|
|
3162
|
+
/* @__PURE__ */ jsx7("tbody", { className: "divide-y divide-border", children: secrets.map((secret) => /* @__PURE__ */ jsxs7("tr", { className: "hover:bg-surface-container-high transition-colors", children: [
|
|
3162
3163
|
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3", children: [
|
|
3163
3164
|
/* @__PURE__ */ jsx7(Key, { className: "h-4 w-4 text-muted-foreground" }),
|
|
3164
3165
|
/* @__PURE__ */ jsx7("span", { className: "text-sm font-bold font-mono text-foreground", children: secret.name })
|
|
3165
3166
|
] }) }),
|
|
3166
|
-
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-
|
|
3167
|
+
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-surface-container-high px-2 py-1 rounded", children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }) }),
|
|
3167
3168
|
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4 text-right", children: /* @__PURE__ */ jsx7("span", { className: "text-xs text-muted-foreground", children: formatDate(secret.createdAt) }) }),
|
|
3168
3169
|
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7(
|
|
3169
3170
|
"button",
|
|
@@ -3179,14 +3180,14 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3179
3180
|
] })
|
|
3180
3181
|
] }),
|
|
3181
3182
|
/* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
|
|
3182
|
-
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-
|
|
3183
|
+
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
|
|
3183
3184
|
/* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
3184
3185
|
/* @__PURE__ */ jsx7("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx7(Shield, { className: "h-5 w-5" }) }),
|
|
3185
3186
|
/* @__PURE__ */ jsx7("h3", { className: "text-sm font-bold text-foreground", children: "Encryption Standard" })
|
|
3186
3187
|
] }),
|
|
3187
3188
|
/* @__PURE__ */ jsx7("p", { className: "text-sm text-muted-foreground leading-relaxed", children: "Your secrets are encrypted using AES-256-GCM at rest and TLS 1.3 in transit. Hardware Security Modules manage all root keys." })
|
|
3188
3189
|
] }),
|
|
3189
|
-
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-
|
|
3190
|
+
/* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
|
|
3190
3191
|
/* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
3191
3192
|
/* @__PURE__ */ jsx7("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx7(Lock, { className: "h-5 w-5" }) }),
|
|
3192
3193
|
/* @__PURE__ */ jsx7("h3", { className: "text-sm font-bold text-foreground", children: "Access Policy" })
|
|
@@ -3207,7 +3208,7 @@ function TemplatesPage({ templates, loading = false, onUseTemplate, className })
|
|
|
3207
3208
|
/* @__PURE__ */ jsx8("h1", { className: "font-bold text-3xl text-foreground", children: "Templates" }),
|
|
3208
3209
|
/* @__PURE__ */ jsx8("p", { className: "mt-1 text-muted-foreground", children: "Pre-configured environments to get started quickly" })
|
|
3209
3210
|
] }),
|
|
3210
|
-
loading || !templates ? /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx8(Skeleton3, { className: "h-56 rounded-2xl" }, i)) }) : templates.length === 0 ? /* @__PURE__ */ jsxs8("div", { className: "rounded-2xl border border-
|
|
3211
|
+
loading || !templates ? /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx8(Skeleton3, { className: "h-56 rounded-2xl" }, i)) }) : templates.length === 0 ? /* @__PURE__ */ jsxs8("div", { className: "rounded-2xl border border-[var(--md3-outline-variant)] bg-surface-container p-16 text-center", children: [
|
|
3211
3212
|
/* @__PURE__ */ jsx8(Layers2, { className: "mx-auto mb-3 h-10 w-10 text-muted-foreground" }),
|
|
3212
3213
|
/* @__PURE__ */ jsx8("p", { className: "text-sm font-medium text-foreground mb-1", children: "No templates available" }),
|
|
3213
3214
|
/* @__PURE__ */ jsx8("p", { className: "text-sm text-muted-foreground", children: "Check back later for pre-configured environments." })
|
|
@@ -3594,11 +3595,11 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3594
3595
|
}
|
|
3595
3596
|
),
|
|
3596
3597
|
/* @__PURE__ */ jsxs9("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-4", children: [
|
|
3597
|
-
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-
|
|
3598
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
|
|
3598
3599
|
/* @__PURE__ */ jsx9("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Total Scripts" }),
|
|
3599
3600
|
/* @__PURE__ */ jsx9("div", { className: "mt-2 flex items-baseline gap-2", children: /* @__PURE__ */ jsx9("span", { className: "font-display text-2xl font-extrabold text-foreground", children: scripts.length }) })
|
|
3600
3601
|
] }),
|
|
3601
|
-
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-
|
|
3602
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
|
|
3602
3603
|
/* @__PURE__ */ jsx9("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Active" }),
|
|
3603
3604
|
/* @__PURE__ */ jsxs9("div", { className: "mt-2 flex items-baseline gap-2", children: [
|
|
3604
3605
|
/* @__PURE__ */ jsx9("span", { className: "font-display text-2xl font-extrabold text-foreground", children: activeCount }),
|
|
@@ -3643,7 +3644,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3643
3644
|
{
|
|
3644
3645
|
type: "button",
|
|
3645
3646
|
onClick: () => openBlankScript(type),
|
|
3646
|
-
className: "rounded-lg border border-
|
|
3647
|
+
className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2.5 text-sm font-medium text-foreground hover:border-primary/30 hover:bg-surface-container-high transition-colors",
|
|
3647
3648
|
children: meta.label
|
|
3648
3649
|
},
|
|
3649
3650
|
type
|
|
@@ -3656,16 +3657,16 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3656
3657
|
{
|
|
3657
3658
|
type: "button",
|
|
3658
3659
|
onClick: () => openFromTemplate(tmpl),
|
|
3659
|
-
className: "w-full text-left rounded-lg border border-
|
|
3660
|
+
className: "w-full text-left rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-4 hover:border-primary/30 hover:bg-surface-container-high transition-colors group",
|
|
3660
3661
|
children: [
|
|
3661
3662
|
/* @__PURE__ */ jsxs9("div", { className: "flex items-center justify-between", children: [
|
|
3662
3663
|
/* @__PURE__ */ jsxs9("div", { children: [
|
|
3663
3664
|
/* @__PURE__ */ jsx9("h4", { className: "text-sm font-bold text-foreground group-hover:text-primary transition-colors", children: tmpl.name }),
|
|
3664
3665
|
/* @__PURE__ */ jsx9("p", { className: "mt-0.5 text-xs text-muted-foreground", children: tmpl.description })
|
|
3665
3666
|
] }),
|
|
3666
|
-
/* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-
|
|
3667
|
+
/* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[tmpl.scriptType].label })
|
|
3667
3668
|
] }),
|
|
3668
|
-
tmpl.injectSecrets.length > 0 && /* @__PURE__ */ jsx9("div", { className: "mt-2 flex flex-wrap gap-1", children: tmpl.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-0.5 rounded-full bg-
|
|
3669
|
+
tmpl.injectSecrets.length > 0 && /* @__PURE__ */ jsx9("div", { className: "mt-2 flex flex-wrap gap-1", children: tmpl.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-0.5 rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] text-muted-foreground", children: [
|
|
3669
3670
|
/* @__PURE__ */ jsx9(Lock2, { className: "h-2.5 w-2.5" }),
|
|
3670
3671
|
s
|
|
3671
3672
|
] }, s)) })
|
|
@@ -3702,7 +3703,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3702
3703
|
onChange: (e) => setFormData((p) => ({ ...p, name: e.target.value })),
|
|
3703
3704
|
placeholder: "Install Claude Code",
|
|
3704
3705
|
maxLength: 64,
|
|
3705
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3706
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3706
3707
|
}
|
|
3707
3708
|
)
|
|
3708
3709
|
] }),
|
|
@@ -3716,7 +3717,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3716
3717
|
onChange: (e) => setFormData((p) => ({ ...p, description: e.target.value })),
|
|
3717
3718
|
placeholder: "Sets up Claude Code with authentication",
|
|
3718
3719
|
maxLength: 256,
|
|
3719
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3720
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3720
3721
|
}
|
|
3721
3722
|
)
|
|
3722
3723
|
] }),
|
|
@@ -3737,7 +3738,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3737
3738
|
},
|
|
3738
3739
|
className: cn(
|
|
3739
3740
|
"rounded-lg px-3 py-1.5 text-xs font-medium border transition-colors",
|
|
3740
|
-
formData.scriptType === type ? "bg-primary/10 border-primary/30 text-primary" : "bg-
|
|
3741
|
+
formData.scriptType === type ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
|
|
3741
3742
|
),
|
|
3742
3743
|
children: meta.label
|
|
3743
3744
|
},
|
|
@@ -3753,7 +3754,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3753
3754
|
onChange: (e) => setFormData((p) => ({ ...p, content: e.target.value })),
|
|
3754
3755
|
rows: 12,
|
|
3755
3756
|
spellCheck: false,
|
|
3756
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3757
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-4 py-3 font-mono text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y"
|
|
3757
3758
|
}
|
|
3758
3759
|
),
|
|
3759
3760
|
/* @__PURE__ */ jsxs9("p", { className: "mt-1 text-xs text-muted-foreground", children: [
|
|
@@ -3775,7 +3776,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3775
3776
|
onClick: () => toggleSecret(secret.name),
|
|
3776
3777
|
className: cn(
|
|
3777
3778
|
"inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs font-medium border transition-colors",
|
|
3778
|
-
selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-
|
|
3779
|
+
selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
|
|
3779
3780
|
),
|
|
3780
3781
|
children: [
|
|
3781
3782
|
/* @__PURE__ */ jsx9(Lock2, { className: "h-3 w-3" }),
|
|
@@ -3799,7 +3800,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3799
3800
|
]
|
|
3800
3801
|
}
|
|
3801
3802
|
),
|
|
3802
|
-
showConditions && /* @__PURE__ */ jsxs9("div", { className: "mt-3 space-y-4 rounded-lg border border-
|
|
3803
|
+
showConditions && /* @__PURE__ */ jsxs9("div", { className: "mt-3 space-y-4 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high p-4", children: [
|
|
3803
3804
|
/* @__PURE__ */ jsxs9("div", { children: [
|
|
3804
3805
|
/* @__PURE__ */ jsxs9("label", { className: "text-xs font-bold uppercase tracking-widest text-muted-foreground flex items-center gap-1.5", children: [
|
|
3805
3806
|
/* @__PURE__ */ jsx9(Layers3, { className: "h-3.5 w-3.5" }),
|
|
@@ -3815,7 +3816,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3815
3816
|
onClick: () => toggleEnvironment(env.id),
|
|
3816
3817
|
className: cn(
|
|
3817
3818
|
"rounded-full px-3 py-1 text-xs font-medium border transition-colors",
|
|
3818
|
-
selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-
|
|
3819
|
+
selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
|
|
3819
3820
|
),
|
|
3820
3821
|
children: env.name || env.id
|
|
3821
3822
|
},
|
|
@@ -3841,7 +3842,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3841
3842
|
placeholder: "Any",
|
|
3842
3843
|
min: 0.5,
|
|
3843
3844
|
step: 0.5,
|
|
3844
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3845
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3845
3846
|
}
|
|
3846
3847
|
)
|
|
3847
3848
|
] }),
|
|
@@ -3862,7 +3863,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3862
3863
|
placeholder: "Any",
|
|
3863
3864
|
min: 1,
|
|
3864
3865
|
step: 1,
|
|
3865
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3866
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3866
3867
|
}
|
|
3867
3868
|
)
|
|
3868
3869
|
] })
|
|
@@ -3881,7 +3882,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3881
3882
|
onChange: (e) => setFormData((p) => ({ ...p, runOrder: e.target.value ? Math.max(0, Number(e.target.value)) : 0 })),
|
|
3882
3883
|
min: 0,
|
|
3883
3884
|
max: 9999,
|
|
3884
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3885
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3885
3886
|
}
|
|
3886
3887
|
),
|
|
3887
3888
|
/* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs text-muted-foreground", children: "Lower runs first" })
|
|
@@ -3899,7 +3900,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3899
3900
|
onChange: (e) => setFormData((p) => ({ ...p, timeoutSeconds: e.target.value ? Math.max(5, Number(e.target.value)) : 300 })),
|
|
3900
3901
|
min: 5,
|
|
3901
3902
|
max: 3600,
|
|
3902
|
-
className: "mt-1.5 w-full rounded-lg border border-
|
|
3903
|
+
className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
3903
3904
|
}
|
|
3904
3905
|
)
|
|
3905
3906
|
] })
|
|
@@ -3971,7 +3972,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3971
3972
|
{
|
|
3972
3973
|
type: "button",
|
|
3973
3974
|
onClick: () => goToStep("picker"),
|
|
3974
|
-
className: "inline-flex items-center gap-1.5 rounded-lg border border-
|
|
3975
|
+
className: "inline-flex items-center gap-1.5 rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:bg-surface-container-high transition-colors",
|
|
3975
3976
|
children: [
|
|
3976
3977
|
/* @__PURE__ */ jsx9("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx9("path", { d: "m15 18-6-6 6-6" }) }),
|
|
3977
3978
|
"Back"
|
|
@@ -3984,7 +3985,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3984
3985
|
{
|
|
3985
3986
|
type: "button",
|
|
3986
3987
|
onClick: () => setIsDialogOpen(false),
|
|
3987
|
-
className: "rounded-lg border border-
|
|
3988
|
+
className: "rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
|
|
3988
3989
|
children: "Cancel"
|
|
3989
3990
|
}
|
|
3990
3991
|
),
|
|
@@ -4020,7 +4021,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4020
4021
|
{
|
|
4021
4022
|
type: "button",
|
|
4022
4023
|
onClick: () => setDeleteTarget(null),
|
|
4023
|
-
className: "rounded-lg border border-
|
|
4024
|
+
className: "rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
|
|
4024
4025
|
children: "Cancel"
|
|
4025
4026
|
}
|
|
4026
4027
|
),
|
|
@@ -4036,8 +4037,8 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4036
4037
|
)
|
|
4037
4038
|
] })
|
|
4038
4039
|
] }) }),
|
|
4039
|
-
/* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-lg border border-
|
|
4040
|
-
/* @__PURE__ */ jsxs9("div", { className: "border-b border-
|
|
4040
|
+
/* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container shadow-[var(--shadow-card)]", children: [
|
|
4041
|
+
/* @__PURE__ */ jsxs9("div", { className: "border-b border-[var(--md3-outline-variant)] px-6 py-4 flex items-center justify-between", children: [
|
|
4041
4042
|
/* @__PURE__ */ jsx9("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx9("button", { className: "text-xs font-bold uppercase tracking-widest text-foreground", children: "All Scripts" }) }),
|
|
4042
4043
|
/* @__PURE__ */ jsxs9("span", { className: "text-xs text-muted-foreground font-mono", children: [
|
|
4043
4044
|
scripts.length,
|
|
@@ -4062,11 +4063,11 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4062
4063
|
]
|
|
4063
4064
|
}
|
|
4064
4065
|
)
|
|
4065
|
-
] }) : /* @__PURE__ */ jsx9("div", { className: "divide-y divide-
|
|
4066
|
+
] }) : /* @__PURE__ */ jsx9("div", { className: "divide-y divide-[var(--md3-outline-variant)]", children: scripts.map((script) => /* @__PURE__ */ jsxs9(
|
|
4066
4067
|
"div",
|
|
4067
4068
|
{
|
|
4068
4069
|
className: cn(
|
|
4069
|
-
"group flex items-center gap-4 px-6 py-4 transition-colors hover:bg-
|
|
4070
|
+
"group flex items-center gap-4 px-6 py-4 transition-colors hover:bg-surface-container-high",
|
|
4070
4071
|
!script.enabled && "opacity-60"
|
|
4071
4072
|
),
|
|
4072
4073
|
children: [
|
|
@@ -4086,8 +4087,8 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4086
4087
|
/* @__PURE__ */ jsxs9("div", { className: "flex-1 min-w-0", children: [
|
|
4087
4088
|
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2", children: [
|
|
4088
4089
|
/* @__PURE__ */ jsx9("h4", { className: "text-sm font-bold text-foreground truncate", children: script.name }),
|
|
4089
|
-
/* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-
|
|
4090
|
-
script.runOrder !== 100 && /* @__PURE__ */ jsxs9("span", { className: "text-[10px] font-mono text-muted-foreground bg-
|
|
4090
|
+
/* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[script.scriptType ?? "bash"].label }),
|
|
4091
|
+
script.runOrder !== 100 && /* @__PURE__ */ jsxs9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: [
|
|
4091
4092
|
"#",
|
|
4092
4093
|
script.runOrder
|
|
4093
4094
|
] })
|
|
@@ -4095,7 +4096,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4095
4096
|
script.description && /* @__PURE__ */ jsx9("p", { className: "mt-0.5 text-xs text-muted-foreground truncate", children: script.description }),
|
|
4096
4097
|
/* @__PURE__ */ jsxs9("div", { className: "mt-1.5 flex flex-wrap gap-1.5", children: [
|
|
4097
4098
|
script.environments.map((env) => /* @__PURE__ */ jsx9("span", { className: "rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary", children: env }, env)),
|
|
4098
|
-
script.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "rounded-full bg-
|
|
4099
|
+
script.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] font-medium text-muted-foreground flex items-center gap-0.5", children: [
|
|
4099
4100
|
/* @__PURE__ */ jsx9(Lock2, { className: "h-2.5 w-2.5" }),
|
|
4100
4101
|
s
|
|
4101
4102
|
] }, s)),
|
|
@@ -4114,7 +4115,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4114
4115
|
{
|
|
4115
4116
|
type: "button",
|
|
4116
4117
|
onClick: () => openEdit(script),
|
|
4117
|
-
className: "rounded-md p-2 text-muted-foreground hover:text-foreground hover:bg-
|
|
4118
|
+
className: "rounded-md p-2 text-muted-foreground hover:text-foreground hover:bg-surface-container-high transition-colors",
|
|
4118
4119
|
"aria-label": `Edit ${script.name}`,
|
|
4119
4120
|
children: /* @__PURE__ */ jsx9(Pencil, { className: "h-4 w-4" })
|
|
4120
4121
|
}
|
|
@@ -4136,14 +4137,14 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4136
4137
|
)) })
|
|
4137
4138
|
] }),
|
|
4138
4139
|
/* @__PURE__ */ jsxs9("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
|
|
4139
|
-
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-
|
|
4140
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
|
|
4140
4141
|
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
4141
4142
|
/* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx9(Play, { className: "h-5 w-5" }) }),
|
|
4142
4143
|
/* @__PURE__ */ jsx9("h3", { className: "text-sm font-bold text-foreground", children: "How Scripts Run" })
|
|
4143
4144
|
] }),
|
|
4144
4145
|
/* @__PURE__ */ jsx9("p", { className: "text-sm text-muted-foreground", children: 'Scripts execute in order after the container starts but before the AI agent. They run as bash scripts with full access to mounted tools (Nix profile) and workspace. Failed scripts abort sandbox creation unless "continue on failure" is enabled.' })
|
|
4145
4146
|
] }),
|
|
4146
|
-
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-
|
|
4147
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
|
|
4147
4148
|
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
4148
4149
|
/* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx9(Shield2, { className: "h-5 w-5" }) }),
|
|
4149
4150
|
/* @__PURE__ */ jsx9("h3", { className: "text-sm font-bold text-foreground", children: "Security & Secrets" })
|