nolo-cli 0.211.0 → 0.213.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 (173) hide show
  1. package/{_executeModel-VVQEOY3D.js → _executeModel-CUJLCFWR.js} +57 -54
  2. package/{action-U235TV4P.js → action-DF5UYSJF.js} +4 -4
  3. package/{addContentAction-7C76J7ST.js → addContentAction-WERAONNY.js} +9 -9
  4. package/{addDialogAgentAction-KTYANUEC.js → addDialogAgentAction-7VI7YRML.js} +16 -13
  5. package/{agentDeleteCommand-WHRU6VDJ.js → agentDeleteCommand-XJORXPGU.js} +80 -76
  6. package/{agentEmailCommands-ALLHXPW3.js → agentEmailCommands-XTYYFR6Z.js} +85 -80
  7. package/{agentListCommands-POKMEKMS.js → agentListCommands-OBLRBLHS.js} +237 -115
  8. package/{agentMachineCommands-WJLZLBPI.js → agentMachineCommands-5FMT3OT5.js} +33 -31
  9. package/{agentProviderCommands-MN3ABDME.js → agentProviderCommands-Q5O33MED.js} +33 -4
  10. package/{agentRecordCommands-OULZW3KM.js → agentRecordCommands-ZQ7SVYGG.js} +75 -70
  11. package/{agentRunCommand-ZNG4LGNQ.js → agentRunCommand-WS7IGO2W.js} +77 -73
  12. package/{agentRunControl-AF7BMR22.js → agentRunControl-TAMHJQSR.js} +8 -7
  13. package/{agentRuntimeLocal-YMUHFV5M.js → agentRuntimeLocal-SOO2OPJG.js} +30 -27
  14. package/{agentSlice-WNGUIMQZ.js → agentSlice-CHR6KOZN.js} +13 -13
  15. package/{appDeleteCommands-6MXPLAVF.js → appDeleteCommands-GUP6P5YE.js} +34 -32
  16. package/{appDeployCommands-ERRSVASW.js → appDeployCommands-MH2FX4O5.js} +34 -32
  17. package/{appDeployStatusCommands-ULICISLI.js → appDeployStatusCommands-SUHN3HPJ.js} +34 -32
  18. package/{appGetCommands-WYYYWROF.js → appGetCommands-YWDEX6Z4.js} +34 -32
  19. package/{appListCommands-DFCUCRCV.js → appListCommands-ZQVMLPAY.js} +34 -32
  20. package/{authCommand-ZJMWXFMA.js → authCommand-PWX2ZNUP.js} +15 -15
  21. package/{authCommands-WK6E42L2.js → authCommands-HV3EAU3V.js} +2 -2
  22. package/{builtinSkillRegistry-HH75G5J3.js → builtinSkillRegistry-2QETTQPM.js} +5 -4
  23. package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-DIVM2K3T.js} +1 -1
  24. package/{chunk-TRZP7JZ7.js → chunk-2QHFH3DR.js} +1 -0
  25. package/{chunk-XE4Q46FF.js → chunk-3CGG2PAL.js} +1 -1
  26. package/{chunk-YUXQAVRD.js → chunk-3UKL3HPD.js} +251 -14
  27. package/{chunk-BSISWVB4.js → chunk-4I7ERB7F.js} +1 -1
  28. package/{chunk-5ORJGHTL.js → chunk-4T2WNOY7.js} +6 -6
  29. package/{chunk-W5VC7F7V.js → chunk-5MQRBSMW.js} +84 -91
  30. package/{chunk-YLTLB5A7.js → chunk-6DWMYIUY.js} +7 -6
  31. package/chunk-6VLJ6YA7.js +11751 -0
  32. package/{chunk-KSTEXKL6.js → chunk-75XIDFBW.js} +4 -3
  33. package/{chunk-BTYQAODF.js → chunk-7BT37FK3.js} +196 -308
  34. package/{chunk-27E2CBBY.js → chunk-7OCO4TDT.js} +1 -1
  35. package/{chunk-V3M6IXQI.js → chunk-7QTZCMKL.js} +335 -131
  36. package/chunk-7RFNTILS.js +2213 -0
  37. package/{chunk-NHQKWPLP.js → chunk-7Y4YTDQF.js} +25 -23
  38. package/{chunk-CKAHAVMK.js → chunk-A7TFUNZO.js} +35 -25
  39. package/{chunk-PJNFNEJE.js → chunk-ALQ3657A.js} +28 -2
  40. package/{chunk-NV572QM3.js → chunk-BBJ22CLB.js} +15 -15
  41. package/chunk-CJEIOP3E.js +0 -0
  42. package/{chunk-4WCEC56C.js → chunk-COFEN36Z.js} +2 -2
  43. package/{chunk-25OB36GU.js → chunk-CRHOO2ZR.js} +4 -4
  44. package/{chunk-NTSRCTUX.js → chunk-CTPXME7U.js} +2 -2
  45. package/{chunk-TPCDYNJK.js → chunk-EHGEOAHI.js} +3 -3
  46. package/{chunk-Y2WUYX4I.js → chunk-EHSZD5OI.js} +1 -1
  47. package/{chunk-SU3QL7YG.js → chunk-FUGMREBO.js} +2 -2
  48. package/{chunk-UMEGDH6A.js → chunk-FW6YHHLI.js} +8 -8
  49. package/chunk-FY7F4Q6X.js +127 -0
  50. package/{chunk-25M2K6OA.js → chunk-G2BQWAVT.js} +3 -3
  51. package/chunk-G7MLNNEX.js +84 -0
  52. package/{chunk-DQLB4NQ3.js → chunk-GPVRUGGY.js} +2 -2
  53. package/{chunk-RQ22OZD7.js → chunk-H2TJUNCH.js} +1 -1
  54. package/{chunk-XPHZK3PJ.js → chunk-H4UOTUOX.js} +165 -51
  55. package/{chunk-CVCRAO6Q.js → chunk-H5HF7TJA.js} +9 -7
  56. package/{chunk-OP7PTBAJ.js → chunk-H7PPIYWP.js} +9 -9
  57. package/{chunk-QQM464AL.js → chunk-HPFCI4SK.js} +3 -3
  58. package/chunk-HRMJUN5J.js +26 -0
  59. package/{chunk-WI6OGHXJ.js → chunk-HSVBJRF4.js} +5 -5
  60. package/{chunk-RYWO5AKN.js → chunk-HUBHAQK2.js} +10 -10
  61. package/{chunk-LKDF3ATR.js → chunk-INUFILG6.js} +1 -1
  62. package/{chunk-NXCGNS4N.js → chunk-IXNGOHV5.js} +2 -2
  63. package/{chunk-ET2CWLIJ.js → chunk-J2NHJ7WX.js} +4 -4
  64. package/{chunk-ECX3NKRD.js → chunk-JY5NGFFH.js} +11 -0
  65. package/chunk-KC4XDTT3.js +227 -0
  66. package/{chunk-ADBWFYJD.js → chunk-KFLT5KAD.js} +9 -9
  67. package/{chunk-PLYWH7XM.js → chunk-KIM6CLW5.js} +7 -7
  68. package/{chunk-7IYBN7IA.js → chunk-LLRPJECG.js} +22 -13
  69. package/{chunk-3J3U3KXB.js → chunk-MDB67IWP.js} +5 -5
  70. package/chunk-MMA3LZ3W.js +105 -0
  71. package/{chunk-XDMGY5IU.js → chunk-MOIJOHA5.js} +227 -11
  72. package/{chunk-NLT32XBZ.js → chunk-NJLL224W.js} +2 -2
  73. package/{chunk-JBOUVTZX.js → chunk-NOKUNJON.js} +15 -4
  74. package/{chunk-C2XZM3K4.js → chunk-NSAPDIN2.js} +12 -27
  75. package/{chunk-PAFTGNWA.js → chunk-O2TZF4AI.js} +2 -2
  76. package/{chunk-UIOEHFF6.js → chunk-OQHIVPG4.js} +1 -0
  77. package/{chunk-TCTSYFDM.js → chunk-OQPKUBPB.js} +19 -6
  78. package/{chunk-X4F26D5K.js → chunk-P5L7CXOC.js} +58 -33
  79. package/{chunk-OXME3PEE.js → chunk-PCLE46CE.js} +1 -1
  80. package/{chunk-UCPAVEQB.js → chunk-PYRUW7XN.js} +1 -1
  81. package/{chunk-YXOBCDNW.js → chunk-QG4AOSON.js} +12 -49
  82. package/{chunk-RXCCWVA2.js → chunk-QHPRUL4O.js} +3 -3
  83. package/{chunk-I5PBXF7O.js → chunk-R5O4QAWG.js} +1 -1
  84. package/{chunk-HD3WR3TD.js → chunk-RLBNLZVC.js} +1 -1
  85. package/{chunk-SN5XE6GQ.js → chunk-RPQXPZZF.js} +4 -4
  86. package/{chunk-ZOO3WJIE.js → chunk-RSHTSUEG.js} +948 -108
  87. package/{chunk-6HVBI6TI.js → chunk-RZOV7OMV.js} +12 -229
  88. package/{chunk-D2MDMY2M.js → chunk-SVYO6AO7.js} +7 -1
  89. package/{chunk-IIHY4ZAI.js → chunk-TAKB25RM.js} +8 -4
  90. package/{chunk-ZN5AH4BY.js → chunk-TX5EYMGT.js} +6 -6
  91. package/{chunk-CKOO42G5.js → chunk-UHJGXRJ4.js} +4 -4
  92. package/{chunk-M4NTDZG3.js → chunk-UYD5HQ6T.js} +857 -295
  93. package/{chunk-WTKYP6QO.js → chunk-V5Y3R6BT.js} +114 -6
  94. package/{chunk-3RQVYR4B.js → chunk-VNYYOX3V.js} +59 -20
  95. package/{chunk-4LEGTOSR.js → chunk-VO4WSAVP.js} +3 -3
  96. package/{chunk-LNYHAKBP.js → chunk-W4S457LU.js} +1 -1
  97. package/{chunk-RIALQUSF.js → chunk-WMTBPBMP.js} +6 -6
  98. package/chunk-WPORQFYN.js +74 -0
  99. package/{chunk-Y6M7KJOA.js → chunk-WRYQ35LQ.js} +5 -5
  100. package/{chunk-YKFP6UGT.js → chunk-WYDI6TGM.js} +17 -17
  101. package/{chunk-SCYQJPGA.js → chunk-X7SDOJUM.js} +147 -20
  102. package/chunk-XFYFMTOM.js +92 -0
  103. package/{chunk-LT3EAHJY.js → chunk-XHQC4PXX.js} +65 -49
  104. package/{chunk-2WZXXAQD.js → chunk-YB3YZK56.js} +67 -1
  105. package/{chunk-JKW6LERJ.js → chunk-YJAFKXMU.js} +14 -14
  106. package/{chunk-GSQNH63I.js → chunk-YTF4WH7J.js} +3 -19
  107. package/{chunk-DA7CTWT4.js → chunk-YWSEPJ7C.js} +5 -5
  108. package/{chunk-3V2QMRNN.js → chunk-ZL5RAEEB.js} +3 -3
  109. package/{chunk-NEZGPBL7.js → chunk-ZNWI6OVT.js} +2 -2
  110. package/{chunk-MBS6CTZB.js → chunk-ZXOUUDCG.js} +266 -2014
  111. package/cliAgentConfigHelpers-WJBZQTLW.js +41 -0
  112. package/{commandRegistry-FI2IOQ3U.js → commandRegistry-W63CYRZJ.js} +91 -87
  113. package/{contentThunks-5LKNNDGY.js → contentThunks-U7PL5MQD.js} +27 -26
  114. package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-TIGUHXTD.js} +3 -3
  115. package/{createAgentAutomationAction-TI4QG4CY.js → createAgentAutomationAction-OLBQDD6R.js} +27 -26
  116. package/{createDialogAction-TJ3JKLO4.js → createDialogAction-SVH6B3SB.js} +29 -28
  117. package/{createPageAction-GKXT6WEH.js → createPageAction-F4DIWZ2Z.js} +29 -28
  118. package/{dbSlice-LPMZ2DGJ.js → dbSlice-BVH2YZPQ.js} +8 -8
  119. package/{deleteFile-EPUQHKPA.js → deleteFile-5YOEKV4U.js} +4 -4
  120. package/{dialogCommands-IWPXIZ5P.js → dialogCommands-KHIEPY3M.js} +38 -36
  121. package/{dialogSlice-ZWNNS7GZ.js → dialogSlice-ZCTDV2PZ.js} +25 -24
  122. package/{dialogUsageCommand-ZCPPHPJ5.js → dialogUsageCommand-7KCPYGHG.js} +1 -1
  123. package/{docCreateCommands-HFSPKJSI.js → docCreateCommands-DPMZI7G5.js} +32 -30
  124. package/{docDeleteCommands-CRL62POH.js → docDeleteCommands-IRQQLUBT.js} +34 -33
  125. package/{docReadCommands-QOTOX3XW.js → docReadCommands-LK37XH6L.js} +32 -30
  126. package/{docStore-WYLRB7ED.js → docStore-V2KECILA.js} +11 -11
  127. package/{docUpdateCommands-7BMH4MCA.js → docUpdateCommands-O6T3HJHH.js} +32 -30
  128. package/{fetchMessages-YY4SATNR.js → fetchMessages-NR4KNQLO.js} +3 -3
  129. package/{getPricing-OQXBJ6VZ.js → getPricing-2MNMXEVG.js} +3 -3
  130. package/{handleSendMessageAction-P27YP2DQ.js → handleSendMessageAction-2PE25WM3.js} +49 -47
  131. package/hostCredentialCreate-S233UMAP.js +357 -0
  132. package/index.js +7 -7
  133. package/{keys-P4ZDOVJW.js → keys-BEGDOTRL.js} +3 -1
  134. package/{localDialogRead-5VCMQQZF.js → localDialogRead-7NNDVVF7.js} +1 -1
  135. package/{localRuntimeAdapter-GP6ZSSO3.js → localRuntimeAdapter-KY6WXNBR.js} +82 -75
  136. package/{machineCommands-6Z6H4BFX.js → machineCommands-Q6HA3IXF.js} +74 -69
  137. package/{machineWsRunDispatch-F2ZIXMYM.js → machineWsRunDispatch-WWJQ6WR3.js} +74 -69
  138. package/{memberThunks-YSEFJF47.js → memberThunks-7EDJADWU.js} +9 -9
  139. package/package.json +1 -1
  140. package/{projectArchive-PIGEOX3D.js → projectArchive-DRTDIMEV.js} +29 -28
  141. package/{providerPresetApply-ZYMLQA46.js → providerPresetApply-YXGV6NXB.js} +4 -4
  142. package/{providerRegistry-E34XWDLJ.js → providerRegistry-S6UL6UNA.js} +4 -4
  143. package/{read-DIIQBOOO.js → read-4V2RMG7N.js} +4 -4
  144. package/{readDocTool-HXYGOEA7.js → readDocTool-BH6ATGQO.js} +1 -1
  145. package/{readlineWorkspace-UG25G7KC.js → readlineWorkspace-2W4WRCOU.js} +437 -217
  146. package/{removeDialogAgentAction-ALJDUJ2E.js → removeDialogAgentAction-LYAZGNKW.js} +18 -15
  147. package/{runAgentClientLoop-IO5F7TCZ.js → runAgentClientLoop-J2VQBS2Z.js} +55 -52
  148. package/{runtimeDoctorCommands-PGAA47G5.js → runtimeDoctorCommands-QAI3MBKQ.js} +6 -6
  149. package/{secretCommands-ZCZ4KVET.js → secretCommands-LXDWOLZ6.js} +4 -4
  150. package/{setDialogExtraReferencesAction-O3SVMD5A.js → setDialogExtraReferencesAction-OCRPGPYH.js} +11 -11
  151. package/{setPrimaryDialogAgentAction-HE7RVFFF.js → setPrimaryDialogAgentAction-HFJDQIBU.js} +19 -16
  152. package/{settingThunks-BWWJQG4L.js → settingThunks-RAMHMTGM.js} +13 -12
  153. package/{spaceCommands-UAELIFEI.js → spaceCommands-KVJZVKVO.js} +32 -31
  154. package/{streamAgentChatTurn-VUKZQYJR.js → streamAgentChatTurn-GHBMJJ6S.js} +63 -60
  155. package/{switchDialogAgentAction-3VZS7SOS.js → switchDialogAgentAction-EBRMW3RA.js} +16 -13
  156. package/{tools-VRXJAVYI.js → tools-EWKCPKMS.js} +49 -46
  157. package/{tuiSummaryLlmCaller-TGCHZLSW.js → tuiSummaryLlmCaller-ALQYUUWB.js} +48 -19
  158. package/{updateCommands-Q6CYAEYJ.js → updateCommands-ZQYU6SCI.js} +5 -3
  159. package/{updateDialogTitleAction-MULWCJCW.js → updateDialogTitleAction-5GGMBTDF.js} +40 -72
  160. package/usageCommand-F4IPVMIZ.js +32 -0
  161. package/usageRebuildCommand-HAW2AD5N.js +626 -0
  162. package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-257DV2T6.js} +2 -2
  163. package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-4C42SVBD.js} +1 -0
  164. package/chunk-4LCOCOR5.js +0 -50
  165. package/chunk-7AUQ3WCW.js +0 -51
  166. package/chunk-ZRAU6T47.js +0 -56
  167. package/{agentFavoriteCommands-GAFEXKKP.js → agentFavoriteCommands-EDK743YA.js} +1 -1
  168. package/{agentGrantCommands-V5FOQKFD.js → agentGrantCommands-RQWK2TEV.js} +1 -1
  169. package/{agentPullCommand-2JMJP5BS.js → agentPullCommand-6EM3URVK.js} +1 -1
  170. package/{chunk-A2ZMIRLN.js → chunk-INN4LTAJ.js} +5 -5
  171. package/{chunk-PV6JJAUB.js → chunk-TCZHTTUU.js} +8 -8
  172. package/{chunk-AKE53VMW.js → chunk-ZCWRMUWT.js} +0 -0
  173. package/{tableCommands-D7WR4QSM.js → tableCommands-MP6VFSVT.js} +3 -3
