nolo-cli 0.12.0-alpha.1 → 0.12.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 (82) hide show
  1. package/{_executeModel-MWAY74HA.js → _executeModel-4F7VZR5U.js} +24 -23
  2. package/{action-RAXNQQKC.js → action-OTOWUMPW.js} +3 -3
  3. package/{addContentAction-ZHI7TVV3.js → addContentAction-JGBUVR7K.js} +2 -2
  4. package/{addDialogAgentAction-JWXPKXNC.js → addDialogAgentAction-V6CL2UCF.js} +1 -1
  5. package/{agentDeleteCommand-LXR5A5FV.js → agentDeleteCommand-MMRSG6AB.js} +15 -14
  6. package/{agentEmailCommands-DXRAP7BB.js → agentEmailCommands-YFVKOGM7.js} +28 -27
  7. package/{agentListCommands-ZFMS5ZLY.js → agentListCommands-2PZHIQ3I.js} +16 -15
  8. package/{agentMachineCommands-ZJLYVV52.js → agentMachineCommands-55UUZNHF.js} +17 -16
  9. package/{agentRecordCommands-DFS626TB.js → agentRecordCommands-BTP3OAPL.js} +28 -27
  10. package/{agentRunCommand-GWBIE2TS.js → agentRunCommand-AA4QLRQZ.js} +29 -28
  11. package/{agentRuntimeLocal-YNZSHMZC.js → agentRuntimeLocal-QDJCBXM2.js} +12 -11
  12. package/{agentSlice-T2PXOEPQ.js → agentSlice-6JAJOU3X.js} +2 -2
  13. package/{chunk-G3B356GF.js → chunk-2BVGERJ2.js} +67 -3
  14. package/{chunk-WWU275LU.js → chunk-3MI5LDDU.js} +2 -2
  15. package/{chunk-OPZYGHUC.js → chunk-3WGLLTK4.js} +59 -1
  16. package/{chunk-EBH7G34M.js → chunk-3XF6LCCN.js} +2 -2
  17. package/chunk-5MMAK75Q.js +15 -0
  18. package/{chunk-ZR4VHQ5D.js → chunk-5S4SWV5G.js} +38 -26
  19. package/{chunk-JUN3HFMN.js → chunk-5V524MHX.js} +25 -15
  20. package/{chunk-JZDIW766.js → chunk-ARSC56DC.js} +1 -1
  21. package/{chunk-3QKO4EHV.js → chunk-AS3ZQ3O2.js} +16 -25
  22. package/{chunk-43UD5ZP7.js → chunk-B4KT7RN2.js} +4 -4
  23. package/{chunk-YTQLJYLB.js → chunk-C3BFP57W.js} +95 -2
  24. package/{chunk-QCA3EPYK.js → chunk-CGDQDXKZ.js} +1 -1
  25. package/{chunk-7MYHLZ3F.js → chunk-DPFWKRHG.js} +1 -1
  26. package/{chunk-LHSJMY5V.js → chunk-EIMX5ER5.js} +3 -3
  27. package/{chunk-AM53Q2SD.js → chunk-FSUZIGIG.js} +28 -39
  28. package/{chunk-4GBNEA5B.js → chunk-H5Y2H2N6.js} +1 -1
  29. package/{chunk-S73OEOHH.js → chunk-JFANOO7I.js} +3 -15
  30. package/{chunk-OCDEWRE2.js → chunk-JKWWVF2I.js} +1 -1
  31. package/{chunk-WTYKCU4W.js → chunk-JU7J7EAV.js} +37 -37
  32. package/{chunk-5ITRDSHY.js → chunk-KWBH4RAL.js} +57 -18
  33. package/{chunk-6OVCRC72.js → chunk-LUKQQJFL.js} +39 -2
  34. package/{chunk-DRMGJFGQ.js → chunk-MG6BVV3T.js} +31 -17
  35. package/{chunk-RSEUHW6T.js → chunk-MQRZ5QUH.js} +1 -1
  36. package/{chunk-RZ735TLX.js → chunk-MZHSAPZP.js} +167 -20
  37. package/{chunk-OPKKB25T.js → chunk-O4FOPRCP.js} +1 -1
  38. package/{chunk-S3UTETIC.js → chunk-OGGHETUE.js} +19 -4
  39. package/{chunk-4EH7AR52.js → chunk-OPM2DE2J.js} +1 -1
  40. package/{chunk-UG3WOFU6.js → chunk-QJSTNKJY.js} +1 -1
  41. package/{chunk-DE5BA4O6.js → chunk-QUHUVG6Y.js} +2 -2
  42. package/{chunk-YDCZVUFP.js → chunk-RQSOAMPJ.js} +16 -0
  43. package/{chunk-ZPFRLGIZ.js → chunk-RUGEW4P7.js} +70 -37
  44. package/{chunk-6LMFFG3K.js → chunk-RWO5DGXI.js} +2 -2
  45. package/{chunk-4BTHUYMY.js → chunk-TA7VKOHU.js} +23 -9
  46. package/{chunk-MEVCDATU.js → chunk-TQYYGE6G.js} +3 -3
  47. package/{chunk-TSKWE74T.js → chunk-TYPHUVK5.js} +13 -1
  48. package/{chunk-RNQ5BLR2.js → chunk-VBSWHE5W.js} +1 -1
  49. package/{chunk-NITP2JDG.js → chunk-VKG4HXYV.js} +1 -1
  50. package/{chunk-3HHTVM6G.js → chunk-WVTBAALN.js} +1 -1
  51. package/{chunk-GPZM7QH6.js → chunk-Y5P3ZRGC.js} +4 -4
  52. package/{chunk-GDBCUWQ3.js → chunk-YUMYYXPI.js} +31 -167
  53. package/{createAgentAutomationAction-G32GKDGV.js → createAgentAutomationAction-4NY4JLOK.js} +9 -8
  54. package/{createDialogAction-TISANRZK.js → createDialogAction-I5WUWFJ6.js} +10 -9
  55. package/{createPageAction-O7KOYNV4.js → createPageAction-HFTIQ7TW.js} +9 -8
  56. package/{dbSlice-WDP2ZZHK.js → dbSlice-J4PUZ6Y5.js} +1 -1
  57. package/{dialogCommands-6JPB3YQY.js → dialogCommands-SVXRJFZS.js} +16 -15
  58. package/{dialogSlice-PRHHYSP5.js → dialogSlice-35LA3ZRG.js} +9 -8
  59. package/{docCreateCommands-75E6TZNN.js → docCreateCommands-Z7RIAYKQ.js} +15 -14
  60. package/{docDeleteCommands-EJHLN7LW.js → docDeleteCommands-NEYHUVZF.js} +16 -15
  61. package/{docReadCommands-RJYBC4FS.js → docReadCommands-I4US2SDE.js} +15 -14
  62. package/{docStore-H5VWKT5D.js → docStore-3CP2IO6M.js} +10 -9
  63. package/{docUpdateCommands-MG4CNISV.js → docUpdateCommands-UU5HQBRP.js} +15 -14
  64. package/{getPricing-6TOZXPAU.js → getPricing-UGDJHI7M.js} +2 -2
  65. package/{handleSendMessageAction-QTUGICSZ.js → handleSendMessageAction-FWTLQGOZ.js} +9 -8
  66. package/index.js +36 -36
  67. package/{machineCommands-MAV7M3TK.js → machineCommands-STHZKBDJ.js} +28 -27
  68. package/{machineWsRunDispatch-ZOEGTKHC.js → machineWsRunDispatch-7YHT4TPT.js} +27 -26
  69. package/package.json +1 -1
  70. package/{readlineWorkspace-SWQKC7ZS.js → readlineWorkspace-OMRWYMB6.js} +203 -75
  71. package/{removeDialogAgentAction-GTX5AN54.js → removeDialogAgentAction-XUZYQBV4.js} +3 -3
  72. package/{runAgentClientLoop-P25HACXX.js → runAgentClientLoop-FP2K33ZO.js} +20 -19
  73. package/{setDialogExtraReferencesAction-WFQ63KYO.js → setDialogExtraReferencesAction-PTAIFKGM.js} +1 -1
  74. package/{setPrimaryDialogAgentAction-P57FXTSU.js → setPrimaryDialogAgentAction-HRFTDB44.js} +3 -3
  75. package/{settingSlice-CK5YZGNI.js → settingSlice-VGRJUSE5.js} +2 -2
  76. package/{skillDiscovery-ZYHSX7VD.js → skillDiscovery-6M2BZUFN.js} +1 -1
  77. package/{spaceCommands-6O5EFEM5.js → spaceCommands-GN73BCOB.js} +15 -14
  78. package/{spaceSlice-4EXTYXS4.js → spaceSlice-WTFNKOVA.js} +11 -8
  79. package/{streamAgentChatTurn-Q3FJAHG2.js → streamAgentChatTurn-HBAQQVNK.js} +244 -26
  80. package/{tools-AHNQE4GP.js → tools-TPQYTLQZ.js} +15 -14
  81. package/{tuiSummaryLlmCaller-TXLF4MEI.js → tuiSummaryLlmCaller-XDC7WG4K.js} +6 -4
  82. package/{updateDialogTitleAction-XZDVLKVX.js → updateDialogTitleAction-AWXNPUQJ.js} +9 -8
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  i18n_default,
3
3
  toolRegistry
