nolo-cli 0.74.0-alpha.2 → 0.74.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.
Files changed (83) hide show
  1. package/{_executeModel-YEVZAJYX.js → _executeModel-IULR47HG.js} +20 -20
  2. package/{agentDeleteCommand-WVO3JTH6.js → agentDeleteCommand-2S4WCDQC.js} +15 -14
  3. package/{agentEmailCommands-QYQ2DZUS.js → agentEmailCommands-V3ADGHX7.js} +29 -27
  4. package/{agentListCommands-XWLQZ2ZH.js → agentListCommands-EPK3S274.js} +17 -16
  5. package/{agentMachineCommands-BJZUZ2EY.js → agentMachineCommands-XMZWK7P3.js} +15 -14
  6. package/{agentRecordCommands-O6PYBK2A.js → agentRecordCommands-WFPWLWOF.js} +28 -26
  7. package/{agentRunCommand-POFC5W46.js → agentRunCommand-VUWNWC7C.js} +28 -26
  8. package/{agentRuntimeLocal-O6DZDTK4.js → agentRuntimeLocal-YRONTDLM.js} +15 -14
  9. package/{agentSlice-RRZS2UII.js → agentSlice-2P7OJFES.js} +1 -1
  10. package/{appDeleteCommands-426QK2XG.js → appDeleteCommands-YS7UGMP3.js} +16 -15
  11. package/{appDeployCommands-FIGFGXIJ.js → appDeployCommands-XIE5Z4BE.js} +16 -15
  12. package/{appDeployStatusCommands-D3B235FQ.js → appDeployStatusCommands-54UDVYET.js} +16 -15
  13. package/{appGetCommands-U6RZJII4.js → appGetCommands-6XYLBCRN.js} +16 -15
  14. package/{appListCommands-732PFEWM.js → appListCommands-VEGH7SF5.js} +16 -15
  15. package/{authCommand-EVGFLAHO.js → authCommand-JIEOFHXW.js} +84 -9
  16. package/{chatQueueReduxAdapter-LSBTGZW2.js → chatQueueReduxAdapter-GPYCH5Z2.js} +5 -5
  17. package/chromeCommands-VOIRNJBL.js +499 -0
  18. package/chromeOpsCommands-M7DPCX2T.js +258 -0
  19. package/{chunk-SJTCDYBY.js → chunk-3VPDELAP.js} +41 -30
  20. package/{chunk-CS36XM4N.js → chunk-4SZ37KLL.js} +21 -9
  21. package/{chunk-FPTQQSS6.js → chunk-73BR2IQT.js} +23 -2
  22. package/{chunk-PYXL2CJL.js → chunk-7FWPLK4M.js} +1 -1
  23. package/{chunk-DSRXPQWA.js → chunk-7QVPPOEC.js} +1 -1
  24. package/{chunk-KIS76A2P.js → chunk-AX7RMXSH.js} +1 -1
  25. package/{chunk-HSELVGAL.js → chunk-BKJO7LDP.js} +2 -2
  26. package/{chunk-Q6FF2MCK.js → chunk-BOYUESO7.js} +1 -1
  27. package/{chunk-GBPZKFYK.js → chunk-BZNGCVAW.js} +1 -1
  28. package/{chunk-EXMHJN7C.js → chunk-CADAR6QU.js} +1 -1
  29. package/{chunk-2QDDKFG5.js → chunk-CQ3WA2NE.js} +77 -0
  30. package/{chunk-AFIKMMGC.js → chunk-D6XYLSOS.js} +1 -1
  31. package/{chunk-TI4CCL34.js → chunk-DM4FBSWG.js} +3 -3
  32. package/{chunk-DWPNOYMB.js → chunk-DUJWWUGV.js} +1 -1
  33. package/{chunk-XGZM6BTX.js → chunk-EBKMQULC.js} +66 -120
  34. package/{chunk-ZLPA7K55.js → chunk-ETLZZQJE.js} +2 -2
  35. package/chunk-FMODTASJ.js +109 -0
  36. package/{chunk-FSFQ3A7S.js → chunk-FNGAF7C4.js} +2 -2
  37. package/{chunk-MYU3MJCF.js → chunk-GCJ3IS5M.js} +0 -1
  38. package/{chunk-XPQJXIF5.js → chunk-GHEJJGJI.js} +125 -25
  39. package/{chunk-DFY6PUV4.js → chunk-HTMVBPOF.js} +7 -7
  40. package/{chunk-VOEW2KF3.js → chunk-IDGYOD2O.js} +59 -55
  41. package/{chunk-2JCTE5UN.js → chunk-KEZNSFGD.js} +3 -3
  42. package/{chunk-I4UWPYBH.js → chunk-KRMWO2NN.js} +2 -2
  43. package/{chunk-PGSKWZCB.js → chunk-LHDV2QUI.js} +1 -1
  44. package/{chunk-UJ63UXGE.js → chunk-MXUSPS2N.js} +289 -2
  45. package/{chunk-3IT2PFHL.js → chunk-NB5SIWC4.js} +1 -1
  46. package/{chunk-HXAINXPQ.js → chunk-NFT2AOK5.js} +2 -2
  47. package/{chunk-QA6YKM3H.js → chunk-NRALD3CC.js} +1 -1
  48. package/{chunk-CJ23A7U4.js → chunk-PF6O3GR3.js} +533 -57
  49. package/{chunk-K7AG465Q.js → chunk-PZCTYKGU.js} +3 -1
  50. package/chunk-QCZX4FTW.js +242 -0
  51. package/{chunk-QBA5KMJI.js → chunk-RZOJRTKR.js} +29 -15
  52. package/{chunk-VE3O45CJ.js → chunk-T25L377S.js} +4 -4
  53. package/{chunk-CMH2SYHX.js → chunk-TMPLPCVX.js} +1 -1
  54. package/{chunk-L2Y24GRM.js → chunk-U7YP7ECK.js} +3 -3
  55. package/{chunk-AWPU7GXU.js → chunk-URWDSZRW.js} +2 -2
  56. package/{chunk-AFIWC5NH.js → chunk-WL2RKIBF.js} +1 -1
  57. package/{chunk-57VRXRLF.js → chunk-Y3NZYLPG.js} +1 -1
  58. package/{chunk-V3ZKNK5D.js → chunk-ZVN6I33J.js} +5 -5
  59. package/{codingSkills-E6KSDNSJ.js → codingSkills-7S6523WH.js} +2 -2
  60. package/{contentThunks-476Y6CFR.js → contentThunks-THSCADSK.js} +6 -6
  61. package/{createAgentAutomationAction-DN4SFTP5.js → createAgentAutomationAction-WGN3UQ5A.js} +6 -6
  62. package/{createDialogAction-2GS4JCMU.js → createDialogAction-3EN2NLH7.js} +8 -8
  63. package/{createPageAction-44WTUMZ5.js → createPageAction-4VK473QV.js} +6 -6
  64. package/{dialogCommands-7FH6Z2YK.js → dialogCommands-PS4NWYY7.js} +16 -15
  65. package/{dialogSlice-7HEVCJFT.js → dialogSlice-CLV7SVOZ.js} +5 -5
  66. package/{docCreateCommands-GN5E5ULM.js → docCreateCommands-4KANZJR6.js} +15 -14
  67. package/{docDeleteCommands-OQWPPQME.js → docDeleteCommands-F2S2TRUF.js} +16 -15
  68. package/{docReadCommands-E4QK2223.js → docReadCommands-B2WDPZQE.js} +15 -14
  69. package/{docStore-LJ7KNKFB.js → docStore-TDLCHWPF.js} +1 -1
  70. package/{docUpdateCommands-ZDJE4SI7.js → docUpdateCommands-E7TKHRIO.js} +15 -14
  71. package/{getPricing-HRMSOF3E.js → getPricing-QVTUQQTM.js} +2 -2
  72. package/{handleSendMessageAction-ETA5QZIN.js → handleSendMessageAction-AHL3ZHE4.js} +5 -5
  73. package/index.js +111 -47
  74. package/{machineCommands-SJLMLCCV.js → machineCommands-OTABVXOA.js} +27 -25
  75. package/{machineWsRunDispatch-74GHVCNY.js → machineWsRunDispatch-V4EVQSMZ.js} +27 -25
  76. package/package.json +1 -1
  77. package/{readlineWorkspace-XHS5C5F7.js → readlineWorkspace-IIT3FQ6I.js} +437 -115
  78. package/{runAgentClientLoop-2PGZSCET.js → runAgentClientLoop-7TQM7IAR.js} +18 -18
  79. package/{spaceCommands-GSQCO2LI.js → spaceCommands-FSYH7AL4.js} +15 -14
  80. package/{streamAgentChatTurn-I6FUM6RV.js → streamAgentChatTurn-6EF6TVFK.js} +22 -22
  81. package/{tools-KU4X5HGZ.js → tools-R3QNWWTD.js} +15 -13
  82. package/{tuiSummaryLlmCaller-J5BEPLW5.js → tuiSummaryLlmCaller-PWOXTCBF.js} +5 -5
  83. package/{updateDialogTitleAction-E3SNB75W.js → updateDialogTitleAction-F3EUOWOB.js} +6 -6
