nolo-cli 0.97.0-alpha.2 → 0.97.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-G2MRKK2K.js → _executeModel-DYHTQJZC.js} +68 -63
- package/{action-YVYQEAAV.js → action-GI44T4DR.js} +10 -10
- package/{addContentAction-O7R66HEX.js → addContentAction-B2DRF7P6.js} +9 -9
- package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-T3I7IXPK.js} +15 -17
- package/{agentDeleteCommand-4427YKQF.js → agentDeleteCommand-LLNNP3AM.js} +47 -43
- package/{agentEmailCommands-RNBKKO7Q.js → agentEmailCommands-EO3H2LDW.js} +90 -82
- package/agentListCommands-J3MWAZWO.js +741 -0
- package/{agentMachineCommands-FOFX5S2Q.js → agentMachineCommands-V65VOQNK.js} +42 -38
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-EMZCM6VA.js} +1 -1
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-HF4A42D4.js} +1 -1
- package/agentRecordCommands-VY35OMX3.js +136 -0
- package/{agentRunCommand-2W3Q3A7M.js → agentRunCommand-CSEX4QIH.js} +90 -80
- package/{agentRunControl-WCTKX5VL.js → agentRunControl-5T64LM2M.js} +2 -2
- package/{agentRuntimeLocal-IW3IM5P6.js → agentRuntimeLocal-AY6YNUAL.js} +44 -36
- package/{agentSlice-SK47GTN7.js → agentSlice-FOZUXW7X.js} +11 -11
- package/{appDeleteCommands-ZXLXNRHF.js → appDeleteCommands-QTTL3QF3.js} +42 -38
- package/{appDeployCommands-PWB4YERK.js → appDeployCommands-43LJECGV.js} +42 -38
- package/{appDeployStatusCommands-2EZKZP7Y.js → appDeployStatusCommands-L5BKOLYW.js} +42 -38
- package/{appGetCommands-JNUKOWHO.js → appGetCommands-HOFZKOPC.js} +42 -38
- package/{appListCommands-6X3H67SS.js → appListCommands-I7C3SJCE.js} +42 -38
- package/{authCommand-F4EFRRX6.js → authCommand-2YPMMIJN.js} +117 -23
- package/{authCommands-RGOGCPP6.js → authCommands-FFDS4FVX.js} +7 -5
- package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-CALVIJTX.js} +6 -5
- package/{chatQueueReduxAdapter-ZJ555AT2.js → chatQueueReduxAdapter-NMEZRYC2.js} +30 -29
- package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
- package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
- package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
- package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
- package/{chunk-YQTQQX2H.js → chunk-2UV22D2F.js} +1 -1
- package/{chunk-7D6Z6AA4.js → chunk-3BFMH6GE.js} +6 -7
- package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
- package/{chunk-QIAVMDHY.js → chunk-3LX6YE3P.js} +4 -4
- package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
- package/chunk-4LCOCOR5.js +50 -0
- package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
- package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
- package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
- package/chunk-5J3PYNUP.js +255 -0
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
- package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
- package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
- package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
- package/{chunk-IIVGDG4I.js → chunk-6PHKBY2Q.js} +10 -4
- package/{chunk-ASQYTZTR.js → chunk-6ZWMH6TJ.js} +69 -36
- package/{chunk-ABQYVJBJ.js → chunk-7CHC4W22.js} +1 -1
- package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
- package/{chunk-SDTTBMBU.js → chunk-7WCQEMPB.js} +888 -1079
- package/{chunk-BLJWCTRL.js → chunk-AOPCEXTB.js} +1 -1
- package/{chunk-3SK4LEIH.js → chunk-AQ3I6DZE.js} +853 -209
- package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
- package/{chunk-RG6JBBX5.js → chunk-AWF3WO5R.js} +166 -13
- package/{chunk-GPCZ7UXG.js → chunk-AZRHIN5B.js} +1 -1
- package/chunk-BMQ2MJUK.js +153 -0
- package/{chunk-B4ZH7KVO.js → chunk-C3VLSD4K.js} +236 -36
- package/{chunk-4EZHSKTB.js → chunk-C53ZG23R.js} +2 -2
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-HJUYAD4A.js → chunk-CPUFH46E.js} +8 -8
- package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
- package/{chunk-BP4XNZRM.js → chunk-CU3QB4HW.js} +3 -3
- package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
- package/{chunk-KQ4ONNQD.js → chunk-DAWDCRIG.js} +82 -8
- package/{chunk-VLTIYV3X.js → chunk-DCLMZ5TX.js} +4 -4
- package/{chunk-UKZDAFYT.js → chunk-DSSTTEKI.js} +6 -10
- package/{chunk-L7I247DF.js → chunk-EKS2APRJ.js} +21 -5
- package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
- package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
- package/chunk-FD5K6MPI.js +7808 -0
- package/chunk-GMZLP5DV.js +82 -0
- package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
- package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
- package/{chunk-OIMN34NA.js → chunk-HKTIX4ZE.js} +23 -76
- package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
- package/{chunk-H62HCIUP.js → chunk-HYZIYH2H.js} +11 -10
- package/{chunk-3VNWWVKB.js → chunk-I3QNET24.js} +30 -17
- package/{chunk-WV42OMV7.js → chunk-IAESIMK7.js} +4 -4
- package/{chunk-O35EJJVP.js → chunk-JJ7P5CIY.js} +56 -34
- package/{chunk-OZPMVBJI.js → chunk-JZ5II5UV.js} +15 -20
- package/{chunk-JRQFUXY7.js → chunk-KCDUTE5V.js} +96 -19
- package/{chunk-QLNJRTKI.js → chunk-KHVJXNRY.js} +100 -100
- package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
- package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
- package/{chunk-53HEEOTT.js → chunk-O26PCYLS.js} +80 -13
- package/{chunk-3DII57IT.js → chunk-O2OWEFII.js} +1 -1
- package/{chunk-TDRTS7QW.js → chunk-O6JPWEEK.js} +77 -17
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-6D6VBVEW.js → chunk-OTEMQQZI.js} +80 -14
- package/{chunk-ADTY7BWR.js → chunk-OYOWA3CP.js} +24 -5
- package/chunk-P6GMCCAT.js +870 -0
- package/{chunk-R7N5TMTV.js → chunk-PQTSOHBT.js} +13 -13
- package/{chunk-WGR3J4Q6.js → chunk-Q4GP72HX.js} +9 -3
- package/{chunk-DHDMC6FO.js → chunk-QKUMVP3O.js} +11 -6
- package/{chunk-X4QAVDFE.js → chunk-RMAWULCS.js} +498 -480
- package/{chunk-V4MJDUSR.js → chunk-RSEEDUMS.js} +2 -2
- package/{chunk-UZGQNTVW.js → chunk-S5XGT6GB.js} +5 -3
- package/{chunk-76WEAXJB.js → chunk-SACTCJAC.js} +18 -15
- package/{chunk-AFUORTY4.js → chunk-SONWNI3L.js} +21 -21
- package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
- package/{chunk-2YMRWISD.js → chunk-TU5NE4U3.js} +9 -84
- package/chunk-TY3TIUJK.js +89 -0
- package/chunk-UEGYKNHO.js +13349 -0
- package/chunk-UNYJU5L6.js +780 -0
- package/{chunk-J4MOO56S.js → chunk-UQNS32WZ.js} +10 -2
- package/chunk-VIWDGTDA.js +8 -0
- package/chunk-VJVNU77E.js +83 -0
- package/{chunk-EHKBVWKL.js → chunk-VYN7O3OY.js} +1 -1
- package/{chunk-NEDZDG3M.js → chunk-WILHZY7K.js} +45 -45
- package/{chunk-UKWGR5SS.js → chunk-WIWM4FE3.js} +187 -398
- package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
- package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
- package/{chunk-SNPMM7H3.js → chunk-Y6AZRODX.js} +13 -13
- package/{chunk-RSJECD7I.js → chunk-YJKDTJ2X.js} +7 -7
- package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
- package/{chunk-TOP2VXOR.js → chunk-Z4CSIXYP.js} +2 -2
- package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
- package/chunk-ZRAU6T47.js +56 -0
- package/{chunk-Z77CRGTW.js → chunk-ZYWQNCBN.js} +1 -1
- package/commandRegistry-MRPLKSWP.js +833 -0
- package/{contentThunks-YLWTUILV.js → contentThunks-TD5YOAQM.js} +32 -30
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-HFLPOBWQ.js → createAgentAutomationAction-XUG62ANM.js} +32 -30
- package/{createDialogAction-4H52MURR.js → createDialogAction-L3CMZKNL.js} +36 -33
- package/{createPageAction-5YDRMJOS.js → createPageAction-WJ3MX6JS.js} +38 -36
- package/{chunk-NUVMWYJM.js → cursorProvider-YGGNMVWX.js} +2494 -9892
- package/{dbSlice-XVWBAGYN.js → dbSlice-DQ32LYTJ.js} +8 -8
- package/{deleteFile-YG6QMJLU.js → deleteFile-NX6QHCWZ.js} +3 -3
- package/{dialogCommands-KFK2FF5B.js → dialogCommands-VM3I4HBW.js} +45 -41
- package/{dialogSlice-TMSHUGEM.js → dialogSlice-DSHG3YUE.js} +36 -29
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-V777WOZ7.js → docCreateCommands-TYUJPCOP.js} +44 -40
- package/{docDeleteCommands-5KHT7Z5Q.js → docDeleteCommands-5XEG2LXO.js} +44 -40
- package/{docReadCommands-BLROGWP3.js → docReadCommands-M6RO6QHV.js} +43 -39
- package/{docStore-OBC5QOW7.js → docStore-RYOGMPEF.js} +11 -10
- package/{docUpdateCommands-QXOZHQ5H.js → docUpdateCommands-DKOFTZRX.js} +44 -40
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
- package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +3 -3
- package/{handleSendMessageAction-4LGNXH6T.js → handleSendMessageAction-XH742B27.js} +91 -83
- package/index.js +87 -884
- package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
- package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
- package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
- package/{machineCommands-SNLCRHQK.js → machineCommands-BKYVMMEG.js} +85 -77
- package/{machineWsRunDispatch-ZGZVDQSO.js → machineWsRunDispatch-QOBSQQ72.js} +82 -74
- package/{memberThunks-QGFLFVCI.js → memberThunks-5ZXPR63F.js} +9 -9
- 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-76AVU3HD.js} +7 -7
- package/{providerRegistry-757OWH3O.js → providerRegistry-Z62NC45X.js} +11 -7
- package/{read-COE3ZYR6.js → read-EPTJRAEF.js} +5 -5
- package/{readDocTool-5USN4A6V.js → readDocTool-W4NDXNEX.js} +5 -3
- package/{readlineWorkspace-OUL7ZN7D.js → readlineWorkspace-7P7IORIT.js} +2447 -2022
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-BVAWQKXE.js} +17 -19
- package/{runAgentClientLoop-GD3APV7V.js → runAgentClientLoop-7WXN6I7L.js} +62 -58
- package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
- package/runtimeModeArgs-2Y7BALTO.js +31 -0
- package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-LYY45IAD.js} +12 -11
- package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-73IL7DLU.js} +18 -20
- package/{settingSlice-ZQZVUPKK.js → settingSlice-Q6EKL7EQ.js} +9 -9
- package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
- package/{spaceCommands-TIDVUPDV.js → spaceCommands-QFP4ZXKG.js} +44 -40
- package/{streamAgentChatTurn-M73KWCCU.js → streamAgentChatTurn-B4PXPJJS.js} +184 -91
- package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-UUXDSQ6X.js} +15 -17
- package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
- package/{toolApiClient-QVJ6HDNN.js → toolApiClient-INIQCPGY.js} +3 -3
- package/{tools-DXXDQ2CP.js → tools-QFS2L7BU.js} +55 -51
- package/{tuiSummaryLlmCaller-VJY3YD2Q.js → tuiSummaryLlmCaller-74NRRLVW.js} +18 -16
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-XI73NQMU.js → updateDialogTitleAction-HTDYCNNZ.js} +81 -43
- package/agentListCommands-O4AEMQVV.js +0 -406
- package/agentRecordCommands-6QK7AMXQ.js +0 -128
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-Q5FJJ6XI.js +0 -103
- package/chunk-S7Z2HMCN.js +0 -25
- package/chunk-WRFW73PB.js +0 -18881
- package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
- package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
- package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CHROME_CONNECTOR_LEGACY_TOOL_ALIASES
|
|
3
|
+
} from "./chunk-5J3PYNUP.js";
|
|
4
|
+
|
|
1
5
|
// packages/agent-runtime/toolNameAliases.ts
|
|
2
6
|
var LEGACY_TOOL_NAME_ALIASES = {
|
|
7
|
+
// Nolo Browser Connector: legacy chrome_* → canonical browser_*
|
|
8
|
+
...CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
|
|
3
9
|
createPage: "createDoc",
|
|
4
10
|
updatePage: "updateDoc",
|
|
5
11
|
update_page: "updateDoc",
|
|
@@ -11,6 +11,7 @@ var PLATFORM_HOSTED_KIMI_K3_MODEL = "kimi-k3";
|
|
|
11
11
|
var PLATFORM_HOSTED_KIMI_K26_MODEL = "kimi-k2.6";
|
|
12
12
|
var PLATFORM_HOSTED_KIMI_PROVIDER = "nolo";
|
|
13
13
|
var LEGACY_OLLAMA_CLOUD_PROVIDER = "ollama-cloud";
|
|
14
|
+
var PLATFORM_LLM_BUSY_USER_MESSAGE = "\u670D\u52A1\u5668\u7D27\u5F20";
|
|
14
15
|
var isNoloHostedProvider = (provider) => {
|
|
15
16
|
const normalized = asTrimmedLowercaseString(provider);
|
|
16
17
|
return normalized === PLATFORM_HOSTED_KIMI_PROVIDER || normalized === LEGACY_OLLAMA_CLOUD_PROVIDER;
|
|
@@ -1200,6 +1201,7 @@ export {
|
|
|
1200
1201
|
openrouterModels,
|
|
1201
1202
|
PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
1202
1203
|
PLATFORM_HOSTED_KIMI_PROVIDER,
|
|
1204
|
+
PLATFORM_LLM_BUSY_USER_MESSAGE,
|
|
1203
1205
|
isNoloHostedProvider,
|
|
1204
1206
|
isFireworksKimiModel,
|
|
1205
1207
|
isDeepInfraKimiModel,
|
|
@@ -7,7 +7,14 @@ import {
|
|
|
7
7
|
listUserRecordsFromServers,
|
|
8
8
|
readDbRecordFromServers,
|
|
9
9
|
readLiveDbRecordAfterTombstoneMerge
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AOPCEXTB.js";
|
|
11
|
+
import {
|
|
12
|
+
isLevelLockError
|
|
13
|
+
} from "./chunk-URMS4XY2.js";
|
|
14
|
+
import {
|
|
15
|
+
resolveLocalDialogDbCandidates,
|
|
16
|
+
resolveServerDbPath
|
|
17
|
+
} from "./chunk-GLKOYSRU.js";
|
|
11
18
|
import {
|
|
12
19
|
fetchWithTransientRetry
|
|
13
20
|
} from "./chunk-5UTFL4QJ.js";
|
|
@@ -18,19 +25,12 @@ import {
|
|
|
18
25
|
import {
|
|
19
26
|
buildDialogAttachmentPlan,
|
|
20
27
|
extractFileContentIds
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import {
|
|
23
|
-
isLevelLockError
|
|
24
|
-
} from "./chunk-URMS4XY2.js";
|
|
25
|
-
import {
|
|
26
|
-
resolveLocalDialogDbCandidates,
|
|
27
|
-
resolveServerDbPath
|
|
28
|
-
} from "./chunk-GLKOYSRU.js";
|
|
28
|
+
} from "./chunk-6O4IK4V2.js";
|
|
29
29
|
import {
|
|
30
30
|
boundSummaryText,
|
|
31
31
|
buildDialogReadEnvelope,
|
|
32
32
|
projectDialogReadForAgent
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-6PHKBY2Q.js";
|
|
34
34
|
import {
|
|
35
35
|
toErrorMessage
|
|
36
36
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
import {
|
|
52
52
|
asNonEmptyStringArray,
|
|
53
53
|
asTrimmedNonEmptyStringArray
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-3AH7LNUB.js";
|
|
55
55
|
import {
|
|
56
56
|
createClientLogger
|
|
57
57
|
} from "./chunk-QOKAKDPE.js";
|
|
@@ -725,7 +725,7 @@ function isExplicitDialogIdMismatch(meta, dialogId) {
|
|
|
725
725
|
return meta && typeof meta === "object" && "id" in meta && meta.id != null && String(meta.id) !== dialogId;
|
|
726
726
|
}
|
|
727
727
|
async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog) {
|
|
728
|
-
const reader = readLocalDialog ?? (await import("./localDialogRead-
|
|
728
|
+
const reader = readLocalDialog ?? (await import("./localDialogRead-EBRS242U.js")).readDialogFromLocalDb;
|
|
729
729
|
const result = await reader({ dialogKey, dialogId, limit });
|
|
730
730
|
return {
|
|
731
731
|
...result,
|
|
@@ -742,7 +742,7 @@ async function readLocalDialogAtDbPathDefault(args) {
|
|
|
742
742
|
const [{ Level }, { safeJsonEncoding }, { fetchMessages }] = await Promise.all([
|
|
743
743
|
import("./levelLazyShim-GZBKODGI.js"),
|
|
744
744
|
import("./serverStoreFactory-YMXDF4NI.js"),
|
|
745
|
-
import("./fetchMessages-
|
|
745
|
+
import("./fetchMessages-67MEFPZR.js")
|
|
746
746
|
]);
|
|
747
747
|
const db = new Level(args.dbPath, {
|
|
748
748
|
valueEncoding: safeJsonEncoding,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
createFileCredentialBroker,
|
|
4
4
|
migrateAgentSecrets,
|
|
5
5
|
normalizeAgentRuntimeToolPolicy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ESRMFY7G.js";
|
|
7
7
|
import {
|
|
8
8
|
asRecordOrEmpty
|
|
9
9
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -11,16 +11,16 @@ import {
|
|
|
11
11
|
patch,
|
|
12
12
|
remove,
|
|
13
13
|
write
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HYZIYH2H.js";
|
|
15
15
|
import {
|
|
16
16
|
createAgentKey,
|
|
17
17
|
toTrimmedString
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-3AH7LNUB.js";
|
|
19
19
|
import {
|
|
20
20
|
asyncThunkCreator,
|
|
21
21
|
buildCreateSlice,
|
|
22
22
|
getRuntimeServerContext
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WIWM4FE3.js";
|
|
24
24
|
import {
|
|
25
25
|
asTrimmedString
|
|
26
26
|
} from "./chunk-3EUW3WEO.js";
|
|
@@ -304,7 +304,7 @@ var slice = createSliceWithThunks({
|
|
|
304
304
|
const overrides = {};
|
|
305
305
|
if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
|
|
306
306
|
if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
|
|
307
|
-
const { _executeModel } = await import("./_executeModel-
|
|
307
|
+
const { _executeModel } = await import("./_executeModel-DYHTQJZC.js");
|
|
308
308
|
return _executeModel(
|
|
309
309
|
{
|
|
310
310
|
isStreaming: args.isStreaming ?? false,
|
|
@@ -325,7 +325,7 @@ var slice = createSliceWithThunks({
|
|
|
325
325
|
* - 循环直到无工具调用或触发其他运行时停止条件
|
|
326
326
|
*/
|
|
327
327
|
runAgent: create.asyncThunk(async (args, thunkApi) => {
|
|
328
|
-
const { runAgentClientLoop } = await import("./runAgentClientLoop-
|
|
328
|
+
const { runAgentClientLoop } = await import("./runAgentClientLoop-7WXN6I7L.js");
|
|
329
329
|
const { content: loopContent, toolCallCount } = await runAgentClientLoop(
|
|
330
330
|
{
|
|
331
331
|
agentKey: args.agentKey,
|
|
@@ -341,7 +341,7 @@ var slice = createSliceWithThunks({
|
|
|
341
341
|
* 聊天轮次流式 Agent 调用
|
|
342
342
|
*/
|
|
343
343
|
streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
|
|
344
|
-
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-
|
|
344
|
+
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-B4PXPJJS.js");
|
|
345
345
|
return streamAgentChatTurnHandler(args, thunkApi);
|
|
346
346
|
}),
|
|
347
347
|
/**
|
|
@@ -136,6 +136,11 @@ function logUploadAudit(entry, logFn = console.warn) {
|
|
|
136
136
|
|
|
137
137
|
// packages/desktop-chrome-connector/chromeConnector.ts
|
|
138
138
|
var NOLO_CHROME_CONNECTOR_EXTENSION_ID = "ahpdoopadkamnglhlacfjdfnonpjdplg";
|
|
139
|
+
var NOLO_FIREFOX_CONNECTOR_EXTENSION_ID = "nolo-browser-connector@nolo.chat";
|
|
140
|
+
var NOLO_CONNECTOR_EXTENSION_IDS = [
|
|
141
|
+
NOLO_CHROME_CONNECTOR_EXTENSION_ID,
|
|
142
|
+
NOLO_FIREFOX_CONNECTOR_EXTENSION_ID
|
|
143
|
+
];
|
|
139
144
|
var NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION = "2";
|
|
140
145
|
function defaultTokenPath() {
|
|
141
146
|
return resolve2(
|
|
@@ -149,6 +154,18 @@ function readConnectorToken(tokenPath = defaultTokenPath()) {
|
|
|
149
154
|
return readFileSync(tokenPath, "utf8").trim();
|
|
150
155
|
}
|
|
151
156
|
var CHROME_TOOL_ACTIONS = {
|
|
157
|
+
browser_list_tabs: "list_tabs",
|
|
158
|
+
browser_open_tab: "open_tab",
|
|
159
|
+
browser_close_tab: "close_tab",
|
|
160
|
+
browser_read_page: "read_page",
|
|
161
|
+
browser_click_element: "click",
|
|
162
|
+
browser_type: "type",
|
|
163
|
+
browser_press: "press",
|
|
164
|
+
browser_scroll: "scroll",
|
|
165
|
+
browser_screenshot: "screenshot",
|
|
166
|
+
browser_read_console: "read_console",
|
|
167
|
+
browser_read_network: "read_network",
|
|
168
|
+
// Legacy aliases (kept for existing agents/tests).
|
|
152
169
|
chrome_list_tabs: "list_tabs",
|
|
153
170
|
chrome_open_tab: "open_tab",
|
|
154
171
|
chrome_close_tab: "close_tab",
|
|
@@ -164,6 +181,12 @@ var CHROME_TOOL_ACTIONS = {
|
|
|
164
181
|
chrome_upload_file: "set_files",
|
|
165
182
|
chrome_upload: "set_files"
|
|
166
183
|
};
|
|
184
|
+
for (const legacyName of ["chrome_set_files", "chrome_upload_file", "chrome_upload"]) {
|
|
185
|
+
const action = CHROME_TOOL_ACTIONS[legacyName];
|
|
186
|
+
if (action) {
|
|
187
|
+
CHROME_TOOL_ACTIONS[`browser_${legacyName.slice("chrome_".length)}`] = action;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
167
190
|
function createConnectorError(code, message, details) {
|
|
168
191
|
const error = new Error(message);
|
|
169
192
|
error.code = code;
|
|
@@ -183,9 +206,13 @@ function parseArguments(raw) {
|
|
|
183
206
|
}
|
|
184
207
|
}
|
|
185
208
|
function errorPayload(error) {
|
|
209
|
+
const code = error?.code ?? "CHROME_CONNECTOR_ERROR";
|
|
186
210
|
return {
|
|
187
|
-
code
|
|
211
|
+
code,
|
|
188
212
|
message: toErrorMessage(error),
|
|
213
|
+
...code === "CHROME_CONNECTOR_UNAVAILABLE" ? {
|
|
214
|
+
hint: "The Nolo Browser Connector is not reachable. It runs inside the user's own Chrome or Firefox \u2014 ask the user to open their browser with the Nolo Browser Connector extension enabled, or install it from https://nolo.chat/downloads (Firefox can install the signed .xpi directly), then retry."
|
|
215
|
+
} : {},
|
|
189
216
|
...error?.details !== void 0 ? { details: error.details } : {}
|
|
190
217
|
};
|
|
191
218
|
}
|
|
@@ -198,7 +225,7 @@ function validateChromeConnectorPayload(action, payload) {
|
|
|
198
225
|
if (!tabId) {
|
|
199
226
|
throw createConnectorError(
|
|
200
227
|
"TAB_ID_REQUIRED",
|
|
201
|
-
`Provide the tabId from
|
|
228
|
+
`Provide the tabId from browser_list_tabs before calling ${action}.`
|
|
202
229
|
);
|
|
203
230
|
}
|
|
204
231
|
if (!TARGET_REQUIRED_ACTIONS.has(action)) return;
|
|
@@ -210,7 +237,7 @@ function validateChromeConnectorPayload(action, payload) {
|
|
|
210
237
|
if (!elementRef && !selector) {
|
|
211
238
|
throw createConnectorError(
|
|
212
239
|
"ELEMENT_TARGET_REQUIRED",
|
|
213
|
-
"Provide elementRef from
|
|
240
|
+
"Provide elementRef from browser_read_page or a CSS selector."
|
|
214
241
|
);
|
|
215
242
|
}
|
|
216
243
|
if (action === "set_files") {
|
|
@@ -285,7 +312,10 @@ var REQUIRED_CHROME_CONNECTOR_FEATURES = {
|
|
|
285
312
|
type: ["compact_observation_v2", "action_gate"],
|
|
286
313
|
press: ["compact_observation_v2", "action_gate"],
|
|
287
314
|
scroll: ["compact_observation_v2"],
|
|
288
|
-
screenshot:
|
|
315
|
+
// Both browsers advertise the dedicated `screenshot` feature: Chrome serves it through
|
|
316
|
+
// Page.captureScreenshot (browser_debug-adjacent) while Firefox falls back to
|
|
317
|
+
// tabs.captureVisibleTab, so gating on browser_debug would wrongly refuse Firefox.
|
|
318
|
+
screenshot: ["screenshot"],
|
|
289
319
|
read_console: ["browser_debug"],
|
|
290
320
|
read_network: ["browser_debug"],
|
|
291
321
|
detach: ["browser_debug"],
|
|
@@ -296,17 +326,20 @@ function requiredFeaturesForConnectorAction(action) {
|
|
|
296
326
|
}
|
|
297
327
|
function createVerifiedChromeConnectorClient(args) {
|
|
298
328
|
const client = args?.client ?? createChromeConnectorClient();
|
|
299
|
-
const
|
|
329
|
+
const expectedExtensionIds = new Set(
|
|
330
|
+
args?.expectedExtensionIds ?? (args?.expectedExtensionId ? [args.expectedExtensionId] : NOLO_CONNECTOR_EXTENSION_IDS)
|
|
331
|
+
);
|
|
300
332
|
let verified = null;
|
|
301
333
|
let negotiatedFeatures = [];
|
|
302
334
|
const verify = async () => {
|
|
303
335
|
const connectorInfo = await client.request("connector_info", {});
|
|
304
336
|
const receivedExtensionId = connectorInfo?.extensionId;
|
|
305
|
-
if (receivedExtensionId !==
|
|
337
|
+
if (typeof receivedExtensionId !== "string" || !expectedExtensionIds.has(receivedExtensionId)) {
|
|
338
|
+
const expectedList = [...expectedExtensionIds].join(", ");
|
|
306
339
|
throw createConnectorError(
|
|
307
340
|
"CHROME_CONNECTOR_EXTENSION_MISMATCH",
|
|
308
|
-
`Chrome connector extension id mismatch: expected ${
|
|
309
|
-
{
|
|
341
|
+
`Chrome connector extension id mismatch: expected one of ${expectedList}, received ${typeof receivedExtensionId === "string" ? receivedExtensionId : "unknown"}.`,
|
|
342
|
+
{ expectedExtensionIds: [...expectedExtensionIds], receivedExtensionId }
|
|
310
343
|
);
|
|
311
344
|
}
|
|
312
345
|
const receivedProtocolVersion = connectorInfo?.protocolVersion;
|
|
@@ -366,7 +399,7 @@ async function executeChromeConnectorTool(args) {
|
|
|
366
399
|
};
|
|
367
400
|
}
|
|
368
401
|
try {
|
|
369
|
-
const payload = parseArguments(args.call.arguments);
|
|
402
|
+
const { target: _ignoredTarget, ...payload } = parseArguments(args.call.arguments);
|
|
370
403
|
validateChromeConnectorPayload(action, payload);
|
|
371
404
|
const result = await (args.client ?? createChromeConnectorClient()).request(action, payload);
|
|
372
405
|
return {
|
|
@@ -392,6 +425,8 @@ var CHROME_CONNECTOR_TOOL_ACTIONS = { ...CHROME_TOOL_ACTIONS };
|
|
|
392
425
|
|
|
393
426
|
export {
|
|
394
427
|
NOLO_CHROME_CONNECTOR_EXTENSION_ID,
|
|
428
|
+
NOLO_FIREFOX_CONNECTOR_EXTENSION_ID,
|
|
429
|
+
NOLO_CONNECTOR_EXTENSION_IDS,
|
|
395
430
|
NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION,
|
|
396
431
|
createChromeConnectorClient,
|
|
397
432
|
REQUIRED_CHROME_CONNECTOR_FEATURES,
|
|
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
async function getDefaultCliLocalRuntimeDb(options = {}) {
|
|
17
|
-
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-
|
|
17
|
+
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-5W6IJRAD.js");
|
|
18
18
|
return getAuthorityBackedDb(options);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addLeadingZeros,
|
|
3
|
+
requiredArgs,
|
|
4
|
+
toDate
|
|
5
|
+
} from "./chunk-4LCOCOR5.js";
|
|
6
|
+
|
|
7
|
+
// node_modules/date-fns/esm/formatISO/index.js
|
|
8
|
+
function formatISO(date, options) {
|
|
9
|
+
var _options$format, _options$representati;
|
|
10
|
+
requiredArgs(1, arguments);
|
|
11
|
+
var originalDate = toDate(date);
|
|
12
|
+
if (isNaN(originalDate.getTime())) {
|
|
13
|
+
throw new RangeError("Invalid time value");
|
|
14
|
+
}
|
|
15
|
+
var format = String((_options$format = options === null || options === void 0 ? void 0 : options.format) !== null && _options$format !== void 0 ? _options$format : "extended");
|
|
16
|
+
var representation = String((_options$representati = options === null || options === void 0 ? void 0 : options.representation) !== null && _options$representati !== void 0 ? _options$representati : "complete");
|
|
17
|
+
if (format !== "extended" && format !== "basic") {
|
|
18
|
+
throw new RangeError("format must be 'extended' or 'basic'");
|
|
19
|
+
}
|
|
20
|
+
if (representation !== "date" && representation !== "time" && representation !== "complete") {
|
|
21
|
+
throw new RangeError("representation must be 'date', 'time', or 'complete'");
|
|
22
|
+
}
|
|
23
|
+
var result = "";
|
|
24
|
+
var tzOffset = "";
|
|
25
|
+
var dateDelimiter = format === "extended" ? "-" : "";
|
|
26
|
+
var timeDelimiter = format === "extended" ? ":" : "";
|
|
27
|
+
if (representation !== "time") {
|
|
28
|
+
var day = addLeadingZeros(originalDate.getDate(), 2);
|
|
29
|
+
var month = addLeadingZeros(originalDate.getMonth() + 1, 2);
|
|
30
|
+
var year = addLeadingZeros(originalDate.getFullYear(), 4);
|
|
31
|
+
result = "".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);
|
|
32
|
+
}
|
|
33
|
+
if (representation !== "date") {
|
|
34
|
+
var offset = originalDate.getTimezoneOffset();
|
|
35
|
+
if (offset !== 0) {
|
|
36
|
+
var absoluteOffset = Math.abs(offset);
|
|
37
|
+
var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);
|
|
38
|
+
var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);
|
|
39
|
+
var sign = offset < 0 ? "+" : "-";
|
|
40
|
+
tzOffset = "".concat(sign).concat(hourOffset, ":").concat(minuteOffset);
|
|
41
|
+
} else {
|
|
42
|
+
tzOffset = "Z";
|
|
43
|
+
}
|
|
44
|
+
var hour = addLeadingZeros(originalDate.getHours(), 2);
|
|
45
|
+
var minute = addLeadingZeros(originalDate.getMinutes(), 2);
|
|
46
|
+
var second = addLeadingZeros(originalDate.getSeconds(), 2);
|
|
47
|
+
var separator = result === "" ? "" : "T";
|
|
48
|
+
var time = [hour, minute, second].join(timeDelimiter);
|
|
49
|
+
result = "".concat(result).concat(separator).concat(time).concat(tzOffset);
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
formatISO
|
|
56
|
+
};
|