4
- } from "./chunk-RZ735TLX.js";
4
+ } from "./chunk-MZHSAPZP.js";
5
5
  import {
6
6
  canonicalizeToolNames
7
- } from "./chunk-43UD5ZP7.js";
7
+ } from "./chunk-B4KT7RN2.js";
8
+ import {
9
+ isNoloHostedProvider
10
+ } from "./chunk-524BDL33.js";
8
11
  import {
9
12
  asTrimmedLowercaseString
10
13
  } from "./chunk-QSJ3HFEF.js";
@@ -12,6 +15,94 @@ import {
12
15
  isRecord
13
16
  } from "./chunk-KUG52IAP.js";
14
17
 
18
+ // packages/ai/chat/inlineImageUrlsForCustomProvider.ts
19
+ var FILE_CONTENT_PATH = "/api/v1/db/file/content/";
20
+ var shouldInlineImageUrlsForAgent = (agentConfig) => {
21
+ const apiSource = agentConfig?.apiSource?.toLowerCase();
22
+ const provider = agentConfig?.provider?.toLowerCase();
23
+ const model = agentConfig?.model?.toLowerCase();
24
+ if (apiSource === "custom" || provider === "custom") return true;
25
+ if (isNoloHostedProvider(provider)) return true;
26
+ return provider === "openrouter" && model === "minimax/minimax-m3";
27
+ };
28
+ var isInlineCandidate = (url) => /^https?:\/\//i.test(url) && url.includes(FILE_CONTENT_PATH);
29
+ var bytesToBase64 = (bytes) => {
30
+ let binary = "";
31
+ for (const byte of bytes) {
32
+ binary += String.fromCharCode(byte);
33
+ }
34
+ return btoa(binary);
35
+ };
36
+ var defaultFetchImage = async (url) => {
37
+ const response = await fetch(url);
38
+ if (!response.ok) {
39
+ return {
40
+ ok: false,
41
+ error: `HTTP ${response.status}`
42
+ };
43
+ }
44
+ const bytes = new Uint8Array(await response.arrayBuffer());
45
+ return {
46
+ ok: true,
47
+ mimeType: response.headers.get("content-type") ?? "application/octet-stream",
48
+ bytes
49
+ };
50
+ };
51
+ var cloneImagePartWithDataUrl = async (part, fetchImage, isAllowedImageUrl) => {
52
+ const url = part?.image_url?.url;
53
+ if (typeof url !== "string" || !isInlineCandidate(url) || isAllowedImageUrl && !isAllowedImageUrl(url)) {
54
+ return part;
55
+ }
56
+ const result = await fetchImage(url);
57
+ if (!result.ok || !result.bytes) return part;
58
+ const mimeType = result.mimeType || "application/octet-stream";
59
+ return {
60
+ ...part,
61
+ image_url: {
62
+ ...part.image_url,
63
+ url: `data:${mimeType};base64,${bytesToBase64(result.bytes)}`
64
+ }
65
+ };
66
+ };
67
+ var inlineImageUrlsForCustomProvider = async (bodyData, options) => {
68
+ if (!options.shouldInline) return bodyData;
69
+ const body = bodyData;
70
+ if (!Array.isArray(body?.messages)) return bodyData;
71
+ const fetchImage = options.fetchImage ?? defaultFetchImage;
72
+ let changed = false;
73
+ const messages = [];
74
+ for (const message of body.messages) {
75
+ if (!Array.isArray(message?.content)) {
76
+ messages.push(message);
77
+ continue;
78
+ }
79
+ const content = await Promise.all(
80
+ message.content.map(async (part) => {
81
+ if (part?.type !== "image_url") return part;
82
+ return cloneImagePartWithDataUrl(
83
+ part,
84
+ fetchImage,
85
+ options.isAllowedImageUrl
86
+ );
87
+ })
88
+ );
89
+ let messageChanged = false;
90
+ for (let i = 0; i < content.length; i++) {
91
+ if (content[i] !== message.content[i]) {
92
+ changed = true;
93
+ messageChanged = true;
94
+ break;
95
+ }
96
+ }
97
+ messages.push(messageChanged ? { ...message, content } : message);
98
+ }
99
+ if (!changed) return bodyData;
100
+ return {
101
+ ...body,
102
+ messages
103
+ };
104
+ };
105
+
15
106
  // packages/ai/tools/toolSchemaCompatibility.ts