package/index.js CHANGED
@@ -127,7 +127,7 @@ function createDaemonShortcutCommand(path, description, command2) {
127
127
  // packages/cli/agentInternalCommandEntries.ts
128
128
  function getAgentInternalCommandEntries() {
129
129
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args2, ctx) => {
130
- const { runAgentRunCommand } = await import("./agentRunCommand-POFC5W46.js");
130
+ const { runAgentRunCommand } = await import("./agentRunCommand-VUWNWC7C.js");
131
131
  return runAgentRunCommand(args2, {
132
132
  env: ctx.env,
133
133
  scriptDir: ctx.scriptDir,
@@ -139,11 +139,11 @@ function getAgentInternalCommandEntries() {
139
139
  createAgentRunCommand(["run"], "Run a no-login local agent in this workspace"),
140
140
  createAgentRunCommand(["chat"], "Chat with an agent"),
141
141
  createEnvCommand(["agent", "list"], "List owned agents", async (args2, deps) => {
142
- const { runAgentListCommand } = await import("./agentListCommands-XWLQZ2ZH.js");
142
+ const { runAgentListCommand } = await import("./agentListCommands-EPK3S274.js");
143
143
  return runAgentListCommand(args2, deps);
144
144
  }),
145
145
  createEnvCommand(["agent", "create"], "Create a new agent", async (args2, deps) => {
146
- const { runAgentCreateCommand } = await import("./agentRecordCommands-O6PYBK2A.js");
146
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-WFPWLWOF.js");
147
147
  return runAgentCreateCommand(args2, deps);
148
148
  }),
149
149
  createEnvCommand(["agent", "models"], "List models available on an OpenAI-compatible provider", async (args2, deps) => {
@@ -155,7 +155,7 @@ function getAgentInternalCommandEntries() {
155
155
  return runAgentPullCommand(args2, deps);
156
156
  }),
157
157
  createEnvCommand(["agent", "read"], "Read a single agent", async (args2, deps) => {
158
- const { runAgentReadCommand } = await import("./agentRecordCommands-O6PYBK2A.js");
158
+ const { runAgentReadCommand } = await import("./agentRecordCommands-WFPWLWOF.js");
159
159
  return runAgentReadCommand(args2, deps);
160
160
  }),
161
161
  createAgentRunCommand(["agent", "run"], "Run an agent"),
@@ -184,31 +184,31 @@ function getAgentInternalCommandEntries() {
184
184
  return runSetupOfflineMarxistsAgentCommand(args2, deps);
185
185
  }),
186
186
  createEnvCommand(["agent", "update"], "Update agent fields", async (args2, deps) => {
187
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-O6PYBK2A.js");
187
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-WFPWLWOF.js");
188
188
  return runAgentUpdateCommand(args2, deps);
189
189
  }),
190
190
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args2, deps) => {
191
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-QYQ2DZUS.js");
191
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-V3ADGHX7.js");
192
192
  return runAgentEmailProvisionCommand(args2, deps);
193
193
  }),
194
194
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args2, deps) => {
195
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-QYQ2DZUS.js");
195
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-V3ADGHX7.js");
196
196
  return runAgentEmailBindCommand(args2, deps);
197
197
  }),
198
198
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args2, deps) => {
199
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-QYQ2DZUS.js");
199
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-V3ADGHX7.js");
200
200
  return runAgentEmailTransferCommand(args2, deps);
201
201
  }),
