nolo-cli 0.54.0 → 0.61.0-alpha.2
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 +3 -3
- package/{_executeModel-OPTKYHJA.js → _executeModel-CKT6RGTL.js} +48 -45
- package/{action-ORXWW2ZG.js → action-76JX3JX3.js} +7 -6
- package/{addContentAction-53BZ34AE.js → addContentAction-V3NAZRTJ.js} +6 -5
- package/{addDialogAgentAction-JRYUS54Y.js → addDialogAgentAction-RZOAF46K.js} +5 -4
- package/{agentDeleteCommand-FJIWU2BS.js → agentDeleteCommand-VN7NPXQ4.js} +30 -27
- package/{agentEmailCommands-CE32L43B.js → agentEmailCommands-F2TNAV4A.js} +59 -56
- package/{agentGrantCommands-2LEZDADN.js → agentGrantCommands-R3VQEZJR.js} +1 -1
- package/{agentListCommands-VJNKULIK.js → agentListCommands-OSM2ANI3.js} +61 -31
- package/{agentMachineCommands-HCJ3WQXL.js → agentMachineCommands-MTPWYVRV.js} +31 -28
- package/{agentPullCommand-M552CYSI.js → agentPullCommand-N7L2CT7L.js} +2 -2
- package/{agentRecordCommands-QFWERED4.js → agentRecordCommands-VWAWTVVC.js} +57 -54
- package/{agentRunCommand-G3GQMUNN.js → agentRunCommand-PLZOBNVK.js} +61 -58
- package/{agentRunControl-INKFDXDA.js → agentRunControl-WECMOO6O.js} +11 -6
- package/{agentRuntimeLocal-K327ELSL.js → agentRuntimeLocal-XCJLRWQE.js} +26 -23
- package/{agentSlice-ODKF4J6M.js → agentSlice-F6DOP4IW.js} +8 -7
- package/{appDeleteCommands-XUXMFDI4.js → appDeleteCommands-3BCFTRFJ.js} +30 -27
- package/{appDeployCommands-37F4GPCU.js → appDeployCommands-B4GMHCYA.js} +30 -27
- package/{appDeployStatusCommands-WSPU7TUK.js → appDeployStatusCommands-4MN36WIG.js} +30 -27
- package/{appGetCommands-YLOBA3EM.js → appGetCommands-4GJIEUAX.js} +30 -27
- package/{appListCommands-UD62R5ME.js → appListCommands-CHU53GSX.js} +30 -27
- package/{authCommand-OK6HLHGS.js → authCommand-WOTWLJNF.js} +35 -29
- package/{authCommands-2DUIUEMT.js → authCommands-ILTBI6JV.js} +7 -5
- package/{chatQueueReduxAdapter-TV2TUOQS.js → chatQueueReduxAdapter-HNSQXNIR.js} +20 -18
- package/{chunk-HPW5MNDQ.js → chunk-22BTGNSP.js} +113 -57
- package/{chunk-TR4DXUYX.js → chunk-2HPRMEEZ.js} +1180 -736
- package/{chunk-UNZDCI3O.js → chunk-2KDR4CWE.js} +35 -4
- package/{chunk-3ZTR7ZO4.js → chunk-2PGGC63K.js} +1 -1
- package/{chunk-JXIP6ZWH.js → chunk-37QVS7BU.js} +18 -5
- package/{chunk-EA5OYZVD.js → chunk-37XDGCY7.js} +1 -1
- package/chunk-3BLB7QKO.js +433 -0
- package/{chunk-CS6TCJ7E.js → chunk-3JQ2NRYU.js} +30 -7
- package/{chunk-RHMDMTDK.js → chunk-3JWKQDA4.js} +2 -2
- package/{chunk-3LKZRP7E.js → chunk-3QGUVVX5.js} +2 -2
- package/{chunk-SSXTSPSG.js → chunk-45YO6H7P.js} +71 -30
- package/{chunk-EJE33XNR.js → chunk-4C4ST2YE.js} +1521 -565
- package/{chunk-YLCUU3WM.js → chunk-4NJEIGBQ.js} +5 -5
- package/{chunk-K4NISKOR.js → chunk-5ZYA4JJ3.js} +47 -17
- package/{chunk-3Y2K5O2R.js → chunk-7A3RRUCQ.js} +125 -40
- package/{chunk-5FCIPEKT.js → chunk-7O7KH4X5.js} +1051 -926
- package/{chunk-6HDYSFLO.js → chunk-7UF7CQ6B.js} +3 -3
- package/{chunk-SUEIAK5N.js → chunk-AQMVUA7N.js} +1 -0
- package/{chunk-WQHGJHAL.js → chunk-AVE2YR4F.js} +732 -726
- package/{chunk-6COJEAYH.js → chunk-B7DXRX7F.js} +44 -37
- package/chunk-BFU6C242.js +66 -0
- package/{chunk-IA3A5373.js → chunk-C3FZR5EC.js} +1 -1
- package/{chunk-IWUMSAQF.js → chunk-CJCJF5XB.js} +26 -3
- package/{chunk-UGBHDMHI.js → chunk-CP7VIDZ7.js} +1 -1
- package/{chunk-JON2PHYT.js → chunk-CTCW7U7N.js} +1 -1
- package/{chunk-YBFJQC2M.js → chunk-D5XKNNUV.js} +65 -42
- package/{chunk-7NYDJAQ7.js → chunk-DNNSCSA2.js} +5 -5
- package/{chunk-NI2BS6UD.js → chunk-DWUCB2A3.js} +1 -1
- package/{chunk-AA564GBL.js → chunk-DZZL7UBV.js} +1 -1
- package/{chunk-75MSWWUE.js → chunk-E6RGHPDR.js} +5 -3
- package/chunk-EDKF7RX4.js +30 -0
- package/{chunk-FJHMLRDQ.js → chunk-ES6CVKVD.js} +21 -27
- package/{chunk-SYYUU7EV.js → chunk-FHAGENAS.js} +2 -3
- package/{chunk-NJUQBYFJ.js → chunk-FKFMIBTT.js} +3 -1
- package/{chunk-INZZJSQF.js → chunk-FZGV4FGK.js} +24 -12
- package/{chunk-YQBXOHE6.js → chunk-GAL47RNP.js} +1 -1
- package/{chunk-UOWXD4VN.js → chunk-HBPV76EK.js} +335 -243
- package/{chunk-MLEZPE3U.js → chunk-HLU5Q2GV.js} +4 -4
- package/{chunk-TC6P4NDR.js → chunk-HQP7HJDL.js} +6 -6
- package/{chunk-7FAS3NEF.js → chunk-IYCUMIYS.js} +19 -15
- package/{chunk-AUVFJGPC.js → chunk-JX5PJCWS.js} +7 -5
- package/{chunk-LYGNQHUW.js → chunk-JYYZCK2Z.js} +2 -4
- package/{chunk-XOJRZUPF.js → chunk-KWSQR2KK.js} +14 -29
- package/{chunk-2WBFJHQA.js → chunk-L7B47JXR.js} +34 -39
- package/{chunk-EICIFHVS.js → chunk-LAFC3B2I.js} +1 -1
- package/{chunk-N4JKMCY3.js → chunk-LJKICKVC.js} +2 -2
- package/chunk-M3JEW6N6.js +193 -0
- package/{chunk-LRGKOI5Y.js → chunk-MBOEV4L2.js} +7 -3
- package/{chunk-SVDMVX4G.js → chunk-MMZ6ZTVO.js} +112 -73
- package/{chunk-JDSUTNYY.js → chunk-MP64VFGD.js} +2 -2
- package/{chunk-NFLA6GSU.js → chunk-MXUDQZXQ.js} +44 -5
- package/chunk-N4G4PKQ6.js +23 -0
- package/{chunk-KXKQO4Q6.js → chunk-NTW5GWDM.js} +58 -1
- package/chunk-ONXOABJR.js +215 -0
- package/{chunk-TY3ADTX5.js → chunk-OZX2IPKM.js} +7 -2
- package/{chunk-Q4XZVZPN.js → chunk-P7OOB7QP.js} +1 -1
- package/{chunk-XIJZOCSP.js → chunk-PEZJEQAO.js} +1 -1
- package/{chunk-SWJGJMTW.js → chunk-PQDIDWGX.js} +1 -1
- package/chunk-PSCNXBYA.js +11 -0
- package/{chunk-BY2FF2C4.js → chunk-QEFJJS2I.js} +55 -73
- package/{chunk-BG7J6Y5X.js → chunk-QEW2MFDQ.js} +1 -1
- package/{chunk-KLIBF3BY.js → chunk-RDBARW6T.js} +8 -3
- package/{chunk-ZVOHVJI3.js → chunk-RJ2SAFB5.js} +82 -35
- package/{chunk-MYMBBB6Q.js → chunk-RVWRKFUB.js} +5 -3
- package/{chunk-43CXXVJD.js → chunk-RXX4GDIH.js} +1 -1
- package/chunk-SEJ5OS6F.js +49 -0
- package/{chunk-SAJSBPI2.js → chunk-SOJM57FX.js} +5 -2
- package/{chunk-EKLRRZIN.js → chunk-SPAQ4PVV.js} +0 -5
- package/{chunk-L7NG2M6H.js → chunk-TRV2MIDW.js} +89 -74
- package/{chunk-5UAYZEXO.js → chunk-UZPQSVM6.js} +1 -1
- package/{chunk-SVC3GGUA.js → chunk-VMWYBIXG.js} +7 -5
- package/{chunk-ZHXJ6M7T.js → chunk-W7XHHYWM.js} +4 -0
- package/{chunk-UR66XPVF.js → chunk-XAVSS3KE.js} +21 -3
- package/{chunk-A65UV3M5.js → chunk-XOKOSO35.js} +10 -19
- package/{chunk-VZMUOPYG.js → chunk-XTJTN3RW.js} +46 -3
- package/{chunk-T5HJEUQN.js → chunk-YCDWJX45.js} +1 -1
- package/{chunk-BBTN4NQD.js → chunk-Z4QSJILV.js} +85 -13
- package/{chunk-O5FLGN2L.js → chunk-ZRSJ3JEH.js} +6 -2
- package/{cliExecutor-BBUVQU4L.js → cliExecutor-HG3S345O.js} +1 -1
- package/{codingSkills-BCQXRZOI.js → codingSkills-VDXQYWX4.js} +2 -2
- package/{contentThunks-KNI6VXLT.js → contentThunks-7YG2ZYQC.js} +21 -19
- package/{cooldownCommands-GI5NNWGL.js → cooldownCommands-BSCH2W7P.js} +2 -2
- package/{createAgentAutomationAction-OK4L33KF.js → createAgentAutomationAction-PJQSCAIO.js} +23 -21
- package/{createDialogAction-JDSMY4AY.js → createDialogAction-SFEJX6SP.js} +23 -21
- package/{createPageAction-T7RA3HCG.js → createPageAction-B7WRHOQO.js} +24 -22
- package/{dbSlice-TVX6SN2T.js → dbSlice-IBVOBVMS.js} +5 -4
- package/{deleteFile-JYKRT7C3.js → deleteFile-FWP2PSBG.js} +3 -2
- package/{dialogCommands-UQZYWOOV.js → dialogCommands-VL2X22QC.js} +30 -27
- package/{dialogSlice-TYW2G7IL.js → dialogSlice-ANMACABO.js} +20 -18
- package/{docCreateCommands-OA6HZBWO.js → docCreateCommands-ITLGZ5YI.js} +29 -26
- package/{docDeleteCommands-KBB3YQI2.js → docDeleteCommands-LH3YNL4C.js} +30 -27
- package/{docReadCommands-ZLMFVC67.js → docReadCommands-YAJ77F36.js} +29 -26
- package/{docStore-2URPBVCS.js → docStore-D4HGHPWI.js} +6 -5
- package/{docUpdateCommands-HMH5KUON.js → docUpdateCommands-DQBOMH2G.js} +29 -26
- package/{getPricing-RFOPUWHY.js → getPricing-NM3NUTAS.js} +4 -4
- package/handleSendMessageAction-DF2OABGW.js +675 -0
- package/index.js +79 -88
- package/{lib-2ZTNRXR4.js → lib-FRRS27KN.js} +63 -28
- package/{localRuntimeAuthority-KQDAE64E.js → localRuntimeAuthority-R5UBODT3.js} +6 -4
- package/{localRuntimeDb-PF7CFKDL.js → localRuntimeDb-P37ZTX55.js} +1 -1
- package/{machineCommands-RK6L7ZWL.js → machineCommands-JXDYQ5LB.js} +296 -79
- package/{machineWsRunDispatch-3X64DW2Z.js → machineWsRunDispatch-3QHI7JX5.js} +55 -52
- package/{memberThunks-THZYZFSN.js → memberThunks-VZI6G7YZ.js} +10 -8
- package/{models-JVKUEER5.js → models-FAMINFZ7.js} +2 -2
- package/package.json +3 -2
- package/{read-K4JU4MQC.js → read-2BYWW7AA.js} +3 -2
- package/{readDocTool-LQGR6FUN.js → readDocTool-LC3A7QTB.js} +1 -1
- package/{readlineWorkspace-XUFJV3RS.js → readlineWorkspace-KVZTEAHB.js} +4365 -2795
- package/{removeDialogAgentAction-ECHCFB7N.js → removeDialogAgentAction-SFYZXHNK.js} +8 -7
- package/{runAgentClientLoop-24GQ2AW6.js → runAgentClientLoop-KGTEL7ZP.js} +49 -45
- package/{runtimeDoctorCommands-JKTTN723.js → runtimeDoctorCommands-CROTMULY.js} +7 -5
- package/{setDialogExtraReferencesAction-KCVJNGMB.js → setDialogExtraReferencesAction-Q32RGFTA.js} +6 -5
- package/{setPrimaryDialogAgentAction-VDOBOMKC.js → setPrimaryDialogAgentAction-BFYJHUJS.js} +8 -7
- package/{settingSlice-VR2IJSXC.js → settingSlice-IRUU4VFB.js} +6 -5
- package/{skillDiscovery-2QTZINON.js → skillDiscovery-NTRLM6KP.js} +1 -1
- package/{spaceCommands-S5YJJXL7.js → spaceCommands-KNAYWMCZ.js} +33 -215
- package/{streamAgentChatTurn-QHKP3ABO.js → streamAgentChatTurn-FLYPTXKZ.js} +105 -73
- package/{switchDialogAgentAction-5L4UP7VI.js → switchDialogAgentAction-L2KOKCGG.js} +5 -4
- package/{tableCommands-R6WFRDYF.js → tableCommands-SUNTHAYX.js} +1 -1
- package/{toolApiClient-53U4UDFF.js → toolApiClient-VGYUB4P5.js} +2 -1
- package/{tools-SSXSTC3O.js → tools-CVLUXK6P.js} +37 -34
- package/{tuiSummaryLlmCaller-URFJHFC5.js → tuiSummaryLlmCaller-F3DPFFZM.js} +15 -13
- package/{updateCommands-IYKLF3JX.js → updateCommands-AJYSD73Y.js} +2 -2
- package/{updateDialogTitleAction-YFYAEW3T.js → updateDialogTitleAction-HWJIZEIV.js} +23 -21
- package/agentSuperviseCommands-5AR3DKNN.js +0 -640
- package/chunk-6IGD47IC.js +0 -19
- package/chunk-FD36SCCD.js +0 -105
- package/chunk-GRFK2XP4.js +0 -230
- package/chunk-HJTAGT3W.js +0 -370
- package/handleSendMessageAction-GO53TY7U.js +0 -409
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
isImageUrlPart
|
|
3
|
-
|
|
2
|
+
isImageUrlPart,
|
|
3
|
+
isOllamaEndpoint
|
|
4
|
+
} from "./chunk-XTJTN3RW.js";
|
|
4
5
|
import {
|
|
5
6
|
AGENT_SELECTION_PRIORITY_INSTRUCTIONS
|
|
6
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RJ2SAFB5.js";
|
|
8
|
+
import {
|
|
9
|
+
getModelContextWindow
|
|
10
|
+
} from "./chunk-5ZYA4JJ3.js";
|
|
7
11
|
import {
|
|
8
12
|
estimateTokenCount
|
|
9
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PSCNXBYA.js";
|
|
10
14
|
import {
|
|
11
15
|
canonicalizeToolNames
|
|
12
16
|
} from "./chunk-O6OSWFZQ.js";
|
|
@@ -14,7 +18,7 @@ import {
|
|
|
14
18
|
PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
15
19
|
isFireworksKimiModel,
|
|
16
20
|
isNoloHostedProvider
|
|
17
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-22BTGNSP.js";
|
|
18
22
|
import {
|
|
19
23
|
asTrimmedLowercaseString
|
|
20
24
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -79,6 +83,9 @@ var buildStartupProtocolBlock = (options = {}) => {
|
|
|
79
83
|
lines.push(
|
|
80
84
|
"- \u6267\u884C\u547D\u4EE4\u65F6\u6839\u636E\u73AF\u5883\u9009 shell\uFF08Windows \u9ED8\u8BA4 PowerShell\uFF0CLinux/macOS \u9ED8\u8BA4 bash\uFF09\uFF1B\u6536\u96C6\u591A\u4E2A\u53EA\u8BFB\u4E8B\u5B9E\u4F18\u5148\u5408\u5E76\u4E3A\u4E00\u6B21 shell \u590D\u5408\u8C03\u7528\uFF0C\u907F\u514D\u62C6\u6210\u7EC6\u788E\u63A2\u9488\u3002"
|
|
81
85
|
);
|
|
86
|
+
lines.push(
|
|
87
|
+
"- \u9700\u8981\u5F53\u524D\u7CBE\u786E\u65F6\u95F4\uFF08\u5206\u949F/\u79D2\uFF09\u65F6\uFF0C\u901A\u8FC7 shell `date` \u83B7\u53D6\uFF0C\u4E0D\u8981\u51ED\u8BB0\u5FC6\u6216\u4F30\u7B97\u3002"
|
|
88
|
+
);
|
|
82
89
|
}
|
|
83
90
|
return lines.join("\n");
|
|
84
91
|
};
|
|
@@ -174,12 +181,12 @@ var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
|
|
|
174
181
|
|
|
175
182
|
// packages/ai/agent/toolGuidedSections.ts
|
|
176
183
|
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
177
|
-
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \
|
|
184
|
+
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \u63A7\u5236/\u8BCA\u65AD\u3002\u4F55\u65F6\u6D3E\u53D1\u89C1\u300C\u591A Agent \u534F\u4F5C\u300D\u6BB5\uFF1B\u672C\u6BB5\u53EA\u8BB2\u6D3E\u53D1\u4E4B\u540E\u7684\u76EF\u68A2\u4E0E\u6392\u9519\u3002
|
|
178
185
|
|
|
179
|
-
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u2014\u2014\
|
|
180
|
-
2. \u7981\u6B62\u8F6E\u8BE2/\u7981\u7A7A\u8F6C/\u522B\u590D\u8FF0 status\uFF0C\u8BED\u4E49\u4EE5\u4E24\u4E2A\u5DE5\u5177\u7684\u63CF\u8FF0\u4E3A\u51C6\
|
|
186
|
+
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u2014\u2014\u7531\u5BBF\u4E3B\u80FD\u529B\u51B3\u5B9A\u5982\u4F55\u63A5\u529B\u3002\u662F\u5426\u5141\u8BB8\u963B\u585E\u7B49\u5F85\uFF0C\u7531\u5DE5\u5177\u8868\u81EA\u5DF1\u56DE\u7B54\uFF0C\u4E0D\u7528\u4F60\u731C\u6D4B\u73AF\u5883\uFF1AcontrolAgentRun \u7684 action \u91CC\u6709 wait \u5C31\u53EF\u4EE5\u7528\u5B83\u963B\u585E\u5230\u7EC8\u6001\uFF08\u540C\u6837\u4E0D\u8981\u81EA\u5DF1\u5FAA\u73AF wait\uFF0C\u90A3\u662F\u4F2A\u88C5\u6210\u7B49\u5F85\u7684\u8F6E\u8BE2\uFF09\uFF1B\u6CA1\u6709 wait \u65F6\u6309\u5DE5\u5177\u63CF\u8FF0\u5904\u7406\uFF0C\u4E0D\u8981\u636E\u6B64\u63A8\u65AD\u4E00\u5B9A\u5B58\u5728 terminal wake\uFF0C\u6D3E\u53D1\u5B8C\u76F4\u63A5\u6536\u5C3E\u3002
|
|
187
|
+
2. \u7981\u6B62\u8F6E\u8BE2/\u7981\u7A7A\u8F6C/\u522B\u590D\u8FF0 status\uFF0C\u8BED\u4E49\u4EE5\u4E24\u4E2A\u5DE5\u5177\u7684\u63CF\u8FF0\u4E3A\u51C6\u3002\u6B63\u5E38\u540E\u53F0 run \u6D3E\u53D1\u540E\u6536\u5C3E\uFF0C\u80FD\u5426\u6C47\u603B\u3001\u8981\u4E0D\u8981\u7EE7\u7EED\u7531\u5BBF\u4E3B\u7EC8\u6001\u901A\u77E5\u51B3\u5B9A\uFF0C\u4E0D\u8981\u7528\u4E3B\u52A8 status \u5224\u65AD\u3002status \u4EC5\u7528\u4E8E\u5F02\u5E38\u8BCA\u65AD\u2014\u2014\u6000\u7591\u5361\u6B7B\u3001failed \u540E\u770B\u8BE6\u60C5/\u65E5\u5FD7\u3001\u7528\u6237\u660E\u786E\u8BE2\u95EE\u6267\u884C\u7EC6\u8282\uFF08tailLines:0 \u53EA\u770B\u72B6\u6001\u6458\u8981\uFF09\u3002\u5E76\u884C\uFF1A\u72EC\u7ACB\u5B50\u4EFB\u52A1\u4E00\u6B21\u6D3E\u5B8C\uFF0C\u7B49\u5404\u81EA\u7EC8\u6001\u9010\u4E2A\u6C47\u603B\u3002\u65E0\u6587\u4EF6\u4EA4\u96C6\u3001\u65E0\u771F\u5B9E\u6570\u636E\u4F9D\u8D56\u7684\u4EFB\u52A1\u9ED8\u8BA4\u5E76\u53D1\u6D3E\u53D1\u2014\u2014\u4E0D\u8981\u56E0\u5171\u7528\u540C\u4E00\u6267\u884C agent/\u901A\u9053\u800C\u81EA\u884C\u52A0\u300C\u901A\u9053\u4E32\u884C\u300D\u4FDD\u5B88\u5047\u8BBE\uFF08\u540C\u901A\u9053\u5141\u8BB8\u5E76\u53D1 fork \u591A\u5B9E\u4F8B\uFF0C\u5B9E\u4F8B\u95F4\u65E0\u4E0A\u4E0B\u6587\u5171\u4EAB\uFF09\uFF1B\u53EA\u6709\u771F\u5B9E\u6587\u4EF6/\u6570\u636E\u4F9D\u8D56\u6216 brief \u660E\u793A\u51B2\u7A81\u9762\u65F6\u624D\u4E32\u884C\u3002
|
|
181
188
|
3. \u6392\u9519\u5148\u5206\u8BCA\uFF1AagentKey \u6CA1\u7167\u6284 listAgents \u5C31\u5148\u4FEE key\uFF08\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B\u62A5\u9519\u542B not found / invalid ref / Local agent config not found \u2192 \u5148 readAgent \u590D\u6838\uFF0C**\u7981\u6B62**\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u6216\u901A\u9053\u5168\u6302\uFF1B\u540C\u4E00\u5DF2\u9A8C\u8BC1 key \u4ECD\u5931\u8D25\u4E14\u9519\u8BEF\u660E\u786E\u6307\u5411\u901A\u9053\uFF08429\u3001\u9274\u6743\u5931\u8D25\u3001machine offline\uFF09\u624D\u8BB0\u4E3A\u901A\u9053\u6545\u969C\u3002\u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u9700 \u22652 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u81EA\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\u4E14\u5931\u8D25\uFF0C\u5019\u9009\u4E0D\u8DB3\u5C31\u5982\u5B9E\u62A5\u544A\u300C\u4EC5\u6B64\u5019\u9009\u4E14\u901A\u9053\u5931\u8D25\u300D\uFF0C\u4E0D\u5F97\u5938\u5927\u6210\u5168\u5E93\u4E0D\u53EF\u7528\u3002
|
|
182
|
-
4. \u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\
|
|
189
|
+
4. \u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\u3002append \u53EF\u76F4\u63A5\u8C03\u7528\u2014\u2014not found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u5165\u961F\u7531 executor \u81EA\u8BC1\uFF1Bstop \u53EF\u76F4\u63A5\u8C03\u7528\uFF0Cnot found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u7531\u63A7\u5236\u5E73\u9762\u81EA\u884C\u5904\u7406\uFF08\u5DF2\u7EC8\u6001\u539F\u6837\u8FD4\u56DE\u3001\u4E0D\u4F1A\u88AB\u8986\u76D6\uFF09\uFF1Bstatus \u4EC5\u7528\u4E8E\u5F02\u5E38\u8BCA\u65AD\uFF0C\u4E0D\u662F stop \u524D mandatory preflight\u3002`;
|
|
183
190
|
var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C\uFF08\u591A Agent \u534F\u4F5C\uFF1A\u8BA1\u5212 \u2192 \u6309\u9700\u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
|
|
184
191
|
\u4EA7\u51FA\u4F18\u5148\uFF1A\u4E0D\u4E3A\u300C\u51D1\u6570\u91CF\u300D\u6D3E\u53D1\uFF0C\u4E5F\u4E0D\u5305\u529E\u53EF\u5E76\u884C\u7684\u72EC\u7ACB\u9886\u57DF\uFF1B\u6BCF\u8F6E\u63A8\u8FDB\u5F53\u524D\u6700\u6709\u4EF7\u503C\u7684\u52A8\u4F5C\uFF0C\u62FF\u8BC1\u636E\u518D\u5224\u65AD\u3002
|
|
185
192
|
|
|
@@ -199,6 +206,11 @@ var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C
|
|
|
199
206
|
- **\u5E76\u884C\u8D26\u547D\u4E2D \u2192 \u6D3E\u53D1**\uFF1A\u22652 \u4E2A\u4E92\u4E0D\u4F9D\u8D56\u7684\u72EC\u7ACB\u9886\u57DF\uFF0C\u6216\u4ED3\u5E93\u6539\u52A8\uFF0B\u9A8C\u8BC1\uFF0B\u53D1\u5E03/\u8FC1\u79FB\u957F\u94FE\u8DEF \u2192 \u6309\u9886\u57DF\u5E76\u53D1\u6D3E\u53D1\u3002
|
|
200
207
|
- \u4E24\u8D26\u5747\u4E0D\u547D\u4E2D\u4E0D\u51D1\u6570\u6D3E\u53D1\uFF1B\u5B9E\u73B0\u6F14\u53D8\u4E3A\u591A\u8F6E\u9A8C\u8BC1\u5FAA\u73AF\u65F6\u7ACB\u5373\u6B62\u635F\u8F6C\u6D3E\u53D1\u3002\u7528\u6237\u660E\u786E\u8981\u6C42\u4F60\u4EB2\u81EA\u5B8C\u6210\u65F6\u6309\u7528\u6237\u8981\u6C42\u6267\u884C\uFF1B\u4EC5\u5F53\u6240\u6709\u5DF2\u9A8C\u8BC1\u6D3E\u53D1\u901A\u9053\u5747\u4E0D\u53EF\u7528\uFF08\u987B\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\uFF09\u624D\u964D\u7EA7\u81EA\u505A\u5E76\u8BF4\u660E\u3002
|
|
201
208
|
|
|
209
|
+
**\u4EFB\u52A1\u5206\u578B\u4E0E\u6536\u5DE5\u9884\u7B97\uFF08tool \u8C03\u7528\u5373\u6210\u672C\uFF0C\u9884\u7B97\u5148\u4E8E\u52E4\u594B\uFF09**\uFF1A
|
|
210
|
+
- **\u63A2\u7D22/spike \u578B**\uFF08\u8DEF\u5F84\u6216\u62A5\u9519\u672A\u77E5\u3001\u9A8C\u8BC1\u5916\u90E8\u5047\u8BBE\uFF09\uFF1Abrief \u5FC5\u987B\u5199\u5DE5\u5177\u8C03\u7528\u6216\u65F6\u95F4\u9884\u7B97\uFF08\u5982 \u2264150 \u6B21\u8C03\u7528 / \u226420 \u5206\u949F\uFF09\uFF0C\u5230\u8FBE\u9884\u7B97\u7ACB\u5373\u6536\u5DE5\uFF0C\u8F93\u51FA\u300C\u5DF2\u9A8C\u8BC1\u4E8B\u5B9E / \u5361\u70B9 / \u4E0B\u4E00\u6B65\u5EFA\u8BAE\u300D\u4E2D\u95F4\u62A5\u544A\u3002DoD \u662F\u7ED3\u8BBA\u800C\u975E\u8DD1\u901A\uFF1B\u7F16\u6392\u8005\u51ED\u62A5\u544A\u51B3\u5B9A\u7EED\u8DD1\u3001\u8F6C\u5411\u8FD8\u662F\u653E\u5F03\uFF0C\u7981\u6B62\u5355 run \u65E0\u9650\u8FED\u4EE3\u5230\u8DD1\u901A\u3002
|
|
211
|
+
- **\u6267\u884C\u578B**\uFF08\u8DEF\u5F84\u5DF2\u77E5\u7684\u660E\u786E\u6539\u52A8\uFF09\uFF1A\u53EF\u5355 run \u5B8C\u6210\uFF0C\u4F46 diff \u4E00\u6210\u578B\u7ACB\u5373\u6D3E\u72EC\u7ACB review\uFF0C\u4E0D\u628A review \u5806\u5230\u5168\u90E8\u5B8C\u5DE5\u540E\u3002
|
|
212
|
+
- **\u957F\u94FE\u578B**\uFF08\u8FC1\u79FB / \u53D1\u5E03 / \u591A\u9636\u6BB5\u4EFB\u52A1\uFF09\uFF1A\u62CD\u5E73\u4E3A\u300C\u4FA6\u5BDF \u2192 \u65B9\u6848 \u2192 \u6267\u884C \u2192 \u9A8C\u8BC1\u300D\u6241\u5E73\u9636\u6BB5\uFF0C\u6BCF\u9636\u6BB5\u72EC\u7ACB run\u3001\u72EC\u7ACB\u5BA1\u67E5\uFF1B\u7981\u6B62\u4E00\u4E2A run \u4ECE\u5934\u625B\u5230\u5C3E\u3002
|
|
213
|
+
|
|
202
214
|
**\u6D3E\u53D1\u901A\u9053**\uFF1A
|
|
203
215
|
- \u76EE\u6807\u8BB0\u5F55\u58F0\u660E\u4E86 delegation.serverBase / runtimeServerBase \u2192 \u81EA\u52A8\u8DEF\u7531\uFF0C\u65E0\u9700\u91CD\u590D\u586B\uFF1B\u7528\u6237\u7ED9\u51FA\u53EF\u8BBF\u95EE origin \u65F6\u53EF\u4F20 serverBase \u8986\u76D6\u3002\u52FF\u81C6\u9020\u5730\u5740\u3001\u52FF\u628A localhost \u5F53\u8FDC\u7AEF\u673A\u5668\u3002
|
|
204
216
|
- startAgentRun \u8FD4\u56DE runId \u53EA\u662F\u5DF2\u542F\u52A8\u4E0D\u8868\u793A\u5B8C\u6210\uFF1Bdone/failed \u540E\u9760 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u80FD\u4E0D\u80FD\u540C\u6B65\u7B49\u5F85\u770B\u5DE5\u5177\u8868\u7ED9\u4E86\u4EC0\u4E48\u53C2\u6570/\u52A8\u4F5C\uFF08\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF09\uFF0C\u6CA1\u7ED9\u5C31\u662F\u5F02\u6B65\u6D3E\u53D1\u7ACB\u5373\u6536\u5C3E\u3002\u8981\u524D\u53F0\u5B9E\u65F6\u53D1\u8A00\u7528 runStreamingAgent\u3002
|
|
@@ -208,9 +220,9 @@ var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C
|
|
|
208
220
|
- \u53D1\u6563\u6A21\u5F0F\uFF08Divergent Mode\uFF09\uFF1A\u521B\u610F\u63A2\u7D22/\u65B9\u6848\u679A\u4E3E/\u5F00\u653E\u5F0F\u591A\u89C6\u89D2\u5206\u6790 \u2192 \u5E76\u884C\u6D3E\u53D1\u5404\u5206\u652F\u76F4\u63A5\u56DE\u7B54\u539F\u95EE\u9898\uFF0C\u4FDD\u7559\u5F00\u653E\u6027\u4E0E\u4E0D\u540C\u6A21\u578B\u7279\u8272\u3002
|
|
209
221
|
- \u4F1A\u5546\u6A21\u5F0F\uFF08Deliberation Mode\uFF09\uFF1A\u590D\u6742\u51B3\u7B56/\u65B9\u6848\u8BBA\u8BC1/\u98CE\u9669\u8BC4\u4F30/\u51B2\u7A81\u534F\u8C03 \u2192 \u9996\u8F6E\u72EC\u7ACB\u4F5C\u7B54\uFF08\u521D\u59CB\u5224\u65AD+\u6838\u5FC3\u7406\u7531+\u6700\u5927\u98CE\u9669\uFF09\u2192 \u4EA4\u53C9\u590D\u8BAE\uFF08\u56DE\u5E94\u5206\u6B67\u4FEE\u6B63\u7ACB\u573A\uFF09\u2192 \u6309\u30101. \u5171\u8BC6 2. \u4FDD\u7559\u5206\u6B67 3. \u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3011\u6536\u655B\uFF0C\u4E0D\u5F3A\u884C\u62B9\u5E73\u5408\u7406\u5206\u6B67\u3002
|
|
210
222
|
|
|
211
|
-
**\u9009\u4EBA**\uFF1A\u53EA\u8BA4 listAgents \u8FD4\u56DE\u7684\u8BB0\u5F55\uFF0CagentKey \u5FC5\u987B\u539F\u6837\u590D\u5236\u5176\u5B57\u6BB5\uFF0C\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF1Bnot found \u65F6\u91CD\u65B0 listAgents \u53D6\u6700\u65B0 key\u3002
|
|
223
|
+
**\u9009\u4EBA**\uFF1A\u53EA\u8BA4 listAgents \u8FD4\u56DE\u7684\u8BB0\u5F55\uFF08\u9ED8\u8BA4\u4F18\u5148\u4ECE preferred \u53D1\u73B0\uFF09\uFF0CagentKey \u5FC5\u987B\u539F\u6837\u590D\u5236\u5176\u5B57\u6BB5\uFF0C\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF1Bnot found \u65F6\u91CD\u65B0 listAgents \u53D6\u6700\u65B0 key\u3002
|
|
212
224
|
${AGENT_SELECTION_PRIORITY_INSTRUCTIONS}
|
|
213
|
-
- \u6A21\u578B\u5206\u6863\uFF1A\u4E2D\u6587\u5199\u7A3F/\u957F\u6587/\u4F4E AI \u5473\u4F18\u5148 \`gemini-3.
|
|
225
|
+
- \u6A21\u578B\u5206\u6863\uFF1A\u4E2D\u6587\u5199\u7A3F/\u957F\u6587/\u4F4E AI \u5473\u4F18\u5148 \`gemini-3.8-flash\`\uFF08\u884C\u6587\u81EA\u7136\u3001\u9AD8\u6027\u4EF7\u6BD4\uFF09\u6216 \`kimi-k3\`\u3002\u9876\u6863\u6A21\u578B\uFF08Opus 5\u3001GPT-5.6 Sol \u53CA\u540C\u7EA7\uFF09\u81EA\u52A8\u59D4\u6258\u786C\u95E8\uFF1A\u4EC5\u7528\u4E8E\u590D\u6742\u67B6\u6784/\u8DE8\u57DF\u8BBE\u8BA1\u3001\u91CD\u5927\u4E8B\u6545\u3001\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027\u9AD8\u98CE\u9669\u5206\u6790\u3001\u8FBE\u6807\u7684\u6DF1 review\uFF0C\u6216\u4F4E\u4EF7\u5019\u9009\u5DF2\u6709\u5931\u8D25\u8BC1\u636E\u540E\u7684\u5347\u7EA7\uFF1B\u6DF1 review \u8FBE\u6807\u7EBF\uFF1D\u6539\u52A8\u6587\u4EF6\u6570 \u2265 30 \u4E14\u89E6\u53CA\u8BA1\u8D39/\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027/\u6838\u5FC3\u8DEF\u7531\uFF0C\u6216\u4F4E\u4EF7 reviewer \u5DF2 BLOCK/\u901A\u9053\u5931\u8D25\uFF1B\u666E\u901A review \u9ED8\u8BA4\u6D3E\u4F4E\u4EF7\u5019\u9009\u3002\u9009\u9876\u6863\u8981\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u7406\u7531\uFF1B\u7528\u6237\u70B9\u540D\u4E0D\u53D7\u6B64\u9650\u3002
|
|
214
226
|
- \u901A\u9053\u6392\u9664\uFF1A\u53EA\u6392\u9664\u300C\u672C\u6B21\u6539\u52A8\u4F5C\u8005\u300D\u4E0E\u300C\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\u7684\u574F\u901A\u9053\u300D\uFF08\u914D\u989D\u8017\u5C3D/\u4F59\u989D\u4E0D\u8DB3/\u9650\u6D41\uFF09\u3002\u4E0E\u6267\u884C\u8005\u4E0D\u540C\u5B9E\u4F8B\u5373\u4E3A\u5408\u6CD5 reviewer\uFF08flash \u6863 review \u6210\u672C\u53EF\u5FFD\u7565\uFF09\u3002\u4E0D\u51ED\u540D\u5B57\u7F16\u9020\u80FD\u529B\uFF0C\u4E0D\u7D22\u53D6 prompt/\u5BC6\u94A5/\u6570\u636E\u5E93 key\uFF1B\u6D3E\u53D1\u524D\u8DF3\u8FC7\u5DF2\u77E5\u574F\u901A\u9053\uFF08\u914D\u7F6E\u7F3A\u5931/\u533A\u57DF\u9650\u5236/\u7F51\u5173 400\uFF09\u3002
|
|
215
227
|
|
|
216
228
|
**\u62C6\u5206\u4E0E brief**\uFF1A\u6309\u72EC\u7ACB\u9886\u57DF\u62C6\uFF0C\u4E0D\u6309\u6587\u4EF6\u6570\u91CF\u62C6\uFF1B\u5171\u4EAB\u63A5\u53E3/\u5F3A\u987A\u5E8F\u4F9D\u8D56\u5148\u56FA\u5316\u5951\u7EA6\u518D\u6D3E\u53D1\uFF0C\u52FF\u8BA9\u591A\u65B9\u5404\u81EA\u731C\u540C\u4E00\u63A5\u53E3\u3002\u5B50\u4EFB\u52A1\u81EA\u5305\u542B\u3001\u53EA\u4F20\u5B8C\u6210\u8BE5\u5B50\u4EFB\u52A1\u6240\u9700\u7684\u6700\u5C0F\u5DE5\u4F5C\u96C6\uFF08\u4E0A\u4E0B\u6587\u6700\u5C0F\u5316\uFF09\uFF0C\u4E25\u7981\u8F6C\u53D1\u65E0\u5173\u5386\u53F2\u4E0E\u65E5\u5FD7\uFF1B\u7236 Agent \u4FDD\u7559\u76EE\u6807\u3001\u5951\u7EA6\u3001\u96C6\u6210\u3001\u6700\u7EC8\u9A8C\u8BC1\u4E0E\u7528\u6237\u6C9F\u901A\u3002\u6D4B\u8BD5\u7C7B DoD \u5FC5\u987B\u9489\u6B7B\u57FA\u7EBF\u7CBE\u786E\u6570\u5B57\uFF08\u6D3E\u53D1\u524D\u4EB2\u81EA\u8DD1\u6D4B\u8BD5\u8BB0\u4E0B pass/fail \u4E0E\u65E2\u6709\u5931\u8D25\u5F52\u5C5E\uFF09\uFF0C\u9A8C\u6536\u4EB2\u81EA\u590D\u8DD1\u5BF9\u7167\u2014\u2014\u8D85\u57FA\u7EBF\u5373\u6267\u884C\u8005\u5F15\u5165\u56DE\u5F52\uFF08flaky \u53E6\u884C\u7504\u522B\uFF09\uFF1B\u65E0\u6570\u5B57\u7684\u300C\u6D4B\u8BD5\u901A\u8FC7\u300D\u6309\u672A\u9A8C\u8BC1\u5904\u7406\u3002
|
|
@@ -261,6 +273,14 @@ var TOOL_ROUND_ECONOMY_INSTRUCTIONS = `--- \u5DE5\u5177\u8F6E\u6B21\u7ECF\u6D4E\
|
|
|
261
273
|
- \u53EA\u6709\u300C\u4E0B\u4E00\u6B65\u8981\u505A\u4EC0\u4E48\u53D6\u51B3\u4E8E\u4E0A\u4E00\u6B65\u7684\u7ED3\u679C\u300D\u65F6\u624D\u5206\u8F6E\u3002
|
|
262
274
|
- \u4E00\u6B21\u8C03\u7528\u91CC\u80FD\u8868\u8FBE\u7684\u5C31\u522B\u62C6\u6210\u591A\u6B21\uFF1A\u7528 glob \u7684\u82B1\u62EC\u53F7\u7EC4\u4E00\u6B21\u5339\u914D\u591A\u79CD\u540E\u7F00\u3001\u7528\u4E00\u6761\u547D\u4EE4\u4EE3\u66FF\u4E09\u6761\u3001\u6309\u9700\u8981\u7684\u884C\u8303\u56F4\u8BFB\u6587\u4EF6\u800C\u4E0D\u662F\u5148\u5168\u8BFB\u518D\u56DE\u5934\u627E\u3002
|
|
263
275
|
- \u7B49\u5F85\u7C7B\u5DE5\u5177\uFF08taskWait \u7B49\uFF09\u6309\u9884\u8BA1\u8017\u65F6\u4E00\u6B21\u7ED9\u8DB3\u9884\u7B97\uFF0C\u4E0D\u8981\u7528\u77ED\u8D85\u65F6\u53CD\u590D\u7EED\u7B49\u2014\u2014\u90A3\u662F\u628A\u5FAA\u73AF\u653E\u5728\u4E86\u6700\u8D35\u7684\u5730\u65B9\u3002`;
|
|
276
|
+
var PRIVILEGE_ESCALATION_INSTRUCTIONS = `--- \u6743\u9650\u63D0\u5347 ---
|
|
277
|
+
\u547D\u4EE4\u5931\u8D25\u4E14\u539F\u56E0\u6307\u5411\u6743\u9650\u4E0D\u8DB3\uFF08sudo: \u9700\u8981\u5BC6\u7801 / Permission denied / EACCES / Operation not permitted\uFF09\u65F6\uFF0C\u4F18\u5148\u628A\u300C\u8F93\u5BC6\u7801\u300D\u8FD9\u4E00\u6B65\u4EA4\u8FD8\u7ED9\u7528\u6237\u7684\u56FE\u5F62\u6388\u6743\u901A\u9053\uFF0C\u800C\u4E0D\u662F\u628A sudo \u547D\u4EE4\u629B\u56DE\u7ED9\u7528\u6237\u624B\u6284\uFF1A
|
|
278
|
+
1. \u684C\u9762\u4F1A\u8BDD\uFF08Linux \u6709 DISPLAY/WAYLAND_DISPLAY\uFF09\u76F4\u63A5\u8DD1 \`pkexec <\u547D\u4EE4>\`\uFF1Apolkit \u4F1A\u5728\u7528\u6237\u5C4F\u5E55\u5F39 GUI \u5BC6\u7801\u6846\u3002\u5F39\u4E4B\u524D\u5148\u4E00\u53E5\u8BDD\u8BF4\u660E\u8981\u505A\u4EC0\u4E48\u3001\u4E3A\u4F55\u9700\u8981 root\uFF0C\u907F\u514D\u51ED\u7A7A\u5F39\u7A97\uFF1B\u590D\u6742\u547D\u4EE4\u5148\u5199\u6210\u811A\u672C\u518D \`pkexec bash /tmp/xxx.sh\`\u3002
|
|
279
|
+
2. pkexec \u4E0D\u53EF\u7528\u6216\u975E\u56FE\u5F62\u4F1A\u8BDD\u65F6\u6309\u4EE3\u4EF7\u5347\u5E8F\u964D\u7EA7\uFF1A
|
|
280
|
+
- \u7528\u6237\u7EA7\u7B49\u4EF7\u65B9\u6848\u5148\u884C\uFF1Asystemctl --user set-property\u3001\u65E0\u7279\u6743\u914D\u7F6E\u8DEF\u5F84\u3001setcap\u3001\u628A\u7528\u6237\u52A0\u5165\u6240\u9700\u7EC4\uFF08\u91CD\u65B0\u767B\u5F55\u751F\u6548\uFF09\u7B49\u2014\u2014\u5F88\u591A\u300C\u5FC5\u987B root\u300D\u5176\u5B9E\u6709 user \u7EA7\u7B49\u4EF7\u7269\u3002
|
|
281
|
+
- \u786E\u5B9E\u7ED5\u4E0D\u5F00\uFF1A\u7ED9\u51FA\u4E00\u6761\u53EF\u76F4\u63A5\u7C98\u8D34\u7684\u547D\u4EE4\uFF08\u591A\u6B65\u5408\u5E76\u6210\u4E00\u6761\uFF09\uFF0C\u4E00\u6B21\u6027\u8BF4\u6E05\u526F\u4F5C\u7528\uFF0C\u7B49\u7528\u6237\u56DE\u62A5\u7ED3\u679C\u518D\u7EE7\u7EED\uFF1B\u4E0D\u8981\u8BA9\u7528\u6237\u6765\u56DE\u8DD1\u591A\u6B65\u3001\u4E0D\u8981\u91CD\u590D\u7D22\u8981\u3002
|
|
282
|
+
3. Windows \u7528 \`Start-Process -Verb RunAs\`\uFF08UAC \u5F39\u7A97\uFF09\u3001macOS \u7528 \`osascript ... with administrator privileges\`\uFF0C\u4EA4\u4E92\u539F\u5219\u76F8\u540C\uFF1A\u5F39\u7A97\u524D\u5148\u8BF4\u660E\u3001\u5931\u8D25\u540E\u4E0D\u91CD\u590D\u6253\u6270\u3002
|
|
283
|
+
4. \u7981\u6B62\u9759\u9ED8\u7ED5\u8FC7\uFF1A\u4E0D\u91CD\u8BD5\u540C\u4E00\u7279\u6743\u547D\u4EE4\u8D4C\u8FD0\u6C14\u3001\u4E0D\u7528\u7BA1\u9053/\u73AF\u5883\u53D8\u91CF\u5582\u5BC6\u7801\u7ED9 sudo\u3001\u4E0D\u4FEE\u6539 polkit/sudoers \u653E\u5BBD\u6388\u6743\u3002`;
|
|
264
284
|
var TOOL_GUIDED_SECTIONS = [
|
|
265
285
|
{
|
|
266
286
|
id: "toolRoundEconomy",
|
|
@@ -268,6 +288,11 @@ var TOOL_GUIDED_SECTIONS = [
|
|
|
268
288
|
triggerAnyTool: true,
|
|
269
289
|
build: () => TOOL_ROUND_ECONOMY_INSTRUCTIONS
|
|
270
290
|
},
|
|
291
|
+
{
|
|
292
|
+
id: "privilegeEscalation",
|
|
293
|
+
triggerTools: ["execShell"],
|
|
294
|
+
build: () => PRIVILEGE_ESCALATION_INSTRUCTIONS
|
|
295
|
+
},
|
|
271
296
|
{
|
|
272
297
|
id: "agentOrchestration",
|
|
273
298
|
triggerTools: [
|
|
@@ -302,6 +327,7 @@ var TOOL_GUIDED_SECTIONS = [
|
|
|
302
327
|
];
|
|
303
328
|
var TOOL_GUIDED_SECTION_ORDER = [
|
|
304
329
|
"toolRoundEconomy",
|
|
330
|
+
"privilegeEscalation",
|
|
305
331
|
"agentOrchestration",
|
|
306
332
|
"agentCollaboration",
|
|
307
333
|
"webAccess",
|
|
@@ -323,66 +349,6 @@ function resolveToolGuidedSections(agentTools) {
|
|
|
323
349
|
return out;
|
|
324
350
|
}
|
|
325
351
|
|
|
326
|
-
// packages/agent-runtime/currentTimeContext.ts
|
|
327
|
-
var pad2 = (value) => String(value).padStart(2, "0");
|
|
328
|
-
var resolveDefaultTimeZone = () => {
|
|
329
|
-
try {
|
|
330
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
331
|
-
} catch {
|
|
332
|
-
return "UTC";
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
var partsForTimeZone = (date, timeZone) => {
|
|
336
|
-
const parts = new Intl.DateTimeFormat("en-US", {
|
|
337
|
-
timeZone,
|
|
338
|
-
year: "numeric",
|
|
339
|
-
month: "2-digit",
|
|
340
|
-
day: "2-digit",
|
|
341
|
-
hour: "2-digit",
|
|
342
|
-
minute: "2-digit",
|
|
343
|
-
second: "2-digit",
|
|
344
|
-
hour12: false
|
|
345
|
-
}).formatToParts(date);
|
|
346
|
-
return Object.fromEntries(
|
|
347
|
-
parts.filter((part) => part.type !== "literal").map((part) => [part.type, part.value])
|
|
348
|
-
);
|
|
349
|
-
};
|
|
350
|
-
var zonedDateTime = (date, timeZone) => {
|
|
351
|
-
const parts = partsForTimeZone(date, timeZone);
|
|
352
|
-
return [
|
|
353
|
-
`${parts.year}-${parts.month}-${parts.day}`,
|
|
354
|
-
`${parts.hour}:${parts.minute}:${parts.second}`
|
|
355
|
-
].join(" ");
|
|
356
|
-
};
|
|
357
|
-
var timeZoneOffset = (date, timeZone) => {
|
|
358
|
-
const parts = partsForTimeZone(date, timeZone);
|
|
359
|
-
const utcMs = Date.UTC(
|
|
360
|
-
Number(parts.year),
|
|
361
|
-
Number(parts.month) - 1,
|
|
362
|
-
Number(parts.day),
|
|
363
|
-
Number(parts.hour),
|
|
364
|
-
Number(parts.minute),
|
|
365
|
-
Number(parts.second)
|
|
366
|
-
);
|
|
367
|
-
const offsetMinutes = Math.round((utcMs - date.getTime()) / 6e4);
|
|
368
|
-
const sign = offsetMinutes >= 0 ? "+" : "-";
|
|
369
|
-
const absolute = Math.abs(offsetMinutes);
|
|
370
|
-
return `UTC${sign}${pad2(Math.floor(absolute / 60))}:${pad2(absolute % 60)}`;
|
|
371
|
-
};
|
|
372
|
-
var toHourPrecision = (dateTime) => `${dateTime.slice(0, 13)}:00`;
|
|
373
|
-
var buildCurrentTimeBlock = (now = /* @__PURE__ */ new Date(), timeZone = resolveDefaultTimeZone()) => [
|
|
374
|
-
"--- \u5F53\u524D\u65F6\u95F4 ---",
|
|
375
|
-
`\u5F53\u524D\u65E5\u671F: ${zonedDateTime(now, timeZone).slice(0, 10)}`,
|
|
376
|
-
`\u5F53\u524D\u672C\u5730\u65F6\u95F4: ${toHourPrecision(zonedDateTime(now, timeZone))}`,
|
|
377
|
-
// hour precision — see toHourPrecision
|
|
378
|
-
`\u672C\u5730\u65F6\u533A: ${timeZone} / ${timeZoneOffset(now, timeZone)}`,
|
|
379
|
-
`UTC \u65F6\u95F4: ${toHourPrecision(now.toISOString())}`,
|
|
380
|
-
// hour precision; slice keeps the "T"
|
|
381
|
-
"\u6CE8\u610F\uFF1A\u4E0A\u9762\u7684\u65F6\u95F4\u53EA\u7CBE\u786E\u5230\u5C0F\u65F6\uFF08\u4E3A\u547D\u4E2D prompt \u7F13\u5B58\u800C\u964D\u4F4E\u7C92\u5EA6\uFF09\u3002\u9700\u8981\u7CBE\u786E\u5230\u5206\u949F\u6216\u79D2\u65F6\uFF0C\u7528 shell \u6267\u884C `date` \u83B7\u53D6\u3002",
|
|
382
|
-
"\u5F53\u7528\u6237\u95EE\u201C\u73B0\u5728\u201D\u201C\u5F53\u524D\u65F6\u95F4\u201D\u201C\u5317\u4EAC\u65F6\u95F4\u201D\u7B49\u65F6\u95F4\u95EE\u9898\u65F6\uFF0C\u76F4\u63A5\u4F7F\u7528\u8FD9\u91CC\u7684\u5F53\u524D\u65F6\u95F4\uFF1B\u4E0D\u8981\u53EA\u56DE\u7B54\u65E5\u671F\u3002",
|
|
383
|
-
"\u5F53\u7528\u6237\u8BF4\u201C\u4ECA\u5929\u201D\u201C\u4ECA\u65E5\u201D\u6216 today \u65F6\uFF0C\u9ED8\u8BA4\u6307\u5F53\u524D\u672C\u5730\u65E5\u671F\uFF0C\u9664\u975E\u7528\u6237\u660E\u786E\u7ED9\u51FA\u5176\u5B83\u65E5\u671F\u3002"
|
|
384
|
-
].join("\n");
|
|
385
|
-
|
|
386
352
|
// packages/ai/agent/contextCompiler.ts
|
|
387
353
|
function createHash(_algo) {
|
|
388
354
|
let buf = "";
|
|
@@ -484,10 +450,16 @@ var isKimiK3ProviderModel = (provider, model) => {
|
|
|
484
450
|
}
|
|
485
451
|
return isNoloHostedProvider(provider) && normalizedModel === PLATFORM_HOSTED_KIMI_K3_MODEL;
|
|
486
452
|
};
|
|
453
|
+
var isOllamaProviderOrEndpoint = (provider, endpoint) => {
|
|
454
|
+
const p = asTrimmedLowercaseString(provider);
|
|
455
|
+
if (p === "ollama" || p === "ollama-cloud") return true;
|
|
456
|
+
return isOllamaEndpoint(endpoint);
|
|
457
|
+
};
|
|
487
458
|
var normalizeChatCompletionsBodyForProvider = ({
|
|
488
459
|
body,
|
|
489
460
|
provider,
|
|
490
|
-
model
|
|
461
|
+
model,
|
|
462
|
+
endpoint
|
|
491
463
|
}) => {
|
|
492
464
|
const nextBody = { ...body, model };
|
|
493
465
|
const normalizedProvider = asTrimmedLowercaseString(provider);
|
|
@@ -505,6 +477,17 @@ var normalizeChatCompletionsBodyForProvider = ({
|
|
|
505
477
|
delete nextBody.max_tokens;
|
|
506
478
|
}
|
|
507
479
|
}
|
|
480
|
+
if (isOllamaProviderOrEndpoint(provider, endpoint)) {
|
|
481
|
+
const existingNumCtx = nextBody.options?.num_ctx ?? nextBody.num_ctx;
|
|
482
|
+
if (existingNumCtx === void 0) {
|
|
483
|
+
const cw = getModelContextWindow(model);
|
|
484
|
+
const safeNumCtx = typeof cw === "number" && cw > 0 ? cw === 256e3 ? 32768 : Math.min(cw, 131072) : 32768;
|
|
485
|
+
nextBody.options = {
|
|
486
|
+
...nextBody.options,
|
|
487
|
+
num_ctx: safeNumCtx
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
}
|
|
508
491
|
if (Array.isArray(nextBody.messages) && requiresBareImageUrl({ provider, model })) {
|
|
509
492
|
nextBody.messages = toBareImageUrlMessages(nextBody.messages);
|
|
510
493
|
}
|
|
@@ -516,7 +499,6 @@ export {
|
|
|
516
499
|
buildRuntimeGuidanceBlocks,
|
|
517
500
|
TOOL_GUIDED_SECTION_ORDER,
|
|
518
501
|
resolveToolGuidedSections,
|
|
519
|
-
buildCurrentTimeBlock,
|
|
520
502
|
hashStablePrefixContent,
|
|
521
503
|
estimateContextTokens,
|
|
522
504
|
compileContextLayers,
|
|
@@ -3,12 +3,15 @@ import {
|
|
|
3
3
|
resolvePlatformChatCompletionsEndpoint,
|
|
4
4
|
resolvePlatformHostedCredentialProvider,
|
|
5
5
|
resolvePlatformResponsesEndpoint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LJKICKVC.js";
|
|
7
|
+
import {
|
|
8
|
+
CLI_PROVIDER_VALUES
|
|
9
|
+
} from "./chunk-W7XHHYWM.js";
|
|
7
10
|
import {
|
|
8
11
|
CLIENT_VERSION_TOO_OLD_CODE,
|
|
9
12
|
buildClientVersionGateErrorDetail,
|
|
10
13
|
evaluatePlatformHostedClientVersionGate
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-22BTGNSP.js";
|
|
12
15
|
import {
|
|
13
16
|
asTrimmedLowercaseString
|
|
14
17
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -110,7 +113,9 @@ function hasDirectOpenAiCompatibleProvider(env) {
|
|
|
110
113
|
);
|
|
111
114
|
}
|
|
112
115
|
function resolveAgentProviderMode(agentConfig) {
|
|
113
|
-
|
|
116
|
+
const cliProviderName = asTrimmedLowercaseString(agentConfig.cliProvider);
|
|
117
|
+
const hasRealCliProvider = Boolean(cliProviderName && CLI_PROVIDER_VALUES.includes(cliProviderName)) || asTrimmedLowercaseString(agentConfig.provider) === "cli";
|
|
118
|
+
if (agentConfig.apiSource === "cli" || hasRealCliProvider && agentConfig.apiSource !== "platform") {
|
|
114
119
|
return "cli";
|
|
115
120
|
}
|
|
116
121
|
if (agentConfig.apiSource === "custom" || agentConfig.customProviderUrl) {
|
|
@@ -20,20 +20,6 @@ import {
|
|
|
20
20
|
asOptionalTrimmedString
|
|
21
21
|
} from "./chunk-G3SUCT4W.js";
|
|
22
22
|
|
|
23
|
-
// packages/agent-runtime/agentRecordKeys.ts
|
|
24
|
-
function buildAgentRuntimeAgentLookupKeys(args) {
|
|
25
|
-
if (/^agent(-pub)?-/.test(args.agentRef)) {
|
|
26
|
-
return [args.agentRef];
|
|
27
|
-
}
|
|
28
|
-
return [
|
|
29
|
-
ownedAgentKey(args.userId, args.agentRef),
|
|
30
|
-
publicAgentKey(args.agentRef)
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
function shouldFetchAgentRuntimeRecordRemotely(dbKey) {
|
|
34
|
-
return /^agent(-pub)?-/.test(dbKey);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
23
|
// packages/agent-runtime/runtimeToolSurface.ts
|
|
38
24
|
var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
|
|
39
25
|
"listDialogs",
|
|
@@ -51,6 +37,25 @@ var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
|
|
|
51
37
|
"cliWhoami",
|
|
52
38
|
"cliDoctor"
|
|
53
39
|
];
|
|
40
|
+
var DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS = [
|
|
41
|
+
"readDialog",
|
|
42
|
+
"queryDialogsBySubjectRef",
|
|
43
|
+
"readDoc",
|
|
44
|
+
"queryTableRows"
|
|
45
|
+
];
|
|
46
|
+
function applyToolSurfaceConstraints(surface, constraints) {
|
|
47
|
+
const allowed = constraints.allowedToolNames == null ? null : new Set(asTrimmedNonEmptyStringArray(constraints.allowedToolNames));
|
|
48
|
+
const blocked = new Set(asTrimmedNonEmptyStringArray(constraints.blockedToolNames ?? []));
|
|
49
|
+
const narrow = (names) => names.filter(
|
|
50
|
+
(name) => (allowed === null || allowed.has(name)) && !blocked.has(name)
|
|
51
|
+
);
|
|
52
|
+
return {
|
|
53
|
+
...surface,
|
|
54
|
+
explicitToolNames: narrow(surface.explicitToolNames),
|
|
55
|
+
injectedToolNames: narrow(surface.injectedToolNames),
|
|
56
|
+
finalToolNames: narrow(surface.finalToolNames)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
54
59
|
function uniqueToolNames(values) {
|
|
55
60
|
return [...new Set(asTrimmedNonEmptyStringArray(values))];
|
|
56
61
|
}
|
|
@@ -75,21 +80,29 @@ function explicitOnlyReason(args) {
|
|
|
75
80
|
function resolveRuntimeToolSurface(args) {
|
|
76
81
|
const explicitToolNames = uniqueToolNames(args.explicitToolNames ?? []);
|
|
77
82
|
if (canInjectPrivateDefaults(args)) {
|
|
78
|
-
const
|
|
83
|
+
const baseInjected = args.injectPrivateDefaults === false ? args.defaultInjectedToolNames ?? DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS : args.defaultInjectedToolNames ?? DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS;
|
|
84
|
+
const injectedToolNames2 = uniqueToolNames([
|
|
85
|
+
...baseInjected,
|
|
86
|
+
...args.additionalRequiredToolNames ?? []
|
|
87
|
+
]);
|
|
79
88
|
return {
|
|
80
89
|
explicitToolNames,
|
|
81
|
-
injectedToolNames,
|
|
90
|
+
injectedToolNames: injectedToolNames2,
|
|
82
91
|
finalToolNames: uniqueToolNames([
|
|
83
92
|
...explicitToolNames,
|
|
84
|
-
...
|
|
93
|
+
...injectedToolNames2
|
|
85
94
|
]),
|
|
86
95
|
auditReason: "private-authenticated-defaults"
|
|
87
96
|
};
|
|
88
97
|
}
|
|
98
|
+
const injectedToolNames = uniqueToolNames(args.additionalRequiredToolNames ?? []);
|
|
89
99
|
return {
|
|
90
100
|
explicitToolNames,
|
|
91
|
-
injectedToolNames
|
|
92
|
-
finalToolNames:
|
|
101
|
+
injectedToolNames,
|
|
102
|
+
finalToolNames: uniqueToolNames([
|
|
103
|
+
...explicitToolNames,
|
|
104
|
+
...injectedToolNames
|
|
105
|
+
]),
|
|
93
106
|
auditReason: explicitOnlyReason(args)
|
|
94
107
|
};
|
|
95
108
|
}
|
|
@@ -116,7 +129,10 @@ function resolveRuntimeToolSurfaceForAgent(args) {
|
|
|
116
129
|
agentOwnerId: inferredOwnerId,
|
|
117
130
|
invocationVisibility: visibility,
|
|
118
131
|
runtimeHost: args.runtimeHost,
|
|
119
|
-
trustedPrivateInvocation: args.trustedPrivateInvocation
|
|
132
|
+
trustedPrivateInvocation: args.trustedPrivateInvocation,
|
|
133
|
+
injectPrivateDefaults: args.injectPrivateDefaults,
|
|
134
|
+
defaultInjectedToolNames: args.defaultInjectedToolNames,
|
|
135
|
+
additionalRequiredToolNames: args.additionalRequiredToolNames
|
|
120
136
|
});
|
|
121
137
|
}
|
|
122
138
|
var SECRET_FIELD_NAMES = [
|
|
@@ -146,6 +162,20 @@ function redactAgentRecordForWorkspaceTool(record) {
|
|
|
146
162
|
return redacted;
|
|
147
163
|
}
|
|
148
164
|
|
|
165
|
+
// packages/agent-runtime/agentRecordKeys.ts
|
|
166
|
+
function buildAgentRuntimeAgentLookupKeys(args) {
|
|
167
|
+
if (/^agent(-pub)?-/.test(args.agentRef)) {
|
|
168
|
+
return [args.agentRef];
|
|
169
|
+
}
|
|
170
|
+
return [
|
|
171
|
+
ownedAgentKey(args.userId, args.agentRef),
|
|
172
|
+
publicAgentKey(args.agentRef)
|
|
173
|
+
];
|
|
174
|
+
}
|
|
175
|
+
function shouldFetchAgentRuntimeRecordRemotely(dbKey) {
|
|
176
|
+
return /^agent(-pub)?-/.test(dbKey);
|
|
177
|
+
}
|
|
178
|
+
|
|
149
179
|
// packages/ai/agent/agentSelectionPriority.ts
|
|
150
180
|
function parseAgentTimestamp(value) {
|
|
151
181
|
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
@@ -181,16 +211,26 @@ function compareAgentSelection(left, right) {
|
|
|
181
211
|
const rightUpdated = parseAgentTimestamp(right.updatedAt ?? right.createdAt);
|
|
182
212
|
return rightUpdated - leftUpdated;
|
|
183
213
|
}
|
|
184
|
-
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\
|
|
185
|
-
1. \
|
|
186
|
-
2. \
|
|
187
|
-
3. \
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
214
|
+
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\u4E24\u9636\u6BB5\u53D1\u73B0\u4E0E\u9009\u4EBA\u5951\u7EA6\uFF08listAgents \u9ED8\u8BA4 scope="preferred"\uFF09\uFF1A
|
|
215
|
+
1. \u9996\u8F6E\u53D1\u73B0\uFF1A\u9ED8\u8BA4\u8C03\u7528 listAgents()\uFF08\u5373 scope="preferred"\uFF09\uFF0C\u4EC5\u53D1\u73B0\u7528\u6237\u5DF2\u6709\u5173\u7CFB\u7684 preferred Agent\uFF08\u6536\u85CF\u3001\u81EA\u6709\u3001OAuth \u8BA2\u9605\u3001\u81EA\u5B9A\u4E49 API\u3001\u672C\u5730 Agent\uFF09\u3002
|
|
216
|
+
2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
|
|
217
|
+
3. \u4F18\u5148\u7EA7\u6392\u5E8F\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E00\u81F4\uFF09\uFF1A
|
|
218
|
+
(1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
|
|
219
|
+
(2) \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
|
|
220
|
+
(3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF09
|
|
221
|
+
(4) \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
|
|
222
|
+
(5) \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08billingSource="platform_credits" \u6216\u793E\u533A\u516C\u5F00\uFF09
|
|
223
|
+
\u540C\u6863\u4F4D\u4E0B\u6536\u85CF\u9879\u6309\u6700\u8FD1\u6536\u85CF\uFF08favoritedAt\uFF09\u4F18\u5148\uFF0C\u5176\u4F59\u6309\u6700\u8FD1\u66F4\u65B0\uFF08updatedAt\uFF09\u4F18\u5148\u3002
|
|
224
|
+
4. \u516C\u5F00 Agent \u53D1\u73B0\uFF1A\u4EC5\u5F53 preferred \u5217\u8868\u4E2D\u6CA1\u6709\u9002\u5408\u4E14\u53EF\u7528\u7684\u5019\u9009\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u63A2\u7D22\u516C\u5F00 Agent \u65F6\uFF0C\u624D\u663E\u5F0F\u8C03\u7528 listAgents({ scope: "public" })\u3002\u516C\u5F00 Agent \u53EF\u80FD\u6D88\u8017 platform_credits\uFF0C\u5FC5\u987B\u5728\u83B7\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u540E\u624D\u80FD\u8C03\u7528\u3002
|
|
225
|
+
- \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
192
226
|
- \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
|
|
193
|
-
-
|
|
227
|
+
- isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
|
|
228
|
+
- qualityContext \u662F task-domain-specific supporting evidence\uFF1A\u53EA\u5728\u5339\u914D\u7684 task domain \u5185\u3001suitable candidates \u4E2D\uFF0C\u5E76\u4E14\u4ECD\u6392\u5728\u73B0\u6709\u4F18\u5148\u7EA7 / \u6210\u672C / \u53EF\u7528\u6027\u89C4\u5219\u4E4B\u540E\u53C2\u8003\u3002
|
|
229
|
+
\u6BCF\u884C\u5F62\u5982 \`dimension [direction] (benchmark version): model=score\`\u3002\u6BCF\u4E2A dimension\uFF08preference / rubric / slop / repetition / length / task_success \u7B49\uFF09\u90FD\u662F\u4E00\u6761\u72EC\u7ACB evidence\uFF0C\u4E0D\u662F\u603B\u5206\u7684\u4E00\u90E8\u5206\u3002
|
|
230
|
+
direction \u53EA\u662F\u6307\u6807\u65B9\u5411\uFF1Ahigher_better \u8D8A\u9AD8\u8D8A\u597D\uFF0Clower_better \u8D8A\u4F4E\u8D8A\u597D\uFF0Cneutral \u53EA\u63CF\u8FF0\u884C\u4E3A\u7279\u5F81\uFF08\u5982\u8F93\u51FA\u957F\u5EA6\uFF09\uFF0C\u4E0D\u4EE3\u8868\u4F18\u52A3\u3002
|
|
231
|
+
\u7981\u6B62\u628A\u4E0D\u540C dimension \u76F8\u52A0 / \u5E73\u5747 / \u5F52\u4E00\u5316\uFF0C\u6216\u751F\u6210 overall score / winner / rank\uFF1B\u7981\u6B62\u8DE8 benchmark identity \u6BD4\u8F83 raw score\uFF1B\u540C\u4E00 dimension \u5185\u53EA\u6BD4\u8F83\u540C\u4E00\u884C\u7684\u540C\u7C7B benchmark evidence\u3002
|
|
232
|
+
\u672A\u5217\u51FA\u7684 model \u6216 dimension \u8868\u793A\u6CA1\u6709 curated evidence\uFF1A\u4E0D\u662F 0\uFF0C\u4E5F\u4E0D\u662F\u8F83\u5F31\u3002\u54EA\u4E9B dimension \u66F4\u91CD\u8981\u7531\u5F53\u524D\u4EFB\u52A1\u51B3\u5B9A\uFF0C\u4E0D\u8981\u5199\u6B7B\u6743\u91CD\u3002
|
|
233
|
+
- 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
|
|
194
234
|
|
|
195
235
|
// packages/agent-runtime/noloWorkspaceTools.ts
|
|
196
236
|
var NOLO_WORKSPACE_TOOL_NAMES = [
|
|
@@ -273,10 +313,12 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
273
313
|
description: "Confirmed dialog ids or dbKeys to delete."
|
|
274
314
|
}
|
|
275
315
|
}, ["query"]);
|
|
276
|
-
add("listAgents", "List the
|
|
277
|
-
|
|
278
|
-
publicOnly: { type: "boolean", description: "
|
|
279
|
-
showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." }
|
|
316
|
+
add("listAgents", "List agents for delegation. Default scope='preferred' returns the user's favorites, owned, OAuth, custom API, and local agents only; scope='public' discovers shared/marketplace agents; scope='all' returns their deduplicated union. Public agents may consume platform credits. Copy the agentKey verbatim; use the runnable agentKey exactly and do not infer it from the display name. publicOnly is deprecated compatibility for scope='public'. Rate-limited agents are hidden unless showUnavailable is true.", {
|
|
317
|
+
scope: { type: "string", enum: ["preferred", "public", "all"], description: "Discovery scope; preferred is the default and does not load the public marketplace." },
|
|
318
|
+
publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
|
|
319
|
+
showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." },
|
|
320
|
+
verbose: { type: "boolean", description: "Return full safe-summary details when supported." },
|
|
321
|
+
space: stringToolParam("Optional space id or URL.")
|
|
280
322
|
});
|
|
281
323
|
add("readAgent", "Read one agent's full config by exact agentKey returned by listAgents (agent-<userId>-<id> or agent-pub-<id>); do not use the display name.", {
|
|
282
324
|
agent: stringToolParam("Exact agentKey from listAgents (preferred; copy verbatim; plain id or URL are compatibility fallbacks).")
|
|
@@ -600,7 +642,11 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
600
642
|
const cliArgs = ["agent", "list"];
|
|
601
643
|
const space = noloStringArg(args.space);
|
|
602
644
|
if (space) cliArgs.push("--space", space);
|
|
645
|
+
const scope = noloStringArg(args.scope);
|
|
646
|
+
if (scope) cliArgs.push("--scope", scope);
|
|
603
647
|
if (args.publicOnly === true) cliArgs.push("--public-only");
|
|
648
|
+
if (args.showUnavailable === true) cliArgs.push("--show-unavailable");
|
|
649
|
+
if (args.verbose === true) cliArgs.push("--verbose");
|
|
604
650
|
cliArgs.push("--json", "--safe");
|
|
605
651
|
return cliArgs;
|
|
606
652
|
}
|
|
@@ -666,12 +712,13 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
666
712
|
}
|
|
667
713
|
|
|
668
714
|
export {
|
|
715
|
+
applyToolSurfaceConstraints,
|
|
716
|
+
resolveRuntimeToolSurfaceForAgent,
|
|
717
|
+
redactAgentRecordForWorkspaceTool,
|
|
669
718
|
compareAgentSelection,
|
|
670
719
|
AGENT_SELECTION_PRIORITY_INSTRUCTIONS,
|
|
671
720
|
buildAgentRuntimeAgentLookupKeys,
|
|
672
721
|
shouldFetchAgentRuntimeRecordRemotely,
|
|
673
|
-
resolveRuntimeToolSurfaceForAgent,
|
|
674
|
-
redactAgentRecordForWorkspaceTool,
|
|
675
722
|
NOLO_WORKSPACE_TOOL_NAMES,
|
|
676
723
|
buildNoloWorkspaceOpenAiTools,
|
|
677
724
|
noloPositiveIntegerString,
|
|
@@ -4,12 +4,14 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
patch,
|
|
6
6
|
read
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DNNSCSA2.js";
|
|
8
8
|
import {
|
|
9
9
|
DEVICE_LOCAL_OWNER_ID,
|
|
10
|
-
isDeviceLocalSpaceBody
|
|
10
|
+
isDeviceLocalSpaceBody
|
|
11
|
+
} from "./chunk-KWSQR2KK.js";
|
|
12
|
+
import {
|
|
11
13
|
selectIdentityUserId
|
|
12
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SEJ5OS6F.js";
|
|
13
15
|
|
|
14
16
|
// packages/create/space/utils/permissions.ts
|
|
15
17
|
var checkSpaceMembership = (spaceData, userId) => {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
|
|
5
5
|
// packages/cli/agentCommandSupport.ts
|
|
6
6
|
async function getDefaultCliDb() {
|
|
7
|
-
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-
|
|
7
|
+
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-P37ZTX55.js");
|
|
8
8
|
return getDefaultCliLocalRuntimeDb();
|
|
9
9
|
}
|
|
10
10
|
function createNullCliDb() {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// packages/identity/sessionSource.ts
|
|
2
|
+
var IDENTITY_SESSION_READER = Symbol.for(
|
|
3
|
+
"nolo.identity.sessionReader"
|
|
4
|
+
);
|
|
5
|
+
var moduleFallbackReader = null;
|
|
6
|
+
function getBoundSessionSnapshot() {
|
|
7
|
+
return moduleFallbackReader?.() ?? null;
|
|
8
|
+
}
|
|
9
|
+
function getSessionSnapshotForState(state) {
|
|
10
|
+
const reader = state?.[IDENTITY_SESSION_READER];
|
|
11
|
+
if (typeof reader === "function") {
|
|
12
|
+
return reader();
|
|
13
|
+
}
|
|
14
|
+
return getBoundSessionSnapshot();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// packages/identity/selectors.local.ts
|
|
18
|
+
var LOCAL_USER_ID = (typeof process !== "undefined" ? process.env?.NOLO_LOCAL_USER_ID : void 0) || (typeof process !== "undefined" ? process.env?.NOLO_USER_ID : void 0) || "local";
|
|
19
|
+
var LOCAL_USER = {
|
|
20
|
+
userId: LOCAL_USER_ID,
|
|
21
|
+
username: "Local User"
|
|
22
|
+
};
|
|
23
|
+
var selectIdentityUserId = (state) => {
|
|
24
|
+
const snapshot = getSessionSnapshotForState(state);
|
|
25
|
+
if (snapshot) return snapshot.activeAccountId ?? void 0;
|
|
26
|
+
return LOCAL_USER_ID;
|
|
27
|
+
};
|
|
28
|
+
var selectIdentityToken = (state) => {
|
|
29
|
+
return getSessionSnapshotForState(state)?.activeToken ?? void 0;
|
|
30
|
+
};
|
|
31
|
+
var selectIdentityUser = (state) => {
|
|
32
|
+
const snapshot = getSessionSnapshotForState(state);
|
|
33
|
+
if (snapshot) {
|
|
34
|
+
const active = snapshot.accounts.find(
|
|
35
|
+
(account) => account.userId === snapshot.activeAccountId
|
|
36
|
+
);
|
|
37
|
+
return active ?? null;
|
|
38
|
+
}
|
|
39
|
+
return LOCAL_USER;
|
|
40
|
+
};
|
|
41
|
+
var selectIdentityUserBalance = (state) => void 0;
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
getSessionSnapshotForState,
|
|
45
|
+
selectIdentityUserId,
|
|
46
|
+
selectIdentityToken,
|
|
47
|
+
selectIdentityUser,
|
|
48
|
+
selectIdentityUserBalance
|
|
49
|
+
};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getRuntimeServerContext,
|
|
3
3
|
scheduleDeleteReplication
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KWSQR2KK.js";
|
|
5
5
|
import {
|
|
6
6
|
fetchFromClientDb
|
|
7
7
|
} from "./chunk-QOKAKDPE.js";
|
|
8
|
+
import {
|
|
9
|
+
selectIdentityToken
|
|
10
|
+
} from "./chunk-SEJ5OS6F.js";
|
|
8
11
|
import {
|
|
9
12
|
buildTombstoneRecord
|
|
10
13
|
} from "./chunk-GBRG75BQ.js";
|
|
@@ -191,7 +194,7 @@ var removeAction = async (payload, thunkApi) => {
|
|
|
191
194
|
preferredServerOrigin,
|
|
192
195
|
currentServer,
|
|
193
196
|
syncServers,
|
|
194
|
-
hasToken: Boolean(state
|
|
197
|
+
hasToken: Boolean(selectIdentityToken(state))
|
|
195
198
|
});
|
|
196
199
|
const localData = await fetchFromClientDb(clientDb, dbKey);
|
|
197
200
|
const hadLocalData = Boolean(localData);
|
|
@@ -10,8 +10,6 @@ import {
|
|
|
10
10
|
var CURRENT_OPERATOR_USER_ID = "0e95801d90";
|
|
11
11
|
var NOLO_DEFAULT_AGENT_ID = "01NOLOAPPBLD000000019KCKT0";
|
|
12
12
|
var NOLO_DEFAULT_AGENT_KEY = publicAgentKey(NOLO_DEFAULT_AGENT_ID);
|
|
13
|
-
var NOLO_PROJECT_MANAGER_AGENT_ID = "01NOLOPROJMGR00000000MSVGG";
|
|
14
|
-
var NOLO_PROJECT_MANAGER_AGENT_KEY = ownedAgentKey(CURRENT_OPERATOR_USER_ID, NOLO_PROJECT_MANAGER_AGENT_ID);
|
|
15
13
|
var NOLO_FRONTEND_AGENT_ID = "01FRONTENDAG0000000115N4E1";
|
|
16
14
|
var NOLO_FRONTEND_AGENT_KEY = ownedAgentKey(CURRENT_OPERATOR_USER_ID, NOLO_FRONTEND_AGENT_ID);
|
|
17
15
|
var LOCAL_CODEX_AGENT_ID = "01LOCALCODEXCLI000000NEW";
|
|
@@ -27,8 +25,6 @@ var AGENT_ALIAS_TO_KEY = {
|
|
|
27
25
|
"frontend agent": NOLO_FRONTEND_AGENT_KEY,
|
|
28
26
|
"\u524D\u7AEFagent": NOLO_FRONTEND_AGENT_KEY,
|
|
29
27
|
"\u524D\u7AEF agent": NOLO_FRONTEND_AGENT_KEY,
|
|
30
|
-
"project-manager": NOLO_PROJECT_MANAGER_AGENT_KEY,
|
|
31
|
-
pm: NOLO_PROJECT_MANAGER_AGENT_KEY,
|
|
32
28
|
// Explicit local CLI agents. These are ordinary private agent records that
|
|
33
29
|
// run through the current computer local runtime when unbound.
|
|
34
30
|
"local-codex": LOCAL_CODEX_AGENT_KEY,
|
|
@@ -55,7 +51,6 @@ function isLocalCliAgentKey(agentKey) {
|
|
|
55
51
|
export {
|
|
56
52
|
NOLO_DEFAULT_AGENT_ID,
|
|
57
53
|
NOLO_DEFAULT_AGENT_KEY,
|
|
58
|
-
NOLO_PROJECT_MANAGER_AGENT_KEY,
|
|
59
54
|
LOCAL_CODEX_AGENT_ID,
|
|
60
55
|
LOCAL_CODEX_AGENT_KEY,
|
|
61
56
|
resolveCliAgentKeyInput,
|