16
107
  var COMPOSITION_KEYS = ["anyOf", "oneOf", "allOf"];
17
108
  var LIMITED_JSON_SCHEMA_PROVIDERS = /* @__PURE__ */ new Set([
@@ -167,5 +258,7 @@ var prepareTools = (toolNames, options) => {
167
258
  };
168
259
 
169
260
  export {
261
+ shouldInlineImageUrlsForAgent,
262
+ inlineImageUrlsForCustomProvider,
170
263
  prepareTools
171
264
  };
@@ -2,7 +2,7 @@ import {
2
2
  buildLocalAgentLookupKeys,
3
3
  normalizeAgentHandle,
4
4
  shouldReadAgentKeyRemotely
5
- } from "./chunk-RNQ5BLR2.js";
5
+ } from "./chunk-VBSWHE5W.js";
6
6
  import {
7
7
  resolveCliAgentKeyInput
8
8
  } from "./chunk-VHBWHNVT.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-WTYKCU4W.js";
4
+ } from "./chunk-JU7J7EAV.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-5ITRDSHY.js";
4
+ } from "./chunk-KWBH4RAL.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-RZ735TLX.js";
7
+ } from "./chunk-MZHSAPZP.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-4BTHUYMY.js";
10
+ } from "./chunk-TA7VKOHU.js";
11
11
  import {
12
12
  resolveLocalRuntimeEnvFromPolicy
13
13
  } from "./chunk-PDL2AV3E.js";
