nolo-cli 0.81.0-alpha.1 → 0.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-L4LCNFID.js → _executeModel-JIG7MRXQ.js} +48 -48
  3. package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
  6. package/{agentDeleteCommand-D2WHTH7S.js → agentDeleteCommand-THAZ5GQS.js} +31 -29
  7. package/{agentEmailCommands-IHSX56GO.js → agentEmailCommands-A7T7AJA4.js} +67 -63
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-R2DGZMFP.js → agentListCommands-BRZFEJQM.js} +40 -32
  10. package/{agentMachineCommands-UYDID3HQ.js → agentMachineCommands-DM4N5PK3.js} +31 -29
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
  13. package/agentRecordCommands-TTAEMNHB.js +128 -0
  14. package/{agentRunCommand-5PJF27JP.js → agentRunCommand-JVSTGVG2.js} +65 -61
  15. package/{agentRunControl-T44MESII.js → agentRunControl-WCTKX5VL.js} +2 -2
  16. package/{agentRuntimeLocal-VD4O2QFQ.js → agentRuntimeLocal-73CVIWBB.js} +27 -25
  17. package/{agentSlice-43ORUHTC.js → agentSlice-6X4JL2E3.js} +10 -10
  18. package/{appDeleteCommands-DXJA7XOZ.js → appDeleteCommands-S7CK4OYL.js} +31 -29
  19. package/{appDeployCommands-JL6XJZJE.js → appDeployCommands-U6TMS5GO.js} +31 -29
  20. package/{appDeployStatusCommands-MS2D2R6R.js → appDeployStatusCommands-DTNQJ3LJ.js} +31 -29
  21. package/{appGetCommands-BV2RDCEV.js → appGetCommands-3SHZEQD5.js} +31 -29
  22. package/{appListCommands-E2AM636N.js → appListCommands-E2ZMIUB6.js} +31 -29
  23. package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
  26. package/{chatQueueReduxAdapter-F3IRDXDQ.js → chatQueueReduxAdapter-LAQEZQKE.js} +24 -24
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  31. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  32. package/{chunk-KIS76A2P.js → chunk-3IIEFNGY.js} +38 -4
  33. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  34. package/{chunk-JQBONKAV.js → chunk-3WD6RUUJ.js} +11 -173
  35. package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
  36. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  37. package/{chunk-GEH7MMBB.js → chunk-54ADB4W7.js} +1 -1
  38. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  39. package/chunk-5ZUL4CUO.js +10 -0
  40. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  41. package/{chunk-QNWHWBB7.js → chunk-6FVRQBRR.js} +52 -30
  42. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  43. package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
  44. package/{chunk-DFJFH53D.js → chunk-7OLPQSMQ.js} +6 -6
  45. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  46. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  47. package/chunk-ACTMNVHM.js +93 -0
  48. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  49. package/{chunk-WL2RKIBF.js → chunk-BLJWCTRL.js} +1 -1
  50. package/chunk-BNGW5ASC.js +344 -0
  51. package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
  52. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  53. package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
  54. package/{chunk-4YCRJUQ2.js → chunk-ESWUWEFS.js} +10 -10
  55. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  56. package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
  57. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  58. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  59. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  60. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  61. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  62. package/{chunk-DAIOZ3ZO.js → chunk-HWIZU4OL.js} +13 -15
  63. package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
  64. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  65. package/{chunk-DSRXPQWA.js → chunk-JAXOVNM4.js} +43 -43
  66. package/{chunk-QQ7SX52C.js → chunk-JCIHVIVG.js} +15 -15
  67. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  68. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  69. package/chunk-JRQFUXY7.js +1625 -0
  70. package/{chunk-J4R5XRX5.js → chunk-K4YGZD3P.js} +419 -72
  71. package/chunk-KQ4ONNQD.js +677 -0
  72. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  73. package/{chunk-ODWEZBU6.js → chunk-LXF6XQDT.js} +1219 -57
  74. package/{chunk-CPSZJBLK.js → chunk-LZIWMYX4.js} +105 -26
  75. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  76. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  77. package/{chunk-QC5LGHYP.js → chunk-OF7AQZUG.js} +10 -5
  78. package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
  79. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  80. package/chunk-Q5FJJ6XI.js +103 -0
  81. package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
  82. package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
  83. package/{chunk-D6XYLSOS.js → chunk-QIAVMDHY.js} +1 -1
  84. package/{chunk-IHTVDCWH.js → chunk-R2B3MIZA.js} +3 -3
  85. package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
  86. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  87. package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
  88. package/{chunk-XKNBWXDH.js → chunk-SQQVLHMH.js} +7 -7
  89. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  90. package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
  91. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  92. package/{chunk-QQBO3LQW.js → chunk-TZJJ77KQ.js} +155 -795
  93. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  94. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  95. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  96. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  97. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  98. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  99. package/{chunk-E36HZARC.js → chunk-WADCY6G6.js} +3 -3
  100. package/{chunk-HH65VA5U.js → chunk-WGR3J4Q6.js} +101 -4
  101. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  102. package/{chunk-7QHSEMMD.js → chunk-Y5HW6GM2.js} +3 -3
  103. package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
  104. package/{chunk-QPJBFU7R.js → chunk-YVIV7WT4.js} +752 -80
  105. package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
  106. package/{chunk-KSHYBTYH.js → chunk-ZWUOR654.js} +932 -299
  107. package/{contentThunks-FSQPOFYG.js → contentThunks-ATLWNC2D.js} +25 -25
  108. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
  109. package/{createAgentAutomationAction-VCHDRJ6X.js → createAgentAutomationAction-QYYWTVUR.js} +25 -25
  110. package/{createDialogAction-KZM5IE4P.js → createDialogAction-7I5VGWCR.js} +28 -28
  111. package/{createPageAction-IGMXJOY3.js → createPageAction-WNURYCWU.js} +26 -26
  112. package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
  113. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  114. package/{dialogCommands-KJS57EDF.js → dialogCommands-RILHDRQ5.js} +35 -31
  115. package/{dialogSlice-YBTC3GAW.js → dialogSlice-W5BYELVR.js} +24 -24
  116. package/{docCreateCommands-MRGXJTB4.js → docCreateCommands-GSTPU7SG.js} +32 -30
  117. package/{docDeleteCommands-YCI75CBU.js → docDeleteCommands-2FC3LSUT.js} +33 -31
  118. package/{docReadCommands-JN3VHTQY.js → docReadCommands-27POBA34.js} +32 -30
  119. package/{docStore-SDPT23I6.js → docStore-7LAHBFP2.js} +9 -9
  120. package/{docUpdateCommands-7KBOENX7.js → docUpdateCommands-U4II6VCO.js} +32 -30
  121. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  122. package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
  123. package/{handleSendMessageAction-356IDG72.js → handleSendMessageAction-SKMJMVRU.js} +24 -24
  124. package/index.js +102 -85
  125. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  126. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  127. package/{machineCommands-FYIRYMDE.js → machineCommands-S2RNYKVJ.js} +64 -60
  128. package/{machineWsRunDispatch-J2FEYI4T.js → machineWsRunDispatch-JC44LBLP.js} +62 -58
  129. package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
  130. package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
  131. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  132. package/package.json +1 -1
  133. package/providerPresetApply-FG6NZ57W.js +214 -0
  134. package/providerRegistry-757OWH3O.js +31 -0
  135. package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
  136. package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
  137. package/{readlineWorkspace-OWBGR7QO.js → readlineWorkspace-VZSBXUH4.js} +188 -109
  138. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  139. package/{runAgentClientLoop-DKUUFUKT.js → runAgentClientLoop-ZYENU7GH.js} +47 -47
  140. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  141. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
  142. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
  143. package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
  144. package/{spaceCommands-SSLCOSBH.js → spaceCommands-QB3NNEMN.js} +30 -28
  145. package/{streamAgentChatTurn-FHZZCANP.js → streamAgentChatTurn-43GPPQSN.js} +59 -58
  146. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
  147. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  148. package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
  149. package/{tools-QZJX3BIC.js → tools-SX6Y4STZ.js} +43 -43
  150. package/tuiSummaryLlmCaller-T2SHYMDZ.js +127 -0
  151. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  152. package/{updateDialogTitleAction-JJPNGTAP.js → updateDialogTitleAction-VAKA4ZNY.js} +45 -28
  153. package/agentRecordCommands-OFYTWZAA.js +0 -124
  154. package/chunk-3IT2PFHL.js +0 -611
  155. package/chunk-I42VC5KR.js +0 -15
  156. package/chunk-NG4UT4K4.js +0 -79
  157. package/codingSkills-E6KSDNSJ.js +0 -48
  158. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  159. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  160. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  161. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createChromeConnectorClient
