nolo-cli 0.106.0-alpha.1 → 0.106.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{_executeModel-C5ZUOC7O.js → _executeModel-EP6HAX3W.js} +77 -69
- package/action-GVA5ARSJ.js +20 -0
- package/{addContentAction-O7R66HEX.js → addContentAction-NZZNAVCB.js} +13 -12
- package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-5HVGEIXI.js} +19 -20
- package/{agentDeleteCommand-YB3S2LPY.js → agentDeleteCommand-M25A6UGB.js} +118 -43
- package/{agentEmailCommands-YBCBTG6X.js → agentEmailCommands-RUL4NL64.js} +99 -89
- package/agentListCommands-KSPFKHFO.js +741 -0
- package/{agentMachineCommands-QHYLBTVW.js → agentMachineCommands-IHBB6PHD.js} +48 -44
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-ND4S2Q6Q.js} +97 -2
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
- package/agentRecordCommands-7OKIBN6H.js +138 -0
- package/agentRunCommand-GBKJTQQU.js +167 -0
- package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
- package/{agentRuntimeLocal-FRUE5P2V.js → agentRuntimeLocal-E5HXZNXZ.js} +44 -40
- package/{agentSlice-7OEXULAY.js → agentSlice-7T3ZLYET.js} +15 -14
- package/{appDeleteCommands-JPWTSFID.js → appDeleteCommands-TTJUYTQN.js} +46 -42
- package/{appDeployCommands-YCVY2UYO.js → appDeployCommands-65WYK2TQ.js} +46 -42
- package/{appDeployStatusCommands-JMCEIKTI.js → appDeployStatusCommands-U4XESYYG.js} +46 -42
- package/{appGetCommands-EXWT3QAE.js → appGetCommands-VNHZZC4D.js} +46 -42
- package/{appListCommands-PKRLSWRE.js → appListCommands-O667ZEU6.js} +46 -42
- package/{authCommand-F4EFRRX6.js → authCommand-SUHHTVHA.js} +118 -24
- package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
- package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-PUGT65WS.js} +11 -9
- package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
- package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
- package/{chunk-ZNV445LB.js → chunk-2NGKYC3L.js} +29 -9
- package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
- package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
- package/{chunk-XA2FJW4L.js → chunk-3SXZ6SUC.js} +11 -9
- package/{chunk-UKZDAFYT.js → chunk-3VKDWQMJ.js} +6 -10
- package/chunk-4LCOCOR5.js +50 -0
- package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
- package/{chunk-PQFHGD77.js → chunk-4VDS344D.js} +161 -14
- package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
- package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
- package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
- package/{chunk-GQBOR3G6.js → chunk-5F7UKMLN.js} +8 -4
- package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
- package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
- package/{chunk-YCJN2RA3.js → chunk-6AIURTE7.js} +20 -11
- package/{chunk-VLTIYV3X.js → chunk-7I25CBT5.js} +34 -8
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-S4VLC46A.js → chunk-AM4G3LDJ.js} +66 -54
- package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
- package/{chunk-TJGWNDGO.js → chunk-AZB6HR4I.js} +846 -276
- package/{chunk-L5UXH3B2.js → chunk-BIH7KCDJ.js} +58 -9
- package/{chunk-UZGQNTVW.js → chunk-BPLIXNC6.js} +8 -6
- package/chunk-CEQ75WPL.js +915 -0
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-GPCZ7UXG.js → chunk-DBKRC5O2.js} +1 -1
- package/chunk-DJ3JABG5.js +7990 -0
- package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
- package/{chunk-UOBDA2JS.js → chunk-DSXRVBTA.js} +118 -90
- package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
- package/{chunk-HJUYAD4A.js → chunk-EBS4FKW4.js} +5 -5
- package/{chunk-LC43IGO4.js → chunk-EHGIEGLI.js} +834 -962
- package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
- package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
- package/{chunk-TOP2VXOR.js → chunk-FJKZSR5P.js} +5 -5
- package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
- package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
- package/{chunk-ZCYXJSTU.js → chunk-GMP3NBAA.js} +65 -95
- package/chunk-GMZLP5DV.js +82 -0
- package/{chunk-OIVSQH2O.js → chunk-GU7DC2TD.js} +300 -5
- package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
- package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
- package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
- package/{chunk-RJXZDT2P.js → chunk-HNA5KV37.js} +23 -28
- package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
- package/{chunk-ACTMNVHM.js → chunk-I5YMDACN.js} +1 -1
- package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
- package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
- package/{chunk-Q67DOFOO.js → chunk-IYIXAIEB.js} +199 -92
- package/{chunk-BP4XNZRM.js → chunk-JIXGJTBU.js} +4 -4
- package/{chunk-OEVAY4J6.js → chunk-JWNBEIME.js} +18 -20
- package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
- package/{chunk-JZL6EHZR.js → chunk-LGWABBTZ.js} +47 -67
- package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
- package/{chunk-GEPUP7OO.js → chunk-LOPP5VT6.js} +3 -3
- package/{chunk-DHDMC6FO.js → chunk-LUBFABMJ.js} +15 -14
- package/chunk-LWLNLZC5.js +265 -0
- package/{chunk-BNGW5ASC.js → chunk-LYLO5U3H.js} +15 -2
- package/{chunk-4OEFYTWL.js → chunk-MJ3CRU77.js} +85 -50
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-NA35QHCF.js → chunk-NTNKA5VL.js} +1 -1
- package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
- package/chunk-NWENLDMM.js +42 -0
- package/chunk-O7SVKKLY.js +875 -0
- package/{chunk-FM2YTE6D.js → chunk-OAXBDMT7.js} +1 -1
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-EYAQT56M.js → chunk-ODTBO4W6.js} +9 -6
- package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
- package/{chunk-EEGDMATE.js → chunk-OQ5IVGCV.js} +86 -81
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-KQ4ONNQD.js → chunk-OYTWDOQV.js} +155 -8
- package/{chunk-JRQFUXY7.js → chunk-OZ2IIIRP.js} +99 -22
- package/{chunk-WV42OMV7.js → chunk-PFLF4R4E.js} +8 -8
- package/{chunk-J4MOO56S.js → chunk-QDH32WF5.js} +10 -2
- package/{chunk-3DII57IT.js → chunk-QVAWUJAJ.js} +1 -1
- package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
- package/{chunk-6OZ36FXI.js → chunk-SJ7CUF65.js} +22 -4
- package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
- package/{chunk-ETI2NYVF.js → chunk-SYEBIZOF.js} +4 -4
- package/{chunk-J3WULTWA.js → chunk-TLKXNTQJ.js} +19 -17
- package/chunk-TLYSGGPG.js +15 -0
- package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
- package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
- package/chunk-UM7TA3K4.js +1008 -0
- package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
- package/chunk-VBQGO5NX.js +164 -0
- package/chunk-VIWDGTDA.js +8 -0
- package/chunk-VJVNU77E.js +83 -0
- package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
- package/chunk-VYKXIHRP.js +13692 -0
- package/chunk-VZLO4XJD.js +17 -0
- package/{chunk-DNCEALKX.js → chunk-WMWYWYK2.js} +22 -29
- package/{chunk-H56FOERC.js → chunk-XDQ7PHU3.js} +567 -684
- package/{chunk-AEOE4Z6Q.js → chunk-XGOHDYM2.js} +39 -15
- package/{chunk-53HEEOTT.js → chunk-XLWMNFBZ.js} +83 -16
- package/{chunk-V4MJDUSR.js → chunk-YFU5EELM.js} +2 -2
- package/{chunk-IUTWFZOX.js → chunk-YQFLBS6A.js} +68 -46
- package/chunk-YV25TM3R.js +780 -0
- package/chunk-ZRAU6T47.js +56 -0
- package/{chunk-5H7KJX7J.js → chunk-ZVGXD7UJ.js} +5 -5
- package/{chunk-H62HCIUP.js → chunk-ZYM73IHG.js} +36 -22
- package/commandRegistry-6QIAUQDS.js +833 -0
- package/{contentThunks-AZVYDLM4.js → contentThunks-5DDMUQ7B.js} +39 -36
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-V55DNYCE.js → createAgentAutomationAction-NQ6AZM42.js} +40 -37
- package/createDialogAction-QZ6X4A7O.js +70 -0
- package/{createPageAction-I3HH23O3.js → createPageAction-NCGEJBVK.js} +47 -43
- package/{chunk-GDNQO3QR.js → cursorProvider-YGGNMVWX.js} +2751 -10172
- package/{dbSlice-XVWBAGYN.js → dbSlice-RCZ7NRAF.js} +12 -11
- package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
- package/{dialogCommands-YVMHDEOX.js → dialogCommands-OGQLEF63.js} +49 -46
- package/{dialogSlice-LVJ67QWE.js → dialogSlice-GIKNUHNW.js} +57 -37
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-7UTWDYJU.js → docCreateCommands-RW6LNYT6.js} +48 -44
- package/{docDeleteCommands-GG6BJ4PS.js → docDeleteCommands-Z742TRNY.js} +49 -45
- package/{docReadCommands-QHMQVSLP.js → docReadCommands-5DIGA42Y.js} +47 -43
- package/{docStore-UJNL6SBT.js → docStore-6GUOZH52.js} +17 -13
- package/{docUpdateCommands-QPL6IVUK.js → docUpdateCommands-ZFZ2QEVK.js} +48 -44
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
- package/{getPricing-LUSEABA6.js → getPricing-QVSNUFZ6.js} +4 -4
- package/{handleSendMessageAction-CCL7ETCL.js → handleSendMessageAction-B2VXOLMM.js} +109 -42
- package/index.js +87 -884
- package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
- package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
- package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
- package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
- package/{machineCommands-2QNINBNI.js → machineCommands-AI3N7JHQ.js} +93 -83
- package/machineWsRunDispatch-RPF2D6VV.js +154 -0
- package/{memberThunks-QGFLFVCI.js → memberThunks-YICJI4IS.js} +20 -18
- package/{models-T3SG6MJ5.js → models-FTNFVO3D.js} +2 -2
- package/oauthTokenStore-ITEB663N.js +23 -0
- package/package.json +1 -1
- package/pdf-U6KSUEZZ.js +26435 -0
- package/processSpawn-SOAV3FEV.js +11 -0
- package/profileConfig-ZGOFORWV.js +43 -0
- package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-OJJXQ7NM.js} +7 -7
- package/{providerRegistry-757OWH3O.js → providerRegistry-DXFBDCGQ.js} +11 -7
- package/{read-COE3ZYR6.js → read-XMBM52Y4.js} +8 -7
- package/{readDocTool-5USN4A6V.js → readDocTool-LAQHKCVT.js} +5 -3
- package/{readlineWorkspace-4GULS23D.js → readlineWorkspace-EPUCVZ73.js} +2594 -2030
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-HDUI2MU3.js} +22 -26
- package/{runAgentClientLoop-MUMLW2SA.js → runAgentClientLoop-OXQMDGAN.js} +78 -71
- package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
- package/runtimeModeArgs-2Y7BALTO.js +31 -0
- package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-ADBVOP4O.js} +16 -14
- package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-PXVXQJ62.js} +23 -27
- package/{chunk-AFUORTY4.js → settingThunks-G2MJRKUE.js} +226 -940
- package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-BMXKR7H6.js → spaceCommands-Z662QYY6.js} +51 -47
- package/{streamAgentChatTurn-6EOS5PNG.js → streamAgentChatTurn-YJYEJHP7.js} +214 -114
- package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-Z3RZACGF.js} +19 -20
- package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
- package/{toolApiClient-QVJ6HDNN.js → toolApiClient-AD7CXTA4.js} +4 -3
- package/tools-GHI3WBEI.js +117 -0
- package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-WTC6GCQC.js} +25 -23
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-4YUVCBDU.js → updateDialogTitleAction-GJCNWTPY.js} +84 -45
- package/action-YVYQEAAV.js +0 -31
- package/agentListCommands-3GWH4E4G.js +0 -410
- package/agentRecordCommands-P76DPWKV.js +0 -128
- package/agentRunCommand-EQPL4F4K.js +0 -156
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-ZBDDI2E5.js +0 -186
- package/chunk-CQ3WA2NE.js +0 -299
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-PUOC4YRO.js +0 -394
- package/chunk-Q5FJJ6XI.js +0 -103
- package/chunk-S7Z2HMCN.js +0 -25
- package/chunk-WC6UUQ2C.js +0 -20923
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/createDialogAction-H6URYLIZ.js +0 -65
- package/machineWsRunDispatch-S3XXOKR7.js +0 -144
- package/settingSlice-ZQZVUPKK.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-4AJZHAK3.js +0 -110
- package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
- package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ANTIGRAVITY_CLOUD_CODE_BASE_URL
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BPLIXNC6.js";
|
|
4
4
|
import {
|
|
5
5
|
kimiCodeModels,
|
|
6
6
|
moonshotModels,
|
|
@@ -9,13 +9,16 @@ import {
|
|
|
9
9
|
qwenTokenPlanModels,
|
|
10
10
|
stepfunModels,
|
|
11
11
|
stepfunStepPlanModels
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GU7DC2TD.js";
|
|
13
13
|
import {
|
|
14
14
|
PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
|
|
15
15
|
PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
|
|
16
16
|
PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
|
|
17
17
|
PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IYIXAIEB.js";
|
|
19
|
+
import {
|
|
20
|
+
asTrimmedLowercaseString
|
|
21
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
19
22
|
|
|
20
23
|
// packages/integrations/commandcode/models.ts
|
|
21
24
|
var commandCodeModels = [
|
|
@@ -203,6 +206,60 @@ var deepseekModels = [
|
|
|
203
206
|
}
|
|
204
207
|
];
|
|
205
208
|
|
|
209
|
+
// packages/integrations/mistral/models.ts
|
|
210
|
+
var mistralModels = [
|
|
211
|
+
// ── Vibe 编码档(订阅主打,Vibe CLI 默认用最新档)──
|
|
212
|
+
{
|
|
213
|
+
name: "mistral-vibe-cli-latest",
|
|
214
|
+
displayName: "Mistral Vibe CLI",
|
|
215
|
+
hasVision: true,
|
|
216
|
+
contextWindow: 262144,
|
|
217
|
+
jsonOutput: true,
|
|
218
|
+
fnCall: true,
|
|
219
|
+
supportsTool: true,
|
|
220
|
+
price: { input: 0, output: 0 },
|
|
221
|
+
provider: "mistral",
|
|
222
|
+
description: "Mistral Vibe \u9ED8\u8BA4\u7F16\u7801\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u9762\u5411 agentic coding\u3002"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: "mistral-vibe-cli-fast",
|
|
226
|
+
displayName: "Mistral Vibe CLI Fast",
|
|
227
|
+
hasVision: true,
|
|
228
|
+
contextWindow: 262144,
|
|
229
|
+
jsonOutput: true,
|
|
230
|
+
fnCall: true,
|
|
231
|
+
supportsTool: true,
|
|
232
|
+
price: { input: 0, output: 0 },
|
|
233
|
+
provider: "mistral",
|
|
234
|
+
description: "Vibe \u7F16\u7801\u6863\u7684\u5FEB\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u4E0E latest \u540C\u4E3A 262k \u4E0A\u4E0B\u6587\u7684\u7F16\u7801\u6863\u3002"
|
|
235
|
+
},
|
|
236
|
+
// ── 通用档 ──
|
|
237
|
+
{
|
|
238
|
+
name: "mistral-medium-3.5",
|
|
239
|
+
displayName: "Mistral Medium 3.5",
|
|
240
|
+
hasVision: true,
|
|
241
|
+
contextWindow: 262144,
|
|
242
|
+
jsonOutput: true,
|
|
243
|
+
fnCall: true,
|
|
244
|
+
supportsTool: true,
|
|
245
|
+
price: { input: 0, output: 0 },
|
|
246
|
+
provider: "mistral",
|
|
247
|
+
description: "Mistral \u4E2D\u6863\u901A\u7528\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u591A\u6A21\u6001\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u8F7B\u91CF\u7F16\u7801\u3002"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
name: "mistral-large-latest",
|
|
251
|
+
displayName: "Mistral Large (latest)",
|
|
252
|
+
hasVision: true,
|
|
253
|
+
contextWindow: 262144,
|
|
254
|
+
jsonOutput: true,
|
|
255
|
+
fnCall: true,
|
|
256
|
+
supportsTool: true,
|
|
257
|
+
price: { input: 0, output: 0 },
|
|
258
|
+
provider: "mistral",
|
|
259
|
+
description: "Mistral \u65D7\u8230\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u8BA2\u9605\u989D\u5EA6\u6D88\u8017\u6700\u5FEB\uFF0C\u9002\u5408\u96BE\u9898\u515C\u5E95\u3002"
|
|
260
|
+
}
|
|
261
|
+
];
|
|
262
|
+
|
|
206
263
|
// packages/ai/agent/providerRegistry.ts
|
|
207
264
|
var QWEN_MODEL_OPTIONS = qwenModels.map((m, i) => ({
|
|
208
265
|
id: m.name,
|
|
@@ -267,6 +324,23 @@ var STEPFUN_STEP_PLAN_MODEL_OPTIONS = stepfunStepPlanModels.map((m, i) => ({
|
|
|
267
324
|
hasVision: m.hasVision,
|
|
268
325
|
...i === 0 ? { recommended: true } : {}
|
|
269
326
|
}));
|
|
327
|
+
var MISTRAL_MODEL_OPTIONS = mistralModels.map((m, i) => ({
|
|
328
|
+
id: m.name,
|
|
329
|
+
label: m.displayName ?? m.name,
|
|
330
|
+
hasVision: m.hasVision,
|
|
331
|
+
...i === 0 ? { recommended: true } : {}
|
|
332
|
+
}));
|
|
333
|
+
var TOGETHER_MODEL_OPTIONS = [
|
|
334
|
+
{
|
|
335
|
+
id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
336
|
+
label: "Llama 3.3 70B Instruct Turbo",
|
|
337
|
+
recommended: true
|
|
338
|
+
},
|
|
339
|
+
{ id: "deepseek-ai/DeepSeek-V4-Pro-0813", label: "DeepSeek V4 Pro" },
|
|
340
|
+
{ id: "Qwen/Qwen3.6-Plus", label: "Qwen3.6 Plus" },
|
|
341
|
+
{ id: "zai-org/GLM-5.2", label: "GLM-5.2" },
|
|
342
|
+
{ id: "openai/gpt-oss-120b", label: "GPT-OSS 120B" }
|
|
343
|
+
];
|
|
270
344
|
var SUBSCRIPTION_OAUTH_PROVIDERS = [
|
|
271
345
|
{
|
|
272
346
|
kind: "oauth",
|
|
@@ -279,6 +353,9 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
|
|
|
279
353
|
defaultReasoningEffort: "medium",
|
|
280
354
|
modelOptions: [
|
|
281
355
|
{ id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true, recommended: true },
|
|
356
|
+
// GPT-6.1 Sol 已列入 Codex 订阅通道选型指南,但按账号灰度("when available
|
|
357
|
+
// to your account and client"),未开通的账号选它会 400,不影响其他选项。
|
|
358
|
+
{ id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true },
|
|
282
359
|
{ id: "gpt-5.6-sol", label: "GPT-5.6 Sol", hasVision: true },
|
|
283
360
|
{ id: "gpt-5.6-terra", label: "GPT-5.6 Terra", hasVision: true },
|
|
284
361
|
{ id: "gpt-5.6-luna", label: "GPT-5.6 Luna", hasVision: true }
|
|
@@ -324,11 +401,13 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
|
|
|
324
401
|
description: "Anthropic Subscription",
|
|
325
402
|
apiKeyRef: "claude",
|
|
326
403
|
provider: "anthropic",
|
|
327
|
-
defaultModel: "claude-sonnet-5",
|
|
404
|
+
defaultModel: "claude-sonnet-5-5",
|
|
328
405
|
defaultReasoningEffort: "high",
|
|
329
406
|
modelOptions: [
|
|
407
|
+
{ id: "claude-opus-5-5", label: "Claude Opus 5.5", hasVision: true, recommended: true },
|
|
408
|
+
{ id: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", hasVision: true },
|
|
330
409
|
{ id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
|
|
331
|
-
{ id: "claude-opus-5", label: "Claude Opus 5", hasVision: true
|
|
410
|
+
{ id: "claude-opus-5", label: "Claude Opus 5", hasVision: true },
|
|
332
411
|
{ id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
|
|
333
412
|
{ id: "claude-fable-5", label: "Claude Fable 5", hasVision: true }
|
|
334
413
|
]
|
|
@@ -533,13 +612,31 @@ var CUSTOM_API_KEY_TEMPLATES = [
|
|
|
533
612
|
commercialKind: "subscription",
|
|
534
613
|
accessVariant: "token_plan_endpoint"
|
|
535
614
|
},
|
|
615
|
+
{
|
|
616
|
+
kind: "api_key_template",
|
|
617
|
+
id: "mistral-plan",
|
|
618
|
+
label: "Mistral \u8BA2\u9605 (Vibe/Pro)",
|
|
619
|
+
description: "Mistral \u5B98\u65B9\u8BA2\u9605\uFF08Free $10 / Pro $30 \u6708\u5EA6 API credits\uFF0C\u8DE8 Studio/API/Vibe \u5171\u4EAB\uFF1BKey \u4ECE chat.mistral.ai \u203A Code \u203A Extensions \u751F\u6210\uFF09",
|
|
620
|
+
provider: "mistral",
|
|
621
|
+
baseUrl: "https://api.mistral.ai/v1",
|
|
622
|
+
defaultModel: "mistral-vibe-cli-latest",
|
|
623
|
+
modelOptions: MISTRAL_MODEL_OPTIONS,
|
|
624
|
+
keyFormatHint: "\u5728 chat.mistral.ai \u203A Code \u203A Extensions \u203A Vibe API Key \u751F\u6210\uFF0845 \u4F4D\uFF0C\u5F62\u5982 xxxxx\u2026nb3A\uFF09\uFF1B\u4E5F\u53EF\u7528 Studio \u7684 API Key\u3002\u4E24\u8005\u90FD\u76F4\u63A5\u6709\u6548\u4E8E api.mistral.ai/v1\u3002",
|
|
625
|
+
commercialKind: "subscription",
|
|
626
|
+
accessVariant: "token_plan_endpoint"
|
|
627
|
+
},
|
|
536
628
|
{
|
|
537
629
|
kind: "api_key_template",
|
|
538
630
|
id: "openai-api",
|
|
539
631
|
label: "OpenAI API",
|
|
540
632
|
provider: "openai",
|
|
541
633
|
baseUrl: "https://api.openai.com/v1",
|
|
542
|
-
defaultModel: "gpt-6-
|
|
634
|
+
defaultModel: "gpt-6.1-sol",
|
|
635
|
+
modelOptions: [
|
|
636
|
+
{ id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true, recommended: true },
|
|
637
|
+
{ id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true },
|
|
638
|
+
{ id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true }
|
|
639
|
+
],
|
|
543
640
|
commercialKind: "api",
|
|
544
641
|
accessVariant: "metered_key"
|
|
545
642
|
},
|
|
@@ -549,7 +646,7 @@ var CUSTOM_API_KEY_TEMPLATES = [
|
|
|
549
646
|
label: "Anthropic API",
|
|
550
647
|
provider: "anthropic",
|
|
551
648
|
baseUrl: "https://api.anthropic.com",
|
|
552
|
-
defaultModel: "claude-sonnet-5",
|
|
649
|
+
defaultModel: "claude-sonnet-5-5",
|
|
553
650
|
apiKeyHeader: "x-api-key",
|
|
554
651
|
commercialKind: "api",
|
|
555
652
|
accessVariant: "metered_key"
|
|
@@ -575,6 +672,19 @@ var CUSTOM_API_KEY_TEMPLATES = [
|
|
|
575
672
|
commercialKind: "api",
|
|
576
673
|
accessVariant: "metered_key"
|
|
577
674
|
},
|
|
675
|
+
// anthropic/claude-sonnet-5、qwen/qwen3.8-27b),不维护易腐的静态清单。
|
|
676
|
+
{
|
|
677
|
+
kind: "api_key_template",
|
|
678
|
+
id: "openrouter-api",
|
|
679
|
+
label: "OpenRouter API \u7528\u91CF\u8BA1\u8D39",
|
|
680
|
+
description: "OpenRouter \u805A\u5408\u7F51\u5173\uFF08OpenAI \u517C\u5BB9\uFF0C\u4E00\u4E2A Key \u8BBF\u95EE\u591A\u5BB6\u6A21\u578B\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
|
|
681
|
+
provider: "openrouter",
|
|
682
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
683
|
+
defaultModel: "anthropic/claude-sonnet-5",
|
|
684
|
+
keyFormatHint: "\u5728 openrouter.ai/keys \u521B\u5EFA\uFF0C\u5F62\u5982 sk-or-\u2026",
|
|
685
|
+
commercialKind: "api",
|
|
686
|
+
accessVariant: "metered_key"
|
|
687
|
+
},
|
|
578
688
|
// DeepSeek 模型统一改走 nolo provider(Ollama Cloud,thinking=max 快 28-49%)。
|
|
579
689
|
// 现按用户选择回归:自带 Key 的 metered 通道与平台托管通道并存,互不影响。
|
|
580
690
|
{
|
|
@@ -649,6 +759,21 @@ var CUSTOM_API_KEY_TEMPLATES = [
|
|
|
649
759
|
defaultModel: "MiniMax-Text-01",
|
|
650
760
|
commercialKind: "api",
|
|
651
761
|
accessVariant: "metered_key"
|
|
762
|
+
},
|
|
763
|
+
// Together AI 平台:用户自带 Key 的 metered 通道(复用 OpenAI-compatible 通道,
|
|
764
|
+
// apiSource:"custom",不扣平台积分)。模型 ID 为 namespaced 全 ID,直传不 remap;
|
|
765
|
+
// OpenAI 兼容 base_url = https://api.together.ai/v1(官方兼容文档在案)。
|
|
766
|
+
{
|
|
767
|
+
kind: "api_key_template",
|
|
768
|
+
id: "together-api",
|
|
769
|
+
label: "Together AI API \u7528\u91CF\u8BA1\u8D39",
|
|
770
|
+
description: "Together AI\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
|
|
771
|
+
provider: "together",
|
|
772
|
+
baseUrl: "https://api.together.ai/v1",
|
|
773
|
+
defaultModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
774
|
+
modelOptions: TOGETHER_MODEL_OPTIONS,
|
|
775
|
+
commercialKind: "api",
|
|
776
|
+
accessVariant: "metered_key"
|
|
652
777
|
}
|
|
653
778
|
];
|
|
654
779
|
var ALL_PROVIDER_REGISTRY = [
|
|
@@ -666,6 +791,26 @@ function isCustomApiKeyTemplate(id) {
|
|
|
666
791
|
if (!id) return false;
|
|
667
792
|
return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
|
|
668
793
|
}
|
|
794
|
+
function normalizeEndpointUrl(url) {
|
|
795
|
+
return asTrimmedLowercaseString(url).replace(/\/+$/, "");
|
|
796
|
+
}
|
|
797
|
+
var SUBSCRIPTION_ENDPOINT_URLS = new Set(
|
|
798
|
+
CUSTOM_API_KEY_TEMPLATES.filter((t) => t.commercialKind === "subscription").map(
|
|
799
|
+
(t) => normalizeEndpointUrl(t.baseUrl)
|
|
800
|
+
)
|
|
801
|
+
);
|
|
802
|
+
var SUBSCRIPTION_OAUTH_APIKEY_REFS = new Set(
|
|
803
|
+
SUBSCRIPTION_OAUTH_PROVIDERS.map((p) => asTrimmedLowercaseString(p.apiKeyRef))
|
|
804
|
+
);
|
|
805
|
+
function isSubscriptionEndpoint(customProviderUrl) {
|
|
806
|
+
if (typeof customProviderUrl !== "string") return false;
|
|
807
|
+
const normalized = normalizeEndpointUrl(customProviderUrl);
|
|
808
|
+
return normalized.length > 0 && SUBSCRIPTION_ENDPOINT_URLS.has(normalized);
|
|
809
|
+
}
|
|
810
|
+
function isSubscriptionOAuthCredential(apiKeyRef) {
|
|
811
|
+
const ref = asTrimmedLowercaseString(apiKeyRef ?? "");
|
|
812
|
+
return ref.length > 0 && SUBSCRIPTION_OAUTH_APIKEY_REFS.has(ref);
|
|
813
|
+
}
|
|
669
814
|
|
|
670
815
|
export {
|
|
671
816
|
SUBSCRIPTION_OAUTH_PROVIDERS,
|
|
@@ -673,5 +818,7 @@ export {
|
|
|
673
818
|
ALL_PROVIDER_REGISTRY,
|
|
674
819
|
findProviderById,
|
|
675
820
|
isSubscriptionOAuthProvider,
|
|
676
|
-
isCustomApiKeyTemplate
|
|
821
|
+
isCustomApiKeyTemplate,
|
|
822
|
+
isSubscriptionEndpoint,
|
|
823
|
+
isSubscriptionOAuthCredential
|
|
677
824
|
};
|
|
@@ -6,20 +6,20 @@ import {
|
|
|
6
6
|
buildBuiltinObjectSkillDbKey,
|
|
7
7
|
buildBuiltinObjectSkillPageContent,
|
|
8
8
|
buildCodeWorkDiscipline
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LUBFABMJ.js";
|
|
10
10
|
import {
|
|
11
11
|
buildSkillDocMarkdown,
|
|
12
12
|
resolvePageSkillMetadata
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import {
|
|
15
|
-
canonicalizeToolNames
|
|
16
|
-
} from "./chunk-O6OSWFZQ.js";
|
|
13
|
+
} from "./chunk-DMXLXZKL.js";
|
|
17
14
|
import {
|
|
18
15
|
nolotusId
|
|
19
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-TLYSGGPG.js";
|
|
17
|
+
import {
|
|
18
|
+
canonicalizeToolNames
|
|
19
|
+
} from "./chunk-IHPDK6UD.js";
|
|
20
20
|
import {
|
|
21
21
|
asNonEmptyStringArray
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-OKGVNZTL.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. \
|
|
256
|
-
"4. \
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BUILTIN_PLATFORM_AGENT_KEYS
|
|
3
|
-
} from "./chunk-BNGW5ASC.js";
|
|
4
1
|
import {
|
|
5
2
|
getRuntimeServerContext,
|
|
6
3
|
partitionReadServers,
|
|
@@ -10,17 +7,20 @@ import {
|
|
|
10
7
|
scheduleExistingRecordReplication,
|
|
11
8
|
shouldReplaceLocalWithRemoteRecord,
|
|
12
9
|
shouldReplicateLocalRecord
|
|
13
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-O7SVKKLY.js";
|
|
11
|
+
import {
|
|
12
|
+
shouldReplaceWithNextRecord
|
|
13
|
+
} from "./chunk-D2MDMY2M.js";
|
|
14
|
+
import {
|
|
15
|
+
BUILTIN_PLATFORM_AGENT_KEYS
|
|
16
|
+
} from "./chunk-LYLO5U3H.js";
|
|
14
17
|
import {
|
|
15
18
|
fetchFromClientDb,
|
|
16
19
|
fetchFromServer,
|
|
17
20
|
isAbortError,
|
|
18
21
|
isReadTimeoutError,
|
|
19
22
|
logger
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import {
|
|
22
|
-
shouldReplaceWithNextRecord
|
|
23
|
-
} from "./chunk-GBRG75BQ.js";
|
|
23
|
+
} from "./chunk-HIM3FCLF.js";
|
|
24
24
|
import {
|
|
25
25
|
NOLO_CLUSTER_SERVERS,
|
|
26
26
|
normalizeKnownServerOrigin
|
|
@@ -153,6 +153,13 @@ function slateToSimplifiedMarkdown(nodes, options = {}) {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
// packages/ai/tools/readDocTool.ts
|
|
156
|
+
var resolvePageReadMarkdown = (pageData) => {
|
|
157
|
+
const slateData = pageData.slateData;
|
|
158
|
+
if (Array.isArray(slateData) && slateData.length > 0) {
|
|
159
|
+
return slateToSimplifiedMarkdown(slateData);
|
|
160
|
+
}
|
|
161
|
+
return typeof pageData.content === "string" ? pageData.content : "";
|
|
162
|
+
};
|
|
156
163
|
var readDocFunctionSchema = {
|
|
157
164
|
name: "readDoc",
|
|
158
165
|
description: [
|
|
@@ -175,7 +182,7 @@ var readPageFunctionSchema = {
|
|
|
175
182
|
name: "readPage"
|
|
176
183
|
};
|
|
177
184
|
var buildReadDocResult = (pageData) => {
|
|
178
|
-
const markdownContent =
|
|
185
|
+
const markdownContent = resolvePageReadMarkdown(pageData);
|
|
179
186
|
const rawData = {
|
|
180
187
|
success: true,
|
|
181
188
|
id: pageData.dbKey,
|
|
@@ -199,7 +206,7 @@ async function readDocFunc(args, thunkApi) {
|
|
|
199
206
|
throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
|
|
200
207
|
}
|
|
201
208
|
try {
|
|
202
|
-
const { readAction } = await import("./read-
|
|
209
|
+
const { readAction } = await import("./read-XMBM52Y4.js");
|
|
203
210
|
const pageData = await readAction({ dbKey: id }, thunkApi);
|
|
204
211
|
if (!pageData) {
|
|
205
212
|
throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
|
|
@@ -213,6 +220,7 @@ var readPageFunc = readDocFunc;
|
|
|
213
220
|
|
|
214
221
|
export {
|
|
215
222
|
slateToSimplifiedMarkdown,
|
|
223
|
+
resolvePageReadMarkdown,
|
|
216
224
|
readDocFunctionSchema,
|
|
217
225
|
readPageFunctionSchema,
|
|
218
226
|
buildReadDocResult,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolvePlatformChatCompletionsEndpoint,
|
|
4
4
|
resolvePlatformHostedCredentialProvider,
|
|
5
5
|
resolvePlatformResponsesEndpoint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5F7UKMLN.js";
|
|
7
7
|
import {
|
|
8
8
|
CLI_PROVIDER_VALUES
|
|
9
9
|
} from "./chunk-W7XHHYWM.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
CLIENT_VERSION_TOO_OLD_CODE,
|
|
12
12
|
buildClientVersionGateErrorDetail,
|
|
13
13
|
evaluatePlatformHostedClientVersionGate
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IYIXAIEB.js";
|
|
15
15
|
import {
|
|
16
16
|
asTrimmedLowercaseString
|
|
17
17
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -164,10 +164,28 @@ function resolveProviderAuthHeaderName(args) {
|
|
|
164
164
|
if (/xiaomimimo\.com/i.test(args.endpoint)) return "api-key";
|
|
165
165
|
return "Authorization";
|
|
166
166
|
}
|
|
167
|
+
var OPENCODE_GO_ENDPOINT_RE = /^https?:\/\/opencode\.ai\/zen\/go\//i;
|
|
168
|
+
var OPENCODE_SESSION_HEADER = "x-opencode-session";
|
|
169
|
+
var OPENCODE_USER_AGENT = "nolo-agent/1.0";
|
|
170
|
+
var PROCESS_FALLBACK_SESSION_ID = `nolo-${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;
|
|
171
|
+
function isOpenCodeGoEndpoint(endpoint) {
|
|
172
|
+
return typeof endpoint === "string" && OPENCODE_GO_ENDPOINT_RE.test(endpoint.trim());
|
|
173
|
+
}
|
|
174
|
+
function buildProviderSessionHeaders(args) {
|
|
175
|
+
if (!isOpenCodeGoEndpoint(args.endpoint)) return {};
|
|
176
|
+
return {
|
|
177
|
+
[OPENCODE_SESSION_HEADER]: args.sessionId?.trim() || PROCESS_FALLBACK_SESSION_ID,
|
|
178
|
+
"User-Agent": OPENCODE_USER_AGENT
|
|
179
|
+
};
|
|
180
|
+
}
|
|
167
181
|
function buildProviderAuthHeaders(args) {
|
|
168
|
-
|
|
182
|
+
const sessionHeaders = buildProviderSessionHeaders(args);
|
|
183
|
+
if (!args.apiKey) return sessionHeaders;
|
|
169
184
|
const headerName = resolveProviderAuthHeaderName(args);
|
|
170
|
-
return
|
|
185
|
+
return {
|
|
186
|
+
...sessionHeaders,
|
|
187
|
+
...headerName.toLowerCase() === "authorization" ? { Authorization: `Bearer ${args.apiKey}` } : { [headerName]: args.apiKey }
|
|
188
|
+
};
|
|
171
189
|
}
|
|
172
190
|
async function buildProviderExecutionPlan(args) {
|
|
173
191
|
const { agentConfig, env } = args;
|