@@ -2,7 +2,7 @@ import {
2
2
  deleteDialog,
3
3
  runtime_default,
4
4
  toast
5
- } from "./chunk-MBS6CTZB.js";
5
+ } from "./chunk-ZXOUUDCG.js";
6
6
  import {
7
7
  getCurrentSpaceId,
8
8
  getCurrentSpaceIdRaw,
@@ -13,14 +13,14 @@ import {
13
13
  addContentAction,
14
14
  checkSpaceMembership,
15
15
  localSpaceAuthorityPatchStamp
16
- } from "./chunk-DQLB4NQ3.js";
16
+ } from "./chunk-GPVRUGGY.js";
17
17
  import {
18
18
  createSpaceKey,
19
19
  normalizeSpaceId
20
20
  } from "./chunk-UAD2WT54.js";
21
21
  import {
22
- formatISO
23
- } from "./chunk-ZRAU6T47.js";
22
+ require_formatISO
23
+ } from "./chunk-WPORQFYN.js";
24
24
  import {
25
25
  require_react
26
26
  } from "./chunk-YDH3FDFQ.js";
@@ -32,7 +32,7 @@ import {
32
32
  uploadFileAction,
33
33
  upsertSSREntity,
34
34
  write
35
- } from "./chunk-UMEGDH6A.js";
35
+ } from "./chunk-FW6YHHLI.js";
36
36
  import {
37
37
  resolveFileCategory
38
38
  } from "./chunk-3PVYUPXK.js";
