nolo-cli 0.99.0-alpha.1 → 0.99.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-CJP7VSJB.js → _executeModel-F324DLT6.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-EFWZSSZA.js} +47 -42
- package/{agentEmailCommands-UH7KTTCN.js → agentEmailCommands-3TQXT2DZ.js} +97 -87
- package/agentListCommands-EDV4RJ4D.js +742 -0
- package/{agentMachineCommands-6NVUXZGQ.js → agentMachineCommands-HCHRMJRJ.js} +48 -43
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-IRNZXVGE.js} +1 -1
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
- package/agentRecordCommands-YX7CN2PH.js +138 -0
- package/agentRunCommand-BT5U3G5Q.js +167 -0
- package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
- package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-SXYAKX3A.js} +48 -39
- package/{agentSlice-OU6TZKQP.js → agentSlice-TFZX3W5R.js} +14 -13
- package/{appDeleteCommands-32MHLR4L.js → appDeleteCommands-GTTBG53T.js} +46 -41
- package/{appDeployCommands-WCQOUSOB.js → appDeployCommands-ZZCHUJAT.js} +46 -41
- package/{appDeployStatusCommands-6QKB7DYN.js → appDeployStatusCommands-GZLLGY7Z.js} +46 -41
- package/{appGetCommands-SFAPP5PB.js → appGetCommands-ZRLWHJ3C.js} +46 -41
- package/{appListCommands-EKUBDRUO.js → appListCommands-OHARWLIL.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-36XI7AVG.js +7881 -0
- package/{chunk-CSSGXQJ3.js → chunk-3AD37QCF.js} +551 -516
- 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-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-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
- package/{chunk-DNCEALKX.js → chunk-7MMSLEPA.js} +22 -29
- package/{chunk-L5UXH3B2.js → chunk-7TKWCTSY.js} +22 -6
- package/chunk-7UEMHIFV.js +13536 -0
- 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-53SXIJK6.js → chunk-AW2UF3FF.js} +19 -17
- package/chunk-BMQ2MJUK.js +153 -0
- package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
- 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-BA63USCV.js → chunk-ED7UD6EF.js} +1 -1
- 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-6VFARHZW.js → chunk-G53AA7RW.js} +934 -1091
- package/{chunk-J4MOO56S.js → chunk-GARACBQB.js} +10 -2
- 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-WCI7KQ4F.js → chunk-HPATMUWW.js} +24 -77
- package/{chunk-WP7SWVOM.js → chunk-I5L5CBSE.js} +20 -11
- package/{chunk-7KBQIEEW.js → chunk-J6ZXSIBA.js} +11 -9
- package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
- package/{chunk-FXRSQVU4.js → chunk-L6VWRPBW.js} +24 -5
- package/{chunk-4OEFYTWL.js → chunk-LKERWYPX.js} +67 -48
- package/{chunk-OEVAY4J6.js → chunk-LNVJHIGA.js} +18 -20
- package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
- package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- 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-OW4APERY.js +870 -0
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-KIOVECFO.js → chunk-OYA47B3D.js} +873 -227
- package/{chunk-TOP2VXOR.js → chunk-PCF3QU5Q.js} +5 -5
- package/{chunk-WV42OMV7.js → chunk-PTDYOADJ.js} +8 -8
- package/{chunk-5H7KJX7J.js → chunk-SEB5HAUU.js} +5 -5
- 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-ICLAW6SN.js → chunk-TWYWQFJR.js} +10 -10
- 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-S2YPVYRY.js → chunk-UW4JVRYR.js} +67 -45
- 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-VA2M2T36.js → chunk-VNR63IV3.js} +23 -28
- package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
- package/{chunk-BP4XNZRM.js → chunk-W72ISAKC.js} +4 -4
- package/{chunk-DHDMC6FO.js → chunk-WCGC6S77.js} +14 -9
- package/{chunk-ZDXFQMB4.js → chunk-WHZ67DFH.js} +47 -67
- package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
- 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-MODC2W5M.js +833 -0
- package/{contentThunks-I3AWWOK4.js → contentThunks-636N2NA7.js} +36 -34
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-QNNIWYI3.js → createAgentAutomationAction-2ZGYUIT4.js} +38 -36
- package/createDialogAction-DOZD7XW7.js +69 -0
- package/{createPageAction-G2ASSMFZ.js → createPageAction-FJQVAHIK.js} +45 -42
- package/{chunk-Q6NAY3XN.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-LF7PLYAD.js} +49 -45
- package/{dialogSlice-HQLYBDH7.js → dialogSlice-FOWUVVPW.js} +40 -33
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-KYI2DC2U.js → docCreateCommands-NQR3S7A4.js} +48 -43
- package/{docDeleteCommands-67REUSRY.js → docDeleteCommands-V3IAQ2HT.js} +49 -44
- package/{docReadCommands-HOSVSBDJ.js → docReadCommands-GDX4CLSU.js} +47 -42
- package/{docStore-5LMRNCZG.js → docStore-F645L3JQ.js} +16 -12
- package/{docUpdateCommands-EMGCSMXY.js → docUpdateCommands-QMYXWQOU.js} +48 -43
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-I5ICDDHM.js} +5 -5
- package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
- package/{handleSendMessageAction-DMWWDWN5.js → handleSendMessageAction-6DCDAY6A.js} +110 -86
- package/index.js +87 -884
- package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
- 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-T4T4AUNA.js → machineCommands-465OUHT4.js} +91 -81
- package/machineWsRunDispatch-M3FUGFP4.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-LN2D7OGW.js → readlineWorkspace-LFCVKGAB.js} +2704 -2060
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-46XQV5Q7.js} +21 -25
- package/{runAgentClientLoop-I773V27D.js → runAgentClientLoop-KBRADH67.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-2P2X37MC.js} +51 -46
- package/{streamAgentChatTurn-PSF5RYKO.js → streamAgentChatTurn-CCOW4CUC.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-QNXUF3LE.js +116 -0
- package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-Q65IBDGO.js} +24 -21
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-QBT5WOLY.js → updateDialogTitleAction-ZLUQE6XC.js} +82 -44
- package/action-YVYQEAAV.js +0 -31
- package/agentListCommands-KMS675GZ.js +0 -406
- package/agentRecordCommands-A7AIQPNG.js +0 -128
- package/agentRunCommand-KO5UM7O6.js +0 -155
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-JS633LXU.js +0 -186
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-Q5FJJ6XI.js +0 -103
- package/chunk-S7Z2HMCN.js +0 -25
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YHYPCMKI.js +0 -19005
- package/chunk-YPREESF4.js +0 -225
- package/createDialogAction-STKILXXW.js +0 -65
- package/machineWsRunDispatch-F6XWVLKA.js +0 -144
- package/settingSlice-ZQZVUPKK.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-2ZTTVIGF.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(
|
|
@@ -5,20 +5,18 @@ import {
|
|
|
5
5
|
} from "./chunk-ZJ7UHBJS.js";
|
|
6
6
|
import {
|
|
7
7
|
deleteDialog,
|
|
8
|
-
|
|
9
|
-
initReactI18next,
|
|
10
|
-
instance,
|
|
8
|
+
runtime_default,
|
|
11
9
|
toast
|
|
12
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7UEMHIFV.js";
|
|
13
11
|
import {
|
|
14
|
-
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
formatISO
|
|
13
|
+
} from "./chunk-ZRAU6T47.js";
|
|
16
14
|
import {
|
|
17
15
|
require_react
|
|
18
16
|
} from "./chunk-YDH3FDFQ.js";
|
|
19
17
|
import {
|
|
20
18
|
isSystemAdmin
|
|
21
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-A4SQRTZ6.js";
|
|
22
20
|
import {
|
|
23
21
|
asRecordOrEmpty
|
|
24
22
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -27,7 +25,7 @@ import {
|
|
|
27
25
|
addContentAction,
|
|
28
26
|
checkSpaceMembership,
|
|
29
27
|
localSpaceAuthorityPatchStamp
|
|
30
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-E73ON47R.js";
|
|
31
29
|
import {
|
|
32
30
|
createSpaceKey,
|
|
33
31
|
normalizeSpaceId
|
|
@@ -41,7 +39,24 @@ import {
|
|
|
41
39
|
uploadFileAction,
|
|
42
40
|
upsertSSREntity,
|
|
43
41
|
write
|
|
44
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-4FFUDT6D.js";
|
|
43
|
+
import {
|
|
44
|
+
DEVICE_LOCAL_OWNER_ID,
|
|
45
|
+
getRuntimeServerContext,
|
|
46
|
+
isDeviceLocalSpaceBody,
|
|
47
|
+
resolveReplicationServers,
|
|
48
|
+
scheduleDeleteReplication,
|
|
49
|
+
scheduleWriteReplication
|
|
50
|
+
} from "./chunk-UJXNKP5V.js";
|
|
51
|
+
import {
|
|
52
|
+
buildTombstoneRecord
|
|
53
|
+
} from "./chunk-D2MDMY2M.js";
|
|
54
|
+
import {
|
|
55
|
+
extractUserId
|
|
56
|
+
} from "./chunk-M2EJHDJP.js";
|
|
57
|
+
import {
|
|
58
|
+
isRecord
|
|
59
|
+
} from "./chunk-KUG52IAP.js";
|
|
45
60
|
import {
|
|
46
61
|
SEPARATOR,
|
|
47
62
|
asTrimmedNonEmptyStringArray,
|
|
@@ -53,41 +68,26 @@ import {
|
|
|
53
68
|
rowKey,
|
|
54
69
|
splitKey,
|
|
55
70
|
ulid
|
|
56
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-3AH7LNUB.js";
|
|
57
72
|
import {
|
|
58
73
|
asOptionalFiniteNumber
|
|
59
74
|
} from "./chunk-WWC7I6TA.js";
|
|
60
75
|
import {
|
|
61
|
-
|
|
62
|
-
} from "./chunk-
|
|
63
|
-
import {
|
|
64
|
-
DEVICE_LOCAL_OWNER_ID,
|
|
65
|
-
createAsyncThunk,
|
|
66
|
-
getRuntimeServerContext,
|
|
67
|
-
isDeviceLocalSpaceBody,
|
|
68
|
-
resolveReplicationServers,
|
|
69
|
-
scheduleDeleteReplication,
|
|
70
|
-
scheduleWriteReplication
|
|
71
|
-
} from "./chunk-UKWGR5SS.js";
|
|
76
|
+
createAsyncThunk
|
|
77
|
+
} from "./chunk-VY6VFGKR.js";
|
|
72
78
|
import {
|
|
73
79
|
createClientLogger,
|
|
74
80
|
isAbortError
|
|
75
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-HIM3FCLF.js";
|
|
76
82
|
import {
|
|
77
83
|
selectIdentityUserId
|
|
78
84
|
} from "./chunk-SEJ5OS6F.js";
|
|
79
85
|
import {
|
|
80
|
-
|
|
81
|
-
} from "./chunk-
|
|
82
|
-
import {
|
|
83
|
-
isRecord
|
|
84
|
-
} from "./chunk-KUG52IAP.js";
|
|
86
|
+
asOptionalPositiveFiniteNumber
|
|
87
|
+
} from "./chunk-U6VC4MU4.js";
|
|
85
88
|
import {
|
|
86
89
|
asTrimmedString
|
|
87
90
|
} from "./chunk-3EUW3WEO.js";
|
|
88
|
-
import {
|
|
89
|
-
asOptionalPositiveFiniteNumber
|
|
90
|
-
} from "./chunk-U6VC4MU4.js";
|
|
91
91
|
import {
|
|
92
92
|
asOptionalTrimmedString
|
|
93
93
|
} from "./chunk-G3SUCT4W.js";
|
|
@@ -97,7 +97,6 @@ import {
|
|
|
97
97
|
|
|
98
98
|
// packages/render/table/tableStore.ts
|
|
99
99
|
var import_react = __toESM(require_react(), 1);
|
|
100
|
-
var import_date_fns2 = __toESM(require_date_fns(), 1);
|
|
101
100
|
import { ulid as ulid3 } from "ulid";
|
|
102
101
|
|
|
103
102
|
// packages/render/table/fetchAndCacheTableRows.ts
|
|
@@ -434,25 +433,7 @@ function addColumnOptionInMeta(meta, input, deps) {
|
|
|
434
433
|
}
|
|
435
434
|
|
|
436
435
|
// packages/render/table/createTableAction.ts
|
|
437
|
-
var import_date_fns = __toESM(require_date_fns(), 1);
|
|
438
436
|
import { ulid as ulid2 } from "ulid";
|
|
439
|
-
|
|
440
|
-
// packages/app/i18n/client.ts
|
|
441
|
-
instance.use(initReactI18next).init({
|
|
442
|
-
...i18nBaseConfig,
|
|
443
|
-
lng: "zh-CN" /* ZH_CN */,
|
|
444
|
-
fallbackLng: {
|
|
445
|
-
["en" /* EN */]: ["en" /* EN */],
|
|
446
|
-
["zh-CN" /* ZH_CN */]: ["zh-CN" /* ZH_CN */, "en" /* EN */],
|
|
447
|
-
["zh-Hant" /* ZH_HANT */]: ["zh-Hant" /* ZH_HANT */, "zh-CN" /* ZH_CN */, "en" /* EN */],
|
|
448
|
-
["ja" /* JA */]: ["ja" /* JA */, "en" /* EN */],
|
|
449
|
-
default: ["en" /* EN */]
|
|
450
|
-
},
|
|
451
|
-
compatibilityJSON: "v3"
|
|
452
|
-
});
|
|
453
|
-
var client_default = instance;
|
|
454
|
-
|
|
455
|
-
// packages/render/table/createTableAction.ts
|
|
456
437
|
var DEFAULT_COLUMNS = [
|
|
457
438
|
{
|
|
458
439
|
name: "title",
|
|
@@ -554,9 +535,9 @@ var createTableAction = async ({
|
|
|
554
535
|
const spaceId = customSpaceId ?? getCurrentSpaceId();
|
|
555
536
|
const tableId = ulid2();
|
|
556
537
|
const now = /* @__PURE__ */ new Date();
|
|
557
|
-
const nowIso =
|
|
538
|
+
const nowIso = formatISO(now);
|
|
558
539
|
const dbKey = metaKey(userId, tableId);
|
|
559
|
-
const defaultTitle =
|
|
540
|
+
const defaultTitle = runtime_default.t("space:newTable", {
|
|
560
541
|
defaultValue: "\u65B0\u5EFA\u8868\u683C"
|
|
561
542
|
});
|
|
562
543
|
const title = asOptionalTrimmedString(customTitle) ?? defaultTitle;
|
|
@@ -924,7 +905,7 @@ var addRow = createTableCommand(
|
|
|
924
905
|
});
|
|
925
906
|
try {
|
|
926
907
|
const { dbKey, rowId } = rowKey.create(tenantId, tableId);
|
|
927
|
-
const nowIso =
|
|
908
|
+
const nowIso = formatISO(/* @__PURE__ */ new Date());
|
|
928
909
|
const row = {
|
|
929
910
|
dbKey,
|
|
930
911
|
tenantId,
|
|
@@ -985,7 +966,7 @@ var deleteRow = createTableCommand(
|
|
|
985
966
|
if (!row) {
|
|
986
967
|
throw new Error(`\u5F53\u524D\u8868\u4E2D\u627E\u4E0D\u5230\u8981\u5220\u9664\u7684\u884C\uFF1A${dbKey}`);
|
|
987
968
|
}
|
|
988
|
-
const nowIso =
|
|
969
|
+
const nowIso = formatISO(/* @__PURE__ */ new Date());
|
|
989
970
|
const tombstoneRow = {
|
|
990
971
|
...row,
|
|
991
972
|
deletedAt: nowIso,
|
|
@@ -1063,7 +1044,7 @@ var addColumn = createTableCommand(
|
|
|
1063
1044
|
const result = addColumnToMeta(
|
|
1064
1045
|
meta,
|
|
1065
1046
|
{ columnName },
|
|
1066
|
-
{ id: ulid3(), nowIso:
|
|
1047
|
+
{ id: ulid3(), nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1067
1048
|
);
|
|
1068
1049
|
if (!result.ok) {
|
|
1069
1050
|
throw new Error(result.error);
|
|
@@ -1104,7 +1085,7 @@ var deleteColumn = createTableCommand(
|
|
|
1104
1085
|
meta,
|
|
1105
1086
|
state.rows,
|
|
1106
1087
|
{ columnName },
|
|
1107
|
-
{ nowIso:
|
|
1088
|
+
{ nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1108
1089
|
);
|
|
1109
1090
|
if (!result.ok) {
|
|
1110
1091
|
throw new Error(result.error);
|
|
@@ -1146,7 +1127,7 @@ var reorderColumn = createTableCommand(
|
|
|
1146
1127
|
const result = reorderColumnInMeta(
|
|
1147
1128
|
meta,
|
|
1148
1129
|
{ fromIndex, toIndex },
|
|
1149
|
-
{ nowIso:
|
|
1130
|
+
{ nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1150
1131
|
);
|
|
1151
1132
|
if (!result.ok) {
|
|
1152
1133
|
throw new Error(result.error);
|
|
@@ -1187,7 +1168,7 @@ var renameColumnLabel = createTableCommand(
|
|
|
1187
1168
|
const result = renameColumnLabelInMeta(
|
|
1188
1169
|
meta,
|
|
1189
1170
|
{ columnId, label: newLabel },
|
|
1190
|
-
{ nowIso:
|
|
1171
|
+
{ nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1191
1172
|
);
|
|
1192
1173
|
if (!result.ok) {
|
|
1193
1174
|
throw new Error(result.error);
|
|
@@ -1225,7 +1206,7 @@ var updateColumnWidth = createTableCommand(
|
|
|
1225
1206
|
const result = updateColumnWidthInMeta(
|
|
1226
1207
|
meta,
|
|
1227
1208
|
{ columnId, width },
|
|
1228
|
-
{ nowIso:
|
|
1209
|
+
{ nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1229
1210
|
);
|
|
1230
1211
|
if (!result.ok) {
|
|
1231
1212
|
throw new Error(result.error);
|
|
@@ -1263,7 +1244,7 @@ var addColumnOption = createTableCommand(
|
|
|
1263
1244
|
const result = addColumnOptionInMeta(
|
|
1264
1245
|
meta,
|
|
1265
1246
|
{ columnId, option },
|
|
1266
|
-
{ nowIso:
|
|
1247
|
+
{ nowIso: formatISO(/* @__PURE__ */ new Date()) }
|
|
1267
1248
|
);
|
|
1268
1249
|
if (!result.ok) {
|
|
1269
1250
|
throw new Error(result.error);
|
|
@@ -1305,7 +1286,7 @@ var renameTable = createTableCommand(
|
|
|
1305
1286
|
if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
|
|
1306
1287
|
throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
|
|
1307
1288
|
}
|
|
1308
|
-
const nowIso =
|
|
1289
|
+
const nowIso = formatISO(/* @__PURE__ */ new Date());
|
|
1309
1290
|
setState((s) => ({ ...s, error: null }));
|
|
1310
1291
|
try {
|
|
1311
1292
|
if (dispatch) {
|
|
@@ -1346,7 +1327,7 @@ var updateTableIcon = createTableCommand(
|
|
|
1346
1327
|
if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
|
|
1347
1328
|
throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
|
|
1348
1329
|
}
|
|
1349
|
-
const nowIso =
|
|
1330
|
+
const nowIso = formatISO(/* @__PURE__ */ new Date());
|
|
1350
1331
|
setState((s) => ({ ...s, error: null }));
|
|
1351
1332
|
try {
|
|
1352
1333
|
if (dispatch) {
|
|
@@ -1384,7 +1365,7 @@ var updateCell = createTableCommand(
|
|
|
1384
1365
|
const { dbKey, columnName, value } = args;
|
|
1385
1366
|
setState((s) => ({ ...s, error: null }));
|
|
1386
1367
|
try {
|
|
1387
|
-
const nowIso =
|
|
1368
|
+
const nowIso = formatISO(/* @__PURE__ */ new Date());
|
|
1388
1369
|
if (dispatch) {
|
|
1389
1370
|
await safeDispatch(
|
|
1390
1371
|
dispatch,
|
|
@@ -1453,11 +1434,11 @@ var ENTITY_DELETE_STRATEGIES = {
|
|
|
1453
1434
|
await dispatch(deleteTable({ dbKey: key })).unwrap();
|
|
1454
1435
|
},
|
|
1455
1436
|
file: async (key, { thunkAPI }) => {
|
|
1456
|
-
const { deleteFileAction } = await import("./deleteFile-
|
|
1437
|
+
const { deleteFileAction } = await import("./deleteFile-AJ2EZMHT.js");
|
|
1457
1438
|
await deleteFileAction(key, thunkAPI);
|
|
1458
1439
|
},
|
|
1459
1440
|
image: async (key, { thunkAPI }) => {
|
|
1460
|
-
const { deleteFileAction } = await import("./deleteFile-
|
|
1441
|
+
const { deleteFileAction } = await import("./deleteFile-AJ2EZMHT.js");
|
|
1461
1442
|
await deleteFileAction(key, thunkAPI);
|
|
1462
1443
|
},
|
|
1463
1444
|
agent: async (key, { dispatch, userId, sourceServerOrigin }) => {
|
|
@@ -2097,11 +2078,11 @@ var uploadAndAddFileToSpaceAction = async (payload, thunkAPI) => {
|
|
|
2097
2078
|
const state3 = getState();
|
|
2098
2079
|
const userId = selectIdentityUserId(state3);
|
|
2099
2080
|
if (!userId) {
|
|
2100
|
-
|
|
2081
|
+
throw new Error("Cannot upload a file to a space without an authenticated user.");
|
|
2101
2082
|
}
|
|
2102
2083
|
try {
|
|
2103
2084
|
const id = ulid();
|
|
2104
|
-
const dbKey = fileKey.single(userId
|
|
2085
|
+
const dbKey = fileKey.single(userId, id);
|
|
2105
2086
|
const contentType = "file" /* FILE */;
|
|
2106
2087
|
const fileCategory = resolveFileCategory({
|
|
2107
2088
|
mimeType: file.type,
|
|
@@ -2391,7 +2372,6 @@ var updateContentCategory = createAsyncThunk(
|
|
|
2391
2372
|
|
|
2392
2373
|
export {
|
|
2393
2374
|
fetchAndCacheTableRows,
|
|
2394
|
-
client_default,
|
|
2395
2375
|
getTableState,
|
|
2396
2376
|
loadTableRows,
|
|
2397
2377
|
addRow,
|
|
@@ -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
|
};
|
|
@@ -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,
|