202
202
  createEnvCommand(
203
203
  ["agent", "email", "create-and-provision"],
204
204
  "Create an agent and provision its controlled inbox",
205
205
  async (args2, deps) => {
206
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-QYQ2DZUS.js");
206
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-V3ADGHX7.js");
207
207
  return runAgentEmailCreateAndProvisionCommand(args2, deps);
208
208
  }
209
209
  ),
210
210
  createEnvCommand(["agent", "delete"], "Hard-delete an agent's private and public records", async (args2, deps) => {
211
- const { runAgentDeleteCommand } = await import("./agentDeleteCommand-WVO3JTH6.js");
211
+ const { runAgentDeleteCommand } = await import("./agentDeleteCommand-2S4WCDQC.js");
212
212
  return runAgentDeleteCommand(args2, deps);
213
213
  }),
214
214
  createEnvCommand(["agent", "grant"], "Grant another user access to this agent's owner credentials", async (args2, deps) => {
@@ -224,15 +224,15 @@ function getAgentInternalCommandEntries() {
224
224
  return runAgentRevokeGrantCommand(args2, deps);
225
225
  }),
226
226
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args2, deps) => {
227
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-BJZUZ2EY.js");
227
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-XMZWK7P3.js");
228
228
  return runAgentBindCurrentCommand(args2, deps);
229
229
  }),
230
230
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args2, deps) => {
231
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-BJZUZ2EY.js");
231
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-XMZWK7P3.js");
232
232
  return runAgentSmokeCurrentCommand(args2, deps);
233
233
  }),
234
234
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args2, deps) => {
235
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-BJZUZ2EY.js");
235
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-XMZWK7P3.js");
236
236
  return runAgentRuntimeDoctorCommand(args2, deps);
237
237
  }),
