nolo-cli 0.29.2 → 0.30.0-alpha.10

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 (138) hide show
  1. package/{_executeModel-BFVTGZXE.js → _executeModel-5ARVVUIK.js} +64 -69
  2. package/{action-LG32A6DJ.js → action-HI3VRQLP.js} +15 -16
  3. package/{addContentAction-MPGMBJTQ.js → addContentAction-NCURJ6PK.js} +13 -13
  4. package/{addDialogAgentAction-ZH23WDID.js → addDialogAgentAction-RCY4ECF4.js} +12 -12
  5. package/{agentDeleteCommand-4S4STG42.js → agentDeleteCommand-5Q6TDCJU.js} +62 -40
  6. package/{agentEmailCommands-3F4IP4DI.js → agentEmailCommands-DSX4BJ2I.js} +77 -81
  7. package/{agentGrantCommands-JNDE4RWR.js → agentGrantCommands-E7ZZFRHK.js} +2 -1
  8. package/{agentListCommands-JCRV2XF6.js → agentListCommands-S66HL5RO.js} +59 -41
  9. package/{agentMachineCommands-KYXPYSFP.js → agentMachineCommands-ULCQ5ZNN.js} +55 -36
  10. package/{agentPullCommand-ZZGU5KOY.js → agentPullCommand-4V36XNGV.js} +4 -3
  11. package/{agentRecordCommands-UADUPIXO.js → agentRecordCommands-2AA3GEGO.js} +75 -79
  12. package/{agentRunCommand-MJWSR53W.js → agentRunCommand-3KOT77XY.js} +79 -83
  13. package/{agentRunControl-SNUKXN6J.js → agentRunControl-AKBN2366.js} +13 -1
  14. package/{agentRuntimeLocal-PC5RRRPT.js → agentRuntimeLocal-7TMDJD4S.js} +50 -31
  15. package/{agentSlice-C5OYLNBT.js → agentSlice-6IQRQZX3.js} +13 -14
  16. package/{appDeleteCommands-ZXODZ5AD.js → appDeleteCommands-UUDIWLNE.js} +55 -36
  17. package/{appDeployCommands-AWC6JPZH.js → appDeployCommands-CO6SZ7YP.js} +55 -36
  18. package/{appDeployStatusCommands-74NXMDAI.js → appDeployStatusCommands-QEVKVECJ.js} +55 -36
  19. package/{appGetCommands-6YGIAP5L.js → appGetCommands-3YSCCLK4.js} +55 -36
  20. package/{appListCommands-DZWBHMNK.js → appListCommands-FBJAFZKK.js} +55 -36
  21. package/{authCommand-XMQHBK5L.js → authCommand-3ADNCFKD.js} +16 -16
  22. package/{authCommands-JSOG2H4E.js → authCommands-CXJ6PI2O.js} +7 -7
  23. package/{chunk-TOGGHWHI.js → chunk-2CYGIPJH.js} +3 -3
  24. package/{chunk-HRJEPMZY.js → chunk-2HQ4OG6N.js} +2 -2
  25. package/{chunk-XMLRJUU5.js → chunk-2IJAKBK2.js} +12 -10
  26. package/{chunk-OLWMGSW2.js → chunk-2SOQY5L6.js} +41 -39
  27. package/{chunk-7H3UTGPM.js → chunk-3AUWC6EM.js} +82 -3
  28. package/{chunk-6HTWA77J.js → chunk-43EPBPZ2.js} +1 -1
  29. package/{chunk-RJBTU7AS.js → chunk-4F77PJBR.js} +302 -14
  30. package/{chunk-RZNYL4LW.js → chunk-4SAV7BD7.js} +65 -1
  31. package/{chunk-R5V5G73M.js → chunk-5RDLGLAP.js} +0 -1
  32. package/{chunk-VKBTAQWT.js → chunk-6JH2DF7J.js} +6 -6
  33. package/{chunk-DZ3XJVET.js → chunk-AOS5IN2I.js} +1 -1
  34. package/{chunk-5ZXNLOAG.js → chunk-ARPAHODF.js} +17 -10
  35. package/{chunk-IC7W63RM.js → chunk-ATK5WJOA.js} +4 -4
  36. package/{chunk-OEWEE4VW.js → chunk-BIPRFBC2.js} +4 -2
  37. package/{chunk-YTA2QOEE.js → chunk-CAENRKNJ.js} +15 -0
  38. package/chunk-CYRMUTGB.js +1707 -0
  39. package/chunk-DCDL3GC4.js +171 -0
  40. package/{chunk-WX3ZOSTL.js → chunk-EBNSAABL.js} +24 -26
  41. package/{chunk-2TYLTEAH.js → chunk-EDWM6D6L.js} +1 -1
  42. package/{chunk-GT3GG2H7.js → chunk-EIQDGAAE.js} +148 -2
  43. package/chunk-F3MP7CP6.js +73 -0
  44. package/{chunk-R7LOFGRE.js → chunk-G5GVZAXF.js} +19 -15
  45. package/{chunk-KEF5OBOZ.js → chunk-GKXS4F2I.js} +33 -27
  46. package/{chunk-R3JSTDQO.js → chunk-GVPMJPCT.js} +1 -1
  47. package/{chunk-WMB7GVPN.js → chunk-IPSPETAL.js} +152 -1177
  48. package/{chunk-MQRZ5QUH.js → chunk-IXZX5CJK.js} +1 -1
  49. package/{chunk-2FX23RGA.js → chunk-J3LHGBNO.js} +5 -5
  50. package/{chunk-VHBWHNVT.js → chunk-K6QEHQZ3.js} +8 -4
  51. package/{chunk-HRPWRVBI.js → chunk-KGEVMUMI.js} +11 -11
  52. package/{chunk-L65QKSVJ.js → chunk-L3GCUVOH.js} +1 -1
  53. package/{chunk-G2BZ43DV.js → chunk-LAXMH7JY.js} +14 -14
  54. package/chunk-LEVCXTDN.js +5558 -0
  55. package/{chunk-HEXXIS77.js → chunk-N2IX3ZYK.js} +1 -1
  56. package/{chunk-32ZM6HVI.js → chunk-NZBH7FTB.js} +95 -95
  57. package/{chunk-XOIF2TNF.js → chunk-OB6FBSH3.js} +13 -0
  58. package/{chunk-PSK2RUHV.js → chunk-OIW2RJ74.js} +360 -2
  59. package/{chunk-FRN5QOKN.js → chunk-PACNSC37.js} +19 -4
  60. package/{chunk-QC6ZWDSV.js → chunk-PIC6Z7VI.js} +3 -3
  61. package/{chunk-H5S4XUGI.js → chunk-Q243PXRU.js} +185 -158
  62. package/{chunk-BBGRJB5E.js → chunk-QBOW6RZN.js} +4 -4
  63. package/{chunk-FVOSIYXM.js → chunk-R5Y4XELF.js} +43 -394
  64. package/{chunk-DF7SMWEV.js → chunk-RWJPDKPB.js} +1 -1
  65. package/{chunk-NXMJ55RU.js → chunk-S2BMRBR2.js} +3 -3
  66. package/{chunk-GC34RRTQ.js → chunk-SWYMCHM7.js} +1 -69
  67. package/chunk-T27IEBNQ.js +149 -0
  68. package/{chunk-GMJS5AYP.js → chunk-T4X4GCYT.js} +19 -179
  69. package/{chunk-4BDPDTJU.js → chunk-TXVSNFHC.js} +8 -8
  70. package/{chunk-JSB4N6NU.js → chunk-V54H24CQ.js} +3 -3
  71. package/chunk-VQ4QPCKE.js +3226 -0
  72. package/{chunk-Q5RXHXKU.js → chunk-W3UDJJMA.js} +189 -122
  73. package/{chunk-L3QFIBZG.js → chunk-WTGCTVJG.js} +1 -1
  74. package/{chunk-XS7UPVR7.js → chunk-WTPC3XD4.js} +5 -5
  75. package/{chunk-WSQLK2KR.js → chunk-XFGM5PJP.js} +6 -6
  76. package/{chunk-HALKDXKP.js → chunk-XORE26Z4.js} +8 -4
  77. package/chunk-YLC42PIE.js +7889 -0
  78. package/{chunk-SKDNBYZK.js → chunk-ZJ2WITOO.js} +2 -2
  79. package/{chunk-L6RBX4L4.js → chunk-ZJH3LKEW.js} +21 -9
  80. package/{codingSkills-EN6Z6G6U.js → codingSkills-V35TRR4Y.js} +1 -2
  81. package/{createAgentAutomationAction-BK4UZJKU.js → createAgentAutomationAction-EYNYY2LB.js} +31 -37
  82. package/{createDialogAction-MJJUI2MK.js → createDialogAction-OUIRWYZP.js} +34 -39
  83. package/{createPageAction-YMZ7K363.js → createPageAction-2I5PHJFF.js} +45 -51
  84. package/{dbSlice-6QJYQUBV.js → dbSlice-BBL3PEVW.js} +12 -12
  85. package/{deleteFile-WDZ3VM7B.js → deleteFile-RJTEPOT4.js} +6 -6
  86. package/{dialogCommands-OKH45ASS.js → dialogCommands-5CL4QYQ7.js} +55 -38
  87. package/{dialogSlice-UDOKNDHB.js → dialogSlice-EKKVFKBJ.js} +28 -35
  88. package/{docCreateCommands-MCLMR4TE.js → docCreateCommands-QHCLYGNW.js} +54 -37
  89. package/{docDeleteCommands-ONDHI7JV.js → docDeleteCommands-DS6KOU6N.js} +56 -39
  90. package/{docReadCommands-FCXBMISW.js → docReadCommands-FRI5DAKH.js} +54 -37
  91. package/{docStore-N66O4CGH.js → docStore-V7EJS4PX.js} +30 -36
  92. package/{docUpdateCommands-T3XN6XOX.js → docUpdateCommands-RQO5ZTXT.js} +57 -40
  93. package/{fetchMessages-W4IKHPCS.js → fetchMessages-VPPQDDZ4.js} +3 -3
  94. package/{getPricing-X6I23RN6.js → getPricing-67TQVKFV.js} +6 -7
  95. package/{handleSendMessageAction-KC4AYUZP.js → handleSendMessageAction-KCF7KII4.js} +30 -37
  96. package/index.js +72 -72
  97. package/{localDialogRead-UFLBS6OT.js → localDialogRead-P72W2U2R.js} +1 -1
  98. package/{machineCommands-DIMRFA3Y.js → machineCommands-IAGAKTHV.js} +78 -82
  99. package/{machineWsRunDispatch-2DYJZI6Z.js → machineWsRunDispatch-JGKC2HEK.js} +73 -77
  100. package/{models-YT32CTT5.js → models-WDUTTYFS.js} +2 -2
  101. package/{offlineMarxistsAgentCommand-5OOWZLJI.js → offlineMarxistsAgentCommand-E6LUG63A.js} +6 -2
  102. package/package.json +1 -1
  103. package/{read-C7Y6LSBM.js → read-64OQDO3I.js} +7 -7
  104. package/{readDocTool-TOHRYJHP.js → readDocTool-MXM3T6PE.js} +2 -1
  105. package/{readlineWorkspace-HUPHMLDG.js → readlineWorkspace-5AQHHIBK.js} +209 -183
  106. package/{removeDialogAgentAction-WZXPOH5S.js → removeDialogAgentAction-NEKVAMSH.js} +16 -17
  107. package/{runAgentClientLoop-5TGSUKHV.js → runAgentClientLoop-6OGPS6SI.js} +63 -67
  108. package/{setDialogExtraReferencesAction-INZY2ENI.js → setDialogExtraReferencesAction-WTOHQDIV.js} +13 -13
  109. package/{setPrimaryDialogAgentAction-WCVLPYCF.js → setPrimaryDialogAgentAction-LDJOYC4F.js} +16 -17
  110. package/{settingSlice-IDUM4LWU.js → settingSlice-4M37TN7V.js} +14 -15
  111. package/{skillDiscovery-ITA7BI7A.js → skillDiscovery-I3QRA7NE.js} +2 -2
  112. package/{spaceCommands-XSSDB3YK.js → spaceCommands-VTDNKTSF.js} +240 -41
  113. package/{spaceSlice-BXDCO6PT.js → spaceSlice-LGUZMB7Y.js} +29 -35
  114. package/{streamAgentChatTurn-HRFMVSVC.js → streamAgentChatTurn-TIGCZUNZ.js} +133 -1301
  115. package/{switchDialogAgentAction-YBFFCBOD.js → switchDialogAgentAction-XVWGKR2Z.js} +12 -12
  116. package/{tableCommands-QSZILI7I.js → tableCommands-RJZ3V4TF.js} +7 -7
  117. package/{toolApiClient-WVTUYOFM.js → toolApiClient-ARGFDJAG.js} +2 -2
  118. package/{tools-5V6FHWQU.js → tools-BQAOPYMR.js} +51 -56
  119. package/{tuiSummaryLlmCaller-GCUPULOV.js → tuiSummaryLlmCaller-YQBN5IMG.js} +12 -12
  120. package/{updateDialogTitleAction-W62C4W4K.js → updateDialogTitleAction-E6HMEDPH.js} +39 -45
  121. package/chunk-5CS33IBL.js +0 -301
  122. package/chunk-5MMAK75Q.js +0 -15
  123. package/chunk-HYSJHRWD.js +0 -669
  124. package/chunk-MRC4Q34M.js +0 -188
  125. package/chunk-SIZQB7BD.js +0 -91
  126. package/chunk-UEOPA6MV.js +0 -641
  127. package/chunk-UFL6WHHJ.js +0 -15419
  128. package/chunk-VIDPVFP3.js +0 -20
  129. package/chunk-W2LZV5GE.js +0 -231
  130. package/chunk-Y5GCAMGP.js +0 -9
  131. package/chunk-YYLHWIW6.js +0 -48
  132. package/chunk-Z54ZAZZC.js +0 -1791
  133. package/chunk-ZZ2MH7LE.js +0 -84
  134. package/{chunk-OMP5L5NF.js → chunk-44HACRCK.js} +3 -3
  135. package/{chunk-ZVZMT3EA.js → chunk-KWCLUYGQ.js} +3 -3
  136. package/{chunk-NRY4GCKJ.js → chunk-WHLVPK32.js} +3 -3
  137. package/{chunk-RQSOAMPJ.js → chunk-Z5MXSEOJ.js} +2 -2
  138. package/{runtimeDoctorCommands-HSU632DY.js → runtimeDoctorCommands-E2OUORHK.js} +3 -3