@@ -43,10 +43,10 @@ import {
43
43
  resolveReplicationServers,
44
44
  scheduleDeleteReplication,
45
45
  scheduleWriteReplication
46
- } from "./chunk-UCPAVEQB.js";
46
+ } from "./chunk-PYRUW7XN.js";
47
47
  import {
48
48
  createAsyncThunk
49
- } from "./chunk-X4F26D5K.js";
49
+ } from "./chunk-P5L7CXOC.js";
50
50
  import {
51
51
  getIsDesktopApp
52
52
  } from "./chunk-AGP3YSEC.js";
@@ -58,7 +58,7 @@ import {
58
58
  } from "./chunk-PXYBUFDB.js";
59
59
  import {
60
60
  buildTombstoneRecord
61
- } from "./chunk-D2MDMY2M.js";
61
+ } from "./chunk-SVYO6AO7.js";
62
62
  import {
63
63
  isSystemAdmin
64
64
  } from "./chunk-Y6ORVLSS.js";
@@ -83,7 +83,7 @@ import {
83
83
  metaKey,
84
84
  rowKey,
85
85
  splitKey
86
- } from "./chunk-ECX3NKRD.js";
86
+ } from "./chunk-JY5NGFFH.js";
87
87
  import {
88
88
  ulid
89
89
  } from "./chunk-XJWWBO34.js";
