nolo-cli 0.97.0-alpha.2 → 0.97.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-G2MRKK2K.js → _executeModel-DYHTQJZC.js} +68 -63
  3. package/{action-YVYQEAAV.js → action-GI44T4DR.js} +10 -10
  4. package/{addContentAction-O7R66HEX.js → addContentAction-B2DRF7P6.js} +9 -9
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-T3I7IXPK.js} +15 -17
  6. package/{agentDeleteCommand-4427YKQF.js → agentDeleteCommand-LLNNP3AM.js} +47 -43
  7. package/{agentEmailCommands-RNBKKO7Q.js → agentEmailCommands-MQOP76DK.js} +90 -82
  8. package/agentListCommands-J3MWAZWO.js +741 -0
  9. package/{agentMachineCommands-FOFX5S2Q.js → agentMachineCommands-EQIRKAZO.js} +42 -38
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-EMZCM6VA.js} +1 -1
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-HF4A42D4.js} +1 -1
  12. package/agentRecordCommands-7MQRBMWZ.js +136 -0
  13. package/{agentRunCommand-2W3Q3A7M.js → agentRunCommand-H6BYSTJ7.js} +90 -80
  14. package/{agentRunControl-WCTKX5VL.js → agentRunControl-2TTTUTSW.js} +2 -2
  15. package/{agentRuntimeLocal-IW3IM5P6.js → agentRuntimeLocal-AY6YNUAL.js} +44 -36
  16. package/{agentSlice-SK47GTN7.js → agentSlice-FOZUXW7X.js} +11 -11
  17. package/{appDeleteCommands-ZXLXNRHF.js → appDeleteCommands-QTTL3QF3.js} +42 -38
  18. package/{appDeployCommands-PWB4YERK.js → appDeployCommands-43LJECGV.js} +42 -38
  19. package/{appDeployStatusCommands-2EZKZP7Y.js → appDeployStatusCommands-L5BKOLYW.js} +42 -38
  20. package/{appGetCommands-JNUKOWHO.js → appGetCommands-HOFZKOPC.js} +42 -38
  21. package/{appListCommands-6X3H67SS.js → appListCommands-I7C3SJCE.js} +42 -38
  22. package/{authCommand-F4EFRRX6.js → authCommand-2YPMMIJN.js} +117 -23
  23. package/{authCommands-RGOGCPP6.js → authCommands-FFDS4FVX.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-CALVIJTX.js} +6 -5
  25. package/{chatQueueReduxAdapter-ZJ555AT2.js → chatQueueReduxAdapter-NMEZRYC2.js} +30 -29
  26. package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
  27. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  28. package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
  29. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  30. package/{chunk-YQTQQX2H.js → chunk-2UV22D2F.js} +1 -1
  31. package/{chunk-7D6Z6AA4.js → chunk-3BFMH6GE.js} +6 -7
  32. package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
  33. package/{chunk-QIAVMDHY.js → chunk-3LX6YE3P.js} +4 -4
  34. package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
  35. package/chunk-4LCOCOR5.js +50 -0
  36. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  37. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  38. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  39. package/chunk-5J3PYNUP.js +255 -0
  40. package/chunk-5MMAK75Q.js +15 -0
  41. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  42. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  43. package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
  44. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  45. package/{chunk-IIVGDG4I.js → chunk-6PHKBY2Q.js} +10 -4
  46. package/{chunk-ASQYTZTR.js → chunk-6ZWMH6TJ.js} +69 -36
  47. package/{chunk-ABQYVJBJ.js → chunk-7CHC4W22.js} +1 -1
  48. package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
  49. package/{chunk-SDTTBMBU.js → chunk-7WCQEMPB.js} +888 -1079
  50. package/{chunk-BLJWCTRL.js → chunk-AOPCEXTB.js} +1 -1
  51. package/{chunk-WGR3J4Q6.js → chunk-APMUYAPK.js} +17 -4
  52. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  53. package/{chunk-RG6JBBX5.js → chunk-AWF3WO5R.js} +166 -13
  54. package/{chunk-GPCZ7UXG.js → chunk-AZRHIN5B.js} +1 -1
  55. package/chunk-BMQ2MJUK.js +153 -0
  56. package/{chunk-B4ZH7KVO.js → chunk-C3VLSD4K.js} +236 -36
  57. package/{chunk-4EZHSKTB.js → chunk-C53ZG23R.js} +2 -2
  58. package/chunk-CHOZJMJS.js +78 -0
  59. package/{chunk-HJUYAD4A.js → chunk-CPUFH46E.js} +8 -8
  60. package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
  61. package/{chunk-BP4XNZRM.js → chunk-CU3QB4HW.js} +3 -3
  62. package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
  63. package/{chunk-KQ4ONNQD.js → chunk-DAWDCRIG.js} +82 -8
  64. package/{chunk-VLTIYV3X.js → chunk-DCLMZ5TX.js} +4 -4
  65. package/{chunk-UKZDAFYT.js → chunk-DSSTTEKI.js} +6 -10
  66. package/{chunk-L7I247DF.js → chunk-EKS2APRJ.js} +21 -5
  67. package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
  68. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  69. package/chunk-GMZLP5DV.js +82 -0
  70. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  71. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  72. package/{chunk-OIMN34NA.js → chunk-HKTIX4ZE.js} +23 -76
  73. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  74. package/{chunk-H62HCIUP.js → chunk-HYZIYH2H.js} +11 -10
  75. package/{chunk-3VNWWVKB.js → chunk-I3QNET24.js} +30 -17
  76. package/{chunk-WV42OMV7.js → chunk-IAESIMK7.js} +4 -4
  77. package/chunk-JBOO3DKI.js +7808 -0
  78. package/{chunk-O35EJJVP.js → chunk-JJ7P5CIY.js} +56 -34
  79. package/{chunk-OZPMVBJI.js → chunk-JZ5II5UV.js} +15 -20
  80. package/{chunk-JRQFUXY7.js → chunk-KCDUTE5V.js} +96 -19
  81. package/{chunk-QLNJRTKI.js → chunk-KHVJXNRY.js} +100 -100
  82. package/{chunk-ADTY7BWR.js → chunk-L76GP4ER.js} +24 -5
  83. package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
  84. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  85. package/{chunk-53HEEOTT.js → chunk-O26PCYLS.js} +80 -13
  86. package/{chunk-3DII57IT.js → chunk-O2OWEFII.js} +1 -1
  87. package/{chunk-TDRTS7QW.js → chunk-O6JPWEEK.js} +77 -17
  88. package/chunk-OCZKATRC.js +129 -0
  89. package/{chunk-6D6VBVEW.js → chunk-OTEMQQZI.js} +80 -14
  90. package/chunk-P6GMCCAT.js +870 -0
  91. package/{chunk-3SK4LEIH.js → chunk-PLRLUZWS.js} +853 -209
  92. package/{chunk-DHDMC6FO.js → chunk-QKUMVP3O.js} +11 -6
  93. package/{chunk-X4QAVDFE.js → chunk-RMAWULCS.js} +498 -480
  94. package/{chunk-V4MJDUSR.js → chunk-RSEEDUMS.js} +2 -2
  95. package/{chunk-UZGQNTVW.js → chunk-S5XGT6GB.js} +5 -3
  96. package/{chunk-76WEAXJB.js → chunk-SACTCJAC.js} +18 -15
  97. package/{chunk-AFUORTY4.js → chunk-SONWNI3L.js} +21 -21
  98. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  99. package/{chunk-2YMRWISD.js → chunk-TU5NE4U3.js} +9 -84
  100. package/chunk-TY3TIUJK.js +89 -0
  101. package/chunk-UEGYKNHO.js +13349 -0
  102. package/chunk-UNYJU5L6.js +780 -0
  103. package/{chunk-J4MOO56S.js → chunk-UQNS32WZ.js} +10 -2
  104. package/chunk-VIWDGTDA.js +8 -0
  105. package/chunk-VJVNU77E.js +83 -0
  106. package/{chunk-EHKBVWKL.js → chunk-VYN7O3OY.js} +1 -1
  107. package/{chunk-NEDZDG3M.js → chunk-WILHZY7K.js} +45 -45
  108. package/{chunk-UKWGR5SS.js → chunk-WIWM4FE3.js} +187 -398
  109. package/{chunk-R7N5TMTV.js → chunk-X7YLNILS.js} +13 -13
  110. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  111. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  112. package/{chunk-SNPMM7H3.js → chunk-Y6AZRODX.js} +13 -13
  113. package/{chunk-RSJECD7I.js → chunk-YJKDTJ2X.js} +7 -7
  114. package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
  115. package/{chunk-TOP2VXOR.js → chunk-Z4CSIXYP.js} +2 -2
  116. package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
  117. package/chunk-ZRAU6T47.js +56 -0
  118. package/{chunk-Z77CRGTW.js → chunk-ZYWQNCBN.js} +1 -1
  119. package/commandRegistry-HUFXCF7Z.js +833 -0
  120. package/{contentThunks-YLWTUILV.js → contentThunks-TD5YOAQM.js} +32 -30
  121. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  122. package/{createAgentAutomationAction-HFLPOBWQ.js → createAgentAutomationAction-XUG62ANM.js} +32 -30
  123. package/{createDialogAction-4H52MURR.js → createDialogAction-L3CMZKNL.js} +36 -33
  124. package/{createPageAction-5YDRMJOS.js → createPageAction-WJ3MX6JS.js} +38 -36
  125. package/{chunk-NUVMWYJM.js → cursorProvider-YGGNMVWX.js} +2494 -9892
  126. package/{dbSlice-XVWBAGYN.js → dbSlice-DQ32LYTJ.js} +8 -8
  127. package/{deleteFile-YG6QMJLU.js → deleteFile-NX6QHCWZ.js} +3 -3
  128. package/{dialogCommands-KFK2FF5B.js → dialogCommands-VM3I4HBW.js} +45 -41
  129. package/{dialogSlice-TMSHUGEM.js → dialogSlice-DSHG3YUE.js} +36 -29
  130. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  131. package/{docCreateCommands-V777WOZ7.js → docCreateCommands-TYUJPCOP.js} +44 -40
  132. package/{docDeleteCommands-5KHT7Z5Q.js → docDeleteCommands-5XEG2LXO.js} +44 -40
  133. package/{docReadCommands-BLROGWP3.js → docReadCommands-M6RO6QHV.js} +43 -39
  134. package/{docStore-OBC5QOW7.js → docStore-RYOGMPEF.js} +11 -10
  135. package/{docUpdateCommands-QXOZHQ5H.js → docUpdateCommands-DKOFTZRX.js} +44 -40
  136. package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
  137. package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +3 -3
  138. package/{handleSendMessageAction-4LGNXH6T.js → handleSendMessageAction-XH742B27.js} +91 -83
  139. package/index.js +87 -884
  140. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
  141. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
  142. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
  143. package/{machineCommands-SNLCRHQK.js → machineCommands-EY3SKJCP.js} +85 -77
  144. package/{machineWsRunDispatch-ZGZVDQSO.js → machineWsRunDispatch-OJ77YNRD.js} +82 -74
  145. package/{memberThunks-QGFLFVCI.js → memberThunks-5ZXPR63F.js} +9 -9
  146. package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
  147. package/oauthTokenStore-ITEB663N.js +23 -0
  148. package/package.json +1 -1
  149. package/pdf-U6KSUEZZ.js +26435 -0
  150. package/processSpawn-SOAV3FEV.js +11 -0
  151. package/profileConfig-ZGOFORWV.js +43 -0
  152. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-76AVU3HD.js} +7 -7
  153. package/{providerRegistry-757OWH3O.js → providerRegistry-Z62NC45X.js} +11 -7
  154. package/{read-COE3ZYR6.js → read-EPTJRAEF.js} +5 -5
  155. package/{readDocTool-5USN4A6V.js → readDocTool-W4NDXNEX.js} +5 -3
  156. package/{readlineWorkspace-OUL7ZN7D.js → readlineWorkspace-PMTHAVMB.js} +2447 -2022
  157. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-BVAWQKXE.js} +17 -19
  158. package/{runAgentClientLoop-GD3APV7V.js → runAgentClientLoop-7WXN6I7L.js} +62 -58
  159. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
  160. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  161. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-LYY45IAD.js} +12 -11
  162. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-73IL7DLU.js} +18 -20
  163. package/{settingSlice-ZQZVUPKK.js → settingSlice-Q6EKL7EQ.js} +9 -9
  164. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  165. package/{spaceCommands-TIDVUPDV.js → spaceCommands-QFP4ZXKG.js} +44 -40
  166. package/{streamAgentChatTurn-M73KWCCU.js → streamAgentChatTurn-B4PXPJJS.js} +184 -91
  167. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-UUXDSQ6X.js} +15 -17
  168. package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
  169. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-INIQCPGY.js} +3 -3
  170. package/{tools-DXXDQ2CP.js → tools-QFS2L7BU.js} +55 -51
  171. package/{tuiSummaryLlmCaller-VJY3YD2Q.js → tuiSummaryLlmCaller-74NRRLVW.js} +18 -16
  172. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  173. package/{updateDialogTitleAction-XI73NQMU.js → updateDialogTitleAction-HTDYCNNZ.js} +81 -43
  174. package/agentListCommands-O4AEMQVV.js +0 -406
  175. package/agentRecordCommands-6QK7AMXQ.js +0 -128
  176. package/chunk-M76ECQRD.js +0 -13658
  177. package/chunk-Q5FJJ6XI.js +0 -103
  178. package/chunk-S7Z2HMCN.js +0 -25
  179. package/chunk-WRFW73PB.js +0 -18881
  180. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  181. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  182. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  clipMultilineText,