@@ -0,0 +1,149 @@
1
+ // packages/agent-runtime/declaredToolNames.ts
2
+ function extractDeclaredToolNames(tools) {
3
+ if (!Array.isArray(tools)) return void 0;
4
+ const names = /* @__PURE__ */ new Set();
5
+ for (const t of tools) {
6
+ const fn = t?.function;
7
+ if (fn && typeof fn.name === "string" && fn.name) names.add(fn.name);
8
+ }
9
+ return names;
10
+ }
11
+
12
+ // packages/agent-runtime/outboundHistorySanitize.ts
13
+ function sanitizeForOutbound(messages, tools) {
14
+ return sanitizeOutboundHistory(messages, {
15
+ declaredToolNames: extractDeclaredToolNames(tools)
16
+ });
17
+ }
18
+ function stableToolCallId(assistantIndex, callIndex) {
19
+ return `call_sanitize_${assistantIndex}_${callIndex}`;
20
+ }
21
+ function isString(v) {
22
+ return typeof v === "string";
23
+ }
24
+ function isNonEmptyString(v) {
25
+ return typeof v === "string" && v.length > 0;
26
+ }
27
+ function joinLines(...parts) {
28
+ return parts.filter(isNonEmptyString).join("\n");
29
+ }
30
+ function jsonStringifyArguments(args) {
31
+ if (typeof args === "string") return args;
32
+ try {
33
+ return JSON.stringify(args ?? "");
34
+ } catch {
35
+ return "";
36
+ }
37
+ }
38
+ function renderToolCallAsText(call) {
39
+ const name = call?.function?.name ?? "unknown";
40
+ const rawArgs = call?.function?.arguments;
41
+ const args = jsonStringifyArguments(rawArgs);
42
+ return `[tool_call: ${name}(${args})]`;
43
+ }
44
+ function renderToolResultAsText(message) {
45
+ const name = isNonEmptyString(message.toolName) ? message.toolName : "tool";
46
+ const body = typeof message.content === "string" ? message.content : "";
47
+ return `[tool_result: ${name}: ${body}]`;
48
+ }
49
+ function normalizeToolCall(call, assistantIndex, callIndex) {
50
+ if (!call || typeof call !== "object") return null;
51
+ const c = call;
52
+ const fn = c.function;
53
+ if (!fn || typeof fn !== "object" || !isString(fn.name)) return null;
54
+ const id = isNonEmptyString(c.id) ? c.id : stableToolCallId(assistantIndex, callIndex);
55
+ return {
56
+ id,
57
+ type: isString(c.type) && c.type ? c.type : "function",
58
+ function: { name: fn.name, arguments: jsonStringifyArguments(fn.arguments) },
59
+ ...typeof c.thought_signature === "string" ? { thought_signature: c.thought_signature } : {}
60
+ };
61
+ }
62
+ function sanitizeOutboundHistory(messages, options) {
63
+ if (!Array.isArray(messages) || messages.length === 0) return messages;
64
+ const declared = options?.declaredToolNames;
65
+ const candidateCallIds = /* @__PURE__ */ new Set();
66
+ for (let i = 0; i < messages.length; i++) {
67
+ const m = messages[i];
68
+ if (m.role !== "assistant" || !Array.isArray(m.tool_calls)) continue;
69
+ m.tool_calls.forEach((call, callIndex) => {
70
+ const name = call?.function?.name;
71
+ const declaredAllows = !declared || isString(name) && declared.has(name);
72
+ if (!declaredAllows) return;
73
+ const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
74
+ candidateCallIds.add(id);
75
+ });
76
+ }
77
+ const resultIds = /* @__PURE__ */ new Set();
78
+ for (const m of messages) {
79
+ if (m.role === "tool" && isNonEmptyString(m.tool_call_id)) {
80
+ resultIds.add(m.tool_call_id);
81
+ }
82
+ }
83
+ const keepCallIds = /* @__PURE__ */ new Set();
84
+ for (const id of candidateCallIds) {
85
+ if (resultIds.has(id)) keepCallIds.add(id);
86
+ }
87
+ const out = [];
88
+ for (let i = 0; i < messages.length; i++) {
89
+ const m = messages[i];
90
+ if (m.role === "assistant") {
91
+ let toolCalls;
92
+ const downgradedLines = [];
93
+ if (Array.isArray(m.tool_calls) && m.tool_calls.length > 0) {
94
+ const kept = [];
95
+ m.tool_calls.forEach((call, callIndex) => {
96
+ const name = call?.function?.name;
97
+ const declaredAllows = !declared || isString(name) && declared.has(name);
98
+ const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
99
+ const keepStructural = declaredAllows && keepCallIds.has(id);
100
+ if (keepStructural) {
101
+ const normalized = normalizeToolCall(call, i, callIndex);
102
+ if (normalized) kept.push(normalized);
103
+ } else {
104
+ downgradedLines.push(renderToolCallAsText(call));
105
+ }
106
+ });
107
+ toolCalls = kept.length > 0 ? kept : void 0;
108
+ }
109
+ const downgradedText = joinLines(...downgradedLines);
110
+ const contentWithDowngrade = downgradedText.length > 0 ? combineContentWithText(m.content, downgradedText) : m.content;
111
+ const sanitizedAssistant = {
112
+ ...m,
113
+ content: contentWithDowngrade,
114
+ tool_calls: toolCalls
115
+ };
116
+ if (!toolCalls) delete sanitizedAssistant.tool_calls;
117
+ out.push(sanitizedAssistant);
118
+ continue;
119
+ }
120
+ if (m.role === "tool") {
121
+ const id = isNonEmptyString(m.tool_call_id) ? m.tool_call_id : "";
122
+ if (id && keepCallIds.has(id)) {
123
+ out.push({ ...m, content: m.content ?? "", tool_call_id: id });
124
+ } else {
125
+ out.push({
126
+ role: "assistant",
127
+ content: renderToolResultAsText(m)
128
+ });
129
+ }
130
+ continue;
131
+ }
132
+ out.push({ ...m });
133
+ }
134
+ return out;
135
+ }
136
+ function combineContentWithText(base, extra) {
137
+ if (typeof base === "string") {
138
+ return base ? `${base}
139
+ ${extra}` : extra;
140
+ }
141
+ if (Array.isArray(base)) {
142
+ return [...base, { type: "text", text: extra }];
143
+ }
144
+ return extra;
145
+ }
146
+
147
+ export {
148
+ sanitizeForOutbound
149
+ };
@@ -1,54 +1,52 @@
1
1
  import {
2
- addContentToSpace,
2
+ buildBuiltinObjectSkillReference
3
+ } from "./chunk-DCDL3GC4.js";
4
+ import {
5
+ addContentToSpace
6
+ } from "./chunk-YLC42PIE.js";
7
+ import {
3
8
  prepareAndPersistMessage,
4
9
  uiAskChoiceFunc,
5
10
  uiAskChoiceFunctionSchema
6
- } from "./chunk-UFL6WHHJ.js";
11
+ } from "./chunk-LEVCXTDN.js";
7
12
  import {
8
13
  require_date_fns
9
14
  } from "./chunk-M76ECQRD.js";
