nolo-cli 0.201.0-alpha.2 → 0.202.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-BNYZLAN6.js → _executeModel-IPRTPSW7.js} +34 -33
- package/{agentDeleteCommand-4V4YSAXS.js → agentDeleteCommand-WHT2MMAP.js} +49 -47
- package/{agentEmailCommands-EYIQEH6Z.js → agentEmailCommands-4LW2BFLY.js} +51 -49
- package/{agentListCommands-2KGUT7UB.js → agentListCommands-2KF47HY6.js} +81 -45
- package/{agentMachineCommands-WUN47ILO.js → agentMachineCommands-QQCFQQ4T.js} +28 -26
- package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
- package/{agentRecordCommands-XL2CON36.js → agentRecordCommands-ARVXF2C2.js} +47 -45
- package/{agentRunCommand-R237ZGMQ.js → agentRunCommand-3IL5PW2S.js} +49 -47
- package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
- package/{agentRuntimeLocal-XLLWFAVI.js → agentRuntimeLocal-YXHJV65L.js} +24 -22
- package/{agentSlice-Z5NKGMB7.js → agentSlice-BFDKYW6H.js} +4 -3
- package/{appDeleteCommands-IPF2VI3W.js → appDeleteCommands-OWJO3WFB.js} +29 -27
- package/{appDeployCommands-IBQ7GUXO.js → appDeployCommands-X7HLT27G.js} +29 -27
- package/{appDeployStatusCommands-6ESVU6XE.js → appDeployStatusCommands-CHCZ7ZUD.js} +29 -27
- package/{appGetCommands-VTSYTM4V.js → appGetCommands-AZW2EE4R.js} +29 -27
- package/{appListCommands-VCP5TUX7.js → appListCommands-YFN6DP6K.js} +29 -27
- package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
- package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
- package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
- package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
- package/chunk-2BMURXSB.js +1863 -0
- package/{chunk-RRHJJUA3.js → chunk-2PI4QFAL.js} +174 -100
- package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
- package/{chunk-EOLPKHSB.js → chunk-326HCB6L.js} +28 -24
- package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
- package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
- package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
- package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
- package/{chunk-SW5AAI5D.js → chunk-4SH22ZG7.js} +5 -5
- package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
- package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
- package/chunk-6UBGXX2W.js +12 -0
- package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
- package/{chunk-Z646E5YH.js → chunk-ASG7VWPK.js} +3 -3
- package/{chunk-QWVGFBOQ.js → chunk-BLFZULEQ.js} +3 -3
- package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
- package/{chunk-KORCRPLO.js → chunk-C7PKPHK6.js} +334 -12
- package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
- package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
- package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
- package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
- package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
- package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
- package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
- package/{chunk-26CRLZFD.js → chunk-D57YYGMD.js} +2 -2
- package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
- package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
- package/{chunk-4YX7VQOC.js → chunk-E2FC5RMU.js} +17 -14
- package/{chunk-EH4MNUMF.js → chunk-ETTDZBK5.js} +4 -4
- package/{chunk-BUXH3H5M.js → chunk-FWMOJTGR.js} +3722 -4851
- package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
- package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
- package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
- package/{chunk-A5VR65AE.js → chunk-HJS5EIKS.js} +4 -4
- package/{chunk-H44LQSZ2.js → chunk-HKWGI3TM.js} +178 -311
- package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
- package/{chunk-YXMZHGNA.js → chunk-KDUYNEJ5.js} +33 -16
- package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
- package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
- package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
- package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
- package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
- package/chunk-PRJ473FK.js +63 -0
- package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
- package/{chunk-C2UXCAMB.js → chunk-RIKSN62L.js} +3 -3
- package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
- package/{chunk-H7NIQGTU.js → chunk-RS66RJLA.js} +2 -2
- package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
- package/{chunk-QKDMI22S.js → chunk-SSK4WNJA.js} +1 -1
- package/{chunk-6MAFLMAO.js → chunk-SUBNV2JH.js} +3 -3
- package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
- package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
- package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
- package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
- package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
- package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
- package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
- package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
- package/{chunk-FEKMTBKJ.js → chunk-XW6B2RJW.js} +192 -55
- package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
- package/{chunk-A3SXTJDE.js → chunk-YAGFPXOX.js} +14 -14
- package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
- package/{chunk-NYE2INIO.js → chunk-YV2RSLM4.js} +13 -13
- package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
- package/{commandRegistry-YFXWA5SF.js → commandRegistry-HEBIO2A4.js} +87 -67
- package/{contentThunks-2BV7CFUP.js → contentThunks-I4IHSDTM.js} +14 -13
- package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
- package/{createAgentAutomationAction-T6CGXCSO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
- package/{createDialogAction-X27IA3G2.js → createDialogAction-CKMZK5JQ.js} +15 -14
- package/{createPageAction-EHDHNW5P.js → createPageAction-QAZHQGY7.js} +14 -13
- package/{dialogCommands-XZXH3HSQ.js → dialogCommands-YMAHICPJ.js} +30 -28
- package/{dialogSlice-AZNPVOCU.js → dialogSlice-GEGACCH2.js} +13 -12
- package/{docCreateCommands-Z64V5BFZ.js → docCreateCommands-SNMAKBXN.js} +28 -26
- package/{docDeleteCommands-7UFHIM4C.js → docDeleteCommands-K52UESRC.js} +29 -27
- package/{docReadCommands-NLU7Y67R.js → docReadCommands-AG6LLHJ7.js} +28 -26
- package/{docStore-M37Q6JFO.js → docStore-B4EFT53J.js} +1 -1
- package/{docUpdateCommands-S2KGBEG3.js → docUpdateCommands-B5EZ7DYN.js} +28 -26
- package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
- package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
- package/{handleSendMessageAction-KUJQZ6B6.js → handleSendMessageAction-4BACQWOG.js} +70 -29
- package/index.js +7 -7
- package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
- package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
- package/{localRuntimeAdapter-5BNHO6JZ.js → localRuntimeAdapter-5CVSCXHI.js} +45 -43
- package/{machineCommands-2KDROAVV.js → machineCommands-R7L4IBQL.js} +48 -46
- package/{machineWsRunDispatch-4NP5M574.js → machineWsRunDispatch-KZHTW7DW.js} +46 -44
- package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
- package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
- package/package.json +1 -1
- package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
- package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
- package/{readlineWorkspace-MKUSR6HA.js → readlineWorkspace-PDPEWRSG.js} +290 -121
- package/{runAgentClientLoop-J32KRVN7.js → runAgentClientLoop-QKV66PX5.js} +31 -30
- package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
- package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
- package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
- package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
- package/{spaceCommands-VV4K7TGI.js → spaceCommands-VD3CZWXM.js} +27 -25
- package/{streamAgentChatTurn-S2Q7STXS.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
- package/{tools-KOIPW4ZA.js → tools-UJLEQBKI.js} +25 -24
- package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
- package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
- package/{updateDialogTitleAction-ILS5OIXF.js → updateDialogTitleAction-24QO27NT.js} +14 -13
- package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-N2VH2OBW.js} +2 -2
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-UEILX4EV.js";
|
|
4
4
|
import {
|
|
5
5
|
compareAgentSelection
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2Q3LOAFE.js";
|
|
7
7
|
import {
|
|
8
8
|
DEFAULT_PROVIDER_RETRY_MS,
|
|
9
9
|
isAgentUnavailableNow,
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
isAntigravityOAuthAgent,
|
|
22
22
|
isSubscriptionEndpoint,
|
|
23
23
|
isSubscriptionOAuthCredential
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-VEUSD6OF.js";
|
|
25
25
|
import {
|
|
26
26
|
getModelAbility
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-T43B7LB2.js";
|
|
28
28
|
|
|
29
29
|
// packages/ai/agent/agentBilling.ts
|
|
30
30
|
function resolveBillingSource(candidate) {
|
|
@@ -489,33 +489,37 @@ function sortSafeAgentSummaries(agents) {
|
|
|
489
489
|
return [...agents].sort(compareAgentSelection);
|
|
490
490
|
}
|
|
491
491
|
var COMPACT_AGENT_SUMMARY_FIELDS = [
|
|
492
|
+
// —— 派发决策必需(短字段,必须排最前)——
|
|
493
|
+
// agentKey 是唯一不可推导、必须逐字复制的字段;截断时它首先被保住。
|
|
492
494
|
"agentKey",
|
|
493
495
|
"name",
|
|
494
496
|
"model",
|
|
495
497
|
// 能力档弱先验(unknown = 模型名没给出信号,不推断强弱)。
|
|
496
498
|
"tier",
|
|
497
|
-
"provider",
|
|
498
|
-
"apiSource",
|
|
499
499
|
"billingSource",
|
|
500
|
+
"availabilityStatus",
|
|
501
|
+
"credentialGroup",
|
|
500
502
|
"isFavorite",
|
|
501
503
|
"isOAuth",
|
|
502
504
|
"isOwned",
|
|
503
505
|
"isPublic",
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
"
|
|
506
|
+
// —— 次要身份/来源字段(仍很短)——
|
|
507
|
+
"provider",
|
|
508
|
+
"apiSource",
|
|
509
|
+
"credentialKind",
|
|
510
|
+
"credentialed",
|
|
508
511
|
// 仅限流中的 agent 才会带(可用 agent 上不存在)。对"现在能不能选它"是
|
|
509
512
|
// 决策信息(CLI --show-unavailable 场景);默认列表已把这类 agent 过滤掉,
|
|
510
513
|
// 所以通常根本不占字节。
|
|
511
514
|
"nextAvailableAt",
|
|
512
|
-
// 额度快照:只有上游真上报过窗口的 agent 才带(通常是小对象)。
|
|
513
|
-
"quota",
|
|
514
|
-
"availabilityStatus",
|
|
515
515
|
"availabilityReason",
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
516
|
+
// —— 体积大的说明性字段(排在每条记录最后,截断时先牺牲它们)——
|
|
517
|
+
// Phase 2A economics 快照(period/multipliers/changesAt 等小对象)。
|
|
518
|
+
// 只对 DeepSeek API / BigModel GLM Coding Plan 存在;不含完整 policy/windows。
|
|
519
|
+
"economics",
|
|
520
|
+
"tools",
|
|
521
|
+
// 额度快照(windows 数组,体积最大):只有上游真上报过窗口的 agent 才带。
|
|
522
|
+
"quota"
|
|
519
523
|
];
|
|
520
524
|
function omitNullishAgentSummaryFields(summary) {
|
|
521
525
|
const result = {};
|
|
@@ -536,6 +540,39 @@ function toCompactAgentSummary(summary) {
|
|
|
536
540
|
}
|
|
537
541
|
return compact;
|
|
538
542
|
}
|
|
543
|
+
var ULTRA_COMPACT_AGENT_SUMMARY_FIELDS = [
|
|
544
|
+
// —— 派发决策与关键准入语义(必须保留,不能宣称安全但丢证据)——
|
|
545
|
+
"agentKey",
|
|
546
|
+
"name",
|
|
547
|
+
"model",
|
|
548
|
+
"tier",
|
|
549
|
+
"billingSource",
|
|
550
|
+
"availabilityStatus",
|
|
551
|
+
"credentialGroup",
|
|
552
|
+
"isFavorite",
|
|
553
|
+
"isOAuth",
|
|
554
|
+
"isOwned",
|
|
555
|
+
"isPublic",
|
|
556
|
+
"provider",
|
|
557
|
+
"apiSource",
|
|
558
|
+
"credentialKind",
|
|
559
|
+
"credentialed",
|
|
560
|
+
"nextAvailableAt",
|
|
561
|
+
"availabilityReason",
|
|
562
|
+
"economics",
|
|
563
|
+
"tools",
|
|
564
|
+
"quota"
|
|
565
|
+
];
|
|
566
|
+
function toUltraCompactAgentSummary(summary) {
|
|
567
|
+
const compact = {};
|
|
568
|
+
for (const field of ULTRA_COMPACT_AGENT_SUMMARY_FIELDS) {
|
|
569
|
+
const value = summary[field];
|
|
570
|
+
if (value !== null && value !== void 0) {
|
|
571
|
+
compact[field] = value;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
return compact;
|
|
575
|
+
}
|
|
539
576
|
var UNAVAILABLE_AGENT_SUMMARY_FIELDS = [
|
|
540
577
|
"agentKey",
|
|
541
578
|
"name",
|
|
@@ -629,6 +666,61 @@ function filterAgentsByScope(agents, scope) {
|
|
|
629
666
|
if (scope === "public") return unique.filter((agent) => isPublicDiscoveryAgent(agent));
|
|
630
667
|
return unique.filter((agent) => isPreferredAgent(agent) || agent.isPublic === true);
|
|
631
668
|
}
|
|
669
|
+
function resolvePaginationArgs(args) {
|
|
670
|
+
let limit;
|
|
671
|
+
let offset;
|
|
672
|
+
if (args?.limit !== void 0 && args?.limit !== null) {
|
|
673
|
+
const raw = args.limit;
|
|
674
|
+
if (typeof raw === "boolean") {
|
|
675
|
+
throw new Error(`Invalid limit '${raw}': must be a positive integer.`);
|
|
676
|
+
}
|
|
677
|
+
if (typeof raw === "number") {
|
|
678
|
+
if (!Number.isInteger(raw) || raw <= 0) {
|
|
679
|
+
throw new Error(`Invalid limit '${raw}': must be a positive integer.`);
|
|
680
|
+
}
|
|
681
|
+
limit = Math.min(raw, 500);
|
|
682
|
+
} else if (typeof raw === "string") {
|
|
683
|
+
if (raw.trim() !== "") {
|
|
684
|
+
if (!/^\d+$/.test(raw.trim())) {
|
|
685
|
+
throw new Error(`Invalid limit '${raw}': must be a positive integer.`);
|
|
686
|
+
}
|
|
687
|
+
const parsed = Number(raw.trim());
|
|
688
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
689
|
+
throw new Error(`Invalid limit '${raw}': must be a positive integer.`);
|
|
690
|
+
}
|
|
691
|
+
limit = Math.min(parsed, 500);
|
|
692
|
+
}
|
|
693
|
+
} else {
|
|
694
|
+
throw new Error(`Invalid limit '${String(raw)}': must be a positive integer.`);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
if (args?.offset !== void 0 && args?.offset !== null) {
|
|
698
|
+
const raw = args.offset;
|
|
699
|
+
if (typeof raw === "boolean") {
|
|
700
|
+
throw new Error(`Invalid offset '${raw}': must be a non-negative integer.`);
|
|
701
|
+
}
|
|
702
|
+
if (typeof raw === "number") {
|
|
703
|
+
if (!Number.isInteger(raw) || raw < 0) {
|
|
704
|
+
throw new Error(`Invalid offset '${raw}': must be a non-negative integer.`);
|
|
705
|
+
}
|
|
706
|
+
offset = raw;
|
|
707
|
+
} else if (typeof raw === "string") {
|
|
708
|
+
if (raw.trim() !== "") {
|
|
709
|
+
if (!/^\d+$/.test(raw.trim())) {
|
|
710
|
+
throw new Error(`Invalid offset '${raw}': must be a non-negative integer.`);
|
|
711
|
+
}
|
|
712
|
+
const parsed = Number(raw.trim());
|
|
713
|
+
if (!Number.isInteger(parsed) || parsed < 0) {
|
|
714
|
+
throw new Error(`Invalid offset '${raw}': must be a non-negative integer.`);
|
|
715
|
+
}
|
|
716
|
+
offset = parsed;
|
|
717
|
+
}
|
|
718
|
+
} else {
|
|
719
|
+
throw new Error(`Invalid offset '${String(raw)}': must be a non-negative integer.`);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
return { limit, offset };
|
|
723
|
+
}
|
|
632
724
|
function matchesAgentQuery(agent, query) {
|
|
633
725
|
if (!query || typeof query !== "string") return true;
|
|
634
726
|
const q = query.trim().toLowerCase();
|
|
@@ -680,14 +772,45 @@ function buildAgentDiscoveryResult(options) {
|
|
|
680
772
|
if (options.showUnavailable !== true) {
|
|
681
773
|
scopedAgents = scopedAgents.filter((a) => !isAgentUnavailableNow(a, now));
|
|
682
774
|
}
|
|
775
|
+
const pagination = resolvePaginationArgs({
|
|
776
|
+
limit: options.limit,
|
|
777
|
+
offset: options.offset
|
|
778
|
+
});
|
|
779
|
+
const offset = pagination.offset;
|
|
780
|
+
const limit = pagination.limit;
|
|
683
781
|
const sortedAgents = sortSafeAgentSummaries(scopedAgents);
|
|
684
|
-
const
|
|
782
|
+
const hasQuery = Boolean(options.query && typeof options.query === "string" && options.query.trim());
|
|
783
|
+
const hasFilteredCandidates = sortedAgents.length < options.agents.length;
|
|
784
|
+
let total;
|
|
785
|
+
if (hasQuery) {
|
|
786
|
+
total = sortedAgents.length;
|
|
787
|
+
} else if (hasFilteredCandidates) {
|
|
788
|
+
total = sortedAgents.length;
|
|
789
|
+
} else if (scope === "public") {
|
|
790
|
+
total = typeof options.upstreamTotal === "number" && options.upstreamTotal > sortedAgents.length ? options.upstreamTotal : sortedAgents.length;
|
|
791
|
+
} else if (scope === "all") {
|
|
792
|
+
const privateOnlyCount = scopedAgents.filter((a) => isPreferredAgent(a) && a.isPublic !== true).length;
|
|
793
|
+
const publicPulledCount = scopedAgents.filter((a) => a.isPublic === true).length;
|
|
794
|
+
const effectivePublicTotal = typeof options.upstreamTotal === "number" && options.upstreamTotal > publicPulledCount ? options.upstreamTotal : publicPulledCount;
|
|
795
|
+
total = options.upstreamTruncated === true ? privateOnlyCount + effectivePublicTotal : sortedAgents.length;
|
|
796
|
+
} else {
|
|
797
|
+
total = typeof options.upstreamTotal === "number" && options.upstreamTotal > sortedAgents.length ? options.upstreamTotal : sortedAgents.length;
|
|
798
|
+
}
|
|
799
|
+
const isTruncated = options.upstreamTruncated === true || !hasQuery && !hasFilteredCandidates && typeof options.upstreamTotal === "number" && options.upstreamTotal > sortedAgents.length;
|
|
800
|
+
const pagedAgents = typeof limit === "number" || typeof offset === "number" ? sortedAgents.slice(
|
|
801
|
+
offset ?? 0,
|
|
802
|
+
(offset ?? 0) + (limit ?? sortedAgents.length)
|
|
803
|
+
) : sortedAgents;
|
|
804
|
+
const projectedAgents = options.verbose === true ? pagedAgents.map(omitNullishAgentSummaryFields) : options.compact === true ? pagedAgents.map(toUltraCompactAgentSummary) : pagedAgents.map(toCompactAgentSummary);
|
|
685
805
|
return {
|
|
686
|
-
total
|
|
806
|
+
total,
|
|
807
|
+
...typeof offset === "number" ? { offset } : {},
|
|
808
|
+
...typeof limit === "number" ? { limit } : {},
|
|
809
|
+
...isTruncated ? { truncated: true } : {},
|
|
687
810
|
unavailableCount,
|
|
688
|
-
|
|
811
|
+
agents: projectedAgents,
|
|
689
812
|
credentialGroups,
|
|
690
|
-
|
|
813
|
+
unavailableAgents
|
|
691
814
|
};
|
|
692
815
|
}
|
|
693
816
|
function toDiscoverySafeAgentSummary(record, options) {
|
|
@@ -702,6 +825,7 @@ export {
|
|
|
702
825
|
summarizeCredentialGroups,
|
|
703
826
|
isOwnedAgentRecord,
|
|
704
827
|
resolveDiscoveryScope,
|
|
828
|
+
resolvePaginationArgs,
|
|
705
829
|
matchesAgentQuery,
|
|
706
830
|
buildAgentDiscoveryResult,
|
|
707
831
|
toDiscoverySafeAgentSummary
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_SELECTION_PRIORITY_INSTRUCTIONS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2Q3LOAFE.js";
|
|
4
4
|
import {
|
|
5
5
|
canonicalizeToolNames
|
|
6
6
|
} from "./chunk-AKE53VMW.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-PSCNXBYA.js";
|
|
16
16
|
import {
|
|
17
17
|
getModelConfig
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SM3NSZJV.js";
|
|
19
19
|
import {
|
|
20
20
|
asTrimmedString
|
|
21
21
|
} from "./chunk-3EUW3WEO.js";
|
|
@@ -92,15 +92,15 @@ var buildIdentityBlock = (input) => {
|
|
|
92
92
|
var DELETE_SAFETY_RED_LINE = [
|
|
93
93
|
"\u3010\u5220\u9664\u5B89\u5168\u7EA2\u7EBF \xB7 \u6700\u9AD8\u4F18\u5148\u7EA7\u3011",
|
|
94
94
|
"\u9664\u4E0B\u8FF0\u552F\u4E00\u4F8B\u5916\u5916\uFF0C\u4EFB\u4F55\u5220\u9664\u64CD\u4F5C\uFF08\u6587\u4EF6\u3001\u6570\u636E\u3001\u5E73\u53F0/\u8FDC\u7AEF\u5185\u5BB9\u3001\u6D88\u606F\u7B49\uFF0C\u65E0\u8BBA\u5355\u6761\u6216\u6279\u91CF\uFF09\u6267\u884C\u524D\uFF0C\u5FC5\u987B\u5148\u5411\u7528\u6237\u5448\u73B0\u5B8C\u6574\u5F85\u5220\u6E05\u5355\uFF08\u540D\u79F0/\u8DEF\u5F84/\u6807\u9898\u7B49\u53EF\u8BC6\u522B\u4FE1\u606F\uFF0C\u4E0D\u5F97\u622A\u65AD\uFF09\uFF0C\u5E76\u83B7\u5F97\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\u624D\u53EF\u6267\u884C\uFF1B\u4E25\u7981\u7528\u6A21\u7CCA\u5B9A\u4F4D\uFF08\u5982\u201C\u5217\u8868\u6700\u4E0B\u65B9\u201D\uFF09\u6307\u4EE3\u5220\u9664\u76EE\u6807\uFF0C\u4E25\u7981\u5148\u5220\u540E\u62A5\u3002\u5B88\u536B\u68C0\u67E5\u4E0E\u5220\u9664\u52A8\u4F5C**\u4E0D\u5F97\u7528 `;` \u8FDE\u63A5**\u2014\u2014\u5FC5\u987B\u7528 `&&`/`if` \u8BA9\u5220\u9664\u52A8\u4F5C\u5904\u5728\u5B88\u536B\u7684\u6210\u8D25\u8DEF\u5F84\u4E0A\uFF0C\u5426\u5219\u5B88\u536B\u6253\u5370\u7684\u300C\u6709\u5DEE\u5F02 \u2192 \u4E0D\u5220\u300D\u62E6\u4E0D\u4F4F\u7D27\u968F\u5176\u540E\u88AB `;` \u4E32\u8054\u6267\u884C\u7684\u5220\u9664\u547D\u4EE4\uFF082026-10-07 \u771F\u5B9E\u8E29\u5751\uFF09\u3002\uFF082026-09-26 \u6279\u91CF\u8BEF\u5220\u4E8B\u6545\u6559\u8BAD\uFF09",
|
|
95
|
-
"\u552F\u4E00\u4F8B\u5916\xB7\u53EF\u9A8C\u8BC1\u6062\u590D\u7684\u4EFB\u52A1\u6E05\u7406\uFF1A\u672C\u6B21\u4EFB\u52A1\u4EB2\u81EA\u521B\u5EFA/\u542F\u52A8\u3001\u4E14\u6E05\u7406\u524D\u5DF2\u7528\u5B9E\u9645\u547D\u4EE4\u9010\u9879\u9A8C\u8BC1\u300C\u8981\u5220\u7684\u5168\u90E8\u5185\u5BB9\u53E6\u6709\u5B8C\u6574\u526F\u672C\u3001\u5220\u4E86\u53EF\u65E0\u635F\u6062\u590D\u300D\u7684\u8D44\u6E90\uFF0C\u53EF\u514D\u4E8B\u524D\u6E05\u5355\u4E0E\u786E\u8BA4\uFF0C\u6E05\u7406\u540E\u5728\u6C47\u62A5\u4E2D\u9010\u9879\u5217\u660E\uFF1B\u7CBE\u786E\u5B9A\u4F4D\u4ECD\u5FC5\u987B\u3002\u4EC5\u9650\uFF1A\u2460 \u5DF2\u5B8C\u6574\u5408\u5165\u4FDD\u7559\u7684\u96C6\u6210\u5206\u652F\uFF08git merge-base --is-ancestor \u9A8C\u8BC1\uFF09\u7684\u672C\u5730\u5206\u652F\u4E0E worktree\uFF0C\u4E14\u9664 a)\u3001b) \u4E24\u7C7B\u5916\uFF0C`git status --porcelain --ignored` \u8F93\u51FA\u5FC5\u987B\u4E3A\u7A7A\uFF1Aa) `!! node_modules/`\u2014\u2014\u987B\
|
|
95
|
+
"\u552F\u4E00\u4F8B\u5916\xB7\u53EF\u9A8C\u8BC1\u6062\u590D\u7684\u4EFB\u52A1\u6E05\u7406\uFF1A\u672C\u6B21\u4EFB\u52A1\u4EB2\u81EA\u521B\u5EFA/\u542F\u52A8\u3001\u4E14\u6E05\u7406\u524D\u5DF2\u7528\u5B9E\u9645\u547D\u4EE4\u9010\u9879\u9A8C\u8BC1\u300C\u8981\u5220\u7684\u5168\u90E8\u5185\u5BB9\u53E6\u6709\u5B8C\u6574\u526F\u672C\u3001\u5220\u4E86\u53EF\u65E0\u635F\u6062\u590D\u300D\u7684\u8D44\u6E90\uFF0C\u53EF\u514D\u4E8B\u524D\u6E05\u5355\u4E0E\u786E\u8BA4\uFF0C\u6E05\u7406\u540E\u5728\u6C47\u62A5\u4E2D\u9010\u9879\u5217\u660E\uFF1B\u7CBE\u786E\u5B9A\u4F4D\u4ECD\u5FC5\u987B\u3002\u4EC5\u9650\uFF1A\u2460 \u5DF2\u5B8C\u6574\u5408\u5165\u4FDD\u7559\u7684\u96C6\u6210\u5206\u652F\uFF08git merge-base --is-ancestor \u9A8C\u8BC1\uFF09\u7684\u672C\u5730\u5206\u652F\u4E0E worktree\uFF0C\u4E14\u9664 a)\u3001b) \u4E24\u7C7B\u5916\uFF0C`git status --porcelain --ignored` \u8F93\u51FA\u5FC5\u987B\u4E3A\u7A7A\uFF1Aa) `!! node_modules/`\uFF08\u53CA `packages/*/node_modules/`\uFF09\u2014\u2014\u987B\u786E\u8BA4\u5C5E\u4F9D\u8D56\u5B89\u88C5\u4EA7\u7269\uFF0C\u4E14\u80FD\u7528\u4ED3\u5E93\u5185\u65E2\u6709\u547D\u4EE4\uFF08\u5982 `bun install`\uFF0C\u914D\u5408\u4ED3\u5E93\u5185 `bun.lock` \u4E0E `package.json`\uFF09\u65E0\u635F\u91CD\u5EFA\uFF1Bnode_modules \u91CC\u82E5\u6DF7\u6709\u975E\u4F9D\u8D56\u4EA7\u7269\uFF08\u4F8B\u5982\u672C\u5730\u624B\u5DE5\u653E\u7F6E\u7684\u811A\u672C\u3001\u8865\u4E01\u8FC7\u7684\u5305\u3001\u6216\u6307\u5411 worktree \u5916\u7684\u7B26\u53F7\u94FE\u63A5\uFF09\uFF0C\u5219\u8BE5\u76EE\u5F55\u6574\u4F53\u4E0D\u7B97\u53EF\u518D\u751F\uFF0C\u9700\u6309\u539F\u8DEF\u5F84\u9010\u9879\u5224\u65AD\uFF1Bb) \u88AB\u5FFD\u7565\u7684**\u53EF\u518D\u751F\u6784\u5EFA\u4EA7\u7269**\uFF08\u5982 `*.tsbuildinfo`\u3001\u6784\u5EFA/\u7F16\u8BD1\u7F13\u5B58\uFF09\u2014\u2014\u987B\u9010\u9879\u5217\u51FA\u8DEF\u5F84\uFF0C\u5E76\u7ED9\u51FA\u80FD\u91CD\u65B0\u751F\u6210\u5B83\u7684**\u4ED3\u5E93\u5185\u65E2\u6709\u547D\u4EE4**\uFF08\u5F53\u6B21\u5B9E\u9645\u6267\u884C\u901A\u8FC7\uFF1B\u6307\u4E0D\u51FA\u547D\u4EE4\u6216\u8DD1\u4E0D\u901A\u7684\u4E00\u5F8B\u4E0D\u653E\u884C\uFF09\uFF0C\u786E\u8BA4\u53EF\u7531\u8BE5\u547D\u4EE4\u65E0\u635F\u518D\u751F\u3001\u4E0D\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u3001\u4E14\u4E0D\u662F\u624B\u5DE5\u6539\u52A8\u8FC7\u7684\u4EA7\u7269\uFF1B\u4E0B\u5217\u4E00\u5F8B\u4E0D\u5C5E\u6B64\u7C7B\uFF1A`.env*` \u7B49\u51ED\u8BC1\u3001`data/`\u3001`nolo/`\u3001`.nolo/`\u3001\u4EFB\u4F55\u6570\u636E\u5E93/LevelDB/WAL/\u5BA1\u8BA1/\u65E5\u5FD7/\u62A5\u544A/\u5BFC\u51FA\u76EE\u5F55\u3001`artifacts/`\u3001\u624B\u5DE5\u6539\u52A8\u8FC7\u7684 `dist/`\u3001`public/` \u4E0B\u7684\u4EA7\u7269\u76EE\u5F55\uFF1B\u300C\u5DF2\u88AB gitignore\u300D\u300C\u662F\u6784\u5EFA\u4EA7\u7269\u300D\u300C\u53EF\u91CD\u65B0\u6784\u5EFA\u300D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u8BF4\u6CD5\u4E0D\u6784\u6210\u653E\u884C\u7406\u7531\u3002\u6CE8\u610F `git worktree remove` \u4E0D\u4F1A\u56E0 ignored \u5185\u5BB9\u800C\u62D2\u7EDD\uFF08\u4F1A\u8FDE\u5176\u4E00\u5E76\u5220\u9664\uFF09\uFF0C\u672C\u4F8B\u5916\u6CA1\u6709\u673A\u68B0\u515C\u5E95\uFF0C\u4E0A\u8FF0\u9010\u9879\u6838\u5B9E\u662F\u552F\u4E00\u9632\u7EBF\uFF1B\u53EA\u7528\u4E0D\u5E26 --force \u7684 git worktree remove \u4E0E git branch -d\uFF0C\u7981\u6B62 -D\u3001--force\u3001rm -rf \u66FF\u4EE3\uFF1B\u2461 \u672C\u6B21\u521B\u5EFA\u3001\u5185\u5BB9\u53EA\u662F\u53EF\u518D\u751F\u4E2D\u95F4\u4EA7\u7269\uFF08\u65E5\u5FD7\u3001\u63A2\u9488\u811A\u672C\u3001\u622A\u56FE\u3001\u6784\u5EFA\u7F13\u5B58\uFF09\u7684 /tmp \u6587\u4EF6\uFF0C\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u7684\u4E0D\u7B97\uFF1B\u2462 \u672C\u6B21\u542F\u52A8\u3001\u6309\u5F53\u6B21\u8BB0\u5F55\u7684 PID \u6838\u5B9E\u8EAB\u4EFD\u3001\u7EC8\u6B62\u4E0D\u4E22\u672A\u4FDD\u5B58\u72B6\u6001\u7684\u540E\u53F0\u8FDB\u7A0B\u3002\u201C\u6709\u5907\u4EFD\u201D\u201C\u5728 /tmp\u201D\u201C\u5DF2\u5408\u5E76\u201D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u5224\u65AD\u4E0D\u6784\u6210\u9A8C\u8BC1\uFF1B\u4EFB\u4E00\u9879\u65E0\u6CD5\u9A8C\u8BC1\uFF0C\u4E00\u5F8B\u56DE\u5230\u4E0A\u9762\u7684\u786E\u8BA4\u6D41\u7A0B\u3002\u7528\u6237\u6570\u636E\u3001\u8FDC\u7AEF/\u5E73\u53F0\u5185\u5BB9\u3001\u4ED6\u4EBA\u6216\u65E2\u6709\u7684\u6587\u4EF6\u3001\u5206\u652F\u3001stash \u6C38\u8FDC\u4E0D\u9002\u7528\u6B64\u4F8B\u5916\u3002"
|
|
96
96
|
].join("\n");
|
|
97
97
|
|
|
98
98
|
// packages/agent-runtime/credentialHygiene.ts
|
|
99
99
|
var CREDENTIAL_HYGIENE_RULE = `--- \u51ED\u636E\u7EAA\u5F8B ---
|
|
100
100
|
- \u9700\u8981\u4EFB\u4F55\u51ED\u636E / API key \u65F6\uFF1A\u5148 \`nolo secret list --json\` \u770B\u5DF2\u6709\u6761\u76EE\uFF08\u53EA\u51FA\u540D\u5B57\u4E0E\u5F62\u6001\uFF0C\u4E0D\u542B\u503C\uFF09\uFF0C\u518D\u7528 \`nolo secret run --with <name> -- <cmd>\` \u6CE8\u5165\u73AF\u5883\u53D8\u91CF\u6267\u884C\uFF1B\u4E0D\u8981\u5728\u547D\u4EE4\u884C\u91CC\u62FC\u63A5\u5BC6\u94A5\u503C\u3002
|
|
101
|
-
- \u65B0\u589E\u51ED\u636E\uFF1A\u8BF7\u7528\u6237\u672C\u4EBA\u6267\u884C \`nolo secret set <name>
|
|
102
|
-
- \u7981\u6B62\u628A\u5BC6\u94A5\u5199\u8FDB\u6587\u4EF6\uFF08\u542B \`~/.config/*.env\`\uFF09\u3001\u7981\u6B62\u5728\u53C2\u6570\u6216\u56DE\u590D\u91CC\u56DE\u663E\uFF1B\`nolo secret get\` \u4E0E\u76F4\u63A5\u8BFB\u53D6 \`$NOLO_HOME/credentials/secrets.json\` \u5747\u4EC5\u4F9B\u4EBA\u5DE5\u8C03\u8BD5\uFF0CAgent \u4E0D\u5F97\u8BFB\u53D6\u3002
|
|
103
|
-
- \u7528\u6237\u628A\u5BC6\u94A5\u76F4\u63A5\u8D34\u8FDB\u5BF9\u8BDD\u65F6\uFF1A\u7167\u5E38\u4F7F\u7528\uFF0C\u4F46\u63D0\u9192\u4E8B\u540E\u8F6E\u6362\uFF0C\u5E76\u63D0\u793A\u7528\u6237\
|
|
101
|
+
- \u65B0\u589E\u51ED\u636E\uFF1A\u8BF7\u7528\u6237\u672C\u4EBA\u5728\u7EC8\u7AEF\u6267\u884C \`nolo secret set <name> --prompt\`\uFF08\u6216\u901A\u8FC7 \`--stdin\` \u5B89\u5168\u4F20\u5165\uFF0C\u907F\u514D\u547D\u4EE4\u884C\u53C2\u6570\u7559\u75D5\uFF09\uFF0C\u4E4B\u540E\u7167\u5E38\u7528 \`run --with\` \u4F7F\u7528\u3002
|
|
102
|
+
- \u7981\u6B62\u628A\u5BC6\u94A5\u5199\u8FDB\u660E\u6587\u6587\u4EF6\uFF08\u542B \`~/.config/*.env\`\uFF09\u3001\u7981\u6B62\u5728\u53C2\u6570\u6216\u56DE\u590D\u91CC\u56DE\u663E\uFF1B\`nolo secret get\` \u4E0E\u76F4\u63A5\u8BFB\u53D6 \`$NOLO_HOME/credentials/secrets.json\` \u5747\u4EC5\u4F9B\u4EBA\u5DE5\u8C03\u8BD5\uFF0CAgent \u4E0D\u5F97\u8BFB\u53D6\u3002
|
|
103
|
+
- \u7528\u6237\u628A\u5BC6\u94A5\u76F4\u63A5\u8D34\u8FDB\u5BF9\u8BDD\u65F6\uFF1A\u7167\u5E38\u4F7F\u7528\uFF0C\u4F46\u63D0\u9192\u4E8B\u540E\u8F6E\u6362\uFF0C\u5E76\u63D0\u793A\u7528\u6237\u5C06\u5176\u5B89\u5168\u8FC1\u5165 \`nolo secret\`\u3002`;
|
|
104
104
|
|
|
105
105
|
// packages/agent-runtime/parallelDispatchDefault.ts
|
|
106
106
|
var PARALLEL_DISPATCH_DEFAULT_RULE = [
|
|
@@ -247,7 +247,21 @@ var buildContextLayerContractBlock = (options = {}) => {
|
|
|
247
247
|
"2. knowledge layer\uFF1A\u7A33\u5B9A\u89C4\u5219\u4E0E\u957F\u671F\u4E8B\u5B9E\uFF08\u901A\u8FC7 prompt / references \u81EA\u52A8\u52A0\u8F7D\uFF09\u3002",
|
|
248
248
|
"3. doc layer\uFF1A\u8DE8\u8F6E\u6B21\u7EF4\u62A4\u7684\u5916\u90E8\u5DE5\u4F5C\u53F0\uFF08runbook / mission / incident / checkpoint / idea backlog / experiment log\uFF0C\u663E\u5F0F\u6309\u9700\u8BFB\u5199\uFF09\u3002",
|
|
249
249
|
"",
|
|
250
|
-
"\u5199\u5165\u539F\u5219\uFF1A\u4E34\u65F6\u6B65\u9AA4\u3001\u539F\u59CB\u957F\u65E5\u5FD7\u3001\u4E00\u6B21\u6027\u601D\u8DEF\u4E0D\u8FDB memory/knowledge\uFF1B\u7A33\u5B9A\u89C4\u5219\u2192knowledge\u3001\u53EF\u590D\u7528\u504F\u597D/\u5171\u8BC6\u2192memory\u3001\u8DE8\u8F6E\u63A5\u529B\u72B6\u6001/\u6587\u6863\u2192doc\u3002"
|
|
250
|
+
"\u5199\u5165\u539F\u5219\uFF1A\u4E34\u65F6\u6B65\u9AA4\u3001\u539F\u59CB\u957F\u65E5\u5FD7\u3001\u4E00\u6B21\u6027\u601D\u8DEF\u4E0D\u8FDB memory/knowledge\uFF1B\u7A33\u5B9A\u89C4\u5219\u2192knowledge\u3001\u53EF\u590D\u7528\u504F\u597D/\u5171\u8BC6\u2192memory\u3001\u8DE8\u8F6E\u63A5\u529B\u72B6\u6001/\u6587\u6863\u2192doc\u3002",
|
|
251
|
+
"",
|
|
252
|
+
"\u4FE1\u606F\u843D\u4F4D\u5224\u5B9A\uFF08\u5185\u5BB9\u6027\u8D28/owner/\u6D88\u8D39\u65B9/\u751F\u547D\u5468\u671F/\u552F\u4E00\u771F\u6E90 \u2192 \u552F\u4E00\u5408\u6CD5\u843D\u70B9\uFF09\uFF1A",
|
|
253
|
+
"- \u4E2A\u4EBA\u504F\u597D\uFF08\u4E2A\u4EBA\u4EA4\u4E92\u4E60\u60EF\u3001\u504F\u597D\u7EA6\u5B9A\uFF09\uFF1A\u843D\u5165 memory\uFF1B\u7981\u6B62\u7528\u4E2A\u4EBA\u8BB0\u5FC6\u66FF\u4EE3\u9879\u76EE\u5171\u8BC6\u6216\u7CFB\u7EDF\u771F\u503C\u3002",
|
|
254
|
+
"- \u9879\u76EE\u51B3\u7B56 / \u4EA7\u54C1\u771F\u503C\uFF08\u67B6\u6784\u8BBE\u8BA1\u3001\u4E1A\u52A1\u89C4\u8303\u3001\u7CFB\u7EDF\u5951\u7EA6\uFF09\uFF1A\u843D\u5165 repo \u9879\u76EE\u6587\u6863\uFF08\u5982 docs/ \u4E0B canonical \u6587\u6863\uFF09\uFF1B\u4E25\u7981\u7528\u4E2A\u4EBA memory \u66FF\u4EE3\u3002",
|
|
255
|
+
"- \u8DE8 dialog \u5171\u8BFB\u5E73\u53F0\u5185\u5BB9\uFF08\u8DE8\u5BF9\u8BDD\u534F\u4F5C\u5DE5\u4F5C\u53F0\u3001\u5E73\u53F0\u9875\u9762\u77E5\u8BC6\uFF09\uFF1A\u843D\u5165 platform doc / space\uFF08\u5982 createDoc\uFF09\uFF1B\u7981\u6B62 repo \u6587\u6863\u4E0E\u5E73\u53F0 Doc \u4E92\u76F8\u5047\u88C5\u540C\u6B65\u3002",
|
|
256
|
+
"- \u4E34\u65F6\u63A2\u9488 / \u4E2D\u95F4\u65E5\u5FD7 / \u8C03\u8BD5\u811A\u672C\uFF1A\u843D\u5165\u672C\u5730 /tmp \u6216\u53EF\u518D\u751F\u7F13\u5B58\uFF0C\u4E0D\u957F\u671F\u4FDD\u7559\u3002",
|
|
257
|
+
"- \u53EF\u91CD\u7528\u64CD\u4F5C\u89C4\u7A0B\uFF08\u6807\u51C6\u64CD\u4F5C\u6B65\u9AA4\u3001\u6D41\u7A0B\u6267\u884C\u89C4\u7A0B\uFF09\uFF1A\u843D\u5165 skill\uFF1B\u4F46\u4EA7\u54C1\u771F\u503C\u4E0E\u7CFB\u7EDF\u89C4\u5219\u5728 skill \u4E2D\u53EA\u4FDD\u7559\u94FE\u63A5/\u5F15\u7528\uFF0C\u7981\u6B62\u590D\u5236\u771F\u6E90\u3002",
|
|
258
|
+
"- \u987B\u8FD0\u884C\u65F6\u5151\u73B0 / \u6743\u9650 / \u81EA\u52A8\u51B3\u7B56\uFF1A\u843D\u5165\u5E73\u53F0\u4EE3\u7801 + test \u5F3A\u5236\u4FDD\u969C\uFF0C\u7EDD\u4E0D\u80FD\u53EA\u9760 prompt \u63D0\u793A\u8BCD\u515C\u5E95\u3002",
|
|
259
|
+
"- \u51ED\u636E / \u5BC6\u94A5 / API key\uFF1A\u53EA\u8FDB\u53D7\u63A7 store\uFF08\u5982 secret \u7BA1\u7406\u670D\u52A1\uFF09\uFF0C\u4E25\u7981\u5199\u5165 memory / doc / skill / \u4EE3\u7801\u3002",
|
|
260
|
+
"",
|
|
261
|
+
"\u843D\u4F4D\u7EAA\u5F8B\uFF1A",
|
|
262
|
+
"- \u6280\u672F\u8F7D\u4F53\u4E0D\u662F\u8EAB\u4EFD\uFF1Arepo \u6587\u4EF6\u53EF\u627F\u8F7D\u89C4\u8303\u3001\u8BA1\u5212\u6216\u4E34\u65F6\u8BB0\u5F55\uFF0C\u4E0D\u5F97\u673A\u68B0\u6309\u6587\u4EF6\u540E\u7F00\u5224\u65AD\u5C42\u7EA7\uFF1B\u9879\u76EE\u672A\u5FC5\u662F git \u4ED3\u5E93\uFF0C\u4EE5\u5F53\u524D\u660E\u786E\u7684\u9879\u76EE\u7A7A\u95F4\u4E3A\u51C6\u3002",
|
|
263
|
+
"- \u5DF2\u6709\u771F\u6E90\u66F4\u65B0\u4E0D\u590D\u5236\uFF1A\u5DF2\u6709\u6743\u5A01\u771F\u6E90\u65F6\u5C31\u5730\u66F4\u65B0\uFF0C\u7981\u6B62\u591A\u5904\u590D\u5236\u4EA7\u751F\u5272\u88C2\u3002",
|
|
264
|
+
"- \u5199\u524D\u786E\u8BA4\u80FD\u529B\u771F\u5B9E\u53EF\u7528\uFF1A\u843D\u4F4D\u524D\u5FC5\u987B\u786E\u8BA4\u5F53\u524D\u73AF\u5883\u5177\u5907\u5BF9\u5E94\u5DE5\u5177\u4E0E\u6743\u9650\uFF1B\u65E0\u5DE5\u5177\u4E25\u7981\u58F0\u79F0\u5DF2\u521B\u5EFA\u3001\u5DF2\u6302\u8F7D\u6216\u5DF2\u751F\u6548\u3002"
|
|
251
265
|
];
|
|
252
266
|
if (options.hasRememberMemoryTool) {
|
|
253
267
|
lines.push(
|
|
@@ -402,13 +416,14 @@ var TOOL_USE_GUIDANCE = `--- \u5DE5\u5177\u4F7F\u7528\u7EAA\u5F8B ---
|
|
|
402
416
|
|
|
403
417
|
// packages/ai/agent/toolGuidedSections.ts
|
|
404
418
|
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
405
|
-
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\
|
|
419
|
+
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08\u5F02\u6B65 fork+exec \u8FD4\u56DE runId\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
|
|
406
420
|
|
|
407
|
-
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\
|
|
421
|
+
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u5148\u63A8\u8FDB\u72EC\u7ACB\u5DF2\u6388\u6743\u5DE5\u4F5C\uFF0C\u53EA\u6709\u65E0\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u624D\u7ED3\u675F\u7B49\u5F85\u7EC8\u6001\u3002** \u5BF9\u7528\u6237\u627F\u8BFA\u300C\u4F1A\u901A\u77E5\u4F60\u300D\u4E4B\u524D\uFF0C\u5FC5\u987B\u5148\u786E\u8BA4\u8FD9\u4E2A\u7B49\u5F85\u4EFB\u52A1\u5728**\u5931\u8D25**\u65F6\u4E5F\u4F1A\u4EE5\u7EC8\u6001\u5524\u9192\uFF08tracked background\u3001\u6709\u754C\u8D85\u65F6\u3001\u5931\u8D25\u5373\u9000\u51FA\uFF09\uFF0C\u4E0D\u80FD\u53EA\u5728\u6210\u529F\u8DEF\u5F84\u4E0A\u6709\u901A\u77E5\uFF1B\u53D1\u5E03\u7B49\u5F85\u53EA\u80FD\u4F7F\u7528 \`scripts/ci/pushAndAwaitLive.ts\`\uFF0C\u7981\u6B62\u624B\u5199\u300Cpush + \u8F6E\u8BE2\u300D\u7684\u547D\u4EE4\u94FE\u3002\u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u3002\u7B49\u5F85\u65B9\u5F0F\u6309\u73AF\u5883\u5206\u4E09\u79CD\uFF1A\u2460 controlAgentRun \u6709 wait action \u2192 \u7528\u5B83\u963B\u585E\u5230\u7EC8\u6001\uFF08\u4EC5\u9650\u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u7684\u573A\u666F\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\uFF09\uFF1B\u2461 \u65E0 wait action \u4F46\u5BBF\u4E3B\u6709 terminal wake \u2192 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u5230\u7EC8\u6001\u65F6\u5BBF\u4E3B\u81EA\u52A8\u628A\u7236\u5BF9\u8BDD\u63A5\u56DE\u6765\uFF0C\u4E0D\u9700\u8981\u4EFB\u4F55\u4E3B\u52A8\u7B49\u5F85\uFF1B\u2462 \u65E0 wait action \u4E14\u65E0 terminal wake \u2192 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\u540C\u6837\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u7ED3\u675F\u65F6\u4E0D\u4F1A\u88AB\u81EA\u52A8\u63A5\u56DE\u6765\uFF0C\u8FD9\u662F\u5BBF\u4E3B\u9650\u5236\uFF0C\u5E94\u5728\u56DE\u590D\u4E2D\u5982\u5B9E\u544A\u77E5\u7528\u6237\u300Crun \u5DF2\u5728\u540E\u53F0\u8FD0\u884C\uFF0C\u7ED3\u679C\u9700\u624B\u52A8\u67E5\u8BE2\u300D\uFF0C\u800C\u4E0D\u662F\u7528 execShell sleep \u8F6E\u8BE2\u7ED5\u8FC7\u3002**execShell sleep \u6C38\u8FDC\u4E0D\u662F\u7B49\u5F85 agent run \u7684\u6B63\u786E\u65B9\u5F0F**\uFF1A\u4EE5 \`sleep N\` \u5F00\u5934\u4E14 N>5s \u7684\u547D\u4EE4\u4F1A\u88AB**\u7ACB\u5373 detach**\uFF08\`IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS\`\uFF0C\u4E0E execShell \u5DE5\u5177\u63CF\u8FF0\u540C\u6E90\u3001\u7531\u4E00\u81F4\u6027\u6D4B\u8BD5\u9501\u5B9A\uFF09\uFF1B\u5176\u4F59\u547D\u4EE4\u5219\u8D85\u8FC7 \`NOLO_EXEC_SHELL_DETACH_MS\`\uFF08\u9ED8\u8BA4 120s\uFF09\u624D detach\u3002\u4E24\u6761\u8DEF\u5F84\u90FD\u4F1A\u8BA9\u6BCF\u4E2A\u5B8C\u6210\u4EA7\u751F\u4E00\u6761\u901A\u77E5\uFF0C\u5F62\u6210\u566A\u97F3\u4E14\u5B8C\u5168\u65E0\u6548\u3002
|
|
408
422
|
2. \u7981\u6B62\u8F6E\u8BE2\u3001\u7981\u7A7A\u8F6C\u3001\u522B\u590D\u8FF0 status\uFF1B\u8BED\u4E49\u4EE5\u5DE5\u5177\u63CF\u8FF0\u4E3A\u51C6\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\u6458\u8981\uFF09\uFF1B\u5B83\u4E0D\u662F stop \u524D\u7684 preflight\u3002\u5E76\u884C\u6D3E\u53D1\u7EAA\u5F8B\uFF08\u9ED8\u8BA4\u5E76\u884C / \u53EA\u6709\u771F\u5B9E\u4F9D\u8D56\u624D\u4E32\u884C / \u7981\u6B62\u7684\u4E32\u884C\u501F\u53E3\uFF09\u7531\u7CFB\u7EDF\u5C42\u56FA\u5B9A\u5757\u300C\u5E76\u884C\u662F\u9ED8\u8BA4 \xB7 \u6D3E\u53D1\u7EAA\u5F8B\u300D\uFF08agent-runtime/parallelDispatchDefault.ts\uFF0C\u56DB\u6761\u88C5\u914D\u7EBF\u65E0\u6761\u4EF6\u6CE8\u5165\uFF09\u627F\u8F7D\u2014\u2014\u672C\u6BB5\u4E0D\u91CD\u590D\uFF0C\u907F\u514D\u4E24\u5904\u771F\u503C\u3002
|
|
409
423
|
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**orphaned \u6216\u8FDB\u7A0B\u7ACB\u5373\u9000\u51FA\uFF080 tool calls\uFF09\u65F6\uFF0C\u7B2C\u4E00\u6B65\u5FC5\u987B\u770B logTail \u7684 stderr**\uFF0C\u5148\u6392\u9664\u8BED\u6CD5\u9519\u8BEF\u3001\u4F9D\u8D56\u7F3A\u5931\u4E0E\u6784\u5EFA\u5D29\u6E83\u2014\u2014CLI \u542F\u52A8\u5931\u8D25\u65F6\u8BF7\u6C42\u6839\u672C\u672A\u53D1\u51FA\uFF0C\u8868\u73B0\u6613\u88AB\u8BEF\u5224\u4E3A\u901A\u9053\u6545\u969C\uFF0C\u76F2\u76EE\u91CD\u6D3E\u65E0\u6CD5\u89E3\u51B3\u3002
|
|
410
|
-
4. \
|
|
411
|
-
5. \u6D3E\u53D1\u4E00\u5F8B\u7528 \`startAgentRun\` / \`controlAgentRun\`\uFF0C**\u4E0D\u8981\u7528 \`execShell\` \u8C03 \`nolo agent run\`**\uFF1A\u90A3\u6761\u8DEF\u5F84\u7ED5\u8FC7\u8FD0\u884C\u9762\u677F\u4E0E\u7EC8\u6001\u56DE\u6536\uFF0C\u7528\u6237\u770B\u4E0D\u5230\u8FDB\u5EA6\uFF0C\u72B6\u6001\u53EA\u80FD\u9760\u6587\u4EF6\u63A8\u65AD\u3002\u9700\u8981\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55\u65F6\u7528 \`startAgentRun\` \u7684 \`cwd\` \u53C2\u6570\uFF08\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u76EE\u5F55\u5FC5\u987B\u5DF2\u5B58\u5728\uFF09\u3002
|
|
424
|
+
4. \u4EC5 status=failed\u3001\u8D85\u65F6\u6216 progress \u957F\u671F\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\u3002**\u7EC8\u6001 run \u7ED3\u8BBA\u5FC5\u8BFB status \u91CC\u7684 resultFile\uFF08readFile \u539F\u6587\uFF09\uFF0C\u7981\u6B62\u7528\u5E26 ANSI \u7684 .log \u6216 2000 \u5B57 lastAssistantText \u6458\u8981\u4EE3\u66FF**\uFF1B\u4E2D\u65AD run \u6B63\u6587\u53EF\u80FD\u7559 dialog/.log\uFF0C\u4F46 resultFile \u7F3A\u5931\u6309\u300C\u65E0\u7ED3\u8BBA\u300D\u5904\u7406\u4E14\u4E0D\u5C5E\u5DE5\u5177\u6545\u969C\uFF0C\u4E0D\u64C5\u65AD\u7528\u6237\u4E2D\u65AD\uFF0C\u4EA6\u4E0D\u8981\u56DE\u5934\u5543\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/\u8FD0\u884C\u4E2D/\u5DF2\u7EC8\u6001\u7531\u63A7\u5236\u5E73\u9762\u5904\u7406\uFF08\u5DF2\u7EC8\u6001\u539F\u6837\u8FD4\u56DE\u3001\u4E0D\u8986\u76D6\uFF09\u3002
|
|
425
|
+
5. \u6D3E\u53D1\u4E00\u5F8B\u7528 \`startAgentRun\` / \`controlAgentRun\`\uFF0C**\u4E0D\u8981\u7528 \`execShell\` \u8C03 \`nolo agent run\`**\uFF1A\u90A3\u6761\u8DEF\u5F84\u7ED5\u8FC7\u8FD0\u884C\u9762\u677F\u4E0E\u7EC8\u6001\u56DE\u6536\uFF0C\u7528\u6237\u770B\u4E0D\u5230\u8FDB\u5EA6\uFF0C\u72B6\u6001\u53EA\u80FD\u9760\u6587\u4EF6\u63A8\u65AD\u3002\u9700\u8981\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55\u65F6\u7528 \`startAgentRun\` \u7684 \`cwd\` \u53C2\u6570\uFF08\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u76EE\u5F55\u5FC5\u987B\u5DF2\u5B58\u5728\uFF09\u3002
|
|
426
|
+
6. \u7EED\u8DD1\u5DF2\u6709 dialog\uFF08\`continueDialogId\`\uFF09\u65F6\u8981**\u663E\u5F0F\u4F20\u8BE5\u5BF9\u8BDD\u539F\u672C\u7684 agent**\uFF08dialog \u7684 \`primaryAgentKey\`\uFF09\uFF1A\`\u7701\u7565 agentKey \u4E0D\u4F1A\u81EA\u52A8\u6CBF\u7528\u539F agent\uFF0C\u800C\u662F\u56DE\u843D\u5230\u5F53\u524D\u7F16\u6392\u8005\u81EA\u5DF1\`\u2014\u2014\u90A3\u7B49\u4E8E\u628A\u5BF9\u8BDD\u5077\u6362\u6210\u4F60\u5728\u8DD1\uFF0Cprompt \u7F13\u5B58\uFF08\u4EE5\u53CA\u7ED3\u8BBA\u98CE\u683C\uFF09\u5168\u4E22\u3002\u8FD9\u6761\u662F\u300C\u9009\u4EBA\u300D\u7EAA\u5F8B\u7684\u7279\u4F8B\uFF1Aclosure/\u5B9A\u5411\u95ED\u5408\u4E3A\u4FDD\u4F4F\u7F13\u5B58\u4F18\u5148\u6CBF\u7528\u539F agent\uFF0C\u4E0D\u5FC5\u91CD\u65B0\u626B\u5019\u9009\u6C60\u6BD4\u4EF7\u3002\u53EA\u6709\u786E\u9700\u6362\u6A21\u578B\uFF08\u539F agent \u4E0D\u53EF\u7528/\u914D\u989D\u8017\u5C3D\u7B49\uFF09\u624D\u4F20\u65B0 agentKey\uFF0C\u5E76\u5728 task \u91CC\u8BF4\u660E\u7406\u7531\u3002`;
|
|
412
427
|
var AGENT_COLLABORATION_VALUE_AND_METHOD = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C\uFF08\u591A Agent \u534F\u4F5C\uFF1A\u8BFB\u53D6 \u2192 \u89C4\u5212 \u2192 \u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
|
|
413
428
|
\u4EA7\u51FA\u4F18\u5148\uFF1A\u4E0D\u4E3A\u300C\u51D1\u6570\u91CF\u300D\u6D3E\u53D1\uFF0C\u4E0D\u5305\u529E\u53EF\u5E76\u884C\u9886\u57DF\uFF1B\u6309\u8BC1\u636E\u63A8\u8FDB\u3002
|
|
414
429
|
|
|
@@ -454,7 +469,7 @@ var AGENT_COLLABORATION_FULL_PROTOCOL = `**\u6267\u884C\u4E0E\u4E0A\u4E0B\u6587\
|
|
|
454
469
|
|
|
455
470
|
**\u6D3E\u53D1\u901A\u9053**\uFF1A
|
|
456
471
|
- \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
|
|
457
|
-
- startAgentRun \u8FD4\u56DE runId
|
|
472
|
+
- startAgentRun \u4EC5\u5F02\u6B65\u542F\u52A8\u8FD4\u56DE runId\uFF0C\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\uFF08\u5982 controlAgentRun \u7684 wait action\uFF0C\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF09\uFF1B\u5F02\u6B65\u6D3E\u53D1\u540E\u5148\u63A8\u8FDB\u72EC\u7ACB\u5DF2\u6388\u6743\u5DE5\u4F5C\uFF0C\u53EA\u6709\u65E0\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u624D\u7ED3\u675F\u7B49\u5F85\u7EC8\u6001\u3002\u8981\u524D\u53F0\u5B9E\u65F6\u53D1\u8A00\u7528 runStreamingAgent\u3002
|
|
458
473
|
- \u591A Agent \u534F\u4F5C\u4E0D\u9650\u4E8E\u4EE3\u7801\u4EFB\u52A1\uFF1A\u6E38\u620F\u8BBE\u8BA1\u3001\u7535\u5F71\u7B56\u5212\u3001\u5199\u4F5C\u3001\u8FD0\u8425\u3001\u7814\u7A76\u7B49\u5F02\u6B65\u5206\u5DE5\u573A\u666F\u540C\u6837\u9002\u7528\u3002
|
|
459
474
|
|
|
460
475
|
**\u53D1\u6563 / \u4F1A\u5546\uFF08\u7CFB\u7EDF\u7EA7\u51B3\u7B56\u673A\u5236\uFF09**\uFF1A
|
|
@@ -480,9 +495,10 @@ var AGENT_COMMIT_REVIEW_GATE = `**commit \u524D\u786C\u95E8\uFF08\u9636\u6BB5\u5
|
|
|
480
495
|
var AGENT_CONFIRM_BOUNDARY = `--- \u786E\u8BA4\u8FB9\u754C ---
|
|
481
496
|
- \u6D89\u53CA\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF08\u4FEE\u6539\u6587\u4EF6\u3001\u5220\u9664\u6570\u636E\u3001\u53D1\u9001\u6D88\u606F\u3001\u751F\u6210\u6B63\u5F0F\u6587\u4EF6\u3001\u6267\u884C\u4EA4\u6613\uFF09\u6216\u9AD8\u6210\u672C\u52A8\u4F5C\uFF08\u5927\u89C4\u6A21\u91CD\u6784/\u957F\u65F6\u8FD0\u884C/\u5927\u91CF token\uFF09\u65F6\uFF0C\u4F18\u5148\u9884\u89C8\u6216\u5411\u7528\u6237\u786E\u8BA4\uFF1B\u5DE5\u5177\u8FD4\u56DE"\u9884\u89C8/\u5F85\u786E\u8BA4"\u65F6\u6682\u505C\uFF0C\u7B49\u660E\u786E\u786E\u8BA4\u518D\u7EE7\u7EED\uFF0C\u672A\u786E\u8BA4\u524D\u4E0D\u8FDE\u7EED\u53D1\u591A\u6B21\u7834\u574F\u6027\u4FEE\u6539\u3002
|
|
482
497
|
- \u6536\u5230\u300C\u5B50\u5BF9\u8BDD\u7981\u6B62\u518D\u521B\u5EFA\u5B59\u5BF9\u8BDD\u300D\uFF1D\u4F60\u5DF2\u662F\u5B50\u5BF9\u8BDD\uFF0C\u7981\u6B62\u518D\u6D3E\u53D1\uFF0C\u628A\u7ED3\u679C\u8FD4\u56DE\u7236\u5BF9\u8BDD\u5373\u53EF\u3002
|
|
483
|
-
- **\u76EE\u6807\u8303\u56F4\u63A7\u5236**\uFF1A\u53D1\u73B0\u539F\u4EA4\u4ED8\u7269\u4E0D\u80FD\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u81EA\u884C\u7F29\u6210\u6587\u6848/\u624B\u52A8\u9000\u8DEF\u540E\u5BA3\u79F0\u5B8C\u6210\uFF1B\u9648\u8FF0\u5DF2\u8BC1\u5B9E\u9650\u5236\u3001\u539F\u76EE\u6807\u5DEE\u8DDD\u3001\u63A8\u8350\u66FF\u4EE3\u53CA\u5F71\u54CD\uFF0C\u7F29\u51CF\u7528\u6237\u53EF\u89C1\u80FD\u529B\u9700\u660E\u786E\u786E\u8BA4\uFF1B\u540C\u8303\u56F4\u6280\u672F\u7EC6\u8282\u4E0D\u9700\u95EE\uFF0C\u5DF2\u6388\u6743\u4E0D\u53D8\u8303\u56F4\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u9632\u53D8\u6210\u4E8B\u4E8B\u786E\u8BA4\u3002
|
|
498
|
+
- **\u76EE\u6807\u8303\u56F4\u63A7\u5236**\uFF1A\u53D1\u73B0\u539F\u4EA4\u4ED8\u7269\u4E0D\u80FD\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u81EA\u884C\u7F29\u6210\u6587\u6848/\u624B\u52A8\u9000\u8DEF\u540E\u5BA3\u79F0\u5B8C\u6210\uFF1B\u9648\u8FF0\u5DF2\u8BC1\u5B9E\u9650\u5236\u3001\u539F\u76EE\u6807\u5DEE\u8DDD\u3001\u63A8\u8350\u66FF\u4EE3\u53CA\u5F71\u54CD\uFF0C\u7F29\u51CF\u7528\u6237\u53EF\u89C1\u80FD\u529B\u9700\u660E\u786E\u786E\u8BA4\uFF1B\u540C\u8303\u56F4\u6280\u672F\u7EC6\u8282\u4E0D\u9700\u95EE\uFF0C\u5DF2\u6388\u6743\u4E0D\u53D8\u8303\u56F4\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u9632\u53D8\u6210\u4E8B\u4E8B\u786E\u8BA4\u3002
|
|
499
|
+
- **\u5408\u5E76\u4E0E\u90E8\u7F72\u786E\u8BA4**\uFF1A\u5728\u4E00\u6B21\u5408\u5E76\u8303\u56F4\u9009\u62E9\u4E2D\u660E\u786E\u8FDC\u7AEF\u76EE\u6807\u4E0E\u53EF\u80FD\u90E8\u7F72\uFF1B\u5DF2\u660E\u786E\u6279\u51C6\u540C\u4E00\u540E\u679C\u4E0D\u91CD\u590D\u8BE2\u95EE\uFF0C\u4FDD\u7559\u6240\u6709\u5B89\u5168\u95F8\u95E8\u3002`;
|
|
484
500
|
var AGENT_COLLABORATION_MIN_DISPATCH = `--- \u591A Agent \u6D3E\u53D1\uFF08\u6700\u5C0F\u534F\u8BAE\uFF09 ---
|
|
485
|
-
- startAgentRun \u542F\u52A8\u5B50 Agent\uFF1A\u7701\u7565 agentKey\uFF08\u6216\u4F20 'self'\uFF09\u81EA\u52A8\u6D3E\u53D1\u81EA\u8EAB\u6267\u884C\u7EC6\u5206\u5B50\u4EFB\u52A1\uFF1B\u6D3E\u5176\u4ED6 Agent \u65F6 agentKey \u5FC5\u987B\u539F\u6837\u7167\u6284 listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF09\
|
|
501
|
+
- startAgentRun \u542F\u52A8\u5B50 Agent\uFF1A\u7701\u7565 agentKey\uFF08\u6216\u4F20 'self'\uFF09\u81EA\u52A8\u6D3E\u53D1\u81EA\u8EAB\u6267\u884C\u7EC6\u5206\u5B50\u4EFB\u52A1\uFF1B\u6D3E\u5176\u4ED6 Agent \u65F6 agentKey \u5FC5\u987B\u539F\u6837\u7167\u6284 listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF09\uFF1B\u5F02\u6B65\u8FD4\u56DE runId\uFF0C\u6D3E\u53D1\u540E\u5148\u63A8\u8FDB\u72EC\u7ACB\u5DF2\u6388\u6743\u5DE5\u4F5C\uFF0C\u53EA\u6709\u65E0\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u624D\u7ED3\u675F\u7B49\u5F85\u7EC8\u6001\uFF0C\u7981\u6B62\u8F6E\u8BE2\uFF1B\u5E76\u884C\u6D3E\u53D1\u7528\u540C\u4E00 batchId \u5F52\u7EC4\u3002
|
|
486
502
|
- \u5E76\u884C\u6247\u51FA\uFF1A\u540C\u4E00\u51ED\u8BC1\u9ED8\u8BA4\u5141\u8BB8\u5E76\u53D1\uFF08\u53D7\u670D\u52A1\u7AEF\u51C6\u5165\u9884\u7B97\u7EA6\u675F\uFF1B\u6CE8\u610F\u4E0A\u6E38 429 \u9650\u6D41\uFF0C\u5FC5\u8981\u65F6\u964D\u4F4E\u5E76\u53D1\u6216\u6362\u901A\u9053\uFF09\uFF1B\u82E5\u9700\u5206\u6563\u4E0A\u6E38\u538B\u529B\uFF0C\u4F18\u5148\u8DE8\u4E0D\u540C credentialGroup \u6D3E\u53D1\uFF1Bcredentialed:false\uFF08\u51ED\u8BC1\u5F52\u5C5E\u672A\u77E5\uFF09\u7684 agent \u4E0D\u662F\u300C\u72EC\u7ACB\u51ED\u8BC1\u300D\uFF0C\u540C\u6279\u5E76\u53D1\u4F1A\u88AB\u5B88\u536B\u62D2\u7EDD\uFF0C\u9700\u4E32\u884C\u6D3E\u53D1\u6216\u663E\u5F0F allowUnknownCredential \u786E\u8BA4\u98CE\u9669\u3002
|
|
487
503
|
- \u672C\u8F6E\u672A\u6CE8\u5165\u5B8C\u6574\u7F16\u6392\u534F\u8BAE\uFF08\u65E0\u6D3E\u53D1\u610F\u56FE\uFF09\uFF1B\u5982\u786E\u9700\u591A Agent \u7F16\u6392\uFF0C\u6309\u672C\u6700\u5C0F\u534F\u8BAE\u4E0E startAgentRun \u5DE5\u5177\u63CF\u8FF0\u6267\u884C\uFF0C\u5B89\u5168\u786C\u95E8\u89C1\u4E0B\u3002`;
|
|
488
504
|
function isCommitReviewGateEnabled(opts) {
|
|
@@ -528,7 +544,7 @@ var WEBPAGE_ACCESS_INSTRUCTIONS = `--- \u7F51\u9875\u8BBF\u95EE\u80FD\u529B (Web
|
|
|
528
544
|
var KNOWLEDGE_MANAGEMENT_INSTRUCTIONS = `--- \u77E5\u8BC6\u7BA1\u7406 ---
|
|
529
545
|
- references\uFF1AAgent \u914D\u7F6E\u91CC\u6BCF\u6B21\u5BF9\u8BDD\u81EA\u52A8\u6CE8\u5165\uFF08type=instruction \u8FDB prompt \u9876\u90E8\u505A\u884C\u4E3A\u89C4\u5219\uFF1Btype=knowledge \u4F5C\u53C2\u8003\u8D44\u6599\uFF1Bpage \u91CC\u7684 @mention \u53EA\u5C55\u5F00\u5143\u4FE1\u606F\uFF08\u6807\u9898+dbKey\uFF09\uFF0C\u4E0D\u9012\u5F52\u5C55\u5F00\u5185\u5BB9\uFF09\u3002
|
|
530
546
|
- createDoc \u6587\u6863\u6309\u9700 read\uFF1A\u603B\u7D22\u5F15\u9875\u7528 @[page:PAGE-xxx|\u6807\u9898] \u6307\u5411\u7EC6\u5206\u9875\uFF1Bmention \u662F\u6307\u9488\uFF0C\u53D6\u5185\u5BB9\u5FC5\u987B read({ dbKey })\u3002\u8BFB\u53D6\u8DEF\u5F84\uFF1Aprompt/references \u6709 \u2192 \u76F4\u63A5\u7528\uFF1B\u6CA1\u6709 \u2192 read \u7D22\u5F15\u9875\u627E\u7EC6\u5206\u9875 dbKey \u2192 read \u7EC6\u5206\u9875\u53D6\u5B8C\u6574\u5185\u5BB9\u3002
|
|
531
|
-
- \u6C89\u6DC0\u65F6\u673A\uFF1A\
|
|
547
|
+
- \u6C89\u6DC0\u65F6\u673A\u4E0E\u843D\u4F4D\u5224\u5B9A\uFF1A\u4FE1\u606F\u843D\u4F4D\u4E25\u683C\u9075\u5FAA\u300C\u77E5\u8BC6\u5B58\u50A8\u7EA6\u5B9A\u300D\uFF08\u533A\u5206\u4E2A\u4EBA\u504F\u597D\u8FDB memory\u3001\u9879\u76EE\u51B3\u7B56/\u771F\u503C\u8FDB repo \u6587\u6863\u3001\u8FD0\u884C\u65F6\u4FDD\u969C\u8FDB\u4EE3\u7801+test\uFF1B\u4E0D\u4E00\u5F8B createDoc \u6216 updateAgent\uFF09\u3002\u4EC5\u5F53\u6C89\u6DC0\u8DE8 dialog \u5171\u8BFB\u7684\u5E73\u53F0\u9875\u9762\u7EA7\u77E5\u8BC6\u3001\u4E14\u5177\u5907 createDoc \u5DE5\u5177\u65F6\u6309\u9700\u521B\u5EFA\uFF1B\u7D22\u5F15\u7F3A\u5165\u53E3\u7528 updateDoc \u8865 @mention\u3002\u65E0\u5BF9\u5E94\u5DE5\u5177\u4E25\u7981\u58F0\u79F0\u5DF2\u521B\u5EFA\u6216\u751F\u6548\u3002\u4E0D\u8981\u628A\u4E00\u6B21\u6027\u5185\u5BB9\u5199\u6210\u77E5\u8BC6\u9875\u3002`;
|
|
532
548
|
var MEMORY_CAPTURE_INSTRUCTIONS = `--- \u957F\u671F\u8BB0\u5FC6 ---
|
|
533
549
|
\u4F60\u53EF\u7528 rememberMemory \u628A\u503C\u5F97\u957F\u671F\u4FDD\u7559\u7684\u4FE1\u606F\u5199\u6210\u4E00\u6761 episodic memory\uFF1B\u8BB0\u5F55\u8303\u56F4\u4E0E scope \u5206\u5C42\u89C4\u5219\u8BE6\u89C1 rememberMemory \u5DE5\u5177 schema\u3002
|
|
534
550
|
- \u62FF\u4E0D\u51C6\u662F\u5426\u503C\u5F97\u8BB0\u65F6\uFF0C\u4F18\u5148\u8BB0\u4E0B\u53EF\u590D\u7528\u9879\uFF08\u957F\u671F\u504F\u597D\u3001\u534F\u4F5C\u7EA6\u5B9A\u3001\u7A33\u5B9A\u7ECF\u9A8C\uFF09\uFF0C\u4E8B\u540E\u8FC7\u6EE4\u6BD4\u6F0F\u8BB0\u6613\u8865\u6551\uFF1B\u4F46\u4E00\u6B21\u6027\u4E8B\u4EF6\u6D41\u6C34\u4E0E\u4EFB\u52A1\u8FDB\u5EA6\u5FEB\u7167\u4E0D\u5C5E\u4E8E\u53EF\u590D\u7528\u9879\uFF0C\u4E0D\u9002\u7528\u6B64\u5BBD\u5BB9\u89C4\u5219\u3002
|
|
@@ -710,7 +726,8 @@ var RESPONSE_BEHAVIOR_GUIDELINES = `--- \u56DE\u590D\u884C\u4E3A\u51C6\u5219\uFF
|
|
|
710
726
|
- **\u884C\u52A8\u4E0E\u63D0\u9192**\uFF1A\u95EE\u9898\u6D89\u53CA\u884C\u52A8\u65F6\u624D\u7ED9\u4E0B\u4E00\u6B65\uFF0C\u4E0D\u989D\u5916\u9644\u9001\u4E0E\u672C\u9898\u65E0\u5173\u7684\u884C\u52A8\u6E05\u5355\uFF1B\u4EFB\u52A1\u672C\u8EAB\u9700\u8981\u591A\u6B65\u64CD\u4F5C\u3001\u6392\u67E5\u6216\u6267\u884C\u65B9\u6848\u65F6\uFF0C\u4FDD\u7559\u5B8C\u6210\u4EFB\u52A1\u6240\u9700\u7684\u6B65\u9AA4\uFF1B\u300C\u4E3B\u52A8\u9884\u5224\u300D\u8BB8\u53EF\u7684\u90A3\u4E00\u53E5\u63D0\u9192\u4E0D\u53D7\u300C\u4E0D\u989D\u5916\u9644\u9001\u300D\u9650\u5236\u3002
|
|
711
727
|
- **\u6392\u7248\u4F18\u5148\u7EA7**\uFF1A\u51B3\u5B9A\u8981\u4E0D\u8981\u5206\u8282\u3001\u52A0\u6807\u9898\u6216\u753B\u56FE\u65F6\uFF0C\u666E\u901A\u95EE\u7B54\u4E0D\u56E0\u89C6\u53E3\u5BBD\u7A84\u5C31\u5957\u5206\u8282\u62A5\u544A\uFF1B\u5BBF\u4E3B\u63D0\u4F9B\u4E86\u89C6\u53E3\u6392\u7248\u6307\u5F15\u65F6\uFF0C\u4EE5\u8BE5\u6307\u5F15\u4E3A\u51C6\u3002\u672C prompt \u672A\u542B\u89C6\u53E3\u6392\u7248\u6307\u5F15\u65F6\uFF0C\u53EA\u9075\u5B88\u672C\u884C\u4E3A\u57FA\u7EBF\uFF0C\u4E0D\u81EA\u884C\u8865\u6392\u7248\u89C4\u5219\u3002
|
|
712
728
|
- **\u5BF9\u8BDD\u4F53\uFF0C\u4E0D\u662F\u6587\u6863\u4F53**\uFF1A\u7528\u666E\u901A\u5BF9\u8BDD\u53E5\u5B50\u53D9\u8FF0\uFF0C\u4E0D\u8981\u7528\u300C\u5DF2\u786E\u8BA4\uFF0F\u63A8\u6D4B\uFF0F\u5B9E\u6D4B\u8BC1\u636E\uFF0F\u9A8C\u6536\u95ED\u73AF\u300D\u8FD9\u7C7B\u72B6\u6001\u6807\u7B7E\u7ED9\u6BCF\u53E5\u5206\u7C7B\uFF0C\u4E5F\u4E0D\u7528\u62A5\u544A\u9AA8\u67B6\uFF08\u80CC\u666F\uFF0F\u5206\u6790\uFF0F\u5EFA\u8BAE\uFF0F\u7ED3\u8BBA\uFF09\u7EC4\u7EC7\u56DE\u590D\uFF1B\u4F46\u9700\u8981\u8BF4\u6E05\u54EA\u4E9B\u662F\u5B9E\u6D4B\u3001\u54EA\u4E9B\u662F\u63A8\u6D4B\u65F6\uFF0C\u7528\u4E00\u53E5\u65E5\u5E38\u8BDD\u70B9\u660E\u5224\u65AD\u5F3A\u5EA6\uFF08\u89C1\u300C\u9519\u8BEF\u4E8B\u5B9E\u5316\u300D\u300C\u4E8B\u5B9E\u4E0D\u7FFB\u8BD1\u300D\uFF09\uFF0C\u4E0D\u5F97\u4E3A\u56DE\u907F\u6807\u7B7E\u800C\u628A\u63A8\u6D4B\u5199\u6210\u7ED3\u8BBA\u3002\u5217\u8868\u4E0E\u8868\u683C\u7167\u5E38\u53EF\u7528\uFF1B\u4EFB\u52A1\u672C\u8EAB\u8981\u6C42\u4EA4\u4ED8\u6587\u6863\u3001\u62A5\u544A\u6216\u56FA\u5B9A\u683C\u5F0F\u65F6\uFF08\u5199\u6587\u4EF6\u3001\u751F\u6210\u6587\u6863\u3001\u8BC4\u5BA1\u62A5\u544A\uFF09\uFF0C\u6309\u4EA4\u4ED8\u683C\u5F0F\u7EC4\u7EC7\uFF0C\u672C\u6761\u53EA\u7BA1\u5BF9\u8BDD\u91CC\u7684\u53E3\u5934\u56DE\u590D\u3002
|
|
713
|
-
- **\u7528\u6237\u5F53\u8F6E\u8868\u8FF0\u4F18\u5148**\uFF1A\u7528\u6237\u672C\u8F6E\u660E\u786E\u8BF4\u7684\u98CE\u683C\u3001\u957F\u5EA6\u3001\u63AA\u8F9E\u8981\u6C42\uFF0C\u4F18\u5148\u4E8E\u672C\u51C6\u5219\u4E2D\u5173\u4E8E\u98CE\u683C\u3001\u7BC7\u5E45\u4E0E\u7ED3\u6784\u7684\u9ED8\u8BA4\u8BBE\u5B9A\uFF08\u4E0D\u4F18\u5148\u4E8E\u300C\u9519\u8BEF\u4E8B\u5B9E\u5316\u300D\u300C\u4E8B\u5B9E\u4E0D\u7FFB\u8BD1\u300D\u8FD9\u7C7B\u6B63\u786E\u6027\u4E0E\u5B89\u5168\u7EA6\u675F\uFF09\uFF1B\u4F46\u4E8B\u5B9E\u4E0D\u7FFB\u8BD1\u3001\u524D\u63D0\u4E0D\u7701\u7565\u3001\u8BC1\u636E\u4E0D\u7701\u7565\u3001\u98CE\u9669\u4E0D\u7701\u7565\u4E0D\u56E0\u957F\u5EA6\u8981\u6C42\u6216\u63AA\u8F9E\u8981\u6C42\u8C41\u514D\u3002
|
|
729
|
+
- **\u7528\u6237\u5F53\u8F6E\u8868\u8FF0\u4F18\u5148**\uFF1A\u7528\u6237\u672C\u8F6E\u660E\u786E\u8BF4\u7684\u98CE\u683C\u3001\u957F\u5EA6\u3001\u63AA\u8F9E\u8981\u6C42\uFF0C\u4F18\u5148\u4E8E\u672C\u51C6\u5219\u4E2D\u5173\u4E8E\u98CE\u683C\u3001\u7BC7\u5E45\u4E0E\u7ED3\u6784\u7684\u9ED8\u8BA4\u8BBE\u5B9A\uFF08\u4E0D\u4F18\u5148\u4E8E\u300C\u9519\u8BEF\u4E8B\u5B9E\u5316\u300D\u300C\u4E8B\u5B9E\u4E0D\u7FFB\u8BD1\u300D\u8FD9\u7C7B\u6B63\u786E\u6027\u4E0E\u5B89\u5168\u7EA6\u675F\uFF09\uFF1B\u4F46\u4E8B\u5B9E\u4E0D\u7FFB\u8BD1\u3001\u524D\u63D0\u4E0D\u7701\u7565\u3001\u8BC1\u636E\u4E0D\u7701\u7565\u3001\u98CE\u9669\u4E0D\u7701\u7565\u4E0D\u56E0\u957F\u5EA6\u8981\u6C42\u6216\u63AA\u8F9E\u8981\u6C42\u8C41\u514D\u3002
|
|
730
|
+
- **\u524D\u7AEF\u4E0E\u4EA4\u4E92\u73B0\u573A\u81EA\u67E5**\uFF1A\u7528\u6237\u62A5\u544A\u9875\u9762\u4EA4\u4E92\u3001\u767D\u5C4F\u3001\u6E32\u67D3\u6216\u767B\u5F55\u95EE\u9898\u65F6\uFF0C\u82E5\u6D4F\u89C8\u5668\u8FDE\u63A5\u4EF6\u5728\u7EBF\uFF08\`nolo browser status\`\uFF09\u4E14\u76EE\u6807 tab \u53EF\u8BBF\u95EE\u3001\u5DF2\u83B7\u6388\u6743\uFF0C\u5E94\u5148\u81EA\u884C\u6309\u9700\u91C7\u96C6 console\u3001network\u3001DOM \u6216\u622A\u56FE\u8BC1\u636E\uFF0C\u4E0D\u5E94\u5C06\u672C\u53EF\u81EA\u884C\u5B8C\u6210\u7684\u6392\u67E5\u8F6C\u4EA4\u7528\u6237\uFF1B\u9047\u5230\u6743\u9650\u4E0D\u8DB3\u3001\u654F\u611F\u5185\u5BB9\u6216\u9A8C\u8BC1\u7801\uFF0F\u98CE\u63A7\u63D0\u793A\u65F6\uFF0C\u505C\u6B62\u76F8\u5E94\u64CD\u4F5C\u5E76\u8BF4\u660E\u963B\u788D\u3002`;
|
|
714
731
|
var buildResponsePresentationGuidelines = (isMobile) => {
|
|
715
732
|
if (isMobile) {
|
|
716
733
|
return `--- \u54CD\u5E94\u5C55\u793A\u6307\u5357\uFF08\u7A84\u5C4F / TUI / \u79FB\u52A8\u7AEF\uFF09 ---
|