9
9
  fetchAndSerializeTable
10
- } from "./chunk-X4QAVDFE.js";
10
+ } from "./chunk-RMAWULCS.js";
11
11
  import {
12
12
  isGatewayHttpStatus
13
13
  } from "./chunk-NF64D32W.js";
@@ -17,38 +17,40 @@ import {
17
17
  normalizeNonNegativeMs,
18
18
  parseRetryAfterHeaderMs
19
19
  } from "./chunk-3L2WKC3W.js";
20
- import {
21
- slateToSimplifiedMarkdown
22
- } from "./chunk-J4MOO56S.js";
23
20
  import {
24
21
  waitForAbortableDelay
25
22
  } from "./chunk-N4G4PKQ6.js";
23
+ import {
24
+ resolvePageReadMarkdown,
25
+ slateToSimplifiedMarkdown
26
+ } from "./chunk-UQNS32WZ.js";
26
27
  import {
27
28
  extractCategorizedMentions
28
29
  } from "./chunk-MEYIRKDN.js";
29
30
  import {
30
31
  fetchAndCacheMessages
31
- } from "./chunk-WRFW73PB.js";
32
+ } from "./chunk-UEGYKNHO.js";
32
33
  import {
33
34
  shouldUseServerProxy
34
35
  } from "./chunk-YYLHWIW6.js";