10
- import {
11
- TOOL_PACKS
12
- } from "./chunk-CF7S2RYZ.js";
13
- import {
14
- buildSkillDocMarkdown
15
- } from "./chunk-ZWJOGMKH.js";
16
15
  import {
17
16
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
18
17
  PLATFORM_HOSTED_DEEPSEEK_FLASH_PRICE,
19
18
  PLATFORM_HOSTED_KIMI_PROVIDER
20
- } from "./chunk-YTA2QOEE.js";
19
+ } from "./chunk-CAENRKNJ.js";
21
20
  import {
22
21
  read,
23
22
  readAndWait,
24
23
  removeCachedEntity,
25
24
  upsertSSREntity,
26
25
  write
27
- } from "./chunk-G2BZ43DV.js";
26
+ } from "./chunk-LAXMH7JY.js";
27
+ import {
28
+ extractCustomId
29
+ } from "./chunk-TOW4E763.js";
30
+ import {
31
+ selectIdentityUserId
32
+ } from "./chunk-2IJAKBK2.js";
33
+ import {
34
+ isDevelopment
35
+ } from "./chunk-5RDLGLAP.js";
28
36
  import {
29
37
  createAgentKey,
30
38
  createDialogKey,
31
- createKey,
32
39
  createMemoryKey,
33
40
  dialogMessageRange,
34
41
  memoryOwnerRange,
35
42
  memorySubjectKindRange
36
- } from "./chunk-NRY4GCKJ.js";
37
- import {
38
- selectIdentityUserId
39
- } from "./chunk-XMLRJUU5.js";
40
- import {
41
- isDevelopment
42
- } from "./chunk-R5V5G73M.js";
43
+ } from "./chunk-WHLVPK32.js";
43
44
  import {
44
45
  asTrimmedString
45
46
  } from "./chunk-3EUW3WEO.js";
