nolo-cli 0.82.0-alpha.6 → 0.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-225YRU52.js → _executeModel-FHVQOYWX.js} +48 -48
  3. package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
  6. package/{agentDeleteCommand-ZJNQGVR2.js → agentDeleteCommand-4427YKQF.js} +31 -29
  7. package/{agentEmailCommands-VLVWFWX2.js → agentEmailCommands-LYDIAUOP.js} +67 -63
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-GHQGLAUU.js → agentListCommands-O4AEMQVV.js} +40 -32
  10. package/{agentMachineCommands-QDXYENZJ.js → agentMachineCommands-F6IHXMPD.js} +31 -29
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
  13. package/agentRecordCommands-BDLFOU7E.js +128 -0
  14. package/{agentRunCommand-YSCD65HH.js → agentRunCommand-HSSYFGMC.js} +65 -61
  15. package/{agentRunControl-T44MESII.js → agentRunControl-WCTKX5VL.js} +2 -2
  16. package/{agentRuntimeLocal-ZOHB7OOO.js → agentRuntimeLocal-IW3IM5P6.js} +27 -25
  17. package/{agentSlice-O2SBU5TK.js → agentSlice-G54NT6PX.js} +10 -10
  18. package/{appDeleteCommands-PRT6K5N2.js → appDeleteCommands-ZXLXNRHF.js} +31 -29
  19. package/{appDeployCommands-63ZONFAN.js → appDeployCommands-PWB4YERK.js} +31 -29
  20. package/{appDeployStatusCommands-AFAYCVR3.js → appDeployStatusCommands-2EZKZP7Y.js} +31 -29
  21. package/{appGetCommands-TNZDZE36.js → appGetCommands-JNUKOWHO.js} +31 -29
  22. package/{appListCommands-IA4SPG2X.js → appListCommands-6X3H67SS.js} +31 -29
  23. package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
  26. package/{chatQueueReduxAdapter-4SM3DAWX.js → chatQueueReduxAdapter-VJXYSZ2D.js} +24 -24
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-QC5LGHYP.js → chunk-2YMRWISD.js} +10 -5
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  33. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  34. package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
  35. package/{chunk-KIS76A2P.js → chunk-4EZHSKTB.js} +38 -4
  36. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  37. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  38. package/chunk-5ZUL4CUO.js +10 -0
  39. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  40. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  41. package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
  42. package/{chunk-3W2JJOH3.js → chunk-7REEVK4I.js} +3 -3
  43. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  44. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  45. package/chunk-ACTMNVHM.js +93 -0
  46. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  47. package/{chunk-E36HZARC.js → chunk-ASQYTZTR.js} +46 -9
  48. package/{chunk-73IOJLK2.js → chunk-AVV3M6CX.js} +10 -10
  49. package/{chunk-WL2RKIBF.js → chunk-BLJWCTRL.js} +1 -1
  50. package/chunk-BNGW5ASC.js +344 -0
  51. package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
  52. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  53. package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
  54. package/{chunk-FP27MNSX.js → chunk-DL2LVM5E.js} +3 -3
  55. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  56. package/{chunk-5LSS6MFZ.js → chunk-F5OE5KSJ.js} +13 -15
  57. package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
  58. package/{chunk-NJ6WLAPS.js → chunk-FEEHCOBD.js} +1 -1
  59. package/{chunk-YSKEOTPH.js → chunk-GGMVRZRO.js} +155 -795
  60. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  61. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  62. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  63. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  64. package/{chunk-A3NNC2LA.js → chunk-HOBJGHLD.js} +1235 -59
  65. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  66. package/{chunk-6SD5OPQ4.js → chunk-IIBAPOTQ.js} +11 -173
  67. package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
  68. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  69. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  70. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  71. package/chunk-JRQFUXY7.js +1625 -0
  72. package/chunk-KQ4ONNQD.js +677 -0
  73. package/{chunk-CPSZJBLK.js → chunk-L7I247DF.js} +105 -26
  74. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  75. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  76. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  77. package/{chunk-DSRXPQWA.js → chunk-NEDZDG3M.js} +43 -43
  78. package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
  79. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  80. package/chunk-Q5FJJ6XI.js +103 -0
  81. package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
  82. package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
  83. package/{chunk-D6XYLSOS.js → chunk-QIAVMDHY.js} +1 -1
  84. package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
  85. package/{chunk-YXLXHIT2.js → chunk-RTUYRRBM.js} +6 -6
  86. package/{chunk-HHLTFENG.js → chunk-SDTTBMBU.js} +907 -317
  87. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  88. package/{chunk-LSZXYE64.js → chunk-SL4QHSPQ.js} +756 -80
  89. package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
  90. package/{chunk-EM6MPSEI.js → chunk-SPUTJ4DW.js} +52 -30
  91. package/{chunk-SO7B7NW3.js → chunk-STHU4Y5X.js} +413 -62
  92. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  93. package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
  94. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  95. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  96. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  97. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  98. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  99. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  100. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  101. package/{chunk-4UW2LDVA.js → chunk-VQW3EKYS.js} +15 -15
  102. package/{chunk-HH65VA5U.js → chunk-WGR3J4Q6.js} +101 -4
  103. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  104. package/{chunk-Q46HQOW3.js → chunk-XTAZCQUT.js} +7 -7
  105. package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
  106. package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
  107. package/{contentThunks-ENAVF2YU.js → contentThunks-D6QQKIPF.js} +25 -25
  108. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
  109. package/{createAgentAutomationAction-CH6BYC7K.js → createAgentAutomationAction-UIPWW4DG.js} +25 -25
  110. package/{createDialogAction-23UDOXSO.js → createDialogAction-573VVP3X.js} +28 -28
  111. package/{createPageAction-J6AEMLHK.js → createPageAction-LRFSS6TD.js} +26 -26
  112. package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
  113. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  114. package/{dialogCommands-BJJGCCQR.js → dialogCommands-KFK2FF5B.js} +35 -31
  115. package/{dialogSlice-F7RD6PUY.js → dialogSlice-EXLC5XTD.js} +24 -24
  116. package/{docCreateCommands-53GB2FU3.js → docCreateCommands-V777WOZ7.js} +32 -30
  117. package/{docDeleteCommands-TAW5JEBU.js → docDeleteCommands-5KHT7Z5Q.js} +33 -31
  118. package/{docReadCommands-F5N7N5E3.js → docReadCommands-BLROGWP3.js} +32 -30
  119. package/{docStore-WX4YBGXC.js → docStore-DZNGJXX7.js} +9 -9
  120. package/{docUpdateCommands-YQ7TRT35.js → docUpdateCommands-QXOZHQ5H.js} +32 -30
  121. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  122. package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
  123. package/{handleSendMessageAction-CW4LULIR.js → handleSendMessageAction-OROTZBPO.js} +24 -24
  124. package/index.js +102 -85
  125. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  126. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  127. package/{machineCommands-FIYWY5EU.js → machineCommands-IJWERHRH.js} +64 -60
  128. package/{machineWsRunDispatch-KQ4OFFNR.js → machineWsRunDispatch-XQ36M4L7.js} +62 -58
  129. package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
  130. package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
  131. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  132. package/package.json +1 -1
  133. package/providerPresetApply-FG6NZ57W.js +214 -0
  134. package/providerRegistry-757OWH3O.js +31 -0
  135. package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
  136. package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
  137. package/{readlineWorkspace-QYI6BRNA.js → readlineWorkspace-EB3362L3.js} +144 -108
  138. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  139. package/{runAgentClientLoop-GZ5VUGAW.js → runAgentClientLoop-3MR2NPWR.js} +47 -47
  140. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  141. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
  142. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
  143. package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
  144. package/{spaceCommands-IYMIXCMC.js → spaceCommands-TIDVUPDV.js} +30 -28
  145. package/{streamAgentChatTurn-EAXIUJTK.js → streamAgentChatTurn-CLP2JWCQ.js} +59 -58
  146. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
  147. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  148. package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
  149. package/{tools-QWQOW6J4.js → tools-OXEEBABR.js} +43 -43
  150. package/tuiSummaryLlmCaller-VJY3YD2Q.js +127 -0
  151. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  152. package/{updateDialogTitleAction-2HCE2M7S.js → updateDialogTitleAction-4YWKF2OE.js} +45 -28
  153. package/agentRecordCommands-AQFYM5HS.js +0 -124
  154. package/chunk-3IT2PFHL.js +0 -611
  155. package/chunk-I42VC5KR.js +0 -15
  156. package/chunk-NG4UT4K4.js +0 -79
  157. package/codingSkills-E6KSDNSJ.js +0 -48
  158. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  159. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  160. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  161. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk-DWLEOOGR.js";