35
36
  import {
36
37
  fetchServerSyncedCredential
37
- } from "./chunk-RSJECD7I.js";
38
+ } from "./chunk-YJKDTJ2X.js";
38
39
  import {
39
40
  buildSkillGuidancePromptBlock,
40
41
  extractRuntimePageCapabilities,
41
42
  resolveBuiltinSkillPage,
42
43
  resolveSkillGraphFromRoots
43
- } from "./chunk-JRQFUXY7.js";
44
+ } from "./chunk-KCDUTE5V.js";
44
45
  import {
46
+ DELETE_SAFETY_RED_LINE,
45
47
  buildIdentityBlock,
46
48
  buildRuntimeGuidanceBlocks,
47
49
  compileContextLayers,
48
50
  detectDispatchIntentFromMessages,
49
51
  normalizeChatCompletionsBodyForProvider,
50
52
  resolveToolGuidedSections
51
- } from "./chunk-L7I247DF.js";
53
+ } from "./chunk-EKS2APRJ.js";
52
54
  import {
53
55
  convertMessagesToResponsesInput,
54
56
  getUsageRequestOptions,
@@ -58,64 +60,64 @@ import {
58
60
  import {
59
61
  ANTIGRAVITY_CLOUD_CODE_BASE_URL,
60
62
  isAntigravityOAuthAgent
61
- } from "./chunk-UZGQNTVW.js";
63
+ } from "./chunk-S5XGT6GB.js";
62
64
  import {
63
65
  buildProviderAuthHeaders
64
- } from "./chunk-6OZ36FXI.js";
66
+ } from "./chunk-27ONFIEY.js";
65
67
  import {
66
68
  estimateTokenCount
67
69
  } from "./chunk-PSCNXBYA.js";
70
+ import {
71
+ createFileCredentialBroker
72
+ } from "./chunk-ESRMFY7G.js";
68
73
  import {
69
74
  isOpenAiResponsesModel,
70
75
  resolvePlatformChatCompletionsEndpoint,
71
76
  resolvePlatformResponsesEndpoint
72
- } from "./chunk-GQBOR3G6.js";
77
+ } from "./chunk-7KVZ5LDQ.js";
78
+ import {
79
+ toErrorMessage
80
+ } from "./chunk-HNMXYYJR.js";
73
81
  import {
74
82
  clampReasoningEffort,
75
83
  getModelConfig,
76
84
  isModelSupportReasoningEffort
77
- } from "./chunk-OIVSQH2O.js";
78
- import {
79
- createFileCredentialBroker
80
- } from "./chunk-HVURBGF3.js";
85
+ } from "./chunk-3BXNTXYI.js";
81
86
  import {
82
- toErrorMessage
83
- } from "./chunk-HNMXYYJR.js";
87
+ createSpaceKey
88
+ } from "./chunk-UAD2WT54.js";
84
89
  import {
85
90
  MEMORY_USE_GUIDANCE,
86
91
  buildUserResponseLanguageContext,
87
92
  wrapHistoricalSummaryWithReplayGuard
88
- } from "./chunk-2GRGFCF6.js";
93
+ } from "./chunk-4VJAC32I.js";
89
94
  import {
90
95
  canonicalizeToolNames
91
- } from "./chunk-O6OSWFZQ.js";
96
+ } from "./chunk-XUWRURDF.js";
92
97
  import {
93
98
  isDeepInfraKimiModel,
94
99
  isFireworksKimiModel,
95
100
  isPlatformMimoProviderModel,
96
101
  resolveFireworksKimiModel
97
- } from "./chunk-Q67DOFOO.js";
98
- import {
99
- createSpaceKey
100
- } from "./chunk-UAD2WT54.js";
102
+ } from "./chunk-Y3PMXGLH.js";
101
103
  import {
102
104
  read
103
- } from "./chunk-H62HCIUP.js";
105
+ } from "./chunk-HYZIYH2H.js";
104
106
  import {
105
107
  asTrimmedLowercaseString
106
108
  } from "./chunk-QSJ3HFEF.js";
107
- import {
108
- extractCustomId
109
- } from "./chunk-M2EJHDJP.js";
110
109
  import {
111
110
  getRuntimeServerContext
112
- } from "./chunk-UKWGR5SS.js";
111
+ } from "./chunk-WIWM4FE3.js";
113
112
  import {
114
113
  isAbortError
115
114
  } from "./chunk-QOKAKDPE.js";
116
115
  import {
117
116
  isRecord
118
117
  } from "./chunk-KUG52IAP.js";
118
+ import {
119
+ extractCustomId
120
+ } from "./chunk-M2EJHDJP.js";
119
121
  import {
120
122
  asTrimmedString
121
123
  } from "./chunk-3EUW3WEO.js";
@@ -648,6 +650,14 @@ ${contexts.userGlobalPrompt.trim()} ` : "";
648
650
  const dialogSummarySection = contexts.dialogSummary?.trim() ? `--- \u5386\u53F2\u5BF9\u8BDD\u6458\u8981 ---
649
651
  ${wrapHistoricalSummaryWithReplayGuard(contexts.dialogSummary)}` : "";
650
652
  return compileContextLayers([
653
+ // 删除安全红线:系统层最高优先级约束,位于所有层之前(含身份信息),
654
+ // owner 要求常驻「根本提示词」的最顶部(2026-09-26 批量误删事故)。
655
+ {
656
+ id: "delete-safety-red-line",
657
+ owner: "platform",
658
+ cacheScope: "static",
659
+ content: DELETE_SAFETY_RED_LINE
660
+ },
651
661
  { id: "identity", owner: "platform", cacheScope: "session", content: identitySection },
652
662
  { id: "user-response-language", owner: "platform", cacheScope: "session", content: buildUserResponseLanguageContext({ language: safeLanguage }) },
653
663
  { id: "startup-protocol", owner: "platform", cacheScope: "static", content: startupProtocol },
@@ -655,6 +665,7 @@ ${wrapHistoricalSummaryWithReplayGuard(contexts.dialogSummary)}` : "";
655
665
  { id: "tool-round-economy", owner: "platform", cacheScope: "session", content: toolSections.toolRoundEconomy },
656
666
  { id: "tool-use-guidance", owner: "platform", cacheScope: "session", content: toolSections.toolUseGuidance },
657
667
  { id: "privilege-escalation", owner: "platform", cacheScope: "session", content: toolSections.privilegeEscalation },
668
+ { id: "shell-task-lifecycle", owner: "platform", cacheScope: "session", content: toolSections.shellTaskLifecycle },
658
669
  { id: "agent-orchestration", owner: "platform", cacheScope: "session", content: toolSections.agentOrchestration },
659
670
  { id: "agent-collaboration", owner: "platform", cacheScope: "session", content: toolSections.agentCollaboration },
660
671
  { id: "web-access", owner: "platform", cacheScope: "session", content: toolSections.webAccess },