46
47
  import {
47
48
  asOptionalPositiveFiniteNumber
48
49
  } from "./chunk-U6VC4MU4.js";
49
- import {
50
- extractCustomId
51
- } from "./chunk-TOW4E763.js";
52
50
  import {
53
51
  isRecord
54
52
  } from "./chunk-KUG52IAP.js";
@@ -62,160 +60,6 @@ import {
62
60
  // packages/chat/dialog/actions/createDialogAction.ts
63
61
  var import_date_fns = __toESM(require_date_fns());
64
62
 
65
- // packages/ai/skills/builtinObjectSkills.ts
66
- var BUILTIN_OBJECT_SKILL_IDS = {
67
- table: "builtin-table-skill-v1",
68
- doc: "builtin-doc-skill-v1",
69
- // key 改名为 code-style(它本来就叫「编码风格技能」,"code" 这个名字是它抢的,
70
- // 与「代码执行」能力包撞车)。**id 值保持不变**——skillId 与页面 key 都从它派生,
71
- // 改了会让存量 agent.references 失配。
72
- "code-style": "builtin-code-skill-v1",
73
- image: "builtin-image-skill-v1",
74
- file: "builtin-file-skill-v1",
75
- pagebuilder: "builtin-pagebuilder-skill-v1"
76
- };
77
- var SKILL_DEFS = {
78
- doc: {
79
- id: BUILTIN_OBJECT_SKILL_IDS.doc,
80
- name: "\u6587\u6863\u7F16\u8F91\u6280\u80FD",
81
- 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",
82
- toolNames: ["readDoc", "updateDoc"],
83
- promptPatch: [
84
- "\u6587\u6863\u7F16\u8F91\u6307\u5357\uFF1A",
85
- "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",
86
- "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"
87
- ].join("\n")
88
- },
89
- table: {
90
- id: BUILTIN_OBJECT_SKILL_IDS.table,
91
- name: "\u8868\u683C\u7F16\u8F91\u6280\u80FD",
92
- 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",
93
- // 与 app-builder 能力包共用同一份清单(TOOL_PACKS.TABLE)。
94
- // 以前两边各抄一份,改一个忘另一个就会静默不同步。
95
- toolNames: [...TOOL_PACKS.TABLE],
96
- promptPatch: [
97
- "\u8868\u683C\u64CD\u4F5C\u6307\u5357\uFF1A",
98
- "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",
99
- "2. \u65B0\u589E\u8BB0\u5F55\u5FC5\u987B\u8C03\u7528 addTableRow / addTableRows\uFF0C\u4E0D\u8981\u53EA\u5728\u56DE\u7B54\u91CC\u53E3\u5934\u63CF\u8FF0\u3002",
100
- "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",
101
- "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"
102
- ].join("\n")
103
- },
104
- "code-style": {
105
- id: BUILTIN_OBJECT_SKILL_IDS["code-style"],
106
- name: "\u7F16\u7801\u98CE\u683C\u6280\u80FD",
107
- 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",
108
- toolNames: [],
109
- promptPatch: [
110
- "\u7F16\u7801\u98CE\u683C\u4E0E\u89C4\u8303\u6307\u5357\uFF1A",
111
- "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",
112
- "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",
113
- "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",
114
- "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",
115
- "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"
116
- ].join("\n")
117
- },
118
- image: {
119
- id: BUILTIN_OBJECT_SKILL_IDS.image,
120
- name: "\u56FE\u7247\u5206\u6790\u6280\u80FD",
121
- 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",
122
- toolNames: [],
123
- promptPatch: [
124
- "\u56FE\u7247\u5206\u6790\u6307\u5357\uFF1A",
125
- "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",
126
- "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"
127
- ].join("\n")
128
- },
129
- file: {
130
- id: BUILTIN_OBJECT_SKILL_IDS.file,
131
- name: "\u6587\u4EF6\u5904\u7406\u6280\u80FD",
132
- 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",
133
- toolNames: [],
134
- promptPatch: [
135
- "\u6587\u4EF6\u5904\u7406\u6307\u5357\uFF1A",
136
- "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",
137
- "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"
138
- ].join("\n")
139
- },
140
- pagebuilder: {
141
- id: BUILTIN_OBJECT_SKILL_IDS.pagebuilder,
142
- name: "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u6280\u80FD",
143
- 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",
144
- toolNames: [],
145
- promptPatch: [
146
- "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u89C4\u5219\uFF1A",
147
- "\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",
148
- "",
149
- "\u7EDD\u5BF9\u89C4\u5219\uFF1A",
150
- "1. \u53EA\u8F93\u51FA\u4E00\u4E2A Markdown \u4EE3\u7801\u5757\uFF0C\u4EE3\u7801\u5757\u8BED\u8A00\u5FC5\u987B\u662F tsx preview\u3002",
151
- "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",
152
- "3. \u4EE3\u7801\u5FC5\u987B\u5B9A\u4E49\u9876\u5C42 function Example()\uFF0C\u4E0D\u8981\u8C03\u7528 render()\uFF0C\u4E0D\u8981 export default\u3002",
153
- "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",
154
- "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",
155
- "6. \u4E3A\u4E3B\u8981\u533A\u5757\u52A0 data-artifact-section \u5C5E\u6027\u3002",
156
- "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",
157
- "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",
158
- "",
159
- "\u5404\u7C7B\u9875\u9762\u9ED8\u8BA4\u7ED3\u6784\uFF1A",
160
- "- \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",
161
- "- \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",
162
- "- \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",
163
- "- \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",
164
- "- \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",
165
- "- \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",
166
- "- \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",
167
- "",
168
- "\u4EE3\u7801\u98CE\u683C\uFF1A",
169
- "1. \u4F7F\u7528\u5185\u8054 style \u6216\u7EC4\u4EF6\u5185 <style>\uFF0C\u4E0D\u8981\u4F9D\u8D56 Tailwind \u6216\u5916\u90E8 CSS\u3002",
170
- "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",
171
- "3. \u989C\u8272\u8981\u514B\u5236\uFF0C\u6709\u5C42\u6B21\uFF1B\u907F\u514D\u6574\u9875\u5355\u4E00\u84DD\u7D2B\u6E10\u53D8\u3002",
172
- "4. \u8868\u683C\u3001\u56FE\u8868\u3001\u5361\u7247\u3001\u6309\u94AE\u90FD\u8981\u6709 hover/active/focus \u7684\u7EC6\u8282\u3002",
173
- "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",
174
- "6. \u4EE3\u7801\u5C3D\u91CF\u77ED\u800C\u5B8C\u6574\uFF0C\u9ED8\u8BA4 150-260 \u884C\u4EE5\u5185\u3002",
175
- "",
176
- "\u8F93\u51FA\u683C\u5F0F\u793A\u4F8B\uFF1A",
177
- "```tsx preview",
178
- "function Example() {",
179
- " const [tab, setTab] = useState('overview');",
180
- " return <main><section data-artifact-section>...</section></main>;",
181
- "}",
182
- "```"
183
- ].join("\n")
184
- }
185
- };
186
- function buildBuiltinObjectSkillConfig(kind) {
187
- const def = SKILL_DEFS[kind];
188
- return {
189
- version: "0.1",
190
- kind: "skill",
191
- id: def.id,
192
- name: def.name,
193
- description: def.description,
194
- triggerMode: "explicit",
195
- toolNames: def.toolNames,
196
- promptPatch: def.promptPatch
197
- };
198
- }
199
- function buildBuiltinObjectSkillDbKey(kind, userId) {
200
- return createKey("page" /* DOC */, userId, BUILTIN_OBJECT_SKILL_IDS[kind]);
201
- }
202
- function buildBuiltinObjectSkillReference(kind, userId) {
203
- return {
204
- dbKey: buildBuiltinObjectSkillDbKey(kind, userId),
205
- title: SKILL_DEFS[kind].name,
206
- type: "instruction"
207
- };
208
- }
209
- function buildBuiltinObjectSkillPageContent(kind) {
210
- const def = SKILL_DEFS[kind];
211
- return buildSkillDocMarkdown({
212
- body: `# ${def.name}
213
-
214
- ${def.description}`,
215
- skillConfig: buildBuiltinObjectSkillConfig(kind)
216
- });
217
- }
218
-
219
63
  // packages/chat/dialog/objectAssistantRegistry.ts
220
64
  var OBJECT_ASSISTANT_TO_SKILL = {
221
65
  page: "doc",
@@ -1109,10 +953,6 @@ var createDialogAction = async (args, thunkApi) => {
1109
953
  };
1110
954
 
1111
955
  export {
1112
- BUILTIN_OBJECT_SKILL_IDS,
1113
- buildBuiltinObjectSkillConfig,
1114
- buildBuiltinObjectSkillDbKey,
1115
- buildBuiltinObjectSkillPageContent,
1116
956
  resolveAgentMemoryPolicy,
1117
957
  buildMemorySubjectsForAgent,
1118
958
  chooseMemoryOwners,
@@ -7,11 +7,11 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-DF7SMWEV.js";
10
+ } from "./chunk-RWJPDKPB.js";
11
11
  import {
12
12
  buildDialogAttachmentPlan,
13
13
  extractFileContentIds
14
- } from "./chunk-SIZQB7BD.js";
14
+ } from "./chunk-LEVCXTDN.js";
15
15
  import {
16
16
  toErrorMessage
17
17
  } from "./chunk-HNMXYYJR.js";
@@ -25,20 +25,20 @@ import {
25
25
  } from "./chunk-A7GB5UGH.js";
26
26
  import {
27
27
  parsePositiveFiniteNumberOrFallback
28
- } from "./chunk-Y5GCAMGP.js";
28
+ } from "./chunk-G5GVZAXF.js";
29
29
  import {
30
30
  asRecordOrEmpty
31
31
  } from "./chunk-KX6YBIHG.js";