7
7
  import {
8
8
  addContentAction
9
- } from "./chunk-ZZCJUXUI.js";
9
+ } from "./chunk-V4MJDUSR.js";
10
10
  import {
11
11
  upload
12
- } from "./chunk-YFADVSZE.js";
12
+ } from "./chunk-H62HCIUP.js";
13
13
  import {
14
14
  getRuntimeServerContext
15
- } from "./chunk-3RAG2NAD.js";
15
+ } from "./chunk-UKWGR5SS.js";
16
16
  import {
17
17
  API_ENDPOINTS
18
18
  } from "./chunk-LCBAMY2M.js";
@@ -409,13 +409,14 @@ var normalizeContextUsageRatio = (value) => {
409
409
  const ratio = value > 1 ? value / 100 : value;
410
410
  return ratio >= 0 && ratio <= 1 ? ratio : void 0;
411
411
  };
412
- var emptyPlan = (startIndex) => ({
412
+ var emptyPlan = (startIndex, diagnostics) => ({
413
413
  shouldCompress: false,
414
414
  compressCount: 0,
415
415
  msgsToCompress: [],
416
416
  msgsToKeep: [],
417
417
  newSummarizedBeforeId: void 0,
418
- startIndex
418
+ startIndex,
419
+ ...diagnostics ? { diagnostics } : {}
419
420
  });
420
421
  function findPendingMessages(allMsgs, summarizedBeforeId) {
421
422
  let startIndex = 0;
@@ -489,7 +490,20 @@ function planCompression(input) {
489
490
  coldResume
490
491
  } = input;
491
492
  const { pendingMsgs, startIndex } = findPendingMessages(allMsgs, summarizedBeforeId);
492
- if (pendingMsgs.length === 0) return emptyPlan(startIndex);
493
+ if (pendingMsgs.length === 0) {
494
+ return emptyPlan(startIndex, {
495
+ pendingMsgCount: 0,
496
+ totalUsed: estimateTokenCount(summary || ""),
497
+ historyBudget: 0,
498
+ triggerRatio: resolveCompressionTriggerRatio(contextWindow),
499
+ realUsageRatio: normalizeContextUsageRatio(realContextUsagePercent),
500
+ triggeredByRealUsage: false,
501
+ triggeredByEstimate: false,
502
+ triggeredByColdResume: false,
503
+ shouldRunActiveSummary: false,
504
+ emptyReason: "no-pending"
505
+ });
506
+ }
493
507
  const summaryTokens = estimateTokenCount(summary || "");
494
508
  const pendingTokens = pendingMsgs.reduce((sum, msg) => sum + getMessageTokenCount(msg), 0);
495
509
  const totalUsed = summaryTokens + pendingTokens;
@@ -517,14 +531,36 @@ function planCompression(input) {
517
531
  coldResume,
518
532
  lastMsg: pendingMsgs[pendingMsgs.length - 1]
519
533
  });
520
- if (!trigger) return emptyPlan(startIndex);
534
+ const diagnostics = {
535
+ pendingMsgCount: pendingMsgs.length,
536
+ totalUsed,
537
+ historyBudget,
538
+ triggerRatio,
539
+ realUsageRatio: normalizeContextUsageRatio(realContextUsagePercent),
540
+ triggeredByRealUsage,
541
+ triggeredByEstimate: normalizeContextUsageRatio(realContextUsagePercent) === void 0 && totalUsed >= historyBudget,
542
+ triggeredByColdResume,
543
+ shouldRunActiveSummary
544
+ };
545
+ if (!trigger) {
546
+ return emptyPlan(startIndex, {
547
+ ...diagnostics,
548
+ emptyReason: "not-triggered"
549
+ });
550
+ }
521
551
  let compressCount = calculateCompressCount(pendingMsgs, rawMessageBudget, {
522
552
  keepTailCount: shouldRunActiveSummary || triggeredByRealUsage || triggeredByColdResume,
523
553
  totalUsed,
524
554
  historyBudget
525
555
  });
526
556
  compressCount = guardToolChainBoundary(pendingMsgs, compressCount);
527
- if (compressCount < MIN_COMPRESS_COUNT) return emptyPlan(startIndex);
557
+ if (compressCount < MIN_COMPRESS_COUNT) {
558
+ return emptyPlan(startIndex, {
559
+ ...diagnostics,
560
+ compressCount,
561
+ emptyReason: "below-min-compress-count"
562
+ });
563
+ }
528
564
  const msgsToCompress = pendingMsgs.slice(0, compressCount);
529
565
  const msgsToKeep = pendingMsgs.slice(compressCount);
530
566
  const newSummarizedBeforeId = msgsToCompress[msgsToCompress.length - 1].id;
@@ -534,7 +570,8 @@ function planCompression(input) {
534
570
  msgsToCompress,
535
571
  msgsToKeep,
536
572
  newSummarizedBeforeId,
537
- startIndex
573
+ startIndex,
574
+ diagnostics: { ...diagnostics, compressCount }
538
575
  };
539
576
  }
540
577
 
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-LSZXYE64.js";
4
+ } from "./chunk-SL4QHSPQ.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-YSKEOTPH.js";
7
+ } from "./chunk-GGMVRZRO.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-HHLTFENG.js";
10
+ } from "./chunk-SDTTBMBU.js";
11
11
  import {
12
12
  applyToolSurfaceConstraints
13
- } from "./chunk-ZVN6I33J.js";
13
+ } from "./chunk-IIVGDG4I.js";
14
14
  import {
15
15
  resolveLocalRuntimeEnvFromPolicy
16
- } from "./chunk-3JQ2NRYU.js";
16
+ } from "./chunk-HVURBGF3.js";
17
17
  import {
18
18
  toErrorMessage
19
19
  } from "./chunk-HNMXYYJR.js";