@@ -776,8 +787,13 @@ var buildRequestBody = (options) => {
776
787
  endpoint: customProviderUrl
777
788
  });
778
789
  Object.assign(bodyData, usageRequestOptions);
779
- if (reasoning_effort && isModelSupportReasoningEffort(model)) {
780
- const clamped = clampReasoningEffort(reasoning_effort, providerName);
790
+ const effectiveProviderForReasoning = providerName?.toLowerCase() === "openrouter" || customProviderUrl?.toLowerCase().includes("openrouter.ai") ? "openrouter" : providerName;
791
+ if (reasoning_effort && isModelSupportReasoningEffort(model, effectiveProviderForReasoning)) {
792
+ const clamped = clampReasoningEffort(
793
+ reasoning_effort,
794
+ effectiveProviderForReasoning,
795
+ model
796
+ );
781
797
  if (clamped) {
782
798
  bodyData.reasoning_effort = clamped;
783
799
  }
@@ -1208,7 +1224,7 @@ var buildProxyPayload = (bodyData, api, agentConfig, dialogId) => {
1208
1224
  };
1209
1225
  };
1210
1226
  var fetchDirectly = async (params) => {
1211
- const { api, agentConfig, bodyData, signal, currentServer, token } = params;
1227
+ const { api, agentConfig, bodyData, signal, currentServer, token, dialogId } = params;
1212
1228
  try {
1213
1229
  const apiKey = await resolveDirectRequestApiKey(agentConfig, {
1214
1230
  syncFetcher: currentServer && token ? (ref) => fetchServerSyncedCredential({ currentServer, authToken: token }, ref) : void 0,
@@ -1228,7 +1244,8 @@ var fetchDirectly = async (params) => {
1228
1244
  const authHeaders = buildProviderAuthHeaders({
1229
1245
  endpoint: api,
1230
1246
  apiKey: apiKey ?? "",
1231
- apiKeyHeader: agentConfig.apiKeyHeader
1247
+ apiKeyHeader: agentConfig.apiKeyHeader,
1248
+ sessionId: dialogId || agentConfig.dbKey || agentConfig.key
1232
1249
  });
1233
1250
  return await fetch(api, {
1234
1251
  method: "POST",
@@ -1794,12 +1811,17 @@ ${tableMd}
1794
1811
  `;
1795
1812
  };
1796
1813
  var fetchSlateReference = async (dbKey, refContent, dispatch, options) => {
1797
- if (!refContent?.slateData) return null;
1814
+ const hasSlate = Array.isArray(refContent?.slateData) && refContent.slateData.length > 0;
1815
+ const legacyContent = hasSlate ? null : resolvePageReadMarkdown(refContent).trim() || null;
1816
+ if (!hasSlate && !legacyContent) return null;
1798
1817
  const title = refContent.title || `Untitled (${dbKey})`;
1799
1818
  let contentString;
1800
1819
  let contentType;
1801
1820
  const inlineMentionMeta = options.inlineMentionMeta ?? options.format === "simplified_markdown";
1802
- switch (options.format) {
1821
+ if (legacyContent) {
1822
+ contentType = "Markdown (legacy content)";
1823
+ contentString = legacyContent;
1824
+ } else switch (options.format) {
1803
1825
  case "text":
1804
1826
  contentType = "Plain Text";
1805
1827
  contentString = slateToText(refContent.slateData);
@@ -1,28 +1,29 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-B4ZH7KVO.js";
3
+ } from "./chunk-C3VLSD4K.js";
4
4
  import {
5
+ formatISO
6
+ } from "./chunk-ZRAU6T47.js";
7
+ import {
8
+ format,
5
9
  prepareAndPersistMessage,
6
10
  uiAskChoiceFunc,
7
11
  uiAskChoiceFunctionSchema
8
- } from "./chunk-WRFW73PB.js";
9
- import {
10
- require_date_fns
11
- } from "./chunk-M76ECQRD.js";
12
+ } from "./chunk-UEGYKNHO.js";
12
13
  import {
13
14
  buildBuiltinObjectSkillReference
14
- } from "./chunk-DHDMC6FO.js";
15
+ } from "./chunk-QKUMVP3O.js";
15
16
  import {
16
17
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
17
18
  PLATFORM_HOSTED_KIMI_PROVIDER
18
- } from "./chunk-Q67DOFOO.js";
19
+ } from "./chunk-Y3PMXGLH.js";
19
20
  import {
20
21
  read,
21
22
  readAndWait,
22
23
  removeCachedEntity,
23
24
  upsertSSREntity,
24
25
  write
25
- } from "./chunk-H62HCIUP.js";
26
+ } from "./chunk-HYZIYH2H.js";
26
27
  import {
27
28
  createAgentKey,
28
29
  createDialogKey,
@@ -30,10 +31,7 @@ import {
30
31
  dialogMessageRange,
31
32
  memoryOwnerRange,
32
33
  memorySubjectKindRange
33
- } from "./chunk-VMFTFOWF.js";
34
- import {
35
- extractCustomId
36
- } from "./chunk-M2EJHDJP.js";
34
+ } from "./chunk-3AH7LNUB.js";
37
35
  import {
38
36
  isDevelopment
39
37
  } from "./chunk-QOKAKDPE.js";
@@ -43,6 +41,9 @@ import {
43
41
  import {
44
42
  isRecord
45
43
  } from "./chunk-KUG52IAP.js";
44
+ import {
45
+ extractCustomId
46
+ } from "./chunk-M2EJHDJP.js";
46
47
  import {
47
48
  asTrimmedString
48
49
  } from "./chunk-3EUW3WEO.js";
@@ -52,12 +53,6 @@ import {
52
53
  import {
53
54
  asOptionalTrimmedString
54
55
  } from "./chunk-G3SUCT4W.js";
55
- import {
56
- __toESM
57
- } from "./chunk-4VNS5WPM.js";
58
-
59
- // packages/chat/dialog/actions/createDialogAction.ts
60
- var import_date_fns = __toESM(require_date_fns());
61
56
 
62
57
  // packages/chat/dialog/objectAssistantRegistry.ts
63
58
  var OBJECT_ASSISTANT_TO_SKILL = {
@@ -811,7 +806,7 @@ var createDialogAction = async (args, thunkApi) => {
811
806
  preview: recentRelationshipRecapResolution.recap ?? null
812
807
  });
813
808
  }
814
- const time = (0, import_date_fns.format)(/* @__PURE__ */ new Date(), "MM-dd HH:mm");
809
+ const time = format(/* @__PURE__ */ new Date(), "MM-dd HH:mm");
815
810
  const title = titleOverride || (agentMode === "auto" ? "\u65B0\u5BF9\u8BDD" : agentConfig?.name || "Agent") + " " + time;
816
811
  const spaceId = explicitSpaceId;
817
812
  const dialogPath = createDialogKey(userId);
@@ -853,7 +848,7 @@ var createDialogAction = async (args, thunkApi) => {
853
848
  ...agentMode === "auto" && autoRoute ? { autoRoute } : {},
854
849
  title,
855
850
  type: "dialog" /* DIALOG */,
856
- createdAt: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date()),
851
+ createdAt: formatISO(/* @__PURE__ */ new Date()),
857
852
  ...spaceId && { spaceId },
858
853
  category,
859
854
  referenceKeys,
@@ -6,20 +6,20 @@ import {
6
6
  buildBuiltinObjectSkillDbKey,
7
7
  buildBuiltinObjectSkillPageContent,
8
8
  buildCodeWorkDiscipline
9
- } from "./chunk-DHDMC6FO.js";
9
+ } from "./chunk-QKUMVP3O.js";
10
10
  import {
11
11
  buildSkillDocMarkdown,
12
12
  resolvePageSkillMetadata
13
- } from "./chunk-Q554LLSI.js";
13
+ } from "./chunk-AUDNYVRC.js";
14
14
  import {
15
15
  canonicalizeToolNames
16
- } from "./chunk-O6OSWFZQ.js";
16
+ } from "./chunk-XUWRURDF.js";
17
17
  import {
18
18
  nolotusId
19
19
  } from "./chunk-QDSINZM3.js";
20
20
  import {
21
21
  asNonEmptyStringArray
22
- } from "./chunk-VMFTFOWF.js";
22
+ } from "./chunk-3AH7LNUB.js";
23
23
  import {
24
24
  asOptionalTrimmedString
25
25
  } from "./chunk-G3SUCT4W.js";
@@ -242,7 +242,7 @@ var CODING_SKILL_SEEDS = [
242
242
  "## \u6D41\u7A0B",
243
243
  "1. Gather\uFF1A\u8BFB spec \u7ED9\u7684\u5BA1\u67E5\u547D\u4EE4\uFF08`git diff` \u6216 `git diff alpha...HEAD`\uFF09\uFF0C\u62FF\u5230 diff\uFF1B\u65E0\u6539\u52A8\u76F4\u63A5 Clean review\u3002",
244
244
  "2. Scope\uFF1A\u786E\u8BA4\u6539\u52A8\u8303\u56F4\uFF0C\u53EA\u5BA1 diff \u89E6\u53CA\u7684\u6587\u4EF6\uFF0C\u5F04\u6E05\u5BF9\u5E94\u4EC0\u4E48\u529F\u80FD/\u4FEE\u590D\u3002",
245
- "3. Context\uFF1A\u4E0D\u8981\u53EA\u770B hunk\uFF1B\u8BFB\u5468\u56F4\u5B9E\u73B0\u3001imports\u3001\u8C03\u7528\u65B9\u3002",
245
+ "3. Context\uFF1A\u4E0D\u8981\u53EA\u770B hunk\uFF1B\u8BFB\u5468\u56F4\u5B9E\u73B0\u3001imports\u3001\u8C03\u7528\u65B9\u3002**\u4EE3\u7801\u771F\u503C\u4F18\u5148**\uFF1Areview brief\u3001prompt\u3001\u6CE8\u91CA\u548C\u6D4B\u8BD5\u540D\u4E0D\u662F\u5B9E\u73B0\u771F\u503C\uFF1B\u6D89\u53CA\u884C\u4E3A\u5951\u7EA6\u65F6\u4EE5\u5B9E\u9645\u5B9E\u73B0\u3001\u7C7B\u578B\u548C\u53EF\u6267\u884C\u6D4B\u8BD5\u4E3A\u51C6\uFF0C\u51B2\u7A81\u5FC5\u987B\u62A5\u544A\uFF0C\u672A\u7ECF\u9A8C\u8BC1\u4E0D\u5F97 APPROVE\u3002",
246
246
  "4. Checklist\uFF1A\u6309\u89D2\u8272\u4ECE CRITICAL \u2192 LOW\uFF1B\u53EA\u62A5 >80% \u6709\u628A\u63E1\u7684\u771F\u5B9E\u95EE\u9898\u3002",
247
247
  "5. Report\uFF1A\u4EA7\u51FA finding \u8868 + Verdict\uFF1B\u540C\u7C7B\u95EE\u9898\u5408\u5E76\u3002",
248
248
  "",
@@ -252,8 +252,15 @@ var CODING_SKILL_SEEDS = [
252
252
  "\u4EFB\u4E00\u7B54\u300C\u5426\u300D\u6216\u300C\u4E0D\u786E\u5B9A\u300D\u5219\u964D\u7EA7\u6216\u4E22\u5F03\uFF1A",
253
253
  "1. \u80FD\u5F15\u7528\u786E\u5207\u884C\u53F7\uFF1F\uFF08\u6A21\u7CCA\u53D1\u73B0\u4E0D actionable\uFF09",
254
254
  "2. \u80FD\u63CF\u8FF0\u5177\u4F53\u5931\u8D25\u6A21\u5F0F\uFF1F\uFF08\u547D\u540D\u8F93\u5165\u3001\u72B6\u6001\u3001\u574F\u7ED3\u679C\uFF1B\u8BF4\u4E0D\u51FA\u89E6\u53D1\u6761\u4EF6 = \u6A21\u5F0F\u5339\u914D\uFF09",
255
- "3. \u80FD\u7ED9\u51FA\u5177\u4F53\u4FEE\u590D\u5EFA\u8BAE\uFF1F\uFF08\u4EE3\u7801\u7EA7\uFF0C\u4E0D\u662F\u9AD8\u5C42\u5EFA\u8BAE\uFF09",
256
- "4. \u5224\u65AD\u6807\u5C3A\u2014\u2014**\u8FD9\u4E2A\u56E2\u961F\u7684\u9AD8\u7EA7\u5DE5\u7A0B\u5E08\u771F\u4F1A\u5728 review \u91CC\u6539\u8FD9\u4E2A\u5417?** \u4E0D\u4F1A\u5C31\u8DF3\u8FC7\u3002",
255
+ "3. \u8BFB\u8FC7\u5468\u56F4\u4E0A\u4E0B\u6587\uFF1F\uFF08\u67E5\u8FC7\u8C03\u7528\u65B9\u3001imports\u3001\u6D4B\u8BD5\uFF1B\u5F88\u591A\u8868\u9762\u95EE\u9898\u4E0A\u4E00\u5C42\u5DF2\u5904\u7406\u6216\u6709\u7C7B\u578B guard\uFF09",
256
+ "4. \u4E25\u91CD\u5EA6\u7AD9\u5F97\u4F4F\uFF1F\uFF08\u7F3A JSDoc \u6C38\u8FDC\u4E0D\u662F HIGH\uFF1B\u6D4B\u8BD5 fixture \u91CC\u7684 `any` \u6C38\u8FDC\u4E0D\u662F CRITICAL\uFF1B\u4E25\u91CD\u5EA6\u81A8\u80C0\u6BD4\u6F0F\u62A5\u66F4\u4F24\u4FE1\u4EFB\uFF09",
257
+ "\u53E6\u6709\u5224\u65AD\u6807\u5C3A\u2014\u2014**\u8FD9\u4E2A\u56E2\u961F\u7684\u9AD8\u7EA7\u5DE5\u7A0B\u5E08\u771F\u4F1A\u5728 review \u91CC\u6539\u8FD9\u4E2A\u5417?** \u4E0D\u4F1A\u5C31\u8DF3\u8FC7\u3002\u6BCF\u6761 finding \u9644\u4EE3\u7801\u7EA7\u4FEE\u590D\u5EFA\u8BAE\uFF08Fix\uFF09\uFF0C\u4E0D\u662F\u9AD8\u5C42\u5EFA\u8BAE\u3002",
258
+ "",
259
+ "### HIGH / CRITICAL \u5FC5\u987B\u5E26\u8BC1\u636E",
260
+ "\u7F3A\u4EFB\u4E00\u6761\u5219\u964D\u7EA7\u5230 MEDIUM \u6216\u4E22\u5F03\uFF1A\u2460 \u786E\u5207\u4EE3\u7801\u7247\u6BB5 + \u884C\u53F7\uFF1B\u2461 \u5177\u4F53\u5931\u8D25\u573A\u666F\uFF08\u4EC0\u4E48\u8F93\u5165 \u2192 \u4EC0\u4E48\u72B6\u6001 \u2192 \u4EC0\u4E48\u574F\u7ED3\u679C\uFF09\uFF1B\u2462 \u4E3A\u4EC0\u4E48\u73B0\u6709\u9632\u62A4\uFF08\u7C7B\u578B\u7CFB\u7EDF/\u6821\u9A8C/\u6846\u67B6\u9ED8\u8BA4\uFF09\u6321\u4E0D\u4F4F\u3002",
261
+ "",
262
+ "### \u96F6\u53D1\u73B0\u662F\u5408\u6CD5\u7ED3\u679C",
263
+ "\u5E72\u51C0\u7684 review \u662F\u6709\u6548\u7684 review\uFF1Adiff \u5C0F\u3001\u7C7B\u578B\u5B8C\u5907\u3001\u6709\u6D4B\u8BD5\u3001\u9075\u5FAA\u9879\u76EE\u6A21\u5F0F\u65F6\uFF0C\u6B63\u786E\u8F93\u51FA\u662F\u96F6 finding + `Clean review`\u3002\u4E0D\u8981\u4E3A\u8BC1\u660E\u8DD1\u8FC7\u800C\u5236\u9020 finding\u3001\u586B\u5145\u5F0F nitpick \u6216\u65E0\u89E6\u53D1\u6761\u4EF6\u7684\u5047\u8BBE\u6027 edge case\u3002",
257
264
  "",
258
265
  "## \u5047\u9633\u6027\u6E05\u5355\uFF08\u8FD9\u4E9B\u4E0D\u62A5\uFF09",
259
266
  "- \u300C\u8003\u8651\u52A0\u9519\u8BEF\u5904\u7406\u300D\uFF1A\u5148\u67E5\u8C03\u7528\u65B9/\u6846\u67B6\u662F\u5426\u5DF2\u5904\u7406\u3002",
@@ -1112,9 +1119,72 @@ function buildSearchSpaceSkillContentBySlug(slug) {
1112
1119
  });
1113
1120
  }
1114
1121
 
1122
+ // packages/ai/skills/autoReviewSkill.ts
1123
+ var AUTO_REVIEW_SKILL_SLUGS = ["auto-review"];
1124
+ function deterministicId6(prefix, seed) {
1125
+ let h = 2166136261;
1126
+ for (let i = 0; i < seed.length; i++) {
1127
+ h ^= seed.charCodeAt(i);
1128
+ h = h * 16777619 >>> 0;
1129
+ }
1130
+ const suffix = h.toString(36).toUpperCase().padStart(14, "0");
1131
+ return (prefix + suffix).slice(0, 26);
1132
+ }
1133
+ function buildAutoReviewSkillId(slug) {
1134
+ return deterministicId6("01SK", slug);
1135
+ }
1136
+ function buildAutoReviewSkillPageKey(userId, slug) {
1137
+ return `page-${userId}-${buildAutoReviewSkillId(slug)}`;
1138
+ }
1139
+ function buildAutoReviewSkillConfig(slug) {
1140
+ return {
1141
+ version: "0.1",
1142
+ kind: "skill",
1143
+ id: buildAutoReviewSkillId(slug),
1144
+ name: "\u81EA\u52A8\u5BA1\u67E5\u5408\u5E76\uFF08auto-review\uFF09",
1145
+ triggerMode: "explicit",
1146
+ description: "\u6539\u52A8\u5B8C\u6210\u540E\u81EA\u52A8\u8D70\u5B8C\u300C\u72EC\u7ACB reviewer \u5BA1\u67E5 \u2192 \u4FEE\u590D \u2192 \u63D0\u4EA4 \u2192 \u5408\u5E76\u5230\u672C\u5730\u96C6\u6210\u5206\u652F\u300D\u3002\u5F00\u542F\u5373\u6388\u6743 review \u901A\u8FC7\u540E\u81EA\u52A8\u63D0\u4EA4\u4E0E\u672C\u5730\u5408\u5E76\uFF0C\u4F46\u7EDD\u4E0D\u81EA\u52A8 push\u3001\u4E0D\u5408\u5E76\u8FDC\u7AEF\u6216\u4E3B\u5E72\u3001\u4E0D\u53D1\u5E03\u3002\u89E6\u53D1\u8BCD\uFF1Aauto-review\u3001\u81EA\u52A8\u5BA1\u67E5\u3001review \u540E\u81EA\u52A8\u5408\u5E76\u3001\u5BA1\u5B8C\u76F4\u63A5\u63D0\u4EA4\u5408\u5E76\u3001auto review\u3002\u4E0D\u9002\u7528\uFF1A\u53EA\u8BFB\u4EFB\u52A1\u3001\u7528\u6237\u8981\u5148\u9A8C\u6536\u6548\u679C\u7684\u6539\u52A8\uFF08\u5148\u4EA4\u4ED8\u4EA7\u7269\u7B49\u53CD\u9988\uFF09\u3002"
1147
+ };
1148
+ }
1149
+ var BODY = [
1150
+ "\u4F60\u662F\u300C\u81EA\u52A8\u5BA1\u67E5\u5408\u5E76\u300D\u6D41\u7A0B\u7684\u6267\u884C\u8005\uFF1A\u6539\u52A8\u505A\u5B8C\u540E\uFF0C\u4E0D\u7B49\u7528\u6237\u9010\u6B65\u70B9\u5934\uFF0C\u81EA\u5DF1\u628A\u5BA1\u67E5\u3001\u63D0\u4EA4\u3001\u672C\u5730\u5408\u5E76\u8D70\u5B8C\u3002",
1151
+ "",
1152
+ "## \u5F00\u542F\u6761\u4EF6\u4E0E\u8FB9\u754C",
1153
+ "- \u4EC5\u5728\u7528\u6237\u663E\u5F0F\u5F00\u542F\uFF08\u8BF4 auto-review / \u81EA\u52A8\u5BA1\u67E5\u5408\u5E76\uFF09\u540E\u4F7F\u7528\uFF1B\u5F00\u542F\u53EA\u6388\u6743**\u672C\u5730\u63D0\u4EA4\u4E0E\u672C\u5730\u96C6\u6210\u5206\u652F\u5408\u5E76**\u3002",
1154
+ "- \u6C38\u8FDC\u9700\u8981\u5F53\u6B21\u660E\u786E\u6279\u51C6\uFF1A`git push`\u3001\u5408\u5E76\u5230\u8FDC\u7AEF\u6216\u4E3B\u5E72\u5206\u652F\u3001\u53D1\u5E03/\u90E8\u7F72\u3001\u56DE\u6EDA\u3002\u5F00\u542F\u672C skill \u4E0D\u653E\u5BBD\u8FD9\u4E9B\u3002",
1155
+ "- \u9700\u8981\u7528\u6237\u4EB2\u81EA\u9A8C\u6536\u7684\u6539\u52A8\uFF08UI\u3001\u4F53\u9A8C\u7C7B\uFF09\uFF1A\u5148\u4EA4\u4ED8\u53EF\u6D4B\u8BD5\u4EA7\u7269\u5E76\u505C\u4E0B\uFF0C\u7B49\u7528\u6237\u786E\u8BA4\u300C\u53EF\u4EE5\u300D\u518D\u8FDB\u5165\u4E0B\u9762\u6D41\u7A0B\u3002",
1156
+ "",
1157
+ "## \u6D41\u7A0B",
1158
+ "1. **\u9694\u79BB**\uFF1A\u6539\u52A8\u5E94\u5DF2\u5728\u72EC\u7ACB worktree/\u5206\u652F\u91CC\uFF08\u89C1 `worktree-isolation`\uFF09\uFF1B\u4E0D\u5728\u5C31\u5148\u5EFA\u3002",
1159
+ "2. **\u6D3E reviewer**\uFF1A\u4E0E\u4F5C\u8005\u4E0D\u540C\u7684 agent \u5B9E\u4F8B\uFF0C\u53EA\u8BFB\u5BA1 diff\uFF0C\u53EA\u4F20 worktree \u8DEF\u5F84\u4E0E\u6587\u4EF6\u6E05\u5355\uFF0C\u4E0D\u5185\u5D4C diff\u3002brief \u8981\u6C42\u6700\u7EC8\u6587\u672C\u542B Verdict\uFF08APPROVE / WARNING / BLOCK\uFF09\u4E0E\u5E26\u884C\u53F7\u7684 finding\u3002",
1160
+ "3. **\u5224\u5B9A**\uFF1A",
1161
+ " - \u6700\u7EC8\u6587\u672C\u542B\u660E\u786E APPROVE \u4E14\u65E0 CRITICAL/HIGH \u2192 \u7EE7\u7EED\uFF1B",
1162
+ " - BLOCK \u2192 \u4FEE\u590D\u540E\u590D\u5BA1\uFF0C\u5FAA\u73AF\u76F4\u5230 APPROVE\uFF1B",
1163
+ " - WARNING\uFF08\u6709 HIGH\uFF09\u2192 \u505C\u4E0B\uFF0C\u628A finding \u62A5\u7ED9\u7528\u6237\u51B3\u5B9A\uFF0C\u4E0D\u81EA\u52A8\u5408\u5E76\uFF1B",
1164
+ " - \u7A7A\u56DE\u590D\u3001\u8D85\u65F6\u3001\u53EA\u8BF4\u300C\u6211\u5148\u68C0\u67E5\u300D\u90FD\u4E0D\u662F\u5BA1\u67E5\u8BC1\u636E\uFF1A\u6700\u591A\u91CD\u8BD5\u4E00\u6B21\uFF0C\u4ECD\u65E0\u7ED3\u8BBA\u5C31\u62A5\u544A `review incomplete`\uFF0C\u4EA4\u7528\u6237\u5904\u7406\u3002",
1165
+ "4. **\u63D0\u4EA4**\uFF1A\u6309\u9879\u76EE\u7684\u63D0\u4EA4\u89C4\u8303\u5199 message\uFF1B\u5982\u5B9E\u8BB0\u5F55\u8C01\u5BA1\u7684\u3001\u7ED3\u8BBA\u662F\u4EC0\u4E48\u3002\u65E0 review \u4E0D\u63D0\u4EA4\uFF08\u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\u9664\u5916\uFF0C\u987B\u5728 message \u6CE8\u660E\u539F\u56E0\uFF09\u3002",
1166
+ "5. **\u5408\u5E76**\uFF1A\u5728\u4E3B\u4ED3\u7528 `git merge --no-ff <\u5206\u652F>` \u5408\u5E76\u5230\u672C\u5730\u96C6\u6210\u5206\u652F\uFF0C\u4FDD\u7559\u5206\u652F\u5386\u53F2\u3002",
1167
+ "6. **\u6E05\u7406**\uFF1A\u5408\u5E76\u6210\u529F\u540E\uFF0C\u4E3B\u52A8\u5217\u51FA\u672C\u6B21\u4EA7\u751F\u7684\u5F85\u6E05\u7406\u8D44\u6E90\u6E05\u5355\uFF08\u786E\u5207\u7684 worktree \u76F8\u5BF9\u8DEF\u5F84\u4E0E\u5206\u652F\u540D\u79F0\uFF09\uFF1B\u83B7\u5F97\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\uFF0C\u6267\u884C `git worktree remove <worktreePath>` \u4E0E `git branch -d <branchName>` \u5B8C\u6210\u6E05\u7406\u95ED\u73AF\uFF1B\u4E25\u7981\u9759\u9ED8\u5220\u9664\u6216\u5148\u5220\u540E\u62A5\u3002",
1168
+ "7. **\u6536\u5C3E**\uFF1A\u6C47\u62A5 commit\u3001\u5408\u5E76\u4E0E\u6E05\u7406\u7ED3\u679C\u3001reviewer \u4E0E Verdict\u3001\u672A\u5904\u7406\u7684 WARNING\u3002\u5230\u6B64\u4E3A\u6B62\uFF0C\u4E0D push\u3002",
1169
+ "",
1170
+ "## \u9009 reviewer",
1171
+ "- \u6309\u5E73\u53F0\u9009\u4EBA\u5951\u7EA6\uFF1A\u6536\u85CF\u7684\u79C1\u6709\u8BA2\u9605/\u81EA\u5E26 key agent \u4F18\u5148\uFF0C\u5176\u6B21\u5176\u4ED6\u6536\u85CF\uFF0C\u518D\u5176\u6B21\u672A\u6536\u85CF\u7684\u79C1\u6709 agent\uFF1B\u4F4E\u4EF7\u80DC\u4EFB\u8005\u5373\u53EF\u3002\u53EA\u6709\u67B6\u6784/\u8BA1\u8D39/\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027\u9AD8\u98CE\u9669\u6539\u52A8\u624D\u7528\u9876\u6863\u3002",
1172
+ "- \u4F1A\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u7684 agent \u5FC5\u987B\u5148\u5F81\u5F97\u7528\u6237\u5F53\u6B21\u540C\u610F\u3002",
1173
+ "",
1174
+ "## Boundaries",
1175
+ "- \u4E0D\u66FF\u4EE3 reviewer \u4FA7\u7684\u8D28\u91CF\u95E8\uFF0C\u4E5F\u4E0D\u66FF\u4EE3\u6D4B\u8BD5\uFF1B\u6D4B\u8BD5\u6CA1\u8DD1\u8FC7\u4E0D\u8981\u5408\u5E76\u3002",
1176
+ "- \u4E0D\u4F2A\u9020 review \u8BC1\u636E\uFF1B\u4E0D\u7528 `--no-verify` \u7ED5\u8FC7\u63D0\u4EA4\u6216\u5408\u5E76\u94A9\u5B50\u3002"
1177
+ ].join("\n");
1178
+ function buildAutoReviewSkillContentBySlug(slug) {
1179
+ return buildSkillDocMarkdown({
1180
+ body: BODY,
1181
+ skillConfig: buildAutoReviewSkillConfig(slug)
1182
+ });
1183
+ }
1184
+
1115
1185
  // packages/ai/skills/worktreeSkill.ts
1116
1186
  var WORKTREE_SKILL_SLUGS = ["worktree-isolation"];
1117
- function deterministicId6(prefix, seed) {
1187
+ function deterministicId7(prefix, seed) {
1118
1188
  let h = 2166136261;
1119
1189
  for (let i = 0; i < seed.length; i++) {
1120
1190
  h ^= seed.charCodeAt(i);
@@ -1127,7 +1197,7 @@ function normalizeSkillSeed6(input) {
1127
1197
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1128
1198
  }
1129
1199
  function buildWorktreeSkillId(slug) {
1130
- return deterministicId6("01SK", normalizeSkillSeed6(slug) || slug);
1200
+ return deterministicId7("01SK", normalizeSkillSeed6(slug) || slug);
1131
1201
  }
1132
1202
  function buildWorktreeSkillPageKey(userId, slug) {
1133
1203
  return `page-${userId}-${buildWorktreeSkillId(slug)}`;
@@ -1194,7 +1264,7 @@ function buildWorktreeSkillContentBySlug(slug) {
1194
1264
 
1195
1265
  // packages/ai/skills/systematicInvestigationSkill.ts
1196
1266
  var SYSTEMATIC_INVESTIGATION_SKILL_SLUGS = ["systematic-investigation"];
1197
- function deterministicId7(prefix, seed) {
1267
+ function deterministicId8(prefix, seed) {
1198
1268
  let h = 2166136261;
1199
1269
  for (let i = 0; i < seed.length; i++) {
1200
1270
  h ^= seed.charCodeAt(i);
@@ -1207,7 +1277,7 @@ function normalizeSkillSeed7(input) {
1207
1277
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1208
1278
  }
1209
1279
  function buildSystematicinvestigationSkillId(slug) {
1210
- return deterministicId7("01SK", normalizeSkillSeed7(slug) || slug);
1280
+ return deterministicId8("01SK", normalizeSkillSeed7(slug) || slug);
1211
1281
  }
1212
1282
  function buildSystematicinvestigationSkillPageKey(userId, slug) {
1213
1283
  return `page-${userId}-${buildSystematicinvestigationSkillId(slug)}`;
@@ -1231,7 +1301,7 @@ function buildSystematicinvestigationSkillContentBySlug(slug) {
1231
1301
 
1232
1302
  // packages/ai/skills/showMeSkill.ts
1233
1303
  var SHOW_ME_SKILL_SLUGS = ["show-me"];
1234
- function deterministicId8(prefix, seed) {
1304
+ function deterministicId9(prefix, seed) {
1235
1305
  let h = 2166136261;
1236
1306
  for (let i = 0; i < seed.length; i++) {
1237
1307
  h ^= seed.charCodeAt(i);
@@ -1244,7 +1314,7 @@ function normalizeSkillSeed8(input) {
1244
1314
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1245
1315
  }
1246
1316
  function buildShowmeSkillId(slug) {
1247
- return deterministicId8("01SK", normalizeSkillSeed8(slug) || slug);
1317
+ return deterministicId9("01SK", normalizeSkillSeed8(slug) || slug);
1248
1318
  }
1249
1319
  function buildShowmeSkillPageKey(userId, slug) {
1250
1320
  return `page-${userId}-${buildShowmeSkillId(slug)}`;
@@ -1268,7 +1338,7 @@ function buildShowmeSkillContentBySlug(slug) {
1268
1338
 
1269
1339
  // packages/ai/skills/cavemanSkill.ts
1270
1340
  var CAVEMAN_SKILL_SLUGS = ["caveman"];
1271
- function deterministicId9(prefix, seed) {
1341
+ function deterministicId10(prefix, seed) {
1272
1342
  let h = 2166136261;
1273
1343
  for (let i = 0; i < seed.length; i++) {
1274
1344
  h ^= seed.charCodeAt(i);
@@ -1281,7 +1351,7 @@ function normalizeSkillSeed9(input) {
1281
1351
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1282
1352
  }
1283
1353
  function buildCavemanSkillId(slug) {
1284
- return deterministicId9("01SK", normalizeSkillSeed9(slug) || slug);
1354
+ return deterministicId10("01SK", normalizeSkillSeed9(slug) || slug);
1285
1355
  }
1286
1356
  function buildCavemanSkillPageKey(userId, slug) {
1287
1357
  return `page-${userId}-${buildCavemanSkillId(slug)}`;
@@ -1305,7 +1375,7 @@ function buildCavemanSkillContentBySlug(slug) {
1305
1375
 
1306
1376
  // packages/ai/skills/skillCreatorSkill.ts
1307
1377
  var SKILL_CREATOR_SKILL_SLUGS = ["skill-creator"];
1308
- function deterministicId10(prefix, seed) {
1378
+ function deterministicId11(prefix, seed) {
1309
1379
  let h = 2166136261;
1310
1380
  for (let i = 0; i < seed.length; i++) {
1311
1381
  h ^= seed.charCodeAt(i);
@@ -1318,7 +1388,7 @@ function normalizeSkillSeed10(input) {
1318
1388
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1319
1389
  }
1320
1390
  function buildSkillCreatorSkillId(slug) {
1321
- return deterministicId10("01SK", normalizeSkillSeed10(slug) || slug);
1391
+ return deterministicId11("01SK", normalizeSkillSeed10(slug) || slug);
1322
1392
  }
1323
1393
  function buildSkillCreatorSkillPageKey(userId, slug) {
1324
1394
  return `page-${userId}-${buildSkillCreatorSkillId(slug)}`;
@@ -1342,7 +1412,7 @@ function buildSkillCreatorSkillContentBySlug(slug) {
1342
1412
 
1343
1413
  // packages/ai/skills/agentProviderSetupSkill.ts
1344
1414
  var AGENT_PROVIDER_SETUP_SKILL_SLUGS = ["agent-provider-setup"];
1345
- function deterministicId11(prefix, seed) {
1415
+ function deterministicId12(prefix, seed) {
1346
1416
  let h = 2166136261;
1347
1417
  for (let i = 0; i < seed.length; i++) {
1348
1418
  h ^= seed.charCodeAt(i);
@@ -1355,7 +1425,7 @@ function normalizeSkillSeed11(input) {
1355
1425
  return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1356
1426
  }
1357
1427
  function buildAgentProviderSetupSkillId(slug) {
1358
- return deterministicId11("01SK", normalizeSkillSeed11(slug) || slug);
1428
+ return deterministicId12("01SK", normalizeSkillSeed11(slug) || slug);
1359
1429
  }
1360
1430
  function buildAgentProviderSetupSkillPageKey(userId, slug) {
1361
1431
  return `page-${userId}-${buildAgentProviderSetupSkillId(slug)}`;
@@ -1486,6 +1556,13 @@ var SOURCES = [
1486
1556
  buildConfig: buildSearchSpaceSkillConfig,
1487
1557
  buildContent: buildSearchSpaceSkillContentBySlug
1488
1558
  },
1559
+ {
1560
+ slugs: AUTO_REVIEW_SKILL_SLUGS,
1561
+ buildSkillId: buildAutoReviewSkillId,
1562
+ buildPageKey: buildAutoReviewSkillPageKey,
1563
+ buildConfig: buildAutoReviewSkillConfig,
1564
+ buildContent: buildAutoReviewSkillContentBySlug
1565
+ },
1489
1566
  {
1490
1567
  slugs: WORKTREE_SKILL_SLUGS,
1491
1568
  buildSkillId: buildWorktreeSkillId,