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
package/.output/server/index.mjs
CHANGED
|
@@ -14,261 +14,296 @@ var public_assets_data_default = {
|
|
|
14
14
|
"/apple-touch-icon.png": {
|
|
15
15
|
"type": "image/png",
|
|
16
16
|
"etag": "\"6e2-DpcPkINR92ffme+04R4KBRmf4jE\"",
|
|
17
|
-
"mtime": "2026-
|
|
17
|
+
"mtime": "2026-10-05T23:18:14.326Z",
|
|
18
18
|
"size": 1762,
|
|
19
19
|
"path": "../public/apple-touch-icon.png"
|
|
20
20
|
},
|
|
21
21
|
"/favicon.svg": {
|
|
22
22
|
"type": "image/svg+xml",
|
|
23
23
|
"etag": "\"1b3-uNgdb2Q4nmFEpsmW/cpMJbfKeng\"",
|
|
24
|
-
"mtime": "2026-
|
|
24
|
+
"mtime": "2026-10-05T23:18:14.326Z",
|
|
25
25
|
"size": 435,
|
|
26
26
|
"path": "../public/favicon.svg"
|
|
27
27
|
},
|
|
28
|
-
"/assets/_connectorId-
|
|
28
|
+
"/assets/_connectorId-CDCuSgpN.js": {
|
|
29
29
|
"type": "text/javascript; charset=utf-8",
|
|
30
|
-
"etag": "\"
|
|
31
|
-
"mtime": "2026-
|
|
32
|
-
"size":
|
|
33
|
-
"path": "../public/assets/_connectorId-
|
|
30
|
+
"etag": "\"34a7-IUDgJohPQyOsDHdV/5A7yNMOwkg\"",
|
|
31
|
+
"mtime": "2026-10-05T23:18:13.855Z",
|
|
32
|
+
"size": 13479,
|
|
33
|
+
"path": "../public/assets/_connectorId-CDCuSgpN.js"
|
|
34
34
|
},
|
|
35
|
-
"/assets/
|
|
35
|
+
"/assets/_taskId-BO5MZnlZ.js": {
|
|
36
36
|
"type": "text/javascript; charset=utf-8",
|
|
37
|
-
"etag": "\"
|
|
38
|
-
"mtime": "2026-
|
|
39
|
-
"size":
|
|
40
|
-
"path": "../public/assets/
|
|
37
|
+
"etag": "\"1a33-wV+WeM638h9ux3vza7mZbQ3kfbM\"",
|
|
38
|
+
"mtime": "2026-10-05T23:18:13.855Z",
|
|
39
|
+
"size": 6707,
|
|
40
|
+
"path": "../public/assets/_taskId-BO5MZnlZ.js"
|
|
41
41
|
},
|
|
42
|
-
"/assets/
|
|
42
|
+
"/assets/agents-CBozi7oi.js": {
|
|
43
43
|
"type": "text/javascript; charset=utf-8",
|
|
44
|
-
"etag": "\"
|
|
45
|
-
"mtime": "2026-
|
|
46
|
-
"size":
|
|
47
|
-
"path": "../public/assets/
|
|
44
|
+
"etag": "\"1345-6elPLC9b7/viDAmycTJHpiCp94o\"",
|
|
45
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
46
|
+
"size": 4933,
|
|
47
|
+
"path": "../public/assets/agents-CBozi7oi.js"
|
|
48
48
|
},
|
|
49
|
-
"/assets/
|
|
49
|
+
"/assets/alert-Bn_wjgTX.js": {
|
|
50
50
|
"type": "text/javascript; charset=utf-8",
|
|
51
|
-
"etag": "\"
|
|
52
|
-
"mtime": "2026-
|
|
53
|
-
"size":
|
|
54
|
-
"path": "../public/assets/
|
|
51
|
+
"etag": "\"512-H3jYu5RonBQQIJvLc8RxomisWcE\"",
|
|
52
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
53
|
+
"size": 1298,
|
|
54
|
+
"path": "../public/assets/alert-Bn_wjgTX.js"
|
|
55
55
|
},
|
|
56
|
-
"/assets/
|
|
56
|
+
"/assets/_loopId-DOnIsVTW.js": {
|
|
57
57
|
"type": "text/javascript; charset=utf-8",
|
|
58
|
-
"etag": "\"
|
|
59
|
-
"mtime": "2026-
|
|
60
|
-
"size":
|
|
61
|
-
"path": "../public/assets/
|
|
58
|
+
"etag": "\"195d-GujkwM/vDe23v1OyENClIGhemGI\"",
|
|
59
|
+
"mtime": "2026-10-05T23:18:13.855Z",
|
|
60
|
+
"size": 6493,
|
|
61
|
+
"path": "../public/assets/_loopId-DOnIsVTW.js"
|
|
62
62
|
},
|
|
63
|
-
"/assets/
|
|
63
|
+
"/assets/button-K3ypIhAZ.js": {
|
|
64
64
|
"type": "text/javascript; charset=utf-8",
|
|
65
|
-
"etag": "\"
|
|
66
|
-
"mtime": "2026-
|
|
67
|
-
"size":
|
|
68
|
-
"path": "../public/assets/
|
|
65
|
+
"etag": "\"31ac-a3StExGms0X+9tV2FlRL+mVCiqQ\"",
|
|
66
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
67
|
+
"size": 12716,
|
|
68
|
+
"path": "../public/assets/button-K3ypIhAZ.js"
|
|
69
69
|
},
|
|
70
|
-
"/assets/
|
|
70
|
+
"/assets/card-DiVnaTIE.js": {
|
|
71
71
|
"type": "text/javascript; charset=utf-8",
|
|
72
|
-
"etag": "\"
|
|
73
|
-
"mtime": "2026-
|
|
74
|
-
"size":
|
|
75
|
-
"path": "../public/assets/
|
|
72
|
+
"etag": "\"51c-MBQ28GRB77i9V3GttyjJCXH5Ho0\"",
|
|
73
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
74
|
+
"size": 1308,
|
|
75
|
+
"path": "../public/assets/card-DiVnaTIE.js"
|
|
76
76
|
},
|
|
77
|
-
"/assets/
|
|
77
|
+
"/assets/chevron-right-BrctLtFK.js": {
|
|
78
78
|
"type": "text/javascript; charset=utf-8",
|
|
79
|
-
"etag": "\"
|
|
80
|
-
"mtime": "2026-
|
|
81
|
-
"size":
|
|
82
|
-
"path": "../public/assets/
|
|
79
|
+
"etag": "\"80-7lRbXBo5rsYwR2128RL7e1opGaI\"",
|
|
80
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
81
|
+
"size": 128,
|
|
82
|
+
"path": "../public/assets/chevron-right-BrctLtFK.js"
|
|
83
83
|
},
|
|
84
|
-
"/assets/
|
|
84
|
+
"/assets/connector-icon-CEbdE71G.js": {
|
|
85
85
|
"type": "text/javascript; charset=utf-8",
|
|
86
|
-
"etag": "\"
|
|
87
|
-
"mtime": "2026-
|
|
88
|
-
"size":
|
|
89
|
-
"path": "../public/assets/
|
|
86
|
+
"etag": "\"347c-bZ3czGhdAEymZzQrljxbvZS5zl8\"",
|
|
87
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
88
|
+
"size": 13436,
|
|
89
|
+
"path": "../public/assets/connector-icon-CEbdE71G.js"
|
|
90
90
|
},
|
|
91
|
-
"/assets/gaps-
|
|
91
|
+
"/assets/gaps-PjmcbaWo.js": {
|
|
92
92
|
"type": "text/javascript; charset=utf-8",
|
|
93
|
-
"etag": "\"
|
|
94
|
-
"mtime": "2026-
|
|
95
|
-
"size":
|
|
96
|
-
"path": "../public/assets/gaps-
|
|
93
|
+
"etag": "\"830-K+Qc8OCw6EFbiRQJb+ZBoEl5FuY\"",
|
|
94
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
95
|
+
"size": 2096,
|
|
96
|
+
"path": "../public/assets/gaps-PjmcbaWo.js"
|
|
97
97
|
},
|
|
98
|
-
"/assets/
|
|
98
|
+
"/assets/connectors-JyX3IzJj.js": {
|
|
99
99
|
"type": "text/javascript; charset=utf-8",
|
|
100
|
-
"etag": "\"
|
|
101
|
-
"mtime": "2026-
|
|
102
|
-
"size":
|
|
103
|
-
"path": "../public/assets/
|
|
100
|
+
"etag": "\"72c-EVOOaen9vr4EshJ3AlQ7z9aVbsU\"",
|
|
101
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
102
|
+
"size": 1836,
|
|
103
|
+
"path": "../public/assets/connectors-JyX3IzJj.js"
|
|
104
104
|
},
|
|
105
|
-
"/assets/geist-cyrillic-wght-normal-
|
|
105
|
+
"/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2": {
|
|
106
106
|
"type": "font/woff2",
|
|
107
|
-
"etag": "\"
|
|
108
|
-
"mtime": "2026-
|
|
109
|
-
"size":
|
|
110
|
-
"path": "../public/assets/geist-cyrillic-wght-normal-
|
|
107
|
+
"etag": "\"1cfc-yYSDXNlt/tTRaj6rJo8ZMqvY7pQ\"",
|
|
108
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
109
|
+
"size": 7420,
|
|
110
|
+
"path": "../public/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2"
|
|
111
111
|
},
|
|
112
112
|
"/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2": {
|
|
113
113
|
"type": "font/woff2",
|
|
114
114
|
"etag": "\"4080-mZu3Z7sOWqglha+kefNbUA9Pp+Q\"",
|
|
115
|
-
"mtime": "2026-
|
|
115
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
116
116
|
"size": 16512,
|
|
117
117
|
"path": "../public/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2"
|
|
118
118
|
},
|
|
119
|
-
"/assets/geist-cyrillic-
|
|
119
|
+
"/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2": {
|
|
120
120
|
"type": "font/woff2",
|
|
121
|
-
"etag": "\"
|
|
122
|
-
"mtime": "2026-
|
|
123
|
-
"size":
|
|
124
|
-
"path": "../public/assets/geist-cyrillic-
|
|
121
|
+
"etag": "\"3aec-5kpQSZEtAzzU5kdiuro3Zr2YR54\"",
|
|
122
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
123
|
+
"size": 15084,
|
|
124
|
+
"path": "../public/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2"
|
|
125
125
|
},
|
|
126
126
|
"/assets/geist-latin-wght-normal-BgDaEnEv.woff2": {
|
|
127
127
|
"type": "font/woff2",
|
|
128
128
|
"etag": "\"72d8-9J+D7/6th5UzRxIgoFX9awJv47A\"",
|
|
129
|
-
"mtime": "2026-
|
|
129
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
130
130
|
"size": 29400,
|
|
131
131
|
"path": "../public/assets/geist-latin-wght-normal-BgDaEnEv.woff2"
|
|
132
132
|
},
|
|
133
133
|
"/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2": {
|
|
134
134
|
"type": "font/woff2",
|
|
135
135
|
"etag": "\"1f44-6MZ7/PEEOeDVF0eHI650KpwKQV8\"",
|
|
136
|
-
"mtime": "2026-
|
|
136
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
137
137
|
"size": 8004,
|
|
138
138
|
"path": "../public/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2"
|
|
139
139
|
},
|
|
140
|
-
"/assets/inbox-
|
|
140
|
+
"/assets/inbox-CujRR0Cz.js": {
|
|
141
|
+
"type": "text/javascript; charset=utf-8",
|
|
142
|
+
"etag": "\"1561-8nH4d2WSoexyZjDnmylgJLGOnrg\"",
|
|
143
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
144
|
+
"size": 5473,
|
|
145
|
+
"path": "../public/assets/inbox-CujRR0Cz.js"
|
|
146
|
+
},
|
|
147
|
+
"/assets/loop-form-Dw3cuTzw.js": {
|
|
148
|
+
"type": "text/javascript; charset=utf-8",
|
|
149
|
+
"etag": "\"1be9-3uim5fcKfearkYTAyM2e6kIImtc\"",
|
|
150
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
151
|
+
"size": 7145,
|
|
152
|
+
"path": "../public/assets/loop-form-Dw3cuTzw.js"
|
|
153
|
+
},
|
|
154
|
+
"/assets/index-C9SQ_Baq.js": {
|
|
155
|
+
"type": "text/javascript; charset=utf-8",
|
|
156
|
+
"etag": "\"4e7bc-N0medteM/sMNhOo4Y8JlWqys26I\"",
|
|
157
|
+
"mtime": "2026-10-05T23:18:13.855Z",
|
|
158
|
+
"size": 321468,
|
|
159
|
+
"path": "../public/assets/index-C9SQ_Baq.js"
|
|
160
|
+
},
|
|
161
|
+
"/assets/loops-DcEfZa2_.js": {
|
|
162
|
+
"type": "text/javascript; charset=utf-8",
|
|
163
|
+
"etag": "\"6a97-zHHr+/aE9xIobsfkVUGfqHaRKNI\"",
|
|
164
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
165
|
+
"size": 27287,
|
|
166
|
+
"path": "../public/assets/loops-DcEfZa2_.js"
|
|
167
|
+
},
|
|
168
|
+
"/assets/manifests-yJpevyye.js": {
|
|
141
169
|
"type": "text/javascript; charset=utf-8",
|
|
142
|
-
"etag": "\"
|
|
143
|
-
"mtime": "2026-
|
|
144
|
-
"size":
|
|
145
|
-
"path": "../public/assets/
|
|
170
|
+
"etag": "\"644-hIvlgVVCDwLCaT/UuMEfAxnzKQM\"",
|
|
171
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
172
|
+
"size": 1604,
|
|
173
|
+
"path": "../public/assets/manifests-yJpevyye.js"
|
|
146
174
|
},
|
|
147
|
-
"/assets/
|
|
175
|
+
"/assets/connection-status-DKWelvLO.js": {
|
|
148
176
|
"type": "text/javascript; charset=utf-8",
|
|
149
|
-
"etag": "\"
|
|
150
|
-
"mtime": "2026-
|
|
151
|
-
"size":
|
|
152
|
-
"path": "../public/assets/
|
|
177
|
+
"etag": "\"238-Bs8KXkqFT6oO1vHIPQFlTZYFlmk\"",
|
|
178
|
+
"mtime": "2026-10-05T23:18:13.856Z",
|
|
179
|
+
"size": 568,
|
|
180
|
+
"path": "../public/assets/connection-status-DKWelvLO.js"
|
|
153
181
|
},
|
|
154
|
-
"/assets/
|
|
182
|
+
"/assets/new-CwsnNuRW.js": {
|
|
155
183
|
"type": "text/javascript; charset=utf-8",
|
|
156
|
-
"etag": "\"
|
|
157
|
-
"mtime": "2026-
|
|
158
|
-
"size":
|
|
159
|
-
"path": "../public/assets/
|
|
184
|
+
"etag": "\"1134-XmQlOHOwPgThXSj2F5c1PklXZLM\"",
|
|
185
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
186
|
+
"size": 4404,
|
|
187
|
+
"path": "../public/assets/new-CwsnNuRW.js"
|
|
160
188
|
},
|
|
161
|
-
"/assets/
|
|
189
|
+
"/assets/page-bvnfRMum.js": {
|
|
162
190
|
"type": "text/javascript; charset=utf-8",
|
|
163
|
-
"etag": "\"
|
|
164
|
-
"mtime": "2026-
|
|
165
|
-
"size":
|
|
166
|
-
"path": "../public/assets/
|
|
191
|
+
"etag": "\"aaf-T29Udqf+EolfmsoUIwdvUJCFOfk\"",
|
|
192
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
193
|
+
"size": 2735,
|
|
194
|
+
"path": "../public/assets/page-bvnfRMum.js"
|
|
167
195
|
},
|
|
168
|
-
"/assets/
|
|
196
|
+
"/assets/plus-Ber25lrU.js": {
|
|
169
197
|
"type": "text/javascript; charset=utf-8",
|
|
170
|
-
"etag": "\"
|
|
171
|
-
"mtime": "2026-
|
|
172
|
-
"size":
|
|
173
|
-
"path": "../public/assets/
|
|
198
|
+
"etag": "\"97-lYmBVbASHr4M29XmcRIe+1I6liI\"",
|
|
199
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
200
|
+
"size": 151,
|
|
201
|
+
"path": "../public/assets/plus-Ber25lrU.js"
|
|
174
202
|
},
|
|
175
|
-
"/assets/play-
|
|
203
|
+
"/assets/play-yHLs4DjK.js": {
|
|
176
204
|
"type": "text/javascript; charset=utf-8",
|
|
177
|
-
"etag": "\"bc-
|
|
178
|
-
"mtime": "2026-
|
|
205
|
+
"etag": "\"bc-EP4b/5OALd5znWpm5fnSSbR8bB8\"",
|
|
206
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
179
207
|
"size": 188,
|
|
180
|
-
"path": "../public/assets/play-
|
|
208
|
+
"path": "../public/assets/play-yHLs4DjK.js"
|
|
181
209
|
},
|
|
182
|
-
"/assets/
|
|
210
|
+
"/assets/preload-helper-BoU_7EQC.js": {
|
|
183
211
|
"type": "text/javascript; charset=utf-8",
|
|
184
|
-
"etag": "\"
|
|
185
|
-
"mtime": "2026-
|
|
186
|
-
"size":
|
|
187
|
-
"path": "../public/assets/
|
|
212
|
+
"etag": "\"2242c-LoXQ5+qtY8ryICbzNI0+Qxj6bno\"",
|
|
213
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
214
|
+
"size": 140332,
|
|
215
|
+
"path": "../public/assets/preload-helper-BoU_7EQC.js"
|
|
188
216
|
},
|
|
189
|
-
"/assets/refresh-cw-
|
|
217
|
+
"/assets/refresh-cw-BzSY7M8I.js": {
|
|
190
218
|
"type": "text/javascript; charset=utf-8",
|
|
191
|
-
"etag": "\"13f-
|
|
192
|
-
"mtime": "2026-
|
|
219
|
+
"etag": "\"13f-I3Dkiv9XX/MGlLWA828ovRIwMC4\"",
|
|
220
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
193
221
|
"size": 319,
|
|
194
|
-
"path": "../public/assets/refresh-cw-
|
|
222
|
+
"path": "../public/assets/refresh-cw-BzSY7M8I.js"
|
|
195
223
|
},
|
|
196
|
-
"/assets/
|
|
224
|
+
"/assets/rotate-ccw-DLv9EfCX.js": {
|
|
197
225
|
"type": "text/javascript; charset=utf-8",
|
|
198
|
-
"etag": "\"
|
|
199
|
-
"mtime": "2026-
|
|
200
|
-
"size":
|
|
201
|
-
"path": "../public/assets/
|
|
226
|
+
"etag": "\"c6-CbcdYuVzeaBViOg4/X+VvP2nplg\"",
|
|
227
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
228
|
+
"size": 198,
|
|
229
|
+
"path": "../public/assets/rotate-ccw-DLv9EfCX.js"
|
|
202
230
|
},
|
|
203
|
-
"/assets/
|
|
231
|
+
"/assets/runners-DzX-RU3i.js": {
|
|
204
232
|
"type": "text/javascript; charset=utf-8",
|
|
205
|
-
"etag": "\"
|
|
206
|
-
"mtime": "2026-
|
|
207
|
-
"size":
|
|
208
|
-
"path": "../public/assets/
|
|
233
|
+
"etag": "\"1742-Q2Y5AAhvUchNByx01WIIfC/ai6E\"",
|
|
234
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
235
|
+
"size": 5954,
|
|
236
|
+
"path": "../public/assets/runners-DzX-RU3i.js"
|
|
209
237
|
},
|
|
210
|
-
"/assets/
|
|
238
|
+
"/assets/select-C9grIFwG.js": {
|
|
211
239
|
"type": "text/javascript; charset=utf-8",
|
|
212
|
-
"etag": "\"
|
|
213
|
-
"mtime": "2026-
|
|
214
|
-
"size":
|
|
215
|
-
"path": "../public/assets/
|
|
240
|
+
"etag": "\"732e-HZp3SyT0ZmWyjI2zllLQJZILW1M\"",
|
|
241
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
242
|
+
"size": 29486,
|
|
243
|
+
"path": "../public/assets/select-C9grIFwG.js"
|
|
216
244
|
},
|
|
217
|
-
"/assets/setting-fields-
|
|
245
|
+
"/assets/setting-fields-DUc3npgh.js": {
|
|
218
246
|
"type": "text/javascript; charset=utf-8",
|
|
219
|
-
"etag": "\"
|
|
220
|
-
"mtime": "2026-
|
|
221
|
-
"size":
|
|
222
|
-
"path": "../public/assets/setting-fields-
|
|
247
|
+
"etag": "\"794-brDJ2D0UcVvmb48AT1ryFnjWQBM\"",
|
|
248
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
249
|
+
"size": 1940,
|
|
250
|
+
"path": "../public/assets/setting-fields-DUc3npgh.js"
|
|
223
251
|
},
|
|
224
|
-
"/assets/switch-
|
|
252
|
+
"/assets/switch-DwABVI6d.js": {
|
|
225
253
|
"type": "text/javascript; charset=utf-8",
|
|
226
|
-
"etag": "\"
|
|
227
|
-
"mtime": "2026-
|
|
228
|
-
"size":
|
|
229
|
-
"path": "../public/assets/switch-
|
|
254
|
+
"etag": "\"116c-TJAih8C1FZSiSYW2bL1Qd2XskPs\"",
|
|
255
|
+
"mtime": "2026-10-05T23:18:13.857Z",
|
|
256
|
+
"size": 4460,
|
|
257
|
+
"path": "../public/assets/switch-DwABVI6d.js"
|
|
230
258
|
},
|
|
231
|
-
"/assets/task-list-
|
|
259
|
+
"/assets/task-list-Ddk8-qt7.js": {
|
|
232
260
|
"type": "text/javascript; charset=utf-8",
|
|
233
|
-
"etag": "\"
|
|
234
|
-
"mtime": "2026-
|
|
235
|
-
"size":
|
|
236
|
-
"path": "../public/assets/task-list-
|
|
261
|
+
"etag": "\"e0f-TnV8ubm4ypWKH47a7L7Uzd4z+rI\"",
|
|
262
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
263
|
+
"size": 3599,
|
|
264
|
+
"path": "../public/assets/task-list-Ddk8-qt7.js"
|
|
237
265
|
},
|
|
238
|
-
"/assets/
|
|
239
|
-
"type": "text/
|
|
240
|
-
"etag": "\"
|
|
241
|
-
"mtime": "2026-
|
|
242
|
-
"size":
|
|
243
|
-
"path": "../public/assets/
|
|
266
|
+
"/assets/textarea-Ds-gIYUQ.js": {
|
|
267
|
+
"type": "text/javascript; charset=utf-8",
|
|
268
|
+
"etag": "\"2de-OaKhfdB5YHyyaJ9a3oWLJDKmwSM\"",
|
|
269
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
270
|
+
"size": 734,
|
|
271
|
+
"path": "../public/assets/textarea-Ds-gIYUQ.js"
|
|
244
272
|
},
|
|
245
|
-
"/assets/
|
|
273
|
+
"/assets/time-goBWd-5J.js": {
|
|
246
274
|
"type": "text/javascript; charset=utf-8",
|
|
247
|
-
"etag": "\"
|
|
248
|
-
"mtime": "2026-
|
|
249
|
-
"size":
|
|
250
|
-
"path": "../public/assets/
|
|
275
|
+
"etag": "\"286-A1da5ebDl49F3Ka1QvAFWPGwcKA\"",
|
|
276
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
277
|
+
"size": 646,
|
|
278
|
+
"path": "../public/assets/time-goBWd-5J.js"
|
|
251
279
|
},
|
|
252
|
-
"/assets/
|
|
280
|
+
"/assets/use-live-tasks-DZNNuECy.js": {
|
|
253
281
|
"type": "text/javascript; charset=utf-8",
|
|
254
|
-
"etag": "\"
|
|
255
|
-
"mtime": "2026-
|
|
256
|
-
"size":
|
|
257
|
-
"path": "../public/assets/
|
|
282
|
+
"etag": "\"189-RbssKqfycr9gIbSnT6sJWOfC8To\"",
|
|
283
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
284
|
+
"size": 393,
|
|
285
|
+
"path": "../public/assets/use-live-tasks-DZNNuECy.js"
|
|
258
286
|
},
|
|
259
|
-
"/assets/
|
|
287
|
+
"/assets/useCompositeListItem-P4Nmmn7j.js": {
|
|
260
288
|
"type": "text/javascript; charset=utf-8",
|
|
261
|
-
"etag": "\"
|
|
262
|
-
"mtime": "2026-
|
|
263
|
-
"size":
|
|
264
|
-
"path": "../public/assets/
|
|
289
|
+
"etag": "\"3487-ZOGKzNRVZCqBpKT9Wd8cc9fzU60\"",
|
|
290
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
291
|
+
"size": 13447,
|
|
292
|
+
"path": "../public/assets/useCompositeListItem-P4Nmmn7j.js"
|
|
265
293
|
},
|
|
266
|
-
"/assets/
|
|
294
|
+
"/assets/usePositioner-B7i9Ejzh.js": {
|
|
267
295
|
"type": "text/javascript; charset=utf-8",
|
|
268
|
-
"etag": "\"
|
|
269
|
-
"mtime": "2026-
|
|
270
|
-
"size":
|
|
271
|
-
"path": "../public/assets/
|
|
296
|
+
"etag": "\"117a8-qKQ2o4uz7ZYPDrbozDHhqLWpgQ0\"",
|
|
297
|
+
"mtime": "2026-10-05T23:18:13.858Z",
|
|
298
|
+
"size": 71592,
|
|
299
|
+
"path": "../public/assets/usePositioner-B7i9Ejzh.js"
|
|
300
|
+
},
|
|
301
|
+
"/assets/styles-B9B98zLk.css": {
|
|
302
|
+
"type": "text/css; charset=utf-8",
|
|
303
|
+
"etag": "\"15d07-jnnrpj+FbyGBNVG/zQBwWTCDa9g\"",
|
|
304
|
+
"mtime": "2026-10-05T23:18:13.859Z",
|
|
305
|
+
"size": 89351,
|
|
306
|
+
"path": "../public/assets/styles-B9B98zLk.css"
|
|
272
307
|
}
|
|
273
308
|
};
|
|
274
309
|
//#endregion
|
package/README.md
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
# Loopable
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Your team’s own agent. It runs on your machine, and you decide what it can do.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A lot of team work waits on one person: a review request, a question in #oncall, a morning check. Someone has to copy it into their own Codex, and if they are busy, it stops. Hosted team agents help, but they run in a cloud sandbox that cannot reach your internal network, logs, or services.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Loopable is a shared agent for small and mid-size teams.
|
|
8
|
+
|
|
9
|
+
- **Shared.** Work comes in from Slack, Lark, GitHub, or a schedule. A loop says what to do. Nobody has to be there. Every run is recorded in the inbox.
|
|
10
|
+
- **Yours.** Codex, Claude Code, or Cursor Agent runs on a machine the team owns. It reaches what that machine reaches, uses the MCP servers and skills you install, and keeps data in-house.
|
|
8
11
|
|
|
9
12
|
The story is in [docs/narrative.md](docs/narrative.md). The words for the parts — loop, workflow, runner, and the rest — are in [docs/concepts.md](docs/concepts.md).
|
|
10
13
|
|
|
14
|
+
## Loops you can run today
|
|
15
|
+
|
|
16
|
+
| Comes in from | Loop | Writes back |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| Any trigger | Custom loop: pick what starts it, write your own prompt | Anywhere below, or Inbox only |
|
|
19
|
+
| Schedule | Do something on a schedule | Inbox, or a Slack, Lark, or GitHub thread |
|
|
20
|
+
| GitHub | Review pull requests | A review, as a comment |
|
|
21
|
+
| GitHub | Reply to issues | A comment on the issue |
|
|
22
|
+
| Slack bot | Do what I ask the Slack bot (@mention or DM) | A reply in the thread |
|
|
23
|
+
| Feishu / Lark bot | Do what I ask the Feishu / Lark bot (@mention in a group) | A reply in the thread |
|
|
24
|
+
| WeChat | Do what I ask the WeChat bot | A reply in the chat |
|
|
25
|
+
| Gmail | Custom loop: “An email arrives” | Anywhere, such as an email back to the same inbox |
|
|
26
|
+
|
|
27
|
+
A loop’s answer can go to any connector that accepts it, so a scheduled check can post to #oncall. To ask an agent something once, use **Ask an agent** in the inbox.
|
|
28
|
+
|
|
11
29
|
## Architecture
|
|
12
30
|
|
|
13
31
|
Three processes. The agent always runs on a Runner, never on the App or Dispatcher.
|
|
@@ -16,7 +34,7 @@ Three processes. The agent always runs on a Runner, never on the App or Dispatch
|
|
|
16
34
|
<img src="docs/architecture.svg" alt="Slack bot, GitHub, and Lark bot into Loopable. A runner pulls the job. Loopable writes back to the same three." width="920" />
|
|
17
35
|
</p>
|
|
18
36
|
|
|
19
|
-
Slack bot, GitHub, and Lark bot send work in. Loopable watches, matches a loop, and queues the job. A Runner pulls it, runs Codex or
|
|
37
|
+
Slack bot, GitHub, and Lark bot send work in. Loopable watches, matches a loop, and queues the job. A Runner pulls it, runs Codex, Claude Code, or Cursor Agent, and Loopable writes the result back.
|
|
20
38
|
|
|
21
39
|
```text
|
|
22
40
|
Loopable ──HTTP pull── Runner ── Agent CLI
|
|
@@ -35,16 +53,17 @@ App and Dispatcher share one database and stay on the same host. Only one Dispat
|
|
|
35
53
|
|
|
36
54
|
The usual setup is one computer that stays on — a Mac in the office is enough. App, Dispatcher, and a Runner all live there. It looks like a spare machine on a desk. For a small team, that is the product.
|
|
37
55
|
|
|
38
|
-
You need Node 22+ and an agent CLI signed in on that machine (Codex or Cursor Agent
|
|
56
|
+
You need Node 22+ and an agent CLI signed in on that machine (Codex, Claude Code, or Cursor Agent).
|
|
39
57
|
|
|
40
58
|
```bash
|
|
41
59
|
npm install -g loopable-cli
|
|
42
60
|
loopable start # App + Dispatcher, bound on all interfaces
|
|
43
61
|
```
|
|
44
62
|
|
|
45
|
-
On the same computer, open `http://127.0.0.1:4321`. Connect GitHub from that address. Write a loop. On Runners, copy the join command and start a runner (this machine is fine):
|
|
63
|
+
On the same computer, open `http://127.0.0.1:4321`. Connect GitHub from that address, signed in as the account your team will send work to (see [GitHub: a shared account](docs/connectors.md#github-a-shared-account)). Write a loop. On Runners, copy the join command and start a runner (this machine is fine):
|
|
46
64
|
|
|
47
65
|
```bash
|
|
66
|
+
npm install -g loopable-cli # on another machine; already done here
|
|
48
67
|
loopable runner --url http://<LAN-IP>:4321 --token <from Runners>
|
|
49
68
|
```
|
|
50
69
|
|
|
@@ -71,6 +90,17 @@ pnpm db:studio
|
|
|
71
90
|
|
|
72
91
|
`pnpm runner` is only for a second machine while `pnpm dev` is already running.
|
|
73
92
|
|
|
93
|
+
### Release
|
|
94
|
+
|
|
95
|
+
CI runs typecheck, tests, and both builds on every pull request and on `main`. To publish `loopable-cli`, merge to `main`, then from a clean, pushed `main`:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pnpm release minor --dry-run # every check, nothing changed
|
|
99
|
+
pnpm release minor # or patch, major, or an exact x.y.z
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
It checks git and npm, runs typecheck, tests, and build, then bumps the version, commits, tags `vX.Y.Z`, publishes, and pushes. Runners on other machines need `npm install -g loopable-cli` too. The site deploys on its own with `pnpm site:deploy`.
|
|
103
|
+
|
|
74
104
|
The public site is `site/` (static HTML, Vite). `pnpm site:dev` to preview. `pnpm site:build` writes `site/dist` for a Cloudflare Worker with assets only. `pnpm site:deploy` when you are ready to publish it.
|
|
75
105
|
|
|
76
106
|
| Path | Contents |
|