238
238
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -243,49 +243,104 @@ function getAgentInternalCommandEntries() {
243
243
  function getAppInternalCommandEntries() {
244
244
  return [
245
245
  createEnvCommand(["app", "list"], "List your apps", async (args2, deps) => {
246
- const { runAppListCommand } = await import("./appListCommands-732PFEWM.js");
246
+ const { runAppListCommand } = await import("./appListCommands-VEGH7SF5.js");
247
247
  return runAppListCommand(args2, deps);
248
248
  }),
249
249
  createEnvCommand(["app", "get"], "Get app details", async (args2, deps) => {
250
- const { runAppGetCommand } = await import("./appGetCommands-U6RZJII4.js");
250
+ const { runAppGetCommand } = await import("./appGetCommands-6XYLBCRN.js");
251
251
  return runAppGetCommand(args2, deps);
252
252
  }),
253
253
  createEnvCommand(["app", "deploy"], "Deploy an app", async (args2, deps) => {
254
- const { runAppDeployCommand } = await import("./appDeployCommands-FIGFGXIJ.js");
254
+ const { runAppDeployCommand } = await import("./appDeployCommands-XIE5Z4BE.js");
255
255
  return runAppDeployCommand(args2, deps);
256
256
  }),
257
257
  createEnvCommand(["app", "deploy", "status"], "Check app deploy status", async (args2, deps) => {
258
- const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-D3B235FQ.js");
258
+ const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-54UDVYET.js");
259
259
  return runAppDeployStatusCommand(args2, deps);
260
260
  }),
261
261
  createEnvCommand(["app", "delete"], "Delete an app", async (args2, deps) => {
262
- const { runAppDeleteCommand } = await import("./appDeleteCommands-426QK2XG.js");
262
+ const { runAppDeleteCommand } = await import("./appDeleteCommands-YS7UGMP3.js");
263
263
  return runAppDeleteCommand(args2, deps);
264
264
  })
265
265
  ];
266
266
  }
267
267
 
268
+ // packages/cli/chromeInternalCommandEntries.ts
269
+ var CHROME_OPS_SUBCOMMANDS = [
270
+ { name: "list-tabs", summary: "List controllable Chrome tabs" },
271
+ { name: "open-tab", summary: "Open a URL in a new tab (--url <url> [--active])" },
272
+ { name: "close-tab", summary: "Close a tab (--tab <id>)" },
273
+ {
274
+ name: "read-page",
275
+ summary: "Read a tab's text and interactive elements as elementRefs (--tab <id>)"
276
+ },
277
+ { name: "click", summary: "Click an element (--tab <id> --ref|--selector)" },
278
+ {
279
+ name: "type",
280
+ summary: "Type text into an element (--tab <id> --ref|--selector --text <text>)"
281
+ },
282
+ { name: "press", summary: "Press a keyboard key (--tab <id> --key <key>)" },
283
+ { name: "scroll", summary: "Scroll a tab (--tab <id> [--delta-x N] [--delta-y N])" },
284
+ { name: "screenshot", summary: "Capture a screenshot (--tab <id> [--out <path>])" },
285
+ { name: "read-console", summary: "Read recent console entries (--tab <id>)" },
286
+ { name: "read-network", summary: "Read recent network entries (--tab <id>)" }
287
+ ];
288
+ function getChromeInternalCommandEntries() {
289
+ return [
290
+ createEnvCommand(
291
+ ["chrome", "status"],
292
+ "Show Nolo Chrome connector status (native host manifest, token, live connection)",
293
+ async (args2, deps) => {
294
+ const { runChromeStatusCommand } = await import("./chromeCommands-VOIRNJBL.js");
295
+ return runChromeStatusCommand(args2, deps);
296
+ }
297
+ ),
298
+ createEnvCommand(
299
+ ["chrome", "install"],
300
+ "Install the Chrome native messaging host manifest for this user",
301
+ async (args2, deps) => {
302
+ const { runChromeInstallCommand } = await import("./chromeCommands-VOIRNJBL.js");
303
+ return runChromeInstallCommand(args2, deps);
304
+ }
305
+ ),
306
+ createEnvCommand(
307
+ ["chrome", "reload"],
308
+ "Reload the connector extension through the running native host",
309
+ async (args2, deps) => {
310
+ const { runChromeReloadCommand } = await import("./chromeCommands-VOIRNJBL.js");
311
+ return runChromeReloadCommand(args2, deps);
312
+ }
313
+ ),
314
+ ...CHROME_OPS_SUBCOMMANDS.map(
315
+ ({ name, summary }) => createArgsCommand(["chrome", name], summary, async (args2) => {
316
+ const { runChromeOpsCommand } = await import("./chromeOpsCommands-M7DPCX2T.js");
317
+ return runChromeOpsCommand(name, args2);
318
+ })
319
+ )
320
+ ];
321
+ }
322
+
268
323
  // packages/cli/dialogInternalCommandEntries.ts
269
324
  function getDialogInternalCommandEntries() {
270
325
  return [
271
326
  createEnvCommand(["dialog", "list"], "List dialogs (default --limit 50; --all/--limit 0 full; --jsonl streams)", async (args2, deps) => {
272
- const { runDialogListCommand } = await import("./dialogCommands-7FH6Z2YK.js");
327
+ const { runDialogListCommand } = await import("./dialogCommands-PS4NWYY7.js");
273
328
  return runDialogListCommand(args2, deps);
274
329
  }),
275
330
  createEnvCommand(["dialog", "delete"], "Delete one or more dialogs", async (args2, deps) => {
276
- const { runDialogDeleteCommand } = await import("./dialogCommands-7FH6Z2YK.js");
331
+ const { runDialogDeleteCommand } = await import("./dialogCommands-PS4NWYY7.js");
277
332
  return runDialogDeleteCommand(args2, deps);
278
333
  }),
279
334
  createEnvCommand(["dialog", "query"], "Query dialogs by subject refs (default --limit 50; --all full; --jsonl streams)", async (args2, deps) => {
280
- const { runDialogQueryCommand } = await import("./dialogCommands-7FH6Z2YK.js");
335
+ const { runDialogQueryCommand } = await import("./dialogCommands-PS4NWYY7.js");
281
336
  return runDialogQueryCommand(args2, deps);
282
337
  }),
283
338
  createEnvCommand(["dialog", "read"], "Read a dialog", async (args2, deps) => {
284
- const { runDialogReadCommand } = await import("./dialogCommands-7FH6Z2YK.js");
339
+ const { runDialogReadCommand } = await import("./dialogCommands-PS4NWYY7.js");
285
340
  return runDialogReadCommand(args2, deps);
286
341
  }),
287
342
  createEnvCommand(["dialog", "status"], "Read compact dialog status", async (args2, deps) => {
288
- const { runDialogStatusCommand } = await import("./dialogCommands-7FH6Z2YK.js");
343
+ const { runDialogStatusCommand } = await import("./dialogCommands-PS4NWYY7.js");
289
344
  return runDialogStatusCommand(args2, deps);
290
345
  })
291
346
  ];
@@ -295,39 +350,39 @@ function getDialogInternalCommandEntries() {
295
350
  function getDocInternalCommandEntries() {
296
351
  return [
297
352
  createEnvCommand(["doc", "create"], "Create a normal doc", async (args2, deps) => {
298
- const { runDocCreateCommand } = await import("./docCreateCommands-GN5E5ULM.js");
353
+ const { runDocCreateCommand } = await import("./docCreateCommands-4KANZJR6.js");
299
354
  return runDocCreateCommand(args2, deps);
300
355
  }),
301
356
  createEnvCommand(["doc", "read"], "Read a normal doc", async (args2, deps) => {
302
- const { runDocReadCommand } = await import("./docReadCommands-E4QK2223.js");
357
+ const { runDocReadCommand } = await import("./docReadCommands-B2WDPZQE.js");
303
358
  return runDocReadCommand(args2, deps);
304
359
  }),
305
360
  createEnvCommand(["doc", "update"], "Update a normal doc", async (args2, deps) => {
306
- const { runDocUpdateCommand } = await import("./docUpdateCommands-ZDJE4SI7.js");
361
+ const { runDocUpdateCommand } = await import("./docUpdateCommands-E7TKHRIO.js");
307
362
  return runDocUpdateCommand(args2, deps);
308
363
  }),
309
364
  createEnvCommand(["doc", "delete"], "Delete a normal doc", async (args2, deps) => {
310
- const { runDocDeleteCommand } = await import("./docDeleteCommands-OQWPPQME.js");
365
+ const { runDocDeleteCommand } = await import("./docDeleteCommands-F2S2TRUF.js");
311
366
  return runDocDeleteCommand(args2, deps);
312
367
  }),
313
368
  createEnvCommand(["skill-doc", "create"], "Create a skill-backed doc", async (args2, deps) => {
314
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-GN5E5ULM.js");
369
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-4KANZJR6.js");
315
370
  return runSkillDocCreateCommand(args2, deps);
316
371
  }),
317
372
  createEnvCommand(["skill", "create-doc"], "Create a skill-backed doc", async (args2, deps) => {
318
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-GN5E5ULM.js");
373
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-4KANZJR6.js");
319
374
  return runSkillDocCreateCommand(args2, deps);
320
375
  }),
321
376
  createEnvCommand(["skill-doc", "read"], "Read a skill doc", async (args2, deps) => {
322
- const { runSkillDocReadCommand } = await import("./docReadCommands-E4QK2223.js");
377
+ const { runSkillDocReadCommand } = await import("./docReadCommands-B2WDPZQE.js");
323
378
  return runSkillDocReadCommand(args2, deps);
324
379
  }),
325
380
  createEnvCommand(["skill-doc", "update"], "Update a skill doc", async (args2, deps) => {
326
- const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-ZDJE4SI7.js");
381
+ const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-E7TKHRIO.js");
327
382
  return runSkillDocUpdateCommand(args2, deps);
328
383
  }),
329
384
  createEnvCommand(["skill-doc", "delete"], "Delete a skill doc", async (args2, deps) => {
330
- const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-OQWPPQME.js");
385
+ const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-F2S2TRUF.js");
331
386
  return runSkillDocDeleteCommand(args2, deps);
332
387
  })
333
388
  ];
@@ -355,19 +410,19 @@ function getMemoryInternalCommandEntries() {
355
410
  function getSpaceInternalCommandEntries() {
356
411
  return [
357
412
  createEnvCommand(["space", "create"], "Create a space", async (args2, deps) => {
358
- const { runSpaceCreateCommand } = await import("./spaceCommands-GSQCO2LI.js");
413
+ const { runSpaceCreateCommand } = await import("./spaceCommands-FSYH7AL4.js");
359
414
  return runSpaceCreateCommand(args2, deps);
360
415
  }),
361
416
  createEnvCommand(["space", "invite"], "Invite an existing user to a space", async (args2, deps) => {
362
- const { runSpaceInviteCommand } = await import("./spaceCommands-GSQCO2LI.js");
417
+ const { runSpaceInviteCommand } = await import("./spaceCommands-FSYH7AL4.js");
363
418
  return runSpaceInviteCommand(args2, deps);
364
419
  }),
365
420
  createEnvCommand(["space", "accept-invite"], "Accept a space invite", async (args2, deps) => {
366
- const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-GSQCO2LI.js");
421
+ const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-FSYH7AL4.js");
367
422
  return runSpaceAcceptInviteCommand(args2, deps);
368
423
  }),
369
424
  createEnvCommand(["space", "upload"], "Upload a file to a space", async (args2, deps) => {
370
- const { runSpaceUploadCommand } = await import("./spaceCommands-GSQCO2LI.js");
425
+ const { runSpaceUploadCommand } = await import("./spaceCommands-FSYH7AL4.js");
371
426
  return runSpaceUploadCommand(args2, deps);
372
427
  })
373
428
  ];
@@ -381,29 +436,33 @@ function getSystemInternalCommandEntries(renderHelpText2) {
381
436
  return runAuthCooldownCommand(_args, ctx.env);
382
437
  }),
383
438
  createArgsCommand(["auth", "cloudflare"], "Authorize Cloudflare OAuth", async (args2) => {
384
- const { runAuthCloudflareCommand } = await import("./authCommand-EVGFLAHO.js");
439
+ const { runAuthCloudflareCommand } = await import("./authCommand-JIEOFHXW.js");
385
440
  return runAuthCloudflareCommand(args2);
386
441
  }),
387
442
  createArgsCommand(["auth", "chatgpt"], "Authorize ChatGPT / OpenAI Codex OAuth", async (args2) => {
388
- const { runAuthChatgptCommand } = await import("./authCommand-EVGFLAHO.js");
443
+ const { runAuthChatgptCommand } = await import("./authCommand-JIEOFHXW.js");
389
444
  return runAuthChatgptCommand(args2);
390
445
  }),
391
446
  createArgsCommand(["auth", "xai"], "Authorize xAI Grok OAuth (SuperGrok subscription)", async (args2) => {
392
- const { runAuthXaiCommand } = await import("./authCommand-EVGFLAHO.js");
447
+ const { runAuthXaiCommand } = await import("./authCommand-JIEOFHXW.js");
393
448
  return runAuthXaiCommand(args2);
394
449
  }),
395
450
  createArgsCommand(["auth", "antigravity"], "Authorize Google Antigravity OAuth", async (args2) => {
396
- const { runAuthAntigravityCommand } = await import("./authCommand-EVGFLAHO.js");
451
+ const { runAuthAntigravityCommand } = await import("./authCommand-JIEOFHXW.js");
397
452
  return runAuthAntigravityCommand(args2);
398
453
  }),
399
454
  createArgsCommand(["auth", "claude"], "Authorize Claude Pro/Max OAuth", async (args2) => {
400
- const { runAuthClaudeCommand } = await import("./authCommand-EVGFLAHO.js");
455
+ const { runAuthClaudeCommand } = await import("./authCommand-JIEOFHXW.js");
401
456
  return runAuthClaudeCommand(args2);
402
457
  }),
403
458
  createArgsCommand(["auth", "cursor"], "Authorize Cursor Pro OAuth", async (args2) => {
404
- const { runAuthCursorCommand } = await import("./authCommand-EVGFLAHO.js");
459
+ const { runAuthCursorCommand } = await import("./authCommand-JIEOFHXW.js");
405
460
  return runAuthCursorCommand(args2);
406
461
  }),
462
+ createArgsCommand(["auth", "devin"], "Authorize Devin OAuth (Free SWE-2)", async (args2) => {
463
+ const { runAuthDevinCommand } = await import("./authCommand-JIEOFHXW.js");
464
+ return runAuthDevinCommand(args2);
465
+ }),
407
466
  createArgsCommand(["login"], "Log in to Nolo", async (args2) => {
408
467
  const { runLoginCommand } = await import("./authCommands-ILTBI6JV.js");
409
468
  return runLoginCommand(args2);
@@ -417,15 +476,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
417
476
  return runWhoamiCommand({ args: args2, env: ctx.env });
418
477
  }),
419
478
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args2, deps) => {
420
- const { runMachineConnectCommand } = await import("./machineCommands-SJLMLCCV.js");
479
+ const { runMachineConnectCommand } = await import("./machineCommands-OTABVXOA.js");
421
480
  return runMachineConnectCommand(args2, deps);
422
481
  }),
423
482
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args2, deps) => {
424
- const { runMachineConnectCommand } = await import("./machineCommands-SJLMLCCV.js");
483
+ const { runMachineConnectCommand } = await import("./machineCommands-OTABVXOA.js");
425
484
  return runMachineConnectCommand(args2, deps);
426
485
  }),
427
486
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args2, deps) => {
428
- const { runMachineStatusCommand } = await import("./machineCommands-SJLMLCCV.js");
487
+ const { runMachineStatusCommand } = await import("./machineCommands-OTABVXOA.js");
429
488
  return runMachineStatusCommand(args2, deps);
430
489
  }),