3
- } from "./chunk-QCZX4FTW.js";
3
+ } from "./chunk-SH43IESU.js";
4
4
  import {
5
5
  toErrorMessage
6
6
  } from "./chunk-HNMXYYJR.js";
@@ -23,6 +23,18 @@ function wantsHelp(args) {
23
23
  function readTrimmedOption(args, flag) {
24
24
  return (readOption(args, flag) ?? "").trim();
25
25
  }
26
+ function readAllOptions(args, flag) {
27
+ const values = [];
28
+ for (let i = 0; i < args.length; i++) {
29
+ if (args[i] === flag && i + 1 < args.length) {
30
+ const val = args[i + 1].trim();
31
+ if (val && !val.startsWith("--")) {
32
+ values.push(val);
33
+ }
34
+ }
35
+ }
36
+ return values;
37
+ }
26
38
  function readIntOption(args, flag, usage) {
27
39
  const raw = readOption(args, flag);
28
40
  if (raw === void 0) return void 0;
@@ -112,6 +124,24 @@ var CHROME_OPS_SUBCOMMANDS = {
112
124
  };
113
125
  }
114
126
  },
127
+ upload: {
128
+ action: "set_files",
129
+ usage: "nolo chrome upload --tab <id> (--ref <elementRef> | --selector <css>) --file <path> [--file <path>...]",
130
+ payload: (args, usage) => {
131
+ const files = readAllOptions(args, "--file");
132
+ if (files.length === 0) {
133
+ throw new Error(`Missing required --file <path>. Usage: ${usage}`);
134
+ }
135
+ const target = requireTarget(args, usage);
136
+ const tabId = requireTabId(args, usage);
137
+ return {
138
+ tabId,
139
+ ...target,
140
+ ...target.elementRef ? { ref: target.elementRef } : {},
141
+ files
142
+ };
143
+ }
144
+ },
115
145
  press: {
116
146
  action: "press",
117
147
  usage: "nolo chrome press --tab <id> --key <key>",
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
14
14
  };
15
15
  }
16
16
  async function getDefaultCliLocalRuntimeDb(options = {}) {
17
- const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-R5UBODT3.js");
17
+ const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-6IR6BBXE.js");
18
18
  return getAuthorityBackedDb(options);
19
19
  }
20
20
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  dialogMessageKey
3
- } from "./chunk-NHRQCXIQ.js";
3
+ } from "./chunk-VMFTFOWF.js";
4
4
  import {
5
5
  asOptionalFiniteNumber
6
6
  } from "./chunk-WWC7I6TA.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-XWNRAIUL.js";
4
+ } from "./chunk-AFUORTY4.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -1,19 +1,25 @@
1
+ import {
2
+ isDevinOAuthAgent
3
+ } from "./chunk-5ZUL4CUO.js";
4
+ import {
5
+ getModelContextWindow
6
+ } from "./chunk-JAXOVNM4.js";
1
7
  import {
2
8
  findModelConfig,
3
9
  getProviderByModelName
4
- } from "./chunk-UJ63UXGE.js";
10
+ } from "./chunk-OIVSQH2O.js";
5
11
  import {
6
12
  asOptionalFiniteNumber
7
13
  } from "./chunk-WWC7I6TA.js";
