loopable-cli 0.2.1 → 0.3.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-CDCuSgpN.js +1 -0
- package/.output/public/assets/_loopId-DOnIsVTW.js +1 -0
- package/.output/public/assets/_taskId-BO5MZnlZ.js +1 -0
- package/.output/public/assets/agents-CBozi7oi.js +1 -0
- package/.output/public/assets/alert-Bn_wjgTX.js +1 -0
- package/.output/public/assets/button-K3ypIhAZ.js +1 -0
- package/.output/public/assets/card-DiVnaTIE.js +1 -0
- package/.output/public/assets/chevron-right-BrctLtFK.js +1 -0
- package/.output/public/assets/connection-status-DKWelvLO.js +1 -0
- package/.output/public/assets/connector-icon-CEbdE71G.js +1 -0
- package/.output/public/assets/connectors-JyX3IzJj.js +1 -0
- package/.output/public/assets/gaps-PjmcbaWo.js +1 -0
- package/.output/public/assets/inbox-CujRR0Cz.js +1 -0
- package/.output/public/assets/index-C9SQ_Baq.js +16 -0
- package/.output/public/assets/loop-form-Dw3cuTzw.js +1 -0
- package/.output/public/assets/loops-DcEfZa2_.js +1 -0
- package/.output/public/assets/manifests-yJpevyye.js +1 -0
- package/.output/public/assets/new-CwsnNuRW.js +1 -0
- package/.output/public/assets/page-bvnfRMum.js +1 -0
- package/.output/public/assets/play-yHLs4DjK.js +1 -0
- package/.output/public/assets/plus-Ber25lrU.js +1 -0
- package/.output/public/assets/preload-helper-BoU_7EQC.js +3 -0
- package/.output/public/assets/{refresh-cw-C3xBnKfy.js → refresh-cw-BzSY7M8I.js} +1 -1
- package/.output/public/assets/rotate-ccw-DLv9EfCX.js +1 -0
- package/.output/public/assets/runners-DzX-RU3i.js +2 -0
- package/.output/public/assets/select-C9grIFwG.js +1 -0
- package/.output/public/assets/setting-fields-DUc3npgh.js +3 -0
- package/.output/public/assets/styles-B9B98zLk.css +2 -0
- package/.output/public/assets/switch-DwABVI6d.js +1 -0
- package/.output/public/assets/task-list-Ddk8-qt7.js +1 -0
- package/.output/public/assets/textarea-Ds-gIYUQ.js +1 -0
- package/.output/public/assets/time-goBWd-5J.js +1 -0
- package/.output/public/assets/use-live-tasks-DZNNuECy.js +1 -0
- package/.output/public/assets/useCompositeListItem-P4Nmmn7j.js +1 -0
- package/.output/public/assets/usePositioner-B7i9Ejzh.js +1 -0
- package/.output/server/_chunks/ssr-renderer.mjs +1 -1
- package/.output/server/{_connectorId-C9yydJrC.mjs → _connectorId-COuQN02a.mjs} +198 -188
- package/.output/server/_libs/@base-ui/react+[...].mjs +1410 -804
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +1 -1
- package/.output/server/_libs/lucide-react.mjs +93 -84
- package/.output/server/_libs/next-themes.mjs +1 -1
- package/.output/server/_libs/sonner.mjs +1 -1
- package/.output/server/_loopId-CZh6_Yhr.mjs +310 -0
- package/.output/server/_ssr/{agents-DG643yoJ.mjs → agents-B_qo1gpL.mjs} +195 -6
- package/.output/server/_ssr/{agents-C7B6RJ6-.mjs → agents-Bz10gz_m.mjs} +8 -8
- package/.output/server/_ssr/agents-CjbOUp3Z.mjs +206 -0
- package/.output/server/_ssr/{alert-DQvzE7bu.mjs → alert-C2WBWfzo.mjs} +2 -2
- package/.output/server/_ssr/card-r1cV-PCN.mjs +36 -0
- package/.output/server/_ssr/{client-BtVRVhQ2.mjs → client-Dk3SD8Il.mjs} +5 -1
- package/.output/server/_ssr/connection-status-BogAL-Fj.mjs +32 -0
- package/.output/server/_ssr/{connections-Df-aDpfJ.mjs → connections-Cqvb6Gw2.mjs} +372 -325
- package/.output/server/_ssr/connector-icon-DrhVbhs6.mjs +190 -0
- package/.output/server/_ssr/connectors-BfS5tQKr.mjs +81 -0
- package/.output/server/_ssr/{connectors-e0mf2pMs.mjs → connectors-DJI-rzPU.mjs} +10 -10
- package/.output/server/_ssr/{createServerRpc-DPDrnFdH.mjs → createServerRpc-DDrp2nLT.mjs} +2 -2
- package/.output/server/_ssr/{gaps-Cz76ZicM.mjs → gaps-CcvHiLcj.mjs} +15 -7
- package/.output/server/_ssr/inbox-D1ef761v.mjs +178 -0
- package/.output/server/_ssr/loop-form-DWwOR05R.mjs +346 -0
- package/.output/server/_ssr/{loops-D8WuK7Ke.mjs → loops-6WhUe_lc.mjs} +37 -27
- package/.output/server/_ssr/loops-DHPjzG-t.mjs +217 -0
- package/.output/server/_ssr/new-ChKBdcXJ.mjs +245 -0
- package/.output/server/_ssr/page-DZVxKvdn.mjs +120 -0
- package/.output/server/_ssr/{router-54IDWTVz.mjs → router-DdwREiOf.mjs} +162 -489
- package/.output/server/_ssr/runners-CK9Cx9fS.mjs +217 -0
- package/.output/server/_ssr/runners-CrznFPHt.mjs +140 -0
- package/.output/server/_ssr/{runners-Cj6z9Mqh.mjs → runners-W-pgo5yo.mjs} +5 -5
- package/.output/server/_ssr/{secrets-CRnpwGBh.mjs → secrets-CV5scFlt.mjs} +2 -2
- package/.output/server/_ssr/select-BtndHhHb.mjs +76 -0
- package/.output/server/_ssr/{setting-fields-DzBlslan.mjs → setting-fields-LNgywAW7.mjs} +25 -20
- package/.output/server/_ssr/ssr.mjs +43 -42
- package/.output/server/_ssr/{start-Vq3Oan3v.mjs → start-C_j-e4vF.mjs} +9 -4
- package/.output/server/_ssr/{switch-1pnd_bPJ.mjs → switch-odxNO_S4.mjs} +3 -3
- package/.output/server/_ssr/task-list-Dnmq_WeE.mjs +150 -0
- package/.output/server/_ssr/{tasks-Qtml5TlK.mjs → tasks-D-kXLgVP.mjs} +13 -13
- package/.output/server/_ssr/{tasks-BDqznm57.mjs → tasks-D7aUvA33.mjs} +44 -17
- package/.output/server/_ssr/{textarea-CHJTKtsJ.mjs → textarea-D2c_vTIC.mjs} +2 -2
- package/.output/server/_ssr/time-Cy8TZP0Z.mjs +13 -0
- package/.output/server/_ssr/use-live-tasks-BzhTkEOL.mjs +40 -0
- package/.output/server/_tanstack-start-manifest_v-2HUdn-2E.mjs +166 -0
- package/.output/server/_taskId-D3KkNJW1.mjs +263 -0
- package/.output/server/index.mjs +199 -164
- package/README.md +36 -6
- package/dist/cli.mjs +161 -8
- package/dist/dispatcher.mjs +671 -285
- package/dist/runner.mjs +333 -46
- package/drizzle/0025_prompt_tasks_done.sql +2 -0
- package/drizzle/0026_guidance_into_prompt.sql +3 -0
- package/drizzle/0027_relative_folders.sql +5 -0
- package/drizzle/0028_runner_version.sql +5 -0
- package/drizzle/meta/_journal.json +29 -1
- package/package.json +4 -2
- package/.output/public/assets/_connectorId-CkygNLny.js +0 -1
- package/.output/public/assets/_loopId-Cshlc5Ja.js +0 -1
- package/.output/public/assets/_taskId-BKDIJ_Fg.js +0 -1
- package/.output/public/assets/alert-BT2EVMJP.js +0 -1
- package/.output/public/assets/arrow-left-CWUZt6k2.js +0 -1
- package/.output/public/assets/arrow-right-dy_oOg_c.js +0 -1
- package/.output/public/assets/connection-status-DCqqmY_6.js +0 -1
- package/.output/public/assets/connector-icon-BUoK6Cru.js +0 -1
- package/.output/public/assets/connectors-CeLBtEtg.js +0 -1
- package/.output/public/assets/external-link-DC11orFA.js +0 -1
- package/.output/public/assets/gaps-BtFoD7mF.js +0 -1
- package/.output/public/assets/inbox-BYNjkNDJ.js +0 -1
- package/.output/public/assets/index-0yP3Jn_G.js +0 -18
- package/.output/public/assets/loader-B4Epchm_.js +0 -1
- package/.output/public/assets/loop-form-DnSJNc1k.js +0 -1
- package/.output/public/assets/loops-1CvbqO6m.js +0 -1
- package/.output/public/assets/new-m5NlqYQT.js +0 -1
- package/.output/public/assets/play-DD4xQgvi.js +0 -1
- package/.output/public/assets/preload-helper-CfdAYKD7.js +0 -3
- package/.output/public/assets/rolldown-runtime-CbXtAM7H.js +0 -1
- package/.output/public/assets/runners-D8QVl-Y6.js +0 -1
- package/.output/public/assets/select-Cppu-hti.js +0 -1
- package/.output/public/assets/setting-fields-bJ_gTG7Q.js +0 -3
- package/.output/public/assets/styles-ClTGaXU0.css +0 -2
- package/.output/public/assets/switch-hRIbNGOj.js +0 -1
- package/.output/public/assets/task-list-BAxjcVgr.js +0 -1
- package/.output/public/assets/textarea-Fyuzi6Vp.js +0 -1
- package/.output/public/assets/trash-2-BXZzBsoV.js +0 -1
- package/.output/public/assets/useValueChanged-VVyq4hb9.js +0 -1
- package/.output/server/_loopId-B0VG-eBC.mjs +0 -301
- package/.output/server/_ssr/connection-status-BZr3Y-IC.mjs +0 -31
- package/.output/server/_ssr/connector-icon-WvxwZ5TF.mjs +0 -56
- package/.output/server/_ssr/connectors-BU0IiRge.mjs +0 -107
- package/.output/server/_ssr/inbox-CAUBa1I3.mjs +0 -114
- package/.output/server/_ssr/loop-form-FqSaXiHl.mjs +0 -413
- package/.output/server/_ssr/loops-Dqoebe8q.mjs +0 -222
- package/.output/server/_ssr/new-bBsVaWD6.mjs +0 -169
- package/.output/server/_ssr/runners-D2UAdLyj.mjs +0 -106
- package/.output/server/_ssr/runners-DGWaVvWi.mjs +0 -116
- package/.output/server/_ssr/task-list-_qgBS9LU.mjs +0 -187
- package/.output/server/_tanstack-start-manifest_v-CvheE7ZF.mjs +0 -131
- package/.output/server/_taskId-V4QLBO2N.mjs +0 -256
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { n as __exportAll } from "../_runtime.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { K as require_jsx_runtime, q as require_react } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
3
|
import { n as defineHandlerCallback, o as RouterProvider, t as renderRouterToStream } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
4
|
import { PassThrough, Readable } from "node:stream";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
6
|
//#region node_modules/.nitro/vite/services/ssr/index.js
|
|
7
7
|
var ssr_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
a: () => getServerFnById,
|
|
8
9
|
createServerEntry: () => createServerEntry,
|
|
9
10
|
default: () => server_default,
|
|
10
|
-
i: () =>
|
|
11
|
-
n: () =>
|
|
12
|
-
r: () =>
|
|
13
|
-
t: () =>
|
|
11
|
+
i: () => TSS_SERVER_FUNCTION,
|
|
12
|
+
n: () => createMiddleware,
|
|
13
|
+
r: () => createServerFn,
|
|
14
|
+
t: () => createCsrfMiddleware
|
|
14
15
|
});
|
|
15
16
|
require_react();
|
|
16
17
|
var import_jsx_runtime = require_jsx_runtime();
|
|
@@ -4107,7 +4108,7 @@ var defaultSerovalPlugins = [
|
|
|
4107
4108
|
* the dev styles URL for route-scoped CSS collection.
|
|
4108
4109
|
*/
|
|
4109
4110
|
async function getStartManifest(matchedRoutes) {
|
|
4110
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
4111
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-2HUdn-2E.mjs");
|
|
4111
4112
|
const startManifest = tsrStartManifest();
|
|
4112
4113
|
let routes = startManifest.routes;
|
|
4113
4114
|
routes[rootRouteId];
|
|
@@ -4129,135 +4130,135 @@ async function getStartManifest(matchedRoutes) {
|
|
|
4129
4130
|
var manifest = {
|
|
4130
4131
|
"0033ef7c619c027b1428a722dff188d315ed335645afcb1033528630b7c95e88": {
|
|
4131
4132
|
functionName: "getTaskById_createServerFn_handler",
|
|
4132
|
-
importer: () => import("./tasks-
|
|
4133
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4133
4134
|
},
|
|
4134
4135
|
"0e209afb63fad4a95a5cfeaf4831610f23673145cbf5b8054765d79804a62d31": {
|
|
4135
4136
|
functionName: "getConnectorOverview_createServerFn_handler",
|
|
4136
|
-
importer: () => import("./connectors-
|
|
4137
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4137
4138
|
},
|
|
4138
4139
|
"0fa144f67263a4a51c51e8baf134a15b89c0afdf9b92b64660520a5bce247eec": {
|
|
4139
4140
|
functionName: "pauseDispatcher_createServerFn_handler",
|
|
4140
|
-
importer: () => import("./tasks-
|
|
4141
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4141
4142
|
},
|
|
4142
4143
|
"143ea51f7421d9eebec9ad31c2df8eed5aa2e5d8035473dbfad39913fd7d54c0": {
|
|
4143
4144
|
functionName: "chooseDefaultAgent_createServerFn_handler",
|
|
4144
|
-
importer: () => import("./agents-
|
|
4145
|
+
importer: () => import("./agents-Bz10gz_m.mjs")
|
|
4145
4146
|
},
|
|
4146
4147
|
"18bae5deb2a19571893f0067e374e537f16d6774f9b4e04f9b7349360f6f8fdc": {
|
|
4147
4148
|
functionName: "saveConnectionSettings_createServerFn_handler",
|
|
4148
|
-
importer: () => import("./connectors-
|
|
4149
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4149
4150
|
},
|
|
4150
4151
|
"3f938fac3e5ec1631e700a2fdd4790e78abbefeb732ecfbbe6864cc19f0d5aac": {
|
|
4151
4152
|
functionName: "getLoopTasks_createServerFn_handler",
|
|
4152
|
-
importer: () => import("./tasks-
|
|
4153
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4153
4154
|
},
|
|
4154
4155
|
"3fc8a7de98be979f9820a4f5a0ca2e234ed8a7df8e692abb8c4437765474eca0": {
|
|
4155
4156
|
functionName: "toggleLoop_createServerFn_handler",
|
|
4156
|
-
importer: () => import("./loops-
|
|
4157
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4157
4158
|
},
|
|
4158
4159
|
"43b97e3644ad73286fe5de3e99134bff099e1a8704f1ae91fe643d419eceba73": {
|
|
4159
4160
|
functionName: "continueQrLogin_createServerFn_handler",
|
|
4160
|
-
importer: () => import("./connectors-
|
|
4161
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4161
4162
|
},
|
|
4162
4163
|
"45dbbb612763589268984d236edcd17f5868ecf716df9625bfa46e7fec691f4e": {
|
|
4163
4164
|
functionName: "getRunnersPage_createServerFn_handler",
|
|
4164
|
-
importer: () => import("./runners-
|
|
4165
|
+
importer: () => import("./runners-W-pgo5yo.mjs")
|
|
4165
4166
|
},
|
|
4166
4167
|
"48bc32df9d6f69f45df8dfbc6e798e1f99152dbd4b4ed65b149fa2612c65e687": {
|
|
4167
4168
|
functionName: "getInbox_createServerFn_handler",
|
|
4168
|
-
importer: () => import("./tasks-
|
|
4169
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4169
4170
|
},
|
|
4170
4171
|
"4fd3855e3e9ed954e102071a55b98d91651c9b1e353161f7223768ed6f2b8c28": {
|
|
4171
4172
|
functionName: "getLoopPollState_createServerFn_handler",
|
|
4172
|
-
importer: () => import("./loops-
|
|
4173
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4173
4174
|
},
|
|
4174
4175
|
"611491b32d9583ccaae637ddf9fb2f842ff75994f50513ecd8273e305e889eb8": {
|
|
4175
4176
|
functionName: "removeRunner_createServerFn_handler",
|
|
4176
|
-
importer: () => import("./runners-
|
|
4177
|
+
importer: () => import("./runners-W-pgo5yo.mjs")
|
|
4177
4178
|
},
|
|
4178
4179
|
"65494cbfd06143dbd9a012808fbba21163d9902e387869503fb8b68b0674902b": {
|
|
4179
4180
|
functionName: "runLoopBacklog_createServerFn_handler",
|
|
4180
|
-
importer: () => import("./loops-
|
|
4181
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4181
4182
|
},
|
|
4182
4183
|
"6d5a90e9ec4ebf70d8e2ac4aff960533a5e68d21b289033cc7e0751d00554c93": {
|
|
4183
4184
|
functionName: "getLoopsPage_createServerFn_handler",
|
|
4184
|
-
importer: () => import("./loops-
|
|
4185
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4185
4186
|
},
|
|
4186
4187
|
"7258ce5fc6f23acf3aab039ecd4acdb006d42b2ddbf3ab8629b4000e101b51dc": {
|
|
4187
4188
|
functionName: "runLoopNow_createServerFn_handler",
|
|
4188
|
-
importer: () => import("./tasks-
|
|
4189
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4189
4190
|
},
|
|
4190
4191
|
"794964d675b97edaa881ab5cb209225ef0a4507e3d2771d6577658a058e7621f": {
|
|
4191
4192
|
functionName: "beginQrLogin_createServerFn_handler",
|
|
4192
|
-
importer: () => import("./connectors-
|
|
4193
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4193
4194
|
},
|
|
4194
4195
|
"7d7d5f80a4f0d2b3bb659d7dc2a91ea5983880648b9d1aa24356e7340505930f": {
|
|
4195
4196
|
functionName: "reorderLoop_createServerFn_handler",
|
|
4196
|
-
importer: () => import("./loops-
|
|
4197
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4197
4198
|
},
|
|
4198
4199
|
"80883b912a5a0aba2aa583b505e4e289d765a3f7fbb793a97692f439e7f960ba": {
|
|
4199
4200
|
functionName: "saveAgent_createServerFn_handler",
|
|
4200
|
-
importer: () => import("./agents-
|
|
4201
|
+
importer: () => import("./agents-Bz10gz_m.mjs")
|
|
4201
4202
|
},
|
|
4202
4203
|
"81a1af559b2a373901872aa9f9a6546f2f3bda8157d81c21a36ba0d1d337613b": {
|
|
4203
4204
|
functionName: "getLoopById_createServerFn_handler",
|
|
4204
|
-
importer: () => import("./loops-
|
|
4205
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4205
4206
|
},
|
|
4206
4207
|
"81f567724371f0d6f24e636906e2e9ea5b7384422ac583c86a1050fb838664ce": {
|
|
4207
4208
|
functionName: "getTaskLog_createServerFn_handler",
|
|
4208
|
-
importer: () => import("./tasks-
|
|
4209
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4209
4210
|
},
|
|
4210
4211
|
"921b049ebafe3c6fb5206fbe3e2100608d3333b944e18385e57da62a28233bc6": {
|
|
4211
4212
|
functionName: "getDispatcherState_createServerFn_handler",
|
|
4212
|
-
importer: () => import("./tasks-
|
|
4213
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4213
4214
|
},
|
|
4214
4215
|
"965ff21ee2f1e1f5a1cb78d50570cbad6f58ccdbdcc7955f02f816a9c0684f8e": {
|
|
4215
4216
|
functionName: "lookLoopNow_createServerFn_handler",
|
|
4216
|
-
importer: () => import("./loops-
|
|
4217
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4217
4218
|
},
|
|
4218
4219
|
"997d2dd097598c44811fe97def167b79d33e4349c51e783058da648e860c7c1f": {
|
|
4219
4220
|
functionName: "getLoopReadiness_createServerFn_handler",
|
|
4220
|
-
importer: () => import("./loops-
|
|
4221
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4221
4222
|
},
|
|
4222
4223
|
"a57f49c322cc5afa2996e4a5777fa533fd963755d614d4a14eb32e51fb198d9d": {
|
|
4223
4224
|
functionName: "stopTask_createServerFn_handler",
|
|
4224
|
-
importer: () => import("./tasks-
|
|
4225
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4225
4226
|
},
|
|
4226
4227
|
"b0878f841b35f46b5f2dc9cbd71c5be5895ae1b8903b3b24c24dfcf86291d3e4": {
|
|
4227
4228
|
functionName: "runAgentTest_createServerFn_handler",
|
|
4228
|
-
importer: () => import("./agents-
|
|
4229
|
+
importer: () => import("./agents-Bz10gz_m.mjs")
|
|
4229
4230
|
},
|
|
4230
4231
|
"b4f7a66e1bb69cc14ab84d8f5dc7f85119c9a9b1d065a6b4e51dd0ba84c3f60c": {
|
|
4231
4232
|
functionName: "rotateRunnerJoinToken_createServerFn_handler",
|
|
4232
|
-
importer: () => import("./runners-
|
|
4233
|
+
importer: () => import("./runners-W-pgo5yo.mjs")
|
|
4233
4234
|
},
|
|
4234
4235
|
"b5a89ca2d07f4ccf2827b5132ca52e7c7a42d584e702b0ab3963b2d5763c35b0": {
|
|
4235
4236
|
functionName: "removeLoop_createServerFn_handler",
|
|
4236
|
-
importer: () => import("./loops-
|
|
4237
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4237
4238
|
},
|
|
4238
4239
|
"bde588e9b0b81a4ee619a63872d6b8b76e22db006c7a3c4351bcd56e5f76bbed": {
|
|
4239
4240
|
functionName: "getAgentsPage_createServerFn_handler",
|
|
4240
|
-
importer: () => import("./agents-
|
|
4241
|
+
importer: () => import("./agents-Bz10gz_m.mjs")
|
|
4241
4242
|
},
|
|
4242
4243
|
"bef559b165754b06d6d5cf7c6dccde3d5a6a326462430c621eb131f78665d6e1": {
|
|
4243
4244
|
functionName: "runPrompt_createServerFn_handler",
|
|
4244
|
-
importer: () => import("./tasks-
|
|
4245
|
+
importer: () => import("./tasks-D-kXLgVP.mjs")
|
|
4245
4246
|
},
|
|
4246
4247
|
"e91fc2fd51633c7ca9184fea4beb66fe775ed0b4e6323111a4690da916a78b00": {
|
|
4247
4248
|
functionName: "saveLoop_createServerFn_handler",
|
|
4248
|
-
importer: () => import("./loops-
|
|
4249
|
+
importer: () => import("./loops-6WhUe_lc.mjs")
|
|
4249
4250
|
},
|
|
4250
4251
|
"f94f0787ce6704ea24f18add66832e0367a0feb9a690d8ad6454abec5e5df193": {
|
|
4251
4252
|
functionName: "disconnectConnection_createServerFn_handler",
|
|
4252
|
-
importer: () => import("./connectors-
|
|
4253
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4253
4254
|
},
|
|
4254
4255
|
"f9ade3084971078ee9f2bc16fcdcdfb5a8d66a0f9b634803bb611287c14e21d7": {
|
|
4255
4256
|
functionName: "verifyConnection_createServerFn_handler",
|
|
4256
|
-
importer: () => import("./connectors-
|
|
4257
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4257
4258
|
},
|
|
4258
4259
|
"fbf19a0d12b4046a23a8a41e106a79443b174cf1cad922b029e23fb4679b20db": {
|
|
4259
4260
|
functionName: "connectWithToken_createServerFn_handler",
|
|
4260
|
-
importer: () => import("./connectors-
|
|
4261
|
+
importer: () => import("./connectors-DJI-rzPU.mjs")
|
|
4261
4262
|
}
|
|
4262
4263
|
};
|
|
4263
4264
|
async function getServerFnById(id, access) {
|
|
@@ -6168,8 +6169,8 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
6168
6169
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
6169
6170
|
async function loadEntries() {
|
|
6170
6171
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
6171
|
-
import("./router-
|
|
6172
|
-
import("./start-
|
|
6172
|
+
import("./router-DdwREiOf.mjs").then((n) => n.t),
|
|
6173
|
+
import("./start-C_j-e4vF.mjs"),
|
|
6173
6174
|
import("./empty-plugin-adapters-BJ4m9L8g.mjs")
|
|
6174
6175
|
]);
|
|
6175
6176
|
return {
|
|
@@ -6614,4 +6615,4 @@ function createServerEntry(entry) {
|
|
|
6614
6615
|
}
|
|
6615
6616
|
var server_default = createServerEntry({ fetch: fetch$1 });
|
|
6616
6617
|
//#endregion
|
|
6617
|
-
export {
|
|
6618
|
+
export { getServerFnById as a, createServerEntry, server_default as default, TSS_SERVER_FUNCTION as i, createMiddleware as n, ssr_exports as o, createServerFn as r, createCsrfMiddleware as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { l as migrateIfNeeded } from "./client-
|
|
1
|
+
import { n as createMiddleware, t as createCsrfMiddleware } from "./ssr.mjs";
|
|
2
|
+
import { l as migrateIfNeeded } from "./client-Dk3SD8Il.mjs";
|
|
3
3
|
import { c as readAppToken, o as isLoopbackHost, r as assertAppAccess, s as isPublicApiPath, t as appAccessCookie } from "./access-DTttr563.mjs";
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/start-
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/start-C_j-e4vF.js
|
|
5
5
|
function dedupeSerializationAdapters(deduped, serializationAdapters) {
|
|
6
6
|
for (let i = 0, len = serializationAdapters.length; i < len; i++) {
|
|
7
7
|
const current = serializationAdapters[i];
|
|
@@ -45,6 +45,11 @@ var appAccess = createMiddleware({ type: "request" }).server(async ({ next, requ
|
|
|
45
45
|
if (token && expected && token === expected && !isLoopbackHost(new URL(request.url).hostname)) result.response.headers.append("Set-Cookie", appAccessCookie(token));
|
|
46
46
|
return result;
|
|
47
47
|
});
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Server functions are only ever called by the app's own pages, so a request
|
|
50
|
+
* from another site is refused. Runners use the /api routes, which this skips.
|
|
51
|
+
*/
|
|
52
|
+
var sameOrigin = createCsrfMiddleware({ filter: (ctx) => ctx.handlerType === "serverFn" });
|
|
53
|
+
var startInstance = createStart(() => ({ requestMiddleware: [appAccess, sameOrigin] }));
|
|
49
54
|
//#endregion
|
|
50
55
|
export { startInstance };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/switch-
|
|
1
|
+
import { K as require_jsx_runtime, d as SwitchThumb, f as SwitchRoot } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
+
import { P as cn } from "./router-DdwREiOf.mjs";
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/switch-odxNO_S4.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, {
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { K as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
+
import { f as Link } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
3
|
+
import { s as connectorManifest } from "./connections-Cqvb6Gw2.mjs";
|
|
4
|
+
import { n as agentManifest } from "./agents-B_qo1gpL.mjs";
|
|
5
|
+
import { E as CircleX, M as CircleCheck, O as CircleSlash, T as Clock, b as FileText, g as Loader, j as CircleMinus, z as Bot } from "../_libs/lucide-react.mjs";
|
|
6
|
+
import { P as cn, _ as Badge } from "./router-DdwREiOf.mjs";
|
|
7
|
+
import { t as ConnectorIcon } from "./connector-icon-DrhVbhs6.mjs";
|
|
8
|
+
import { a as List, t as Empty } from "./page-DZVxKvdn.mjs";
|
|
9
|
+
import { t as ago } from "./time-Cy8TZP0Z.mjs";
|
|
10
|
+
import { r as useLiveTasks } from "./use-live-tasks-BzhTkEOL.mjs";
|
|
11
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/task-list-Dnmq_WeE.js
|
|
12
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
13
|
+
var STATES = {
|
|
14
|
+
queued: {
|
|
15
|
+
label: "Queued",
|
|
16
|
+
icon: Clock,
|
|
17
|
+
tone: "text-muted-foreground"
|
|
18
|
+
},
|
|
19
|
+
preparing: {
|
|
20
|
+
label: "Working",
|
|
21
|
+
icon: Loader,
|
|
22
|
+
tone: "text-muted-foreground"
|
|
23
|
+
},
|
|
24
|
+
awaiting_agent: {
|
|
25
|
+
label: "On a runner",
|
|
26
|
+
icon: Bot,
|
|
27
|
+
tone: "text-muted-foreground"
|
|
28
|
+
},
|
|
29
|
+
applying: {
|
|
30
|
+
label: "Writing",
|
|
31
|
+
icon: Loader,
|
|
32
|
+
tone: "text-muted-foreground"
|
|
33
|
+
},
|
|
34
|
+
prepared: {
|
|
35
|
+
label: "Prepared",
|
|
36
|
+
icon: FileText,
|
|
37
|
+
tone: "text-muted-foreground"
|
|
38
|
+
},
|
|
39
|
+
done: {
|
|
40
|
+
label: "Written",
|
|
41
|
+
icon: CircleCheck,
|
|
42
|
+
tone: "text-emerald-600"
|
|
43
|
+
},
|
|
44
|
+
skipped: {
|
|
45
|
+
label: "Nothing to say",
|
|
46
|
+
icon: CircleMinus,
|
|
47
|
+
tone: "text-muted-foreground"
|
|
48
|
+
},
|
|
49
|
+
failed: {
|
|
50
|
+
label: "Failed",
|
|
51
|
+
icon: CircleX,
|
|
52
|
+
tone: "text-destructive"
|
|
53
|
+
},
|
|
54
|
+
cancelled: {
|
|
55
|
+
label: "Stopped",
|
|
56
|
+
icon: CircleSlash,
|
|
57
|
+
tone: "text-muted-foreground"
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function TaskStateLabel({ state }) {
|
|
61
|
+
const meta = STATES[state];
|
|
62
|
+
const Icon = meta.icon;
|
|
63
|
+
const spinning = state === "preparing" || state === "awaiting_agent" || state === "applying";
|
|
64
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
65
|
+
className: cn("flex items-center gap-1.5 text-xs", meta.tone),
|
|
66
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: cn("size-3.5", spinning && "animate-spin") }), meta.label]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/** A queued task has no title yet: the connector has not fetched it. */
|
|
70
|
+
function taskTitle(task) {
|
|
71
|
+
return task.sourceTitle ?? task.sourceRef;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Kinds whose reference a person can read. A repository and a number say
|
|
75
|
+
* where the work is; a mail or a message id is a handle for fetching it
|
|
76
|
+
* again and means nothing on a page.
|
|
77
|
+
*/
|
|
78
|
+
var NAMED_REF = /* @__PURE__ */ new Set(["pull_request", "issue"]);
|
|
79
|
+
/** What to call the thing a task is about, where a sentence needs a noun. */
|
|
80
|
+
var KIND_LABEL = {
|
|
81
|
+
pull_request: "Pull request",
|
|
82
|
+
issue: "Issue",
|
|
83
|
+
message: "Message",
|
|
84
|
+
email: "Email",
|
|
85
|
+
occurrence: "Scheduled run",
|
|
86
|
+
prompt: "Test run"
|
|
87
|
+
};
|
|
88
|
+
function TaskList({ tasks, showLoop = true, empty }) {
|
|
89
|
+
useLiveTasks(tasks);
|
|
90
|
+
if (tasks.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Empty, { children: empty });
|
|
91
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(List, { children: tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Link, {
|
|
92
|
+
to: "/inbox/$taskId",
|
|
93
|
+
params: { taskId: task.id },
|
|
94
|
+
className: "flex items-start gap-3 px-4 py-3 transition-colors hover:bg-muted/50",
|
|
95
|
+
children: [task.sourceKind === "prompt" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
96
|
+
className: "flex size-7 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",
|
|
97
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bot, { className: "size-4" })
|
|
98
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectorIcon, {
|
|
99
|
+
icon: connectorManifest(task.connectorId)?.icon ?? "Plug",
|
|
100
|
+
accent: connectorManifest(task.connectorId)?.accent ?? "bg-muted",
|
|
101
|
+
className: "size-7 shrink-0"
|
|
102
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
103
|
+
className: "min-w-0 flex-1",
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
106
|
+
className: "flex items-center gap-2",
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
109
|
+
className: "min-w-0 flex-1 truncate text-sm font-medium",
|
|
110
|
+
children: taskTitle(task)
|
|
111
|
+
}),
|
|
112
|
+
task.dryRun ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
|
|
113
|
+
variant: "outline",
|
|
114
|
+
children: "Dry run"
|
|
115
|
+
}) : null,
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TaskStateLabel, { state: task.state })
|
|
117
|
+
]
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TaskMeta, {
|
|
120
|
+
task,
|
|
121
|
+
showLoop
|
|
122
|
+
}),
|
|
123
|
+
task.output ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
124
|
+
className: "mt-1 line-clamp-1 text-xs text-muted-foreground",
|
|
125
|
+
children: task.output
|
|
126
|
+
}) : task.error ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
127
|
+
className: "mt-1 line-clamp-1 text-xs text-destructive",
|
|
128
|
+
children: task.error
|
|
129
|
+
}) : null
|
|
130
|
+
]
|
|
131
|
+
})]
|
|
132
|
+
}, task.id)) });
|
|
133
|
+
}
|
|
134
|
+
/** One quiet line: which item, which loop, which agent, when. */
|
|
135
|
+
function TaskMeta({ task, showLoop }) {
|
|
136
|
+
const agent = task.agentId ? agentManifest(task.agentId) : void 0;
|
|
137
|
+
const parts = [
|
|
138
|
+
NAMED_REF.has(task.sourceKind) && task.sourceTitle ? task.sourceRef : null,
|
|
139
|
+
showLoop ? task.loopName : null,
|
|
140
|
+
agent?.name,
|
|
141
|
+
ago(task.createdAt)
|
|
142
|
+
].filter(Boolean);
|
|
143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
144
|
+
suppressHydrationWarning: true,
|
|
145
|
+
className: "mt-0.5 truncate text-xs text-muted-foreground",
|
|
146
|
+
children: parts.join(" · ")
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//#endregion
|
|
150
|
+
export { taskTitle as i, TaskList as n, TaskStateLabel as r, KIND_LABEL as t };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r as createServerFn } from "./ssr.mjs";
|
|
2
2
|
import { f as eq } from "../_libs/drizzle-orm.mjs";
|
|
3
|
-
import { r as appSettings, s as db } from "./client-
|
|
4
|
-
import {
|
|
5
|
-
import { a as enqueueTask, d as
|
|
6
|
-
import { t as createServerRpc } from "./createServerRpc-
|
|
3
|
+
import { r as appSettings, s as db } from "./client-Dk3SD8Il.mjs";
|
|
4
|
+
import { u as onlineRunnerCount } from "./runners-CK9Cx9fS.mjs";
|
|
5
|
+
import { a as enqueueTask, d as listRunnableAgents, f as listTasks, h as requestCancel, m as readTaskLog, r as enqueuePrompt, s as getTask } from "./tasks-D7aUvA33.mjs";
|
|
6
|
+
import { t as createServerRpc } from "./createServerRpc-DDrp2nLT.mjs";
|
|
7
7
|
import { randomUUID } from "node:crypto";
|
|
8
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-
|
|
8
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-D-kXLgVP.js
|
|
9
9
|
async function readSetting(key, fallback) {
|
|
10
10
|
const row = await db().select().from(appSettings).where(eq(appSettings.key, key)).get();
|
|
11
11
|
return row === void 0 ? fallback : row.value;
|
|
@@ -68,37 +68,37 @@ var getLoopTasks_createServerFn_handler = createServerRpc({
|
|
|
68
68
|
name: "getLoopTasks",
|
|
69
69
|
filename: "src/server/functions/tasks.ts"
|
|
70
70
|
}, (opts) => getLoopTasks.__executeServer(opts));
|
|
71
|
-
var getLoopTasks = createServerFn({ method: "GET" }).
|
|
71
|
+
var getLoopTasks = createServerFn({ method: "GET" }).validator((data) => data).handler(getLoopTasks_createServerFn_handler, async ({ data }) => await listTasks({ loopId: data.loopId }));
|
|
72
72
|
var getTaskById_createServerFn_handler = createServerRpc({
|
|
73
73
|
id: "0033ef7c619c027b1428a722dff188d315ed335645afcb1033528630b7c95e88",
|
|
74
74
|
name: "getTaskById",
|
|
75
75
|
filename: "src/server/functions/tasks.ts"
|
|
76
76
|
}, (opts) => getTaskById.__executeServer(opts));
|
|
77
|
-
var getTaskById = createServerFn({ method: "GET" }).
|
|
77
|
+
var getTaskById = createServerFn({ method: "GET" }).validator((data) => data).handler(getTaskById_createServerFn_handler, async ({ data }) => await getTask(data.id));
|
|
78
78
|
var getTaskLog_createServerFn_handler = createServerRpc({
|
|
79
79
|
id: "81f567724371f0d6f24e636906e2e9ea5b7384422ac583c86a1050fb838664ce",
|
|
80
80
|
name: "getTaskLog",
|
|
81
81
|
filename: "src/server/functions/tasks.ts"
|
|
82
82
|
}, (opts) => getTaskLog.__executeServer(opts));
|
|
83
|
-
var getTaskLog = createServerFn({ method: "GET" }).
|
|
83
|
+
var getTaskLog = createServerFn({ method: "GET" }).validator((data) => data).handler(getTaskLog_createServerFn_handler, async ({ data }) => await readTaskLog(data.id));
|
|
84
84
|
var runPrompt_createServerFn_handler = createServerRpc({
|
|
85
85
|
id: "bef559b165754b06d6d5cf7c6dccde3d5a6a326462430c621eb131f78665d6e1",
|
|
86
86
|
name: "runPrompt",
|
|
87
87
|
filename: "src/server/functions/tasks.ts"
|
|
88
88
|
}, (opts) => runPrompt.__executeServer(opts));
|
|
89
|
-
var runPrompt = createServerFn({ method: "POST" }).
|
|
89
|
+
var runPrompt = createServerFn({ method: "POST" }).validator((data) => data).handler(runPrompt_createServerFn_handler, async ({ data }) => await enqueuePrompt(data));
|
|
90
90
|
var runLoopNow_createServerFn_handler = createServerRpc({
|
|
91
91
|
id: "7258ce5fc6f23acf3aab039ecd4acdb006d42b2ddbf3ab8629b4000e101b51dc",
|
|
92
92
|
name: "runLoopNow",
|
|
93
93
|
filename: "src/server/functions/tasks.ts"
|
|
94
94
|
}, (opts) => runLoopNow.__executeServer(opts));
|
|
95
|
-
var runLoopNow = createServerFn({ method: "POST" }).
|
|
95
|
+
var runLoopNow = createServerFn({ method: "POST" }).validator((data) => data).handler(runLoopNow_createServerFn_handler, async ({ data }) => await enqueueTask(data));
|
|
96
96
|
var stopTask_createServerFn_handler = createServerRpc({
|
|
97
97
|
id: "a57f49c322cc5afa2996e4a5777fa533fd963755d614d4a14eb32e51fb198d9d",
|
|
98
98
|
name: "stopTask",
|
|
99
99
|
filename: "src/server/functions/tasks.ts"
|
|
100
100
|
}, (opts) => stopTask.__executeServer(opts));
|
|
101
|
-
var stopTask = createServerFn({ method: "POST" }).
|
|
101
|
+
var stopTask = createServerFn({ method: "POST" }).validator((data) => data).handler(stopTask_createServerFn_handler, async ({ data }) => await requestCancel(data.id));
|
|
102
102
|
var getDispatcherState_createServerFn_handler = createServerRpc({
|
|
103
103
|
id: "921b049ebafe3c6fb5206fbe3e2100608d3333b944e18385e57da62a28233bc6",
|
|
104
104
|
name: "getDispatcherState",
|
|
@@ -114,6 +114,6 @@ var pauseDispatcher_createServerFn_handler = createServerRpc({
|
|
|
114
114
|
name: "pauseDispatcher",
|
|
115
115
|
filename: "src/server/functions/tasks.ts"
|
|
116
116
|
}, (opts) => pauseDispatcher.__executeServer(opts));
|
|
117
|
-
var pauseDispatcher = createServerFn({ method: "POST" }).
|
|
117
|
+
var pauseDispatcher = createServerFn({ method: "POST" }).validator((data) => data).handler(pauseDispatcher_createServerFn_handler, async ({ data }) => await setDispatcherPaused(data.paused));
|
|
118
118
|
//#endregion
|
|
119
119
|
export { getDispatcherState_createServerFn_handler, getInbox_createServerFn_handler, getLoopTasks_createServerFn_handler, getTaskById_createServerFn_handler, getTaskLog_createServerFn_handler, pauseDispatcher_createServerFn_handler, runLoopNow_createServerFn_handler, runPrompt_createServerFn_handler, stopTask_createServerFn_handler };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { f as eq, u as desc } from "../_libs/drizzle-orm.mjs";
|
|
2
|
-
import { c as loops, d as runDir, g as tasks, s as db } from "./client-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { c as loops, d as runDir, g as tasks, s as db } from "./client-Dk3SD8Il.mjs";
|
|
3
|
+
import { c as connectorRuntime, l as connectorWorkflow, o as connectorAction, s as connectorManifest, u as credentialForConnector } from "./connections-Cqvb6Gw2.mjs";
|
|
4
|
+
import { n as availableAgentIds } from "./runners-CK9Cx9fS.mjs";
|
|
5
|
+
import { i as listAgents, n as agentManifest, s as settingsFor } from "./agents-B_qo1gpL.mjs";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
7
|
-
import { existsSync, readFileSync,
|
|
7
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { isAbsolute, join } from "node:path";
|
|
9
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-
|
|
9
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/tasks-D7aUvA33.js
|
|
10
10
|
/** The agent says this when the honest answer is silence. */
|
|
11
11
|
var AGENT_NOTHING = "NOTHING_TO_DO";
|
|
12
12
|
function isAgentNothing(text) {
|
|
@@ -14,11 +14,38 @@ function isAgentNothing(text) {
|
|
|
14
14
|
return compact(text) === compact(AGENT_NOTHING);
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Stands in a prompt for the runner's own workspace, which the dispatcher
|
|
18
|
+
* cannot know. The runner replaces it before the agent sees the prompt.
|
|
19
|
+
*/
|
|
20
|
+
var WORKSPACE = "{{loopable:workspace}}";
|
|
21
|
+
/**
|
|
22
|
+
* A loop's folder is relative to the home folder, because each runner keeps
|
|
23
|
+
* its checkouts under its own home. "~/code/web" and "code/web" are the same.
|
|
24
|
+
* An absolute path is from before that, and only means something on the host
|
|
25
|
+
* it was written on.
|
|
26
|
+
*/
|
|
27
|
+
function normalizeFolder(folder) {
|
|
28
|
+
const trimmed = folder.trim();
|
|
29
|
+
if (trimmed === "~") return "";
|
|
30
|
+
return trimmed.startsWith("~/") ? trimmed.slice(2) : trimmed;
|
|
31
|
+
}
|
|
32
|
+
function folderIsLegacy(folder) {
|
|
33
|
+
return isAbsolute(folder.trim());
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Only an old absolute folder ties a job to Loopable's host. A relative one
|
|
37
|
+
* goes to any runner, which looks for it under its own home.
|
|
19
38
|
*/
|
|
20
39
|
function jobRequiresHost(job) {
|
|
21
|
-
return Boolean(job.cwd);
|
|
40
|
+
return Boolean(job.cwd && folderIsLegacy(job.cwd));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The oldest runner protocol that can do this job. A relative folder and the
|
|
44
|
+
* workspace placeholder are both protocol 2; an older runner would run the
|
|
45
|
+
* agent in the wrong place and hand it a path that does not exist.
|
|
46
|
+
*/
|
|
47
|
+
function jobMinProtocol(job) {
|
|
48
|
+
return job.cwd && !folderIsLegacy(job.cwd) ? 2 : 0;
|
|
22
49
|
}
|
|
23
50
|
/**
|
|
24
51
|
* Appended to the workflow's prompt, because the shape of the answer is the
|
|
@@ -399,12 +426,13 @@ var TaskCancelled = class extends Error {
|
|
|
399
426
|
* left to the agent, which would otherwise run somewhere unexpected and answer
|
|
400
427
|
* confidently about the wrong code.
|
|
401
428
|
*/
|
|
429
|
+
/**
|
|
430
|
+
* The loop's folder as it is stored: relative to a runner's home. Whether it
|
|
431
|
+
* exists is the runner's to find out, since only it can look.
|
|
432
|
+
*/
|
|
402
433
|
function folderFor(loop) {
|
|
403
|
-
const folder = typeof loop.settings.folder === "string" ? loop.settings.folder
|
|
434
|
+
const folder = typeof loop.settings.folder === "string" ? normalizeFolder(loop.settings.folder) : "";
|
|
404
435
|
if (!folder) throw new Error("This loop has no folder set. Set one and try again.");
|
|
405
|
-
if (!isAbsolute(folder)) throw new Error(`The folder must be an absolute path: ${folder}`);
|
|
406
|
-
if (!existsSync(folder)) throw new Error(`There is no folder at ${folder}.`);
|
|
407
|
-
if (!statSync(folder).isDirectory()) throw new Error(`${folder} is not a folder.`);
|
|
408
436
|
return folder;
|
|
409
437
|
}
|
|
410
438
|
var KIND_NOUN = {
|
|
@@ -522,7 +550,6 @@ async function jobForTask(id) {
|
|
|
522
550
|
}
|
|
523
551
|
const { task, loop, workflow, item } = await loadWork(id);
|
|
524
552
|
if (!task.agentId) throw new Error("This task has no agent yet.");
|
|
525
|
-
const workspace = runDir(id);
|
|
526
553
|
const cwd = workflow.runsIn === "folder" ? folderFor(loop) : void 0;
|
|
527
554
|
const branch = workflow.answer === "code" ? branchFor({
|
|
528
555
|
ref: item.ref,
|
|
@@ -538,7 +565,7 @@ async function jobForTask(id) {
|
|
|
538
565
|
ask: loop.prompt,
|
|
539
566
|
guidance: loop.guidance,
|
|
540
567
|
item,
|
|
541
|
-
files: item.context.map((file) => cwd ?
|
|
568
|
+
files: item.context.map((file) => cwd ? `${WORKSPACE}/${file.name}` : file.name),
|
|
542
569
|
branch
|
|
543
570
|
}),
|
|
544
571
|
settings,
|
|
@@ -568,7 +595,7 @@ async function absorbAgentOutput(id, raw) {
|
|
|
568
595
|
output: said,
|
|
569
596
|
comments: []
|
|
570
597
|
});
|
|
571
|
-
await finish(id, existing, { state: "
|
|
598
|
+
await finish(id, existing, { state: "done" });
|
|
572
599
|
return await getTask(id);
|
|
573
600
|
}
|
|
574
601
|
const { task, workflow, action, item } = await loadWork(id);
|
|
@@ -620,4 +647,4 @@ async function defaultAgentFor(pinned) {
|
|
|
620
647
|
throw new Error("No agent is available. Start a runner with an agent signed in.");
|
|
621
648
|
}
|
|
622
649
|
//#endregion
|
|
623
|
-
export { enqueueTask as a,
|
|
650
|
+
export { updateTask as _, enqueueTask as a, jobForTask as c, listRunnableAgents as d, listTasks as f, taskRow as g, requestCancel as h, enqueueSignal as i, jobMinProtocol as l, readTaskLog as m, defaultAgentFor as n, folderIsLegacy as o, normalizeFolder as p, enqueuePrompt as r, getTask as s, absorbAgentOutput as t, jobRequiresHost as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../_runtime.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { K as require_jsx_runtime, q as require_react } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
|
+
import { P as cn } from "./router-DdwREiOf.mjs";
|
|
4
4
|
require_react();
|
|
5
5
|
var import_jsx_runtime = require_jsx_runtime();
|
|
6
6
|
function Textarea({ className, ...props }) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/time-Cy8TZP0Z.js
|
|
2
|
+
/** "just now", "5m ago", "3h ago", or a date. */
|
|
3
|
+
function ago(iso) {
|
|
4
|
+
const seconds = Math.round((Date.now() - new Date(iso).getTime()) / 1e3);
|
|
5
|
+
if (seconds < 60) return "just now";
|
|
6
|
+
const minutes = Math.round(seconds / 60);
|
|
7
|
+
if (minutes < 60) return `${minutes}m ago`;
|
|
8
|
+
const hours = Math.round(minutes / 60);
|
|
9
|
+
if (hours < 24) return `${hours}h ago`;
|
|
10
|
+
return new Date(iso).toLocaleDateString();
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { ago as t };
|