@@ -108,6 +108,7 @@ import {
108
108
 
109
109
  // packages/render/table/tableStore.ts
110
110
  var import_react = __toESM(require_react(), 1);
111
+ var import_formatISO2 = __toESM(require_formatISO(), 1);
111
112
  import { ulid as ulid3 } from "ulid";
112
113
 
113
114
  // packages/core/logger.ts
@@ -453,6 +454,7 @@ function addColumnOptionInMeta(meta, input, deps) {
453
454
  }
454
455
 
455
456
  // packages/render/table/createTableAction.ts
457
+ var import_formatISO = __toESM(require_formatISO(), 1);
456
458
  import { ulid as ulid2 } from "ulid";
457
459
 
458
460
  // packages/create/space/resolveCreationSpaceId.ts
@@ -562,7 +564,7 @@ var createTableAction = async ({
562
564
  const spaceId = resolveCreationSpaceId(customSpaceId, getCurrentSpaceId());
563
565
  const tableId = ulid2();
564
566
  const now = /* @__PURE__ */ new Date();
565
- const nowIso = formatISO(now);
567
+ const nowIso = (0, import_formatISO.default)(now);
566
568
  const dbKey = metaKey(userId, tableId);
567
569
  const defaultTitle = runtime_default.t("space:newTable", {
568
570
  defaultValue: "\u65B0\u5EFA\u8868\u683C"
@@ -969,7 +971,7 @@ var addRow = createTableCommand(
969
971
  });
970
972
  try {
971
973
  const { dbKey, rowId } = rowKey.create(tenantId, tableId);
972
- const nowIso = formatISO(/* @__PURE__ */ new Date());
974
+ const nowIso = (0, import_formatISO2.default)(/* @__PURE__ */ new Date());
973
975
  const row = {
974
976
  dbKey,
975
977
  tenantId,
@@ -1030,7 +1032,7 @@ var deleteRow = createTableCommand(
1030
1032
  if (!row) {
1031
1033
  throw new Error(`\u5F53\u524D\u8868\u4E2D\u627E\u4E0D\u5230\u8981\u5220\u9664\u7684\u884C\uFF1A${dbKey}`);
1032
1034
  }
1033
- const nowIso = formatISO(/* @__PURE__ */ new Date());
1035
+ const nowIso = (0, import_formatISO2.default)(/* @__PURE__ */ new Date());
1034
1036
  const tombstoneRow = {
1035
1037
  ...row,
1036
1038
  deletedAt: nowIso,
@@ -1108,7 +1110,7 @@ var addColumn = createTableCommand(
1108
1110
  const result = addColumnToMeta(
1109
1111
  meta,
1110
1112
  { columnName },
1111
- { id: ulid3(), nowIso: formatISO(/* @__PURE__ */ new Date()) }
1113
+ { id: ulid3(), nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1112
1114
  );
1113
1115
  if (!result.ok) {
1114
1116
  throw new Error(result.error);
@@ -1149,7 +1151,7 @@ var deleteColumn = createTableCommand(
1149
1151
  meta,
1150
1152
  state.rows,
1151
1153
  { columnName },
1152
- { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1154
+ { nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1153
1155
  );
1154
1156
  if (!result.ok) {
1155
1157
  throw new Error(result.error);
@@ -1191,7 +1193,7 @@ var reorderColumn = createTableCommand(
1191
1193
  const result = reorderColumnInMeta(
1192
1194
  meta,
1193
1195
  { fromIndex, toIndex },
1194
- { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1196
+ { nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1195
1197
  );
1196
1198
  if (!result.ok) {
1197
1199
  throw new Error(result.error);
@@ -1232,7 +1234,7 @@ var renameColumnLabel = createTableCommand(
1232
1234
  const result = renameColumnLabelInMeta(
1233
1235
  meta,
1234
1236
  { columnId, label: newLabel },
1235
- { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1237
+ { nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1236
1238
  );
1237
1239
  if (!result.ok) {
1238
1240
  throw new Error(result.error);
@@ -1270,7 +1272,7 @@ var updateColumnWidth = createTableCommand(
1270
1272
  const result = updateColumnWidthInMeta(
1271
1273
  meta,
1272
1274
  { columnId, width },
1273
- { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1275
+ { nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1274
1276
  );
1275
1277
  if (!result.ok) {
1276
1278
  throw new Error(result.error);
@@ -1308,7 +1310,7 @@ var addColumnOption = createTableCommand(
1308
1310
  const result = addColumnOptionInMeta(
1309
1311
  meta,
1310
1312
  { columnId, option },
1311
- { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1313
+ { nowIso: (0, import_formatISO2.default)(/* @__PURE__ */ new Date()) }
1312
1314
  );
1313
1315
  if (!result.ok) {
1314
1316
  throw new Error(result.error);
@@ -1350,7 +1352,7 @@ var renameTable = createTableCommand(
1350
1352
  if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
1351
1353
  throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
1352
1354
  }
1353
- const nowIso = formatISO(/* @__PURE__ */ new Date());
1355
+ const nowIso = (0, import_formatISO2.default)(/* @__PURE__ */ new Date());
1354
1356
  setState((s) => ({ ...s, error: null }));
1355
1357
  try {
1356
1358
  if (dispatch) {
@@ -1394,7 +1396,7 @@ var updateTableIcon = createTableCommand(
1394
1396
  if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
1395
1397
  throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
1396
1398
  }
1397
- const nowIso = formatISO(/* @__PURE__ */ new Date());
1399
+ const nowIso = (0, import_formatISO2.default)(/* @__PURE__ */ new Date());
1398
1400
  setState((s) => ({ ...s, error: null }));
1399
1401
  try {
1400
1402
  if (dispatch) {
@@ -1435,7 +1437,7 @@ var updateCell = createTableCommand(
1435
1437
  const { dbKey, columnName, value } = args;
1436
1438
  setState((s) => ({ ...s, error: null }));
1437
1439
  try {
1438
- const nowIso = formatISO(/* @__PURE__ */ new Date());
1440
+ const nowIso = (0, import_formatISO2.default)(/* @__PURE__ */ new Date());
1439
1441
  if (dispatch) {
1440
1442
  await safeDispatch(
1441
1443
  dispatch,
@@ -1504,11 +1506,11 @@ var ENTITY_DELETE_STRATEGIES = {
1504
1506
  await dispatch(deleteTable({ dbKey: key })).unwrap();
1505
1507
  },
1506
1508
  file: async (key, { thunkAPI }) => {
1507
- const { deleteFileAction } = await import("./deleteFile-EPUQHKPA.js");
1509
+ const { deleteFileAction } = await import("./deleteFile-5YOEKV4U.js");
1508
1510
  await deleteFileAction(key, thunkAPI);
1509
1511
  },
1510
1512
  image: async (key, { thunkAPI }) => {
1511
- const { deleteFileAction } = await import("./deleteFile-EPUQHKPA.js");
1513
+ const { deleteFileAction } = await import("./deleteFile-5YOEKV4U.js");
1512
1514
  await deleteFileAction(key, thunkAPI);
1513
1515
  },
1514
1516
  agent: async (key, { dispatch, userId, sourceServerOrigin }) => {
@@ -2,17 +2,23 @@
2
2
  import { execFile } from "node:child_process";
3
3
  var DEFAULT_SSH_HOST = "nolotus@136.67.147.177";
4
4
  var DEFAULT_CI_PORT = "3900";
5
- function resolveSshTarget() {
6
- const override = process.env.NOLO_CI_SSH_HOST?.trim();
5
+ function resolveCiSshTarget(env = process.env) {
6
+ const override = env.NOLO_CI_SSH_HOST?.trim();
7
7
  if (override) return override;
8
- const raw = process.env.NOLO_CI_RAW_HOST?.trim() ?? process.env.NOLO_ALPHA_RAW_HOST?.trim();
9
- if (raw) {
10
- const user = process.env.NOLO_CI_SSH_USER?.trim() ?? process.env.NOLO_ALPHA_SSH_USER?.trim() ?? "nolotus";
11
- return `${user}@${raw}`;
12
- }
13
- const legacyAlias = process.env.NOLO_ALPHA_SSH_CONFIG_HOST?.trim();
14
- if (legacyAlias) return legacyAlias;
15
- return DEFAULT_SSH_HOST;
8
+ const raw = env.NOLO_CI_RAW_HOST?.trim() ?? env.NOLO_ALPHA_RAW_HOST?.trim();
9
+ if (raw) return `${env.NOLO_CI_SSH_USER?.trim() ?? env.NOLO_ALPHA_SSH_USER?.trim() ?? "nolotus"}@${raw}`;
10
+ return env.NOLO_ALPHA_SSH_CONFIG_HOST?.trim() || DEFAULT_SSH_HOST;
11
+ }
12
+ function resolveCiPort(env = process.env) {
13
+ const raw = env.NOLO_CI_PORT?.trim() ?? "";
14
+ return /^\d{1,5}$/.test(raw) && Number(raw) > 0 && Number(raw) <= 65535 ? raw : DEFAULT_CI_PORT;
15
+ }
16
+ function buildCiStatusCommand(limit, env = process.env) {
17
+ const safeLimit = Math.max(1, Math.min(20, Math.trunc(limit) || 5));
18
+ return `curl -s -m 3 "http://127.0.0.1:${resolveCiPort(env)}/status?limit=${safeLimit}"`;
19
+ }
20
+ function resolveSshTarget() {
21
+ return resolveCiSshTarget();
16
22
  }
17
23
  function asRecord(value) {
18
24
  return typeof value === "object" && value !== null ? value : void 0;
@@ -64,19 +70,13 @@ function parseCiStatusPayload(raw) {
64
70
  const single = toCiJob(parsed);
65
71
  return single ? [single] : void 0;
66
72
  }
67
- function resolveCiPort() {
68
- const rawPort = process.env.NOLO_CI_PORT?.trim() ?? "";
69
- return /^\d{1,5}$/.test(rawPort) && Number(rawPort) > 0 && Number(rawPort) <= 65535 ? rawPort : DEFAULT_CI_PORT;
70
- }
71
73
  function buildRemoteCommand(limit) {
72
- const port = resolveCiPort();
73
- const safeLimit = Math.max(1, Math.min(20, Math.trunc(limit) || 5));
74
- return `curl -s -m 3 "http://127.0.0.1:${port}/status?limit=${safeLimit}"`;
74
+ return buildCiStatusCommand(limit);
75
75
  }
76
- function fetchCiStatus(limit = 5, timeoutMs = 4e3) {
77
- return fetchCiPayload(buildRemoteCommand(limit), parseCiStatusPayload, timeoutMs);
76
+ function fetchCiStatus(limit = 5, timeoutMs = 4e3, signal) {
77
+ return fetchCiPayload(buildRemoteCommand(limit), parseCiStatusPayload, timeoutMs, resolveSshTarget(), signal);
78
78
  }
79
- function fetchCiPayload(command, parse, timeoutMs) {
79
+ function fetchCiPayload(command, parse, timeoutMs, sshTarget, signal, execFileImpl = execFile) {
80
80
  return new Promise((resolve) => {
81
81
  let settled = false;
82
82
  let guard;
@@ -84,15 +84,22 @@ function fetchCiPayload(command, parse, timeoutMs) {
84
84
  if (settled) return;
85
85
  settled = true;
86
86
  if (guard) clearTimeout(guard);
87
+ signal?.removeEventListener("abort", onAbort);
87
88
  resolve(value);
88
89
  };
90
+ const onAbort = () => finish(void 0);
91
+ if (signal?.aborted) {
92
+ finish(void 0);
93
+ return;
94
+ }
95
+ signal?.addEventListener("abort", onAbort, { once: true });
89
96
  guard = setTimeout(() => finish(void 0), timeoutMs + 500);
90
97
  guard.unref?.();
91
98
  try {
92
- execFile(
99
+ execFileImpl(
93
100
  "ssh",
94
- ["-o", "BatchMode=yes", "-o", `ConnectTimeout=3`, resolveSshTarget(), command],
95
- { timeout: timeoutMs, encoding: "utf8", maxBuffer: 1024 * 1024 },
101
+ ["-o", "BatchMode=yes", "-o", `ConnectTimeout=3`, sshTarget, command],
102
+ { timeout: timeoutMs, signal, encoding: "utf8", maxBuffer: 1024 * 1024 },
96
103
  (error, stdout) => {
97
104
  if (error) {
98
105
  finish(void 0);
@@ -128,14 +135,17 @@ function buildCancelCommand(jobId) {
128
135
  const tokenRef = `$(grep -m1 '^NOLO_CI_ADMIN_TOKEN=' "$HOME/.config/nolo-ci.env" 2>/dev/null | cut -d= -f2-)`;
129
136
  return `curl -s -m 110 -H "Authorization: Bearer ${tokenRef}" -H 'Content-Type: application/json' -X POST --data '${body}' "${endpoint}"`;
130
137
  }
131
- function fetchCiCancel(jobId, timeoutMs = 12e4) {
138
+ function fetchCiCancel(jobId, timeoutMs = 12e4, execFileImpl = execFile) {
132
139
  return fetchCiPayload(
133
140
  buildCancelCommand(jobId),
134
141
  (stdout) => {
135
142
  const response = JSON.parse(stdout);
136
143
  return response?.ok === true && response?.cancelled === true && response?.jobId === jobId ? true : false;
137
144
  },
138
- timeoutMs
145
+ timeoutMs,
146
+ resolveSshTarget(),
147
+ void 0,
148
+ execFileImpl
139
149
  );
140
150
  }
141
151
 
@@ -226,6 +226,15 @@ function formatStartRunCard(agentName, status = "running", opts) {
226
226
  }
227
227
  return lines.join("\n");
228
228
  }
229
+ function formatControlRunMessageCard(opts) {
230
+ const action = opts.labels?.[opts.action] ?? opts.action;
231
+ const target = opts.targetId ? `
232
+ ${opts.labels?.target ?? "target"} ${opts.targetId}` : "";
233
+ const message = opts.userInput.replace(/[\r\t]/g, " ").replace(/\u001b\[[0-?]*[ -/]*[@-~]|[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f-\u009f]/g, "");
234
+ return `${action}
235
+ ${opts.labels?.run ?? "run"} ${opts.runId}${target}
236
+ ${opts.labels?.message ?? "message"} ${message}`;
237
+ }
229
238
  var TASK_PREVIEW_MAX = 72;
230
239
  var NOTE_PREVIEW_MAX = 72;
231
240
  function formatProgressRow(toolCallCount, lastToolNames, labels = DEFAULT_LABELS) {
@@ -334,7 +343,7 @@ var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
334
343
  function isAgentRunTerminalStatus(status) {
335
344
  return typeof status === "string" && AGENT_RUN_TERMINAL_STATUSES.has(status);
336
345
  }
337
- function formatAgentListCard(agents, maxDisplay = 8) {
346
+ function formatAgentListCard(agents, maxDisplay = 8, now = /* @__PURE__ */ new Date(), includeKeys = true) {
338
347
  const total = agents.length;
339
348
  const lines = [`Agents (${total})`];
340
349
  const visible = agents.slice(0, maxDisplay);
@@ -345,13 +354,27 @@ function formatAgentListCard(agents, maxDisplay = 8) {
345
354
  const model = agent.model || "\u2014";
346
355
  const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
347
356
  const key = agent.agentKey || "(agentKey unavailable)";
348
- lines.push(`${star}${own} ${name} ${model} ${source} ${key}`);
357
+ lines.push(`${star}${own} ${name} ${model} ${source}${includeKeys ? ` ${key}` : ""}`);
358
+ if (agent.availabilityStatus === "rate_limited" || agent.availabilityStatus === "quota_exhausted") {
359
+ const until = typeof agent.nextAvailableAt === "number" ? formatLocalClockUntil(agent.nextAvailableAt, now) : void 0;
360
+ lines.push(
361
+ until ? ` \u989D\u5EA6\u53D7\u9650\u81F3 ${until}\uFF08\u53C2\u8003\u4FE1\u606F\uFF0C\u4E0D\u9650\u5236\u6D3E\u53D1\uFF09` : " \u989D\u5EA6\u53D7\u9650\uFF08\u6062\u590D\u65F6\u95F4\u672A\u77E5\uFF09\uFF08\u53C2\u8003\u4FE1\u606F\uFF0C\u4E0D\u9650\u5236\u6D3E\u53D1\uFF09"
362
+ );
363
+ }
349
364
  }
350
365
  if (total > maxDisplay) {
351
366
  lines.push(`\u2026 +${total - maxDisplay} more`);
352
367
  }
353
368
  return lines.join("\n");
354
369
  }
370
+ function formatLocalClockUntil(atMs, now) {
371
+ const at = new Date(atMs);
372
+ if (!Number.isFinite(at.getTime())) return void 0;
373
+ const pad = (value) => String(value).padStart(2, "0");
374
+ const time = `${pad(at.getHours())}:${pad(at.getMinutes())}`;
375
+ const sameDay = at.getFullYear() === now.getFullYear() && at.getMonth() === now.getMonth() && at.getDate() === now.getDate();
376
+ return sameDay ? time : `${pad(at.getMonth() + 1)}-${pad(at.getDate())} ${time}`;
377
+ }
355
378
 
356
379
  // packages/ai/tools/agent/runTitle.ts
357
380
  var RUN_TITLE_MAX = 60;
@@ -365,13 +388,16 @@ function normalizeRunTitle(value) {
365
388
  export {
366
389
  buildDelegatedTaskContent,
367
390
  calculateDelegatedPayloadMetrics,
391
+ getAgentRunStatusIcon,
368
392
  shortRunId,
369
393
  clipText,
370
394
  formatDuration,
371
395
  formatRunAge,
396
+ formatIdentityRow,
372
397
  isAgentNameFallback,
373
398
  resolveRunLabel,
374
399
  formatStartRunCard,
400
+ formatControlRunMessageCard,
375
401
  TASK_PREVIEW_MAX,
376
402
  formatStatusRunCard,
377
403
  formatFinishedRunCard,
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-HS7MLR74.js";
4
4
  import {
5
5
  performServerProxyFetchWithRetry
6
- } from "./chunk-ZN5AH4BY.js";
6
+ } from "./chunk-TX5EYMGT.js";
7
7
  import {
8
8
  fetchServerSyncedCredential
9
- } from "./chunk-ADBWFYJD.js";
9
+ } from "./chunk-KFLT5KAD.js";
10
10
  import {
11
11
  buildSkillGuidancePromptBlock
12
- } from "./chunk-Y6M7KJOA.js";
12
+ } from "./chunk-WRYQ35LQ.js";
13
13
  import {
14
14
  CREDENTIAL_HYGIENE_RULE,
15
15
  DELETE_SAFETY_RED_LINE,
@@ -25,7 +25,7 @@ import {
25
25
  compileContextLayers,
26
26
  detectDispatchIntentFromMessages,
27
27
  resolveToolGuidedSections
28
- } from "./chunk-W5VC7F7V.js";
28
+ } from "./chunk-5MQRBSMW.js";
29
29
  import {
30
30
  convertMessagesToResponsesInput,
31
31
  getUsageRequestOptions,
@@ -34,14 +34,14 @@ import {
34
34
  resolveReasoningReplayOptions,
35
35
  shouldStripReasoningContentForOutbound,
36
36
  stablePromptCacheKey
37
- } from "./chunk-CVCRAO6Q.js";
37
+ } from "./chunk-H5HF7TJA.js";
38
38
  import {
39
39
  resolveAgentCallPlan,
40
40
  resolveClientWire
41
- } from "./chunk-CKOO42G5.js";
41
+ } from "./chunk-UHJGXRJ4.js";
42
42
  import {
43
43
  createFileCredentialBroker
44
- } from "./chunk-UIOEHFF6.js";
44
+ } from "./chunk-OQHIVPG4.js";
45
45
  import {
46
46
  MEMORY_USE_GUIDANCE,
47
47
  buildUserResponseLanguageContext,
@@ -49,10 +49,10 @@ import {
49
49
  } from "./chunk-4VJAC32I.js";
50
50
  import {
51
51
  canonicalizeToolNames
52
- } from "./chunk-AKE53VMW.js";
52
+ } from "./chunk-ZCWRMUWT.js";
53
53
  import {
54
54
  buildProviderAuthHeaders
55
- } from "./chunk-PV6JJAUB.js";
55
+ } from "./chunk-TCZHTTUU.js";
56
56
  import {
57
57
  clampReasoningEffort,
58
58
  getModelConfig,
@@ -64,6 +64,12 @@ import {
64
64
  import {
65
65
  isRecord
66
66
  } from "./chunk-KUG52IAP.js";
67
+ import {
68
+ isDeepInfraKimiModel,
69
+ isFireworksKimiModel,
70
+ isPlatformMimoProviderModel,
71
+ resolveFireworksKimiModel
72
+ } from "./chunk-GOO6G4PY.js";
67
73
  import {
68
74
  API_ENDPOINTS
69
75
  } from "./chunk-LCBAMY2M.js";
@@ -76,12 +82,6 @@ import {
76
82
  import {
77
83
  asOptionalTrimmedString
78
84
  } from "./chunk-G3SUCT4W.js";
79
- import {
80
- isDeepInfraKimiModel,
81
- isFireworksKimiModel,
82
- isPlatformMimoProviderModel,
83
- resolveFireworksKimiModel
84
- } from "./chunk-GOO6G4PY.js";
85
85
 
86
86
  // packages/agent-runtime/responsesConversationState.ts
87
87
  function supportsResponsesConversationState(agent) {
File without changes
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-UCPAVEQB.js";
4
+ } from "./chunk-PYRUW7XN.js";
5
5
  import {
6
6
  fetchFromClientDb
7
7
  } from "./chunk-AGP3YSEC.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-PXYBUFDB.js";
11
11
  import {
12
12
  buildTombstoneRecord
13
- } from "./chunk-D2MDMY2M.js";
13
+ } from "./chunk-SVYO6AO7.js";
14
14
 
15
15
  // packages/database/fileStorage.ts
16
16
  var DB_NAME = "nolo-file-storage";
@@ -1,13 +1,16 @@
1
1
  import {
2
2
  readDbRecord,
3
3
  writeAgentRecord
4
- } from "./chunk-XDMGY5IU.js";
4
+ } from "./chunk-MOIJOHA5.js";
5
5
  import {
6
6
  buildSkillSummaryMarker
7
7
  } from "./chunk-VF4K2QE6.js";
8
8
  import {
9
9
  createSpaceKey
10
10
  } from "./chunk-UAD2WT54.js";
11
+ import {
12
+ asTrimmedLowercaseString
13
+ } from "./chunk-QSJ3HFEF.js";
11
14
  import {
12
15
  parseUserIdFromAuthToken,
13
16
  readOption,
@@ -23,9 +26,6 @@ import {
23
26
  import {
24
27
  normalizeServerOrigin
25
28
  } from "./chunk-CF7PE763.js";
26
- import {
27
- asTrimmedLowercaseString
28
- } from "./chunk-QSJ3HFEF.js";
29
29
 
30
30
  // packages/cli/docSpaceHelpers.ts
31
31
  async function ensurePageAttachedToSpace(params) {
@@ -6,12 +6,12 @@ import {
6
6
  } from "./chunk-E2BESSAW.js";
7
7
  import {
8
8
  resolveToolImagePolicy
9
- } from "./chunk-DA7CTWT4.js";
9
+ } from "./chunk-YWSEPJ7C.js";
10
10
  import {
11
11
  getAntigravityUserAgent,
12
12
  readAntigravityProjectId,
13
13
  resolveAntigravityCloudCodeBaseUrl
14
- } from "./chunk-PLYWH7XM.js";
14
+ } from "./chunk-KIM6CLW5.js";
15
15
  import {
16
16
  asOptionalTrimmedString
17
17
  } from "./chunk-G3SUCT4W.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-ZC3CMUKU.js";
7
7
  import {
8
8
  createKey
9
- } from "./chunk-ECX3NKRD.js";
9
+ } from "./chunk-JY5NGFFH.js";
10
10
 
11
11
  // packages/ai/tools/agentCapabilities.ts
12
12
  var SYSTEM_AGENT_CAPABILITIES = [
@@ -59,8 +59,8 @@ var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\u
59
59
  - **\u5EFA\u8BAE\u6C47\u62A5**\uFF1A\u4EA4\u4ED8\u65F6\u628A\u8FC7\u7A0B\u4E2D\u53D1\u73B0\u7684**\u4EFB\u4F55\u503C\u5F97\u7528\u6237\u77E5\u9053\u7684\u4E8B**\u90FD\u5217\u51FA\u6765\uFF08\u9884\u5B58\u65E0\u5173\u6539\u52A8\u3001\u65E2\u6709\u6D4B\u8BD5\u9694\u79BB\u95EE\u9898\u3001\u6F5C\u5728\u98CE\u9669\u3001\u540E\u7EED\u53EF\u4F18\u5316\u70B9\u3001\u9700\u7528\u6237\u51B3\u7B56\u7684\u4E8B\u9879\uFF09\uFF0C\u4E0D\u8981\u53EA\u62A5\u300C\u505A\u5B8C\u4E86\u300D\u3002
60
60
 
61
61
  ## Review \u7EAA\u5F8B\uFF08commit \u524D\u786C\u95E8\uFF09
62
- - **\u9636\u6BB5\u5212\u5206**\uFF1A\u4E25\u683C\u533A\u5206\u300C\u5B9E\u73B0/\u6784\u5EFA/\u5B89\u88C5/\u7528\u6237\u6D4B\u8BD5/\u6839\u636E\u53CD\u9988\u8FED\u4EE3\u300D\u4E0E\u300C\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u300D\u9636\u6BB5\u3002UI/\u524D\u7AEF\u53CA\u5176\u4ED6\u9700\u7528\u6237\u9A8C\u6536\u7684\u4EFB\u52A1\uFF0C\u5728\u5B9E\u73B0\u9636\u6BB5\u4E0D\u5F97\u89E6\u53D1\u6216\u7B49\u5F85\u6700\u7EC8\u72EC\u7ACB review\uFF0C\u5E94\u5148\u4EA4\u4ED8\u53EF\u6D4B\u8BD5\u4EA7\u7269\u7B49\u5F85\u7528\u6237\u53CD\u9988\u3002
63
- - \u6700\u7EC8 review \u4EC5\u5728\u7528\u6237\u660E\u786E\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u65F6\u8FDB\u884C\uFF08\u9664\u975E\u8C03\u7528\u65B9\u660E\u786E\u8BF4\u300C\u53EA\u6539\u4E0D\u5BA1\u300D\u6216\u7528\u6237\u660E\u786E\u8DF3\u8FC7\uFF09\u3002\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\u672C\u6B21\u6539\u52A8\u7684\u4F5C\u8005\uFF08\u7F16\u6392\u8005\u4EE5\u81EA\u8EAB agent \u8EAB\u4EFD\u6D3E\u51FA\u7684\u5168\u65B0\u5B9E\u4F8B\u4E0D\u5171\u4EAB\u7F16\u6392\u8005\u4E0A\u4E0B\u6587\uFF0C\u4E0E\u4F5C\u8005\u8DE8\u6A21\u578B\u5BB6\u65CF\u65F6\u4E0D\u7B97\u300C\u81EA\u5DF1\u300D\uFF0C\u8DE8\u5BB6\u65CF\u4F18\u5148\u975E\u5F3A\u5236\uFF09\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002
62
+ - **\u9636\u6BB5\u5212\u5206**\uFF1A\u9ED8\u8BA4\u4E25\u683C\u533A\u5206\u300C\u5B9E\u73B0/\u6784\u5EFA/\u5B89\u88C5/\u7528\u6237\u6D4B\u8BD5/\u6839\u636E\u53CD\u9988\u8FED\u4EE3\u300D\u4E0E\u300C\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u300D\u9636\u6BB5\u3002\u82E5\u7528\u6237\u5DF2\u663E\u5F0F\u542F\u7528\u4E14\u5F53\u524D\u4EFB\u52A1\u5728 auto-review \u4F5C\u7528\u57DF\u5185\uFF0Creview\u3001\u4FEE\u590D\u3001\u63D0\u4EA4\u4E0E\u672C\u5730\u96C6\u6210\u6301\u7EED\u6388\u6743\uFF0C\u4E0D\u91CD\u590D\u8BE2\u95EE\uFF1B\u672A\u542F\u7528\u4E0D\u5F97\u81EA\u52A8\u6388\u6743\uFF0Cstop/\u6682\u505C/\u5355\u6B21\u8986\u76D6\u7ACB\u5373\u751F\u6548\u3002UI/\u524D\u7AEF\u53CA\u5176\u4ED6\u9700\u7528\u6237\u9A8C\u6536\u7684\u4EFB\u52A1\uFF0C\u5148\u4EA4\u4ED8\u53EF\u6D4B\u8BD5\u4EA7\u7269\u5E76\u7B49\u5F85\u7528\u6237\u9A8C\u6536\uFF1B\u9A8C\u6536\u901A\u8FC7\u4E14 auto-review \u6388\u6743\u4ECD\u9002\u7528\u65F6\u76F4\u63A5\u8FDB\u5165\u6700\u7EC8 review\uFF1B\u5426\u5219\u987B\u7528\u6237\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4\u3002push\u3001main/production \u5408\u5E76\u3001\u53D1\u5E03\u4E0E\u56DE\u6EDA\u4ECD\u72EC\u7ACB\u6388\u6743\u3002
63
+ - \u6700\u7EC8 review \u9ED8\u8BA4\u4EC5\u5728\u7528\u6237\u660E\u786E\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u65F6\u8FDB\u884C\uFF1Bauto-review \u4F5C\u7528\u57DF\u5185\u4F9D\u6301\u7EED\u6388\u6743\u6267\u884C\u3002\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\u672C\u6B21\u6539\u52A8\u7684\u4F5C\u8005\uFF08\u7F16\u6392\u8005\u4EE5\u81EA\u8EAB agent \u8EAB\u4EFD\u6D3E\u51FA\u7684\u5168\u65B0\u5B9E\u4F8B\u4E0D\u5171\u4EAB\u7F16\u6392\u8005\u4E0A\u4E0B\u6587\uFF0C\u4E0E\u4F5C\u8005\u8DE8\u6A21\u578B\u5BB6\u65CF\u65F6\u4E0D\u7B97\u300C\u81EA\u5DF1\u300D\uFF0C\u8DE8\u5BB6\u65CF\u4F18\u5148\u975E\u5F3A\u5236\uFF09\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002
64
64
  - \u6D3E\u53D1\u8D70 \`startAgentRun(agentKey, task)\`\uFF08web/\u684C\u9762\u7AEF\u6CA1\u6709 nolo CLI\uFF0C\u6240\u6709 host \u90FD\u6709\u8FD9\u4E2A\u5DE5\u5177\uFF09\u3002
65
65
  - 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
66
66
  - \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
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isTombstoneRecord
3
- } from "./chunk-D2MDMY2M.js";
3
+ } from "./chunk-SVYO6AO7.js";
4
4
  import {
5
5
  isRecord
6
6
  } from "./chunk-KUG52IAP.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  requireTokenUser
3
- } from "./chunk-25OB36GU.js";
3
+ } from "./chunk-CRHOO2ZR.js";
4
4
  import {
5
5
  resolveServerUrl
6
6
  } from "./chunk-WACI5I6V.js";
7
7
  import {
8
8
  t
9
- } from "./chunk-3RQVYR4B.js";
9
+ } from "./chunk-VNYYOX3V.js";
10
10
 
11
11
  // packages/cli/cliApiClient.ts
12
12
  var CliApiError = class extends Error {
@@ -6,12 +6,12 @@ import {
6
6
  loadFileFromIndexedDb,
7
7
  removeAction,
8
8
  saveFileToIndexedDb
9
- } from "./chunk-4WCEC56C.js";
9
+ } from "./chunk-COFEN36Z.js";
10
10
  import {
11
11
  readAction,
12
12
  readRequestManager,
13
13
  resolveAgentReadServers
14
- } from "./chunk-PAFTGNWA.js";
14
+ } from "./chunk-O2TZF4AI.js";
15
15
  import {
16
16
  beginWriteAck,
17
17
  compareRemoteRecordsByComparableTime,
@@ -28,13 +28,13 @@ import {
28
28
  shouldReplaceLocalWithRemoteRecord,
29
29
  shouldReplicateLocalRecord,
30
30
  uploadToCurrentServer
31
- } from "./chunk-UCPAVEQB.js";
31
+ } from "./chunk-PYRUW7XN.js";
32
32
  import {
33
33
  asyncThunkCreator,
34
34
  buildCreateSlice,
35
35
  createEntityAdapter,
36
36
  noloDeleteRequest
37
- } from "./chunk-X4F26D5K.js";
37
+ } from "./chunk-P5L7CXOC.js";
38
38
  import {
39
39
  fetchFromClientDb,
40
40
  fetchFromServer,
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-AGP3YSEC.js";
44
44
  import {
45
45
  isTombstoneRecord
46
- } from "./chunk-D2MDMY2M.js";
46
+ } from "./chunk-SVYO6AO7.js";
47
47
  import {
48
48
  isRecord
49
49
  } from "./chunk-KUG52IAP.js";
@@ -53,7 +53,7 @@ import {
53
53
  import {
54
54
  fileKey,
55
55
  getFileIdFromKey
56
- } from "./chunk-ECX3NKRD.js";
56
+ } from "./chunk-JY5NGFFH.js";
57
57
  import {
58
58
  ulid
59
59
  } from "./chunk-XJWWBO34.js";
@@ -708,7 +708,7 @@ var dbSlice = createSliceWithThunks({
708
708
  // 动态 import 在调用期解析,避开 TDZ/求值顺序问题(同下方 share)。
709
709
  read: create.asyncThunk(
710
710
  async (payload, thunkApi) => {
711
- const { readAction: readAction2 } = await import("./read-DIIQBOOO.js");
711
+ const { readAction: readAction2 } = await import("./read-4V2RMG7N.js");
712
712
  return readAction2(payload, thunkApi);
713
713
  },
714
714
  {
@@ -782,7 +782,7 @@ var dbSlice = createSliceWithThunks({
782
782
  // 这里改成动态 import,运行期才解析,彻底断开这条边。
783
783
  share: create.asyncThunk(
784
784
  async (config, thunkApi) => {
785
- const { shareResourceAction } = await import("./action-U235TV4P.js");
785
+ const { shareResourceAction } = await import("./action-DF5UYSJF.js");
786
786
  return shareResourceAction(config, thunkApi);
787
787
  }
788
788
  ),