nolo-cli 0.143.0-alpha.1 → 0.144.0-alpha.1
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/{_executeModel-QK43QR2R.js → _executeModel-VA7AOJ7I.js} +18 -17
- package/{agentDeleteCommand-SE4WUIRR.js → agentDeleteCommand-Z3UO4OJU.js} +10 -9
- package/{agentEmailCommands-LW5JMYH2.js → agentEmailCommands-73TKP5CA.js} +24 -23
- package/{agentListCommands-LGZG2OQR.js → agentListCommands-Y7QPH22N.js} +12 -11
- package/{agentMachineCommands-BNOXYSPZ.js → agentMachineCommands-NTV2CIGF.js} +10 -9
- package/{agentProviderCommands-AOG3OZJA.js → agentProviderCommands-TWB6E5WD.js} +1 -1
- package/{agentRecordCommands-W5ZXPHZV.js → agentRecordCommands-XOXZQYL3.js} +23 -22
- package/{agentRunCommand-VRLCL57M.js → agentRunCommand-6C7BR2AM.js} +23 -22
- package/{agentRuntimeLocal-VOQ3UYZB.js → agentRuntimeLocal-3FUYPU7E.js} +8 -7
- package/{agentSlice-4AK24F5F.js → agentSlice-FK2FY7UE.js} +1 -1
- package/{appDeleteCommands-XWAIUHTN.js → appDeleteCommands-L6IDOOI7.js} +11 -10
- package/{appDeployCommands-CBJJCUMG.js → appDeployCommands-XTT6FWGB.js} +11 -10
- package/{appDeployStatusCommands-LTTZTJQS.js → appDeployStatusCommands-3USXE3N3.js} +11 -10
- package/{appGetCommands-QHUB7MFF.js → appGetCommands-PHADWOLO.js} +11 -10
- package/{appListCommands-HINIDJE7.js → appListCommands-YM22HHY5.js} +11 -10
- package/{authCommand-LARLQ3GC.js → authCommand-XLCNATZR.js} +5 -5
- package/{builtinSkillRegistry-AFPSTTAU.js → builtinSkillRegistry-HRI7DXC2.js} +4 -3
- package/{chatQueueReduxAdapter-KIQ3FQ62.js → chatQueueReduxAdapter-ZHUJO77G.js} +2 -2
- package/{chromeCommands-NKU3OWKH.js → chromeCommands-K27J4OVZ.js} +91 -20
- package/{chromeOpsCommands-OQDJGD4Y.js → chromeOpsCommands-IXRLN57H.js} +4 -3
- package/{chunk-7MUSNQ6E.js → chunk-27ONFIEY.js} +20 -2
- package/{chunk-OZ6V53WV.js → chunk-2EE5UD3N.js} +1 -1
- package/{chunk-T36EFAW7.js → chunk-2KHRSBYS.js} +3 -3
- package/{chunk-44QZPYLI.js → chunk-2SYTUTLI.js} +92 -20
- package/{chunk-OUOJE2P2.js → chunk-3AOSNKIZ.js} +5 -5
- package/{chunk-ZOI6KA4N.js → chunk-3T6MH737.js} +22 -20
- package/chunk-5J3PYNUP.js +255 -0
- package/{chunk-GZQNKKDG.js → chunk-6YSYZTKW.js} +1 -1
- package/{chunk-MXRUAINC.js → chunk-6Z5V5T6Q.js} +3 -3
- package/{chunk-RRMAZ2BI.js → chunk-7NANRWL4.js} +1 -1
- package/{chunk-OFYHCA6W.js → chunk-AATZZAZE.js} +1 -1
- package/{chunk-CTGZO35O.js → chunk-AQTJUKN6.js} +1 -1
- package/{chunk-44F6KKUE.js → chunk-BRCOB2YF.js} +3 -3
- package/{chunk-A5MB5RIT.js → chunk-CCOXTK3I.js} +1 -1
- package/{chunk-WTUVMKSQ.js → chunk-EM7HELS5.js} +2 -2
- package/{chunk-WC6A2Q7S.js → chunk-EMBK4B7D.js} +4 -1
- package/{chunk-KUPDS66Q.js → chunk-EP34KKT6.js} +8 -8
- package/{chunk-7LLWEG6F.js → chunk-I44MDY73.js} +3 -3
- package/{chunk-QDT5T7MK.js → chunk-I4OPU5TK.js} +1 -1
- package/{chunk-K25DK52L.js → chunk-L55HWODG.js} +21 -223
- package/{chunk-DID5AVGT.js → chunk-LQNRUDVN.js} +11 -10
- package/{chunk-PQVOC2CZ.js → chunk-M2YBIBBS.js} +1 -1
- package/{chunk-J5H6SUOW.js → chunk-MOFAGINP.js} +2 -2
- package/{chunk-L6RB42ZR.js → chunk-OJL4DA6B.js} +3 -3
- package/{chunk-U5QTKTZE.js → chunk-P6GMCCAT.js} +1 -1
- package/{chunk-GH4MH73K.js → chunk-QMJG7UFL.js} +14 -10
- package/{chunk-M6NK74VP.js → chunk-S5XGT6GB.js} +1 -1
- package/{chunk-KUWT3C2P.js → chunk-T76D3OYX.js} +1 -1
- package/{chunk-DOBBRISY.js → chunk-TIPZHRUE.js} +9 -9
- package/{chunk-AAROOKLX.js → chunk-X2QRZXZH.js} +1 -1
- package/{chunk-WYYO2YOL.js → chunk-XGO2LIJZ.js} +1 -1
- package/{chunk-VVUSRF5D.js → chunk-XPV3S4HP.js} +3 -3
- package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
- package/{chunk-NOGH7HCP.js → chunk-YFIUVDQY.js} +1 -1
- package/{chunk-W247GBSQ.js → chunk-YU2THNST.js} +1 -1
- package/{chunk-OY5IJI2N.js → chunk-YUNJN43V.js} +23 -3
- package/{commandRegistry-DETYXF5I.js → commandRegistry-VN3VYRTY.js} +72 -61
- package/{contentThunks-6QBTPLWT.js → contentThunks-GLALFCSA.js} +3 -3
- package/{createAgentAutomationAction-TZVIJTZ7.js → createAgentAutomationAction-AJYCFU4M.js} +3 -3
- package/{createDialogAction-KTDAEA42.js → createDialogAction-RHUDYILB.js} +6 -5
- package/{createPageAction-4RASVDAU.js → createPageAction-QNBURBCT.js} +3 -3
- package/{dialogCommands-GY7LRERG.js → dialogCommands-FUZOZGN2.js} +11 -10
- package/{dialogSlice-J24APUGG.js → dialogSlice-OXWSQS6J.js} +2 -2
- package/{docCreateCommands-T7KII3WP.js → docCreateCommands-TKWA2BQD.js} +10 -9
- package/{docDeleteCommands-SQ26EFE6.js → docDeleteCommands-BEBGKH2B.js} +11 -10
- package/{docReadCommands-I6NA2ZKV.js → docReadCommands-5GWHRUJF.js} +10 -9
- package/{docStore-SPOGE7K3.js → docStore-RMY3R4VP.js} +1 -1
- package/{docUpdateCommands-IG43SZ6U.js → docUpdateCommands-WTKBMMUQ.js} +10 -9
- package/{handleSendMessageAction-I2IN64DS.js → handleSendMessageAction-D7XLCRJJ.js} +4 -3
- package/index.js +4 -4
- package/{machineCommands-U7VABJPW.js → machineCommands-DHJHXKIL.js} +22 -21
- package/{machineWsRunDispatch-ZNU6LRNG.js → machineWsRunDispatch-KP636B54.js} +22 -21
- package/package.json +1 -1
- package/{providerPresetApply-7XEHTODR.js → providerPresetApply-XTEXOH7X.js} +3 -3
- package/{providerRegistry-GNV4FFSA.js → providerRegistry-ADYDSLKR.js} +3 -3
- package/{readlineWorkspace-46KDFUHN.js → readlineWorkspace-5P24E57Z.js} +27 -26
- package/{runAgentClientLoop-CQWLWU4W.js → runAgentClientLoop-AXFKKSVY.js} +16 -15
- package/{spaceCommands-TSBC5UWP.js → spaceCommands-TRABD7YR.js} +10 -9
- package/{streamAgentChatTurn-XD5JEJXA.js → streamAgentChatTurn-RG7NWZWY.js} +17 -16
- package/{tools-5NAJJTFN.js → tools-GIXG5YIO.js} +13 -12
- package/{tuiSummaryLlmCaller-7KLLDP22.js → tuiSummaryLlmCaller-RVWN63CP.js} +2 -2
- package/{updateCommands-XYMGOKF4.js → updateCommands-4EHDLF5J.js} +1 -1
- package/{updateDialogTitleAction-IKZPJCRA.js → updateDialogTitleAction-JXZ2K54W.js} +3 -3
|
@@ -21,8 +21,8 @@ import {
|
|
|
21
21
|
resolveOpenAiCompatibleProviderConfig,
|
|
22
22
|
runLocalAgentTurn,
|
|
23
23
|
shouldCacheHybridRemoteRecord
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-QMJG7UFL.js";
|
|
25
|
+
import "./chunk-P6GMCCAT.js";
|
|
26
26
|
import "./chunk-ZNFJWEN4.js";
|
|
27
27
|
import {
|
|
28
28
|
buildPlatformChatCompletionRequest,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
readPlatformChatSseCompletion,
|
|
34
34
|
resolvePlatformChatProviderConfig,
|
|
35
35
|
shouldUsePlatformChatProvider
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-YFIUVDQY.js";
|
|
37
37
|
import "./chunk-GMZLP5DV.js";
|
|
38
38
|
import {
|
|
39
39
|
resolveAgentRuntimeConfigFromRecord
|
|
@@ -42,7 +42,7 @@ import "./chunk-5ZUL4CUO.js";
|
|
|
42
42
|
import "./chunk-CQ3WA2NE.js";
|
|
43
43
|
import "./chunk-2MBTWINN.js";
|
|
44
44
|
import "./chunk-N7J63Q6C.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-AQTJUKN6.js";
|
|
46
46
|
import "./chunk-PUOC4YRO.js";
|
|
47
47
|
import {
|
|
48
48
|
buildAgentRuntimeAgentLookupKeys,
|
|
@@ -50,10 +50,10 @@ import {
|
|
|
50
50
|
shouldFetchAgentRuntimeRecordRemotely
|
|
51
51
|
} from "./chunk-RGNEEJ3Y.js";
|
|
52
52
|
import "./chunk-H6A6X4EK.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-S5XGT6GB.js";
|
|
54
54
|
import {
|
|
55
55
|
pickAgentRuntimeInferenceOptions
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-27ONFIEY.js";
|
|
57
57
|
import "./chunk-RVX32KGQ.js";
|
|
58
58
|
import "./chunk-F64B2W3R.js";
|
|
59
59
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -74,7 +74,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
74
74
|
import "./chunk-ZWQUWF6W.js";
|
|
75
75
|
import "./chunk-DVINR3PL.js";
|
|
76
76
|
import "./chunk-2GRGFCF6.js";
|
|
77
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-XUWRURDF.js";
|
|
78
|
+
import "./chunk-5J3PYNUP.js";
|
|
78
79
|
import "./chunk-CYSYR67N.js";
|
|
79
80
|
import "./chunk-Y3PMXGLH.js";
|
|
80
81
|
import "./chunk-KX6YBIHG.js";
|
|
@@ -4,31 +4,31 @@ import {
|
|
|
4
4
|
pickDefined,
|
|
5
5
|
printCliError,
|
|
6
6
|
resolveCliContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-M2YBIBBS.js";
|
|
8
8
|
import {
|
|
9
9
|
hasFlag,
|
|
10
10
|
hasHelpArg
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-AATZZAZE.js";
|
|
12
|
+
import "./chunk-7NANRWL4.js";
|
|
13
13
|
import "./chunk-OTGFTBLI.js";
|
|
14
14
|
import "./chunk-SV5IJK6K.js";
|
|
15
15
|
import "./chunk-VF4K2QE6.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-QMJG7UFL.js";
|
|
17
|
+
import "./chunk-P6GMCCAT.js";
|
|
18
18
|
import "./chunk-ZNFJWEN4.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-YFIUVDQY.js";
|
|
20
20
|
import "./chunk-GMZLP5DV.js";
|
|
21
21
|
import "./chunk-I4A26N52.js";
|
|
22
22
|
import "./chunk-5ZUL4CUO.js";
|
|
23
23
|
import "./chunk-CQ3WA2NE.js";
|
|
24
24
|
import "./chunk-2MBTWINN.js";
|
|
25
25
|
import "./chunk-N7J63Q6C.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-AQTJUKN6.js";
|
|
27
27
|
import "./chunk-PUOC4YRO.js";
|
|
28
28
|
import "./chunk-RGNEEJ3Y.js";
|
|
29
29
|
import "./chunk-H6A6X4EK.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-S5XGT6GB.js";
|
|
31
|
+
import "./chunk-27ONFIEY.js";
|
|
32
32
|
import "./chunk-RVX32KGQ.js";
|
|
33
33
|
import "./chunk-F64B2W3R.js";
|
|
34
34
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -44,7 +44,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
44
44
|
import "./chunk-ZWQUWF6W.js";
|
|
45
45
|
import "./chunk-DVINR3PL.js";
|
|
46
46
|
import "./chunk-2GRGFCF6.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-XUWRURDF.js";
|
|
48
|
+
import "./chunk-5J3PYNUP.js";
|
|
48
49
|
import {
|
|
49
50
|
readOption
|
|
50
51
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -5,31 +5,31 @@ import {
|
|
|
5
5
|
pickDefined,
|
|
6
6
|
printCliError,
|
|
7
7
|
resolveCliContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-M2YBIBBS.js";
|
|
9
9
|
import {
|
|
10
10
|
hasFlag,
|
|
11
11
|
hasHelpArg
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-AATZZAZE.js";
|
|
13
|
+
import "./chunk-7NANRWL4.js";
|
|
14
14
|
import "./chunk-OTGFTBLI.js";
|
|
15
15
|
import "./chunk-SV5IJK6K.js";
|
|
16
16
|
import "./chunk-VF4K2QE6.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QMJG7UFL.js";
|
|
18
|
+
import "./chunk-P6GMCCAT.js";
|
|
19
19
|
import "./chunk-ZNFJWEN4.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-YFIUVDQY.js";
|
|
21
21
|
import "./chunk-GMZLP5DV.js";
|
|
22
22
|
import "./chunk-I4A26N52.js";
|
|
23
23
|
import "./chunk-5ZUL4CUO.js";
|
|
24
24
|
import "./chunk-CQ3WA2NE.js";
|
|
25
25
|
import "./chunk-2MBTWINN.js";
|
|
26
26
|
import "./chunk-N7J63Q6C.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-AQTJUKN6.js";
|
|
28
28
|
import "./chunk-PUOC4YRO.js";
|
|
29
29
|
import "./chunk-RGNEEJ3Y.js";
|
|
30
30
|
import "./chunk-H6A6X4EK.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-S5XGT6GB.js";
|
|
32
|
+
import "./chunk-27ONFIEY.js";
|
|
33
33
|
import "./chunk-RVX32KGQ.js";
|
|
34
34
|
import "./chunk-F64B2W3R.js";
|
|
35
35
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -45,7 +45,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
45
45
|
import "./chunk-ZWQUWF6W.js";
|
|
46
46
|
import "./chunk-DVINR3PL.js";
|
|
47
47
|
import "./chunk-2GRGFCF6.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-XUWRURDF.js";
|
|
49
|
+
import "./chunk-5J3PYNUP.js";
|
|
49
50
|
import {
|
|
50
51
|
readOption
|
|
51
52
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -4,31 +4,31 @@ import {
|
|
|
4
4
|
outputResult,
|
|
5
5
|
printCliError,
|
|
6
6
|
resolveCliContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-M2YBIBBS.js";
|
|
8
8
|
import {
|
|
9
9
|
hasFlag,
|
|
10
10
|
hasHelpArg
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-AATZZAZE.js";
|
|
12
|
+
import "./chunk-7NANRWL4.js";
|
|
13
13
|
import "./chunk-OTGFTBLI.js";
|
|
14
14
|
import "./chunk-SV5IJK6K.js";
|
|
15
15
|
import "./chunk-VF4K2QE6.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-QMJG7UFL.js";
|
|
17
|
+
import "./chunk-P6GMCCAT.js";
|
|
18
18
|
import "./chunk-ZNFJWEN4.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-YFIUVDQY.js";
|
|
20
20
|
import "./chunk-GMZLP5DV.js";
|
|
21
21
|
import "./chunk-I4A26N52.js";
|
|
22
22
|
import "./chunk-5ZUL4CUO.js";
|
|
23
23
|
import "./chunk-CQ3WA2NE.js";
|
|
24
24
|
import "./chunk-2MBTWINN.js";
|
|
25
25
|
import "./chunk-N7J63Q6C.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-AQTJUKN6.js";
|
|
27
27
|
import "./chunk-PUOC4YRO.js";
|
|
28
28
|
import "./chunk-RGNEEJ3Y.js";
|
|
29
29
|
import "./chunk-H6A6X4EK.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-S5XGT6GB.js";
|
|
31
|
+
import "./chunk-27ONFIEY.js";
|
|
32
32
|
import "./chunk-RVX32KGQ.js";
|
|
33
33
|
import "./chunk-F64B2W3R.js";
|
|
34
34
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -44,7 +44,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
44
44
|
import "./chunk-ZWQUWF6W.js";
|
|
45
45
|
import "./chunk-DVINR3PL.js";
|
|
46
46
|
import "./chunk-2GRGFCF6.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-XUWRURDF.js";
|
|
48
|
+
import "./chunk-5J3PYNUP.js";
|
|
48
49
|
import {
|
|
49
50
|
readOption
|
|
50
51
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -5,31 +5,31 @@ import {
|
|
|
5
5
|
pickDefined,
|
|
6
6
|
printCliError,
|
|
7
7
|
resolveCliContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-M2YBIBBS.js";
|
|
9
9
|
import {
|
|
10
10
|
hasFlag,
|
|
11
11
|
hasHelpArg
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-AATZZAZE.js";
|
|
13
|
+
import "./chunk-7NANRWL4.js";
|
|
14
14
|
import "./chunk-OTGFTBLI.js";
|
|
15
15
|
import "./chunk-SV5IJK6K.js";
|
|
16
16
|
import "./chunk-VF4K2QE6.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QMJG7UFL.js";
|
|
18
|
+
import "./chunk-P6GMCCAT.js";
|
|
19
19
|
import "./chunk-ZNFJWEN4.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-YFIUVDQY.js";
|
|
21
21
|
import "./chunk-GMZLP5DV.js";
|
|
22
22
|
import "./chunk-I4A26N52.js";
|
|
23
23
|
import "./chunk-5ZUL4CUO.js";
|
|
24
24
|
import "./chunk-CQ3WA2NE.js";
|
|
25
25
|
import "./chunk-2MBTWINN.js";
|
|
26
26
|
import "./chunk-N7J63Q6C.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-AQTJUKN6.js";
|
|
28
28
|
import "./chunk-PUOC4YRO.js";
|
|
29
29
|
import "./chunk-RGNEEJ3Y.js";
|
|
30
30
|
import "./chunk-H6A6X4EK.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-S5XGT6GB.js";
|
|
32
|
+
import "./chunk-27ONFIEY.js";
|
|
33
33
|
import "./chunk-RVX32KGQ.js";
|
|
34
34
|
import "./chunk-F64B2W3R.js";
|
|
35
35
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -45,7 +45,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
45
45
|
import "./chunk-ZWQUWF6W.js";
|
|
46
46
|
import "./chunk-DVINR3PL.js";
|
|
47
47
|
import "./chunk-2GRGFCF6.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-XUWRURDF.js";
|
|
49
|
+
import "./chunk-5J3PYNUP.js";
|
|
49
50
|
import {
|
|
50
51
|
readOption
|
|
51
52
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -5,31 +5,31 @@ import {
|
|
|
5
5
|
pickDefined,
|
|
6
6
|
printCliError,
|
|
7
7
|
resolveCliContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-M2YBIBBS.js";
|
|
9
9
|
import {
|
|
10
10
|
hasFlag,
|
|
11
11
|
hasHelpArg
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-AATZZAZE.js";
|
|
13
|
+
import "./chunk-7NANRWL4.js";
|
|
14
14
|
import "./chunk-OTGFTBLI.js";
|
|
15
15
|
import "./chunk-SV5IJK6K.js";
|
|
16
16
|
import "./chunk-VF4K2QE6.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QMJG7UFL.js";
|
|
18
|
+
import "./chunk-P6GMCCAT.js";
|
|
19
19
|
import "./chunk-ZNFJWEN4.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-YFIUVDQY.js";
|
|
21
21
|
import "./chunk-GMZLP5DV.js";
|
|
22
22
|
import "./chunk-I4A26N52.js";
|
|
23
23
|
import "./chunk-5ZUL4CUO.js";
|
|
24
24
|
import "./chunk-CQ3WA2NE.js";
|
|
25
25
|
import "./chunk-2MBTWINN.js";
|
|
26
26
|
import "./chunk-N7J63Q6C.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-AQTJUKN6.js";
|
|
28
28
|
import "./chunk-PUOC4YRO.js";
|
|
29
29
|
import "./chunk-RGNEEJ3Y.js";
|
|
30
30
|
import "./chunk-H6A6X4EK.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-S5XGT6GB.js";
|
|
32
|
+
import "./chunk-27ONFIEY.js";
|
|
33
33
|
import "./chunk-RVX32KGQ.js";
|
|
34
34
|
import "./chunk-F64B2W3R.js";
|
|
35
35
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -45,7 +45,8 @@ import "./chunk-UAD2WT54.js";
|
|
|
45
45
|
import "./chunk-ZWQUWF6W.js";
|
|
46
46
|
import "./chunk-DVINR3PL.js";
|
|
47
47
|
import "./chunk-2GRGFCF6.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-XUWRURDF.js";
|
|
49
|
+
import "./chunk-5J3PYNUP.js";
|
|
49
50
|
import {
|
|
50
51
|
readOption
|
|
51
52
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
parseFlagWithOptionalValue,
|
|
4
4
|
runCloudflareOAuthLogin,
|
|
5
5
|
upsertEnvVariable
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-X2QRZXZH.js";
|
|
7
7
|
import {
|
|
8
8
|
ANTHROPIC_OAUTH_AUTHORIZE_URL,
|
|
9
9
|
ANTHROPIC_OAUTH_CALLBACK_PORT,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
startCallbackServer,
|
|
46
46
|
validateXAIEndpoint,
|
|
47
47
|
xaiOAuthDiscovery
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-I4OPU5TK.js";
|
|
49
49
|
import {
|
|
50
50
|
defaultOpenBrowser
|
|
51
51
|
} from "./chunk-VPFEPRME.js";
|
|
@@ -62,11 +62,11 @@ import {
|
|
|
62
62
|
detectLocalDevinCredentials,
|
|
63
63
|
extractDevinToken,
|
|
64
64
|
fetchAntigravityCloudCodeCompletion
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-P6GMCCAT.js";
|
|
66
66
|
import "./chunk-GMZLP5DV.js";
|
|
67
67
|
import "./chunk-5ZUL4CUO.js";
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-S5XGT6GB.js";
|
|
69
|
+
import "./chunk-27ONFIEY.js";
|
|
70
70
|
import "./chunk-7KVZ5LDQ.js";
|
|
71
71
|
import {
|
|
72
72
|
toErrorMessage
|
|
@@ -7,11 +7,12 @@ import {
|
|
|
7
7
|
resolveBuiltinSkillEntry,
|
|
8
8
|
resolveBuiltinSkillPage,
|
|
9
9
|
resolveBuiltinSkillSlug
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-MOFAGINP.js";
|
|
11
|
+
import "./chunk-EMBK4B7D.js";
|
|
12
12
|
import "./chunk-AUDNYVRC.js";
|
|
13
13
|
import "./chunk-KHCLMKZZ.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-XUWRURDF.js";
|
|
15
|
+
import "./chunk-5J3PYNUP.js";
|
|
15
16
|
import "./chunk-QDSINZM3.js";
|
|
16
17
|
import "./chunk-3AH7LNUB.js";
|
|
17
18
|
import "./chunk-WWC7I6TA.js";
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
} from "./chunk-YPREESF4.js";
|
|
5
5
|
import {
|
|
6
6
|
handleSendMessage
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EP34KKT6.js";
|
|
8
8
|
import "./chunk-MC4XLIJ7.js";
|
|
9
9
|
import "./chunk-YYLHWIW6.js";
|
|
10
10
|
import "./chunk-6O4IK4V2.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-6Z5V5T6Q.js";
|
|
12
12
|
import "./chunk-D76D3RTR.js";
|
|
13
13
|
import "./chunk-5RGU3J7P.js";
|
|
14
14
|
import "./chunk-M76ECQRD.js";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NOLO_CHROME_CONNECTOR_EXTENSION_ID,
|
|
3
3
|
NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION,
|
|
4
|
+
NOLO_CONNECTOR_EXTENSION_IDS,
|
|
5
|
+
NOLO_FIREFOX_CONNECTOR_EXTENSION_ID,
|
|
4
6
|
REQUIRED_CHROME_CONNECTOR_FEATURES,
|
|
5
7
|
createChromeConnectorClient
|
|
6
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YUNJN43V.js";
|
|
7
9
|
import {
|
|
8
10
|
toErrorMessage
|
|
9
11
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -144,6 +146,21 @@ var CLI_CONNECTOR_ROOT_CANDIDATES = [
|
|
|
144
146
|
var FULL_SUPPORT_CHROME_FEATURES = [
|
|
145
147
|
...new Set(Object.values(REQUIRED_CHROME_CONNECTOR_FEATURES).flat())
|
|
146
148
|
].sort();
|
|
149
|
+
var FIREFOX_UNAVAILABLE_FEATURES = ["browser_debug", "file_upload"];
|
|
150
|
+
function resolveConnectorBrowser(extensionId) {
|
|
151
|
+
if (!extensionId) return null;
|
|
152
|
+
if (extensionId === NOLO_FIREFOX_CONNECTOR_EXTENSION_ID) return "firefox";
|
|
153
|
+
if (NOLO_CONNECTOR_EXTENSION_IDS.includes(extensionId)) return "chrome";
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
function expectedFeaturesForBrowser(browser) {
|
|
157
|
+
return browser === "firefox" ? FULL_SUPPORT_CHROME_FEATURES.filter(
|
|
158
|
+
(feature) => !FIREFOX_UNAVAILABLE_FEATURES.includes(feature)
|
|
159
|
+
) : FULL_SUPPORT_CHROME_FEATURES;
|
|
160
|
+
}
|
|
161
|
+
function browserLabel(browser) {
|
|
162
|
+
return browser === "firefox" ? "Firefox" : browser === "chrome" ? "Chrome" : "browser";
|
|
163
|
+
}
|
|
147
164
|
function pickCliConnectorRoot(candidates) {
|
|
148
165
|
for (const candidate of candidates) {
|
|
149
166
|
if (existsSync2(resolve2(candidate, "extension", "manifest.json"))) return candidate;
|
|
@@ -258,9 +275,13 @@ async function probeConnectorRpc(requestChrome) {
|
|
|
258
275
|
}
|
|
259
276
|
}
|
|
260
277
|
function resolveStatusNextStep(report) {
|
|
278
|
+
const targetBrowser = report.rpc.browser ?? report.nativeHost.browser;
|
|
279
|
+
const installCmd = targetBrowser === "firefox" ? "nolo chrome install --browser firefox" : "nolo chrome install";
|
|
280
|
+
const connectedLabel = browserLabel(targetBrowser);
|
|
281
|
+
const browserText = connectedLabel === "browser" ? "the browser" : connectedLabel;
|
|
261
282
|
if (!report.connectorRoot) {
|
|
262
283
|
if (report.rpc.online && report.rpc.protocolVersion === report.rpc.expectedProtocolVersion) {
|
|
263
|
-
return "
|
|
284
|
+
return "The Nolo Browser Connector is online, but this CLI cannot see a connector checkout, so `nolo chrome install` / manifest checks are unavailable here. Set NOLO_CHROME_CONNECTOR_ROOT (or run the CLI from a repo checkout) to enable them.";
|
|
264
285
|
}
|
|
265
286
|
return "Run the CLI from a repo checkout that contains packages/desktop-chrome-connector, or set NOLO_CHROME_CONNECTOR_ROOT to one, then rerun `nolo chrome status`.";
|
|
266
287
|
}
|
|
@@ -268,20 +289,20 @@ function resolveStatusNextStep(report) {
|
|
|
268
289
|
return `This platform has no supported native messaging host install (Chrome looks the host up through a registry value on Windows), so non-interactive install is not available: ${report.nativeHost.platformError ?? "unsupported platform"}`;
|
|
269
290
|
}
|
|
270
291
|
if (!report.nativeHost.installed || !report.token.present) {
|
|
271
|
-
return
|
|
292
|
+
return installCmd;
|
|
272
293
|
}
|
|
273
294
|
if (!report.nativeHost.wrapperPathMatches || !report.nativeHost.allowedOriginMatches) {
|
|
274
295
|
const installedWrapperPath = report.nativeHost.installedWrapperPath;
|
|
275
296
|
if (!report.nativeHost.wrapperPathMatches && installedWrapperPath && installedWrapperPath !== report.nativeHost.wrapperPath && existsSync2(installedWrapperPath)) {
|
|
276
|
-
return `Native host is installed for a different checkout (${installedWrapperPath}); this CLI is looking at ${report.connectorRoot}. Run \`nolo chrome status\` from the checkout that installed it, or run \`
|
|
297
|
+
return `Native host is installed for a different checkout (${installedWrapperPath}); this CLI is looking at ${report.connectorRoot}. Run \`nolo chrome status\` from the checkout that installed it, or run \`${installCmd}\` from here only if ${browserText} should switch to this one.`;
|
|
277
298
|
}
|
|
278
|
-
return
|
|
299
|
+
return `${installCmd} (the installed manifest does not point at this checkout's wrapper / extension id, which ${browserText} silently ignores)`;
|
|
279
300
|
}
|
|
280
301
|
if (!report.rpc.online) {
|
|
281
|
-
return `Load the unpacked extension from ${report.extension.path} in chrome://extensions (
|
|
302
|
+
return `Load the unpacked extension from ${report.extension.path} in chrome://extensions (Chrome) or about:debugging#/runtime/this-firefox (Firefox), or install the Nolo Browser Connector from https://nolo.chat/downloads, then rerun \`nolo chrome status\`.`;
|
|
282
303
|
}
|
|
283
|
-
if (report.rpc.extensionId && report.rpc.
|
|
284
|
-
return `The connected extension (${report.rpc.extensionId}) is not
|
|
304
|
+
if (report.rpc.extensionId && report.rpc.browser === null) {
|
|
305
|
+
return `The connected extension (${report.rpc.extensionId}) is not a recognized Nolo Browser Connector build; reload it (\`nolo chrome reload\`) or remove the other copy, then rerun \`nolo chrome status\`.`;
|
|
285
306
|
}
|
|
286
307
|
if (report.rpc.protocolVersion !== report.rpc.expectedProtocolVersion) {
|
|
287
308
|
return `nolo chrome reload (the running extension does not speak protocol ${report.rpc.expectedProtocolVersion}; a reload restarts the worker with the files on disk)`;
|
|
@@ -289,7 +310,7 @@ function resolveStatusNextStep(report) {
|
|
|
289
310
|
if (report.rpc.missingFeatures.length > 0) {
|
|
290
311
|
return `nolo chrome reload (the running extension is missing ${report.rpc.missingFeatures.join(", ")}); if that persists, the checkout's extension is older than the CLI expects.`;
|
|
291
312
|
}
|
|
292
|
-
return
|
|
313
|
+
return `The Nolo Browser Connector is online (${connectedLabel}): connector tools execute against this ${connectedLabel} profile.`;
|
|
293
314
|
}
|
|
294
315
|
async function buildChromeConnectorStatus(args = {}) {
|
|
295
316
|
const env = args.env ?? process.env;
|
|
@@ -320,7 +341,8 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
320
341
|
wrapperPath: null,
|
|
321
342
|
installedWrapperPath: null,
|
|
322
343
|
wrapperPathMatches: false,
|
|
323
|
-
allowedOriginMatches: false
|
|
344
|
+
allowedOriginMatches: false,
|
|
345
|
+
browser: null
|
|
324
346
|
},
|
|
325
347
|
token: { path: null, present: false },
|
|
326
348
|
rpc: {
|
|
@@ -328,6 +350,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
328
350
|
extensionId: null,
|
|
329
351
|
protocolVersion: null,
|
|
330
352
|
features: [],
|
|
353
|
+
browser: null,
|
|
331
354
|
missingFeatures: [...FULL_SUPPORT_CHROME_FEATURES],
|
|
332
355
|
expectedProtocolVersion: NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION
|
|
333
356
|
},
|
|
@@ -339,19 +362,48 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
339
362
|
report.rpc.extensionId = probe.extensionId;
|
|
340
363
|
report.rpc.protocolVersion = probe.protocolVersion;
|
|
341
364
|
report.rpc.features = probe.features;
|
|
342
|
-
report.rpc.
|
|
365
|
+
report.rpc.browser = probe.online ? resolveConnectorBrowser(probe.extensionId) ?? (probe.extensionId === expectedId ? "chrome" : null) : null;
|
|
366
|
+
report.rpc.missingFeatures = expectedFeaturesForBrowser(report.rpc.browser).filter(
|
|
343
367
|
(feature) => !probe.features.includes(feature)
|
|
344
368
|
);
|
|
345
369
|
if (!probe.online) report.rpc.error = probe.error;
|
|
346
370
|
if (!connectorRoot) {
|
|
347
371
|
if (rootError) report.connectorRootError = rootError;
|
|
348
|
-
report.
|
|
372
|
+
report.nativeHost.browser = report.rpc.browser;
|
|
373
|
+
report.ok = report.rpc.online && report.rpc.browser !== null && probe.protocolVersion === NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION && report.rpc.missingFeatures.length === 0;
|
|
349
374
|
report.nextStep = resolveStatusNextStep(report);
|
|
350
375
|
return report;
|
|
351
376
|
}
|
|
377
|
+
let manifestBrowser = report.rpc.browser === "firefox" ? "firefox" : "chrome";
|
|
378
|
+
if (!report.rpc.browser) {
|
|
379
|
+
try {
|
|
380
|
+
const chromeManifestPath = resolveNativeHostInstallPaths({
|
|
381
|
+
home,
|
|
382
|
+
connectorRoot,
|
|
383
|
+
platform,
|
|
384
|
+
browser: "chrome"
|
|
385
|
+
}).nativeManifestPath;
|
|
386
|
+
const firefoxManifestPath = resolveNativeHostInstallPaths({
|
|
387
|
+
home,
|
|
388
|
+
connectorRoot,
|
|
389
|
+
platform,
|
|
390
|
+
browser: "firefox"
|
|
391
|
+
}).nativeManifestPath;
|
|
392
|
+
if (!existsSync2(chromeManifestPath) && existsSync2(firefoxManifestPath)) {
|
|
393
|
+
manifestBrowser = "firefox";
|
|
394
|
+
}
|
|
395
|
+
} catch {
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
report.nativeHost.browser = manifestBrowser;
|
|
352
399
|
let paths = null;
|
|
353
400
|
try {
|
|
354
|
-
paths = resolveNativeHostInstallPaths({
|
|
401
|
+
paths = resolveNativeHostInstallPaths({
|
|
402
|
+
home,
|
|
403
|
+
connectorRoot,
|
|
404
|
+
platform,
|
|
405
|
+
browser: manifestBrowser
|
|
406
|
+
});
|
|
355
407
|
} catch (error) {
|
|
356
408
|
report.nativeHost.supported = false;
|
|
357
409
|
report.nativeHost.platformError = toErrorMessage(error);
|
|
@@ -365,8 +417,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
365
417
|
report.nativeHost.installed = installedManifest !== null;
|
|
366
418
|
report.nativeHost.installedWrapperPath = typeof installedManifest?.path === "string" ? installedManifest.path : null;
|
|
367
419
|
report.nativeHost.wrapperPathMatches = report.nativeHost.installedWrapperPath === paths.wrapperPath;
|
|
368
|
-
|
|
369
|
-
report.nativeHost.allowedOriginMatches = Array.isArray(installedManifest?.allowed_origins) && installedManifest.allowed_origins.includes(expectedOrigin);
|
|
420
|
+
report.nativeHost.allowedOriginMatches = manifestBrowser === "firefox" ? Array.isArray(installedManifest?.allowed_extensions) && installedManifest.allowed_extensions.includes(NOLO_FIREFOX_CONNECTOR_EXTENSION_ID) : Array.isArray(installedManifest?.allowed_origins) && installedManifest.allowed_origins.includes(`chrome-extension://${expectedId}/`);
|
|
370
421
|
if (existsSync2(paths.tokenPath)) {
|
|
371
422
|
try {
|
|
372
423
|
report.token.present = readFileSync2(paths.tokenPath, "utf8").trim().length > 0;
|
|
@@ -374,7 +425,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
374
425
|
report.token.present = false;
|
|
375
426
|
}
|
|
376
427
|
}
|
|
377
|
-
report.ok = report.nativeHost.supported && report.nativeHost.installed && report.nativeHost.wrapperPathMatches && report.nativeHost.allowedOriginMatches && report.token.present && probe.online &&
|
|
428
|
+
report.ok = report.nativeHost.supported && report.nativeHost.installed && report.nativeHost.wrapperPathMatches && report.nativeHost.allowedOriginMatches && report.token.present && probe.online && report.rpc.browser !== null && probe.protocolVersion === NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION && report.rpc.missingFeatures.length === 0;
|
|
378
429
|
report.nextStep = resolveStatusNextStep(report);
|
|
379
430
|
return report;
|
|
380
431
|
}
|
|
@@ -382,7 +433,7 @@ function yesNo(value) {
|
|
|
382
433
|
return value ? "ok" : "mismatch";
|
|
383
434
|
}
|
|
384
435
|
function formatChromeConnectorStatus(report) {
|
|
385
|
-
const lines = ["Nolo
|
|
436
|
+
const lines = ["Nolo Browser Connector"];
|
|
386
437
|
lines.push(
|
|
387
438
|
` connector source : ${report.connectorRoot ?? "(not found)"}`
|
|
388
439
|
);
|
|
@@ -402,7 +453,7 @@ function formatChromeConnectorStatus(report) {
|
|
|
402
453
|
const rpc = report.rpc;
|
|
403
454
|
if (rpc.online) {
|
|
404
455
|
lines.push(
|
|
405
|
-
` RPC : online extension ${rpc.extensionId ?? "unknown"} protocolVersion ${rpc.protocolVersion ?? "unknown"} features ${rpc.features.length > 0 ? rpc.features.join(", ") : "(none)"}`
|
|
456
|
+
` RPC : online browser ${rpc.browser ?? "unrecognized"} extension ${rpc.extensionId ?? "unknown"} protocolVersion ${rpc.protocolVersion ?? "unknown"} features ${rpc.features.length > 0 ? rpc.features.join(", ") : "(none)"}`
|
|
406
457
|
);
|
|
407
458
|
} else {
|
|
408
459
|
lines.push(
|
|
@@ -431,9 +482,25 @@ async function runChromeStatusCommand(args, deps = {}) {
|
|
|
431
482
|
}
|
|
432
483
|
return report.ok ? 0 : 1;
|
|
433
484
|
}
|
|
485
|
+
function readBrowserOption(args) {
|
|
486
|
+
const equalsForm = args.find((arg) => arg.startsWith("--browser="));
|
|
487
|
+
const index = args.indexOf("--browser");
|
|
488
|
+
const raw = equalsForm !== void 0 ? equalsForm.slice("--browser=".length) : index >= 0 ? args[index + 1] : void 0;
|
|
489
|
+
if (raw === void 0) return "chrome";
|
|
490
|
+
const value = raw.trim();
|
|
491
|
+
if (value === "chrome" || value === "firefox") return value;
|
|
492
|
+
return null;
|
|
493
|
+
}
|
|
434
494
|
async function runChromeInstallCommand(args, deps = {}) {
|
|
435
495
|
const env = deps.env ?? process.env;
|
|
436
496
|
const output = deps.output ?? process.stdout;
|
|
497
|
+
const browser = readBrowserOption(args);
|
|
498
|
+
if (browser === null) {
|
|
499
|
+
output.write(
|
|
500
|
+
'[nolo] Chrome native host install failed: --browser must be "chrome" or "firefox".\n'
|
|
501
|
+
);
|
|
502
|
+
return 1;
|
|
503
|
+
}
|
|
437
504
|
const install = deps.installNativeHost ?? installNativeHostManifest;
|
|
438
505
|
let connectorRoot;
|
|
439
506
|
try {
|
|
@@ -457,6 +524,7 @@ async function runChromeInstallCommand(args, deps = {}) {
|
|
|
457
524
|
result = install({
|
|
458
525
|
home: deps.home ?? env.HOME ?? "",
|
|
459
526
|
connectorRoot,
|
|
527
|
+
browser,
|
|
460
528
|
...deps.platform ? { platform: deps.platform } : {},
|
|
461
529
|
...deps.nodePath ? { nodePath: deps.nodePath } : {}
|
|
462
530
|
});
|
|
@@ -471,12 +539,12 @@ async function runChromeInstallCommand(args, deps = {}) {
|
|
|
471
539
|
} else {
|
|
472
540
|
output.write(
|
|
473
541
|
[
|
|
474
|
-
|
|
542
|
+
`Nolo Browser Connector native host installed (${browser}).`,
|
|
475
543
|
` manifest : ${result.nativeManifestPath}`,
|
|
476
544
|
` wrapper : ${result.wrapperPath} -> ${result.nodePath}`,
|
|
477
545
|
` token : ${result.tokenPath} (an existing token is kept, so reruns are idempotent)`,
|
|
478
546
|
` extension: ${result.extensionId}`,
|
|
479
|
-
`Next step: load the unpacked extension from ${resolve2(connectorRoot, "extension")} in chrome://extensions (Developer mode), or install the Nolo Browser Connector from https://nolo.chat/downloads (Chrome or Firefox), then run
|
|
547
|
+
`Next step: load the unpacked extension from ${resolve2(connectorRoot, "extension")} in ` + (browser === "firefox" ? "about:debugging#/runtime/this-firefox, or install the signed Nolo Browser Connector add-on from https://nolo.chat/downloads, then run `nolo chrome status`." : "chrome://extensions (Developer mode), or install the Nolo Browser Connector from https://nolo.chat/downloads (Chrome or Firefox), then run `nolo chrome status`."),
|
|
480
548
|
""
|
|
481
549
|
].join("\n")
|
|
482
550
|
);
|
|
@@ -513,11 +581,14 @@ The connector service worker restarts within ~1s; verify with \`nolo chrome stat
|
|
|
513
581
|
}
|
|
514
582
|
export {
|
|
515
583
|
CLI_CONNECTOR_ROOT_CANDIDATES,
|
|
584
|
+
FIREFOX_UNAVAILABLE_FEATURES,
|
|
516
585
|
FULL_SUPPORT_CHROME_FEATURES,
|
|
517
586
|
buildChromeConnectorStatus,
|
|
518
587
|
detectWorktreeCheckout,
|
|
588
|
+
expectedFeaturesForBrowser,
|
|
519
589
|
formatChromeConnectorStatus,
|
|
520
590
|
resolveCliConnectorRoot,
|
|
591
|
+
resolveConnectorBrowser,
|
|
521
592
|
runChromeInstallCommand,
|
|
522
593
|
runChromeReloadCommand,
|
|
523
594
|
runChromeStatusCommand
|