@@ -32,19 +32,19 @@ import {
32
32
  } from "./chunk-KX6YBIHG.js";
33
33
  import {
34
34
  asTrimmedNonEmptyStringArray
35
- } from "./chunk-I42VC5KR.js";
35
+ } from "./chunk-VMFTFOWF.js";
36
36
  import {
37
37
  ownedAgentKey
38
- } from "./chunk-BJIRLHJR.js";
38
+ } from "./chunk-M2EJHDJP.js";
39
+ import {
40
+ isRecord
41
+ } from "./chunk-KUG52IAP.js";
39
42
  import {
40
43
  asTrimmedString
41
44
  } from "./chunk-3EUW3WEO.js";
42
45
  import {
43
46
  asOptionalPositiveFiniteNumber
44
47
  } from "./chunk-U6VC4MU4.js";
45
- import {
46
- isRecord
47
- } from "./chunk-KUG52IAP.js";
48
48
  import {
49
49
  asOptionalTrimmedString
50
50
  } from "./chunk-G3SUCT4W.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-NRALD3CC.js";
5
+ } from "./chunk-76WEAXJB.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -0,0 +1,344 @@
1
+ import {
2
+ publicAgentKey
3
+ } from "./chunk-M2EJHDJP.js";
4
+
5
+ // packages/core/builtinAgentCatalog.ts
6
+ var BUILTIN_AGENT_CATALOG = [
7
+ // ── 平台内置 6 个(builtinAgents BUILTIN_*)──
8
+ {
9
+ id: "01NOLOAPPBLD000000019KCKT0",
10
+ group: "builtin",
11
+ name: "nolo",
12
+ provider: "nolo",
13
+ model: "deepseek-flash",
14
+ runtimeFallback: true
15
+ },
16
+ {
17
+ id: "01APPBUILDER00000001YAII3I",
18
+ group: "builtin",
19
+ name: "\u5E94\u7528\u6784\u5EFA\u52A9\u624B",
20
+ provider: "nolo",
21
+ model: "deepseek-flash"
22
+ },
23
+ {
24
+ id: "01ECOMMERCEAG00000001PYQ2J",
25
+ group: "builtin",
26
+ name: "\u7535\u5546\u5546\u54C1\u53C2\u6570\u52A9\u624B",
27
+ provider: "openai",
28
+ model: "gpt-6-luna"
29
+ },
30
+ {
31
+ id: "01NOLOAGENTCRT000000000001",
32
+ group: "builtin",
33
+ name: "AI \u521B\u5EFA\u52A9\u624B",
34
+ provider: "nolo",
35
+ model: "deepseek-flash"
36
+ },
37
+ {
38
+ id: "01NOLOFEEDBACKA000000000R2",
39
+ group: "builtin",
40
+ name: "\u53CD\u9988\u5165\u53E3",
41
+ provider: "nolo",
42
+ model: "deepseek-flash"
43
+ },
44
+ {
45
+ id: "01CHROMEOPR000000000001",
46
+ group: "builtin",
47
+ name: "Chrome \u64CD\u4F5C\u5458",
48
+ provider: "nolo",
49
+ model: "deepseek-flash"
50
+ },
51
+ // ── quick-chat 档位 public(图片助手已无 runtimeFallback,见下方图片档段) ──
52
+ // 2026-09-10 兜底最小化:runtimeFallback 只保留产品代码显式引用的条目
53
+ // (nolo 默认档、PLATFORM_TIER_AGENT_KEYS 的 flash/image-compat、
54
+ // SYSTEM_BUILTIN_TRUSTED 的 flash/pro/glm-flash)。广场档与图片助手不再
55
+ // 兜底——记录缺失时明确报 Agent not found,而不是合成无 prompt 的裸配置。
56
+ {
57
+ id: "01DSV4FLASHPB00000000JFPFD",
58
+ group: "public",
59
+ name: "DeepSeek Flash",
60
+ provider: "nolo",
61
+ model: "deepseek-flash",
62
+ runtimeFallback: true
63
+ },
64
+ {
65
+ id: "01DSV4PRONPB00000001VIR3EK",
66
+ group: "public",
67
+ name: "DeepSeek V4 Pro",
68
+ provider: "nolo",
69
+ model: "deepseek-v4-pro",
70
+ runtimeFallback: true
71
+ },
72
+ {
73
+ id: "01GLM52DIPB00000000I3E2MY",
74
+ group: "public",
75
+ name: "GLM 5.3",
76
+ provider: "nolo",
77
+ model: "glm-5.3"
78
+ },
79
+ {
80
+ id: "01GLMFLASHPB00000000BT20BC",
81
+ group: "public",
82
+ name: "GLM 5.3 Flash",
83
+ provider: "nolo",
84
+ model: "glm-5-3-flash",
85
+ runtimeFallback: true
86
+ },
87
+ {
88
+ id: "01KIMIK26OLLAMA0000000001",
89
+ // 已下架的公共入口:保留 internal catalog entry 仅用于旧 Agent 记录的运行时兼容。
90
+ group: "internal",
91
+ lifecycle: "retired",
92
+ name: "Kimi K2.6\uFF08\u517C\u5BB9\uFF09",
93
+ provider: "nolo",
94
+ model: "kimi-k2.6",
95
+ runtimeFallback: true
96
+ },
97
+ // ── 广场公开聊天档(从 createSpaceAgents PUBLIC_AGENT_DEFS 收编,2026-08-19)──
98
+ // ID 与 createSpaceAgents 的 deterministicId 结果一致;provider 按 agentSeedBuilder
99
+ // 默认规则:显式 provider 用显式值,未写则 openai。
100
+ // 2026-09-10 预设收敛:GPT-5.6 Sol/Terra、GPT-5.5 Pro 从广场退场转 internal 兼容,
101
+ // 公开聊天档只保留 Luna + nolo 托管组 + 图片档(图片档仍在广场,但不再 runtimeFallback)。
102
+ {
103
+ id: "01GPT56SOLPB00000000VXMGCW",
104
+ // 已从广场/预设退场(2026-09-10):保留 internal 兼容条目,仅为存量 agent
105
+ // 记录提供运行时路由;不再出现在广场与 createSpaceAgents 播种清单。
106
+ group: "internal",
107
+ lifecycle: "retired",
108
+ name: "GPT-5.6 Sol\uFF08\u517C\u5BB9\uFF09",
109
+ provider: "openai",
110
+ model: "gpt-5.6-sol"
111
+ },
112
+ {
113
+ id: "01GPT56TERPB00000001UX7RKW",
114
+ // 已从广场/预设退场(2026-09-10):同 Sol,internal 兼容。
115
+ group: "internal",
116
+ lifecycle: "retired",
117
+ name: "GPT-5.6 Terra\uFF08\u517C\u5BB9\uFF09",
118
+ provider: "openai",
119
+ model: "gpt-5.6-terra"
120
+ },
121
+ {
122
+ id: "01GPT56LUNPB00000001VVVZHS",
123
+ // 2026-09-23 换代:同一稳定 ID(用户收藏 / 别名 / Space 内容键不失效)升级为
124
+ // 平台托管 GPT-6 Luna。注意与 retired 的区别:Luna 是在架商品原地换代,
125
+ //
126
+ // provider 必须是 "nolo"(平台托管命名空间),不能写上游名 "openai":
127
+ // ① 计费按 calculatePrice(provider, model) 查价,平台价只注册在 nolo 下,
128
+ // 写 openai 会落零价虚拟模型(2026-09-24 实测 openai/gpt-6-luna → cost 0);
129
+ // ② agent-run 的托管路由门 isPlatformManagedProvider 只认 nolo/deepseek/
130
+ // kimi 系,provider 非 nolo 时读不到 hosted routing table,直连 key 也拿不到。
131
+ // 平台 agent 统一收敛到 nolo provider 是既定方向(见 modelUpgradeTable 的
132
+ // 「尽量迁移到 nolo 平台托管」原则),其余上游名 provider 逐步退场。
133
+ group: "public",
134
+ lifecycle: "active",
135
+ name: "GPT-6 Luna",
136
+ provider: "nolo",
137
+ model: "gpt-6-luna"
138
+ },
139
+ {
140
+ id: "01GPT55PROPUB00000000IV47M",
141
+ // 已从广场/预设退场(2026-09-10 retired,2026-09-23 起 overlay 强制过滤
142
+ // 存量 DB 记录):internal 兼容,理由同 Sol。
143
+ group: "internal",
144
+ lifecycle: "retired",
145
+ name: "GPT-5.5 Pro\uFF08\u517C\u5BB9\uFF09",
146
+ provider: "openai",
147
+ model: "gpt-5.5-pro"
148
+ },
149
+ {
150
+ id: "01CLSO50DIPB00000000A1DVVU",
151
+ // 旧代 Claude 广场入口(2026-09-01 下架时随条目删除,只剩线上孤儿记录,
152
+ // 2026-09-24 重新收编):internal + retired 保留运行时兼容,广场由 overlay
153
+ // 按 retiredCatalogIds 过滤其存量 agent-pub-* 记录(退场 ≠ 删除——Space
154
+ // contentKey / dialog primaryAgentKey 硬引用不断链)。model 沿用 2026-09-15
155
+ // 恢复的真实 DeepInfra 官方名(与平台模型名同名)。
156
+ group: "internal",
157
+ lifecycle: "retired",
158
+ name: "Claude Sonnet 5\uFF08\u517C\u5BB9\uFF09",
159
+ provider: "nolo",
160
+ model: "anthropic/claude-sonnet-5"
161
+ },
162
+ {
163
+ id: "01FABLE5DIPB00000001VJBKM4",
164
+ // 同 Sonnet 5:旧代 Claude 广场入口转 internal + retired 兼容条目。
165
+ group: "internal",
166
+ lifecycle: "retired",
167
+ name: "Claude Fable 5\uFF08\u517C\u5BB9\uFF09",
168
+ provider: "nolo",
169
+ model: "anthropic/claude-fable-5"
170
+ },
171
+ {
172
+ id: "01CLOP48DIPB0000000001OI1W",
173
+ // 同 Sonnet 5 / Fable 5。这条尤其重要:线上同时存在
174
+ // agent-system-01CLOP48DIPB...(userId=system)与 owner 副本。catalog 若无该
175
+ // 条目,overlay 的「DB 有、catalog 无 → 用户自建」规则会把 system 名下记录当成
176
+ // 用户自建保留——正是 2026-09-24 设计会商点名的「事故复活通道」实例。
177
+ group: "internal",
178
+ lifecycle: "retired",
179
+ name: "Claude Opus 5\uFF08\u517C\u5BB9\uFF09",
180
+ provider: "nolo",
181
+ model: "anthropic/claude-opus-5"
182
+ },
183
+ // Claude 系 2026-09-24 广场重新上架:只上架最新一代(Fable 5.1 / Opus 5.5)。
184
+ // 平台托管通道 2026-09-15 起已是真实 DeepInfra 模型(nolo 目录),provider
185
+ // 收敛到 nolo 命名空间;旧代 Sonnet 5 / Fable 5 只保留上面的 retired 兼容条目。
186
+ // Gemini 文本档只上架最新一代:旧版留在广场只会分散选择、拉长列表,而
187
+ // 用户想要的是「最新的那个 Gemini」。旧版模型仍可保留用于兼容历史请求,
188
+ // (modelAbility / 定价表照旧),下架的只是广场入口。
189
+ {
190
+ id: "01CLDFBL51PB000000013N70D7",
191
+ group: "public",
192
+ lifecycle: "active",
193
+ name: "Claude Fable 5.1",
194
+ provider: "nolo",
195
+ model: "anthropic/claude-fable-5-1"
196
+ },
197
+ {
198
+ id: "01CLDOPU55PB00000001MQHSW0",
199
+ group: "public",
200
+ lifecycle: "active",
201
+ name: "Claude Opus 5.5",
202
+ provider: "nolo",
203
+ model: "anthropic/claude-opus-5-5"
204
+ },
205
+ {
206
+ id: "01GEM37FLPB00000000FJCRNC",
207
+ group: "public",
208
+ name: "Gemini 3.8 Flash",
209
+ provider: "nolo",
210
+ model: "gemini-3.8-flash"
211
+ },
212
+ {
213
+ id: "01GROK46PLAZ00000001PTJZ3K",
214
+ group: "public",
215
+ name: "Grok 4.6",
216
+ provider: "xai",
217
+ model: "grok-4.6"
218
+ },
219
+ {
220
+ id: "01GPTIMG2GEN00000000SSEBOS",
221
+ group: "public",
222
+ name: "GPT Image 2 \u56FE\u7247\u751F\u6210\u5668",
223
+ provider: "nolo",
224
+ model: "gpt-6-luna",
225
+ hasImageOutput: true,
226
+ imageModel: "gpt-image-2",
227
+ imageWorkflow: "generate",
228
+ imageConfig: { enabled: true }
229
+ },
230
+ {
231
+ id: "01GPTIMG2EDT00000001R4R4H4",
232
+ group: "public",
233
+ name: "GPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668",
234
+ provider: "nolo",
235
+ model: "gpt-6-luna",
236
+ hasImageOutput: true,
237
+ imageModel: "gpt-image-2",
238
+ imageWorkflow: "edit",
239
+ imageConfig: { enabled: true }
240
+ },
241
+ {
242
+ id: "01GPTIMG2CNT00000000USKZFO",
243
+ group: "public",
244
+ name: "GPT Image 2 \u8FDE\u7EED\u521B\u4F5C\u52A9\u624B",
245
+ provider: "nolo",
246
+ model: "gpt-6-luna",
247
+ hasImageOutput: true,
248
+ imageModel: "gpt-image-2",
249
+ imageWorkflow: "continuous",
250
+ imageConfig: { enabled: true }
251
+ },
252
+ {
253
+ id: "01NB2LITEGEN00000001XE1MNO",
254
+ group: "public",
255
+ name: "Nano Banana 2 Lite \u6587\u751F\u56FE",
256
+ provider: "nolo",
257
+ model: "gemini-3.1-flash-lite-image",
258
+ hasImageOutput: true
259
+ }
260
+ ];
261
+ var CATALOG_BY_ID = new Map(BUILTIN_AGENT_CATALOG.map((e) => [e.id, e]));
262
+ function builtinAgentCatalogEntryById(id) {
263
+ if (!id) return void 0;
264
+ return CATALOG_BY_ID.get(id);
265
+ }
266
+ function builtinRuntimeFallbackEntries() {
267
+ return BUILTIN_AGENT_CATALOG.filter((e) => e.runtimeFallback === true);
268
+ }
269
+ function builtinPlatformEntries() {
270
+ return BUILTIN_AGENT_CATALOG.filter((e) => e.group === "builtin");
271
+ }
272
+ function isRetiredCatalogEntry(entry2) {
273
+ return entry2?.lifecycle === "retired";
274
+ }
275
+
276
+ // packages/core/builtinAgents.ts
277
+ var entry = (id) => {
278
+ const e = builtinAgentCatalogEntryById(id);
279
+ if (!e) throw new Error(`missing builtin agent catalog entry: ${id}`);
280
+ return e;
281
+ };
282
+ var BUILTIN_NOLO_AGENT_ID = entry("01NOLOAPPBLD000000019KCKT0").id;
283
+ var BUILTIN_NOLO_AGENT_KEY = publicAgentKey(BUILTIN_NOLO_AGENT_ID);
284
+ var BUILTIN_NOLO_AGENT_NAME = entry("01NOLOAPPBLD000000019KCKT0").name;
285
+ var BUILTIN_NOLO_AGENT_MODEL = entry("01NOLOAPPBLD000000019KCKT0").model;
286
+ var BUILTIN_APP_BUILDER_AGENT_ID = entry("01APPBUILDER00000001YAII3I").id;
287
+ var BUILTIN_APP_BUILDER_AGENT_KEY = publicAgentKey(BUILTIN_APP_BUILDER_AGENT_ID);
288
+ var BUILTIN_ECOMMERCE_AGENT_ID = entry("01ECOMMERCEAG00000001PYQ2J").id;
289
+ var BUILTIN_ECOMMERCE_AGENT_KEY = publicAgentKey(BUILTIN_ECOMMERCE_AGENT_ID);
290
+ var BUILTIN_AGENT_CREATOR_AGENT_ID = entry("01NOLOAGENTCRT000000000001").id;
291
+ var BUILTIN_AGENT_CREATOR_AGENT_KEY = publicAgentKey(BUILTIN_AGENT_CREATOR_AGENT_ID);
292
+ var BUILTIN_FEEDBACK_AGENT_ID = entry("01NOLOFEEDBACKA000000000R2").id;
293
+ var BUILTIN_FEEDBACK_AGENT_KEY = publicAgentKey(BUILTIN_FEEDBACK_AGENT_ID);
294
+ var BUILTIN_CHROME_OPERATOR_AGENT_ID = entry("01CHROMEOPR000000000001").id;
295
+ var BUILTIN_CHROME_OPERATOR_AGENT_KEY = publicAgentKey(BUILTIN_CHROME_OPERATOR_AGENT_ID);
296
+ var BUILTIN_PLATFORM_AGENT_KEYS = builtinPlatformEntries().map(
297
+ (e) => publicAgentKey(e.id)
298
+ );
299
+ var BUILTIN_PLATFORM_AGENT_KEY_SET = new Set(BUILTIN_PLATFORM_AGENT_KEYS);
300
+ var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID = entry("01DSV4FLASHPB00000000JFPFD").id;
301
+ var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY = publicAgentKey(PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID);
302
+ var PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID = entry("01DSV4PRONPB00000001VIR3EK").id;
303
+ var PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY = publicAgentKey(PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID);
304
+ var PUBLIC_GLM_53_FLASH_AGENT_ID = entry("01GLMFLASHPB00000000BT20BC").id;
305
+ var PUBLIC_GLM_53_FLASH_AGENT_KEY = publicAgentKey(PUBLIC_GLM_53_FLASH_AGENT_ID);
306
+ var PUBLIC_KIMI_K26_IMAGE_AGENT_ID = entry("01KIMIK26OLLAMA0000000001").id;
307
+ var PUBLIC_KIMI_K26_IMAGE_AGENT_KEY = publicAgentKey(PUBLIC_KIMI_K26_IMAGE_AGENT_ID);
308
+ var PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID = entry("01GPTIMG2GEN00000000SSEBOS").id;
309
+ var PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID);
310
+ var PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID = entry("01GPTIMG2EDT00000001R4R4H4").id;
311
+ var PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID);
312
+ var PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID = entry("01GPTIMG2CNT00000000USKZFO").id;
313
+ var PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID);
314
+ var PUBLIC_NANO_BANANA_2_LITE_AGENT_ID = entry("01NB2LITEGEN00000001XE1MNO").id;
315
+ var PUBLIC_NANO_BANANA_2_LITE_AGENT_KEY = publicAgentKey(PUBLIC_NANO_BANANA_2_LITE_AGENT_ID);
316
+ var SYSTEM_BUILTIN_TRUSTED_AGENT_KEYS = [
317
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
318
+ PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY,
319
+ PUBLIC_GLM_53_FLASH_AGENT_KEY
320
+ ];
321
+ var SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET = new Set(
322
+ SYSTEM_BUILTIN_TRUSTED_AGENT_KEYS
323
+ );
324
+ var isSystemBuiltinTrustedAgentKey = (key) => typeof key === "string" && SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET.has(key);
325
+ var isBuiltinPlatformAgentKey = (key) => typeof key === "string" && BUILTIN_PLATFORM_AGENT_KEY_SET.has(key);
326
+
327
+ export {
328
+ builtinAgentCatalogEntryById,
329
+ builtinRuntimeFallbackEntries,
330
+ isRetiredCatalogEntry,
331
+ BUILTIN_NOLO_AGENT_KEY,
332
+ BUILTIN_NOLO_AGENT_NAME,
333
+ BUILTIN_NOLO_AGENT_MODEL,
334
+ BUILTIN_PLATFORM_AGENT_KEYS,
335
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
336
+ PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
337
+ PUBLIC_GLM_53_FLASH_AGENT_ID,
338
+ PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID,
339
+ PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID,
340
+ PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID,
341
+ PUBLIC_NANO_BANANA_2_LITE_AGENT_ID,
342
+ isSystemBuiltinTrustedAgentKey,
343
+ isBuiltinPlatformAgentKey
344
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-XWNRAIUL.js";
4
+ } from "./chunk-AFUORTY4.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -10,11 +10,11 @@ import {
10
10
  sanitizeShareData,
11
11
  shareKey,
12
12
  toNonEmptyString
13
- } from "./chunk-NHRQCXIQ.js";
13
+ } from "./chunk-VMFTFOWF.js";
14
14
  import {
15
15
  noloDeleteRequest,
16
16
  noloWriteRequest
17
- } from "./chunk-3RAG2NAD.js";
17
+ } from "./chunk-UKWGR5SS.js";
18
18
  import {
19
19
  normalizeTimeFields
20
20
  } from "./chunk-QOKAKDPE.js";
@@ -285,6 +285,27 @@ function saveProfileAgentSelection(selection, path = getDefaultProfileConfigPath
285
285
  `, "utf8");
286
286
  return config;
287
287
  }
288
+ function getProfileOAuthSync(provider, path = getDefaultProfileConfigPath()) {
289
+ const config = loadProfileConfig(path);
290
+ if (!config) return void 0;
291
+ const profile = config.profiles[config.currentProfile];
292
+ return profile?.oauthSync?.[provider];
293
+ }
294
+ function saveProfileOAuthSync(provider, sync, path = getDefaultProfileConfigPath()) {
295
+ if (isProtectedHomeProfileWrite(path)) return null;
296
+ const config = loadProfileConfig(path);
297
+ if (!config) return null;
298
+ const profile = config.profiles[config.currentProfile];
299
+ if (!profile) return null;
300
+ profile.oauthSync = {
301
+ ...profile.oauthSync ?? {},
302
+ [provider]: sync
303
+ };
304
+ mkdirSync(dirname(path), { recursive: true });
305
+ writeFileSync(path, `${JSON.stringify(config, null, 2)}
306
+ `, "utf8");
307
+ return config;
308
+ }
288
309
 
289
310
  export {
290
311
  getDefaultProfileConfigPath,
@@ -299,5 +320,7 @@ export {
299
320
  saveProfileLocale,
300
321
  getAgentSelectionAuditPath,
301
322
  readLastAgentSelectionAudit,
302
- saveProfileAgentSelection
323
+ saveProfileAgentSelection,
324
+ getProfileOAuthSync,
325
+ saveProfileOAuthSync
303
326
  };