8
14
  import {
9
15
  asTrimmedLowercaseString
10
16
  } from "./chunk-QSJ3HFEF.js";
11
- import {
12
- asTrimmedString
13
- } from "./chunk-3EUW3WEO.js";
14
17
  import {
15
18
  isRecord
16
19
  } from "./chunk-KUG52IAP.js";
20
+ import {
21
+ asTrimmedString
22
+ } from "./chunk-3EUW3WEO.js";
17
23
  import {
18
24
  asOptionalTrimmedString
19
25
  } from "./chunk-G3SUCT4W.js";
@@ -120,6 +126,33 @@ async function stripImagePartsForTextOnlyAgent(messages, agentConfig) {
120
126
  return { messages: !supportsVision && hasImages ? stripImagePartsFromMessages(messages) : messages };
121
127
  }
122
128
 
129
+ // packages/agent-runtime/devin/devinChannelWindows.ts
130
+ var DEVIN_CHANNEL_CONTEXT_WINDOWS = {
131
+ // SWE-2 家族(catalog 无裸 swe-2 selector;旧点号/裸写法如 swe-2、
132
+ // swe-1.7 实测均 permission_denied,已不是可用 selector)。
133
+ "swe-2-max": 262e3,
134
+ "swe-2-high": 262e3,
135
+ "swe-2-medium": 262e3,
136
+ // SWE-1.7 家族。
137
+ "swe-1-7": 262e3,
138
+ "swe-1-7-medium": 262e3,
139
+ "swe-1-7-lightning": 202752,
140
+ // SWE-1.6 家族(免费档默认)。
141
+ "swe-1-6": 2e5,
142
+ "swe-1-6-fast": 2e5,
143
+ // 经 devin 通道转售、且与厂商原生窗口不同的模型(catalog 枚举型 selector)。
144
+ "MODEL_GPT_5_2_LOW": 384e3,
145
+ "MODEL_GPT_5_2_MEDIUM": 384e3,
146
+ "MODEL_GPT_5_2_HIGH": 384e3,
147
+ "MODEL_GPT_5_2_XHIGH": 384e3
148
+ };
149
+ var devinChannelContextWindow = (model) => {
150
+ const raw = model?.trim();
151
+ if (!raw) return void 0;
152
+ return DEVIN_CHANNEL_CONTEXT_WINDOWS[raw];
153
+ };
154
+ var resolveAgentContextWindow = (agent) => (isDevinOAuthAgent(agent) ? devinChannelContextWindow(agent.model) : void 0) ?? getModelContextWindow(agent.model ?? "");
155
+
123
156
  // packages/agent-runtime/agentRecordConfig.ts
124
157
  function stringField(record, key) {
125
158
  const value = record[key];
@@ -540,6 +573,7 @@ export {
540
573
  resolveHistoricalToolContentCap,
541
574
  projectToolMessageContent,
542
575
  clipToolText,
576
+ resolveAgentContextWindow,
543
577
  resolveAgentRuntimeConfigFromRecord,
544
578
  buildDesktopAgentRuntimeAgentConfigSnapshot,
545
579
  buildDesktopAgentRuntimeDialogHistorySnapshot,
@@ -19,6 +19,7 @@ ${input}`;
19
19
  }
20
20
  let jsonStr;
21
21
  try {
22
+ JSON.stringify(input);
22
23
  const serialized = JSON.stringify(input, null, 2);
23
24
  if (serialized === void 0) {
24
25
  return task;
@@ -43,6 +44,7 @@ function calculateDelegatedPayloadMetrics(task, input, delegatedContent) {
43
44
  serializedInputForTokens = input;
44
45
  } else {
45
46
  try {
47
+ JSON.stringify(input);
46
48
  const serialized = JSON.stringify(input, null, 2);
47
49
  if (serialized !== void 0) {
48
50
  inputChars = serialized.length;
@@ -1,58 +1,54 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-DAIOZ3ZO.js";
3
+ } from "./chunk-HWIZU4OL.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-J4R5XRX5.js";
8
+ } from "./chunk-K4YGZD3P.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
12
12
  import {
13
- TOOL_PACKS
14
- } from "./chunk-MYU3MJCF.js";
15
- import {
16
- buildSkillDocMarkdown
17
- } from "./chunk-AETZ7AD6.js";
13
+ buildBuiltinObjectSkillReference
14
+ } from "./chunk-DHDMC6FO.js";
18
15
  import {
19
16
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
20
17
  PLATFORM_HOSTED_KIMI_PROVIDER
21
- } from "./chunk-AJHEFRGJ.js";
18
+ } from "./chunk-Q67DOFOO.js";
22
19
  import {
23
20
  read,
24
21
  readAndWait,
25
22
  removeCachedEntity,
26
23
  upsertSSREntity,
27
24
  write
28
- } from "./chunk-YFADVSZE.js";
25
+ } from "./chunk-H62HCIUP.js";
29
26
  import {
30
27
  createAgentKey,
31
28
  createDialogKey,
32
- createKey,
33
29
  createMemoryKey,
34
30
  dialogMessageRange,
35
31
  memoryOwnerRange,
36
32
  memorySubjectKindRange
37
- } from "./chunk-NHRQCXIQ.js";
33
+ } from "./chunk-VMFTFOWF.js";
38
34
  import {
39
35
  extractCustomId
40
- } from "./chunk-BJIRLHJR.js";
36
+ } from "./chunk-M2EJHDJP.js";
41
37
  import {
42
38
  isDevelopment
43
39
  } from "./chunk-QOKAKDPE.js";
44
40
  import {
45
41
  selectIdentityUserId
46
42
  } from "./chunk-SEJ5OS6F.js";
43
+ import {
44
+ isRecord
45
+ } from "./chunk-KUG52IAP.js";
47
46
  import {
48
47
  asTrimmedString
49
48
  } from "./chunk-3EUW3WEO.js";
50
49
  import {
51
50
  asOptionalPositiveFiniteNumber
52
51
  } from "./chunk-U6VC4MU4.js";
53
- import {
54
- isRecord
55
- } from "./chunk-KUG52IAP.js";
56
52
  import {
57
53
  asOptionalTrimmedString
58
54
  } from "./chunk-G3SUCT4W.js";
@@ -63,160 +59,6 @@ import {
63
59
  // packages/chat/dialog/actions/createDialogAction.ts
64
60
  var import_date_fns = __toESM(require_date_fns());
65
61
 
66
- // packages/ai/skills/builtinObjectSkills.ts
67
- var BUILTIN_OBJECT_SKILL_IDS = {
68
- table: "builtin-table-skill-v1",
69
- doc: "builtin-doc-skill-v1",
70
- // key 改名为 code-style(它本来就叫「编码风格技能」,"code" 这个名字是它抢的,
71
- // 与「代码执行」能力包撞车)。**id 值保持不变**——skillId 与页面 key 都从它派生,
72
- // 改了会让存量 agent.references 失配。
73
- "code-style": "builtin-code-skill-v1",
74
- image: "builtin-image-skill-v1",
75
- file: "builtin-file-skill-v1",
76
- pagebuilder: "builtin-pagebuilder-skill-v1"
77
- };
78
- var SKILL_DEFS = {
79
- doc: {
80
- id: BUILTIN_OBJECT_SKILL_IDS.doc,
81
- name: "\u6587\u6863\u7F16\u8F91\u6280\u80FD",
82
- description: "\u63D0\u4F9B\u6587\u6863\u8BFB\u53D6\u4E0E\u66F4\u65B0\u80FD\u529B\uFF0C\u4F9B\u6587\u6863\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u6863\u3001\u6DA6\u8272\u3001\u6539\u5199\u3001\u7EED\u5199\u3001\u6392\u7248\u3001\u6587\u7AE0\u3001document\u3001polish\u3002",
83
- toolNames: ["readDoc", "updateDoc"],
84
- promptPatch: [
85
- "\u6587\u6863\u7F16\u8F91\u6307\u5357\uFF1A",
86
- "1. \u4FEE\u6539\u524D\u5148 readDoc \u8BFB\u53D6\u5F53\u524D\u6587\u6863\u771F\u503C\uFF0C\u518D\u57FA\u4E8E\u73B0\u6709\u5185\u5BB9\u7528 updateDoc \u505A\u5B9A\u70B9\u589E\u91CF\u7F16\u8F91\u3002",
87
- "2. \u4E0D\u8981\u8131\u79BB\u73B0\u6709\u5185\u5BB9\u7A7A\u60F3\u91CD\u5199\uFF1B\u6DA6\u8272/\u6539\u5199/\u7EED\u5199\u90FD\u5E94\u4FDD\u7559\u7528\u6237\u539F\u6709\u7684\u7ED3\u6784\u4E0E\u4E8B\u5B9E\u3002"
88
- ].join("\n")
89
- },
90
- table: {
91
- id: BUILTIN_OBJECT_SKILL_IDS.table,
92
- name: "\u8868\u683C\u7F16\u8F91\u6280\u80FD",
93
- description: "\u63D0\u4F9B\u8868\u683C\u521B\u5EFA\u3001\u67E5\u8BE2\u3001\u65B0\u589E\u3001\u66F4\u65B0\u4E0E\u5220\u9664\u80FD\u529B\uFF0C\u4F9B\u8868\u683C\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u8868\u683C\u3001\u5EFA\u8868\u3001\u65B0\u589E\u4E00\u884C\u3001\u8BB0\u5F55\u3001\u5B57\u6BB5\u3001table\u3001spreadsheet\u3001csv\u3002",
94
- // 与 app-builder 能力包共用同一份清单(TOOL_PACKS.TABLE)。
95
- // 以前两边各抄一份,改一个忘另一个就会静默不同步。
96
- toolNames: [...TOOL_PACKS.TABLE],
97
- promptPatch: [
98
- "\u8868\u683C\u64CD\u4F5C\u6307\u5357\uFF1A",
99
- "1. \u7528\u6237\u8981\u65B0\u5EFA\u8868\u683C\u65F6\uFF0C\u8C03\u7528 createTable\uFF0C\u5E76\u4ECE\u9700\u6C42\u63A8\u65AD\u5408\u7406\u7684\u5B57\u6BB5\u8BBE\u8BA1\uFF08\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u5FC5\u586B\u3001\u53EF\u9009\u503C\uFF09\u3002",
100
- "2. \u65B0\u589E\u8BB0\u5F55\u5FC5\u987B\u8C03\u7528 addTableRow / addTableRows\uFF0C\u4E0D\u8981\u53EA\u5728\u56DE\u7B54\u91CC\u53E3\u5934\u63CF\u8FF0\u3002",
101
- "3. addTableRow \u7684 values \u662F\u5BF9\u8C61\uFF0Ckey \u5FC5\u987B\u7528\u5B57\u6BB5\u540D\uFF08name\uFF0C\u4E0D\u662F\u663E\u793A\u540D label\uFF09\uFF1B\u5C3D\u91CF\u4ECE\u7528\u6237\u81EA\u7136\u8BED\u8A00\u63A8\u65AD\u5E76\u586B\u6EE1\u76F8\u5173\u5B57\u6BB5\uFF0C\u5FC5\u586B\u5B57\u6BB5\u5C24\u5176\u6CE8\u610F\uFF1B\u7528\u6237\u6CA1\u63D0\u5230\u7684\u5B57\u6BB5\u53EF\u7528\u7A7A\u5B57\u7B26\u4E32\u6216 null \u5360\u4F4D\uFF1B\u7EDD\u4E0D\u8981\u4F20\u7A7A\u5BF9\u8C61 {}\u3002",
102
- "4. \u66F4\u65B0\u6216\u5220\u9664\u524D\uFF0C\u5148\u7528 queryTableRows \u786E\u8BA4\u76EE\u6807\u884C\uFF0C\u5FC5\u8981\u65F6\u5411\u7528\u6237\u786E\u8BA4\u76EE\u6807\u884C/\u5B57\u6BB5\u3002"
103
- ].join("\n")
104
- },
105
- "code-style": {
106
- id: BUILTIN_OBJECT_SKILL_IDS["code-style"],
107
- name: "\u7F16\u7801\u98CE\u683C\u6280\u80FD",
108
- description: "\u63D0\u4F9B\u7F16\u7801\u89C4\u8303\u4E0E\u98CE\u683C\u7EA6\u675F\uFF0C\u4F9B\u4EE3\u7801\u4EFB\u52A1\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u4EE3\u7801\u3001\u7F16\u7801\u3001\u91CD\u6784\u3001\u4FEEbug\u3001code\u3001refactor\u3001bugfix\u3001coding-style\u3002",
109
- toolNames: [],
110
- promptPatch: [
111
- "\u7F16\u7801\u98CE\u683C\u4E0E\u89C4\u8303\u6307\u5357\uFF1A",
112
- "1. \u6587\u4EF6\u62C6\u5206\uFF1A\u4F18\u5148\u62C6\u5206\u4E3A\u591A\u6587\u4EF6\uFF08MANY SMALL FILES\uFF09\uFF0C\u5178\u578B\u957F\u5EA6 200-400 \u884C\uFF0C\u5355\u6587\u4EF6\u6700\u591A 800 \u884C\uFF08800 max\uFF09\u3002",
113
- "2. \u51FD\u6570\u4E0E\u5D4C\u5957\uFF1A\u51FD\u6570\u4FDD\u6301\u77ED\u5C0F\uFF08<50 lines\uFF09\uFF0C\u4F18\u5148\u4F7F\u7528 early returns \u63D0\u524D\u8FD4\u56DE\uFF0C\u5D4C\u5957\u5C42\u7EA7\u4E0D\u8D85\u8FC7 4 \u5C42\uFF08nesting \u22644\uFF09\u3002",
114
- "3. \u4E0D\u53EF\u53D8\u6027\uFF08immutability\uFF09\uFF1A\u4FDD\u6301\u6570\u636E\u4E0D\u53EF\u53D8\uFF0C\u4E0D\u8981\u539F\u5730 mutate \u73B0\u6709\u5BF9\u8C61\u6216\u6570\u7EC4\uFF0C\u5FC5\u987B\u8FD4\u56DE\u65B0\u5BF9\u8C61/\u6570\u7EC4\u3002",
115
- "4. \u9519\u8BEF\u5904\u7406\u4E0E\u6821\u9A8C\uFF1A\u663E\u5F0F\u5904\u7406\u6240\u6709\u9519\u8BEF\uFF08explicit error handling\uFF09\uFF0C\u5728\u7CFB\u7EDF\u8FB9\u754C\u5B8C\u6210\u6821\u9A8C\uFF08validate at boundaries\uFF09\uFF0C\u4E0D\u9690\u5F0F\u541E\u9519\u3002",
116
- "5. \u5B8C\u6210\u524D Checklist\uFF1A\u5B8C\u6210\u524D\u81EA\u67E5\u51FD\u6570/\u6587\u4EF6\u5C3A\u5BF8\u3001\u5D4C\u5957\u6DF1\u5EA6\u3001\u4E0D\u53EF\u53D8\u6027\u4E0E\u8FB9\u754C\u9519\u8BEF\u5904\u7406\u3002"
117
- ].join("\n")
118
- },
119
- image: {
120
- id: BUILTIN_OBJECT_SKILL_IDS.image,
121
- name: "\u56FE\u7247\u5206\u6790\u6280\u80FD",
122
- description: "\u63D0\u4F9B\u56FE\u7247\u7406\u89E3\u3001\u63CF\u8FF0\u4E0E\u6574\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u56FE\u7247\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u56FE\u7247\u3001\u56FE\u50CF\u3001\u5206\u6790\u3001\u63CF\u8FF0\u3001\u547D\u540D\u3001\u6574\u7406\u3001image\u3001photo\u3001picture\u3002",
123
- toolNames: [],
124
- promptPatch: [
125
- "\u56FE\u7247\u5206\u6790\u6307\u5357\uFF1A",
126
- "1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u56FE\u7247\u505A\u7406\u89E3\u3001\u63CF\u8FF0\u3001\u63D0\u70BC\u91CD\u70B9\u3001\u7ED9\u51FA\u547D\u540D/\u6574\u7406\u5EFA\u8BAE\u548C\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
127
- "2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5177\u5907\u590D\u6742\u56FE\u7247\u7F16\u8F91\u80FD\u529B\uFF1B\u5982\u679C\u7528\u6237\u8981\u66F4\u5F3A\u64CD\u4F5C\uFF0C\u660E\u786E\u8BF4\u660E\u5F53\u524D\u53EF\u505A\u7684\u662F\u5206\u6790\u4E0E\u7EC4\u7EC7\u3002"
128
- ].join("\n")
129
- },
130
- file: {
131
- id: BUILTIN_OBJECT_SKILL_IDS.file,
132
- name: "\u6587\u4EF6\u5904\u7406\u6280\u80FD",
133
- description: "\u63D0\u4F9B\u6587\u4EF6\u7406\u89E3\u3001\u6574\u7406\u4E0E\u5904\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u6587\u4EF6\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u4EF6\u3001\u89E3\u6790\u3001\u63D0\u53D6\u3001\u6574\u7406\u3001\u5904\u7406\u3001file\u3001document\u3001pdf\u3002",
134
- toolNames: [],
135
- promptPatch: [
136
- "\u6587\u4EF6\u5904\u7406\u6307\u5357\uFF1A",
137
- "1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u6587\u4EF6\u63D0\u4F9B\u7406\u89E3\u3001\u6574\u7406\u3001\u63D0\u53D6\u4E0E\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
138
- "2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5B8C\u6210\u6587\u4EF6\u5185\u5BB9\u89E3\u6790\uFF1B\u5FC5\u8981\u65F6\u660E\u786E\u544A\u8BC9\u7528\u6237\u5F53\u524D\u66F4\u591A\u662F\u5360\u4F4D\u578B\u5DE5\u4F5C\u6D41\u5165\u53E3\uFF0C\u7B49\u5F85\u540E\u7EED\u63A5\u5165\u66F4\u5B8C\u6574\u7684\u6587\u4EF6\u5904\u7406\u80FD\u529B\u3002"
139
- ].join("\n")
140
- },
141
- pagebuilder: {
142
- id: BUILTIN_OBJECT_SKILL_IDS.pagebuilder,
143
- name: "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u6280\u80FD",
144
- description: "\u628A\u4E00\u53E5\u8BDD\u9700\u6C42\u53D8\u6210\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762\u3001\u62A5\u544A\u3001\u770B\u677F\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u6216\u8BA1\u5212\u9875\u3002\u4EFB\u4F55 agent \u5728\u9700\u8981\u8F93\u51FA\u53EF\u4EA4\u4E92\u53EF\u89C6\u5316\u6D88\u606F\u65F6\u6309\u9700\u52A0\u8F7D\u3002\u89E6\u53D1\u8BCD\uFF1A\u9875\u9762\u3001\u62A5\u8868\u3001\u770B\u677F\u3001\u65E5\u62A5\u3001\u5468\u62A5\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u3001\u8BA1\u5212\u9875\u3001\u53EF\u89C6\u5316\u3001\u4EA4\u4E92\u9875\u9762\u3001\u4EEA\u8868\u76D8\u3001dashboard\u3001report\u3001page\u3001landing\u3002",
145
- toolNames: [],
146
- promptPatch: [
147
- "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u89C4\u5219\uFF1A",
148
- "\u4F60\u73B0\u5728\u7684\u4EFB\u52A1\u662F\u628A\u7528\u6237\u9700\u6C42\u53D8\u6210\u4E00\u4E2A\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762/\u62A5\u544A/\u770B\u677F/\u4E3B\u9875/\u6559\u7A0B/\u5BF9\u6BD4\u9875/\u8BA1\u5212\u9875\u3002\u7528\u6237\u770B\u4E0D\u5230\u6E90\u7801\uFF0C\u53EA\u4F1A\u770B\u5230\u9875\u9762\u7ED3\u679C\u3002",
149
- "",
150
- "\u7EDD\u5BF9\u89C4\u5219\uFF1A",
151
- "1. \u53EA\u8F93\u51FA\u4E00\u4E2A Markdown \u4EE3\u7801\u5757\uFF0C\u4EE3\u7801\u5757\u8BED\u8A00\u5FC5\u987B\u662F tsx preview\u3002",
152
- "2. \u4EE3\u7801\u5757\u5916\u4E0D\u8981\u8F93\u51FA\u89E3\u91CA\u3001\u524D\u8A00\u3001\u7ED3\u5C3E\u3001\u6E05\u5355\u6216\u601D\u8003\u8FC7\u7A0B\u3002",
153
- "3. \u4EE3\u7801\u5FC5\u987B\u5B9A\u4E49\u9876\u5C42 function Example()\uFF0C\u4E0D\u8981\u8C03\u7528 render()\uFF0C\u4E0D\u8981 export default\u3002",
154
- "4. \u4E0D\u8981\u5199 import\u3002\u8FD0\u884C\u73AF\u5883\u5DF2\u7ECF\u63D0\u4F9B React\u3001useState\u3001useEffect\u3001useMemo\u3001useCallback\u3001useRef\u3001ReactECharts\u3001react-icons/lu \u7684\u56FE\u6807\u7EC4\u4EF6\u3002",
155
- "5. \u6240\u6709\u4EA4\u4E92\u5FC5\u987B\u5728 Example \u5185\u7528 React state \u5B9E\u73B0\uFF0C\u6309\u94AE\u3001Tab\u3001FAQ\u3001\u6B65\u9AA4\u5207\u6362\u3001\u7B5B\u9009\u90FD\u8981\u771F\u7684\u53EF\u70B9\u51FB\u3002",
156
- "6. \u4E3A\u4E3B\u8981\u533A\u5757\u52A0 data-artifact-section \u5C5E\u6027\u3002",
157
- "7. \u751F\u6210\u7ED3\u679C\u4F18\u5148\u662F\u4E00\u9875\u5B8C\u6574\u53EF\u7528\u7684\u9875\u9762\uFF0C\u4E0D\u8981\u53EA\u505A\u5B64\u7ACB\u5361\u7247\u6216\u4E00\u4E2A\u56FE\u3002",
158
- "8. \u5982\u679C\u7528\u6237\u6CA1\u6709\u7ED9\u5177\u4F53\u6570\u636E\uFF0C\u53EF\u4EE5\u751F\u6210\u5408\u7406\u7684\u793A\u4F8B\u6570\u636E\uFF0C\u4F46\u8981\u4FDD\u6301\u4E1A\u52A1\u53EF\u4FE1\u3002",
159
- "",
160
- "\u5404\u7C7B\u9875\u9762\u9ED8\u8BA4\u7ED3\u6784\uFF1A",
161
- "- \u4FE1\u606F\u5C55\u793A\u7C7B\uFF08\u4E3B\u9875\u3001\u4EA7\u54C1\u4ECB\u7ECD\u3001\u670D\u52A1\u9875\u3001\u4F5C\u54C1\u96C6\u3001\u6D3B\u52A8\u9875\uFF09\uFF1A\u9996\u5C4F\u5B9A\u4F4D\u3001\u670D\u52A1/\u80FD\u529B\u5361\u7247\u3001\u4EE3\u8868\u6210\u679C\u5361\u7247\u3001\u53EF\u4FE1\u80CC\u4E66\u3001\u8054\u7CFB\u6216\u884C\u52A8\u6309\u94AE\u3002",
162
- "- \u6570\u636E\u5206\u6790\u7C7B\uFF08\u65E5\u62A5\u3001\u5468\u62A5\u3001\u770B\u677F\u3001\u8D28\u68C0\u3001\u9500\u552E\u6F0F\u6597\u3001\u53CD\u9988\u5206\u6790\uFF09\uFF1A\u9876\u90E8\u6458\u8981\u3001\u6838\u5FC3\u6307\u6807\u3001\u8D8B\u52BF\u56FE\u3001\u660E\u7EC6\u8868\u683C\u6216\u5F02\u5E38\u5217\u8868\u3001\u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3002",
163
- "- \u6D41\u7A0B\u8BF4\u660E\u7C7B\uFF08\u6559\u7A0B\u3001SOP\u3001onboarding\u3001\u64CD\u4F5C\u6307\u5357\u3001\u8BFE\u7A0B\u6B65\u9AA4\uFF09\uFF1A\u5B66\u4E60\u76EE\u6807\u3001\u6B65\u9AA4\u5361\u7247\u3001\u793A\u4F8B/\u7EC3\u4E60\u3001\u68C0\u67E5\u6E05\u5355\u6216\u4E0B\u4E00\u6B65\u6309\u94AE\u3002",
164
- "- \u51B3\u7B56\u6BD4\u8F83\u7C7B\uFF08\u65B9\u6848\u5BF9\u6BD4\u3001\u4EA7\u54C1\u9009\u578B\u3001\u7ADE\u54C1\u5206\u6790\u3001\u91C7\u8D2D\u5EFA\u8BAE\uFF09\uFF1A\u5BF9\u6BD4\u7EF4\u5EA6\u8868\u683C\u3001\u4F18\u7F3A\u70B9\u5361\u7247\u3001\u8BC4\u5206\u6216\u9002\u914D\u5EA6\u3001\u63A8\u8350\u7ED3\u8BBA\u3002",
165
- "- \u8BA1\u5212\u6392\u5E03\u7C7B\uFF08\u9879\u76EE\u8BA1\u5212\u3001\u5B66\u4E60\u8BA1\u5212\u3001\u5185\u5BB9\u65E5\u5386\u3001\u53D1\u5E03\u8282\u594F\uFF09\uFF1A\u9636\u6BB5\u76EE\u6807\u3001\u4EFB\u52A1\u5217\u8868\u3001\u4F18\u5148\u7EA7\u3001\u91CC\u7A0B\u7891\u5361\u7247\u3001\u98CE\u9669\u63D0\u9192\u3002",
166
- "- \u6DF7\u5408\u6C47\u62A5\u7C7B\uFF08\u878D\u8D44\u9875\u3001\u9879\u76EE\u6982\u89C8\u3001\u590D\u6742\u6C47\u62A5\uFF09\uFF1A\u81F3\u5C11\u5305\u542B MetricCard\u3001Chart\u3001Table \u548C Section\uFF0C\u4E0D\u8981\u53EA\u505A\u5355\u4E00\u5217\u8868\u3002",
167
- "- \u6559\u7A0B/\u6B65\u9AA4/FAQ/Tab/\u7B5B\u9009/\u9875\u9762\u5185\u8DF3\u8F6C\u5FC5\u987B\u505A\u6210\u771F\u5B9E\u53EF\u70B9\u51FB\u4EA4\u4E92\u3002",
168
- "",
169
- "\u4EE3\u7801\u98CE\u683C\uFF1A",
170
- "1. \u4F7F\u7528\u5185\u8054 style \u6216\u7EC4\u4EF6\u5185 <style>\uFF0C\u4E0D\u8981\u4F9D\u8D56 Tailwind \u6216\u5916\u90E8 CSS\u3002",
171
- "2. \u9875\u9762\u5BBD\u5EA6\u3001\u95F4\u8DDD\u3001\u5B57\u53F7\u8981\u9002\u5408\u6D88\u606F\u5185\u9884\u89C8\uFF1B\u4E0D\u8981\u7528\u8FC7\u5927\u7684\u843D\u5730\u9875 hero\u3002",
172
- "3. \u989C\u8272\u8981\u514B\u5236\uFF0C\u6709\u5C42\u6B21\uFF1B\u907F\u514D\u6574\u9875\u5355\u4E00\u84DD\u7D2B\u6E10\u53D8\u3002",
173
- "4. \u8868\u683C\u3001\u56FE\u8868\u3001\u5361\u7247\u3001\u6309\u94AE\u90FD\u8981\u6709 hover/active/focus \u7684\u7EC6\u8282\u3002",
174
- "5. \u5FC5\u8981\u65F6\u4F7F\u7528 ReactECharts \u753B\u56FE\uFF1B\u7B80\u5355\u67F1\u72B6\u56FE\u4E5F\u53EF\u4EE5\u7528 div \u5B9E\u73B0\uFF0C\u4FDD\u8BC1\u7A33\u5B9A\u3002",
175
- "6. \u4EE3\u7801\u5C3D\u91CF\u77ED\u800C\u5B8C\u6574\uFF0C\u9ED8\u8BA4 150-260 \u884C\u4EE5\u5185\u3002",
176
- "",
177
- "\u8F93\u51FA\u683C\u5F0F\u793A\u4F8B\uFF1A",
178
- "```tsx preview",
179
- "function Example() {",
180
- " const [tab, setTab] = useState('overview');",
181
- " return <main><section data-artifact-section>...</section></main>;",
182
- "}",
183
- "```"
184
- ].join("\n")
185
- }
186
- };
187
- function buildBuiltinObjectSkillConfig(kind) {
188
- const def = SKILL_DEFS[kind];
189
- return {
190
- version: "0.1",
191
- kind: "skill",
192
- id: def.id,
193
- name: def.name,
194
- description: def.description,
195
- triggerMode: "explicit",
196
- toolNames: def.toolNames,
197
- promptPatch: def.promptPatch
198
- };
199
- }
200
- function buildBuiltinObjectSkillDbKey(kind, userId) {
201
- return createKey("page" /* DOC */, userId, BUILTIN_OBJECT_SKILL_IDS[kind]);
202
- }
203
- function buildBuiltinObjectSkillReference(kind, userId) {
204
- return {
205
- dbKey: buildBuiltinObjectSkillDbKey(kind, userId),
206
- title: SKILL_DEFS[kind].name,
207
- type: "instruction"
208
- };
209
- }
210
- function buildBuiltinObjectSkillPageContent(kind) {
211
- const def = SKILL_DEFS[kind];
212
- return buildSkillDocMarkdown({
213
- body: `# ${def.name}
214
-
215
- ${def.description}`,
216
- skillConfig: buildBuiltinObjectSkillConfig(kind)
217
- });
218
- }
219
-
220
62
  // packages/chat/dialog/objectAssistantRegistry.ts
221
63
  var OBJECT_ASSISTANT_TO_SKILL = {
222
64
  page: "doc",
@@ -1141,10 +983,6 @@ var createDialogAction = async (args, thunkApi) => {
1141
983
  };
1142
984
 
1143
985
  export {
1144
- BUILTIN_OBJECT_SKILL_IDS,
1145
- buildBuiltinObjectSkillConfig,
1146
- buildBuiltinObjectSkillDbKey,
1147
- buildBuiltinObjectSkillPageContent,
1148
986
  resolveAgentMemoryPolicy,
1149
987
  buildMemorySubjectsForAgent,
1150
988
  chooseMemoryOwners,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mergeAvailabilityDeadline
3
- } from "./chunk-CJCJF5XB.js";
3
+ } from "./chunk-FDTR4QJ6.js";
4
4
 
5
5
  // packages/cli/credentialAvailability.ts
6
6
  import { homedir } from "node:os";
@@ -11,7 +11,7 @@ import {
11
11
  getAntigravityUserAgent,
12
12
  normalizeAntigravityTokenPayload,
13
13
  refreshAntigravityToken
14
- } from "./chunk-PGSKWZCB.js";
14
+ } from "./chunk-UZGQNTVW.js";
15
15
  import {
16
16
  writeOAuthCredential
17
17
  } from "./chunk-ONXOABJR.js";
@@ -21,12 +21,12 @@ import {
21
21
  import {
22
22
  asOptionalFiniteNumber
23
23
  } from "./chunk-WWC7I6TA.js";
24
- import {
25
- asTrimmedString
26
- } from "./chunk-3EUW3WEO.js";
27
24
  import {
28
25
  isRecord
29
26
  } from "./chunk-KUG52IAP.js";
27
+ import {
28
+ asTrimmedString
29
+ } from "./chunk-3EUW3WEO.js";
30
30
 
31
31
  // packages/cli/oauth/callback-server.ts
32
32
  import { createServer } from "node:http";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-QNWHWBB7.js";
4
+ } from "./chunk-6FVRQBRR.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -18,9 +18,13 @@ var CORE_DRAINING_MAX_ATTEMPTS = 30;
18
18
  var RETRYABLE_HTTP_STATUSES = /* @__PURE__ */ new Set([429, 503]);
19
19
  function isTransientFetchError(error) {
20
20
  const message = toErrorMessage(error);
21
- return /certificate|handshake|network|socket|timed out|timeout|ECONNRESET/i.test(
21
+ return /certificate|handshake|network|socket|timed out|timeout|ECONNRESET|UND_ERR_SOCKET|other side closed/i.test(
22
22
  message
23
- );
23
+ ) || // undici(Node fetch)连接中途被断开时抛 `TypeError: terminated`,message
24
+ // 就是裸的 "terminated"(真实 cause 是 UND_ERR_SOCKET)。只认「整条就是
25
+ // terminated」或「前缀: terminated」这种形态,避免把 access_terminated_error
26
+ // (配额封禁)或 "process was terminated by signal" 误判成可重试的网络抖动。
27
+ /(?:^|:\s*)terminated$/i.test(message.trim());
24
28
  }
