nolo-cli 0.98.0-alpha.4 → 0.98.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-HYZ4NXRJ.js → _executeModel-GJK4ZVU6.js} +74 -67
- package/action-PNPQLJHG.js +20 -0
- package/{addContentAction-O7R66HEX.js → addContentAction-RBOUD7SJ.js} +12 -11
- package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-IODCR6TB.js} +18 -19
- package/{agentDeleteCommand-2YAHAZFJ.js → agentDeleteCommand-GHRF6CH5.js} +47 -42
- package/{agentEmailCommands-SLEQANTK.js → agentEmailCommands-O5BTHYZK.js} +97 -87
- package/agentListCommands-3REEM63V.js +742 -0
- package/{agentMachineCommands-KBI77S35.js → agentMachineCommands-2GW3CV7Q.js} +48 -43
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-IRNZXVGE.js} +1 -1
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
- package/agentRecordCommands-WYQODWZE.js +138 -0
- package/agentRunCommand-KAN65WPY.js +167 -0
- package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
- package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-IOFBNVIL.js} +48 -39
- package/{agentSlice-ZOYISPZD.js → agentSlice-I45M32KO.js} +14 -13
- package/{appDeleteCommands-32MHLR4L.js → appDeleteCommands-SFS6IZEM.js} +46 -41
- package/{appDeployCommands-WCQOUSOB.js → appDeployCommands-YZQESVRQ.js} +46 -41
- package/{appDeployStatusCommands-6QKB7DYN.js → appDeployStatusCommands-FKUUDCKP.js} +46 -41
- package/{appGetCommands-SFAPP5PB.js → appGetCommands-QUE7OQZC.js} +46 -41
- package/{appListCommands-EKUBDRUO.js → appListCommands-QEETFKMH.js} +46 -41
- package/{authCommand-F4EFRRX6.js → authCommand-NHDLY3IB.js} +118 -24
- package/{authCommands-RGOGCPP6.js → authCommands-UDBJVSZU.js} +7 -5
- package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-MAR5LPAC.js} +10 -8
- 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-53HEEOTT.js → chunk-2WJ57RJA.js} +83 -16
- package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
- package/{chunk-ABQYVJBJ.js → chunk-46Y5D2BZ.js} +5 -5
- package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
- package/{chunk-H62HCIUP.js → chunk-4FFUDT6D.js} +24 -21
- package/chunk-4LCOCOR5.js +50 -0
- package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
- package/{chunk-IIVGDG4I.js → chunk-4YSOUKUR.js} +13 -7
- package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
- package/{chunk-G4EBXCWF.js → chunk-5AUJB66Z.js} +550 -515
- 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-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
- package/{chunk-34BLIAHQ.js → chunk-6XDD7N7P.js} +47 -67
- package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
- package/{chunk-DNCEALKX.js → chunk-7MMSLEPA.js} +22 -29
- package/chunk-A4SQRTZ6.js +15 -0
- package/{chunk-7S4YWN7P.js → chunk-ADBZWMFB.js} +4 -4
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
- package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
- package/{chunk-T37GTQYU.js → chunk-B2DEZY6J.js} +20 -11
- package/chunk-BMQ2MJUK.js +153 -0
- package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
- package/chunk-C4DVDM72.js +13536 -0
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/chunk-DZ7R5V3Y.js +164 -0
- package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
- package/{chunk-V4MJDUSR.js → chunk-E73ON47R.js} +2 -2
- package/{chunk-XDJFSBVV.js → chunk-EIFYNGU4.js} +24 -5
- package/{chunk-KQ4ONNQD.js → chunk-EKPKW6RM.js} +155 -8
- package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
- package/{chunk-HJUYAD4A.js → chunk-FJ5BGMNM.js} +5 -5
- package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
- package/{chunk-6IG4XSS6.js → chunk-FY7DCYW7.js} +88 -17
- package/{chunk-J4MOO56S.js → chunk-GARACBQB.js} +10 -2
- package/{chunk-6VFARHZW.js → chunk-GDFA73QZ.js} +934 -1091
- 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-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-YRPASJCG.js → chunk-I76SDF7A.js} +10 -10
- package/{chunk-2D66PZ54.js → chunk-I7BCBNWZ.js} +24 -77
- package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
- package/{chunk-4OEFYTWL.js → chunk-LDCAFLXD.js} +64 -48
- package/{chunk-OEVAY4J6.js → chunk-LNVJHIGA.js} +18 -20
- package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
- package/{chunk-5H7KJX7J.js → chunk-LQ4PDQCI.js} +5 -5
- package/{chunk-PDIBG2WC.js → chunk-M33GWZIZ.js} +67 -45
- package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
- package/chunk-NHDMQZJM.js +7881 -0
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-L5UXH3B2.js → chunk-NNCYNBYV.js} +22 -6
- package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
- package/chunk-NWENLDMM.js +42 -0
- package/{chunk-AEOE4Z6Q.js → chunk-NZWAO6LH.js} +13 -15
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-PKUGW3X6.js → chunk-OU36O6OR.js} +23 -28
- package/chunk-OW4APERY.js +870 -0
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-ITM7D3UQ.js → chunk-P5L7VVMT.js} +11 -9
- package/{chunk-TOP2VXOR.js → chunk-PCF3QU5Q.js} +5 -5
- package/{chunk-WV42OMV7.js → chunk-PTDYOADJ.js} +8 -8
- package/{chunk-6D6VBVEW.js → chunk-SNMQMOD2.js} +80 -14
- package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
- package/{chunk-Z77CRGTW.js → chunk-TVCAR26G.js} +1 -1
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
- package/{chunk-RG6JBBX5.js → chunk-U7XXEI5R.js} +166 -13
- package/{chunk-UZGQNTVW.js → chunk-UA324D4O.js} +8 -6
- package/chunk-UJXNKP5V.js +760 -0
- package/{chunk-UKZDAFYT.js → chunk-UM4PH574.js} +6 -10
- package/{chunk-GEPUP7OO.js → chunk-UVKDJUTL.js} +3 -3
- package/{chunk-ZCYXJSTU.js → chunk-V5OWQOJZ.js} +19 -88
- package/{chunk-NA35QHCF.js → chunk-V7Y6KRAH.js} +1 -1
- package/{chunk-3DII57IT.js → chunk-VCAQFMVN.js} +1 -1
- package/{chunk-JRQFUXY7.js → chunk-VEYL5MO5.js} +99 -22
- package/chunk-VIWDGTDA.js +8 -0
- package/chunk-VJVNU77E.js +83 -0
- package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
- package/{chunk-5ZYCLPXL.js → chunk-W3RFFFFF.js} +873 -227
- package/{chunk-BP4XNZRM.js → chunk-W72ISAKC.js} +4 -4
- package/{chunk-DHDMC6FO.js → chunk-WCGC6S77.js} +14 -9
- package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
- package/{chunk-V7BKTIF6.js → chunk-WXHAOL7Y.js} +19 -17
- package/{chunk-37NKTC3Q.js → chunk-X2B2C4XD.js} +1 -1
- package/{chunk-HVURBGF3.js → chunk-XFUBXRVI.js} +6 -6
- package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
- package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
- package/{chunk-ETI2NYVF.js → chunk-YPOPJAKN.js} +4 -4
- package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
- package/chunk-YV25TM3R.js +780 -0
- package/chunk-ZRAU6T47.js +56 -0
- package/commandRegistry-RZNZ37BN.js +833 -0
- package/{contentThunks-G55OKUFE.js → contentThunks-DF7ZNCAG.js} +36 -34
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-D2J2O5GS.js → createAgentAutomationAction-KPMOZ53Y.js} +38 -36
- package/createDialogAction-I2UDVAXN.js +69 -0
- package/{createPageAction-FHZBN7DJ.js → createPageAction-IF5JXNKV.js} +45 -42
- package/{chunk-AJ3A3445.js → cursorProvider-YGGNMVWX.js} +2496 -9897
- package/{dbSlice-XVWBAGYN.js → dbSlice-Q25STFGJ.js} +11 -10
- package/{deleteFile-YG6QMJLU.js → deleteFile-AJ2EZMHT.js} +7 -6
- package/{dialogCommands-5J56DFWN.js → dialogCommands-LWHIIUQD.js} +49 -45
- package/{dialogSlice-D4V3HURH.js → dialogSlice-74DFPFRV.js} +40 -33
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-KYI2DC2U.js → docCreateCommands-LVXQ6TNZ.js} +48 -43
- package/{docDeleteCommands-67REUSRY.js → docDeleteCommands-7TVIGCLP.js} +49 -44
- package/{docReadCommands-HOSVSBDJ.js → docReadCommands-KYAXFLQ5.js} +47 -42
- package/{docStore-5LROPEEP.js → docStore-2JDRAYXJ.js} +16 -12
- package/{docUpdateCommands-EMGCSMXY.js → docUpdateCommands-TVC5KWPK.js} +48 -43
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-I5ICDDHM.js} +5 -5
- package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
- package/{handleSendMessageAction-QBPDYSLZ.js → handleSendMessageAction-54GY3XOH.js} +110 -86
- package/index.js +87 -884
- package/{localDialogRead-BTFJ4V2I.js → localDialogRead-ZHZ3KXDM.js} +2 -2
- package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
- package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
- package/{machineCommands-4ISPVTPN.js → machineCommands-54RNLVJE.js} +91 -81
- package/machineWsRunDispatch-WE3VTD57.js +154 -0
- package/{memberThunks-QGFLFVCI.js → memberThunks-R75S3RWP.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-SRQMNO26.js} +7 -6
- package/{readDocTool-5USN4A6V.js → readDocTool-RC3JUNJ2.js} +5 -3
- package/{readlineWorkspace-JFADM567.js → readlineWorkspace-UK5M5CJI.js} +2704 -2060
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-46XQV5Q7.js} +21 -25
- package/{runAgentClientLoop-JFFIFP7N.js → runAgentClientLoop-MTI5OU2W.js} +75 -69
- package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
- package/runtimeModeArgs-2Y7BALTO.js +31 -0
- package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-J4V5ADQF.js} +15 -13
- package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-UHHV2QZW.js} +22 -26
- package/{chunk-AFUORTY4.js → settingThunks-PPZZZOWN.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-446WWA73.js} +51 -46
- package/{streamAgentChatTurn-HFVTDCFD.js → streamAgentChatTurn-IANOWAKR.js} +199 -104
- package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-A2TMVGAE.js} +18 -19
- package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
- package/{toolApiClient-QVJ6HDNN.js → toolApiClient-EJT6TMFG.js} +3 -3
- package/tools-WZZYTUNF.js +116 -0
- package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-Q65IBDGO.js} +24 -21
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-PER2C6MR.js → updateDialogTitleAction-Z2JTYLXD.js} +82 -44
- package/action-YVYQEAAV.js +0 -31
- package/agentListCommands-KMS675GZ.js +0 -406
- package/agentRecordCommands-IPPPUHG4.js +0 -128
- package/agentRunCommand-24XO4RDT.js +0 -155
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-PMAMSHG7.js +0 -186
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-OCSGDPAT.js +0 -18885
- 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-E2EVICIE.js +0 -65
- package/machineWsRunDispatch-L4MKXQAO.js +0 -144
- package/settingSlice-ZQZVUPKK.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-BBBCUOUZ.js +0 -110
- 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,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
selectCurrentServer,
|
|
3
3
|
selectRemoteServers
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NWENLDMM.js";
|
|
5
5
|
import {
|
|
6
6
|
createUserKey,
|
|
7
7
|
extractAgentInfo,
|
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
sanitizeShareData,
|
|
11
11
|
shareKey,
|
|
12
12
|
toNonEmptyString
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3AH7LNUB.js";
|
|
14
14
|
import {
|
|
15
15
|
noloDeleteRequest,
|
|
16
16
|
noloWriteRequest
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VY6VFGKR.js";
|
|
18
18
|
import {
|
|
19
19
|
normalizeTimeFields
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-HIM3FCLF.js";
|
|
21
21
|
import {
|
|
22
22
|
selectIdentityUser,
|
|
23
23
|
selectIdentityUserId
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
buildSkillDocMarkdown
|
|
3
|
-
} from "./chunk-Q554LLSI.js";
|
|
4
1
|
import {
|
|
5
2
|
SYSTEM_AGENT_CAPABILITIES,
|
|
6
3
|
SYSTEM_AGENT_CAPABILITY_IDS
|
|
7
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WJ3B6FX6.js";
|
|
5
|
+
import {
|
|
6
|
+
buildSkillDocMarkdown
|
|
7
|
+
} from "./chunk-AUDNYVRC.js";
|
|
8
|
+
import {
|
|
9
|
+
CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES
|
|
10
|
+
} from "./chunk-5J3PYNUP.js";
|
|
8
11
|
import {
|
|
9
12
|
createKey
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3AH7LNUB.js";
|
|
11
14
|
|
|
12
15
|
// packages/ai/tools/codeWorkDiscipline.ts
|
|
13
16
|
var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
|
|
@@ -30,7 +33,7 @@ var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\u
|
|
|
30
33
|
- \u6309\u89D2\u8272\u52A0\u8F7D\u5BF9\u5E94 skill\uFF1Areviewer \u5148 \`loadSkill("coding-review")\` \u62FF\u901A\u7528\u6D41\u7A0B\uFF0C\u518D\u6309\u89D2\u8272 \`loadSkill("coding-review-<role>")\` \u62FF\u68C0\u67E5\u9879\u3002\u89D2\u8272\u6E05\u5355\uFF1Acode-quality\uFF08**\u5FC5\u8DD1**\uFF09/ architecture\uFF08**\u5355\u72EC\u6D3E\u53D1**\uFF0C\u4E2D\u7EA7\u4EE5\u4E0A\u95EE\u9898\uFF09/ security\uFF08\u6309\u9700 + \u5B89\u5168\u654F\u611F\u89E6\u53D1\u5FC5\u8DD1\uFF09/ frontend-ux\uFF08\u6D89\u53CA UI \u65F6\uFF09/ backend-data\uFF08\u6D89\u53CA server \u65F6\uFF09\u3002\u89D2\u8272\u5207\u5272\u7684\u76EE\u7684\u662F\u6CE8\u610F\u529B\u9694\u79BB\u2014\u2014\u6BCF\u4E2A\u89D2\u8272\u53EA\u76EF\u81EA\u5DF1\u7684\u68C0\u67E5\u9762\uFF0C\u6309\u9700\u542F\u7528\uFF0C\u907F\u514D\u4E00\u4E2A reviewer \u80CC\u6240\u6709\u89D2\u8272\u5BFC\u81F4\u6CE8\u610F\u529B\u7A00\u91CA\u3002
|
|
31
34
|
- Verdict \u6807\u51C6\uFF1AAPPROVE\uFF08\u65E0 CRITICAL \u6216 HIGH\uFF09\u2192 \u53EF commit\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u2192 \u62A5\u544A owner \u51B3\u5B9A\uFF1BBLOCK\uFF08\u6709 CRITICAL\uFF09\u2192 \u5FC5\u987B\u5148\u4FEE\u3002
|
|
32
35
|
- review \u662F\u591A\u8F6E\u6536\u655B\u7684\uFF1A\u6D3E reviewer \u5BA1\u5DE5\u4F5C\u533A diff \u2192 \u51FA finding \u5C31\u4FEE \u2192 \u590D\u5BA1\uFF0C\u76F4\u5230 APPROVE \u624D\u63D0\u4EA4\u3002\u6BCF\u8F6E review \u65E0\u4E0A\u4E0B\u6587\u2014\u2014reviewer \u53EA\u770B\u5F53\u524D\u5DE5\u4F5C\u533A diff\uFF0C\u4E0D\u5E26\u4E0A\u4E00\u8F6E finding \u8BB0\u5FC6\u3002
|
|
33
|
-
- \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\
|
|
36
|
+
- \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF1A\u4E0D\u8981\u8865\u5199\u6216\u4F2A\u9020 review \u8BC1\u636E\uFF0C\u4E5F**\u4E0D\u8981\u7528 [no-review: \u539F\u56E0] \u8FD9\u7C7B\u5199\u6CD5**\u2014\u2014\u5B83\u4EFB\u4F55\u5224\u636E\u90FD\u89E3\u6790\u4E0D\u4E86\uFF0C\u5199\u4E86\u7167\u6837\u88AB\u62E6\u3002\u81EA\u6709\u95F8\u95E8\u8BA4\u7684\u5F62\u5F0F\u662F Reviewed-by: <\u975E\u7A7A\u7F72\u540D> \u52A0 Review: \u5E26\u7ED3\u8BBA\uFF08APPROVE / Approved / WARNING\uFF0C\u5360\u4F4D\u7B26\u5982 <pending> \u4E0D\u7B97\uFF09\uFF0Ccommit-msg \u4E0E pre-push / pre-merge \u90FD\u8D70\u8FD9\u4E00\u6761\u6B63\u5219\u3002pre-push / pre-merge **\u53E6**\u8BA4\u4E00\u6761 owner-only \u8C41\u514D\uFF1A\u6B63\u6587\u5199 No-Review: <\u539F\u56E0> \u4E14 commit author email \u547D\u4E2D packages/nolo-ci/core/src/mapping.ts \u7684 NO_REVIEW_OWNER_EMAILS \u767D\u540D\u5355\u2014\u2014agent \u8EAB\u4EFD\uFF08\u5982 app-builder@nolo.local\uFF09\u4E0D\u9002\u7528\u3002\u771F\u88AB\u5361\u4F4F\u5C31\u5982\u5B9E\u4E0A\u62A5\u5361\u70B9\u3001\u7531 owner \u51B3\u5B9A\uFF1Bgit push --no-verify \u4EC5\u9650\u7BA1\u7406\u5458/\u7D27\u6025\u6062\u590D\uFF0C\u670D\u52A1\u7AEF G2 \u4E0D\u53EF\u7ED5\u8FC7\u3002`;
|
|
34
37
|
var buildCodeWorkDiscipline = (heading) => `# ${heading}
|
|
35
38
|
|
|
36
39
|
${CODE_WORK_DISCIPLINE_BODY}`;
|
|
@@ -61,6 +64,8 @@ var TOOL_PACKS = {
|
|
|
61
64
|
"updateSelf",
|
|
62
65
|
"ask_user",
|
|
63
66
|
"createAgentAutomation",
|
|
67
|
+
"updateAgentAutomation",
|
|
68
|
+
"deleteAgentAutomation",
|
|
64
69
|
"notifyUser"
|
|
65
70
|
],
|
|
66
71
|
// L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
|
|
@@ -236,7 +241,7 @@ var CAPABILITY_PACKS = [
|
|
|
236
241
|
{
|
|
237
242
|
id: "video-transcription",
|
|
238
243
|
label: "\u89C6\u9891\u8F6C\u5199",
|
|
239
|
-
description: "\u8D34\u89C6\u9891\u94FE\u63A5\u5373\u53EF\u8F6C\u5199\u4E3A\u5E26\u6807\u70B9\u6587\u672C\u4E0E SRT\u3002\u652F\u6301 B \u7AD9\u5206 P\uFF08\u9ED8\u8BA4\u5168\u90E8\u5904\u7406\uFF09\u3001YouTube \u7B49\uFF1B\u6296\u97F3\
|
|
244
|
+
description: "\u8D34\u89C6\u9891\u94FE\u63A5\u5373\u53EF\u8F6C\u5199\u4E3A\u5E26\u6807\u70B9\u6587\u672C\u4E0E SRT\u3002\u652F\u6301 B \u7AD9\u5206 P\uFF08\u9ED8\u8BA4\u5168\u90E8\u5904\u7406\uFF09\u3001YouTube \u7B49\uFF1B\u652F\u6301\u6296\u97F3\u5206\u4EAB\u6587\u6848/\u77ED\u94FE\uFF0C\u628A\u5206\u4EAB\u6587\u5B57\u91CC\u7684\u94FE\u63A5\u4F20\u7ED9 url\u3002",
|
|
240
245
|
tools: ["transcribeVideo"],
|
|
241
246
|
defaultEnabled: false,
|
|
242
247
|
icon: "\u{1F3AC}",
|
|
@@ -246,7 +251,7 @@ var CAPABILITY_PACKS = [
|
|
|
246
251
|
- \u7528\u6237\u8D34\u4E0A\u89C6\u9891\u94FE\u63A5\u65F6\uFF0C\u76F4\u63A5\u8C03\u7528 \`transcribeVideo({ url })\`\uFF0C\u4E0D\u8981\u5148\u95EE\u8981\u4E0D\u8981\u8F6C\u5199\u3002
|
|
247
252
|
- B \u7AD9\u5206 P / \u5408\u96C6\uFF1A\u7F3A\u7701\u5904\u7406\u5168\u90E8\uFF1B\u82E5\u7528\u6237\u6307\u5B9A\u300C\u53EA\u8981\u7B2C 3\u30014 \u96C6\u300D\u5219\u4F20 \`p: [3, 4]\`\u3002
|
|
248
253
|
- \u8FD4\u56DE\u91CC\u7684 \`processedParts\` / \`availableParts\` \u5FC5\u987B\u5411\u7528\u6237\u8BF4\u6E05\u695A\uFF0C\u907F\u514D\u9759\u9ED8\u4E22\u5206 P\u3002
|
|
249
|
-
- \u6296\u97F3\
|
|
254
|
+
- \u652F\u6301\u6296\u97F3\u5206\u4EAB\u6587\u6848/\u77ED\u94FE\uFF0C\u628A\u5206\u4EAB\u6587\u5B57\u91CC\u7684\u94FE\u63A5\u4F20\u7ED9 url\u3002
|
|
250
255
|
`
|
|
251
256
|
}
|
|
252
257
|
];
|
|
@@ -353,7 +358,7 @@ function isWebSearchTool(name) {
|
|
|
353
358
|
return WEB_SEARCH_TOOL_NAMES.has(name);
|
|
354
359
|
}
|
|
355
360
|
function isBrowserTool(name) {
|
|
356
|
-
return name.startsWith("browser_");
|
|
361
|
+
return name.startsWith("browser_") && !CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES.includes(name);
|
|
357
362
|
}
|
|
358
363
|
function addDefaultLightWebToolsForConfiguredAgents(toolNames, agentConfig) {
|
|
359
364
|
const explicitToolNames = Array.isArray(
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BUILTIN_NOLO_AGENT_KEY
|
|
3
|
-
} from "./chunk-BNGW5ASC.js";
|
|
4
|
-
|
|
5
1
|
// packages/ai/tools/agentCapabilities.ts
|
|
6
2
|
var SYSTEM_AGENT_CAPABILITIES = [
|
|
7
3
|
{
|
|
@@ -47,17 +43,8 @@ var DEFAULT_SYSTEM_AGENT_CAPABILITIES = Object.fromEntries(
|
|
|
47
43
|
])
|
|
48
44
|
);
|
|
49
45
|
|
|
50
|
-
// packages/core/init.ts
|
|
51
|
-
var nolotusId = "0e95801d90";
|
|
52
|
-
var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
|
|
53
|
-
var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
|
|
54
|
-
var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
|
|
55
|
-
|
|
56
46
|
export {
|
|
57
47
|
SYSTEM_AGENT_CAPABILITIES,
|
|
58
48
|
SYSTEM_AGENT_CAPABILITY_IDS,
|
|
59
|
-
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
60
|
-
nolotusId,
|
|
61
|
-
isSystemAdmin,
|
|
62
|
-
noloAgentId
|
|
49
|
+
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
63
50
|
};
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCliLocalRuntimeAdapter,
|
|
3
3
|
summarizeEndpoint
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NHDMQZJM.js";
|
|
5
5
|
import {
|
|
6
6
|
clipMultilineText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5AUJB66Z.js";
|
|
8
8
|
import {
|
|
9
9
|
runLocalAgentTurn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GDFA73QZ.js";
|
|
11
11
|
import {
|
|
12
12
|
applyToolSurfaceConstraints
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4YSOUKUR.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveLocalRuntimeEnvFromPolicy
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XFUBXRVI.js";
|
|
17
|
+
import {
|
|
18
|
+
asRecordOrEmpty
|
|
19
|
+
} from "./chunk-KX6YBIHG.js";
|
|
17
20
|
import {
|
|
18
21
|
toErrorMessage
|
|
19
22
|
} from "./chunk-HNMXYYJR.js";
|
|
20
|
-
import {
|
|
21
|
-
readPipeText,
|
|
22
|
-
spawnProcess
|
|
23
|
-
} from "./chunk-X7HHHIOZ.js";
|
|
24
23
|
import {
|
|
25
24
|
parseUserIdFromAuthToken
|
|
26
25
|
} from "./chunk-A7GB5UGH.js";
|
|
@@ -28,11 +27,9 @@ import {
|
|
|
28
27
|
DEFAULT_NOLO_SERVER_URL
|
|
29
28
|
} from "./chunk-OLZBQWZU.js";
|
|
30
29
|
import {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
asTrimmedNonEmptyStringArray
|
|
35
|
-
} from "./chunk-VMFTFOWF.js";
|
|
30
|
+
readPipeText,
|
|
31
|
+
spawnProcess
|
|
32
|
+
} from "./chunk-Y6ROFCZO.js";
|
|
36
33
|
import {
|
|
37
34
|
ownedAgentKey
|
|
38
35
|
} from "./chunk-M2EJHDJP.js";
|
|
@@ -40,11 +37,14 @@ import {
|
|
|
40
37
|
isRecord
|
|
41
38
|
} from "./chunk-KUG52IAP.js";
|
|
42
39
|
import {
|
|
43
|
-
|
|
44
|
-
} from "./chunk-
|
|
40
|
+
asTrimmedNonEmptyStringArray
|
|
41
|
+
} from "./chunk-3AH7LNUB.js";
|
|
45
42
|
import {
|
|
46
43
|
asOptionalPositiveFiniteNumber
|
|
47
44
|
} from "./chunk-U6VC4MU4.js";
|
|
45
|
+
import {
|
|
46
|
+
asTrimmedString
|
|
47
|
+
} from "./chunk-3EUW3WEO.js";
|
|
48
48
|
import {
|
|
49
49
|
asOptionalTrimmedString
|
|
50
50
|
} from "./chunk-G3SUCT4W.js";
|
|
@@ -781,7 +781,9 @@ async function runChatgptWebImageLocalJob(input, deps = {}) {
|
|
|
781
781
|
});
|
|
782
782
|
assertOutputImage(outPath);
|
|
783
783
|
const userAuthToken = input.userAuthToken?.trim() || "";
|
|
784
|
-
|
|
784
|
+
if (!userAuthToken) throw new Error("Cannot upload generated image without a user authentication token.");
|
|
785
|
+
const userId = parseUserIdFromAuthToken(userAuthToken);
|
|
786
|
+
if (!userId) throw new Error("Cannot determine authenticated user from the user authentication token.");
|
|
785
787
|
const serverBase = (input.serverBase?.trim() || DEFAULT_NOLO_SERVER_URL).replace(/\/+$/, "");
|
|
786
788
|
const uploaded = await uploadPngToNoloFs({
|
|
787
789
|
outPath,
|
|
@@ -2,19 +2,19 @@ import {
|
|
|
2
2
|
getCredentialsDir,
|
|
3
3
|
getLegacyCredentialPath,
|
|
4
4
|
migrateLegacyCredentialFile
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import {
|
|
7
|
-
asNonEmptyStringArray
|
|
8
|
-
} from "./chunk-VMFTFOWF.js";
|
|
5
|
+
} from "./chunk-HNGRBWYF.js";
|
|
9
6
|
import {
|
|
10
7
|
isRecord
|
|
11
8
|
} from "./chunk-KUG52IAP.js";
|
|
12
9
|
import {
|
|
13
|
-
|
|
14
|
-
} from "./chunk-
|
|
10
|
+
asNonEmptyStringArray
|
|
11
|
+
} from "./chunk-3AH7LNUB.js";
|
|
15
12
|
import {
|
|
16
13
|
asOptionalPositiveFiniteNumber
|
|
17
14
|
} from "./chunk-U6VC4MU4.js";
|
|
15
|
+
import {
|
|
16
|
+
asTrimmedString
|
|
17
|
+
} from "./chunk-3EUW3WEO.js";
|
|
18
18
|
|
|
19
19
|
// packages/agent-runtime/fileCredentialBroker.ts
|
|
20
20
|
import {
|
|
@@ -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,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readDbRecord,
|
|
3
3
|
writeAgentRecord
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NZWAO6LH.js";
|
|
5
5
|
import {
|
|
6
6
|
buildSkillSummaryMarker
|
|
7
7
|
} from "./chunk-VF4K2QE6.js";
|
|
8
|
+
import {
|
|
9
|
+
createSpaceKey
|
|
10
|
+
} from "./chunk-UAD2WT54.js";
|
|
8
11
|
import {
|
|
9
12
|
parseUserIdFromAuthToken,
|
|
10
13
|
readOption,
|
|
11
14
|
resolveAuthToken,
|
|
12
15
|
resolveServerUrl
|
|
13
16
|
} from "./chunk-A7GB5UGH.js";
|
|
14
|
-
import {
|
|
15
|
-
createSpaceKey
|
|
16
|
-
} from "./chunk-UAD2WT54.js";
|
|
17
17
|
import {
|
|
18
18
|
asTrimmedLowercaseString
|
|
19
19
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -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,
|