32
- import {
33
- asNonEmptyStringArray,
34
- asTrimmedNonEmptyStringArray
35
- } from "./chunk-I42VC5KR.js";
36
32
  import {
37
33
  asTrimmedString
38
34
  } from "./chunk-3EUW3WEO.js";
39
35
  import {
40
36
  isRecord
41
37
  } from "./chunk-KUG52IAP.js";
38
+ import {
39
+ asNonEmptyStringArray,
40
+ asTrimmedNonEmptyStringArray
41
+ } from "./chunk-I42VC5KR.js";
42
42
  import {
43
43
  asOptionalTrimmedString
44
44
  } from "./chunk-G3SUCT4W.js";
@@ -625,7 +625,7 @@ async function tryHttpDialogCandidates(args) {
625
625
  throw Object.assign(new Error("All HTTP dialog reads failed"), { attempts });
626
626
  }
627
627
  async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog) {
628
- const reader = readLocalDialog ?? (await import("./localDialogRead-UFLBS6OT.js")).readDialogFromLocalDb;
628
+ const reader = readLocalDialog ?? (await import("./localDialogRead-P72W2U2R.js")).readDialogFromLocalDb;
629
629
  const result = await reader({ dialogKey, dialogId, limit });
630
630
  return {
631
631
  ...result,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  patch,
3
3
  read
4
- } from "./chunk-G2BZ43DV.js";
4
+ } from "./chunk-LAXMH7JY.js";
5
5
  import {
6
6
  DEVICE_LOCAL_OWNER_ID,
7
7
  isDeviceLocalSpaceBody,
8
8
  selectIdentityUserId
9
- } from "./chunk-XMLRJUU5.js";
9
+ } from "./chunk-2IJAKBK2.js";
10
10
 
11
11
  // packages/create/space/spaceKeys.ts
12
12
  var SEPARATOR = "-";
@@ -165,8 +165,8 @@ var addContentAction = async (input, thunkAPI) => {
165
165
  export {
166
166
  normalizeSpaceId,
167
167
  createSpaceKey,
168
+ UNCATEGORIZED_ID,
168
169
  checkSpaceMembership,
169
170
  localSpaceAuthorityPatchStamp,
170
- UNCATEGORIZED_ID,
171
171
  addContentAction
172
172
  };