431
490
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args2, deps) => {
@@ -585,6 +644,8 @@ function getInternalCommandEntries(renderHelpText2) {
585
644
  ...getTableInternalCommandEntries(),
586
645
  ...getAppInternalCommandEntries(),
587
646
  ...getWorkflowInternalCommandEntries(),
647
+ // nolo chrome — connector setup (status|install|reload) + live-Chrome operations.
648
+ ...getChromeInternalCommandEntries(),
588
649
  ...getSystemInternalCommandEntries(renderHelpText2)
589
650
  ];
590
651
  }
@@ -646,6 +707,7 @@ var GROUP_ORDER = [
646
707
  "skill",
647
708
  "agent",
648
709
  "machine",
710
+ "chrome",
649
711
  "doctor",
650
712
  "dialog",
651
713
  "memory",
@@ -679,6 +741,8 @@ function renderHelpText() {
679
741
  " nolo connect --ws --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
680
742
  " nolo connect --daemon --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
681
743
  " nolo machine status",
744
+ " nolo chrome install",
745
+ " nolo chrome status",
682
746
  " nolo doctor",
683
747
  " nolo doctor runtime",
684
748
  " nolo update",
@@ -815,8 +879,8 @@ async function runScript(script, forwardedArgs, env) {
815
879
  return proc.exited;
816
880
  }
817
881
  async function launchTuiWorkspace(args2) {
818
- const { startTuiWorkspace } = await import("./readlineWorkspace-XHS5C5F7.js");
819
- const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-J5BEPLW5.js");
882
+ const { startTuiWorkspace } = await import("./readlineWorkspace-IIT3FQ6I.js");
883
+ const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-PWOXTCBF.js");
820
884
  return startTuiWorkspace({
821
885
  ...args2,
822
886
  // Big dialogs produce ~300KB+ summary prompts that routinely take 25–30s+;
@@ -2,18 +2,19 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-VE3O45CJ.js";
5
+ } from "./chunk-T25L377S.js";
6
6
  import {
7
7
  isConnectorWebSocketAuthError,
8
8
  isConnectorWebSocketRetryableError,
9
9
  resolveConnectorWebSocketTarget
10
10
  } from "./chunk-ALXHV7NK.js";
11
- import "./chunk-XPQJXIF5.js";
12
- import "./chunk-GBPZKFYK.js";
11
+ import "./chunk-GHEJJGJI.js";
12
+ import "./chunk-BZNGCVAW.js";
13
+ import "./chunk-QCZX4FTW.js";
13
14
  import "./chunk-EADNWBAZ.js";
14
15
  import "./chunk-HH65VA5U.js";
15
16
  import "./chunk-DWUCB2A3.js";
16
- import "./chunk-Q6FF2MCK.js";
17
+ import "./chunk-BOYUESO7.js";
17
18
  import "./chunk-SPAQ4PVV.js";
18
19
  import "./chunk-MP64VFGD.js";
19
20
  import {
@@ -22,16 +23,16 @@ import {
22
23
  import "./chunk-JBTJAPUF.js";
23
24
  import "./chunk-3QPYFHAH.js";
24
25
  import "./chunk-ATNTHIZI.js";
25
- import "./chunk-I4UWPYBH.js";
26
+ import "./chunk-KRMWO2NN.js";
26
27
  import "./chunk-HS7MLR74.js";
27
- import "./chunk-QBA5KMJI.js";
28
+ import "./chunk-RZOJRTKR.js";
28
29
  import "./chunk-5XTOKQLW.js";
29
30
  import "./chunk-NF64D32W.js";
30
31
  import {
31
32
  CORE_DRAIN_REASON
32
33
  } from "./chunk-3L2WKC3W.js";
33
34
  import "./chunk-NTW5GWDM.js";
34
- import "./chunk-FPTQQSS6.js";
35
+ import "./chunk-73BR2IQT.js";
35
36
  import "./chunk-KQHGZWSV.js";
36
37
  import "./chunk-UDQWGU7F.js";
37
38
  import "./chunk-PZM3EENV.js";
@@ -42,16 +43,16 @@ import "./chunk-FZGV4FGK.js";
42
43
  import "./chunk-MEYIRKDN.js";
43
44
  import "./chunk-63W5N6P3.js";
44
45
  import "./chunk-VF4K2QE6.js";
45
- import "./chunk-AWPU7GXU.js";
46
- import "./chunk-2JCTE5UN.js";
47
- import "./chunk-XGZM6BTX.js";
46
+ import "./chunk-URWDSZRW.js";
47
+ import "./chunk-KEZNSFGD.js";
48
+ import "./chunk-EBKMQULC.js";
48
49
  import "./chunk-ZJ7UHBJS.js";
49
- import "./chunk-VOEW2KF3.js";
50
+ import "./chunk-IDGYOD2O.js";
50
51
  import "./chunk-EVBFYPDC.js";
51
52
  import "./chunk-HQUORJTM.js";
52
53
  import "./chunk-YYLHWIW6.js";
53
54
  import "./chunk-AGGIDPCZ.js";
54
- import "./chunk-TI4CCL34.js";
55
+ import "./chunk-DM4FBSWG.js";
55
56
  import "./chunk-BJCWNHVU.js";
56
57
  import "./chunk-5RGU3J7P.js";
57
58
  import "./chunk-6YTOJY35.js";
@@ -59,32 +60,33 @@ import "./chunk-M76ECQRD.js";
59
60
  import "./chunk-YDH3FDFQ.js";
60
61
  import "./chunk-C3FZR5EC.js";
61
62
  import "./chunk-GLKOYSRU.js";
62
- import "./chunk-3IT2PFHL.js";
63
- import "./chunk-MYU3MJCF.js";
63
+ import "./chunk-NB5SIWC4.js";
64
+ import "./chunk-GCJ3IS5M.js";
64
65
  import "./chunk-AETZ7AD6.js";
65
66
  import "./chunk-KHCLMKZZ.js";
66
67
  import {
67
68
  PATH_FIELD_ALIASES,
68
69
  createLocalWorkspaceToolExecutors
69
- } from "./chunk-CJ23A7U4.js";
70
- import "./chunk-HXAINXPQ.js";
70
+ } from "./chunk-PF6O3GR3.js";
71
71
  import "./chunk-ZNFJWEN4.js";
72
- import "./chunk-KIS76A2P.js";
73
- import "./chunk-2QDDKFG5.js";
72
+ import "./chunk-NFT2AOK5.js";
73
+ import "./chunk-FMODTASJ.js";
74
+ import "./chunk-AX7RMXSH.js";
75
+ import "./chunk-CQ3WA2NE.js";
74
76
  import "./chunk-N7J63Q6C.js";
75
- import "./chunk-ZLPA7K55.js";
77
+ import "./chunk-ETLZZQJE.js";
76
78
  import "./chunk-PUOC4YRO.js";
77
- import "./chunk-PGSKWZCB.js";
78
- import "./chunk-CMH2SYHX.js";
79
- import "./chunk-V3ZKNK5D.js";
79
+ import "./chunk-ZVN6I33J.js";
80
80
  import "./chunk-CJCJF5XB.js";
81
+ import "./chunk-LHDV2QUI.js";
82
+ import "./chunk-TMPLPCVX.js";
81
83
  import "./chunk-2MBTWINN.js";
82
- import "./chunk-DSRXPQWA.js";
84
+ import "./chunk-7QVPPOEC.js";
83
85
  import "./chunk-E36HZARC.js";
84
- import "./chunk-K7AG465Q.js";
86
+ import "./chunk-PZCTYKGU.js";
85
87
  import "./chunk-PSCNXBYA.js";
86
88
  import "./chunk-BYXBJQAS.js";
87
- import "./chunk-UJ63UXGE.js";
89
+ import "./chunk-MXUSPS2N.js";
88
90
  import "./chunk-DWLEOOGR.js";
89
91
  import "./chunk-3JQ2NRYU.js";
90
92
  import "./chunk-ONXOABJR.js";
@@ -11,26 +11,27 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-VE3O45CJ.js";
15
- import "./chunk-XPQJXIF5.js";
16
- import "./chunk-GBPZKFYK.js";
14
+ } from "./chunk-T25L377S.js";
15
+ import "./chunk-GHEJJGJI.js";
16
+ import "./chunk-BZNGCVAW.js";
17
+ import "./chunk-QCZX4FTW.js";
17
18
  import "./chunk-EADNWBAZ.js";
18
19
  import "./chunk-HH65VA5U.js";
19
20
  import "./chunk-DWUCB2A3.js";
20
- import "./chunk-Q6FF2MCK.js";
21
+ import "./chunk-BOYUESO7.js";
21
22
  import "./chunk-SPAQ4PVV.js";
22
23
  import "./chunk-MP64VFGD.js";
23
24
  import "./chunk-JBTJAPUF.js";
24
25
  import "./chunk-3QPYFHAH.js";
25
26
  import "./chunk-ATNTHIZI.js";
26
- import "./chunk-I4UWPYBH.js";
27
+ import "./chunk-KRMWO2NN.js";
27
28
  import "./chunk-HS7MLR74.js";
28
- import "./chunk-QBA5KMJI.js";
29
+ import "./chunk-RZOJRTKR.js";
29
30
  import "./chunk-5XTOKQLW.js";
30
31
  import "./chunk-NF64D32W.js";
31
32
  import "./chunk-3L2WKC3W.js";
32
33
  import "./chunk-NTW5GWDM.js";
33
- import "./chunk-FPTQQSS6.js";
34
+ import "./chunk-73BR2IQT.js";
34
35
  import "./chunk-KQHGZWSV.js";
35
36
  import "./chunk-UDQWGU7F.js";
36
37
  import "./chunk-PZM3EENV.js";
@@ -41,16 +42,16 @@ import "./chunk-FZGV4FGK.js";
41
42
  import "./chunk-MEYIRKDN.js";
42
43
  import "./chunk-63W5N6P3.js";
43
44
  import "./chunk-VF4K2QE6.js";
44
- import "./chunk-AWPU7GXU.js";
45
- import "./chunk-2JCTE5UN.js";
46
- import "./chunk-XGZM6BTX.js";
45
+ import "./chunk-URWDSZRW.js";
46
+ import "./chunk-KEZNSFGD.js";
47
+ import "./chunk-EBKMQULC.js";
47
48
  import "./chunk-ZJ7UHBJS.js";
48
- import "./chunk-VOEW2KF3.js";
49
+ import "./chunk-IDGYOD2O.js";
49
50
  import "./chunk-EVBFYPDC.js";
50
51
  import "./chunk-HQUORJTM.js";
51
52
  import "./chunk-YYLHWIW6.js";
52
53
  import "./chunk-AGGIDPCZ.js";
53
- import "./chunk-TI4CCL34.js";
54
+ import "./chunk-DM4FBSWG.js";
54
55
  import "./chunk-BJCWNHVU.js";
55
56
  import "./chunk-5RGU3J7P.js";
56
57
  import "./chunk-6YTOJY35.js";
@@ -58,29 +59,30 @@ import "./chunk-M76ECQRD.js";
58
59
  import "./chunk-YDH3FDFQ.js";
59
60
  import "./chunk-C3FZR5EC.js";
60
61
  import "./chunk-GLKOYSRU.js";
61
- import "./chunk-3IT2PFHL.js";
62
- import "./chunk-MYU3MJCF.js";
62
+ import "./chunk-NB5SIWC4.js";
63
+ import "./chunk-GCJ3IS5M.js";
63
64
  import "./chunk-AETZ7AD6.js";
64
65
  import "./chunk-KHCLMKZZ.js";
65
- import "./chunk-CJ23A7U4.js";
66
- import "./chunk-HXAINXPQ.js";
66
+ import "./chunk-PF6O3GR3.js";
67
67
  import "./chunk-ZNFJWEN4.js";
68
- import "./chunk-KIS76A2P.js";
69
- import "./chunk-2QDDKFG5.js";
68
+ import "./chunk-NFT2AOK5.js";
69
+ import "./chunk-FMODTASJ.js";
70
+ import "./chunk-AX7RMXSH.js";
71
+ import "./chunk-CQ3WA2NE.js";
70
72
  import "./chunk-N7J63Q6C.js";
71
- import "./chunk-ZLPA7K55.js";
73
+ import "./chunk-ETLZZQJE.js";
72
74
  import "./chunk-PUOC4YRO.js";
73
- import "./chunk-PGSKWZCB.js";
74
- import "./chunk-CMH2SYHX.js";
75
- import "./chunk-V3ZKNK5D.js";
75
+ import "./chunk-ZVN6I33J.js";
76
76
  import "./chunk-CJCJF5XB.js";
77
+ import "./chunk-LHDV2QUI.js";
78
+ import "./chunk-TMPLPCVX.js";
77
79
  import "./chunk-2MBTWINN.js";
78
- import "./chunk-DSRXPQWA.js";
80
+ import "./chunk-7QVPPOEC.js";
79
81
  import "./chunk-E36HZARC.js";
80
- import "./chunk-K7AG465Q.js";
82
+ import "./chunk-PZCTYKGU.js";
81
83
  import "./chunk-PSCNXBYA.js";
82
84
  import "./chunk-BYXBJQAS.js";
83
- import "./chunk-UJ63UXGE.js";
85
+ import "./chunk-MXUSPS2N.js";
84
86
  import "./chunk-DWLEOOGR.js";
85
87
  import "./chunk-3JQ2NRYU.js";
86
88
  import "./chunk-ONXOABJR.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.74.0-alpha.2",
3
+ "version": "0.74.0",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {