nolo-cli 0.18.0 → 0.24.0-alpha.6

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 (133) hide show
  1. package/{_executeModel-X5PCIZN6.js → _executeModel-ARCMGGMY.js} +46 -44
  2. package/{action-LT7BRFLK.js → action-5MNAXR5B.js} +7 -6
  3. package/{addContentAction-PL3KKBDH.js → addContentAction-UNSYTVTB.js} +5 -5
  4. package/{addDialogAgentAction-FCMSKYAF.js → addDialogAgentAction-LJGNP2AO.js} +5 -5
  5. package/{agentDeleteCommand-2BZDQV36.js → agentDeleteCommand-C5PIEBMZ.js} +27 -26
  6. package/{agentEmailCommands-2QJDGRMB.js → agentEmailCommands-QTGQ3ZAD.js} +57 -55
  7. package/{agentListCommands-6VEPTKBI.js → agentListCommands-LRHBS3A5.js} +30 -26
  8. package/{agentMachineCommands-NVVHNWYI.js → agentMachineCommands-4PXIT4BP.js} +25 -24
  9. package/{agentRecordCommands-4GGRDMD4.js → agentRecordCommands-ZZPTYTYR.js} +52 -50
  10. package/{agentRunCommand-XOLQNKBZ.js → agentRunCommand-7ZTPZNUX.js} +55 -54
  11. package/{agentRunControl-Y5AFH5PQ.js → agentRunControl-SNUKXN6J.js} +6 -2
  12. package/{agentRuntimeLocal-7WYWCGL4.js → agentRuntimeLocal-QOYY5UV2.js} +19 -18
  13. package/{agentSlice-EAXPGEYV.js → agentSlice-J3W3RX2I.js} +5 -5
  14. package/{appDeleteCommands-77KR2RJ4.js → appDeleteCommands-7NS46XDH.js} +23 -22
  15. package/{appDeployCommands-K7CAHGBI.js → appDeployCommands-RSRNQ67U.js} +23 -22
  16. package/{appDeployStatusCommands-4OEKLTBT.js → appDeployStatusCommands-EF4RSGC6.js} +23 -22
  17. package/{appGetCommands-VM2WDLAZ.js → appGetCommands-YA7JWYUX.js} +23 -22
  18. package/{appListCommands-GX6BBA6U.js → appListCommands-WM2ON6JW.js} +23 -22
  19. package/{authCommand-DY6UUL6O.js → authCommand-HJP7FURK.js} +12 -13
  20. package/{authCommands-XTBV7OFZ.js → authCommands-NYZM2B2I.js} +4 -5
  21. package/{chunk-MKA6QE5E.js → chunk-2IPEVBUO.js} +126 -68
  22. package/{chunk-OWOHNGCN.js → chunk-2MBTWINN.js} +42 -3
  23. package/{chunk-K6EUAOW3.js → chunk-35RYGII3.js} +1 -1
  24. package/{chunk-TRT4I4UD.js → chunk-4POUK2BV.js} +2 -2
  25. package/{chunk-LLWKHDG4.js → chunk-4ULSC37S.js} +1 -3
  26. package/{chunk-EDV7EBOI.js → chunk-4ZH6GUJF.js} +2151 -1500
  27. package/{chunk-MVQ4TBSD.js → chunk-54VHTARN.js} +1 -1
  28. package/{chunk-L4F3I4SR.js → chunk-5HQQ4LUU.js} +4 -6
  29. package/{chunk-Z4NR32XR.js → chunk-5RGU3J7P.js} +13 -0
  30. package/{chunk-7BUYEZ6U.js → chunk-7H3UTGPM.js} +12 -72
  31. package/{chunk-RQN4SEKL.js → chunk-7W6GFNJL.js} +1 -1
  32. package/{chunk-HEGV7BH3.js → chunk-AQZCWJOG.js} +1 -1
  33. package/{chunk-3ND52WIL.js → chunk-ATWUOTJP.js} +180 -24
  34. package/chunk-CF7S2RYZ.js +376 -0
  35. package/{chunk-I2ZJKTG5.js → chunk-CGVRC2TB.js} +7 -7
  36. package/{chunk-UAIVG4J6.js → chunk-CHSCAUZN.js} +1 -8
  37. package/{chunk-KFEVY3ST.js → chunk-D34RI6NI.js} +18 -8
  38. package/{chunk-ROWQEJRP.js → chunk-DXJS7VSG.js} +3 -2
  39. package/{chunk-MHSGJW4Z.js → chunk-EHOYZRTI.js} +44 -14
  40. package/{chunk-XRZJGPFI.js → chunk-FON47ACC.js} +4 -4
  41. package/{chunk-SCTYAHYK.js → chunk-H2NAWOLH.js} +217 -141
  42. package/{chunk-MPVYDS7I.js → chunk-H6ODMJR3.js} +3 -3
  43. package/{chunk-R35XMF6F.js → chunk-H73ZV2GL.js} +352 -30
  44. package/{chunk-4T5F7YZQ.js → chunk-I6RJGORZ.js} +1 -1
  45. package/{chunk-OK6YSWLH.js → chunk-IICW77GI.js} +1 -1
  46. package/{chunk-VDXCXCXH.js → chunk-IUDMBCXC.js} +1 -1
  47. package/{chunk-AHCY2S2I.js → chunk-JADNODCQ.js} +1 -1
  48. package/{chunk-DFCFMCY6.js → chunk-JBLY6HQP.js} +2 -2
  49. package/{chunk-UGUW3FHG.js → chunk-JMSCXQUG.js} +2 -2
  50. package/{chunk-N54HIJVJ.js → chunk-KFUCLS7Z.js} +101 -9
  51. package/{chunk-FQZZLA3C.js → chunk-KXKQO4Q6.js} +17 -0
  52. package/{chunk-3Q7WHGCB.js → chunk-L65QKSVJ.js} +1 -1
  53. package/{chunk-3ZX7PERL.js → chunk-LALVWNE4.js} +20 -7
  54. package/{chunk-PJSV3IZ5.js → chunk-M3TMVJKG.js} +1 -1
  55. package/{chunk-REA4JLBH.js → chunk-M5OZCOBV.js} +7 -6
  56. package/{chunk-JLA4FXYC.js → chunk-MALVZUYL.js} +1 -1
  57. package/{chunk-GFUIQ4RY.js → chunk-MXFQHRSS.js} +1 -1
  58. package/{chunk-LSFAWXKC.js → chunk-N7J63Q6C.js} +1 -0
  59. package/{chunk-6Y7A3OQQ.js → chunk-NRY4GCKJ.js} +2 -0
  60. package/{chunk-G5U6LDLG.js → chunk-NVHPMDSZ.js} +6 -6
  61. package/{chunk-23FZYPLC.js → chunk-OJFYT3ZQ.js} +842 -1060
  62. package/{chunk-ELT65PZW.js → chunk-OXLLFZNF.js} +1 -1
  63. package/{chunk-CZ6NYQTV.js → chunk-P4QWLZGU.js} +2 -2
  64. package/{chunk-5MIDPSSK.js → chunk-PB7G5MAM.js} +3 -3
  65. package/{chunk-HWW2M4SN.js → chunk-QLVWFXZQ.js} +5 -4
  66. package/{chunk-VYHDJEQD.js → chunk-QNLLGS37.js} +136 -78
  67. package/{chunk-XHG22OEX.js → chunk-ROJI6DRT.js} +2 -2
  68. package/{chunk-BV4VEE3W.js → chunk-ROYOKSX4.js} +243 -354
  69. package/{chunk-VNAEBGDK.js → chunk-RZNYL4LW.js} +123 -26
  70. package/{chunk-RVOUXDFU.js → chunk-S6KVFOUG.js} +6 -34
  71. package/{chunk-V3ED5AWK.js → chunk-S77SCVBU.js} +27 -16
  72. package/{chunk-UBHAWFQ6.js → chunk-S7RWIPDI.js} +42 -19
  73. package/{chunk-B5TOXZAK.js → chunk-SIZQB7BD.js} +1 -1
  74. package/{chunk-DFFIZ25G.js → chunk-SLOGKB7M.js} +4 -1
  75. package/{chunk-FXUSIQC2.js → chunk-SROR5TSM.js} +1 -1
  76. package/{chunk-PIZYJVHQ.js → chunk-TN4YHAI3.js} +4 -4
  77. package/{chunk-IYEXFJPC.js → chunk-TW35GDNW.js} +64 -57
  78. package/chunk-UZ6XXCVR.js +50 -0
  79. package/{chunk-DKZFOK24.js → chunk-UZH44DWK.js} +7 -288
  80. package/{chunk-YGW4G5W5.js → chunk-X546QUDT.js} +61 -12
  81. package/chunk-YYLHWIW6.js +48 -0
  82. package/{chunk-SWDPIPOY.js → chunk-ZGVW7MSZ.js} +1 -1
  83. package/{chunk-34WPV75U.js → chunk-ZUXIXYJI.js} +1 -1
  84. package/{chunk-VC6OZXO5.js → chunk-ZWJOGMKH.js} +2 -26
  85. package/{cliExecutor-DNE7TCC4.js → cliExecutor-K3F7DMRO.js} +2 -2
  86. package/{codingSkills-36KN5NQT.js → codingSkills-EN6Z6G6U.js} +4 -4
  87. package/{createAgentAutomationAction-GNFF524X.js → createAgentAutomationAction-MKQWN4VQ.js} +19 -18
  88. package/{createDialogAction-RB55KCLO.js → createDialogAction-YWIZPLFS.js} +22 -20
  89. package/{createPageAction-Y7343GLU.js → createPageAction-74TTEIPC.js} +20 -19
  90. package/{db-W3O47YGF.js → db-W5UHK4P3.js} +150 -0
  91. package/{dbSlice-CGSRFJN3.js → dbSlice-5BKDURDL.js} +4 -4
  92. package/{dialogCommands-IAZK6YHQ.js → dialogCommands-MJIP32FL.js} +24 -23
  93. package/{dialogSlice-UQAXF23P.js → dialogSlice-KLLVH4WI.js} +24 -18
  94. package/{docCreateCommands-I2EWZGCI.js → docCreateCommands-5DN472U6.js} +24 -27
  95. package/{docDeleteCommands-IZ45UZKG.js → docDeleteCommands-HE76LBN4.js} +25 -24
  96. package/{docReadCommands-R6Z4QJYU.js → docReadCommands-XVGZSCBS.js} +24 -23
  97. package/{docStore-5HOJ4D7D.js → docStore-SPH3D6BT.js} +20 -19
  98. package/{docUpdateCommands-2LRBKQPY.js → docUpdateCommands-P7IAWUAD.js} +24 -27
  99. package/{fetchMessages-BMGVZVSE.js → fetchMessages-W4IKHPCS.js} +2 -3
  100. package/{getPricing-G7DLAST6.js → getPricing-WENPBVWH.js} +3 -3
  101. package/{handleSendMessageAction-Q4HY35WX.js → handleSendMessageAction-ZU6WJVL7.js} +23 -20
  102. package/index.js +74 -74
  103. package/{localDialogRead-4H3QJFLW.js → localDialogRead-JXTAHW2E.js} +2 -2
  104. package/{machineCommands-PKBPQKTY.js → machineCommands-NI76PVHK.js} +59 -57
  105. package/{machineWsRunDispatch-UZAW4OXJ.js → machineWsRunDispatch-W3G6NJVQ.js} +51 -49
  106. package/{models-DJFSJ7SW.js → models-DB27UAE3.js} +2 -2
  107. package/package.json +1 -1
  108. package/{read-3FMPZPER.js → read-F3L3T2WJ.js} +2 -1
  109. package/{readDocTool-VSYHKK3V.js → readDocTool-FOHWVA4R.js} +1 -1
  110. package/{readlineWorkspace-Y2RDOFZG.js → readlineWorkspace-BDH4G477.js} +880 -425
  111. package/{removeDialogAgentAction-OAGA2G3U.js → removeDialogAgentAction-QCFGIUIH.js} +8 -7
  112. package/{runAgentClientLoop-NBPIKJ6J.js → runAgentClientLoop-ZPKMXCM5.js} +45 -38
  113. package/{setDialogExtraReferencesAction-JZEXA5SL.js → setDialogExtraReferencesAction-DK4CKERU.js} +5 -5
  114. package/{setPrimaryDialogAgentAction-4ZUQQKDG.js → setPrimaryDialogAgentAction-SJSO6N27.js} +8 -7
  115. package/{settingSlice-7MNKHZ6R.js → settingSlice-XNM5AFPU.js} +6 -5
  116. package/{spaceCommands-DHCZ7J5I.js → spaceCommands-3GGBJRQR.js} +25 -24
  117. package/{spaceSlice-ZXLLG3CR.js → spaceSlice-47Z6XLFQ.js} +21 -18
  118. package/{streamAgentChatTurn-L3YW6LSB.js → streamAgentChatTurn-VT5K5JSD.js} +140 -98
  119. package/switchDialogAgentAction-4OAC6QRN.js +61 -0
  120. package/{tableCommands-BEQAGE4I.js → tableCommands-HEQYT2KP.js} +1 -1
  121. package/{toolApiClient-QI3YBNWB.js → toolApiClient-ISM4ZQX4.js} +2 -2
  122. package/{tools-ECGXR5QF.js → tools-L7RCHAPT.js} +36 -33
  123. package/{tuiSummaryLlmCaller-OMSCNHXA.js → tuiSummaryLlmCaller-3DYOLTVN.js} +6 -6
  124. package/{updateCommands-XTW55TOT.js → updateCommands-HTCOBXCA.js} +2 -2
  125. package/{updateDialogTitleAction-HQ2EUDFT.js → updateDialogTitleAction-KMPVPQ4A.js} +28 -27
  126. package/chunk-DL6EPNIK.js +0 -50
  127. package/chunk-V5R4NZP2.js +0 -78
  128. package/chunk-X4Q4UZEY.js +0 -26
  129. package/queryRunOverlay-O4LOMMPO.js +0 -161
  130. package/runOverlayPresentation-ZO4VCWEU.js +0 -11
  131. package/types-ZSTJ7MPR.js +0 -7
  132. package/{chunk-X7W4TNB4.js → chunk-CMKUBIGW.js} +3 -3
  133. package/{runtimeDoctorCommands-E2OUORHK.js → runtimeDoctorCommands-HSU632DY.js} +3 -3
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-RVOUXDFU.js";
4
+ } from "./chunk-S6KVFOUG.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  readDbRecord,
3
3
  writeAgentRecord
4
- } from "./chunk-DFCFMCY6.js";
4
+ } from "./chunk-JBLY6HQP.js";
5
5
  import {
6
6
  buildSkillSummaryMarker
7
7
  } from "./chunk-VF4K2QE6.js";
8
- import {
9
- createSpaceKey
10
- } from "./chunk-ELT65PZW.js";
11
8
  import {
12
9
  parseUserIdFromAuthToken,
13
10
  readOption,
14
11
  resolveAuthToken,
15
12
  resolveServerUrl
16
13
  } from "./chunk-A7GB5UGH.js";
14
+ import {
15
+ createSpaceKey
16
+ } from "./chunk-OXLLFZNF.js";
17
17
  import {
18
18
  asTrimmedLowercaseString
19
19
  } from "./chunk-QSJ3HFEF.js";
@@ -140,9 +140,7 @@ function readTitle(args) {
140
140
  "--tools",
141
141
  "--required-skills",
142
142
  "--recommended-skills",
143
- "--preferred-agents",
144
143
  "--trigger-mode",
145
- "--budget-tier",
146
144
  "--prompt-patch",
147
145
  "--token",
148
146
  "--server"
@@ -31,6 +31,18 @@ var getDialogAgentIds = (dialogConfig) => {
31
31
  return [];
32
32
  };
33
33
  var getPrimaryDialogAgentId = (dialogConfig) => getDialogAgentIds(dialogConfig)[0] ?? null;
34
+ var getActiveDialogAgentId = (dialogConfig, defaultAgentId) => {
35
+ if (!dialogConfig) return defaultAgentId ?? null;
36
+ const activeKey = normalizeAgentId(dialogConfig.activeAgentKey);
37
+ if (activeKey) return activeKey;
38
+ const primaryKey = normalizeAgentId(dialogConfig.primaryAgentKey);
39
+ if (primaryKey) return primaryKey;
40
+ if (Array.isArray(dialogConfig.cybots) && dialogConfig.cybots.length > 0) {
41
+ const firstCybot = normalizeAgentId(dialogConfig.cybots[0]);
42
+ if (firstCybot) return firstCybot;
43
+ }
44
+ return defaultAgentId ?? null;
45
+ };
34
46
  var addDialogAgentIds = (existingAgentIds, nextAgentIds) => {
35
47
  const merged = [...existingAgentIds, ...nextAgentIds];
36
48
  return merged.filter((id, index) => merged.indexOf(id) === index);
@@ -44,6 +56,7 @@ var removeDialogAgentId = (existingAgentIds, agentIdToRemove) => existingAgentId
44
56
  export {
45
57
  getDialogAgentIds,
46
58
  getPrimaryDialogAgentId,
59
+ getActiveDialogAgentId,
47
60
  addDialogAgentIds,
48
61
  replacePrimaryDialogAgentId,
49
62
  removeDialogAgentId
@@ -1,7 +1,11 @@
1
+ import {
2
+ TOOL_PACKS,
3
+ buildCodeWorkDiscipline
4
+ } from "./chunk-CF7S2RYZ.js";
1
5
  import {
2
6
  buildSkillDocMarkdown,
3
7
  resolvePageSkillMetadata
4
- } from "./chunk-VC6OZXO5.js";
8
+ } from "./chunk-ZWJOGMKH.js";
5
9
  import {
6
10
  canonicalizeToolNames
7
11
  } from "./chunk-ZZ2MH7LE.js";
@@ -176,48 +180,17 @@ var CODING_SKILL_SEEDS = [
176
180
  ].join("\n"),
177
181
  triggerMode: "required",
178
182
  requiredSkillSlugs: ["coding-review"],
183
+ // 与「代码执行」能力包共用同一份本地代码工具清单,外加编排三件套
184
+ // (派 review 用)。以前这里是手抄的 15 个名字,和能力包各存一份。
179
185
  toolNames: [
180
- "readFile",
181
- "writeFile",
182
- "editFile",
183
- "applyEdit",
184
- "applyLineEdits",
185
- "codeSearch",
186
- "globFiles",
187
- "searchFiles",
188
- "listFiles",
189
- "execShell",
190
- "launchProcess",
191
- "listProcesses",
186
+ ...TOOL_PACKS.CODE,
192
187
  "startAgentRun",
193
188
  "controlAgentRun",
194
189
  "listAgents"
195
190
  ],
196
- promptPatch: [
197
- "# \u5199\u4EE3\u7801\u7EAA\u5F8B",
198
- "",
199
- "## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09",
200
- "- \u4E0D\u590D\u8FF0\u9700\u6C42\uFF0C\u4E0D\u89E3\u91CA\u300C\u6253\u7B97\u600E\u4E48\u505A\u300D\uFF0C\u76F4\u63A5\u52A8\u624B\u3002\u6539\u5B8C\u53EA\u7528\u4E00\u4E24\u53E5\u8BDD\u8BF4\u6E05\u300C\u6539\u4E86\u4EC0\u4E48\u3001\u53BB\u54EA\u770B\u300D\u3002",
201
- "- \u601D\u8003\u7B80\u77ED\uFF1A\u5B9A\u4F4D\u95EE\u9898\u5373\u53EF\uFF0C\u4E0D\u505A\u957F\u7BC7\u63A8\u6F14\u3002",
202
- "- \u5C0F\u6539\u52A8\u8D70\u6700\u77ED\u8DEF\u5F84\uFF1AsearchFiles/globFiles \u5B9A\u4F4D \u2192 readFile \u786E\u8BA4 \u2192 editFile \u7CBE\u786E\u66FF\u6362\u3002\u80FD\u4E00\u6B21\u547D\u4E2D\u5C31\u4E0D\u8981\u53CD\u590D\u8BFB\u6587\u4EF6\u3002",
203
- "- \u5DF2\u7ECF\u77E5\u9053\u6587\u4EF6\u548C\u4F4D\u7F6E\u65F6\uFF0C\u8DF3\u8FC7\u591A\u4F59\u7684 search/read\uFF0C\u76F4\u63A5 edit\u3002",
204
- "- \u7981\u6B62\u4E3A\u4E00\u4E2A\u5C0F\u6539\u52A8\u6574\u9875\u91CD\u5199\u6216\u8FDE\u5E26\u6539\u52A8\u672A\u547D\u4E2D\u7684\u90E8\u5206\u3002",
205
- "",
206
- "## \u4EE3\u7801\u4FEE\u6539\u7EAA\u5F8B",
207
- "- \u7F16\u8F91\u524D\u5148 readFile \u786E\u8BA4\u5F53\u524D\u5185\u5BB9\uFF0C\u907F\u514D stale hash \u9519\u8BEF\u3002",
208
- "- \u53EA\u78B0\u4EFB\u52A1\u4E66\u5217\u51FA\u7684\u6587\u4EF6\uFF1B\u6539\u5B8C\u7528 `git status --short` \u81EA\u67E5\uFF0C\u82E5\u6539\u5230\u6E05\u5355\u5916\u6587\u4EF6\uFF0C\u5982\u5B9E\u62A5\u544A\u3002",
209
- "- \u4E0D\u8981 `git add` / `git commit` / `git push` / `git stash` / `git reset` / `git checkout` / `git clean`\u2014\u2014\u6539\u52A8\u7559\u5728\u5DE5\u4F5C\u533A\uFF0C\u63D0\u4EA4\u7531\u8C03\u7528\u65B9\u9A8C\u6536\u540E\u5904\u7406\u3002",
210
- "- \u53EA\u8DD1\u4EFB\u52A1\u91CC\u5217\u51FA\u7684\u6D4B\u8BD5\u6587\u4EF6\uFF0C\u4E0D\u8981\u8DD1 broader \u6D4B\u8BD5\u3002",
211
- "",
212
- "## Review \u7EAA\u5F8B\uFF08commit \u524D\u786C\u95E8\uFF09",
213
- "- \u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\uFF08\u9519\u522B\u5B57/\u683C\u5F0F/CSS \u5FAE\u8C03\uFF09\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review \u5DE5\u4F5C\u533A diff\uFF08`git diff`\uFF0C\u672A\u63D0\u4EA4\u7684\u6539\u52A8\uFF09\u3002reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002",
214
- "- \u6D3E\u53D1\u8D70 `startAgentRun(agentKey, task, { ephemeral: true })`\uFF08web/\u684C\u9762\u7AEF\u6CA1\u6709 nolo CLI\uFF0C\u6240\u6709 host \u90FD\u6709\u8FD9\u4E2A\u5DE5\u5177\uFF09\u3002ephemeral \u8BA9 review \u5B8C\u6210\u540E\u4E0D\u7559 dialog \u8BB0\u5F55\u3002",
215
- "- task \u91CC\u5FC5\u987B\u5199\u660E\u5BA1\u67E5\u5BF9\u8C61\uFF08`git diff` \u770B\u5DE5\u4F5C\u533A\u6539\u52A8\uFF0C\u6216 `git diff alpha...HEAD` \u770B\u5DF2\u63D0\u4EA4\u6539\u52A8\uFF09\uFF0C\u5426\u5219 reviewer \u4E0D\u77E5\u9053\u5BA1\u4EC0\u4E48\u3002",
216
- '- \u6309\u89D2\u8272\u52A0\u8F7D\u5BF9\u5E94 skill\uFF1Areviewer \u5148 `loadSkill("coding-review")` \u62FF\u901A\u7528\u6D41\u7A0B\uFF0C\u518D\u6309\u89D2\u8272 `loadSkill("coding-review-<role>")` \u62FF\u68C0\u67E5\u9879\u3002\u89D2\u8272\u6E05\u5355\uFF1Acode-quality\uFF08**\u5FC5\u8DD1**\uFF09/ architecture\uFF08**\u5355\u72EC\u6D3E\u53D1**\uFF0C\u4E2D\u7EA7\u4EE5\u4E0A\u95EE\u9898\uFF09/ security\uFF08\u6309\u9700 + \u5B89\u5168\u654F\u611F\u89E6\u53D1\u5FC5\u8DD1\uFF09/ frontend-ux\uFF08\u6D89\u53CA UI \u65F6\uFF09/ backend-data\uFF08\u6D89\u53CA server \u65F6\uFF09\u3002\u89D2\u8272\u5207\u5272\u7684\u76EE\u7684\u662F\u6CE8\u610F\u529B\u9694\u79BB\u2014\u2014\u6BCF\u4E2A\u89D2\u8272\u53EA\u76EF\u81EA\u5DF1\u7684\u68C0\u67E5\u9762\uFF0C\u6309\u9700\u542F\u7528\uFF0C\u907F\u514D\u4E00\u4E2A reviewer \u80CC\u6240\u6709\u89D2\u8272\u5BFC\u81F4\u6CE8\u610F\u529B\u7A00\u91CA\u3002',
217
- "- Verdict \u6807\u51C6\uFF1AAPPROVE\uFF08\u65E0 CRITICAL \u6216 HIGH\uFF09\u2192 \u53EF commit\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u2192 \u62A5\u544A owner \u51B3\u5B9A\uFF1BBLOCK\uFF08\u6709 CRITICAL\uFF09\u2192 \u5FC5\u987B\u5148\u4FEE\u3002",
218
- "- review \u53EF\u80FD\u591A\u8F6E\u6536\u655B\uFF08\u6709 finding\u2192\u4FEE\u2192\u518D\u5BA1\u2192\u76F4\u5230 APPROVE\uFF09\u3002\u6BCF\u8F6E review \u662F\u65E0\u4E0A\u4E0B\u6587\u7684\u2014\u2014reviewer \u53EA\u770B\u5F53\u524D\u5DE5\u4F5C\u533A diff\uFF0C\u4E0D\u5E26\u4E0A\u4E00\u8F6E finding \u8BB0\u5FC6\u3002",
219
- "- \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C\u5141\u8BB8\u5E26\u539F\u56E0\u8DF3\u8FC7\uFF08commit message \u6CE8\u660E [no-review: \u539F\u56E0]\uFF09\uFF0C\u4F46\u9ED8\u8BA4\u5FC5\u987B\u6D3E review\u3002"
220
- ].join("\n")
191
+ // 与「代码执行」能力包共用同一份纪律正文(唯一真相源)。
192
+ // 两份曾逐字抄写并已漂移——能力包那版多了两句理由,这里以合并后的为准。
193
+ promptPatch: buildCodeWorkDiscipline("\u5199\u4EE3\u7801\u7EAA\u5F8B")
221
194
  },
222
195
  {
223
196
  slug: "coding-review",
@@ -612,38 +585,6 @@ async function resolveCodingEffectiveTools(userId) {
612
585
  });
613
586
  return resolved.requiredTools;
614
587
  }
615
- function ensureCodingSkills(userId) {
616
- return async (dispatch) => {
617
- const { readAndWait, write } = await import("./dbSlice-CGSRFJN3.js");
618
- const { DataType } = await import("./types-ZSTJ7MPR.js");
619
- const now = Date.now();
620
- const pages = buildCodingSkillPageRecords(userId);
621
- for (const page of pages) {
622
- try {
623
- const existing = await dispatch(readAndWait(page.dbKey)).unwrap().catch(() => null);
624
- if (!existing) {
625
- await dispatch(
626
- write({
627
- data: {
628
- id: page.skillId,
629
- dbKey: page.dbKey,
630
- type: DataType.DOC,
631
- userId,
632
- title: page.title,
633
- content: page.content,
634
- created: new Date(now).toISOString(),
635
- createdAt: now,
636
- updatedAt: String(now)
637
- },
638
- customKey: page.dbKey
639
- })
640
- ).unwrap();
641
- }
642
- } catch {
643
- }
644
- }
645
- };
646
- }
647
588
 
648
589
  export {
649
590
  extractRuntimePageCapabilities,
@@ -666,6 +607,5 @@ export {
666
607
  CODING_ROOT_SKILL_REFERENCE,
667
608
  resolveCodingBuiltinSlug,
668
609
  buildCodingSkillContentByKey,
669
- resolveCodingEffectiveTools,
670
- ensureCodingSkills
610
+ resolveCodingEffectiveTools
671
611
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  requireTokenUser
3
- } from "./chunk-L4F3I4SR.js";
3
+ } from "./chunk-5HQQ4LUU.js";
4
4
  import {
5
5
  resolveServerUrl
6
6
  } from "./chunk-A7GB5UGH.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-DFCFMCY6.js";
5
+ } from "./chunk-JBLY6HQP.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -18,6 +18,9 @@ import {
18
18
  import {
19
19
  shouldReplaceWithNextRecord
20
20
  } from "./chunk-GBRG75BQ.js";
21
+ import {
22
+ publicAgentKey
23
+ } from "./chunk-SLOGKB7M.js";
21
24
  import {
22
25
  NOLO_CLUSTER_SERVERS,
23
26
  normalizeKnownServerOrigin
@@ -26,30 +29,182 @@ import {
26
29
  normalizeServerOrigin
27
30
  } from "./chunk-CF7PE763.js";
28
31
 
29
- // packages/core/builtinAgents.ts
30
- var BUILTIN_NOLO_AGENT_KEY = "agent-pub-01NOLOAPPBLD000000019KCKT0";
31
- var BUILTIN_APP_BUILDER_AGENT_KEY = "agent-pub-01APPBUILDER00000001YAII3I";
32
- var BUILTIN_ECOMMERCE_AGENT_KEY = "agent-pub-01ECOMMERCEAG00000001PYQ2J";
33
- var BUILTIN_AGENT_CREATOR_AGENT_KEY = "agent-pub-01NOLOAGENTCRT000000000001";
34
- var BUILTIN_FEEDBACK_AGENT_KEY = "agent-pub-01NOLOFEEDBACKA000000000R2";
35
- var BUILTIN_CHROME_OPERATOR_AGENT_KEY = "agent-pub-01CHROMEOPR000000000001";
36
- var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID = "01DSV4FLASHPB00000000JFPFD";
37
- var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY = `agent-pub-${PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID}`;
38
- var PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID = "01DSV4PROPUB00000001A9OLZN";
39
- var PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY = `agent-pub-${PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID}`;
40
- var PUBLIC_GLM_52_AGENT_ID = "01GLM52DIPB00000000I3E2MY";
41
- var PUBLIC_GLM_52_AGENT_KEY = `agent-pub-${PUBLIC_GLM_52_AGENT_ID}`;
42
- var PUBLIC_KIMI_K26_IMAGE_AGENT_ID = "01KIMIK26OLLAMA0000000001";
43
- var PUBLIC_KIMI_K26_IMAGE_AGENT_KEY = `agent-pub-${PUBLIC_KIMI_K26_IMAGE_AGENT_ID}`;
44
- var BUILTIN_PLATFORM_AGENT_KEYS = [
45
- BUILTIN_NOLO_AGENT_KEY,
46
- BUILTIN_APP_BUILDER_AGENT_KEY,
47
- BUILTIN_ECOMMERCE_AGENT_KEY,
48
- BUILTIN_AGENT_CREATOR_AGENT_KEY,
49
- BUILTIN_FEEDBACK_AGENT_KEY,
50
- BUILTIN_CHROME_OPERATOR_AGENT_KEY
32
+ // packages/core/builtinAgentCatalog.ts
33
+ var BUILTIN_AGENT_CATALOG = [
34
+ // ── 平台内置 6 个(builtinAgents BUILTIN_*)──
35
+ {
36
+ id: "01NOLOAPPBLD000000019KCKT0",
37
+ group: "builtin",
38
+ name: "nolo",
39
+ provider: "nolo",
40
+ model: "deepseek-v4-flash",
41
+ runtimeFallback: true
42
+ },
43
+ {
44
+ id: "01APPBUILDER00000001YAII3I",
45
+ group: "builtin",
46
+ name: "\u5E94\u7528\u6784\u5EFA\u52A9\u624B",
47
+ provider: "nolo",
48
+ model: "deepseek-v4-flash"
49
+ },
50
+ {
51
+ id: "01ECOMMERCEAG00000001PYQ2J",
52
+ group: "builtin",
53
+ name: "\u7535\u5546\u5546\u54C1\u53C2\u6570\u52A9\u624B",
54
+ provider: "openai",
55
+ model: "gpt-5.6-luna"
56
+ },
57
+ {
58
+ id: "01NOLOAGENTCRT000000000001",
59
+ group: "builtin",
60
+ name: "AI \u521B\u5EFA\u52A9\u624B",
61
+ provider: "nolo",
62
+ model: "deepseek-v4-flash"
63
+ },
64
+ {
65
+ id: "01NOLOFEEDBACKA000000000R2",
66
+ group: "builtin",
67
+ name: "\u53CD\u9988\u5165\u53E3",
68
+ provider: "nolo",
69
+ model: "deepseek-v4-flash"
70
+ },
71
+ {
72
+ id: "01CHROMEOPR000000000001",
73
+ group: "builtin",
74
+ name: "Chrome \u64CD\u4F5C\u5458",
75
+ provider: "nolo",
76
+ model: "deepseek-v4-flash"
77
+ },
78
+ // ── quick-chat 档位 / 图片档 public(runtimeFallback)──
79
+ {
80
+ id: "01DSV4FLASHPB00000000JFPFD",
81
+ group: "public",
82
+ name: "DeepSeek V4 Flash",
83
+ provider: "nolo",
84
+ model: "deepseek-v4-flash",
85
+ runtimeFallback: true
86
+ },
87
+ {
88
+ id: "01DSV4PRONPB00000001VIR3EK",
89
+ group: "public",
90
+ name: "DeepSeek V4 Pro",
91
+ provider: "nolo",
92
+ model: "deepseek-v4-pro",
93
+ runtimeFallback: true
94
+ },
95
+ {
96
+ id: "01KIMIK26OLLAMA0000000001",
97
+ group: "public",
98
+ name: "Kimi K2.6",
99
+ provider: "nolo",
100
+ model: "kimi-k2.6",
101
+ runtimeFallback: true
102
+ },
103
+ {
104
+ id: "01GPTIMG2GEN00000000SSEBOS",
105
+ group: "public",
106
+ name: "GPT Image 2 \u56FE\u7247\u751F\u6210\u5668",
107
+ provider: "openai",
108
+ model: "gpt-5.6-luna",
109
+ runtimeFallback: true,
110
+ hasImageOutput: true,
111
+ imageModel: "gpt-image-2",
112
+ imageWorkflow: "generate",
113
+ imageConfig: { enabled: true }
114
+ },
115
+ {
116
+ id: "01GPTIMG2EDT00000001R4R4H4",
117
+ group: "public",
118
+ name: "GPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668",
119
+ provider: "openai",
120
+ model: "gpt-5.6-luna",
121
+ runtimeFallback: true,
122
+ hasImageOutput: true,
123
+ imageModel: "gpt-image-2",
124
+ imageWorkflow: "edit",
125
+ imageConfig: { enabled: true }
126
+ },
127
+ {
128
+ id: "01GPTIMG2CNT00000000USKZFO",
129
+ group: "public",
130
+ name: "GPT Image 2 \u8FDE\u7EED\u521B\u4F5C\u52A9\u624B",
131
+ provider: "openai",
132
+ model: "gpt-5.6-luna",
133
+ runtimeFallback: true,
134
+ hasImageOutput: true,
135
+ imageModel: "gpt-image-2",
136
+ imageWorkflow: "continuous",
137
+ imageConfig: { enabled: true }
138
+ },
139
+ {
140
+ id: "01NB2LITEGEN00000001XE1MNO",
141
+ group: "public",
142
+ name: "Nano Banana 2 Lite \u6587\u751F\u56FE",
143
+ provider: "google",
144
+ model: "gemini-3.1-flash-lite-image",
145
+ runtimeFallback: true,
146
+ hasImageOutput: true
147
+ }
51
148
  ];
149
+ var CATALOG_BY_ID = new Map(BUILTIN_AGENT_CATALOG.map((e) => [e.id, e]));
150
+ function builtinAgentCatalogEntryById(id) {
151
+ if (!id) return void 0;
152
+ return CATALOG_BY_ID.get(id);
153
+ }
154
+ function builtinRuntimeFallbackEntries() {
155
+ return BUILTIN_AGENT_CATALOG.filter((e) => e.runtimeFallback === true);
156
+ }
157
+ function builtinPlatformEntries() {
158
+ return BUILTIN_AGENT_CATALOG.filter((e) => e.group === "builtin");
159
+ }
160
+
161
+ // packages/core/builtinAgents.ts
162
+ var entry = (id) => {
163
+ const e = builtinAgentCatalogEntryById(id);
164
+ if (!e) throw new Error(`missing builtin agent catalog entry: ${id}`);
165
+ return e;
166
+ };
167
+ var BUILTIN_NOLO_AGENT_ID = entry("01NOLOAPPBLD000000019KCKT0").id;
168
+ var BUILTIN_NOLO_AGENT_KEY = publicAgentKey(BUILTIN_NOLO_AGENT_ID);
169
+ var BUILTIN_APP_BUILDER_AGENT_ID = entry("01APPBUILDER00000001YAII3I").id;
170
+ var BUILTIN_APP_BUILDER_AGENT_KEY = publicAgentKey(BUILTIN_APP_BUILDER_AGENT_ID);
171
+ var BUILTIN_ECOMMERCE_AGENT_ID = entry("01ECOMMERCEAG00000001PYQ2J").id;
172
+ var BUILTIN_ECOMMERCE_AGENT_KEY = publicAgentKey(BUILTIN_ECOMMERCE_AGENT_ID);
173
+ var BUILTIN_AGENT_CREATOR_AGENT_ID = entry("01NOLOAGENTCRT000000000001").id;
174
+ var BUILTIN_AGENT_CREATOR_AGENT_KEY = publicAgentKey(BUILTIN_AGENT_CREATOR_AGENT_ID);
175
+ var BUILTIN_FEEDBACK_AGENT_ID = entry("01NOLOFEEDBACKA000000000R2").id;
176
+ var BUILTIN_FEEDBACK_AGENT_KEY = publicAgentKey(BUILTIN_FEEDBACK_AGENT_ID);
177
+ var BUILTIN_CHROME_OPERATOR_AGENT_ID = entry("01CHROMEOPR000000000001").id;
178
+ var BUILTIN_CHROME_OPERATOR_AGENT_KEY = publicAgentKey(BUILTIN_CHROME_OPERATOR_AGENT_ID);
179
+ var BUILTIN_PLATFORM_AGENT_KEYS = builtinPlatformEntries().map(
180
+ (e) => publicAgentKey(e.id)
181
+ );
52
182
  var BUILTIN_PLATFORM_AGENT_KEY_SET = new Set(BUILTIN_PLATFORM_AGENT_KEYS);
183
+ var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID = entry("01DSV4FLASHPB00000000JFPFD").id;
184
+ var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY = publicAgentKey(PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID);
185
+ var PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID = entry("01DSV4PRONPB00000001VIR3EK").id;
186
+ var PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY = publicAgentKey(PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID);
187
+ var PUBLIC_KIMI_K26_IMAGE_AGENT_ID = entry("01KIMIK26OLLAMA0000000001").id;
188
+ var PUBLIC_KIMI_K26_IMAGE_AGENT_KEY = publicAgentKey(PUBLIC_KIMI_K26_IMAGE_AGENT_ID);
189
+ var PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID = entry("01GPTIMG2GEN00000000SSEBOS").id;
190
+ var PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID);
191
+ var PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID = entry("01GPTIMG2EDT00000001R4R4H4").id;
192
+ var PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID);
193
+ var PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID = entry("01GPTIMG2CNT00000000USKZFO").id;
194
+ var PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_KEY = publicAgentKey(PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID);
195
+ var PUBLIC_NANO_BANANA_2_LITE_AGENT_ID = entry("01NB2LITEGEN00000001XE1MNO").id;
196
+ var PUBLIC_NANO_BANANA_2_LITE_AGENT_KEY = publicAgentKey(PUBLIC_NANO_BANANA_2_LITE_AGENT_ID);
197
+ var DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS = [
198
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY
199
+ ];
200
+ var SYSTEM_BUILTIN_TRUSTED_AGENT_KEYS = [
201
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
202
+ PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY
203
+ ];
204
+ var SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET = new Set(
205
+ SYSTEM_BUILTIN_TRUSTED_AGENT_KEYS
206
+ );
207
+ var isSystemBuiltinTrustedAgentKey = (key) => typeof key === "string" && SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET.has(key);
53
208
 
54
209
  // packages/database/actions/agentReadResolution.ts
55
210
  var BUILTIN_PLATFORM_AGENT_KEYS2 = [
@@ -465,11 +620,12 @@ var readAction = async (payload, thunkApi) => {
465
620
 
466
621
  export {
467
622
  readRequestManager,
623
+ builtinRuntimeFallbackEntries,
468
624
  BUILTIN_NOLO_AGENT_KEY,
469
625
  PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
470
- PUBLIC_DEEPSEEK_V4_PRO_AGENT_KEY,
471
- PUBLIC_GLM_52_AGENT_KEY,
472
626
  PUBLIC_KIMI_K26_IMAGE_AGENT_KEY,
627
+ DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS,
628
+ isSystemBuiltinTrustedAgentKey,
473
629
  resolveAgentReadServers,
474
630
  readAction
475
631
  };