nolo-cli 0.84.0-alpha.1 → 0.86.0-alpha.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 (114) hide show
  1. package/{_executeModel-IULR47HG.js → _executeModel-U5FP7ID5.js} +36 -36
  2. package/{action-D22U6CTH.js → action-JZ62BXLX.js} +10 -10
  3. package/{addContentAction-XAPUTGL4.js → addContentAction-2ETXWERA.js} +8 -8
  4. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-COSPGJ4K.js} +7 -7
  5. package/{agentDeleteCommand-2S4WCDQC.js → agentDeleteCommand-RXZKN7ER.js} +19 -19
  6. package/{agentEmailCommands-V3ADGHX7.js → agentEmailCommands-AKELGSE2.js} +44 -44
  7. package/{agentListCommands-EPK3S274.js → agentListCommands-ZN75E4YI.js} +21 -21
  8. package/{agentMachineCommands-XMZWK7P3.js → agentMachineCommands-UTTHPDUV.js} +19 -19
  9. package/{agentRecordCommands-WFPWLWOF.js → agentRecordCommands-WYII53FP.js} +42 -42
  10. package/{agentRunCommand-VUWNWC7C.js → agentRunCommand-NTQPGV6P.js} +42 -42
  11. package/{agentRuntimeLocal-YRONTDLM.js → agentRuntimeLocal-CNL444G4.js} +16 -16
  12. package/{agentSlice-2P7OJFES.js → agentSlice-PZGUYP2L.js} +9 -9
  13. package/{appDeleteCommands-YS7UGMP3.js → appDeleteCommands-BL4RWG3T.js} +20 -20
  14. package/{appDeployCommands-XIE5Z4BE.js → appDeployCommands-6OS3RR66.js} +20 -20
  15. package/{appDeployStatusCommands-54UDVYET.js → appDeployStatusCommands-WQFLFSO3.js} +20 -20
  16. package/{appGetCommands-6XYLBCRN.js → appGetCommands-FH4CIOJO.js} +20 -20
  17. package/{appListCommands-VEGH7SF5.js → appListCommands-Z6XJPYJJ.js} +20 -20
  18. package/{authCommand-JIEOFHXW.js → authCommand-NNFLRLGJ.js} +7 -8
  19. package/{authCommands-ILTBI6JV.js → authCommands-364ESL7K.js} +2 -3
  20. package/builtinSkillRegistry-XIXK4XAH.js +33 -0
  21. package/{chatQueueReduxAdapter-GPYCH5Z2.js → chatQueueReduxAdapter-SXZ22NDJ.js} +18 -18
  22. package/{chunk-NRALD3CC.js → chunk-2LX7X7HX.js} +2 -2
  23. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  24. package/{chunk-4EJ5QYB5.js → chunk-4YIWJYIX.js} +1 -1
  25. package/{chunk-D6XYLSOS.js → chunk-5HKWE6OQ.js} +1 -1
  26. package/{chunk-U7YP7ECK.js → chunk-6IHWRTUK.js} +3 -3
  27. package/{chunk-NFT2AOK5.js → chunk-6LUUGZTS.js} +1 -1
  28. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  29. package/{chunk-7FWPLK4M.js → chunk-A3GDWRW6.js} +1 -1
  30. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  31. package/{chunk-ETLZZQJE.js → chunk-B7W5GH7Z.js} +2 -2
  32. package/{chunk-UZ6XXCVR.js → chunk-BEQGQMYW.js} +14 -1
  33. package/{chunk-4SZ37KLL.js → chunk-BGNHBBI3.js} +14 -14
  34. package/{chunk-WL2RKIBF.js → chunk-BQKN5ZHZ.js} +1 -1
  35. package/{chunk-BKJO7LDP.js → chunk-CWYE43DU.js} +2 -2
  36. package/{chunk-KRMWO2NN.js → chunk-CYSCZQLE.js} +2 -2
  37. package/{chunk-E36HZARC.js → chunk-DJM4BCSB.js} +3 -3
  38. package/{chunk-GHEJJGJI.js → chunk-EUHAT445.js} +20 -20
  39. package/{chunk-PF6O3GR3.js → chunk-FU3RL7UF.js} +25 -19
  40. package/{chunk-DM4FBSWG.js → chunk-GYLJXJ32.js} +7 -7
  41. package/chunk-HJKGQPYF.js +266 -0
  42. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  43. package/{chunk-T25L377S.js → chunk-I635TS34.js} +9 -9
  44. package/{chunk-IDGYOD2O.js → chunk-I7ZJJVGO.js} +27 -27
  45. package/{chunk-KEZNSFGD.js → chunk-ICEIW3RB.js} +9 -171
  46. package/{chunk-7QVPPOEC.js → chunk-IZWQKAGJ.js} +5 -5
  47. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  48. package/{chunk-E6RGHPDR.js → chunk-KIAHQ37Z.js} +2 -4
  49. package/{chunk-ZZCJUXUI.js → chunk-M67M3AK5.js} +2 -2
  50. package/{chunk-SZLVDREM.js → chunk-N4X2KIYL.js} +3 -3
  51. package/{chunk-BOYUESO7.js → chunk-OAJRZ35U.js} +1 -1
  52. package/{chunk-5J7W2VWW.js → chunk-OHUU52T3.js} +6 -265
  53. package/{chunk-ZVN6I33J.js → chunk-OKCTLCKS.js} +4 -4
  54. package/{chunk-URWDSZRW.js → chunk-OUYDHPVR.js} +3 -3
  55. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  56. package/chunk-QSDL5Y3K.js +1353 -0
  57. package/{chunk-3VPDELAP.js → chunk-RESMIGAE.js} +13 -13
  58. package/{chunk-HTMVBPOF.js → chunk-RZKX733Z.js} +13 -13
  59. package/{chunk-XWNRAIUL.js → chunk-S6FCVZ4I.js} +6 -16
  60. package/{chunk-GCJ3IS5M.js → chunk-SHMFFPY3.js} +167 -2
  61. package/{chunk-3QPYFHAH.js → chunk-SR2I44ML.js} +1 -1
  62. package/{chunk-PZM3EENV.js → chunk-T2EUOLNJ.js} +1 -1
  63. package/{chunk-RZOJRTKR.js → chunk-TNBEPOJR.js} +54 -784
  64. package/{chunk-FNGAF7C4.js → chunk-TR54UTFI.js} +9 -9
  65. package/{chunk-Y3NZYLPG.js → chunk-UAWA257T.js} +1 -1
  66. package/{chunk-DUJWWUGV.js → chunk-UMYXJWI3.js} +1 -1
  67. package/{chunk-EBKMQULC.js → chunk-VIIH2BQP.js} +12 -14
  68. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  69. package/{chunk-73BR2IQT.js → chunk-WKJC6UOK.js} +2 -2
  70. package/{chunk-YFADVSZE.js → chunk-X7WAX4JU.js} +6 -6
  71. package/{chunk-BJCWNHVU.js → chunk-XPMTSMUR.js} +2 -2
  72. package/{chunk-UDQWGU7F.js → chunk-YZHP76TR.js} +1 -1
  73. package/{contentThunks-THSCADSK.js → contentThunks-2GNOEECN.js} +19 -19
  74. package/{createAgentAutomationAction-WGN3UQ5A.js → createAgentAutomationAction-3MR5BSTK.js} +19 -19
  75. package/{createDialogAction-3EN2NLH7.js → createDialogAction-E3PALMYX.js} +22 -22
  76. package/{createPageAction-4VK473QV.js → createPageAction-R2AXAUJK.js} +20 -20
  77. package/{dbSlice-GKGGFNOB.js → dbSlice-JNK4XZ27.js} +7 -7
  78. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  79. package/{dialogCommands-PS4NWYY7.js → dialogCommands-AAUWSOLU.js} +21 -21
  80. package/{dialogSlice-CLV7SVOZ.js → dialogSlice-CYGOKMXJ.js} +18 -18
  81. package/{docCreateCommands-4KANZJR6.js → docCreateCommands-YLDVSLRZ.js} +21 -21
  82. package/{docDeleteCommands-F2S2TRUF.js → docDeleteCommands-3ISHZAEV.js} +22 -22
  83. package/{docReadCommands-B2WDPZQE.js → docReadCommands-5COAVOO3.js} +21 -21
  84. package/{docStore-TDLCHWPF.js → docStore-5XXOJADS.js} +8 -8
  85. package/{docUpdateCommands-E7TKHRIO.js → docUpdateCommands-Z2745NT3.js} +21 -21
  86. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  87. package/getPricing-QVTUQQTM.js +1 -1
  88. package/{handleSendMessageAction-AHL3ZHE4.js → handleSendMessageAction-HFHRBK3J.js} +18 -18
  89. package/index.js +51 -51
  90. package/{localDialogRead-PUQKFI73.js → localDialogRead-GKTRZFAP.js} +1 -1
  91. package/{machineCommands-OTABVXOA.js → machineCommands-I5KWMVKV.js} +43 -43
  92. package/{machineWsRunDispatch-V4EVQSMZ.js → machineWsRunDispatch-3UQVJSGJ.js} +41 -41
  93. package/{memberThunks-KATHH3F4.js → memberThunks-A6OAY77F.js} +8 -8
  94. package/package.json +1 -1
  95. package/{read-LC6HVYBN.js → read-2PV4PN2E.js} +4 -3
  96. package/{readDocTool-N3ERJHHF.js → readDocTool-FGK5XGAW.js} +1 -1
  97. package/{readlineWorkspace-IIT3FQ6I.js → readlineWorkspace-DYVLZVQ3.js} +46 -46
  98. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-6SGBZWSW.js} +10 -10
  99. package/{runAgentClientLoop-7TQM7IAR.js → runAgentClientLoop-LJBICEE5.js} +35 -35
  100. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-LC3SOVJO.js} +8 -8
  101. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-XE2HIEVY.js} +10 -10
  102. package/{settingSlice-OEJA4NQO.js → settingSlice-GJYAXZZ6.js} +9 -9
  103. package/{spaceCommands-FSYH7AL4.js → spaceCommands-T2OFTOSA.js} +19 -19
  104. package/{streamAgentChatTurn-6EF6TVFK.js → streamAgentChatTurn-GDWIAY3S.js} +40 -41
  105. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-EDYI5RLR.js} +7 -7
  106. package/{tools-R3QNWWTD.js → tools-ECH3IW3E.js} +31 -31
  107. package/{tuiSummaryLlmCaller-PWOXTCBF.js → tuiSummaryLlmCaller-CCYGQDGB.js} +10 -10
  108. package/{updateDialogTitleAction-F3EUOWOB.js → updateDialogTitleAction-JOZXFR53.js} +19 -19
  109. package/chunk-I42VC5KR.js +0 -15
  110. package/chunk-NB5SIWC4.js +0 -611
  111. package/codingSkills-7S6523WH.js +0 -48
  112. package/{chunk-AX7RMXSH.js → chunk-5XV64MAU.js} +3 -3
  113. package/{chunk-BZNGCVAW.js → chunk-EDZAJS6E.js} +3 -3
  114. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
@@ -27,7 +27,7 @@ import {
27
27
  resolveLocalUserId,
28
28
  t,
29
29
  toolLabel
30
- } from "./chunk-GHEJJGJI.js";
30
+ } from "./chunk-EUHAT445.js";
31
31
  import {
32
32
  createRunActivityTracker,
33
33
  popSingleQueueMessage,
@@ -47,7 +47,7 @@ import {
47
47
  import {
48
48
  readDbRecord,
49
49
  resolveAgentRecordFromHybridStore
50
- } from "./chunk-NRALD3CC.js";
50
+ } from "./chunk-2LX7X7HX.js";
51
51
  import {
52
52
  isLocalCliAgentKey
53
53
  } from "./chunk-SPAQ4PVV.js";
@@ -63,7 +63,7 @@ import {
63
63
  } from "./chunk-LTRXGFMS.js";
64
64
  import {
65
65
  formatAgentListCard
66
- } from "./chunk-RZOJRTKR.js";
66
+ } from "./chunk-TNBEPOJR.js";
67
67
  import {
68
68
  isTransientFetchError
69
69
  } from "./chunk-5XTOKQLW.js";
@@ -84,11 +84,11 @@ import {
84
84
  chooseMemoryOwners,
85
85
  loadMemoryCandidatesFromDb,
86
86
  resolveAgentMemoryPolicy
87
- } from "./chunk-KEZNSFGD.js";
87
+ } from "./chunk-ICEIW3RB.js";
88
88
  import {
89
89
  API_REPORTED_COST_MULTIPLIER,
90
90
  parseUiAskChoiceContent
91
- } from "./chunk-IDGYOD2O.js";
91
+ } from "./chunk-I7ZJJVGO.js";
92
92
  import {
93
93
  isOAuthApiKeyRef
94
94
  } from "./chunk-YYLHWIW6.js";
@@ -106,15 +106,15 @@ import {
106
106
  import {
107
107
  parseExternalSkillMarkdown,
108
108
  parseSkillDocProtocol
109
- } from "./chunk-AETZ7AD6.js";
109
+ } from "./chunk-Q554LLSI.js";
110
110
  import {
111
111
  LOCAL_AGENT_CONFIG_MISSING_CODE,
112
112
  LOCAL_TURN_ABORTED_CODE,
113
113
  readActionGate
114
- } from "./chunk-PF6O3GR3.js";
114
+ } from "./chunk-FU3RL7UF.js";
115
115
  import {
116
116
  resolveAgentRuntimeConfigFromRecord
117
- } from "./chunk-AX7RMXSH.js";
117
+ } from "./chunk-5XV64MAU.js";
118
118
  import {
119
119
  createThinkParserState,
120
120
  flushThinkParser,
@@ -136,10 +136,10 @@ import {
136
136
  DEFAULT_CONTEXT_WINDOW,
137
137
  getModelContextWindow,
138
138
  normalizeUsage
139
- } from "./chunk-7QVPPOEC.js";
139
+ } from "./chunk-IZWQKAGJ.js";
140
140
  import {
141
141
  clipCompactText
142
- } from "./chunk-E36HZARC.js";
142
+ } from "./chunk-DJM4BCSB.js";
143
143
  import {
144
144
  findModelConfig
145
145
  } from "./chunk-MXUSPS2N.js";
@@ -173,7 +173,7 @@ import {
173
173
  } from "./chunk-Y5GCAMGP.js";
174
174
  import {
175
175
  createMemoryKey
176
- } from "./chunk-NHRQCXIQ.js";
176
+ } from "./chunk-VMFTFOWF.js";
177
177
  import {
178
178
  asTrimmedLowercaseString
179
179
  } from "./chunk-QSJ3HFEF.js";
@@ -181,7 +181,7 @@ import {
181
181
  BUILTIN_NOLO_AGENT_KEY,
182
182
  BUILTIN_NOLO_AGENT_NAME,
183
183
  builtinAgentCatalogEntryById
184
- } from "./chunk-5J7W2VWW.js";
184
+ } from "./chunk-HJKGQPYF.js";
185
185
  import {
186
186
  parsePublicAgentId
187
187
  } from "./chunk-BJIRLHJR.js";
@@ -10413,7 +10413,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
10413
10413
  // packages/cli/client/agentRun.ts
10414
10414
  import { ulid } from "ulid";
10415
10415
  async function loadRunLocalAgentTurn() {
10416
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-YRONTDLM.js");
10416
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-CNL444G4.js");
10417
10417
  return runLocalAgentTurn;
10418
10418
  }
10419
10419
  var stripDebugNoise = (s) => s.replace(/\s*raw="[\s\S]*"/g, "").replace(/\s*raw=\S+/g, "").replace(/\s*headers=\[[^\]]*\]/g, "").replace(/\s*headers=\S+/g, "").trim();
@@ -5,14 +5,14 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-KRMWO2NN.js";
8
+ } from "./chunk-CYSCZQLE.js";
9
9
  import {
10
10
  INVALID_TOOL_ARGS_REPLACEMENT,
11
11
  buildInvalidToolCallSelfHealResult,
12
12
  parseToolCallArguments,
13
13
  performFetchRequest,
14
14
  sanitizeOutboundMessages
15
- } from "./chunk-4SZ37KLL.js";
15
+ } from "./chunk-BGNHBBI3.js";
16
16
  import {
17
17
  createSSEParser,
18
18
  createToolRunId,
@@ -23,7 +23,7 @@ import {
23
23
  toolRunSetPending,
24
24
  toolRunStarted,
25
25
  toolRunSucceeded
26
- } from "./chunk-RZOJRTKR.js";
26
+ } from "./chunk-TNBEPOJR.js";
27
27
  import {
28
28
  getPublicImageAgentMode
29
29
  } from "./chunk-VIDPVFP3.js";
@@ -35,10 +35,10 @@ import {
35
35
  messageStreamEnd,
36
36
  messageStreaming,
37
37
  updateToolMessage
38
- } from "./chunk-IDGYOD2O.js";
38
+ } from "./chunk-I7ZJJVGO.js";
39
39
  import {
40
40
  streamAgentChatTurn
41
- } from "./chunk-DM4FBSWG.js";
41
+ } from "./chunk-GYLJXJ32.js";
42
42
  import {
43
43
  addActiveController,
44
44
  removeActiveController,
@@ -56,7 +56,7 @@ import {
56
56
  import {
57
57
  EMPTY_ASSISTANT_REPAIR_PROMPT,
58
58
  getModelInfo
59
- } from "./chunk-7QVPPOEC.js";
59
+ } from "./chunk-IZWQKAGJ.js";
60
60
  import {
61
61
  getApiEndpoint
62
62
  } from "./chunk-MXUSPS2N.js";
@@ -65,33 +65,33 @@ import {
65
65
  } from "./chunk-HNMXYYJR.js";
66
66
  import {
67
67
  selectCurrentServer
68
- } from "./chunk-XWNRAIUL.js";
68
+ } from "./chunk-S6FCVZ4I.js";
69
69
  import {
70
70
  write
71
- } from "./chunk-YFADVSZE.js";
71
+ } from "./chunk-X7WAX4JU.js";
72
72
  import {
73
73
  createDialogMessageKeyAndId,
74
74
  dialogMessageKey,
75
75
  toTrimmedString
76
- } from "./chunk-NHRQCXIQ.js";
76
+ } from "./chunk-VMFTFOWF.js";
77
77
  import {
78
78
  extractCustomId
79
79
  } from "./chunk-BJIRLHJR.js";
80
80
  import {
81
81
  createAsyncThunk
82
- } from "./chunk-3RAG2NAD.js";
82
+ } from "./chunk-UKWGR5SS.js";
83
83
  import {
84
84
  isAbortError
85
85
  } from "./chunk-QOKAKDPE.js";
86
86
  import {
87
87
  selectIdentityToken
88
88
  } from "./chunk-SEJ5OS6F.js";
89
- import {
90
- asTrimmedString
91
- } from "./chunk-3EUW3WEO.js";
92
89
  import {
93
90
  isRecord
94
91
  } from "./chunk-KUG52IAP.js";
92
+ import {
93
+ asTrimmedString
94
+ } from "./chunk-3EUW3WEO.js";
95
95
  import {
96
96
  asOptionalTrimmedString
97
97
  } from "./chunk-G3SUCT4W.js";
@@ -2,8 +2,9 @@ import {
2
2
  parsePositiveFiniteNumberOrFallback
3
3
  } from "./chunk-Y5GCAMGP.js";
4
4
  import {
5
- DEFAULT_SYSTEM_AGENT_CAPABILITIES
6
- } from "./chunk-UZ6XXCVR.js";
5
+ DEFAULT_SYSTEM_AGENT_CAPABILITIES,
6
+ noloAgentId
7
+ } from "./chunk-BEQGQMYW.js";
7
8
  import {
8
9
  asRecordOrEmpty
9
10
  } from "./chunk-KX6YBIHG.js";
@@ -13,25 +14,22 @@ import {
13
14
  toTimestampMs,
14
15
  upsert,
15
16
  write
16
- } from "./chunk-YFADVSZE.js";
17
+ } from "./chunk-X7WAX4JU.js";
17
18
  import {
18
19
  createUserKey,
19
20
  createUserPreferenceKey,
20
21
  ulid
21
- } from "./chunk-NHRQCXIQ.js";
22
+ } from "./chunk-VMFTFOWF.js";
22
23
  import {
23
24
  asTrimmedLowercaseString
24
25
  } from "./chunk-QSJ3HFEF.js";
25
- import {
26
- BUILTIN_NOLO_AGENT_KEY
27
- } from "./chunk-5J7W2VWW.js";
28
26
  import {
29
27
  asyncThunkCreator,
30
28
  buildCreateSlice,
31
29
  createAction,
32
30
  createAsyncThunk,
33
31
  createSelector
34
- } from "./chunk-3RAG2NAD.js";
32
+ } from "./chunk-UKWGR5SS.js";
35
33
  import {
36
34
  getAllServers,
37
35
  getIsDesktopApp,
@@ -1016,12 +1014,6 @@ var withSettingsRecordSchema = (changes) => ({
1016
1014
  schemaVersion: SETTINGS_RECORD_SCHEMA_VERSION
1017
1015
  });
1018
1016
 
1019
- // packages/core/init.ts
1020
- var nolotusId = "0e95801d90";
1021
- var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
1022
- var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
1023
- var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
1024
-
1025
1017
  // packages/app/settings/settingNormalizers.ts
1026
1018
  var hasOwn = (target, key) => Object.prototype.hasOwnProperty.call(target, key);
1027
1019
  var normalizeDefaultAgentIdSetting = (value) => {
@@ -1994,8 +1986,6 @@ export {
1994
1986
  AGENT_UPDATE_FIELD_NAMES,
1995
1987
  normalizeAgentUpdateFieldList,
1996
1988
  SYSTEM_DEFAULT_AGENT_ID,
1997
- nolotusId,
1998
- isSystemAdmin,
1999
1989
  normalizeSettingChanges,
2000
1990
  LOCAL_FIRST_APPEARANCE_KEYS,
2001
1991
  LOCAL_ONLY_SETTINGS_KEYS,
@@ -1,7 +1,13 @@
1
+ import {
2
+ buildSkillDocMarkdown
3
+ } from "./chunk-Q554LLSI.js";
1
4
  import {
2
5
  SYSTEM_AGENT_CAPABILITIES,
3
6
  SYSTEM_AGENT_CAPABILITY_IDS
4
- } from "./chunk-UZ6XXCVR.js";
7
+ } from "./chunk-BEQGQMYW.js";
8
+ import {
9
+ createKey
10
+ } from "./chunk-VMFTFOWF.js";
5
11
 
6
12
  // packages/ai/tools/codeWorkDiscipline.ts
7
13
  var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
@@ -366,6 +372,160 @@ function applyDefaultWebToolPacks(args) {
366
372
  return [...enhanced];
367
373
  }
368
374
 
375
+ // packages/ai/skills/builtinObjectSkills.ts
376
+ var BUILTIN_OBJECT_SKILL_IDS = {
377
+ table: "builtin-table-skill-v1",
378
+ doc: "builtin-doc-skill-v1",
379
+ // key 改名为 code-style(它本来就叫「编码风格技能」,"code" 这个名字是它抢的,
380
+ // 与「代码执行」能力包撞车)。**id 值保持不变**——skillId 与页面 key 都从它派生,
381
+ // 改了会让存量 agent.references 失配。
382
+ "code-style": "builtin-code-skill-v1",
383
+ image: "builtin-image-skill-v1",
384
+ file: "builtin-file-skill-v1",
385
+ pagebuilder: "builtin-pagebuilder-skill-v1"
386
+ };
387
+ var SKILL_DEFS = {
388
+ doc: {
389
+ id: BUILTIN_OBJECT_SKILL_IDS.doc,
390
+ name: "\u6587\u6863\u7F16\u8F91\u6280\u80FD",
391
+ 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",
392
+ toolNames: ["readDoc", "updateDoc"],
393
+ promptPatch: [
394
+ "\u6587\u6863\u7F16\u8F91\u6307\u5357\uFF1A",
395
+ "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",
396
+ "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"
397
+ ].join("\n")
398
+ },
399
+ table: {
400
+ id: BUILTIN_OBJECT_SKILL_IDS.table,
401
+ name: "\u8868\u683C\u7F16\u8F91\u6280\u80FD",
402
+ 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",
403
+ // 与 app-builder 能力包共用同一份清单(TOOL_PACKS.TABLE)。
404
+ // 以前两边各抄一份,改一个忘另一个就会静默不同步。
405
+ toolNames: [...TOOL_PACKS.TABLE],
406
+ promptPatch: [
407
+ "\u8868\u683C\u64CD\u4F5C\u6307\u5357\uFF1A",
408
+ "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",
409
+ "2. \u65B0\u589E\u8BB0\u5F55\u5FC5\u987B\u8C03\u7528 addTableRow / addTableRows\uFF0C\u4E0D\u8981\u53EA\u5728\u56DE\u7B54\u91CC\u53E3\u5934\u63CF\u8FF0\u3002",
410
+ "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",
411
+ "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"
412
+ ].join("\n")
413
+ },
414
+ "code-style": {
415
+ id: BUILTIN_OBJECT_SKILL_IDS["code-style"],
416
+ name: "\u7F16\u7801\u98CE\u683C\u6280\u80FD",
417
+ 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",
418
+ toolNames: [],
419
+ promptPatch: [
420
+ "\u7F16\u7801\u98CE\u683C\u4E0E\u89C4\u8303\u6307\u5357\uFF1A",
421
+ "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",
422
+ "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",
423
+ "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",
424
+ "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",
425
+ "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"
426
+ ].join("\n")
427
+ },
428
+ image: {
429
+ id: BUILTIN_OBJECT_SKILL_IDS.image,
430
+ name: "\u56FE\u7247\u5206\u6790\u6280\u80FD",
431
+ 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",
432
+ toolNames: [],
433
+ promptPatch: [
434
+ "\u56FE\u7247\u5206\u6790\u6307\u5357\uFF1A",
435
+ "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",
436
+ "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"
437
+ ].join("\n")
438
+ },
439
+ file: {
440
+ id: BUILTIN_OBJECT_SKILL_IDS.file,
441
+ name: "\u6587\u4EF6\u5904\u7406\u6280\u80FD",
442
+ 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",
443
+ toolNames: [],
444
+ promptPatch: [
445
+ "\u6587\u4EF6\u5904\u7406\u6307\u5357\uFF1A",
446
+ "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",
447
+ "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"
448
+ ].join("\n")
449
+ },
450
+ pagebuilder: {
451
+ id: BUILTIN_OBJECT_SKILL_IDS.pagebuilder,
452
+ name: "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u6280\u80FD",
453
+ 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",
454
+ toolNames: [],
455
+ promptPatch: [
456
+ "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u89C4\u5219\uFF1A",
457
+ "\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",
458
+ "",
459
+ "\u7EDD\u5BF9\u89C4\u5219\uFF1A",
460
+ "1. \u53EA\u8F93\u51FA\u4E00\u4E2A Markdown \u4EE3\u7801\u5757\uFF0C\u4EE3\u7801\u5757\u8BED\u8A00\u5FC5\u987B\u662F tsx preview\u3002",
461
+ "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",
462
+ "3. \u4EE3\u7801\u5FC5\u987B\u5B9A\u4E49\u9876\u5C42 function Example()\uFF0C\u4E0D\u8981\u8C03\u7528 render()\uFF0C\u4E0D\u8981 export default\u3002",
463
+ "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",
464
+ "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",
465
+ "6. \u4E3A\u4E3B\u8981\u533A\u5757\u52A0 data-artifact-section \u5C5E\u6027\u3002",
466
+ "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",
467
+ "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",
468
+ "",
469
+ "\u5404\u7C7B\u9875\u9762\u9ED8\u8BA4\u7ED3\u6784\uFF1A",
470
+ "- \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",
471
+ "- \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",
472
+ "- \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",
473
+ "- \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",
474
+ "- \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",
475
+ "- \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",
476
+ "- \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",
477
+ "",
478
+ "\u4EE3\u7801\u98CE\u683C\uFF1A",
479
+ "1. \u4F7F\u7528\u5185\u8054 style \u6216\u7EC4\u4EF6\u5185 <style>\uFF0C\u4E0D\u8981\u4F9D\u8D56 Tailwind \u6216\u5916\u90E8 CSS\u3002",
480
+ "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",
481
+ "3. \u989C\u8272\u8981\u514B\u5236\uFF0C\u6709\u5C42\u6B21\uFF1B\u907F\u514D\u6574\u9875\u5355\u4E00\u84DD\u7D2B\u6E10\u53D8\u3002",
482
+ "4. \u8868\u683C\u3001\u56FE\u8868\u3001\u5361\u7247\u3001\u6309\u94AE\u90FD\u8981\u6709 hover/active/focus \u7684\u7EC6\u8282\u3002",
483
+ "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",
484
+ "6. \u4EE3\u7801\u5C3D\u91CF\u77ED\u800C\u5B8C\u6574\uFF0C\u9ED8\u8BA4 150-260 \u884C\u4EE5\u5185\u3002",
485
+ "",
486
+ "\u8F93\u51FA\u683C\u5F0F\u793A\u4F8B\uFF1A",
487
+ "```tsx preview",
488
+ "function Example() {",
489
+ " const [tab, setTab] = useState('overview');",
490
+ " return <main><section data-artifact-section>...</section></main>;",
491
+ "}",
492
+ "```"
493
+ ].join("\n")
494
+ }
495
+ };
496
+ function buildBuiltinObjectSkillConfig(kind) {
497
+ const def = SKILL_DEFS[kind];
498
+ return {
499
+ version: "0.1",
500
+ kind: "skill",
501
+ id: def.id,
502
+ name: def.name,
503
+ description: def.description,
504
+ triggerMode: "explicit",
505
+ toolNames: def.toolNames,
506
+ promptPatch: def.promptPatch
507
+ };
508
+ }
509
+ function buildBuiltinObjectSkillDbKey(kind, userId) {
510
+ return createKey("page" /* DOC */, userId, BUILTIN_OBJECT_SKILL_IDS[kind]);
511
+ }
512
+ function buildBuiltinObjectSkillReference(kind, userId) {
513
+ return {
514
+ dbKey: buildBuiltinObjectSkillDbKey(kind, userId),
515
+ title: SKILL_DEFS[kind].name,
516
+ type: "instruction"
517
+ };
518
+ }
519
+ function buildBuiltinObjectSkillPageContent(kind) {
520
+ const def = SKILL_DEFS[kind];
521
+ return buildSkillDocMarkdown({
522
+ body: `# ${def.name}
523
+
524
+ ${def.description}`,
525
+ skillConfig: buildBuiltinObjectSkillConfig(kind)
526
+ });
527
+ }
528
+
369
529
  export {
370
530
  buildCodeWorkDiscipline,
371
531
  TOOL_PACKS,
@@ -379,5 +539,10 @@ export {
379
539
  FORCED_TOOLS,
380
540
  applyDisabledTools,
381
541
  addDefaultLightWebToolsForConfiguredAgents,
382
- applyDefaultWebToolPacks
542
+ applyDefaultWebToolPacks,
543
+ BUILTIN_OBJECT_SKILL_IDS,
544
+ buildBuiltinObjectSkillConfig,
545
+ buildBuiltinObjectSkillDbKey,
546
+ buildBuiltinObjectSkillReference,
547
+ buildBuiltinObjectSkillPageContent
383
548
  };
@@ -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-S6FCVZ4I.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-UAD2WT54.js";
8
8
  import {
9
9
  toTimestampMs
10
- } from "./chunk-YFADVSZE.js";
10
+ } from "./chunk-X7WAX4JU.js";
11
11
  import {
12
12
  fetchFromServer,
13
13
  getAllServers