loopable-cli 0.1.0 → 0.2.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/.output/nitro.json +1 -1
- package/.output/public/assets/_connectorId-m67WbiJ8.js +1 -0
- package/.output/public/assets/_loopId-Bf4K5sdd.js +1 -0
- package/.output/public/assets/_taskId-eCKkcVOx.js +1 -0
- package/.output/public/assets/alert-BT2EVMJP.js +1 -0
- package/.output/public/assets/arrow-left-CWUZt6k2.js +1 -0
- package/.output/public/assets/arrow-right-dy_oOg_c.js +1 -0
- package/.output/public/assets/connection-status-DCqqmY_6.js +1 -0
- package/.output/public/assets/connector-icon-qGpNsPgH.js +1 -0
- package/.output/public/assets/connectors-DxXlc9zF.js +1 -0
- package/.output/public/assets/{external-link-D46X-bXa.js → external-link-DC11orFA.js} +1 -1
- package/.output/public/assets/gaps-CoTA-PzA.js +1 -0
- package/.output/public/assets/inbox-CLEXUXCI.js +1 -0
- package/.output/public/assets/index-Cndsw84p.js +16 -0
- package/.output/public/assets/{loader-CcBl2u8m.js → loader-B4Epchm_.js} +1 -1
- package/.output/public/assets/loop-form-BvizlZdR.js +1 -0
- package/.output/public/assets/loops-Dbe_mf5T.js +1 -0
- package/.output/public/assets/new-DPEaXKAY.js +1 -0
- package/.output/public/assets/play-DD4xQgvi.js +1 -0
- package/.output/public/assets/preload-helper-CfdAYKD7.js +3 -0
- package/.output/public/assets/rolldown-runtime-CbXtAM7H.js +1 -0
- package/.output/public/assets/runners-BVBggS5B.js +1 -0
- package/.output/public/assets/select-Cppu-hti.js +1 -0
- package/.output/public/assets/setting-fields-BT1naVJX.js +3 -0
- package/.output/public/assets/{styles-DZL5V1o7.css → styles-D3sonCfX.css} +1 -1
- package/.output/public/assets/switch-hRIbNGOj.js +1 -0
- package/.output/public/assets/task-list-CrptnI1N.js +1 -0
- package/.output/public/assets/textarea-Fyuzi6Vp.js +1 -0
- package/.output/public/assets/{trash-2-D6u6NpzO.js → trash-2-BXZzBsoV.js} +1 -1
- package/.output/public/assets/useValueChanged-VVyq4hb9.js +1 -0
- package/.output/server/{_connectorId-8nb5yOzG.mjs → _connectorId-DcSnoRjk.mjs} +8 -8
- package/.output/server/_libs/@base-ui/react+[...].mjs +427 -427
- package/.output/server/{_loopId-BsUL1SeL.mjs → _loopId-G_TAkYtS.mjs} +8 -8
- package/.output/server/_ssr/{access-zIl15o8y.mjs → access-B7TcOZ7F.mjs} +2 -2
- package/.output/server/_ssr/{agents-Btql102J.mjs → agents-CrUmIQpi.mjs} +3 -3
- package/.output/server/_ssr/{agents-DAOZPgO2.mjs → agents-Dms_6TBF.mjs} +3 -3
- package/.output/server/_ssr/{alert-NEiOCTOl.mjs → alert-DQvzE7bu.mjs} +1 -1
- package/.output/server/_ssr/{callback-CUINvl7M.mjs → callback-D20cVD2w.mjs} +21 -4
- package/.output/server/_ssr/{client-CKkOfh-s.mjs → client-BtVRVhQ2.mjs} +4 -2
- package/.output/server/_ssr/{connection-status-Bi5peUAk.mjs → connection-status-BZr3Y-IC.mjs} +2 -2
- package/.output/server/_ssr/{connections-qnw2GVlP.mjs → connections-ypex3qUd.mjs} +3 -3
- package/.output/server/_ssr/{connector-icon-DZXQLLFo.mjs → connector-icon-CFrrHjzR.mjs} +2 -2
- package/.output/server/_ssr/{connectors-BHNwuIMj.mjs → connectors-4yzKb0KG.mjs} +5 -5
- package/.output/server/_ssr/{connectors-C28g0i4c.mjs → connectors-BZly0yGF.mjs} +2 -2
- package/.output/server/_ssr/{gaps-RAFSXLZf.mjs → gaps-D2Zh8sEo.mjs} +3 -3
- package/.output/server/_ssr/inbox-C2VBGLa5.mjs +114 -0
- package/.output/server/_ssr/{loop-form-DlObSewZ.mjs → loop-form-D-U-kU4k.mjs} +8 -7
- package/.output/server/_ssr/{loops-xt2Bn7_q.mjs → loops-D0XJ8eBb.mjs} +8 -8
- package/.output/server/_ssr/{loops-APFcP0y6.mjs → loops-Og_G3KyZ.mjs} +6 -6
- package/.output/server/_ssr/{new-DfKyd2Wa.mjs → new-CajvgIog.mjs} +5 -5
- package/.output/server/_ssr/{router-3WmpE5b_.mjs → router-BbrBz36P.mjs} +63 -62
- package/.output/server/_ssr/{runners-By-mwc3F.mjs → runners-B_WuF8UJ.mjs} +3 -3
- package/.output/server/_ssr/{runners-DtXs4Q8a.mjs → runners-D-0_lfiq.mjs} +3 -3
- package/.output/server/_ssr/{runners-DI_NxpHC.mjs → runners-zqF_zbEc.mjs} +4 -4
- package/.output/server/_ssr/{secrets-Hqti-niS.mjs → secrets-CRnpwGBh.mjs} +2 -2
- package/.output/server/_ssr/{setting-fields-8vKFj4df.mjs → setting-fields-mpXfGftI.mjs} +6 -13
- package/.output/server/_ssr/ssr.mjs +37 -33
- package/.output/server/_ssr/{start-Bdc2GJUI.mjs → start-BgTj-h_C.mjs} +4 -4
- package/.output/server/_ssr/{switch-ReNglgH6.mjs → switch-1pnd_bPJ.mjs} +2 -2
- package/.output/server/_ssr/{task-list-CUITIqkb.mjs → task-list-BnQJ94Dk.mjs} +9 -8
- package/.output/server/_ssr/{tasks-vcoodp_D.mjs → tasks-B_QmDFVs.mjs} +87 -8
- package/.output/server/_ssr/{tasks-SAjNovX6.mjs → tasks-LIi-W4cy.mjs} +15 -6
- package/.output/server/_ssr/textarea-CHJTKtsJ.mjs +14 -0
- package/.output/server/{_tanstack-start-manifest_v-C0cP5F0M.mjs → _tanstack-start-manifest_v-BCHAazE8.mjs} +52 -48
- package/.output/server/{_taskId-CXS3lod0.mjs → _taskId-CIv0ajIx.mjs} +17 -10
- package/.output/server/index.mjs +160 -160
- package/README.md +3 -3
- package/dist/cli.mjs +7181 -16
- package/dist/dispatcher.mjs +33 -2
- package/drizzle/0024_prompt_tasks.sql +44 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +1 -1
- package/.output/public/assets/_connectorId-BWjYn5tm.js +0 -1
- package/.output/public/assets/_loopId-Ds4RkyEc.js +0 -1
- package/.output/public/assets/_taskId-BOzICXDf.js +0 -1
- package/.output/public/assets/alert-Bn9-Zm0l.js +0 -1
- package/.output/public/assets/arrow-left-BF9juV9T.js +0 -1
- package/.output/public/assets/arrow-right-CzqvnOY1.js +0 -1
- package/.output/public/assets/button-HCY6DCY-.js +0 -1
- package/.output/public/assets/connection-status-CYZB8kLy.js +0 -1
- package/.output/public/assets/connector-icon-BZ_MUJV_.js +0 -1
- package/.output/public/assets/connectors-BvzttfSu.js +0 -1
- package/.output/public/assets/connectors-DdJNwRN_.js +0 -1
- package/.output/public/assets/gaps-D-I6xiDc.js +0 -1
- package/.output/public/assets/inbox-BUUu9xxE.js +0 -1
- package/.output/public/assets/index-ztzex0FN.js +0 -10
- package/.output/public/assets/loop-form-dB3CLcZb.js +0 -1
- package/.output/public/assets/loops-DRunQrxL.js +0 -1
- package/.output/public/assets/loops-oSdqMd29.js +0 -1
- package/.output/public/assets/manifests-DNMqf7Vi.js +0 -7
- package/.output/public/assets/new-uyFxVjuB.js +0 -1
- package/.output/public/assets/preload-helper-ORbuV86A.js +0 -3
- package/.output/public/assets/runners-DSU3r5Ww.js +0 -1
- package/.output/public/assets/setting-fields-ixkpdBb-.js +0 -3
- package/.output/public/assets/switch-d5ummmHY.js +0 -1
- package/.output/public/assets/task-list-BpOStt9v.js +0 -1
- package/.output/public/assets/tasks-B8MsKgic.js +0 -1
- package/.output/server/_ssr/inbox-k5zHergU.mjs +0 -35
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { i as __toESM } from "../_runtime.mjs";
|
|
2
|
-
import { A as DialogRoot, B as mergeProps, C as TooltipArrow, D as TooltipTrigger$1, E as TooltipPortal, F as DialogBackdrop, I as Separator, L as Input, M as DialogPopup, N as DialogDescription, O as TooltipRoot, P as DialogClose, R as
|
|
2
|
+
import { A as DialogRoot, B as mergeProps, C as TooltipArrow, D as TooltipTrigger$1, E as TooltipPortal, F as DialogBackdrop, I as Separator, L as Input, M as DialogPopup, N as DialogDescription, O as TooltipRoot, P as DialogClose, R as useRender, S as SelectRoot, T as TooltipPositioner, U as require_jsx_runtime, W as require_react, _ as SelectPositioner, b as SelectValue$1, d as SelectScrollDownArrow, f as SelectItemText, g as SelectPopup, h as SelectList, j as DialogPortal, k as DialogTitle, m as SelectItem$1, p as SelectItemIndicator, u as SelectScrollUpArrow, v as SelectPortal, w as TooltipPopup, x as SelectTrigger$1, y as SelectIcon, z as Button } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
3
|
import { a as useRouterState, c as Outlet, d as createRootRoute, f as Link, g as notFound, h as redirect, i as HeadContent, l as lazyRouteComponent, m as useRouter, r as Scripts, s as createRouter, u as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
4
|
import { i as getServerFnById, n as createServerFn, r as TSS_SERVER_FUNCTION } from "./ssr.mjs";
|
|
5
5
|
import { n as clsx, t as cva } from "../_libs/class-variance-authority+clsx.mjs";
|
|
6
6
|
import { t as twMerge } from "../_libs/tailwind-merge.mjs";
|
|
7
7
|
import { _ as or, d as and, f as eq, g as lte, m as isNull } from "../_libs/drizzle-orm.mjs";
|
|
8
|
-
import { d as runDir, g as tasks, s as db, t as __exportAll, u as rowsChanged } from "./client-
|
|
9
|
-
import { n as isHosted } from "./secrets-
|
|
10
|
-
import { a as connectorManifest, f as saveAuthorizedConnection, m as takeAuthAttempt, o as connectorRuntime, p as startAuthAttempt } from "./connections-
|
|
11
|
-
import { n as callbackUrl, t as appOrigin } from "./callback-
|
|
12
|
-
import { t as AGENT_MANIFESTS } from "./agents-
|
|
13
|
-
import { r as bearer } from "./access-
|
|
14
|
-
import { a as heartbeatRunner, d as runnerIdForToken, i as getRunner, o as isRunnerOnline, s as joinRunner } from "./runners-
|
|
15
|
-
import {
|
|
8
|
+
import { d as runDir, g as tasks, s as db, t as __exportAll, u as rowsChanged } from "./client-BtVRVhQ2.mjs";
|
|
9
|
+
import { n as isHosted } from "./secrets-CRnpwGBh.mjs";
|
|
10
|
+
import { a as connectorManifest, f as saveAuthorizedConnection, m as takeAuthAttempt, o as connectorRuntime, p as startAuthAttempt } from "./connections-ypex3qUd.mjs";
|
|
11
|
+
import { n as callbackUrl, t as appOrigin } from "./callback-D20cVD2w.mjs";
|
|
12
|
+
import { t as AGENT_MANIFESTS } from "./agents-CrUmIQpi.mjs";
|
|
13
|
+
import { r as bearer } from "./access-B7TcOZ7F.mjs";
|
|
14
|
+
import { a as heartbeatRunner, d as runnerIdForToken, i as getRunner, o as isRunnerOnline, s as joinRunner } from "./runners-D-0_lfiq.mjs";
|
|
15
|
+
import { f as taskRow, o as jobForTask, p as updateTask, s as jobRequiresHost, t as absorbAgentOutput } from "./tasks-B_QmDFVs.mjs";
|
|
16
16
|
import { F as Check, I as Bot, M as CircleAlert, N as ChevronUp, O as CirclePlay, P as ChevronDown, _ as LoaderCircle, a as Terminal, d as Plug, h as MousePointerClick, j as CircleCheck, k as CirclePause, m as OctagonX, n as Workflow, o as Settings, p as PanelLeft, r as TriangleAlert, s as Server, t as X, v as Info, y as Inbox } from "../_libs/lucide-react.mjs";
|
|
17
17
|
import { n as toast, t as Toaster } from "../_libs/sonner.mjs";
|
|
18
18
|
import { t as z } from "../_libs/next-themes.mjs";
|
|
@@ -20,12 +20,49 @@ import { randomBytes } from "node:crypto";
|
|
|
20
20
|
import { appendFileSync, existsSync } from "node:fs";
|
|
21
21
|
import { join } from "node:path";
|
|
22
22
|
import { hostname } from "node:os";
|
|
23
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/card-
|
|
23
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/card-vAtU-sOo.js
|
|
24
24
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
25
25
|
var import_jsx_runtime = require_jsx_runtime();
|
|
26
26
|
function cn(...inputs) {
|
|
27
27
|
return twMerge(clsx(inputs));
|
|
28
28
|
}
|
|
29
|
+
var buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
30
|
+
variants: {
|
|
31
|
+
variant: {
|
|
32
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
33
|
+
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
34
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
35
|
+
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
36
|
+
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
37
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
38
|
+
},
|
|
39
|
+
size: {
|
|
40
|
+
default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
41
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
42
|
+
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
43
|
+
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
44
|
+
icon: "size-8",
|
|
45
|
+
"icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
46
|
+
"icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
47
|
+
"icon-lg": "size-9"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
defaultVariants: {
|
|
51
|
+
variant: "default",
|
|
52
|
+
size: "default"
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
function Button$1({ className, variant = "default", size = "default", ...props }) {
|
|
56
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
|
|
57
|
+
"data-slot": "button",
|
|
58
|
+
className: cn(buttonVariants({
|
|
59
|
+
variant,
|
|
60
|
+
size,
|
|
61
|
+
className
|
|
62
|
+
})),
|
|
63
|
+
...props
|
|
64
|
+
});
|
|
65
|
+
}
|
|
29
66
|
var createSsrRpc = (functionId) => {
|
|
30
67
|
const url = "/_serverFn/" + functionId;
|
|
31
68
|
const serverFnMeta = { id: functionId };
|
|
@@ -90,7 +127,7 @@ function CardContent({ className, ...props }) {
|
|
|
90
127
|
});
|
|
91
128
|
}
|
|
92
129
|
//#endregion
|
|
93
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/connectors-
|
|
130
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/connectors-BVFx4tKA.js
|
|
94
131
|
/**
|
|
95
132
|
* Readiness and connections for every connector in the registry. Manifests are
|
|
96
133
|
* imported directly by the client, so they are deliberately not sent again.
|
|
@@ -111,18 +148,19 @@ var disconnectConnection = createServerFn({ method: "POST" }).inputValidator((da
|
|
|
111
148
|
var verifyConnection = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("f9ade3084971078ee9f2bc16fcdcdfb5a8d66a0f9b634803bb611287c14e21d7"));
|
|
112
149
|
var saveConnectionSettings = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("18bae5deb2a19571893f0067e374e537f16d6774f9b4e04f9b7349360f6f8fdc"));
|
|
113
150
|
//#endregion
|
|
114
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-
|
|
151
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-DXjXqmnW.js
|
|
115
152
|
var getInbox = createServerFn({ method: "GET" }).handler(createSsrRpc("48bc32df9d6f69f45df8dfbc6e798e1f99152dbd4b4ed65b149fa2612c65e687"));
|
|
116
153
|
var getLoopTasks = createServerFn({ method: "GET" }).inputValidator((data) => data).handler(createSsrRpc("3f938fac3e5ec1631e700a2fdd4790e78abbefeb732ecfbbe6864cc19f0d5aac"));
|
|
117
154
|
var getTaskById = createServerFn({ method: "GET" }).inputValidator((data) => data).handler(createSsrRpc("0033ef7c619c027b1428a722dff188d315ed335645afcb1033528630b7c95e88"));
|
|
118
155
|
var getTaskLog = createServerFn({ method: "GET" }).inputValidator((data) => data).handler(createSsrRpc("81f567724371f0d6f24e636906e2e9ea5b7384422ac583c86a1050fb838664ce"));
|
|
156
|
+
var runPrompt = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("bef559b165754b06d6d5cf7c6dccde3d5a6a326462430c621eb131f78665d6e1"));
|
|
119
157
|
var runLoopNow = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("7258ce5fc6f23acf3aab039ecd4acdb006d42b2ddbf3ab8629b4000e101b51dc"));
|
|
120
158
|
var stopTask = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("a57f49c322cc5afa2996e4a5777fa533fd963755d614d4a14eb32e51fb198d9d"));
|
|
121
159
|
/** Whether the dispatcher is up, and how hard it is allowed to pull. */
|
|
122
160
|
var getDispatcherState = createServerFn({ method: "GET" }).handler(createSsrRpc("921b049ebafe3c6fb5206fbe3e2100608d3333b944e18385e57da62a28233bc6"));
|
|
123
161
|
var pauseDispatcher = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("0fa144f67263a4a51c51e8baf134a15b89c0afdf9b92b64660520a5bce247eec"));
|
|
124
162
|
//#endregion
|
|
125
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loops-
|
|
163
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loops-DOq_YXyk.js
|
|
126
164
|
/**
|
|
127
165
|
* Saving is both making and changing, told apart by whether there is an id.
|
|
128
166
|
* A loop chosen and not yet saved has none, and nothing on the server knew
|
|
@@ -139,7 +177,7 @@ var reorderLoop = createServerFn({ method: "POST" }).inputValidator((data) => da
|
|
|
139
177
|
var getLoopPollState = createServerFn({ method: "GET" }).inputValidator((data) => data).handler(createSsrRpc("4fd3855e3e9ed954e102071a55b98d91651c9b1e353161f7223768ed6f2b8c28"));
|
|
140
178
|
var runLoopBacklog = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("65494cbfd06143dbd9a012808fbba21163d9902e387869503fb8b68b0674902b"));
|
|
141
179
|
//#endregion
|
|
142
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/router-
|
|
180
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/router-BbrBz36P.js
|
|
143
181
|
/**
|
|
144
182
|
* Loopable's mark: something going round, and the thing it goes round for.
|
|
145
183
|
*
|
|
@@ -182,43 +220,6 @@ function LoopableMark({ className }) {
|
|
|
182
220
|
]
|
|
183
221
|
});
|
|
184
222
|
}
|
|
185
|
-
var buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
186
|
-
variants: {
|
|
187
|
-
variant: {
|
|
188
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
189
|
-
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
190
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
191
|
-
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
192
|
-
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
193
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
194
|
-
},
|
|
195
|
-
size: {
|
|
196
|
-
default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
197
|
-
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
198
|
-
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
199
|
-
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
200
|
-
icon: "size-8",
|
|
201
|
-
"icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
202
|
-
"icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
203
|
-
"icon-lg": "size-9"
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
defaultVariants: {
|
|
207
|
-
variant: "default",
|
|
208
|
-
size: "default"
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
function Button$1({ className, variant = "default", size = "default", ...props }) {
|
|
212
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
|
|
213
|
-
"data-slot": "button",
|
|
214
|
-
className: cn(buttonVariants({
|
|
215
|
-
variant,
|
|
216
|
-
size,
|
|
217
|
-
className
|
|
218
|
-
})),
|
|
219
|
-
...props
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
223
|
/**
|
|
223
224
|
* The dispatcher can stop between two page loads and nothing on a page would
|
|
224
225
|
* change, so this asks rather than waiting to be told.
|
|
@@ -776,7 +777,7 @@ var Toaster$1 = ({ ...props }) => {
|
|
|
776
777
|
...props
|
|
777
778
|
});
|
|
778
779
|
};
|
|
779
|
-
var styles_default = "/assets/styles-
|
|
780
|
+
var styles_default = "/assets/styles-D3sonCfX.css";
|
|
780
781
|
var Route$18 = createRootRoute({
|
|
781
782
|
head: () => ({
|
|
782
783
|
meta: [
|
|
@@ -1147,7 +1148,7 @@ function AgentRow({ manifest, view }) {
|
|
|
1147
1148
|
]
|
|
1148
1149
|
}) : null] });
|
|
1149
1150
|
}
|
|
1150
|
-
var $$splitComponentImporter$7 = () => import("./connectors-
|
|
1151
|
+
var $$splitComponentImporter$7 = () => import("./connectors-4yzKb0KG.mjs");
|
|
1151
1152
|
var Route$15 = createFileRoute("/connectors/")({
|
|
1152
1153
|
validateSearch: (search) => {
|
|
1153
1154
|
const result = {};
|
|
@@ -1158,7 +1159,7 @@ var Route$15 = createFileRoute("/connectors/")({
|
|
|
1158
1159
|
loader: () => getConnectorOverview(),
|
|
1159
1160
|
component: lazyRouteComponent($$splitComponentImporter$7, "component")
|
|
1160
1161
|
});
|
|
1161
|
-
var $$splitComponentImporter$6 = () => import("../_connectorId-
|
|
1162
|
+
var $$splitComponentImporter$6 = () => import("../_connectorId-DcSnoRjk.mjs");
|
|
1162
1163
|
var Route$14 = createFileRoute("/connectors/$connectorId")({
|
|
1163
1164
|
loader: async ({ params }) => {
|
|
1164
1165
|
if (!connectorManifest(params.connectorId)) throw notFound();
|
|
@@ -1168,12 +1169,12 @@ var Route$14 = createFileRoute("/connectors/$connectorId")({
|
|
|
1168
1169
|
},
|
|
1169
1170
|
component: lazyRouteComponent($$splitComponentImporter$6, "component")
|
|
1170
1171
|
});
|
|
1171
|
-
var $$splitComponentImporter$5 = () => import("./inbox-
|
|
1172
|
+
var $$splitComponentImporter$5 = () => import("./inbox-C2VBGLa5.mjs");
|
|
1172
1173
|
var Route$13 = createFileRoute("/inbox/")({
|
|
1173
|
-
loader:
|
|
1174
|
+
loader: () => getInbox(),
|
|
1174
1175
|
component: lazyRouteComponent($$splitComponentImporter$5, "component")
|
|
1175
1176
|
});
|
|
1176
|
-
var $$splitComponentImporter$4 = () => import("../_taskId-
|
|
1177
|
+
var $$splitComponentImporter$4 = () => import("../_taskId-CIv0ajIx.mjs");
|
|
1177
1178
|
var Route$12 = createFileRoute("/inbox/$taskId")({
|
|
1178
1179
|
loader: async ({ params }) => {
|
|
1179
1180
|
const task = await getTaskById({ data: { id: params.taskId } });
|
|
@@ -1200,7 +1201,7 @@ var Route$12 = createFileRoute("/inbox/$taskId")({
|
|
|
1200
1201
|
* sees it when it next renews its claim, which is why the button says it has
|
|
1201
1202
|
* been asked for rather than pretending it is already done.
|
|
1202
1203
|
*/
|
|
1203
|
-
var $$splitComponentImporter$3 = () => import("./loops-
|
|
1204
|
+
var $$splitComponentImporter$3 = () => import("./loops-D0XJ8eBb.mjs");
|
|
1204
1205
|
var Route$11 = createFileRoute("/loops/")({
|
|
1205
1206
|
loader: () => getLoopsPage(),
|
|
1206
1207
|
component: lazyRouteComponent($$splitComponentImporter$3, "component")
|
|
@@ -1211,7 +1212,7 @@ var Route$11 = createFileRoute("/loops/")({
|
|
|
1211
1212
|
* may have been pointed somewhere else since it was made, and the card is the
|
|
1212
1213
|
* one place someone scanning a list would notice.
|
|
1213
1214
|
*/
|
|
1214
|
-
var $$splitComponentImporter$2 = () => import("../_loopId-
|
|
1215
|
+
var $$splitComponentImporter$2 = () => import("../_loopId-G_TAkYtS.mjs");
|
|
1215
1216
|
var Route$10 = createFileRoute("/loops/$loopId")({
|
|
1216
1217
|
loader: async ({ params }) => {
|
|
1217
1218
|
const loop = await getLoopById({ data: { id: params.loopId } });
|
|
@@ -1234,7 +1235,7 @@ var Route$10 = createFileRoute("/loops/$loopId")({
|
|
|
1234
1235
|
* signal to arrive is a slow way to do it. Dry run means that shaping leaves
|
|
1235
1236
|
* no marks on a real repository.
|
|
1236
1237
|
*/
|
|
1237
|
-
var $$splitComponentImporter$1 = () => import("./new-
|
|
1238
|
+
var $$splitComponentImporter$1 = () => import("./new-CajvgIog.mjs");
|
|
1238
1239
|
var Route$9 = createFileRoute("/loops/new")({
|
|
1239
1240
|
validateSearch: (search) => {
|
|
1240
1241
|
const result = {};
|
|
@@ -1264,7 +1265,7 @@ var Route$8 = createFileRoute("/machines/")({ beforeLoad: () => {
|
|
|
1264
1265
|
var getRunnersPage = createServerFn({ method: "GET" }).handler(createSsrRpc("45dbbb612763589268984d236edcd17f5868ecf716df9625bfa46e7fec691f4e"));
|
|
1265
1266
|
var rotateRunnerJoinToken = createServerFn({ method: "POST" }).handler(createSsrRpc("b4f7a66e1bb69cc14ab84d8f5dc7f85119c9a9b1d065a6b4e51dd0ba84c3f60c"));
|
|
1266
1267
|
var removeRunner = createServerFn({ method: "POST" }).inputValidator((data) => data).handler(createSsrRpc("611491b32d9583ccaae637ddf9fb2f842ff75994f50513ecd8273e305e889eb8"));
|
|
1267
|
-
var $$splitComponentImporter = () => import("./runners-
|
|
1268
|
+
var $$splitComponentImporter = () => import("./runners-zqF_zbEc.mjs");
|
|
1268
1269
|
var Route$7 = createFileRoute("/runners/")({
|
|
1269
1270
|
loader: () => getRunnersPage(),
|
|
1270
1271
|
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
@@ -1550,4 +1551,4 @@ function getRouter() {
|
|
|
1550
1551
|
});
|
|
1551
1552
|
}
|
|
1552
1553
|
//#endregion
|
|
1553
|
-
export { stopTask as A,
|
|
1554
|
+
export { stopTask as A, CardHeader as B, removeLoop as C, toggleLoop as D, saveLoop as E, verifyConnection as F, cn as H, Badge as I, Button$1 as L, continueQrLogin as M, disconnectConnection as N, runLoopNow as O, saveConnectionSettings as P, Card as R, Input$1 as S, runLoopBacklog as T, CardTitle as V, SelectItem as _, Route$9 as a, Label as b, Route$12 as c, Route$15 as d, useLiveRefresh as f, SelectContent as g, Select$1 as h, rotateRunnerJoinToken as i, beginQrLogin as j, runPrompt as k, Route$13 as l, isTaskActive as m, Route$7 as n, Route$10 as o, useLiveTasks as p, removeRunner as r, Route$11 as s, router_exports as t, Route$14 as u, SelectTrigger as v, reorderLoop as w, Separator$1 as x, SelectValue as y, CardContent as z };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as createServerFn } from "./ssr.mjs";
|
|
2
|
-
import { i as loopableOrigin } from "./callback-
|
|
3
|
-
import { c as listRunners, n as forgetRunner, r as getJoinToken, u as rotateJoinToken } from "./runners-
|
|
2
|
+
import { i as loopableOrigin } from "./callback-D20cVD2w.mjs";
|
|
3
|
+
import { c as listRunners, n as forgetRunner, r as getJoinToken, u as rotateJoinToken } from "./runners-D-0_lfiq.mjs";
|
|
4
4
|
import { t as createServerRpc } from "./createServerRpc-DPDrnFdH.mjs";
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/runners-
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/runners-B_WuF8UJ.js
|
|
6
6
|
var getRunnersPage_createServerFn_handler = createServerRpc({
|
|
7
7
|
id: "45dbbb612763589268984d236edcd17f5868ecf716df9625bfa46e7fec691f4e",
|
|
8
8
|
name: "getRunnersPage",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f as eq } from "../_libs/drizzle-orm.mjs";
|
|
2
|
-
import { f as runners, g as tasks, s as db } from "./client-
|
|
3
|
-
import { a as runnerTokenKey, o as secretStore, r as joinTokenKey } from "./secrets-
|
|
2
|
+
import { f as runners, g as tasks, s as db } from "./client-BtVRVhQ2.mjs";
|
|
3
|
+
import { a as runnerTokenKey, o as secretStore, r as joinTokenKey } from "./secrets-CRnpwGBh.mjs";
|
|
4
4
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
5
5
|
import { hostname } from "node:os";
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/runners-
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/runners-D-0_lfiq.js
|
|
7
7
|
var ONLINE_MS = 45e3;
|
|
8
8
|
function isRunnerOnline(row, now = Date.now()) {
|
|
9
9
|
if (row.status !== "online") return false;
|
|
@@ -2,9 +2,9 @@ import { U as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
|
2
2
|
import { m as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
3
3
|
import { s as Server } from "../_libs/lucide-react.mjs";
|
|
4
4
|
import { n as toast } from "../_libs/sonner.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { n as AlertDescription, t as Alert } from "./alert-
|
|
7
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/runners-
|
|
5
|
+
import { B as CardHeader, I as Badge, L as Button$1, R as Card, f as useLiveRefresh, i as rotateRunnerJoinToken, n as Route$7, r as removeRunner, z as CardContent } from "./router-BbrBz36P.mjs";
|
|
6
|
+
import { n as AlertDescription, t as Alert } from "./alert-DQvzE7bu.mjs";
|
|
7
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/runners-zqF_zbEc.js
|
|
8
8
|
var import_jsx_runtime = require_jsx_runtime();
|
|
9
9
|
function inventoryLines(runner) {
|
|
10
10
|
if (runner.inventory.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
@@ -44,7 +44,7 @@ function RunnersPage() {
|
|
|
44
44
|
className: "text-xs",
|
|
45
45
|
children: "npm install -g loopable-cli"
|
|
46
46
|
}),
|
|
47
|
-
"), sign in a coding agent on that host, then start a runner
|
|
47
|
+
"), sign in a coding agent on that host, then start a runner. Use this LAN IP so other machines can reach the App."
|
|
48
48
|
]
|
|
49
49
|
}),
|
|
50
50
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f as eq } from "../_libs/drizzle-orm.mjs";
|
|
2
|
-
import { m as secrets, o as dataDir, p as secretNamespace, s as db } from "./client-
|
|
2
|
+
import { m as secrets, o as dataDir, p as secretNamespace, s as db } from "./client-BtVRVhQ2.mjs";
|
|
3
3
|
import { chmodSync, existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { execFileSync } from "node:child_process";
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/secrets-
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/secrets-CRnpwGBh.js
|
|
7
7
|
/**
|
|
8
8
|
* Hosted Loopable shares a network database between the App Worker and the
|
|
9
9
|
* Dispatcher. A local laptop still uses a file, and needs none of this.
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
|
|
1
|
+
import { U as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
+
import { S as Input$1, _ as SelectItem, b as Label, g as SelectContent, h as Select$1, v as SelectTrigger, y as SelectValue } from "./router-BbrBz36P.mjs";
|
|
3
|
+
import { t as Switch$1 } from "./switch-1pnd_bPJ.mjs";
|
|
4
|
+
import { t as Textarea } from "./textarea-CHJTKtsJ.mjs";
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/setting-fields-mpXfGftI.js
|
|
6
6
|
var import_jsx_runtime = require_jsx_runtime();
|
|
7
|
-
function Textarea({ className, ...props }) {
|
|
8
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("textarea", {
|
|
9
|
-
"data-slot": "textarea",
|
|
10
|
-
className: cn("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className),
|
|
11
|
-
...props
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
7
|
/**
|
|
15
8
|
* One renderer for anything a connector declares as a field, so connection
|
|
16
9
|
* settings and loop conditions can never drift apart visually.
|
|
@@ -89,4 +82,4 @@ function SettingFieldInputs({ fields, values, onChange, idPrefix = "" }) {
|
|
|
89
82
|
}) });
|
|
90
83
|
}
|
|
91
84
|
//#endregion
|
|
92
|
-
export {
|
|
85
|
+
export { initialFieldValues as n, SettingFieldInputs as t };
|
|
@@ -4107,7 +4107,7 @@ var defaultSerovalPlugins = [
|
|
|
4107
4107
|
* the dev styles URL for route-scoped CSS collection.
|
|
4108
4108
|
*/
|
|
4109
4109
|
async function getStartManifest(matchedRoutes) {
|
|
4110
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
4110
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-BCHAazE8.mjs");
|
|
4111
4111
|
const startManifest = tsrStartManifest();
|
|
4112
4112
|
let routes = startManifest.routes;
|
|
4113
4113
|
routes[rootRouteId];
|
|
@@ -4129,123 +4129,127 @@ async function getStartManifest(matchedRoutes) {
|
|
|
4129
4129
|
var manifest = {
|
|
4130
4130
|
"0033ef7c619c027b1428a722dff188d315ed335645afcb1033528630b7c95e88": {
|
|
4131
4131
|
functionName: "getTaskById_createServerFn_handler",
|
|
4132
|
-
importer: () => import("./tasks-
|
|
4132
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4133
4133
|
},
|
|
4134
4134
|
"0e209afb63fad4a95a5cfeaf4831610f23673145cbf5b8054765d79804a62d31": {
|
|
4135
4135
|
functionName: "getConnectorOverview_createServerFn_handler",
|
|
4136
|
-
importer: () => import("./connectors-
|
|
4136
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4137
4137
|
},
|
|
4138
4138
|
"0fa144f67263a4a51c51e8baf134a15b89c0afdf9b92b64660520a5bce247eec": {
|
|
4139
4139
|
functionName: "pauseDispatcher_createServerFn_handler",
|
|
4140
|
-
importer: () => import("./tasks-
|
|
4140
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4141
4141
|
},
|
|
4142
4142
|
"143ea51f7421d9eebec9ad31c2df8eed5aa2e5d8035473dbfad39913fd7d54c0": {
|
|
4143
4143
|
functionName: "chooseDefaultAgent_createServerFn_handler",
|
|
4144
|
-
importer: () => import("./agents-
|
|
4144
|
+
importer: () => import("./agents-Dms_6TBF.mjs")
|
|
4145
4145
|
},
|
|
4146
4146
|
"18bae5deb2a19571893f0067e374e537f16d6774f9b4e04f9b7349360f6f8fdc": {
|
|
4147
4147
|
functionName: "saveConnectionSettings_createServerFn_handler",
|
|
4148
|
-
importer: () => import("./connectors-
|
|
4148
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4149
4149
|
},
|
|
4150
4150
|
"3f938fac3e5ec1631e700a2fdd4790e78abbefeb732ecfbbe6864cc19f0d5aac": {
|
|
4151
4151
|
functionName: "getLoopTasks_createServerFn_handler",
|
|
4152
|
-
importer: () => import("./tasks-
|
|
4152
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4153
4153
|
},
|
|
4154
4154
|
"3fc8a7de98be979f9820a4f5a0ca2e234ed8a7df8e692abb8c4437765474eca0": {
|
|
4155
4155
|
functionName: "toggleLoop_createServerFn_handler",
|
|
4156
|
-
importer: () => import("./loops-
|
|
4156
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4157
4157
|
},
|
|
4158
4158
|
"43b97e3644ad73286fe5de3e99134bff099e1a8704f1ae91fe643d419eceba73": {
|
|
4159
4159
|
functionName: "continueQrLogin_createServerFn_handler",
|
|
4160
|
-
importer: () => import("./connectors-
|
|
4160
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4161
4161
|
},
|
|
4162
4162
|
"45dbbb612763589268984d236edcd17f5868ecf716df9625bfa46e7fec691f4e": {
|
|
4163
4163
|
functionName: "getRunnersPage_createServerFn_handler",
|
|
4164
|
-
importer: () => import("./runners-
|
|
4164
|
+
importer: () => import("./runners-B_WuF8UJ.mjs")
|
|
4165
4165
|
},
|
|
4166
4166
|
"48bc32df9d6f69f45df8dfbc6e798e1f99152dbd4b4ed65b149fa2612c65e687": {
|
|
4167
4167
|
functionName: "getInbox_createServerFn_handler",
|
|
4168
|
-
importer: () => import("./tasks-
|
|
4168
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4169
4169
|
},
|
|
4170
4170
|
"4fd3855e3e9ed954e102071a55b98d91651c9b1e353161f7223768ed6f2b8c28": {
|
|
4171
4171
|
functionName: "getLoopPollState_createServerFn_handler",
|
|
4172
|
-
importer: () => import("./loops-
|
|
4172
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4173
4173
|
},
|
|
4174
4174
|
"611491b32d9583ccaae637ddf9fb2f842ff75994f50513ecd8273e305e889eb8": {
|
|
4175
4175
|
functionName: "removeRunner_createServerFn_handler",
|
|
4176
|
-
importer: () => import("./runners-
|
|
4176
|
+
importer: () => import("./runners-B_WuF8UJ.mjs")
|
|
4177
4177
|
},
|
|
4178
4178
|
"65494cbfd06143dbd9a012808fbba21163d9902e387869503fb8b68b0674902b": {
|
|
4179
4179
|
functionName: "runLoopBacklog_createServerFn_handler",
|
|
4180
|
-
importer: () => import("./loops-
|
|
4180
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4181
4181
|
},
|
|
4182
4182
|
"6d5a90e9ec4ebf70d8e2ac4aff960533a5e68d21b289033cc7e0751d00554c93": {
|
|
4183
4183
|
functionName: "getLoopsPage_createServerFn_handler",
|
|
4184
|
-
importer: () => import("./loops-
|
|
4184
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4185
4185
|
},
|
|
4186
4186
|
"7258ce5fc6f23acf3aab039ecd4acdb006d42b2ddbf3ab8629b4000e101b51dc": {
|
|
4187
4187
|
functionName: "runLoopNow_createServerFn_handler",
|
|
4188
|
-
importer: () => import("./tasks-
|
|
4188
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4189
4189
|
},
|
|
4190
4190
|
"794964d675b97edaa881ab5cb209225ef0a4507e3d2771d6577658a058e7621f": {
|
|
4191
4191
|
functionName: "beginQrLogin_createServerFn_handler",
|
|
4192
|
-
importer: () => import("./connectors-
|
|
4192
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4193
4193
|
},
|
|
4194
4194
|
"7d7d5f80a4f0d2b3bb659d7dc2a91ea5983880648b9d1aa24356e7340505930f": {
|
|
4195
4195
|
functionName: "reorderLoop_createServerFn_handler",
|
|
4196
|
-
importer: () => import("./loops-
|
|
4196
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4197
4197
|
},
|
|
4198
4198
|
"80883b912a5a0aba2aa583b505e4e289d765a3f7fbb793a97692f439e7f960ba": {
|
|
4199
4199
|
functionName: "saveAgent_createServerFn_handler",
|
|
4200
|
-
importer: () => import("./agents-
|
|
4200
|
+
importer: () => import("./agents-Dms_6TBF.mjs")
|
|
4201
4201
|
},
|
|
4202
4202
|
"81a1af559b2a373901872aa9f9a6546f2f3bda8157d81c21a36ba0d1d337613b": {
|
|
4203
4203
|
functionName: "getLoopById_createServerFn_handler",
|
|
4204
|
-
importer: () => import("./loops-
|
|
4204
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4205
4205
|
},
|
|
4206
4206
|
"81f567724371f0d6f24e636906e2e9ea5b7384422ac583c86a1050fb838664ce": {
|
|
4207
4207
|
functionName: "getTaskLog_createServerFn_handler",
|
|
4208
|
-
importer: () => import("./tasks-
|
|
4208
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4209
4209
|
},
|
|
4210
4210
|
"921b049ebafe3c6fb5206fbe3e2100608d3333b944e18385e57da62a28233bc6": {
|
|
4211
4211
|
functionName: "getDispatcherState_createServerFn_handler",
|
|
4212
|
-
importer: () => import("./tasks-
|
|
4212
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4213
4213
|
},
|
|
4214
4214
|
"997d2dd097598c44811fe97def167b79d33e4349c51e783058da648e860c7c1f": {
|
|
4215
4215
|
functionName: "getLoopReadiness_createServerFn_handler",
|
|
4216
|
-
importer: () => import("./loops-
|
|
4216
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4217
4217
|
},
|
|
4218
4218
|
"a57f49c322cc5afa2996e4a5777fa533fd963755d614d4a14eb32e51fb198d9d": {
|
|
4219
4219
|
functionName: "stopTask_createServerFn_handler",
|
|
4220
|
-
importer: () => import("./tasks-
|
|
4220
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4221
4221
|
},
|
|
4222
4222
|
"b0878f841b35f46b5f2dc9cbd71c5be5895ae1b8903b3b24c24dfcf86291d3e4": {
|
|
4223
4223
|
functionName: "runAgentTest_createServerFn_handler",
|
|
4224
|
-
importer: () => import("./agents-
|
|
4224
|
+
importer: () => import("./agents-Dms_6TBF.mjs")
|
|
4225
4225
|
},
|
|
4226
4226
|
"b4f7a66e1bb69cc14ab84d8f5dc7f85119c9a9b1d065a6b4e51dd0ba84c3f60c": {
|
|
4227
4227
|
functionName: "rotateRunnerJoinToken_createServerFn_handler",
|
|
4228
|
-
importer: () => import("./runners-
|
|
4228
|
+
importer: () => import("./runners-B_WuF8UJ.mjs")
|
|
4229
4229
|
},
|
|
4230
4230
|
"b5a89ca2d07f4ccf2827b5132ca52e7c7a42d584e702b0ab3963b2d5763c35b0": {
|
|
4231
4231
|
functionName: "removeLoop_createServerFn_handler",
|
|
4232
|
-
importer: () => import("./loops-
|
|
4232
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4233
4233
|
},
|
|
4234
4234
|
"bde588e9b0b81a4ee619a63872d6b8b76e22db006c7a3c4351bcd56e5f76bbed": {
|
|
4235
4235
|
functionName: "getAgentsPage_createServerFn_handler",
|
|
4236
|
-
importer: () => import("./agents-
|
|
4236
|
+
importer: () => import("./agents-Dms_6TBF.mjs")
|
|
4237
|
+
},
|
|
4238
|
+
"bef559b165754b06d6d5cf7c6dccde3d5a6a326462430c621eb131f78665d6e1": {
|
|
4239
|
+
functionName: "runPrompt_createServerFn_handler",
|
|
4240
|
+
importer: () => import("./tasks-LIi-W4cy.mjs")
|
|
4237
4241
|
},
|
|
4238
4242
|
"e91fc2fd51633c7ca9184fea4beb66fe775ed0b4e6323111a4690da916a78b00": {
|
|
4239
4243
|
functionName: "saveLoop_createServerFn_handler",
|
|
4240
|
-
importer: () => import("./loops-
|
|
4244
|
+
importer: () => import("./loops-Og_G3KyZ.mjs")
|
|
4241
4245
|
},
|
|
4242
4246
|
"f94f0787ce6704ea24f18add66832e0367a0feb9a690d8ad6454abec5e5df193": {
|
|
4243
4247
|
functionName: "disconnectConnection_createServerFn_handler",
|
|
4244
|
-
importer: () => import("./connectors-
|
|
4248
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4245
4249
|
},
|
|
4246
4250
|
"f9ade3084971078ee9f2bc16fcdcdfb5a8d66a0f9b634803bb611287c14e21d7": {
|
|
4247
4251
|
functionName: "verifyConnection_createServerFn_handler",
|
|
4248
|
-
importer: () => import("./connectors-
|
|
4252
|
+
importer: () => import("./connectors-BZly0yGF.mjs")
|
|
4249
4253
|
}
|
|
4250
4254
|
};
|
|
4251
4255
|
async function getServerFnById(id, access) {
|
|
@@ -6156,8 +6160,8 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
6156
6160
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
6157
6161
|
async function loadEntries() {
|
|
6158
6162
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
6159
|
-
import("./router-
|
|
6160
|
-
import("./start-
|
|
6163
|
+
import("./router-BbrBz36P.mjs").then((n) => n.t),
|
|
6164
|
+
import("./start-BgTj-h_C.mjs"),
|
|
6161
6165
|
import("./empty-plugin-adapters-BJ4m9L8g.mjs")
|
|
6162
6166
|
]);
|
|
6163
6167
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as createMiddleware } from "./ssr.mjs";
|
|
2
|
-
import { l as migrateIfNeeded } from "./client-
|
|
3
|
-
import { r as isLoopbackHost } from "./callback-
|
|
4
|
-
import { a as readAppToken, i as isPublicApiPath, n as assertAppAccess, t as appAccessCookie } from "./access-
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/start-
|
|
2
|
+
import { l as migrateIfNeeded } from "./client-BtVRVhQ2.mjs";
|
|
3
|
+
import { r as isLoopbackHost } from "./callback-D20cVD2w.mjs";
|
|
4
|
+
import { a as readAppToken, i as isPublicApiPath, n as assertAppAccess, t as appAccessCookie } from "./access-B7TcOZ7F.mjs";
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/start-BgTj-h_C.js
|
|
6
6
|
function dedupeSerializationAdapters(deduped, serializationAdapters) {
|
|
7
7
|
for (let i = 0, len = serializationAdapters.length; i < len; i++) {
|
|
8
8
|
const current = serializationAdapters[i];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { U as require_jsx_runtime, c as SwitchThumb, l as SwitchRoot } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
-
import {
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/switch-
|
|
2
|
+
import { H as cn } from "./router-BbrBz36P.mjs";
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/switch-1pnd_bPJ.js
|
|
4
4
|
var import_jsx_runtime = require_jsx_runtime();
|
|
5
5
|
function Switch$1({ className, size = "default", ...props }) {
|
|
6
6
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwitchRoot, {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { U as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
2
|
import { f as Link } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
3
|
-
import { a as connectorManifest } from "./connections-
|
|
4
|
-
import { n as agentManifest } from "./agents-
|
|
3
|
+
import { a as connectorManifest } from "./connections-ypex3qUd.mjs";
|
|
4
|
+
import { n as agentManifest } from "./agents-CrUmIQpi.mjs";
|
|
5
5
|
import { A as CircleMinus, D as CircleSlash, I as Bot, T as CircleX, b as FileText, d as Plug, g as Loader, j as CircleCheck, n as Workflow, w as Clock } from "../_libs/lucide-react.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import { t as ConnectorIcon } from "./connector-icon-
|
|
8
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/task-list-
|
|
6
|
+
import { H as cn, I as Badge, R as Card, p as useLiveTasks, z as CardContent } from "./router-BbrBz36P.mjs";
|
|
7
|
+
import { t as ConnectorIcon } from "./connector-icon-CFrrHjzR.mjs";
|
|
8
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/task-list-BnQJ94Dk.js
|
|
9
9
|
var import_jsx_runtime = require_jsx_runtime();
|
|
10
10
|
var STATES = {
|
|
11
11
|
queued: {
|
|
@@ -79,7 +79,8 @@ var KIND_LABEL = {
|
|
|
79
79
|
issue: "Issue",
|
|
80
80
|
message: "Message",
|
|
81
81
|
email: "Email",
|
|
82
|
-
occurrence: "Scheduled run"
|
|
82
|
+
occurrence: "Scheduled run",
|
|
83
|
+
prompt: "Test run"
|
|
83
84
|
};
|
|
84
85
|
function when(iso) {
|
|
85
86
|
const seconds = Math.round((Date.now() - new Date(iso).getTime()) / 1e3);
|
|
@@ -105,7 +106,7 @@ function TaskList({ tasks, showLoop = true, empty }) {
|
|
|
105
106
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
106
107
|
className: "flex items-start gap-3",
|
|
107
108
|
children: [
|
|
108
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectorIcon, {
|
|
109
|
+
task.sourceKind === "prompt" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bot, { className: "mt-0.5 size-7 shrink-0 text-muted-foreground" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectorIcon, {
|
|
109
110
|
icon: connectorManifest(task.connectorId)?.icon ?? "Plug",
|
|
110
111
|
accent: connectorManifest(task.connectorId)?.accent ?? "bg-muted",
|
|
111
112
|
className: "mt-0.5 size-7 shrink-0"
|
|
@@ -155,7 +156,7 @@ function TaskMeta({ task, showLoop }) {
|
|
|
155
156
|
const connector = connectorManifest(task.connectorId);
|
|
156
157
|
const agent = task.agentId ? agentManifest(task.agentId) : void 0;
|
|
157
158
|
const parts = [];
|
|
158
|
-
if (showLoop) parts.push({
|
|
159
|
+
if (showLoop && task.loopName) parts.push({
|
|
159
160
|
icon: Workflow,
|
|
160
161
|
label: task.loopName
|
|
161
162
|
});
|