@@ -15,10 +15,10 @@ import {
15
15
  import {
16
16
  deleteServerSyncedCredential,
17
17
  runLlm
18
- } from "./chunk-GPZM7QH6.js";
18
+ } from "./chunk-Y5P3ZRGC.js";
19
19
  import {
20
20
  cleanupCliSessionForDialog
21
- } from "./chunk-6LMFFG3K.js";
21
+ } from "./chunk-RWO5DGXI.js";
22
22
  import {
23
23
  getDialogAgentIds,
24
24
  getPrimaryDialogAgentId
@@ -33,11 +33,11 @@ import {
33
33
  normalizeAssistantContentBuffer,
34
34
  planCompression,
35
35
  serializeMessageContent
36
- } from "./chunk-S73OEOHH.js";
36
+ } from "./chunk-JFANOO7I.js";
37
37
  import {
38
38
  findModelConfig,
39
39
  getModelConfig
40
- } from "./chunk-S3UTETIC.js";
40
+ } from "./chunk-OGGHETUE.js";
41
41
  import {
42
42
  createFileCredentialBroker
43
43
  } from "./chunk-PDL2AV3E.js";
@@ -74,7 +74,7 @@ import {
74
74
  selectRemoteServer,
75
75
  selectRemoteServers,
76
76
  selectRemoteSyncServers
77
- } from "./chunk-WTYKCU4W.js";
77
+ } from "./chunk-JU7J7EAV.js";
78
78
  import {
79
79
  asRecordOrEmpty
80
80
  } from "./chunk-KX6YBIHG.js";
