nolo-cli 0.104.0-alpha.1 → 0.104.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/README.md +1 -1
- package/{_executeModel-4W7C3ACS.js → _executeModel-JXG5TLPE.js} +75 -68
- package/action-GVA5ARSJ.js +20 -0
- package/{addContentAction-O7R66HEX.js → addContentAction-J3DLDV64.js} +12 -11
- package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-PHIXJCF2.js} +18 -19
- package/{agentDeleteCommand-2YAHAZFJ.js → agentDeleteCommand-2AWJGHXG.js} +117 -42
- package/{agentEmailCommands-O2KH4G7U.js → agentEmailCommands-VV5OSILE.js} +98 -88
- package/agentListCommands-OQMRBDWP.js +742 -0
- package/{agentMachineCommands-5I5CCUBM.js → agentMachineCommands-3VLLR6RL.js} +48 -43
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-XPJYZSCE.js} +97 -2
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
- package/agentRecordCommands-GPIARVOW.js +138 -0
- package/agentRunCommand-LRJTZ7IM.js +167 -0
- package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
- package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-PV6AZOEU.js} +48 -39
- package/{agentSlice-6LBOYNKN.js → agentSlice-6R3JKS6I.js} +14 -13
- package/{appDeleteCommands-32MHLR4L.js → appDeleteCommands-WEX73P5R.js} +46 -41
- package/{appDeployCommands-WCQOUSOB.js → appDeployCommands-7BAXWA4M.js} +46 -41
- package/{appDeployStatusCommands-6QKB7DYN.js → appDeployStatusCommands-EJ6A2U4X.js} +46 -41
- package/{appGetCommands-SFAPP5PB.js → appGetCommands-SB355OEX.js} +46 -41
- package/{appListCommands-EKUBDRUO.js → appListCommands-TSZDPIKJ.js} +46 -41
- package/{authCommand-F4EFRRX6.js → authCommand-5PB3YRVV.js} +118 -24
- package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
- package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-SBBWTANC.js} +10 -8
- package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
- package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
- package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
- package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
- package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
- package/{chunk-53HEEOTT.js → chunk-2WJ57RJA.js} +83 -16
- package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
- package/{chunk-V4MJDUSR.js → chunk-3F424ASC.js} +2 -2
- package/{chunk-HJUYAD4A.js → chunk-3Q7NEHAR.js} +5 -5
- package/chunk-44CU7CKA.js +13545 -0
- package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
- package/chunk-4LCOCOR5.js +50 -0
- package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
- package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
- package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
- package/{chunk-H62HCIUP.js → chunk-4WMMIL66.js} +35 -22
- package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
- package/{chunk-ZCYXJSTU.js → chunk-54VPQTOA.js} +66 -94
- package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
- package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
- package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
- package/chunk-A4SQRTZ6.js +15 -0
- package/{chunk-L5UXH3B2.js → chunk-AFH5QC6R.js} +58 -9
- package/{chunk-AEOE4Z6Q.js → chunk-AFSY3ZMB.js} +39 -15
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
- package/{chunk-NA35QHCF.js → chunk-AWVP7PPG.js} +1 -1
- package/{chunk-EEGDMATE.js → chunk-B7APRSPS.js} +86 -81
- package/{chunk-W324THOB.js → chunk-BB7LVBTS.js} +20 -11
- package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
- package/{chunk-5H7KJX7J.js → chunk-CFHWVEUJ.js} +5 -5
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-ETI2NYVF.js → chunk-CNA27EMD.js} +4 -4
- package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
- package/{chunk-WV42OMV7.js → chunk-D2GQE6AF.js} +8 -8
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
- package/chunk-DZ7R5V3Y.js +164 -0
- package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
- package/{chunk-KQ4ONNQD.js → chunk-EKPKW6RM.js} +155 -8
- package/{chunk-2J5Y72GY.js → chunk-EP7BWZ4B.js} +1 -1
- package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
- package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
- package/{chunk-3ZW5ZJMM.js → chunk-FGSJ3YMD.js} +23 -28
- package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
- package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
- package/chunk-GMZLP5DV.js +82 -0
- package/{chunk-DHDMC6FO.js → chunk-GSKPJIHY.js} +14 -9
- package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
- package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
- package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
- package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
- package/{chunk-VLTIYV3X.js → chunk-HP57OUJO.js} +4 -4
- package/{chunk-NXUYQBDZ.js → chunk-HYXABXCZ.js} +29 -78
- package/{chunk-DNCEALKX.js → chunk-IEJ5YDA4.js} +22 -29
- package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
- package/{chunk-BP4XNZRM.js → chunk-JIXGJTBU.js} +4 -4
- package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
- package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
- package/{chunk-4OEFYTWL.js → chunk-L5WOICCV.js} +67 -48
- package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
- package/chunk-LWLNLZC5.js +265 -0
- package/{chunk-H66KLASO.js → chunk-LWXE6IFU.js} +567 -519
- package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
- package/chunk-NKWIS6G2.js +442 -0
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-DJWMIXDZ.js → chunk-NSAFG343.js} +10 -10
- package/{chunk-UKZDAFYT.js → chunk-NSBID7PR.js} +6 -10
- package/{chunk-4J4QNKTW.js → chunk-NTR4SD3P.js} +845 -240
- package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
- package/chunk-NWENLDMM.js +42 -0
- package/chunk-O7SVKKLY.js +875 -0
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-JRQFUXY7.js → chunk-P5GCTVGV.js} +99 -22
- package/{chunk-PQFHGD77.js → chunk-QKTESDWK.js} +161 -14
- package/{chunk-U3JZVWIB.js → chunk-QMXJ5KDJ.js} +68 -46
- package/{chunk-GEPUP7OO.js → chunk-QYUBY3OZ.js} +3 -3
- package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
- package/{chunk-J4MOO56S.js → chunk-RILRSUGC.js} +10 -2
- package/{chunk-OEVAY4J6.js → chunk-RWX7AY7J.js} +18 -20
- package/{chunk-YY7I6GQ3.js → chunk-S2NSK7AZ.js} +11 -9
- package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
- package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
- package/{chunk-UZGQNTVW.js → chunk-UA324D4O.js} +8 -6
- package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
- package/chunk-UWXDA7L5.js +8005 -0
- package/{chunk-3DII57IT.js → chunk-VCAQFMVN.js} +1 -1
- package/chunk-VIWDGTDA.js +8 -0
- package/chunk-VJVNU77E.js +83 -0
- package/{chunk-A6FMKU7M.js → chunk-VVJ2ENLY.js} +47 -67
- package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
- package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
- package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
- package/chunk-YK5MHOWM.js +915 -0
- package/chunk-YV25TM3R.js +780 -0
- package/{chunk-TOP2VXOR.js → chunk-YVU4XVJD.js} +5 -5
- package/{chunk-7SOWRCQQ.js → chunk-Z5NGE5DH.js} +29 -9
- package/{chunk-6VFARHZW.js → chunk-ZBHR642M.js} +994 -1079
- package/chunk-ZRAU6T47.js +56 -0
- package/{chunk-B6P4QKEN.js → chunk-ZSUDOTPL.js} +19 -17
- package/commandRegistry-QU62WJQX.js +833 -0
- package/{contentThunks-LXOZUD2Y.js → contentThunks-VGV3JJVB.js} +37 -35
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-M5NDEIC6.js → createAgentAutomationAction-ZNVLI4WV.js} +39 -37
- package/createDialogAction-TTUA46DT.js +69 -0
- package/{createPageAction-WY5ZKP2M.js → createPageAction-KUFSC5XW.js} +46 -43
- package/{chunk-ITBLTYQB.js → cursorProvider-YGGNMVWX.js} +2496 -9897
- package/{dbSlice-XVWBAGYN.js → dbSlice-MYEETO73.js} +11 -10
- package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
- package/{dialogCommands-5J56DFWN.js → dialogCommands-DRDPEOTL.js} +49 -45
- package/{dialogSlice-HSGREZGA.js → dialogSlice-V2SVSTIV.js} +41 -34
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-KYI2DC2U.js → docCreateCommands-M26CFDDQ.js} +48 -43
- package/{docDeleteCommands-67REUSRY.js → docDeleteCommands-LRZHCKVX.js} +49 -44
- package/{docReadCommands-HOSVSBDJ.js → docReadCommands-6QJSISHK.js} +47 -42
- package/{docStore-IIS36NGG.js → docStore-4RWAFNDM.js} +16 -12
- package/{docUpdateCommands-EMGCSMXY.js → docUpdateCommands-W4KU4U5T.js} +48 -43
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
- package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
- package/{handleSendMessageAction-FEHCWMN2.js → handleSendMessageAction-VEWLGB5Z.js} +107 -41
- package/index.js +87 -884
- package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
- package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
- package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
- package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
- package/{machineCommands-G5J754EH.js → machineCommands-AEHHCJEW.js} +92 -82
- package/machineWsRunDispatch-MY2KHS36.js +154 -0
- package/{memberThunks-QGFLFVCI.js → memberThunks-EE6TI3TV.js} +20 -18
- package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
- package/oauthTokenStore-ITEB663N.js +23 -0
- package/package.json +1 -1
- package/pdf-U6KSUEZZ.js +26435 -0
- package/processSpawn-SOAV3FEV.js +11 -0
- package/profileConfig-ZGOFORWV.js +43 -0
- package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-TEBH7FDX.js} +7 -7
- package/{providerRegistry-757OWH3O.js → providerRegistry-CBJLNCET.js} +11 -7
- package/{read-COE3ZYR6.js → read-PJIT2YEJ.js} +7 -6
- package/{readDocTool-5USN4A6V.js → readDocTool-DRSXHGNL.js} +5 -3
- package/{readlineWorkspace-TGCYJFEB.js → readlineWorkspace-7Q6MITLV.js} +2685 -2050
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-IN4WUKJJ.js} +21 -25
- package/{runAgentClientLoop-UY76PPZM.js → runAgentClientLoop-H2JALUVD.js} +76 -70
- package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
- package/runtimeModeArgs-2Y7BALTO.js +31 -0
- package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-VDRF7LPK.js} +15 -13
- package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-RO6LIWJ4.js} +22 -26
- package/{chunk-AFUORTY4.js → settingThunks-3OPOLOIA.js} +226 -940
- package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-NKJVJCQQ.js → spaceCommands-UBLL5EF2.js} +51 -46
- package/{streamAgentChatTurn-3YVIO4KE.js → streamAgentChatTurn-FFJWW3FD.js} +214 -108
- package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-MVF2JNE7.js} +18 -19
- package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
- package/{toolApiClient-QVJ6HDNN.js → toolApiClient-EJT6TMFG.js} +3 -3
- package/tools-AZRYLYNK.js +116 -0
- package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-7S5HJ3MT.js} +25 -22
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-GF5T3VMK.js → updateDialogTitleAction-5WXTRUJM.js} +82 -44
- package/action-YVYQEAAV.js +0 -31
- package/agentListCommands-GUDMBDHZ.js +0 -410
- package/agentRecordCommands-RSS44XHC.js +0 -128
- package/agentRunCommand-P7VHL4ZR.js +0 -156
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-WFROMKD3.js +0 -186
- package/chunk-CQ3WA2NE.js +0 -299
- package/chunk-FQUHIG5X.js +0 -20782
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-Q5FJJ6XI.js +0 -103
- package/chunk-S7Z2HMCN.js +0 -25
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/createDialogAction-TDFOINOY.js +0 -65
- package/machineWsRunDispatch-VXYBYYKM.js +0 -144
- package/settingSlice-ZQZVUPKK.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-Q6IBBG33.js +0 -110
- package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
- package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
package/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
detectMode,
|
|
4
|
+
initializeDiagnostics
|
|
5
|
+
} from "./chunk-YV25TM3R.js";
|
|
2
6
|
import {
|
|
3
7
|
consumeWindowsUpdateStartupNotice,
|
|
8
|
+
getWindowsUpdateStatus,
|
|
4
9
|
readPackageInfo
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import {
|
|
7
|
-
buildCliRuntimeEnv,
|
|
8
|
-
loadProfileConfig
|
|
9
|
-
} from "./chunk-BYMV6QZG.js";
|
|
10
|
-
import {
|
|
11
|
-
spawnProcess
|
|
12
|
-
} from "./chunk-X7HHHIOZ.js";
|
|
10
|
+
} from "./chunk-2SYTUTLI.js";
|
|
13
11
|
import {
|
|
14
12
|
isCompiledBinary
|
|
15
13
|
} from "./chunk-A7GB5UGH.js";
|
|
16
14
|
import "./chunk-OLZBQWZU.js";
|
|
15
|
+
import "./chunk-TNIX77YM.js";
|
|
16
|
+
import "./chunk-Y6ROFCZO.js";
|
|
17
17
|
import "./chunk-LCBAMY2M.js";
|
|
18
18
|
import "./chunk-4SN6J65J.js";
|
|
19
19
|
import "./chunk-CF7PE763.js";
|
|
@@ -22,848 +22,25 @@ import "./chunk-4VNS5WPM.js";
|
|
|
22
22
|
|
|
23
23
|
// packages/cli/index.ts
|
|
24
24
|
import { dirname, join } from "node:path";
|
|
25
|
-
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
26
|
-
|
|
27
|
-
// packages/cli/cliCommandDispatch.ts
|
|
28
25
|
import { fileURLToPath } from "node:url";
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (!command2.script) {
|
|
37
|
-
throw new Error(`Script command ${command2.path.join(" ")} is missing a script.`);
|
|
38
|
-
}
|
|
39
|
-
const forwardedArgs = [...command2.fixedArgs ?? [], ...originalArgs.slice(command2.path.length)];
|
|
40
|
-
return deps.runScript(command2.script, forwardedArgs, ctx.env);
|
|
41
|
-
}
|
|
42
|
-
function readOption(args2, flag) {
|
|
43
|
-
const index = args2.indexOf(flag);
|
|
44
|
-
return index >= 0 ? args2[index + 1] : void 0;
|
|
45
|
-
}
|
|
46
|
-
function buildDaemonEnv(args2, runtimeEnv2) {
|
|
47
|
-
const serverUrl = readOption(args2, "--server-url") || readOption(args2, "--server");
|
|
48
|
-
const apiKey = readOption(args2, "--machine-key") || readOption(args2, "--token");
|
|
49
|
-
return {
|
|
50
|
-
...runtimeEnv2,
|
|
51
|
-
...serverUrl ? { NOLO_SERVER: serverUrl } : {},
|
|
52
|
-
...apiKey ? { AUTH_TOKEN: apiKey } : {}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function looksLikeDaemonShortcut(args2) {
|
|
56
|
-
return args2.includes("--server-url") || args2.includes("--machine-key");
|
|
57
|
-
}
|
|
58
|
-
function createCliRuntimeContext(args2) {
|
|
59
|
-
return {
|
|
60
|
-
env: args2.env,
|
|
61
|
-
scriptDir: args2.scriptDir,
|
|
62
|
-
entrypointPath: args2.entrypointPath ?? fileURLToPath(import.meta.url),
|
|
63
|
-
packageInfo: args2.packageInfo
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function withDaemonShortcutArgs(args2, runtimeEnv2) {
|
|
67
|
-
if (!looksLikeDaemonShortcut(args2)) return { commandArgs: args2, envOverride: null };
|
|
68
|
-
return {
|
|
69
|
-
commandArgs: ["daemon", ...args2],
|
|
70
|
-
envOverride: buildDaemonEnv(args2, runtimeEnv2)
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// packages/cli/cliCommandAdapters.ts
|
|
75
|
-
function withCliEnv(command2) {
|
|
76
|
-
return (args2, ctx) => command2(args2, { env: ctx.env });
|
|
77
|
-
}
|
|
78
|
-
function withCliEntrypointEnv(command2) {
|
|
79
|
-
return (args2, ctx) => command2(args2, {
|
|
80
|
-
env: ctx.env,
|
|
81
|
-
cliEntrypointPath: ctx.entrypointPath
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// packages/cli/cliCommandTypes.ts
|
|
86
|
-
function createScriptCommand(path, script, description, fixedArgs) {
|
|
87
|
-
return {
|
|
88
|
-
path,
|
|
89
|
-
kind: "script",
|
|
90
|
-
script,
|
|
91
|
-
description,
|
|
92
|
-
...fixedArgs ? { fixedArgs } : {}
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
function createInternalCommand(path, description, handler) {
|
|
96
|
-
return {
|
|
97
|
-
path,
|
|
98
|
-
kind: "internal",
|
|
99
|
-
description,
|
|
100
|
-
handler
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// packages/cli/cliCommandFactories.ts
|
|
105
|
-
function createEnvCommand(path, description, command2) {
|
|
106
|
-
return createInternalCommand(path, description, withCliEnv(command2));
|
|
107
|
-
}
|
|
108
|
-
function createEntrypointEnvCommand(path, description, command2) {
|
|
109
|
-
return createInternalCommand(path, description, withCliEntrypointEnv(command2));
|
|
110
|
-
}
|
|
111
|
-
function createArgsCommand(path, description, command2) {
|
|
112
|
-
return createInternalCommand(path, description, (args2) => command2(args2));
|
|
113
|
-
}
|
|
114
|
-
function createContextCommand(path, description, command2) {
|
|
115
|
-
return createInternalCommand(path, description, command2);
|
|
116
|
-
}
|
|
117
|
-
function createDaemonShortcutCommand(path, description, command2) {
|
|
118
|
-
return createInternalCommand(path, description, (args2, ctx) => {
|
|
119
|
-
const normalized = withDaemonShortcutArgs(args2, ctx.env);
|
|
120
|
-
return command2(["--ws"], {
|
|
121
|
-
env: normalized.envOverride ?? ctx.env,
|
|
122
|
-
cliEntrypointPath: ctx.entrypointPath
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// packages/cli/agentInternalCommandEntries.ts
|
|
128
|
-
function getAgentInternalCommandEntries() {
|
|
129
|
-
const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args2, ctx) => {
|
|
130
|
-
const { runAgentRunCommand } = await import("./agentRunCommand-P7VHL4ZR.js");
|
|
131
|
-
return runAgentRunCommand(args2, {
|
|
132
|
-
env: ctx.env,
|
|
133
|
-
scriptDir: ctx.scriptDir,
|
|
134
|
-
cliEntrypointPath: ctx.entrypointPath,
|
|
135
|
-
commandPath: path
|
|
26
|
+
var cliArgs = process.argv.slice(2);
|
|
27
|
+
var diagnostics = initializeDiagnostics(detectMode(cliArgs, process.env), process.env);
|
|
28
|
+
var logger = diagnostics.logger;
|
|
29
|
+
if (process.platform === "win32") {
|
|
30
|
+
if (cliArgs[0] === "update" && cliArgs[1] === "status") {
|
|
31
|
+
const report = getWindowsUpdateStatus(process.env, {
|
|
32
|
+
currentVersion: readPackageInfo().version
|
|
136
33
|
});
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
createAgentRunCommand(["chat"], "Chat with an agent"),
|
|
141
|
-
createEnvCommand(["agent", "list"], "List owned agents", async (args2, deps) => {
|
|
142
|
-
const { runAgentListCommand } = await import("./agentListCommands-GUDMBDHZ.js");
|
|
143
|
-
return runAgentListCommand(args2, deps);
|
|
144
|
-
}),
|
|
145
|
-
createEnvCommand(["agent", "create"], "Create a new agent", async (args2, deps) => {
|
|
146
|
-
const { runAgentCreateCommand } = await import("./agentRecordCommands-RSS44XHC.js");
|
|
147
|
-
return runAgentCreateCommand(args2, deps);
|
|
148
|
-
}),
|
|
149
|
-
createEnvCommand(["agent", "models"], "List models available on an OpenAI-compatible provider", async (args2, deps) => {
|
|
150
|
-
const { runAgentModelsCommand } = await import("./agentProviderCommands-GNPTL5XR.js");
|
|
151
|
-
return runAgentModelsCommand(args2, deps);
|
|
152
|
-
}),
|
|
153
|
-
createEnvCommand(["agent", "providers"], "List agent-creation provider presets (subscription / metered / oauth)", async (args2, deps) => {
|
|
154
|
-
const { runAgentProvidersCommand } = await import("./agentProviderCommands-GNPTL5XR.js");
|
|
155
|
-
return runAgentProvidersCommand(args2, deps);
|
|
156
|
-
}),
|
|
157
|
-
createEnvCommand(["agent", "pull"], "Cache an agent for local runs", async (args2, deps) => {
|
|
158
|
-
const { runAgentPullCommand } = await import("./agentPullCommand-O5MPVJ5E.js");
|
|
159
|
-
return runAgentPullCommand(args2, deps);
|
|
160
|
-
}),
|
|
161
|
-
createEnvCommand(["agent", "read"], "Read a single agent", async (args2, deps) => {
|
|
162
|
-
const { runAgentReadCommand } = await import("./agentRecordCommands-RSS44XHC.js");
|
|
163
|
-
return runAgentReadCommand(args2, deps);
|
|
164
|
-
}),
|
|
165
|
-
createAgentRunCommand(["agent", "run"], "Run an agent"),
|
|
166
|
-
createEnvCommand(["agent", "ps"], "List active and recent local agent runs (--json for machine-readable output)", async (_args, deps) => {
|
|
167
|
-
const { runAgentPsCommand } = await import("./agentRunControl-AVJR4JW4.js");
|
|
168
|
-
return runAgentPsCommand(_args, { ...deps, output: process.stdout });
|
|
169
|
-
}),
|
|
170
|
-
createEnvCommand(["agent", "status"], "Show status of a local agent run (--json, --watch, --interval-ms N)", async (args2, deps) => {
|
|
171
|
-
const { runAgentStatusCommand } = await import("./agentRunControl-AVJR4JW4.js");
|
|
172
|
-
return runAgentStatusCommand(args2, { ...deps, output: process.stdout });
|
|
173
|
-
}),
|
|
174
|
-
createEnvCommand(["agent", "logs"], "Show logs of a local agent run", async (args2, deps) => {
|
|
175
|
-
const { runAgentLogsCommand } = await import("./agentRunControl-AVJR4JW4.js");
|
|
176
|
-
return runAgentLogsCommand(args2, { ...deps, output: process.stdout });
|
|
177
|
-
}),
|
|
178
|
-
createEnvCommand(["agent", "stop"], "Stop a local agent run", async (args2, deps) => {
|
|
179
|
-
const { runAgentStopCommand } = await import("./agentRunControl-AVJR4JW4.js");
|
|
180
|
-
return runAgentStopCommand(args2, { ...deps, output: process.stdout });
|
|
181
|
-
}),
|
|
182
|
-
createEnvCommand(["agent", "kill"], "Kill a local agent run", async (args2, deps) => {
|
|
183
|
-
const { runAgentKillCommand } = await import("./agentRunControl-AVJR4JW4.js");
|
|
184
|
-
return runAgentKillCommand(args2, { ...deps, output: process.stdout });
|
|
185
|
-
}),
|
|
186
|
-
createEnvCommand(["agent", "setup-offline-marxists"], "Create or update the Marxists.org offline book agent", async (args2, deps) => {
|
|
187
|
-
const { runSetupOfflineMarxistsAgentCommand } = await import("./offlineMarxistsAgentCommand-HGXZV4XJ.js");
|
|
188
|
-
return runSetupOfflineMarxistsAgentCommand(args2, deps);
|
|
189
|
-
}),
|
|
190
|
-
createEnvCommand(["agent", "update"], "Update agent fields", async (args2, deps) => {
|
|
191
|
-
const { runAgentUpdateCommand } = await import("./agentRecordCommands-RSS44XHC.js");
|
|
192
|
-
return runAgentUpdateCommand(args2, deps);
|
|
193
|
-
}),
|
|
194
|
-
createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args2, deps) => {
|
|
195
|
-
const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-O2KH4G7U.js");
|
|
196
|
-
return runAgentEmailProvisionCommand(args2, deps);
|
|
197
|
-
}),
|
|
198
|
-
createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args2, deps) => {
|
|
199
|
-
const { runAgentEmailBindCommand } = await import("./agentEmailCommands-O2KH4G7U.js");
|
|
200
|
-
return runAgentEmailBindCommand(args2, deps);
|
|
201
|
-
}),
|
|
202
|
-
createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args2, deps) => {
|
|
203
|
-
const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-O2KH4G7U.js");
|
|
204
|
-
return runAgentEmailTransferCommand(args2, deps);
|
|
205
|
-
}),
|
|
206
|
-
createEnvCommand(
|
|
207
|
-
["agent", "email", "create-and-provision"],
|
|
208
|
-
"Create an agent and provision its controlled inbox",
|
|
209
|
-
async (args2, deps) => {
|
|
210
|
-
const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-O2KH4G7U.js");
|
|
211
|
-
return runAgentEmailCreateAndProvisionCommand(args2, deps);
|
|
212
|
-
}
|
|
213
|
-
),
|
|
214
|
-
createEnvCommand(["agent", "delete"], "Hard-delete an agent's private and public records", async (args2, deps) => {
|
|
215
|
-
const { runAgentDeleteCommand } = await import("./agentDeleteCommand-2YAHAZFJ.js");
|
|
216
|
-
return runAgentDeleteCommand(args2, deps);
|
|
217
|
-
}),
|
|
218
|
-
createEnvCommand(["agent", "grant"], "Grant another user access to this agent's owner credentials", async (args2, deps) => {
|
|
219
|
-
const { runAgentGrantCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
|
|
220
|
-
return runAgentGrantCommand(args2, deps);
|
|
221
|
-
}),
|
|
222
|
-
createEnvCommand(["agent", "grants"], "List active credential grants for an agent", async (args2, deps) => {
|
|
223
|
-
const { runAgentGrantsListCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
|
|
224
|
-
return runAgentGrantsListCommand(args2, deps);
|
|
225
|
-
}),
|
|
226
|
-
createEnvCommand(["agent", "revoke-grant"], "Revoke a credential grant for an agent", async (args2, deps) => {
|
|
227
|
-
const { runAgentRevokeGrantCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
|
|
228
|
-
return runAgentRevokeGrantCommand(args2, deps);
|
|
229
|
-
}),
|
|
230
|
-
createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args2, deps) => {
|
|
231
|
-
const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-5I5CCUBM.js");
|
|
232
|
-
return runAgentBindCurrentCommand(args2, deps);
|
|
233
|
-
}),
|
|
234
|
-
createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args2, deps) => {
|
|
235
|
-
const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-5I5CCUBM.js");
|
|
236
|
-
return runAgentSmokeCurrentCommand(args2, deps);
|
|
237
|
-
}),
|
|
238
|
-
createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args2, deps) => {
|
|
239
|
-
const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-5I5CCUBM.js");
|
|
240
|
-
return runAgentRuntimeDoctorCommand(args2, deps);
|
|
241
|
-
}),
|
|
242
|
-
createAgentRunCommand(["agent", "chat"], "Chat with an agent")
|
|
243
|
-
];
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// packages/cli/appInternalCommandEntries.ts
|
|
247
|
-
function getAppInternalCommandEntries() {
|
|
248
|
-
return [
|
|
249
|
-
createEnvCommand(["app", "list"], "List your apps", async (args2, deps) => {
|
|
250
|
-
const { runAppListCommand } = await import("./appListCommands-EKUBDRUO.js");
|
|
251
|
-
return runAppListCommand(args2, deps);
|
|
252
|
-
}),
|
|
253
|
-
createEnvCommand(["app", "get"], "Get app details", async (args2, deps) => {
|
|
254
|
-
const { runAppGetCommand } = await import("./appGetCommands-SFAPP5PB.js");
|
|
255
|
-
return runAppGetCommand(args2, deps);
|
|
256
|
-
}),
|
|
257
|
-
createEnvCommand(["app", "deploy"], "Deploy an app", async (args2, deps) => {
|
|
258
|
-
const { runAppDeployCommand } = await import("./appDeployCommands-WCQOUSOB.js");
|
|
259
|
-
return runAppDeployCommand(args2, deps);
|
|
260
|
-
}),
|
|
261
|
-
createEnvCommand(["app", "deploy", "status"], "Check app deploy status", async (args2, deps) => {
|
|
262
|
-
const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-6QKB7DYN.js");
|
|
263
|
-
return runAppDeployStatusCommand(args2, deps);
|
|
264
|
-
}),
|
|
265
|
-
createEnvCommand(["app", "delete"], "Delete an app", async (args2, deps) => {
|
|
266
|
-
const { runAppDeleteCommand } = await import("./appDeleteCommands-32MHLR4L.js");
|
|
267
|
-
return runAppDeleteCommand(args2, deps);
|
|
268
|
-
})
|
|
269
|
-
];
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// packages/cli/chromeInternalCommandEntries.ts
|
|
273
|
-
var CHROME_OPS_SUBCOMMANDS = [
|
|
274
|
-
{ name: "list-tabs", summary: "List controllable Chrome tabs" },
|
|
275
|
-
{ name: "open-tab", summary: "Open a URL in a new tab (--url <url> [--active])" },
|
|
276
|
-
{ name: "close-tab", summary: "Close a tab (--tab <id>)" },
|
|
277
|
-
{
|
|
278
|
-
name: "read-page",
|
|
279
|
-
summary: "Read a tab's text and interactive elements as elementRefs (--tab <id>)"
|
|
280
|
-
},
|
|
281
|
-
{ name: "click", summary: "Click an element (--tab <id> --ref|--selector)" },
|
|
282
|
-
{
|
|
283
|
-
name: "type",
|
|
284
|
-
summary: "Type text into an element (--tab <id> --ref|--selector --text <text>)"
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
name: "upload",
|
|
288
|
-
summary: "Upload files to a file input element (--tab <id> --ref|--selector --file <path>)"
|
|
289
|
-
},
|
|
290
|
-
{ name: "press", summary: "Press a keyboard key (--tab <id> --key <key>)" },
|
|
291
|
-
{ name: "scroll", summary: "Scroll a tab (--tab <id> [--delta-x N] [--delta-y N])" },
|
|
292
|
-
{ name: "screenshot", summary: "Capture a screenshot (--tab <id> [--out <path>])" },
|
|
293
|
-
{ name: "read-console", summary: "Read recent console entries (--tab <id>)" },
|
|
294
|
-
{ name: "read-network", summary: "Read recent network entries (--tab <id>)" }
|
|
295
|
-
];
|
|
296
|
-
function getChromeInternalCommandEntries() {
|
|
297
|
-
return [
|
|
298
|
-
createEnvCommand(
|
|
299
|
-
["chrome", "status"],
|
|
300
|
-
"Show Nolo Chrome connector status (native host manifest, token, live connection)",
|
|
301
|
-
async (args2, deps) => {
|
|
302
|
-
const { runChromeStatusCommand } = await import("./chromeCommands-FZYAU75D.js");
|
|
303
|
-
return runChromeStatusCommand(args2, deps);
|
|
304
|
-
}
|
|
305
|
-
),
|
|
306
|
-
createEnvCommand(
|
|
307
|
-
["chrome", "install"],
|
|
308
|
-
"Install the Chrome native messaging host manifest for this user",
|
|
309
|
-
async (args2, deps) => {
|
|
310
|
-
const { runChromeInstallCommand } = await import("./chromeCommands-FZYAU75D.js");
|
|
311
|
-
return runChromeInstallCommand(args2, deps);
|
|
312
|
-
}
|
|
313
|
-
),
|
|
314
|
-
createEnvCommand(
|
|
315
|
-
["chrome", "reload"],
|
|
316
|
-
"Reload the connector extension through the running native host",
|
|
317
|
-
async (args2, deps) => {
|
|
318
|
-
const { runChromeReloadCommand } = await import("./chromeCommands-FZYAU75D.js");
|
|
319
|
-
return runChromeReloadCommand(args2, deps);
|
|
320
|
-
}
|
|
321
|
-
),
|
|
322
|
-
...CHROME_OPS_SUBCOMMANDS.map(
|
|
323
|
-
({ name, summary }) => createArgsCommand(["chrome", name], summary, async (args2) => {
|
|
324
|
-
const { runChromeOpsCommand } = await import("./chromeOpsCommands-62P2Q2YB.js");
|
|
325
|
-
return runChromeOpsCommand(name, args2);
|
|
326
|
-
})
|
|
327
|
-
)
|
|
328
|
-
];
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// packages/cli/dialogInternalCommandEntries.ts
|
|
332
|
-
function getDialogInternalCommandEntries() {
|
|
333
|
-
return [
|
|
334
|
-
createEnvCommand(["dialog", "search"], "Search dialog messages across dialogs", async (args2, deps) => {
|
|
335
|
-
const { runDialogSearchCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
336
|
-
return runDialogSearchCommand(args2, deps);
|
|
337
|
-
}),
|
|
338
|
-
createEnvCommand(["dialog", "list"], "List dialogs (default --limit 50; --all/--limit 0 full; --jsonl streams)", async (args2, deps) => {
|
|
339
|
-
const { runDialogListCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
340
|
-
return runDialogListCommand(args2, deps);
|
|
341
|
-
}),
|
|
342
|
-
createEnvCommand(["dialog", "delete"], "Delete one or more dialogs", async (args2, deps) => {
|
|
343
|
-
const { runDialogDeleteCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
344
|
-
return runDialogDeleteCommand(args2, deps);
|
|
345
|
-
}),
|
|
346
|
-
createEnvCommand(["dialog", "query"], "Query dialogs by subject refs (default --limit 50; --all full; --jsonl streams)", async (args2, deps) => {
|
|
347
|
-
const { runDialogQueryCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
348
|
-
return runDialogQueryCommand(args2, deps);
|
|
349
|
-
}),
|
|
350
|
-
createEnvCommand(["dialog", "read"], "Read a dialog", async (args2, deps) => {
|
|
351
|
-
const { runDialogReadCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
352
|
-
return runDialogReadCommand(args2, deps);
|
|
353
|
-
}),
|
|
354
|
-
createEnvCommand(["dialog", "status"], "Read compact dialog status", async (args2, deps) => {
|
|
355
|
-
const { runDialogStatusCommand } = await import("./dialogCommands-5J56DFWN.js");
|
|
356
|
-
return runDialogStatusCommand(args2, deps);
|
|
357
|
-
})
|
|
358
|
-
];
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// packages/cli/docInternalCommandEntries.ts
|
|
362
|
-
function getDocInternalCommandEntries() {
|
|
363
|
-
return [
|
|
364
|
-
createEnvCommand(["doc", "create"], "Create a normal doc", async (args2, deps) => {
|
|
365
|
-
const { runDocCreateCommand } = await import("./docCreateCommands-KYI2DC2U.js");
|
|
366
|
-
return runDocCreateCommand(args2, deps);
|
|
367
|
-
}),
|
|
368
|
-
createEnvCommand(["doc", "read"], "Read a normal doc", async (args2, deps) => {
|
|
369
|
-
const { runDocReadCommand } = await import("./docReadCommands-HOSVSBDJ.js");
|
|
370
|
-
return runDocReadCommand(args2, deps);
|
|
371
|
-
}),
|
|
372
|
-
createEnvCommand(["doc", "update"], "Update a normal doc", async (args2, deps) => {
|
|
373
|
-
const { runDocUpdateCommand } = await import("./docUpdateCommands-EMGCSMXY.js");
|
|
374
|
-
return runDocUpdateCommand(args2, deps);
|
|
375
|
-
}),
|
|
376
|
-
createEnvCommand(["doc", "delete"], "Delete a normal doc", async (args2, deps) => {
|
|
377
|
-
const { runDocDeleteCommand } = await import("./docDeleteCommands-67REUSRY.js");
|
|
378
|
-
return runDocDeleteCommand(args2, deps);
|
|
379
|
-
}),
|
|
380
|
-
createEnvCommand(["skill-doc", "create"], "Create a skill-backed doc", async (args2, deps) => {
|
|
381
|
-
const { runSkillDocCreateCommand } = await import("./docCreateCommands-KYI2DC2U.js");
|
|
382
|
-
return runSkillDocCreateCommand(args2, deps);
|
|
383
|
-
}),
|
|
384
|
-
createEnvCommand(["skill", "create-doc"], "Create a skill-backed doc", async (args2, deps) => {
|
|
385
|
-
const { runSkillDocCreateCommand } = await import("./docCreateCommands-KYI2DC2U.js");
|
|
386
|
-
return runSkillDocCreateCommand(args2, deps);
|
|
387
|
-
}),
|
|
388
|
-
createEnvCommand(["skill-doc", "read"], "Read a skill doc", async (args2, deps) => {
|
|
389
|
-
const { runSkillDocReadCommand } = await import("./docReadCommands-HOSVSBDJ.js");
|
|
390
|
-
return runSkillDocReadCommand(args2, deps);
|
|
391
|
-
}),
|
|
392
|
-
createEnvCommand(["skill-doc", "update"], "Update a skill doc", async (args2, deps) => {
|
|
393
|
-
const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-EMGCSMXY.js");
|
|
394
|
-
return runSkillDocUpdateCommand(args2, deps);
|
|
395
|
-
}),
|
|
396
|
-
createEnvCommand(["skill-doc", "delete"], "Delete a skill doc", async (args2, deps) => {
|
|
397
|
-
const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-67REUSRY.js");
|
|
398
|
-
return runSkillDocDeleteCommand(args2, deps);
|
|
399
|
-
})
|
|
400
|
-
];
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
// packages/cli/memoryInternalCommandEntries.ts
|
|
404
|
-
function getMemoryInternalCommandEntries() {
|
|
405
|
-
return [
|
|
406
|
-
createEnvCommand(["memory", "list"], "List long-term memories by filter", async (args2, deps) => {
|
|
407
|
-
const { runMemoryListCommand } = await import("./memoryCommands-CUNBFRVS.js");
|
|
408
|
-
return runMemoryListCommand(args2, deps);
|
|
409
|
-
}),
|
|
410
|
-
createEnvCommand(["memory", "remember"], "Store a long-term memory", async (args2, deps) => {
|
|
411
|
-
const { runMemoryRememberCommand } = await import("./memoryCommands-CUNBFRVS.js");
|
|
412
|
-
return runMemoryRememberCommand(args2, deps);
|
|
413
|
-
}),
|
|
414
|
-
createEnvCommand(["memory", "delete"], "Delete long-term memories by filter", async (args2, deps) => {
|
|
415
|
-
const { runMemoryDeleteCommand } = await import("./memoryCommands-CUNBFRVS.js");
|
|
416
|
-
return runMemoryDeleteCommand(args2, deps);
|
|
417
|
-
})
|
|
418
|
-
];
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// packages/cli/spaceInternalCommandEntries.ts
|
|
422
|
-
function getSpaceInternalCommandEntries() {
|
|
423
|
-
return [
|
|
424
|
-
createEnvCommand(["space", "create"], "Create a space", async (args2, deps) => {
|
|
425
|
-
const { runSpaceCreateCommand } = await import("./spaceCommands-NKJVJCQQ.js");
|
|
426
|
-
return runSpaceCreateCommand(args2, deps);
|
|
427
|
-
}),
|
|
428
|
-
createEnvCommand(["space", "invite"], "Invite an existing user to a space", async (args2, deps) => {
|
|
429
|
-
const { runSpaceInviteCommand } = await import("./spaceCommands-NKJVJCQQ.js");
|
|
430
|
-
return runSpaceInviteCommand(args2, deps);
|
|
431
|
-
}),
|
|
432
|
-
createEnvCommand(["space", "accept-invite"], "Accept a space invite", async (args2, deps) => {
|
|
433
|
-
const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-NKJVJCQQ.js");
|
|
434
|
-
return runSpaceAcceptInviteCommand(args2, deps);
|
|
435
|
-
}),
|
|
436
|
-
createEnvCommand(["space", "upload"], "Upload a file to a space", async (args2, deps) => {
|
|
437
|
-
const { runSpaceUploadCommand } = await import("./spaceCommands-NKJVJCQQ.js");
|
|
438
|
-
return runSpaceUploadCommand(args2, deps);
|
|
439
|
-
})
|
|
440
|
-
];
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// packages/cli/systemInternalCommandEntries.ts
|
|
444
|
-
function getSystemInternalCommandEntries(renderHelpText2) {
|
|
445
|
-
return [
|
|
446
|
-
createContextCommand(["auth", "cooldown"], "List / clear credential availability cooldowns", async (_args, ctx) => {
|
|
447
|
-
const { runAuthCooldownCommand } = await import("./cooldownCommands-REAWYVTY.js");
|
|
448
|
-
return runAuthCooldownCommand(_args, ctx.env);
|
|
449
|
-
}),
|
|
450
|
-
createArgsCommand(["auth", "cloudflare"], "Authorize Cloudflare OAuth", async (args2) => {
|
|
451
|
-
const { runAuthCloudflareCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
452
|
-
return runAuthCloudflareCommand(args2);
|
|
453
|
-
}),
|
|
454
|
-
createArgsCommand(["auth", "chatgpt"], "Authorize ChatGPT / OpenAI Codex OAuth", async (args2) => {
|
|
455
|
-
const { runAuthChatgptCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
456
|
-
return runAuthChatgptCommand(args2);
|
|
457
|
-
}),
|
|
458
|
-
createArgsCommand(["auth", "xai"], "Authorize xAI Grok OAuth (SuperGrok subscription)", async (args2) => {
|
|
459
|
-
const { runAuthXaiCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
460
|
-
return runAuthXaiCommand(args2);
|
|
461
|
-
}),
|
|
462
|
-
createArgsCommand(["auth", "antigravity"], "Authorize Google Antigravity OAuth", async (args2) => {
|
|
463
|
-
const { runAuthAntigravityCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
464
|
-
return runAuthAntigravityCommand(args2);
|
|
465
|
-
}),
|
|
466
|
-
createArgsCommand(["auth", "claude"], "Authorize Claude Pro/Max OAuth", async (args2) => {
|
|
467
|
-
const { runAuthClaudeCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
468
|
-
return runAuthClaudeCommand(args2);
|
|
469
|
-
}),
|
|
470
|
-
createArgsCommand(["auth", "cursor"], "Authorize Cursor Pro OAuth", async (args2) => {
|
|
471
|
-
const { runAuthCursorCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
472
|
-
return runAuthCursorCommand(args2);
|
|
473
|
-
}),
|
|
474
|
-
createArgsCommand(["auth", "devin"], "Authorize Devin OAuth (Free SWE-2)", async (args2) => {
|
|
475
|
-
const { runAuthDevinCommand } = await import("./authCommand-F4EFRRX6.js");
|
|
476
|
-
return runAuthDevinCommand(args2);
|
|
477
|
-
}),
|
|
478
|
-
createArgsCommand(["login"], "Log in to Nolo", async (args2) => {
|
|
479
|
-
const { runLoginCommand } = await import("./authCommands-RGOGCPP6.js");
|
|
480
|
-
return runLoginCommand(args2);
|
|
481
|
-
}),
|
|
482
|
-
createContextCommand(["logout"], "Log out of Nolo", async (args2, ctx) => {
|
|
483
|
-
const { runLogoutCommand } = await import("./authCommands-RGOGCPP6.js");
|
|
484
|
-
return runLogoutCommand({ args: args2, env: ctx.env });
|
|
485
|
-
}),
|
|
486
|
-
createContextCommand(["whoami"], "Show the current login state", async (args2, ctx) => {
|
|
487
|
-
const { runWhoamiCommand } = await import("./authCommands-RGOGCPP6.js");
|
|
488
|
-
return runWhoamiCommand({ args: args2, env: ctx.env });
|
|
489
|
-
}),
|
|
490
|
-
createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args2, deps) => {
|
|
491
|
-
const { runMachineConnectCommand } = await import("./machineCommands-G5J754EH.js");
|
|
492
|
-
return runMachineConnectCommand(args2, deps);
|
|
493
|
-
}),
|
|
494
|
-
createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args2, deps) => {
|
|
495
|
-
const { runMachineConnectCommand } = await import("./machineCommands-G5J754EH.js");
|
|
496
|
-
return runMachineConnectCommand(args2, deps);
|
|
497
|
-
}),
|
|
498
|
-
createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args2, deps) => {
|
|
499
|
-
const { runMachineStatusCommand } = await import("./machineCommands-G5J754EH.js");
|
|
500
|
-
return runMachineStatusCommand(args2, deps);
|
|
501
|
-
}),
|
|
502
|
-
createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args2, deps) => {
|
|
503
|
-
const { runDoctorRuntimeCommand } = await import("./runtimeDoctorCommands-X6WDBEQX.js");
|
|
504
|
-
return runDoctorRuntimeCommand(args2, deps);
|
|
505
|
-
}),
|
|
506
|
-
createContextCommand(["doctor"], "Show CLI doctor information", async (_args, ctx) => {
|
|
507
|
-
const { buildCliDoctorText, getCliInstallChannel, resolveSelfUpdateServerUrl } = await import("./updateCommands-2M74UL7P.js");
|
|
508
|
-
const { isCompiledBinary: isCompiledBinary2 } = await import("./cliEnvHelpers-ZXNMX7VV.js");
|
|
509
|
-
const serverUrl = resolveSelfUpdateServerUrl(ctx.env);
|
|
510
|
-
console.log(
|
|
511
|
-
buildCliDoctorText({
|
|
512
|
-
packageName: ctx.packageInfo.name,
|
|
513
|
-
version: ctx.packageInfo.version,
|
|
514
|
-
entrypoint: ctx.entrypointPath,
|
|
515
|
-
serverUrl,
|
|
516
|
-
profileName: ctx.env.NOLO_PROFILE || "local",
|
|
517
|
-
installKind: isCompiledBinary2() ? "standalone-bundle" : "npm-global",
|
|
518
|
-
updateChannel: getCliInstallChannel(serverUrl)
|
|
519
|
-
})
|
|
520
|
-
);
|
|
521
|
-
return 0;
|
|
522
|
-
}),
|
|
523
|
-
createContextCommand(["update"], "Update the CLI", async (_args, ctx) => {
|
|
524
|
-
const { resolveSelfUpdateServerUrl, runSelfUpdate } = await import("./updateCommands-2M74UL7P.js");
|
|
525
|
-
return runSelfUpdate({
|
|
526
|
-
entrypointPath: ctx.entrypointPath,
|
|
527
|
-
serverUrl: resolveSelfUpdateServerUrl(ctx.env),
|
|
528
|
-
env: ctx.env
|
|
529
|
-
});
|
|
530
|
-
}),
|
|
531
|
-
createContextCommand(["version"], "Show CLI version", async (_args, ctx) => {
|
|
532
|
-
const { buildCliVersionText } = await import("./updateCommands-2M74UL7P.js");
|
|
533
|
-
console.log(buildCliVersionText(ctx.packageInfo));
|
|
534
|
-
return 0;
|
|
535
|
-
}),
|
|
536
|
-
createContextCommand(["--version"], "Show CLI version", async (_args, ctx) => {
|
|
537
|
-
const { buildCliVersionText } = await import("./updateCommands-2M74UL7P.js");
|
|
538
|
-
console.log(buildCliVersionText(ctx.packageInfo));
|
|
539
|
-
return 0;
|
|
540
|
-
}),
|
|
541
|
-
createContextCommand(["-v"], "Show CLI version", async (_args, ctx) => {
|
|
542
|
-
const { buildCliVersionText } = await import("./updateCommands-2M74UL7P.js");
|
|
543
|
-
console.log(buildCliVersionText(ctx.packageInfo));
|
|
544
|
-
return 0;
|
|
545
|
-
}),
|
|
546
|
-
createArgsCommand(["--help"], "Show help", async () => {
|
|
547
|
-
console.log(renderHelpText2());
|
|
548
|
-
return 0;
|
|
549
|
-
}),
|
|
550
|
-
createArgsCommand(["-h"], "Show help", async () => {
|
|
551
|
-
console.log(renderHelpText2());
|
|
552
|
-
return 0;
|
|
553
|
-
})
|
|
554
|
-
];
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
// packages/cli/tableInternalCommandEntries.ts
|
|
558
|
-
function renderTableHelpText() {
|
|
559
|
-
return [
|
|
560
|
-
"nolo table \u2014 table metadata and row commands",
|
|
561
|
-
"",
|
|
562
|
-
"Usage:",
|
|
563
|
-
" nolo table list [--limit <n>] [--all] [--output items|json|jsonl]",
|
|
564
|
-
" nolo table query --table <tableId|metaKey> [--row <rowId|rowDbKey>] [--limit <n>] [--offset <n>] [--all] [--output items|json|jsonl]",
|
|
565
|
-
" Defaults: list --limit 50, query --limit 20. Full dump: --all or --limit 0 (prefer --output jsonl).",
|
|
566
|
-
" nolo table meta --name <name> [--table <tableId|metaKey>] [--columns <json-array>]",
|
|
567
|
-
" nolo table add-row --table <tableId|metaKey> --values <json-object>",
|
|
568
|
-
" nolo table update-row --table <tableId|metaKey> --row <rowId|rowDbKey> --changes <json-object>",
|
|
569
|
-
" nolo table update-rows --table <tableId|metaKey> --updates <json-array>",
|
|
570
|
-
" nolo table delete-row --table <tableId|metaKey> --row <rowId|rowDbKey>",
|
|
571
|
-
" nolo table delete-rows --table <tableId|metaKey> (--row-ids <json-array> | --row-dbkeys <json-array> | --filters <json-object>)",
|
|
572
|
-
" nolo table purge-rows --table <exact-meta-dbKey> --row-dbkeys <json-array> [--yes] [--json]",
|
|
573
|
-
" nolo table remove-row-fields --table <exact-meta-dbKey> --row-dbkeys <json-array> --fields <json-array> [--yes] [--json]",
|
|
574
|
-
"",
|
|
575
|
-
"Examples:",
|
|
576
|
-
` nolo table query --table meta-0e95801d90-01KWSK4Q4TESXQ06SW39JN2TTJ --columns '["title","status","owner","priority","codeStatus"]' --no-base-fields --output items`,
|
|
577
|
-
' nolo table meta --table meta-0e95801d90-01KWSK4Q4TESXQ06SW39JN2TTJ --name "01KWSK4Q4TESXQ06SW39JN2TTJ"',
|
|
578
|
-
` nolo table add-row --table meta-0e95801d90-01KWSK4Q4TESXQ06SW39JN2TTJ --values '{"title":"Task","status":"todo"}'`,
|
|
579
|
-
""
|
|
580
|
-
].join("\n");
|
|
581
|
-
}
|
|
582
|
-
function isTableHelpArgs(args2) {
|
|
583
|
-
return args2.length === 0 || args2.every((arg) => arg === "--help" || arg === "-h");
|
|
584
|
-
}
|
|
585
|
-
function getTableInternalCommandEntries() {
|
|
586
|
-
return [
|
|
587
|
-
createArgsCommand(["table"], "Show table command help", async (args2) => {
|
|
588
|
-
if (!isTableHelpArgs(args2)) {
|
|
589
|
-
console.error(`Unknown command: table ${args2.join(" ")}`);
|
|
590
|
-
return 1;
|
|
591
|
-
}
|
|
592
|
-
console.log(renderTableHelpText());
|
|
593
|
-
return 0;
|
|
594
|
-
}),
|
|
595
|
-
createArgsCommand(["table", "delete-rows"], "Delete table rows", async (args2) => {
|
|
596
|
-
const { runTableDeleteRowsCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
597
|
-
return runTableDeleteRowsCommand(args2);
|
|
598
|
-
}),
|
|
599
|
-
createEnvCommand(["table", "purge-rows"], "Permanently purge table rows", async (args2, deps) => {
|
|
600
|
-
const { runTablePurgeRowsCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
601
|
-
return runTablePurgeRowsCommand(args2, deps);
|
|
602
|
-
}),
|
|
603
|
-
createEnvCommand(["table", "remove-row-fields"], "Remove fields from table rows", async (args2, deps) => {
|
|
604
|
-
const { runTableRemoveRowFieldsCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
605
|
-
return runTableRemoveRowFieldsCommand(args2, deps);
|
|
606
|
-
}),
|
|
607
|
-
createEnvCommand(["table", "add-column"], "Add a table column", async (args2, deps) => {
|
|
608
|
-
const { runTableAddColumnCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
609
|
-
return runTableAddColumnCommand(args2, deps);
|
|
610
|
-
}),
|
|
611
|
-
createEnvCommand(["table", "add-row"], "Add a table row", async (args2, deps) => {
|
|
612
|
-
const { runTableAddRowCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
613
|
-
return runTableAddRowCommand(args2, deps);
|
|
614
|
-
}),
|
|
615
|
-
createEnvCommand(["table", "add-rows"], "Add table rows", async (args2, deps) => {
|
|
616
|
-
const { runTableAddRowsCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
617
|
-
return runTableAddRowsCommand(args2, deps);
|
|
618
|
-
}),
|
|
619
|
-
createEnvCommand(["table", "update-row"], "Update a table row", async (args2, deps) => {
|
|
620
|
-
const { runTableUpdateRowCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
621
|
-
return runTableUpdateRowCommand(args2, deps);
|
|
622
|
-
}),
|
|
623
|
-
createEnvCommand(["table", "update-rows"], "Update table rows", async (args2, deps) => {
|
|
624
|
-
const { runTableUpdateRowsCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
625
|
-
return runTableUpdateRowsCommand(args2, deps);
|
|
626
|
-
}),
|
|
627
|
-
createEnvCommand(["table", "delete-row"], "Delete a table row", async (args2, deps) => {
|
|
628
|
-
const { runTableDeleteRowCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
629
|
-
return runTableDeleteRowCommand(args2, deps);
|
|
630
|
-
})
|
|
631
|
-
];
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
// packages/cli/workflowInternalCommandEntries.ts
|
|
635
|
-
function getWorkflowInternalCommandEntries() {
|
|
636
|
-
return [
|
|
637
|
-
createEnvCommand(["table", "list"], "List table metadata", async (args2, deps) => {
|
|
638
|
-
const { runTableListCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
639
|
-
return runTableListCommand(args2, deps);
|
|
640
|
-
}),
|
|
641
|
-
createEnvCommand(["table", "query"], "Query table rows", async (args2, deps) => {
|
|
642
|
-
const { runTableQueryCommand } = await import("./tableCommands-O6NWHFKV.js");
|
|
643
|
-
return runTableQueryCommand(args2, deps);
|
|
644
|
-
})
|
|
645
|
-
];
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
// packages/cli/internalCommandEntries.ts
|
|
649
|
-
function getInternalCommandEntries(renderHelpText2) {
|
|
650
|
-
return [
|
|
651
|
-
...getAgentInternalCommandEntries(),
|
|
652
|
-
...getDialogInternalCommandEntries(),
|
|
653
|
-
...getDocInternalCommandEntries(),
|
|
654
|
-
...getMemoryInternalCommandEntries(),
|
|
655
|
-
...getSpaceInternalCommandEntries(),
|
|
656
|
-
...getTableInternalCommandEntries(),
|
|
657
|
-
...getAppInternalCommandEntries(),
|
|
658
|
-
...getWorkflowInternalCommandEntries(),
|
|
659
|
-
// nolo chrome — connector setup (status|install|reload) + live-Chrome operations.
|
|
660
|
-
...getChromeInternalCommandEntries(),
|
|
661
|
-
...getSystemInternalCommandEntries(renderHelpText2)
|
|
662
|
-
];
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
// packages/cli/scriptCommandEntries.ts
|
|
666
|
-
function getDocScriptCommands() {
|
|
667
|
-
return [];
|
|
668
|
-
}
|
|
669
|
-
function getSpaceScriptCommands() {
|
|
670
|
-
return [
|
|
671
|
-
createScriptCommand(["space", "list"], "listSpaces.ts", "List joined spaces"),
|
|
672
|
-
createScriptCommand(["space", "read"], "readSpace.ts", "Read a space"),
|
|
673
|
-
createScriptCommand(["space", "delete"], "deleteSpaces.ts", "Delete spaces by safe filters"),
|
|
674
|
-
createScriptCommand(["space", "category"], "upsertSpaceCategory.ts", "Create or update a space category"),
|
|
675
|
-
createScriptCommand(["space", "content-category"], "setSpaceContentCategory.ts", "Move content into a space category")
|
|
676
|
-
];
|
|
677
|
-
}
|
|
678
|
-
function getTableScriptCommands() {
|
|
679
|
-
return [
|
|
680
|
-
createScriptCommand(["table", "meta"], "upsertTableMeta.ts", "Create or update table metadata")
|
|
681
|
-
];
|
|
682
|
-
}
|
|
683
|
-
function getAgentScriptCommands() {
|
|
684
|
-
return [
|
|
685
|
-
createScriptCommand(["agent", "unpublish"], "unpublishAgent.ts", "Remove an agent's public record"),
|
|
686
|
-
createScriptCommand(["agent", "dialogs"], "queryAgentDialogs.ts", "Inspect recent dialogs for an agent"),
|
|
687
|
-
createScriptCommand(["agent", "doctor"], "doctorAgentWorkspace.ts", "Audit agent workspace health"),
|
|
688
|
-
createScriptCommand(["agent", "create-custom"], "createCustomCodingAgent.ts", "Create a custom coding agent"),
|
|
689
|
-
createScriptCommand(["agent", "create-space"], "createSpaceAgents.ts", "Create or attach shared-space agents"),
|
|
690
|
-
createScriptCommand(["agent", "setup-demo"], "setupDemoAgent.ts", "Bootstrap demo publisher agents")
|
|
691
|
-
];
|
|
692
|
-
}
|
|
693
|
-
function getRuntimeScriptCommands() {
|
|
694
|
-
return [
|
|
695
|
-
createScriptCommand(["dev"], "devControl.ts", "Manage the local dev environment")
|
|
696
|
-
];
|
|
697
|
-
}
|
|
698
|
-
function getScriptCommandEntries() {
|
|
699
|
-
return [
|
|
700
|
-
...getDocScriptCommands(),
|
|
701
|
-
...getSpaceScriptCommands(),
|
|
702
|
-
...getTableScriptCommands(),
|
|
703
|
-
...getAgentScriptCommands(),
|
|
704
|
-
...getRuntimeScriptCommands()
|
|
705
|
-
];
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
// packages/cli/commandRegistry.ts
|
|
709
|
-
var COMMANDS = [
|
|
710
|
-
...getInternalCommandEntries(renderHelpText),
|
|
711
|
-
...getScriptCommandEntries()
|
|
712
|
-
];
|
|
713
|
-
var GROUP_ORDER = [
|
|
714
|
-
"run",
|
|
715
|
-
"chat",
|
|
716
|
-
"auth",
|
|
717
|
-
"doc",
|
|
718
|
-
"skill-doc",
|
|
719
|
-
"skill",
|
|
720
|
-
"agent",
|
|
721
|
-
"machine",
|
|
722
|
-
"chrome",
|
|
723
|
-
"doctor",
|
|
724
|
-
"dialog",
|
|
725
|
-
"memory",
|
|
726
|
-
"space",
|
|
727
|
-
"table",
|
|
728
|
-
"app",
|
|
729
|
-
"llama",
|
|
730
|
-
"model-runtime",
|
|
731
|
-
"dev"
|
|
732
|
-
];
|
|
733
|
-
function renderHelpText() {
|
|
734
|
-
const lines = [
|
|
735
|
-
"nolo \u2014 Agent-first terminal workspace",
|
|
736
|
-
"",
|
|
737
|
-
"Usage:",
|
|
738
|
-
" nolo",
|
|
739
|
-
" nolo <command> [subcommand] [...args]",
|
|
740
|
-
" nolo doctor",
|
|
741
|
-
" nolo update",
|
|
742
|
-
"",
|
|
743
|
-
"Examples:",
|
|
744
|
-
" nolo",
|
|
745
|
-
" nolo chat",
|
|
746
|
-
" nolo login",
|
|
747
|
-
" nolo login --no-browser",
|
|
748
|
-
" nolo login --token <auth-token>",
|
|
749
|
-
" nolo whoami",
|
|
750
|
-
" nolo connect",
|
|
751
|
-
" nolo connect --watch",
|
|
752
|
-
" nolo connect --ws",
|
|
753
|
-
" nolo connect --ws --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
|
|
754
|
-
" nolo connect --daemon --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
|
|
755
|
-
" nolo machine status",
|
|
756
|
-
" nolo chrome install",
|
|
757
|
-
" nolo chrome status",
|
|
758
|
-
' nolo chrome upload --tab 1 --selector "#upload" --file ./photo.jpg',
|
|
759
|
-
" nolo doctor",
|
|
760
|
-
" nolo doctor runtime",
|
|
761
|
-
" nolo update",
|
|
762
|
-
' nolo run "review this repository" # no Nolo login required; uses local Codex CLI',
|
|
763
|
-
' nolo doc create --title "Trip Notes" --body "hello" --sync local,us --dry-run',
|
|
764
|
-
' nolo skill-doc create --title "Agent Query Skill" --description "Inspect recent agent dialogs" --sync local,main,us',
|
|
765
|
-
" nolo agent list --json",
|
|
766
|
-
" nolo space list --json",
|
|
767
|
-
" nolo agent pull agent-pub-01APPBUILDER00000001YAII3I",
|
|
768
|
-
" nolo agent read agent-pub-01APPBUILDER00000001YAII3I",
|
|
769
|
-
' nolo agent run frontend-implementer --msg "polish notifications"',
|
|
770
|
-
' nolo agent run agent-0e95801d90-example --msg "Reply PONG only" --local --ephemeral',
|
|
771
|
-
" nolo agent ps",
|
|
772
|
-
" nolo agent status <runId>",
|
|
773
|
-
" nolo agent logs <runId> --tail 20",
|
|
774
|
-
" nolo agent stop <runId>",
|
|
775
|
-
" nolo agent bind-current agent-user-1-agent-1",
|
|
776
|
-
" nolo agent runtime-doctor agent-user-1-agent-1",
|
|
777
|
-
' nolo agent smoke-current agent-user-1-agent-1 --msg "ping"',
|
|
778
|
-
' nolo chat --agent agent-pub-01APPBUILDER00000001YAII3I --msg "\u4F60\u597D"',
|
|
779
|
-
" nolo memory delete --source-dialog 01ABC... --yes --json",
|
|
780
|
-
" nolo space read 01KKY77TT0DA9NY7TNW3R7255N --content-key page-user-id --brief",
|
|
781
|
-
" nolo space delete --name-prefix rn_owner_verify_0504 --yes",
|
|
782
|
-
" nolo table query --table 01ABCXYZ",
|
|
783
|
-
` nolo table query --table meta-0e95801d90-01KWSK4Q4TESXQ06SW39JN2TTJ --columns '["title","status","owner","priority","codeStatus"]' --no-base-fields --output items`,
|
|
784
|
-
` nolo table update-row --table meta-0e95801d90-01KWSK4Q4TESXQ06SW39JN2TTJ --row 01ROWID --changes '{"status":"\u5DF2\u5B8C\u6210"}'`,
|
|
785
|
-
" nolo llama status",
|
|
786
|
-
" nolo app list --json",
|
|
787
|
-
" nolo app get --name my-app",
|
|
788
|
-
" nolo app deploy --name my-app --code-file ./worker.js"
|
|
789
|
-
];
|
|
790
|
-
for (const group of GROUP_ORDER) {
|
|
791
|
-
const commands = COMMANDS.filter((entry) => entry.path[0] === group);
|
|
792
|
-
if (commands.length === 0) continue;
|
|
793
|
-
lines.push("", group);
|
|
794
|
-
for (const entry of commands) {
|
|
795
|
-
lines.push(` ${entry.path.join(" ")} ${entry.description}`);
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
return lines.join("\n");
|
|
799
|
-
}
|
|
800
|
-
function isHelpOnlyArgs(args2) {
|
|
801
|
-
return args2.length === 0 || args2.every((arg) => arg === "--help" || arg === "-h");
|
|
802
|
-
}
|
|
803
|
-
function renderCommandGroupHelpText(group) {
|
|
804
|
-
const commands = COMMANDS.filter((entry) => entry.path[0] === group);
|
|
805
|
-
if (commands.length === 0) return "";
|
|
806
|
-
return [
|
|
807
|
-
`nolo ${group} commands`,
|
|
808
|
-
"",
|
|
809
|
-
"Usage:",
|
|
810
|
-
...commands.map((entry) => ` nolo ${entry.path.join(" ")} ${entry.description}`),
|
|
811
|
-
""
|
|
812
|
-
].join("\n");
|
|
813
|
-
}
|
|
814
|
-
function createCommandGroupHelpEntry(group) {
|
|
815
|
-
return {
|
|
816
|
-
path: [group],
|
|
817
|
-
description: `Show ${group} command help`,
|
|
818
|
-
kind: "internal",
|
|
819
|
-
handler: async () => {
|
|
820
|
-
console.log(renderCommandGroupHelpText(group));
|
|
821
|
-
return 0;
|
|
822
|
-
}
|
|
823
|
-
};
|
|
824
|
-
}
|
|
825
|
-
function resolveCommand(args2) {
|
|
826
|
-
const sorted = [...COMMANDS].sort((a, b) => b.path.length - a.path.length);
|
|
827
|
-
const command2 = sorted.find(
|
|
828
|
-
(entry) => entry.path.every((part, index) => args2[index] === part)
|
|
829
|
-
);
|
|
830
|
-
if (command2) return command2;
|
|
831
|
-
const group = args2[0];
|
|
832
|
-
if (group && GROUP_ORDER.includes(group) && isHelpOnlyArgs(args2.slice(1)) && COMMANDS.some((entry) => entry.path[0] === group)) {
|
|
833
|
-
return createCommandGroupHelpEntry(group);
|
|
834
|
-
}
|
|
835
|
-
return void 0;
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
// packages/cli/runtimeModeArgs.ts
|
|
839
|
-
function runtimeModeFromFlag(flag) {
|
|
840
|
-
if (flag === "--local") return "local";
|
|
841
|
-
if (flag === "--server") return "server";
|
|
842
|
-
if (flag === "--auto") return "auto";
|
|
843
|
-
return "";
|
|
844
|
-
}
|
|
845
|
-
function resolveTuiLaunchMode(args2) {
|
|
846
|
-
const command2 = args2[0];
|
|
847
|
-
if (command2 !== "chat" && command2 !== "tui") {
|
|
848
|
-
return { shouldStartTui: false, envPatch: {} };
|
|
849
|
-
}
|
|
850
|
-
if (args2.length === 1) {
|
|
851
|
-
return { shouldStartTui: true, envPatch: {} };
|
|
34
|
+
process.stdout.write(`${report.text}
|
|
35
|
+
`);
|
|
36
|
+
process.exit(0);
|
|
852
37
|
}
|
|
853
|
-
if (
|
|
854
|
-
const
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
envPatch: { NOLO_RUNTIME_MODE: mode }
|
|
859
|
-
};
|
|
860
|
-
}
|
|
38
|
+
if (cliArgs.length === 1 && (cliArgs[0] === "-v" || cliArgs[0] === "--version")) {
|
|
39
|
+
const info = readPackageInfo();
|
|
40
|
+
process.stdout.write(`${info.name} ${info.version}
|
|
41
|
+
`);
|
|
42
|
+
process.exit(0);
|
|
861
43
|
}
|
|
862
|
-
return { shouldStartTui: false, envPatch: {} };
|
|
863
|
-
}
|
|
864
|
-
|
|
865
|
-
// packages/cli/index.ts
|
|
866
|
-
if (process.platform === "win32") {
|
|
867
44
|
const updateNotice = consumeWindowsUpdateStartupNotice(process.env, {
|
|
868
45
|
ownerUpdateId: process.env.NOLO_UPDATE_OWNER_ID
|
|
869
46
|
});
|
|
@@ -875,12 +52,14 @@ if (process.platform === "win32") {
|
|
|
875
52
|
}
|
|
876
53
|
}
|
|
877
54
|
}
|
|
878
|
-
var SOURCE_CLI_DIR = dirname(
|
|
55
|
+
var SOURCE_CLI_DIR = dirname(fileURLToPath(import.meta.url));
|
|
879
56
|
var CLI_DIR = isCompiledBinary() ? dirname(process.execPath) : SOURCE_CLI_DIR;
|
|
880
57
|
var ROOT_DIR = join(CLI_DIR, "..", "..");
|
|
881
58
|
var SCRIPT_DIR = join(ROOT_DIR, "scripts");
|
|
882
59
|
var packageInfo = readPackageInfo();
|
|
60
|
+
var args = cliArgs;
|
|
883
61
|
async function runScript(script, forwardedArgs, env) {
|
|
62
|
+
const { spawnProcess } = await import("./processSpawn-SOAV3FEV.js");
|
|
884
63
|
const scriptPath = join(SCRIPT_DIR, script);
|
|
885
64
|
const proc = spawnProcess({
|
|
886
65
|
cmd: [process.execPath, scriptPath, ...forwardedArgs],
|
|
@@ -892,8 +71,8 @@ async function runScript(script, forwardedArgs, env) {
|
|
|
892
71
|
return proc.exited;
|
|
893
72
|
}
|
|
894
73
|
async function launchTuiWorkspace(args2) {
|
|
895
|
-
const { startTuiWorkspace } = await import("./readlineWorkspace-
|
|
896
|
-
const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-
|
|
74
|
+
const { startTuiWorkspace } = await import("./readlineWorkspace-7Q6MITLV.js");
|
|
75
|
+
const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-7S5HJ3MT.js");
|
|
897
76
|
return startTuiWorkspace({
|
|
898
77
|
...args2,
|
|
899
78
|
// Big dialogs produce ~300KB+ summary prompts that routinely take 25–30s+;
|
|
@@ -901,42 +80,66 @@ async function launchTuiWorkspace(args2) {
|
|
|
901
80
|
summaryLlmCaller: createTuiSummaryLlmCaller(args2.env, { timeoutMs: 9e4 })
|
|
902
81
|
});
|
|
903
82
|
}
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
});
|
|
915
|
-
if (args.length === 0) {
|
|
916
|
-
if (process.stdin.isTTY) {
|
|
917
|
-
await launchTuiWorkspace({ scriptDir: SCRIPT_DIR, env: runtimeEnv });
|
|
918
|
-
} else {
|
|
919
|
-
console.log(renderHelpText());
|
|
920
|
-
}
|
|
921
|
-
process.exit(0);
|
|
922
|
-
}
|
|
923
|
-
var tuiLaunchMode = resolveTuiLaunchMode(args);
|
|
924
|
-
if (tuiLaunchMode.shouldStartTui) {
|
|
925
|
-
await launchTuiWorkspace({
|
|
83
|
+
async function main() {
|
|
84
|
+
const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-QU62WJQX.js");
|
|
85
|
+
const { buildCliRuntimeEnv, loadProfileConfig } = await import("./profileConfig-ZGOFORWV.js");
|
|
86
|
+
const { resolveTuiLaunchMode } = await import("./runtimeModeArgs-2Y7BALTO.js");
|
|
87
|
+
const runtimeEnv = {
|
|
88
|
+
...buildCliRuntimeEnv(process.env, loadProfileConfig()),
|
|
89
|
+
NOLO_CLI_VERSION: packageInfo.version
|
|
90
|
+
};
|
|
91
|
+
const runtimeContext = createCliRuntimeContext({
|
|
92
|
+
env: runtimeEnv,
|
|
926
93
|
scriptDir: SCRIPT_DIR,
|
|
927
|
-
|
|
94
|
+
entrypointPath: isCompiledBinary() ? process.execPath : fileURLToPath(import.meta.url),
|
|
95
|
+
packageInfo
|
|
928
96
|
});
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
97
|
+
if (args.length === 0) {
|
|
98
|
+
if (process.stdin.isTTY) {
|
|
99
|
+
await launchTuiWorkspace({ scriptDir: SCRIPT_DIR, env: runtimeEnv });
|
|
100
|
+
} else {
|
|
101
|
+
process.stdout.write(`${renderHelpText()}
|
|
102
|
+
`);
|
|
103
|
+
}
|
|
104
|
+
process.exit(0);
|
|
105
|
+
}
|
|
106
|
+
const tuiLaunchMode = resolveTuiLaunchMode(args);
|
|
107
|
+
if (tuiLaunchMode.shouldStartTui) {
|
|
108
|
+
await launchTuiWorkspace({
|
|
109
|
+
scriptDir: SCRIPT_DIR,
|
|
110
|
+
env: { ...runtimeEnv, ...tuiLaunchMode.envPatch }
|
|
111
|
+
});
|
|
112
|
+
process.exit(0);
|
|
113
|
+
}
|
|
114
|
+
const commandArgs = looksLikeDaemonShortcut(args) ? ["daemon", ...args] : args;
|
|
115
|
+
const command = resolveCommand(commandArgs);
|
|
116
|
+
if (!command) {
|
|
117
|
+
process.stderr.write(`Unknown command: ${args.join(" ")}
|
|
118
|
+
|
|
119
|
+
`);
|
|
120
|
+
process.stdout.write(`${renderHelpText()}
|
|
121
|
+
`);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
const exitCode = await runResolvedCommand(command, commandArgs, runtimeContext, {
|
|
125
|
+
runScript
|
|
126
|
+
});
|
|
127
|
+
process.exit(exitCode);
|
|
938
128
|
}
|
|
939
|
-
|
|
940
|
-
|
|
129
|
+
main().catch((error) => {
|
|
130
|
+
try {
|
|
131
|
+
logger.fatal("unhandled error in CLI main", error);
|
|
132
|
+
} catch {
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const msg = error instanceof Error ? `${error.name}: ${error.message}` : String(error);
|
|
136
|
+
process.stderr.write(`${msg}
|
|
137
|
+
`);
|
|
138
|
+
} catch {
|
|
139
|
+
try {
|
|
140
|
+
process.stderr.write("fatal: unhandled error\n");
|
|
141
|
+
} catch {
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
process.exit(70);
|
|
941
145
|
});
|
|
942
|
-
process.exit(exitCode);
|