25
29
  async function defaultSleep(ms) {
26
30
  await new Promise((resolve) => setTimeout(resolve, ms));
@@ -0,0 +1,10 @@
1
+ // packages/agent-runtime/devinOAuthPure.ts
2
+ function isDevinOAuthAgent(agent) {
3
+ const ref = agent.apiKeyRef?.trim().toLowerCase();
4
+ const prov = agent.provider?.trim().toLowerCase();
5
+ return ref === "devin" || prov === "devin";
6
+ }
7
+
8
+ export {
9
+ isDevinOAuthAgent
10
+ };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-ESHYE7WU.js";
4
4
  import {
5
5
  getDefaultCliLocalRuntimeDb
6
- } from "./chunk-C3FZR5EC.js";
6
+ } from "./chunk-2F7RJC6L.js";
7
7
  import {
8
8
  buildCliRuntimeEnv,
9
9
  clearProfileAuthToken,
@@ -12,7 +12,7 @@ import {
12
12
  getProfileTokens,
13
13
  loadProfileConfig,
14
14
  saveDefaultProfile
15
- } from "./chunk-2KDR4CWE.js";
15
+ } from "./chunk-BYMV6QZG.js";
16
16
  import {
17
17
  resolveAuthTokenFromEnv
18
18
  } from "./chunk-A7GB5UGH.js";
@@ -20,14 +20,12 @@ import {
20
20
  DEFAULT_NOLO_SERVER_URL
21
21
  } from "./chunk-OLZBQWZU.js";
22
22
  import {
23
+ asTrimmedNonEmptyStringArray,
23
24
  createMemoryKey,
24
25
  createMemoryOwnerIndexKey,
25
26
  createMemorySubjectKindIndexKey,
26
27
  memoryOwnerRange
27
- } from "./chunk-NHRQCXIQ.js";
28
- import {
29
- asTrimmedNonEmptyStringArray
30
- } from "./chunk-I42VC5KR.js";
28
+ } from "./chunk-VMFTFOWF.js";
31
29
  import {
32
30
  asTrimmedString
33
31
  } from "./chunk-3EUW3WEO.js";