@@ -85,7 +85,7 @@ import {
85
85
  createSpaceKey,
86
86
  localSpaceAuthorityPatchStamp,
87
87
  normalizeSpaceId
88
- } from "./chunk-3HHTVM6G.js";
88
+ } from "./chunk-WVTBAALN.js";
89
89
  import {
90
90
  patch,
91
91
  read,
@@ -98,7 +98,7 @@ import {
98
98
  uploadFileAction,
99
99
  upsertSSREntity,
100
100
  write
101
- } from "./chunk-NITP2JDG.js";
101
+ } from "./chunk-VKG4HXYV.js";
102
102
  import {
103
103
  DB_PREFIX,
104
104
  SEPARATOR,
@@ -8597,31 +8597,15 @@ var normalizeAppRouteId = (contentKey) => isAppContentKey(contentKey) ? contentK
8597
8597
  var uiAskChoiceFunctionSchema = {
8598
8598
  name: "ui_ask_choice",
8599
8599
  description: [
8600
- "\u5F53\u4F60\u9700\u8981\u8BA9\u7528\u6237\u5728\u51E0\u4E2A\u4E92\u65A5\u7684\u9009\u9879\u4E4B\u95F4\u505A\u9009\u62E9\u65F6\uFF0C\u4F7F\u7528\u672C\u5DE5\u5177\u3002",
8601
- "",
8602
- "\u8FD9\u662F\u4E00\u4E2A\u901A\u7528\u7684\u201C\u51FA\u9009\u9879\u201D\u5DE5\u5177\uFF0C\u9002\u7528\u4E8E\u591A\u79CD\u573A\u666F\uFF0C\u4F8B\u5982\uFF1A",
8603
- "1\uFF09\u7528\u6237\u7684\u9700\u6C42\u6BD4\u8F83\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u4F60\u53EF\u4EE5\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E0D\u540C\u65B9\u5411\u7684\u5019\u9009\u65B9\u6848\uFF0C\u8BA9 TA \u5148\u9009\u4E00\u4E2A\u65B9\u5411\uFF1B",
8604
- "2\uFF09\u4E00\u4E2A\u8BA1\u5212 / \u6D41\u7A0B\u5230\u4E86\u5206\u652F\u8282\u70B9\uFF0C\u9700\u8981\u7528\u6237\u51B3\u5B9A\u4E0B\u4E00\u6B65\u505A\u4EC0\u4E48\uFF1B",
8605
- "3\uFF09\u4F60\u60F3\u4E3A\u7528\u6237\u8BBE\u8BA1\u4E00\u7EC4\u7EC3\u4E60\u9898\u3001\u6D4B\u8BD5\u9898\u6216\u95EE\u5377\u9898\uFF08\u5982\u51FA\u9898\u7EC3\u4E60\u3001\u4EBA\u683C\u6D4B\u8BD5\u7B49\u5355\u9009\u9898\uFF09\uFF1B",
8606
- "4\uFF09\u5728\u65B0\u9636\u6BB5/\u65B0\u4F1A\u8BDD\u4E2D\uFF0C\u6839\u636E\u7CFB\u7EDF\u63D0\u793A\u6216\u7528\u6237\u753B\u50CF\uFF0C\u7ED9\u51FA\u82E5\u5E72\u201C\u63A5\u4E0B\u6765\u53EF\u4EE5\u5C1D\u8BD5\u7684\u4E8B\u60C5\u201D\uFF08\u4F8B\u5982\u529F\u80FD\u5BFC\u822A\u6216\u4F7F\u7528\u6280\u5DE7\uFF09\u3002",
8607
- "",
8608
- "\u4F7F\u7528\u5EFA\u8BAE\uFF1A",
8609
- "- \u5F53\u4F60\u5224\u65AD\u201C\u5148\u7ED9\u51FA 2\uFF5E5 \u4E2A\u660E\u786E\u9009\u9879\u80FD\u663E\u8457\u5E2E\u7528\u6237\u7406\u6E05\u4E0B\u4E00\u6B65\u8981\u505A\u4EC0\u4E48\u201D\u65F6\uFF0C\u53EF\u4EE5\u4E3B\u52A8\u8C03\u7528\u672C\u5DE5\u5177\uFF1B",
8610
- "- \u5982\u679C\u7528\u6237\u7684\u76EE\u6807\u5DF2\u7ECF\u975E\u5E38\u5177\u4F53\u3001\u6E05\u6670\uFF0C\u5E76\u4E14\u4F60\u53EF\u4EE5\u76F4\u63A5\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\uFF0C\u4F18\u5148\u76F4\u63A5\u56DE\u7B54\uFF0C\u800C\u4E0D\u662F\u518D\u5F39\u51FA\u9009\u62E9\u83DC\u5355\uFF1B",
8611
- "- \u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u4E0D\u8981\u5728\u5B8C\u5168\u6CA1\u6709\u6709\u6548\u4E0A\u4E0B\u6587\u7684\u573A\u666F\uFF08\u4F8B\u5982\u7528\u6237\u53EA\u8BF4\u201C\u4F60\u597D\u201D\uFF09\u7ACB\u523B\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u9664\u975E\u7CFB\u7EDF\u63D0\u793A\u4E2D\u5DF2\u7ECF\u660E\u786E\u8981\u6C42\u4F60\u5728\u65B0\u4F1A\u8BDD\u5F00\u5934\u7528\u5B83\u6765\u751F\u6210\u6B22\u8FCE\u83DC\u5355\u6216\u529F\u80FD\u5BFC\u822A\uFF1B",
8612
- "- \u8BF7\u628A\u7ED9\u7528\u6237\u770B\u7684\u95EE\u9898\u5199\u5728 question \u5B57\u6BB5\u4E2D\uFF0C\u4E0D\u8981\u5728\u540C\u4E00\u8F6E assistant \u666E\u901A\u6587\u672C\u91CC\u91CD\u590D\u8FD9\u53E5\u8BDD\uFF1B",
8613
- "- \u6BCF\u4E2A\u9009\u9879\u7684 userMessage \u5EFA\u8BAE\u5199\u6210\u5B8C\u6574\u7684\u4E00\u53E5\u8BDD\uFF0C\u65B9\u4FBF\u540E\u7EED\u7406\u89E3\u4E0A\u4E0B\u6587\uFF1B\u5982\u679C\u7559\u7A7A\uFF0C\u5C06\u81EA\u52A8\u4F7F\u7528 label \u4F5C\u4E3A userMessage\u3002",
8614
- "",
8615
- "\u5728\u4EE3\u7801\u534F\u4F5C\u573A\u666F\u4E0B\u7684\u63A8\u8350\u7528\u6CD5\uFF1A",
8616
- "- \u5982\u679C\u4F60\u5DF2\u7ECF\u5728\u672C\u8F6E assistant \u7684 content \u4E2D\u7ED9\u51FA\u4E86\u5206\u6790\u3001\u8BF4\u660E\u6216\u591A\u4E2A\u5907\u9009\u65B9\u6848\uFF0C\u53EF\u4EE5\u5728\u540C\u4E00\u8F6E\u6D88\u606F\u7684\u7ED3\u5C3E\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u8BF7\u7528\u6237\u9009\u62E9\u201C\u662F\u5426\u6839\u636E\u4E0A\u8FF0\u65B9\u6848\u5F00\u59CB\u5B9E\u9645\u4FEE\u6539\u4EE3\u7801\u201D\u6216\u201C\u4F18\u5148\u6267\u884C\u54EA\u4E00\u4E2A\u65B9\u6848/\u6B65\u9AA4\u201D\u3002",
8617
- "- \u5728\u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0Cquestion \u5B57\u6BB5\u901A\u5E38\u662F\u4E00\u4E2A\u7B80\u77ED\u7684\u95EE\u9898\uFF08\u4F8B\u5982\uFF1A\u201C\u63A5\u4E0B\u6765\u4F60\u5E0C\u671B\u6211\u6309\u54EA\u4E2A\u65B9\u6848\u6765\u5177\u4F53\u4FEE\u6539\u4EE3\u7801\uFF1F\u201D\uFF09\uFF0C\u800C\u8BE6\u7EC6\u7684\u89E3\u91CA\u548C\u65B9\u6848\u63CF\u8FF0\u653E\u5728 content \u4E2D\u3002",
8618
- "- \u5982\u679C\u5F53\u524D\u5BF9\u8BDD\u53EA\u9700\u8981\u4E00\u4E2A\u7B80\u5355\u7684\u9009\u62E9\uFF0C\u800C\u4E0D\u9700\u8981\u989D\u5916\u89E3\u91CA\uFF0C\u4F60\u4E5F\u53EF\u4EE5\u4E0D\u8F93\u51FA\u989D\u5916\u7684 content\uFF0C\u800C\u53EA\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u7531 question \u5B57\u6BB5\u76F4\u63A5\u5411\u7528\u6237\u63D0\u95EE\u3002",
8600
+ "\u8BA9\u7528\u6237\u5728 2\uFF5E5 \u4E2A\u4E92\u65A5\u9009\u9879\u4E4B\u95F4\u505A\u9009\u62E9\u7684\u901A\u7528\u201C\u51FA\u9009\u9879\u201D\u5DE5\u5177\u3002\u9002\u7528\u573A\u666F\uFF1A\u9700\u6C42\u6A21\u7CCA\u65F6\u7ED9\u65B9\u5411\u5019\u9009\u3001\u8BA1\u5212\u5206\u652F\u8282\u70B9\u51B3\u7B56\u3001\u51FA\u9898/\u95EE\u5377\u3001\u65B0\u4F1A\u8BDD\u529F\u80FD\u5BFC\u822A\u3002",
8619
8601
  "",
8620
8602
  "\u591A\u95EE\u9898 & \u591A\u9009\u652F\u6301\uFF1A",
8621
8603
  "- \u5F53\u4F60\u9700\u8981\u4E00\u6B21\u95EE\u591A\u4E2A\u95EE\u9898\u65F6\uFF0C\u4F7F\u7528 questions \u6570\u7EC4\u4EE3\u66FF question+choices\u3002",
8622
8604
  "- \u6BCF\u4E2A question \u53EF\u4EE5\u8BBE\u7F6E multiSelect: true \u5141\u8BB8\u591A\u9009\u3002",
8623
8605
  "- \u6BCF\u4E2A question \u53EF\u4EE5\u8BBE\u7F6E allowOther: false \u9690\u85CF\u201C\u5176\u4ED6\u201D\u8F93\u5165\u6846\u3002",
8624
- "- \u6BCF\u4E2A choice \u53EF\u4EE5\u52A0 detail \u5B57\u6BB5\u63D0\u4F9B\u66F4\u957F\u7684\u63CF\u8FF0\u3002"
8606
+ "- \u6BCF\u4E2A choice \u53EF\u4EE5\u52A0 detail \u5B57\u6BB5\u63D0\u4F9B\u66F4\u957F\u7684\u63CF\u8FF0\u3002",
8607
+ "",
8608
+ "\u4F55\u65F6\u8C03\u7528 / \u8C03\u7528\u89C4\u8303\u7684\u5B8C\u6574\u884C\u4E3A\u89C4\u5219\u7531\u7CFB\u7EDF\u63D0\u793A\u7684\u300C\u4EA4\u4E92\u8BF4\u660E\u300D\u5757\u6CE8\u5165\uFF0C\u4E0D\u5728\u6B64\u91CD\u590D\u3002"
8625
8609
  ].join("\n"),
8626
8610
  parameters: {
8627
8611
  type: "object",
@@ -10500,7 +10484,7 @@ var messageSlice = createSliceWithThunks({
10500
10484
  runtimeOptions: args.runtimeOptions
10501
10485
  });
10502
10486
  if (agentKeyToUse) {
10503
- const { streamAgentChatTurn } = await import("./agentSlice-T2PXOEPQ.js");
10487
+ const { streamAgentChatTurn } = await import("./agentSlice-6JAJOU3X.js");
10504
10488
  await dispatch(
10505
10489
  streamAgentChatTurn({
10506
10490
  agentKey: agentKeyToUse,
@@ -13211,7 +13195,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
13211
13195
  }
13212
13196
  if (isCurrentDialog) {
13213
13197
  await thunkApi.dispatch(resetMsgs());
13214
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-PRHHYSP5.js");
13198
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-35LA3ZRG.js");
13215
13199
  dispatch(clearPendingAttachments2());
13216
13200
  clearWorkflow();
13217
13201
  }
@@ -13220,35 +13204,35 @@ var deleteDialogThunk = async (payload, thunkApi) => {
13220
13204
 
13221
13205
  // packages/chat/dialog/dialogSlice.ts
13222
13206
  var runCreateDialogAction = async (args, thunkApi) => {
13223
- const { createDialogAction } = await import("./createDialogAction-TISANRZK.js");
13207
+ const { createDialogAction } = await import("./createDialogAction-I5WUWFJ6.js");
13224
13208
  return createDialogAction(args, thunkApi);
13225
13209
  };
13226
13210
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
13227
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-G32GKDGV.js");
13211
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-4NY4JLOK.js");
13228
13212
  return createAgentAutomationAction(args, thunkApi);
13229
13213
  };
13230
13214
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
13231
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-XZDVLKVX.js");
13215
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-AWXNPUQJ.js");
13232
13216
  return updateDialogTitleAction(args, thunkApi);
13233
13217
  };
13234
13218
  var runAddDialogAgentAction = async (args, thunkApi) => {
13235
- const { addDialogAgentAction } = await import("./addDialogAgentAction-JWXPKXNC.js");
13219
+ const { addDialogAgentAction } = await import("./addDialogAgentAction-V6CL2UCF.js");
13236
13220
  return addDialogAgentAction(args, thunkApi);
13237
13221
  };
13238
13222
  var runRemoveDialogAgentAction = async (args, thunkApi) => {
13239
- const { removeDialogAgentAction } = await import("./removeDialogAgentAction-GTX5AN54.js");
13223
+ const { removeDialogAgentAction } = await import("./removeDialogAgentAction-XUZYQBV4.js");
13240
13224
  return removeDialogAgentAction(args, thunkApi);
13241
13225
  };
13242
13226
  var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
13243
- const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-P57FXTSU.js");
13227
+ const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-HRFTDB44.js");
13244
13228
  return setPrimaryDialogAgentAction(args, thunkApi);
13245
13229
  };
13246
13230
  var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
13247
- const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-WFQ63KYO.js");
13231
+ const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-PTAIFKGM.js");
13248
13232
  return setDialogExtraReferencesAction(args, thunkApi);
13249
13233
  };
13250
13234
  var runHandleSendMessageAction = async (args, thunkApi) => {
13251
- const { handleSendMessageAction } = await import("./handleSendMessageAction-QTUGICSZ.js");
13235
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-FWTLQGOZ.js");
13252
13236
  return handleSendMessageAction(args, thunkApi);
13253
13237
  };
13254
13238
  function clearDialogState() {
@@ -13261,7 +13245,7 @@ var createPageAndAddReference = createAsyncThunk(
13261
13245
  async (payload, { dispatch, getState, rejectWithValue }) => {
13262
13246
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
13263
13247
  try {
13264
- const { createDocState } = await import("./docStore-H5VWKT5D.js");
13248
+ const { createDocState } = await import("./docStore-3CP2IO6M.js");
13265
13249
  const pageKey = await createDocState(
13266
13250
  { slateData, title },
13267
13251
  { dispatch, getState }
@@ -19390,7 +19374,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
19390
19374
  const spaceKey = createSpaceKey.space(spaceId);
19391
19375
  const readSpace = async (dbKey) => {
19392
19376
  try {
19393
- const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-WDP2ZZHK.js");
19377
+ const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-J4PUZ6Y5.js");
19394
19378
  if (fresh) {
19395
19379
  return await dispatch(readAndWait2(dbKey)).unwrap();
19396
19380
  }
@@ -19987,6 +19971,10 @@ var selectSpaceLoading = createSelector(
19987
19971
  selectSpaceState,
19988
19972
  (space) => space.loading
19989
19973
  );
19974
+ var selectMemberSpacesLoaded = createSelector(
19975
+ selectSpaceState,
19976
+ (space) => space.memberSpaces !== null
19977
+ );
19990
19978
  var selectMembershipStatus = createSelector(
19991
19979
  selectSpaceState,
19992
19980
  (space) => space.membershipStatus ?? "idle"
@@ -20119,6 +20107,7 @@ export {
20119
20107
  selectAllMemberSpaces,
20120
20108
  selectOwnedMemberSpaces,
20121
20109
  selectSpaceLoading,
20110
+ selectMemberSpacesLoaded,
20122
20111
  selectMembershipStatus,
20123
20112
  selectSpaceInitialized,
20124
20113
  selectCollapsedCategories,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  trimTrailingSlash
3
- } from "./chunk-TSKWE74T.js";
3
+ } from "./chunk-TYPHUVK5.js";
4
4
  import {
5
5
  asTrimmedLowercaseString
6
6
  } from "./chunk-QSJ3HFEF.js";
@@ -1,18 +1,15 @@
1
1
  import {
2
2
  MODEL_LOOKUP_MAP
3
- } from "./chunk-S3UTETIC.js";
4
- import {
5
- compactWhitespace
6
- } from "./chunk-DWLEOOGR.js";
3
+ } from "./chunk-OGGHETUE.js";
7
4
  import {
8
5
  ALL_MODELS
9
6
  } from "./chunk-IKXL2HZ3.js";
10
7
  import {
11
8
  addContentAction
12
- } from "./chunk-3HHTVM6G.js";
9
+ } from "./chunk-WVTBAALN.js";
13
10
  import {
14
11
  upload
15
- } from "./chunk-NITP2JDG.js";
12
+ } from "./chunk-VKG4HXYV.js";
16
13
  import {
17
14
  getRuntimeServerContext
18
15
  } from "./chunk-TSUJOM6N.js";
@@ -2083,14 +2080,6 @@ var normalizeAssistantContentBuffer = async (contentBuffer, dialogId, messageId,
2083
2080
  return updated;
2084
2081
  };
2085
2082
 
2086
- // packages/core/clipCompactText.ts
2087
- function clipCompactText(value, max, ellipsis = "...") {
2088
- const compact = compactWhitespace(value);
2089
- if (compact.length <= max) return compact;
2090
- if (max <= ellipsis.length) return compact.slice(0, max);
2091
- return `${compact.slice(0, max - ellipsis.length)}${ellipsis}`;
2092
- }
2093
-
2094
2083
  // packages/ai/context/retention.ts
2095
2084
  var SAFE_BUFFER_RATIO = 0.95;
2096
2085
  var CACHE_FIRST_RETENTION_STRENGTH = 0.95;
@@ -2273,7 +2262,6 @@ function planCompression(input) {
2273
2262
  }
2274
2263
 
2275
2264
  export {
2276
- clipCompactText,
2277
2265
  planContextUsage,
2278
2266
  estimateTokenCount,
2279
2267
  DEFAULT_CONTEXT_WINDOW,
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-CWMSB67P.js";
7
7
  import {
8
8
  getModelConfig
9
- } from "./chunk-S3UTETIC.js";
9
+ } from "./chunk-OGGHETUE.js";
10
10
  import {
11
11
  asOptionalFiniteNumber
12
12
  } from "./chunk-WWC7I6TA.js";
@@ -10,7 +10,7 @@ import {
10
10
  toTimestampMs,
11
11
  upsert,
12
12
  write
13
- } from "./chunk-NITP2JDG.js";
13
+ } from "./chunk-VKG4HXYV.js";
14
14
  import {
15
15
  createUserKey,
16
16
  createUserPreferenceKey,
@@ -763,41 +763,41 @@ var catppuccin = {
763
763
  textOnPrimary: "#FFFFFF"
764
764
  },
765
765
  dark: {
766
- // Ghostty GitHub Dark Default — #0D1117 canvas + sky blue #58A6FF accent
767
- primary: "#58A6FF",
768
- primaryLight: "#79C0FF",
769
- primaryDark: "#1F6FEB",
770
- primaryGradient: "linear-gradient(135deg, #58A6FF, #79C0FF)",
771
- primaryGhost: "rgba(88,166,255,0.10)",
772
- primaryHover: "rgba(88,166,255,0.12)",
773
- borderAccent: "#1F6FEB",
774
- success: "#3FB950",
775
- warning: "#D29922",
776
- info: "#58A6FF",
777
- error: "#FF7B72",
778
- background: "#0D1117",
779
- backgroundSecondary: "#161B22",
780
- backgroundTertiary: "#21262D",
781
- backgroundGhost: "rgba(13,17,23,0.94)",
782
- backgroundHover: "#1C2128",
783
- backgroundSelected: "#1F6FEB",
784
- backgroundElevated: "#161B22",
785
- text: "#E6EDF3",
786
- textSecondary: "#B1BAC4",
787
- textTertiary: "#8B949E",
788
- textQuaternary: "#6E7681",
789
- textLight: "#30363D",
790
- placeholder: "#6E7681",
791
- border: "#30363D",
792
- borderHover: "#424A53",
793
- borderLight: "#21262D",
794
- messageBackground: "#161B22",
795
- codeBackground: "#161B22",
796
- shadowLight: "rgba(13,17,23,0.18)",
797
- shadowMedium: "rgba(13,17,23,0.30)",
798
- shadowHeavy: "rgba(13,17,23,0.44)",
799
- textHeading: "#E6EDF3",
800
- textOnPrimary: "#0D1117"
766
+ // Catppuccin Mocha — 柔和夜间色调(告别高对比刺眼黑白,偏向 Ghostty Catppuccin Mocha)
767
+ primary: "#89B4FA",
768
+ primaryLight: "#B4BEFE",
769
+ primaryDark: "#74C7EC",
770
+ primaryGradient: "linear-gradient(135deg, #89B4FA, #B4BEFE)",
771
+ primaryGhost: "rgba(137,180,250,0.12)",
772
+ primaryHover: "rgba(137,180,250,0.16)",
773
+ borderAccent: "#89B4FA",
774
+ success: "#A6E3A1",
775
+ warning: "#F9E2AF",
776
+ info: "#89B4FA",
777
+ error: "#F38BA8",
778
+ background: "#1E1E2E",
779
+ backgroundSecondary: "#181825",
780
+ backgroundTertiary: "#313244",
781
+ backgroundGhost: "rgba(30,30,46,0.94)",
782
+ backgroundHover: "#313244",
783
+ backgroundSelected: "#45475A",
784
+ backgroundElevated: "#181825",
785
+ text: "#CDD6F4",
786
+ textSecondary: "#BAC2DE",
787
+ textTertiary: "#A6ADC8",
788
+ textQuaternary: "#6C7086",
789
+ textLight: "#45475A",
790
+ placeholder: "#6C7086",
791
+ border: "#313244",
792
+ borderHover: "#45475A",
793
+ borderLight: "#181825",
794
+ messageBackground: "#181825",
795
+ codeBackground: "#11111B",
796
+ shadowLight: "rgba(17,17,27,0.22)",
797
+ shadowMedium: "rgba(17,17,27,0.36)",
798
+ shadowHeavy: "rgba(17,17,27,0.52)",
799
+ textHeading: "#CDD6F4",
800
+ textOnPrimary: "#1E1E2E"
801
801
  }
802
802
  };
803
803
 
@@ -1594,7 +1594,7 @@ var selectTheme = createSelector(
1594
1594
  surface: c.backgroundSecondary,
1595
1595
  surfaceElevated: c.backgroundTertiary,
1596
1596
  surfaceCanvas: c.background,
1597
- surfaceSidebar: isDark ? c.backgroundSecondary : c.background,
1597
+ surfaceSidebar: c.background,
1598
1598
  surfacePanel: c.backgroundSecondary,
1599
1599
  surfaceCard: c.messageBackground,
1600
1600
  surfaceRaised: isDark ? c.backgroundTertiary : c.backgroundSecondary,