nolo-cli 0.16.0-alpha.13 → 0.16.0-alpha.15

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 (66) hide show
  1. package/{_executeModel-Y43RS7DI.js → _executeModel-UU2JO5OB.js} +15 -15
  2. package/{agentDeleteCommand-PBIUC4FT.js → agentDeleteCommand-L6JRXPYK.js} +10 -10
  3. package/{agentEmailCommands-AJFG5HBG.js → agentEmailCommands-FE3GY3T5.js} +17 -17
  4. package/{agentListCommands-N64PHBXM.js → agentListCommands-ZWSAIC4W.js} +11 -11
  5. package/{agentMachineCommands-2ACKQSTE.js → agentMachineCommands-VWQ2GZBY.js} +10 -10
  6. package/{agentRecordCommands-RQTFDKKJ.js → agentRecordCommands-PYVZMRZM.js} +17 -17
  7. package/{agentRunCommand-FAHV33ML.js → agentRunCommand-3ADJ2J5U.js} +18 -18
  8. package/{agentRuntimeLocal-T6YECTNF.js → agentRuntimeLocal-LXTR6SAU.js} +7 -7
  9. package/{agentSlice-XEQOAOC6.js → agentSlice-TI6ECUGN.js} +1 -1
  10. package/{appDeleteCommands-D6B6Z4ZQ.js → appDeleteCommands-QIS37SXE.js} +11 -11
  11. package/{appDeployCommands-YMO5FK4T.js → appDeployCommands-WBHB7T5B.js} +11 -11
  12. package/{appDeployStatusCommands-EO5DWWPQ.js → appDeployStatusCommands-A3OUV6GO.js} +11 -11
  13. package/{appGetCommands-6SMZ3URQ.js → appGetCommands-LCVYIH63.js} +11 -11
  14. package/{appListCommands-RZXSWR2G.js → appListCommands-PC7QOBUO.js} +11 -11
  15. package/{chunk-KEPSRWXW.js → chunk-2OK7P5XF.js} +54 -13
  16. package/{chunk-MSA4JAOZ.js → chunk-2ZLEOGS5.js} +1 -1
  17. package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
  18. package/{chunk-VHXXRWNL.js → chunk-5QJFYG2N.js} +15 -5
  19. package/{chunk-F3UOACU4.js → chunk-64IEIMN4.js} +1 -1
  20. package/{chunk-QSJNZQFD.js → chunk-6IGLIDDE.js} +20 -8
  21. package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
  22. package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
  23. package/{chunk-N3IKEYV7.js → chunk-BOBNE3XT.js} +2 -2
  24. package/{chunk-COIZN2AL.js → chunk-ECGTEOC2.js} +3 -3
  25. package/{chunk-6KBBMW4D.js → chunk-FTNTMGXT.js} +1 -1
  26. package/{chunk-SPHXTAG6.js → chunk-GFPESFS6.js} +2 -2
  27. package/{chunk-EPCM5E6C.js → chunk-GM37ZF7R.js} +2 -2
  28. package/{chunk-A7O4KKLZ.js → chunk-HGDFFA6T.js} +2 -2
  29. package/{chunk-C4MMO7W4.js → chunk-NZBK3ZET.js} +1 -1
  30. package/{chunk-JTMNCCWF.js → chunk-OSIJVBXP.js} +2 -2
  31. package/{chunk-OVBVEXZ7.js → chunk-PFW2ZEON.js} +53 -1
  32. package/{chunk-MDNZEE6B.js → chunk-Q6B6XJBG.js} +15 -6
  33. package/{chunk-GPELDE6I.js → chunk-SOW2GCA5.js} +1 -1
  34. package/{chunk-BE3IKV5X.js → chunk-TUWPYUVR.js} +7 -7
  35. package/{chunk-A3S7ITGN.js → chunk-U3DCTSPN.js} +18 -13
  36. package/{chunk-TSGUTKW2.js → chunk-URVWRKFU.js} +91 -17
  37. package/{chunk-PFAN32FJ.js → chunk-UUDRNDC7.js} +1 -1
  38. package/{chunk-IQJOXIYF.js → chunk-W63ZTRQU.js} +3 -3
  39. package/{chunk-6IZTYSJK.js → chunk-W6OKITU6.js} +41 -12
  40. package/{chunk-PU4LXVAC.js → chunk-XG7CSGP3.js} +1 -1
  41. package/{chunk-XRSPI6CP.js → chunk-YZXEEGKV.js} +1 -1
  42. package/{chunk-RIF3XLXK.js → chunk-ZDDHKIWB.js} +8 -4
  43. package/{createAgentAutomationAction-G5ZEEBMB.js → createAgentAutomationAction-N4ZB7VX2.js} +3 -3
  44. package/{createDialogAction-3EJL6XK6.js → createDialogAction-KF6HXCCZ.js} +4 -4
  45. package/{createPageAction-FIUQXAI4.js → createPageAction-FXWSJONZ.js} +3 -3
  46. package/{dialogCommands-DFY5HJ6M.js → dialogCommands-ULS6HV5V.js} +11 -11
  47. package/{dialogSlice-H24LGUPG.js → dialogSlice-K32QLYS7.js} +3 -3
  48. package/{docCreateCommands-5L76YTI2.js → docCreateCommands-RZTRTRU4.js} +10 -10
  49. package/{docDeleteCommands-3GASP3VR.js → docDeleteCommands-FU36A663.js} +11 -11
  50. package/{docReadCommands-ALA77AZM.js → docReadCommands-IX4JXD4X.js} +10 -10
  51. package/{docStore-EFEUV2FP.js → docStore-L6HBNJ3R.js} +4 -4
  52. package/{docUpdateCommands-6AZGXE5M.js → docUpdateCommands-W4OCR55Z.js} +10 -10
  53. package/{handleSendMessageAction-PMKHJZGP.js → handleSendMessageAction-MFKKZXV7.js} +3 -3
  54. package/index.js +40 -40
  55. package/{machineCommands-U3N22344.js → machineCommands-4MFLZERH.js} +16 -16
  56. package/{machineWsRunDispatch-BGYPVQPM.js → machineWsRunDispatch-AAHRNKIR.js} +16 -16
  57. package/package.json +1 -1
  58. package/{readlineWorkspace-HWYYQ2KL.js → readlineWorkspace-7OPITHTN.js} +28 -21
  59. package/{runAgentClientLoop-3NESZLYZ.js → runAgentClientLoop-HRWV7KE2.js} +11 -11
  60. package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-57GRIGX5.js} +16 -8
  61. package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
  62. package/{spaceCommands-AB2D7A2R.js → spaceCommands-GMMQTMHK.js} +10 -10
  63. package/{spaceSlice-YBORJR2H.js → spaceSlice-V2P5TTQU.js} +3 -3
  64. package/{streamAgentChatTurn-XAPKGQ6M.js → streamAgentChatTurn-ZANOYOUR.js} +62 -42
  65. package/{tools-RXIDHJ2C.js → tools-YHZP6NXU.js} +7 -7
  66. package/{updateDialogTitleAction-S7AG3P44.js → updateDialogTitleAction-IKTPGPPE.js} +3 -3
@@ -10,6 +10,10 @@ import {
10
10
  import {
11
11
  upload
12
12
  } from "./chunk-3S2VOMIF.js";
13
+ import {
14
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
15
+ PUBLIC_KIMI_K26_IMAGE_AGENT_KEY
16
+ } from "./chunk-XPC5C7BK.js";
13
17
  import {
14
18
  getRuntimeServerContext
15
19
  } from "./chunk-DVRHHFEA.js";
@@ -539,6 +543,51 @@ function planCompression(input) {
539
543
  };
540
544
  }
541
545
 
546
+ // packages/agent-runtime/autoExecutionProfiles.ts
547
+ var AUTO_ASSISTANT_MEMORY_SUBJECT_ID = "builtin:auto";
548
+ var createProfile = (input) => ({
549
+ id: input.id,
550
+ tier: input.tier,
551
+ legacyAgentKey: input.legacyAgentKey,
552
+ key: input.legacyAgentKey,
553
+ name: input.name,
554
+ provider: "nolo",
555
+ model: input.model,
556
+ apiSource: "platform",
557
+ useServerProxy: true,
558
+ rawRecord: {
559
+ dbKey: input.legacyAgentKey,
560
+ isPublic: true,
561
+ provider: "nolo",
562
+ model: input.model,
563
+ apiSource: "platform",
564
+ useServerProxy: true
565
+ }
566
+ });
567
+ var FLASH_PROFILE = createProfile({
568
+ id: "builtin:auto:deepseek-v4-flash",
569
+ tier: "flash",
570
+ legacyAgentKey: PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
571
+ name: "DeepSeek V4 Flash",
572
+ model: "deepseek-v4-flash"
573
+ });
574
+ var IMAGE_PROFILE = createProfile({
575
+ id: "builtin:auto:kimi-k2.6",
576
+ tier: "image",
577
+ legacyAgentKey: PUBLIC_KIMI_K26_IMAGE_AGENT_KEY,
578
+ name: "Kimi K2.6",
579
+ model: "kimi-k2.6"
580
+ });
581
+ var AUTO_EXECUTION_PROFILES = {
582
+ flash: FLASH_PROFILE,
583
+ balanced: { ...FLASH_PROFILE, tier: "balanced" },
584
+ quality: { ...FLASH_PROFILE, tier: "quality" },
585
+ image: IMAGE_PROFILE
586
+ };
587
+ var DEFAULT_AUTO_EXECUTION_TIER = "flash";
588
+ var DEFAULT_AUTO_EXECUTION_PROFILE = AUTO_EXECUTION_PROFILES[DEFAULT_AUTO_EXECUTION_TIER];
589
+ var resolveAutoExecutionProfile = (tier) => AUTO_EXECUTION_PROFILES[tier ?? DEFAULT_AUTO_EXECUTION_TIER] ?? DEFAULT_AUTO_EXECUTION_PROFILE;
590
+
542
591
  export {
543
592
  planContextUsage,
544
593
  estimateTokenCount,
@@ -548,5 +597,8 @@ export {
548
597
  buildDatabaseFileContentUrl,
549
598
  serializeMessageContent,
550
599
  normalizeAssistantContentBuffer,
551
- planCompression
600
+ planCompression,
601
+ AUTO_ASSISTANT_MEMORY_SUBJECT_ID,
602
+ DEFAULT_AUTO_EXECUTION_PROFILE,
603
+ resolveAutoExecutionProfile
552
604
  };
@@ -3,7 +3,7 @@ import {
3
3
  prepareAndPersistMessage,
4
4
  uiAskChoiceFunc,
5
5
  uiAskChoiceFunctionSchema
6
- } from "./chunk-KEPSRWXW.js";
6
+ } from "./chunk-2OK7P5XF.js";
7
7
  import {
8
8
  require_date_fns
9
9
  } from "./chunk-M76ECQRD.js";
@@ -333,8 +333,9 @@ function resolveAgentMemoryPolicy(input) {
333
333
  }
334
334
  function buildMemorySubjectsForAgent(input) {
335
335
  const policy = input.policy ?? resolveAgentMemoryPolicy({ agentKey: input.agentKey });
336
+ const subjectId = input.memorySubjectId?.trim() || input.agentKey;
336
337
  return [
337
- { subjectType: "agent", subjectId: input.agentKey },
338
+ { subjectType: "agent", subjectId },
338
339
  policy.includeUserSubject && input.userId ? { subjectType: "user", subjectId: input.userId } : null,
339
340
  input.spaceId ? { subjectType: "space", subjectId: input.spaceId } : null
340
341
  ].filter(Boolean);
@@ -832,7 +833,9 @@ var notifyUserDataUpdated = () => {
832
833
  };
833
834
  var createDialogAction = async (args, thunkApi) => {
834
835
  const {
835
- cybots,
836
+ cybots: requestedCybots = [],
837
+ agentMode: requestedAgentMode,
838
+ autoRoute,
836
839
  category,
837
840
  spaceId: explicitSpaceId,
838
841
  inheritFromDialogKey,
@@ -846,6 +849,8 @@ var createDialogAction = async (args, thunkApi) => {
846
849
  } = args;
847
850
  const { dispatch: dispatchRaw, getState, extra } = thunkApi;
848
851
  const dispatch = dispatchRaw;
852
+ const agentMode = requestedAgentMode ?? (requestedCybots.length > 0 ? "fixed" : "auto");
853
+ const cybots = agentMode === "auto" ? [] : requestedCybots;
849
854
  const agentKey = cybots[0];
850
855
  const currentUserId = selectIdentityUserId(getState()) ?? null;
851
856
  const isDeviceLocalDialog = isLocalOwnerDialogAgents(cybots);
@@ -861,6 +866,7 @@ var createDialogAction = async (args, thunkApi) => {
861
866
  } catch {
862
867
  }
863
868
  const readAgentConfig = async () => {
869
+ if (!agentKey) return null;
864
870
  const existing = await dispatch(
865
871
  readAndWait({
866
872
  dbKey: agentKey,
@@ -884,9 +890,9 @@ var createDialogAction = async (args, thunkApi) => {
884
890
  ).unwrap();
885
891
  return recoveredBuiltinAgent;
886
892
  };
887
- const canSkipAgentConfigRead = !!skipAgentConfigRead && !!args.skipGreeting && !!titleOverride;
893
+ const canSkipAgentConfigRead = agentMode === "auto" || !!skipAgentConfigRead && !!args.skipGreeting && !!titleOverride;
888
894
  const agentConfig = canSkipAgentConfigRead ? null : await readAgentConfig();
889
- if (!agentConfig && !canSkipAgentConfigRead) {
895
+ if (agentMode === "fixed" && !agentConfig && !canSkipAgentConfigRead) {
890
896
  throw new Error(`Agent with key ${agentKey} not found.`);
891
897
  }
892
898
  const shouldUseRelationshipGreeting = shouldUseRecentRelationshipRecap({
@@ -919,7 +925,7 @@ var createDialogAction = async (args, thunkApi) => {
919
925
  });
920
926
  }
921
927
  const time = (0, import_date_fns.format)(/* @__PURE__ */ new Date(), "MM-dd HH:mm");
922
- const title = titleOverride || (agentConfig?.name || "Agent") + " " + time;
928
+ const title = titleOverride || (agentMode === "auto" ? "\u65B0\u5BF9\u8BDD" : agentConfig?.name || "Agent") + " " + time;
923
929
  const spaceId = explicitSpaceId;
924
930
  const dialogPath = createDialogKey(userId);
925
931
  const dialogId = extractCustomId(dialogPath);
@@ -954,7 +960,10 @@ var createDialogAction = async (args, thunkApi) => {
954
960
  id: dialogId,
955
961
  dbKey: dialogPath,
956
962
  userId,
963
+ agentMode,
957
964
  cybots,
965
+ ...agentMode === "fixed" && agentKey ? { primaryAgentKey: agentKey } : {},
966
+ ...agentMode === "auto" && autoRoute ? { autoRoute } : {},
958
967
  title,
959
968
  type: "dialog" /* DIALOG */,
960
969
  createdAt: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date()),
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KFEVY3ST.js";
4
4
  import {
5
5
  canonicalizeToolNames
6
- } from "./chunk-JTMNCCWF.js";
6
+ } from "./chunk-OSIJVBXP.js";
7
7
  import {
8
8
  asTrimmedLowercaseString
9
9
  } from "./chunk-QSJ3HFEF.js";
@@ -5,10 +5,10 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-EPCM5E6C.js";
8
+ } from "./chunk-GM37ZF7R.js";
9
9
  import {
10
10
  performFetchRequest
11
- } from "./chunk-QSJNZQFD.js";
11
+ } from "./chunk-6IGLIDDE.js";
12
12
  import {
13
13
  createSSEParser,
14
14
  createToolRunId,
@@ -19,7 +19,7 @@ import {
19
19
  toolRunSetPending,
20
20
  toolRunStarted,
21
21
  toolRunSucceeded
22
- } from "./chunk-TSGUTKW2.js";
22
+ } from "./chunk-URVWRKFU.js";
23
23
  import {
24
24
  getPublicImageAgentMode
25
25
  } from "./chunk-VIDPVFP3.js";
@@ -29,13 +29,13 @@ import {
29
29
  messageStreaming,
30
30
  selectCurrentSpaceId,
31
31
  updateToolMessage
32
- } from "./chunk-KEPSRWXW.js";
32
+ } from "./chunk-2OK7P5XF.js";
33
33
  import {
34
34
  streamAgentChatTurn
35
- } from "./chunk-COIZN2AL.js";
35
+ } from "./chunk-ECGTEOC2.js";
36
36
  import {
37
37
  EMPTY_ASSISTANT_REPAIR_PROMPT
38
- } from "./chunk-RIF3XLXK.js";
38
+ } from "./chunk-ZDDHKIWB.js";
39
39
  import {
40
40
  accumulateToolCallDelta,
41
41
  createThinkParserState,
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-LSFAWXKC.js";
48
48
  import {
49
49
  getModelInfo
50
- } from "./chunk-OVBVEXZ7.js";
50
+ } from "./chunk-PFW2ZEON.js";
51
51
  import {
52
52
  getApiEndpoint
53
53
  } from "./chunk-HQPG2PIV.js";
@@ -20,17 +20,17 @@ import {
20
20
  parseAgentRunEvent,
21
21
  t,
22
22
  toolLabel
23
- } from "./chunk-6IZTYSJK.js";
23
+ } from "./chunk-W6OKITU6.js";
24
24
  import {
25
25
  getReadableCliDb
26
26
  } from "./chunk-W4NVOSFF.js";
27
27
  import {
28
28
  readDbRecord,
29
29
  resolveAgentRecordFromHybridStore
30
- } from "./chunk-C4MMO7W4.js";
30
+ } from "./chunk-NZBK3ZET.js";
31
31
  import {
32
32
  normalizeAgentHandle
33
- } from "./chunk-PU4LXVAC.js";
33
+ } from "./chunk-XG7CSGP3.js";
34
34
  import {
35
35
  NOLO_PROJECT_MANAGER_AGENT_KEY,
36
36
  isLocalCliAgentKey
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-LTRXGFMS.js";
42
42
  import {
43
43
  formatAgentListCard
44
- } from "./chunk-TSGUTKW2.js";
44
+ } from "./chunk-URVWRKFU.js";
45
45
  import {
46
46
  isGatewayHttpStatus
47
47
  } from "./chunk-RQSOAMPJ.js";
@@ -50,7 +50,7 @@ import {
50
50
  chooseMemoryOwners,
51
51
  loadMemoryCandidatesFromDb,
52
52
  resolveAgentMemoryPolicy
53
- } from "./chunk-MDNZEE6B.js";
53
+ } from "./chunk-Q6B6XJBG.js";
54
54
  import {
55
55
  parseExternalSkillMarkdown,
56
56
  parseSkillDocProtocol
@@ -59,10 +59,10 @@ import {
59
59
  API_REPORTED_COST_MULTIPLIER,
60
60
  normalizeUsage,
61
61
  parseUiAskChoiceContent
62
- } from "./chunk-KEPSRWXW.js";
62
+ } from "./chunk-2OK7P5XF.js";
63
63
  import {
64
64
  buildSkillDiscoveryContextBlock
65
- } from "./chunk-AS3ZQ3O2.js";
65
+ } from "./chunk-7OBMZCRD.js";
66
66
  import {
67
67
  buildPlatformChatCompletionRequest,
68
68
  parsePlatformChatCompletionData
@@ -75,7 +75,7 @@ import {
75
75
  LOCAL_TURN_ABORTED_CODE,
76
76
  readActionGate,
77
77
  readCommandActionGatePayload
78
- } from "./chunk-RIF3XLXK.js";
78
+ } from "./chunk-ZDDHKIWB.js";
79
79
  import {
80
80
  createThinkParserState,
81
81
  flushThinkParser,
@@ -88,7 +88,7 @@ import {
88
88
  import {
89
89
  DEFAULT_CONTEXT_WINDOW,
90
90
  getModelContextWindow
91
- } from "./chunk-OVBVEXZ7.js";
91
+ } from "./chunk-PFW2ZEON.js";
92
92
  import {
93
93
  clipCompactText
94
94
  } from "./chunk-5MMAK75Q.js";
@@ -98,7 +98,7 @@ import {
98
98
  import {
99
99
  buildMemoryOverlayLayer,
100
100
  buildMemoryUseGuidanceLayer
101
- } from "./chunk-QLUFR47U.js";
101
+ } from "./chunk-AL2V7U3E.js";
102
102
  import {
103
103
  compactWhitespace
104
104
  } from "./chunk-DWLEOOGR.js";
@@ -3528,7 +3528,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
3528
3528
  // packages/cli/client/agentRun.ts
3529
3529
  import { ulid } from "ulid";
3530
3530
  async function loadRunLocalAgentTurn() {
3531
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-T6YECTNF.js");
3531
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-LXTR6SAU.js");
3532
3532
  return runLocalAgentTurn;
3533
3533
  }
3534
3534
  async function resolveCurrentMachineId(options) {
@@ -3795,6 +3795,8 @@ async function runHttpAgentTurn(options, authToken) {
3795
3795
  runtime: "bun",
3796
3796
  entrypoint: "nolo-cli",
3797
3797
  capabilities: ["text-io", "streaming", "slash-commands"],
3798
+ ...options.dialogAgentMode ? { dialogAgentMode: options.dialogAgentMode } : {},
3799
+ ...options.memorySubjectId ? { memorySubjectId: options.memorySubjectId } : {},
3798
3800
  ...subjectRefs ? { subjectRefs } : {},
3799
3801
  ...allowedChildAgentKeys?.length ? { allowedChildAgentKeys } : {},
3800
3802
  ...blockedToolNames?.length ? { blockedToolNames } : {},
@@ -3956,8 +3958,10 @@ async function runLocalAgentTurnForCli(options, settings) {
3956
3958
  const blockedToolNames = options.blockedToolNames?.filter(
3957
3959
  (name) => name.trim()
3958
3960
  );
3959
- const runtimeContext = subjectRefs || allowedChildAgentKeys?.length || allowedToolNames?.length || blockedToolNames?.length || options.parentWakeOnTerminal ? {
3961
+ const runtimeContext = subjectRefs || allowedChildAgentKeys?.length || allowedToolNames?.length || blockedToolNames?.length || options.parentWakeOnTerminal || options.dialogAgentMode ? {
3960
3962
  ...subjectRefs ? { subjectRefs } : {},
3963
+ ...options.dialogAgentMode ? { dialogAgentMode: options.dialogAgentMode } : {},
3964
+ ...options.memorySubjectId ? { memorySubjectId: options.memorySubjectId } : {},
3961
3965
  ...allowedChildAgentKeys?.length ? { allowedChildAgentKeys } : {},
3962
3966
  ...allowedToolNames?.length ? { allowedToolNames } : {},
3963
3967
  ...blockedToolNames?.length ? { blockedToolNames } : {},
@@ -3966,7 +3970,7 @@ async function runLocalAgentTurnForCli(options, settings) {
3966
3970
  } : void 0;
3967
3971
  const currentDialogId = options.continueDialogId ?? ulid();
3968
3972
  const runChildTurn = async (input) => {
3969
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-T6YECTNF.js");
3973
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-LXTR6SAU.js");
3970
3974
  return runLocalAgentTurn(input);
3971
3975
  };
3972
3976
  const createFreshChildBaseAdapter = () => {
@@ -4738,6 +4742,7 @@ var resolveMemoryRuntime = async (input) => {
4738
4742
  userId: input.userId,
4739
4743
  spaceId: input.spaceId,
4740
4744
  agentKey: input.agentKey,
4745
+ memorySubjectId: input.memorySubjectId,
4741
4746
  policy
4742
4747
  }),
4743
4748
  kinds: ["episodic", "semantic", "procedural"],
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-KQHGZWSV.js";
16
16
  import {
17
17
  createDocState
18
- } from "./chunk-SPHXTAG6.js";
18
+ } from "./chunk-GFPESFS6.js";
19
19
  import {
20
20
  readDocFunc,
21
21
  readDocFunctionSchema,
@@ -37,7 +37,7 @@ import {
37
37
  } from "./chunk-VF4K2QE6.js";
38
38
  import {
39
39
  createDialogAction
40
- } from "./chunk-MDNZEE6B.js";
40
+ } from "./chunk-Q6B6XJBG.js";
41
41
  import {
42
42
  buildSkillDocMarkdown,
43
43
  normalizeSkillBudgetTier,
@@ -63,6 +63,8 @@ import {
63
63
  instance,
64
64
  loadTableRows,
65
65
  normalizeAppRouteId,
66
+ resolveDialogMemorySubjectId,
67
+ resolveDialogRuntimeAgentKey,
66
68
  selectAllMemberSpaces,
67
69
  selectAllMsgs,
68
70
  selectCurrentDialogConfig,
@@ -76,13 +78,13 @@ import {
76
78
  updateContentCategory,
77
79
  updateContentTitle,
78
80
  updateStep
79
- } from "./chunk-KEPSRWXW.js";
81
+ } from "./chunk-2OK7P5XF.js";
80
82
  import {
81
83
  createAgent,
82
84
  runLlm,
83
85
  streamAgentChatTurn,
84
86
  updateAgent
85
- } from "./chunk-COIZN2AL.js";
87
+ } from "./chunk-ECGTEOC2.js";
86
88
  import {
87
89
  NOLO_WORKSPACE_TOOL_NAMES,
88
90
  buildNoloSubjectRefQueryTarget,
@@ -98,10 +100,10 @@ import {
98
100
  redactAgentRecordForWorkspaceTool,
99
101
  resolveNoloDialogInput,
100
102
  verifyNoloDialogSubjectRefQuery
101
- } from "./chunk-JTMNCCWF.js";
103
+ } from "./chunk-OSIJVBXP.js";
102
104
  import {
103
105
  buildDatabaseFileContentUrl
104
- } from "./chunk-OVBVEXZ7.js";
106
+ } from "./chunk-PFW2ZEON.js";
105
107
  import {
106
108
  DEFAULT_MODEL
107
109
  } from "./chunk-HQPG2PIV.js";
@@ -161,6 +163,7 @@ import {
161
163
  read,
162
164
  readAndWait,
163
165
  readAndWaitAction,
166
+ selectById,
164
167
  toTimestampMs,
165
168
  write
166
169
  } from "./chunk-3S2VOMIF.js";
@@ -11238,8 +11241,8 @@ var CAPABILITY_PACKS = [
11238
11241
  {
11239
11242
  id: "long-term-memory",
11240
11243
  label: "\u957F\u671F\u8BB0\u5FC6",
11241
- description: "\u8BA9 agent \u80FD\u628A\u503C\u5F97\u957F\u671F\u4FDD\u7559\u7684\u7528\u6237\u504F\u597D\u3001\u534F\u4F5C\u7EA6\u5B9A\u5199\u6210 episodic memory\uFF0C\u8DE8\u5BF9\u8BDD\u590D\u7528\u3002",
11242
- tools: ["rememberMemory"],
11244
+ description: "\u5BF9\u8BDD\u524D\u81EA\u52A8\u8F7D\u5165\u9AD8\u76F8\u5173\u8BB0\u5FC6\uFF0C\u5E76\u5141\u8BB8 agent \u6309\u9700\u67E5\u8BE2\u6216\u5199\u5165\u957F\u671F\u8BB0\u5FC6\u3002",
11245
+ tools: ["queryMemory", "rememberMemory"],
11243
11246
  defaultEnabled: true,
11244
11247
  icon: "\u{1F9E0}"
11245
11248
  },
@@ -14166,7 +14169,7 @@ async function deleteDialogsFunc(args, thunkApi) {
14166
14169
  const deletedDialogIds = [];
14167
14170
  const deletedDialogKeys = [];
14168
14171
  const failures = [];
14169
- const { deleteDialog } = await import("./dialogSlice-H24LGUPG.js");
14172
+ const { deleteDialog } = await import("./dialogSlice-K32QLYS7.js");
14170
14173
  for (const target of targets) {
14171
14174
  try {
14172
14175
  await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
@@ -20636,10 +20639,20 @@ var rememberMemoryFunctionSchema = {
20636
20639
  "\u53EA\u6709\u91CD\u590D\u51FA\u73B0\u7684\u53EF\u6267\u884C\u6D41\u7A0B/\u6392\u969C\u6B65\u9AA4\u624D\u4F20 kind=procedural\uFF1B\u4E00\u822C\u504F\u597D\u548C\u4E8B\u5B9E\u4FDD\u6301\u9ED8\u8BA4 episodic\u3002",
20637
20640
  "scope \u6309\u5185\u5BB9\u6027\u8D28\u9009\uFF0C\u4E0D\u56FA\u5B9A\u4F18\u5148\u67D0\u4E00\u5C42\uFF1A",
20638
20641
  " - Space \u534F\u4F5C\u7EA6\u5B9A/\u56E2\u961F\u89C4\u5219 \u2192 scope=space\uFF08\u5F53\u524D dialog \u7ED1\u5B9A space \u65F6\uFF09",
20639
- " - \u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD\u6216\u7EAF\u4E2A\u4EBA\u504F\u597D \u2192 scope=auto\uFF08\u9ED8\u8BA4\u8BB0\u5230\u7528\u6237\uFF09",
20640
- " - \u4E0E\u5F53\u524D Agent \u6302\u94A9\u7684\u6709\u6548\u505A\u6CD5 \u2192 scope=auto\uFF08runtime \u81EA\u52A8\u628A subject \u6807\u8BB0\u4E3A\u5F53\u524D Agent\uFF09",
20642
+ " - \u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD\u6216\u7EAF\u4E2A\u4EBA\u504F\u597D \u2192 scope=user\uFF08\u4E25\u683C\u4FDD\u5B58\u4E3A\u7528\u6237\u4E3B\u4F53\uFF09",
20643
+ " - \u4E0E\u5F53\u524D\u52A9\u624B\u5173\u7CFB\u6302\u94A9\u7684\u504F\u597D\u6216\u6709\u6548\u505A\u6CD5 \u2192 scope=auto\uFF08runtime \u4F7F\u7528\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\uFF09",
20641
20644
  " - \u5F53\u524D\u4EFB\u52A1\u7684\u4E34\u65F6\u8FDB\u5EA6 \u2192 \u4E0D\u8981\u8C03\u7528\uFF0C\u8D70\u5BF9\u8BDD\u4E0A\u4E0B\u6587",
20642
- "\u5199\u6210\u4E00\u53E5\u7B80\u6D01\u3001\u672A\u6765\u4ECD\u53EF\u7406\u89E3\u7684\u8BDD\u3002\u9ED8\u8BA4\u9759\u9ED8\u6267\u884C\uFF0C\u4E0D\u7528\u5411\u7528\u6237\u6C47\u62A5\u5DF2\u8BB0\u4F4F\u3002"
20645
+ "\u5199\u6210\u4E00\u53E5\u7B80\u6D01\u3001\u672A\u6765\u4ECD\u53EF\u7406\u89E3\u7684\u8BDD\u3002\u9ED8\u8BA4\u9759\u9ED8\u6267\u884C\uFF0C\u4E0D\u7528\u5411\u7528\u6237\u6C47\u62A5\u5DF2\u8BB0\u4F4F\u3002",
20646
+ "",
20647
+ "\u3010\u5173\u952E\u89C4\u5219\u3011\u8BB0\u5FC6\u4E0D\u53EF\u7269\u7406\u5220\u9664\uFF0C\u53EA\u80FD\u964D\u7EA7/\u5F52\u6863/\u6807\u6CE8\u3002",
20648
+ "\u7269\u7406\u5220\u9664\u4F1A\u5207\u65AD\u89E3\u91CA\u94FE\u2014\u2014\u7CFB\u7EDF\u65E0\u6CD5\u56DE\u7B54'\u4E3A\u4EC0\u4E48\u53D8\u4E86'\u3001'\u66FE\u7ECF\u4FE1\u4EC0\u4E48'\u3002",
20649
+ "\u9519\u8BEF\u7684\u8BB0\u5FC6\u5E94\u901A\u8FC7 rememberMemory \u4FEE\u6B63\u5E76\u964D\u6743\uFF08\u964D\u4F4E\u7F6E\u4FE1\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u5220\u9664\u3002",
20650
+ "",
20651
+ "\u3010\u7F6E\u4FE1\u5EA6\u6765\u6E90\u3011\u6BCF\u6761\u8BB0\u5FC6\u5FC5\u987B\u6807\u6CE8\u6765\u6E90\uFF08\u4F9B\u53EC\u56DE\u65F6\u5224\u65AD\u53EF\u4FE1\u5EA6\uFF09\uFF1A",
20652
+ " - verified\uFF1A\u5DE5\u5177/\u547D\u4EE4\u5B9E\u6D4B\u9A8C\u8BC1\u8FC7\uFF08\u9AD8\u7F6E\u4FE1\u5EA6\uFF09",
20653
+ " - stated\uFF1A\u7528\u6237\u660E\u786E\u9648\u8FF0\uFF08\u4E2D\u9AD8\u7F6E\u4FE1\u5EA6\uFF09",
20654
+ " - inferred\uFF1A\u6A21\u578B\u63A8\u65AD/\u51ED\u5370\u8C61\uFF0C\u672A\u9A8C\u8BC1\uFF08\u4F4E\u7F6E\u4FE1\u5EA6\u2014\u2014\u5BB9\u6613\u7F16\u9020\uFF0C\u4F18\u5148\u6807\u8BB0\u5B58\u7591\uFF09",
20655
+ "\u8C03\u7528\u65F6\u5C3D\u91CF\u660E\u786E\u6765\u6E90\uFF0C\u65E0\u6CD5\u5224\u65AD\u7684\u4FDD\u5B88\u6807 inferred\u3002"
20643
20656
  ].join("\n"),
20644
20657
  parameters: {
20645
20658
  type: "object",
@@ -20651,7 +20664,7 @@ var rememberMemoryFunctionSchema = {
20651
20664
  scope: {
20652
20665
  type: "string",
20653
20666
  enum: ["auto", "user", "space"],
20654
- description: "\u8BB0\u5FC6\u8303\u56F4\u3002\u6309\u5185\u5BB9\u6027\u8D28\u9009\uFF1ASpace \u534F\u4F5C\u5171\u8BC6\u4F20 space\uFF1B\u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD/\u504F\u597D\u6216\u4E0E\u5F53\u524D Agent \u6302\u94A9\u7684\u505A\u6CD5\u4F20 auto\uFF08\u9ED8\u8BA4\uFF09\u3002auto \u65F6 runtime \u81EA\u52A8\u5224\u65AD owner\uFF0C\u5E76\u5C06 subject \u6807\u8BB0\u4E3A\u5F53\u524D Agent\uFF08\u5982\u679C\u53EF\u8BC6\u522B\uFF09\u3002"
20667
+ description: "\u8BB0\u5FC6\u8303\u56F4\u3002Space \u534F\u4F5C\u5171\u8BC6\u4F20 space\uFF1B\u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD/\u504F\u597D\u4F20 user\uFF1B\u4E0E\u5F53\u524D\u52A9\u624B\u5173\u7CFB\u6302\u94A9\u7684\u504F\u597D\u4F20 auto\u3002auto \u65F6 runtime \u4F7F\u7528\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\u3002"
20655
20668
  },
20656
20669
  kind: {
20657
20670
  type: "string",
@@ -20669,6 +20682,8 @@ async function rememberMemoryFunc(args, thunkApi) {
20669
20682
  const spaceId = selectCurrentSpaceId(state) || void 0;
20670
20683
  const content = String(args.content ?? "").trim();
20671
20684
  const scope = args.scope ?? "auto";
20685
+ const dialogKey = getActiveDialogKey();
20686
+ const dialog = dialogKey ? selectById(state, dialogKey) : null;
20672
20687
  const kind = args.kind ?? "episodic";
20673
20688
  if (!content) {
20674
20689
  throw new Error("rememberMemory \u9700\u8981\u975E\u7A7A content\u3002");
@@ -20680,7 +20695,8 @@ async function rememberMemoryFunc(args, thunkApi) {
20680
20695
  content,
20681
20696
  scope,
20682
20697
  kind,
20683
- spaceId
20698
+ spaceId,
20699
+ ...scope === "auto" ? { memorySubjectId: resolveDialogMemorySubjectId(dialog) } : {}
20684
20700
  },
20685
20701
  { withAuth: true }
20686
20702
  );
@@ -20691,6 +20707,53 @@ async function rememberMemoryFunc(args, thunkApi) {
20691
20707
  };
20692
20708
  }
20693
20709
 
20710
+ // packages/ai/tools/queryMemoryToolSchema.ts
20711
+ var queryMemoryFunctionSchema = {
20712
+ name: "queryMemory",
20713
+ description: [
20714
+ "\u6309\u9700\u67E5\u8BE2\u5F53\u524D\u7528\u6237\u3001Space \u548C\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
20715
+ "\u5BF9\u8BDD\u5F00\u59CB\u524D\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u8F7D\u5165\u5C11\u91CF\u9AD8\u76F8\u5173\u8BB0\u5FC6\uFF1B\u53EA\u6709\u9884\u8F7D\u4E0D\u8DB3\u3001\u7528\u6237\u63D0\u5230\u8FC7\u53BB\u7EA6\u5B9A/\u504F\u597D/\u7EA0\u6B63/\u672A\u5B8C\u6210\u4E8B\u9879\u65F6\u624D\u8C03\u7528\u3002",
20716
+ "\u4E0D\u8981\u4E3A\u4E86\u666E\u901A\u4E8B\u5B9E\u95EE\u9898\u67E5\u8BE2\uFF0C\u4E5F\u4E0D\u8981\u5728\u540C\u4E00\u8F6E\u7528\u8FD1\u4E49\u8BCD\u53CD\u590D\u67E5\u8BE2\u3002",
20717
+ "",
20718
+ "\u3010\u53EC\u56DE\u89C4\u5219\u3011\u53EC\u56DE\u7684\u8BB0\u5FC6\u5FC5\u987B\u5E26\u5B8C\u6574\u5386\u53F2\u4E0A\u4E0B\u6587\uFF08\u6765\u6E90\u3001\u7F6E\u4FE1\u5EA6\u3001\u53D8\u66F4\u8BB0\u5F55\uFF09\uFF0C\u7981\u6B62\u81EA\u884C\u63A8\u7406\u586B\u8865\u3002",
20719
+ "\u5982\u679C\u8BB0\u5FC6\u6765\u6E90\u662F inferred\uFF08\u63A8\u65AD\uFF09\uFF0C\u5FC5\u987B\u660E\u786E\u6807\u6CE8\u5B58\u7591\uFF0C\u4E0D\u80FD\u5F53\u6210\u9A8C\u8BC1\u8FC7\u7684\u4E8B\u5B9E\u4F7F\u7528\u3002",
20720
+ "\u9AD8\u7F6E\u4FE1\u5EA6\u8BB0\u5FC6\uFF08verified/stated\uFF09\u4F18\u5148\u4F7F\u7528\uFF1B\u4F4E\u7F6E\u4FE1\u5EA6\u8BB0\u5FC6\uFF08inferred\uFF09\u9700\u9A8C\u8BC1\u540E\u518D\u91C7\u7EB3\u3002"
20721
+ ].join("\n"),
20722
+ parameters: {
20723
+ type: "object",
20724
+ properties: {
20725
+ query: {
20726
+ type: "string",
20727
+ description: "\u8981\u4ECE\u957F\u671F\u8BB0\u5FC6\u4E2D\u68C0\u7D22\u7684\u81EA\u7136\u8BED\u8A00\u95EE\u9898\u6216\u5173\u952E\u8BCD\u3002"
20728
+ }
20729
+ },
20730
+ required: ["query"]
20731
+ }
20732
+ };
20733
+
20734
+ // packages/ai/tools/queryMemoryTool.ts
20735
+ async function queryMemoryFunc(args, thunkApi) {
20736
+ const query = String(args.query ?? "").trim();
20737
+ if (!query) throw new Error("queryMemory \u9700\u8981\u975E\u7A7A query\u3002");
20738
+ const state = thunkApi.getState();
20739
+ const dialogKey = getActiveDialogKey();
20740
+ const dialog = dialogKey ? selectById(state, dialogKey) : null;
20741
+ const result = await callToolApi(
20742
+ thunkApi,
20743
+ "/api/memory/query",
20744
+ {
20745
+ agentKey: resolveDialogRuntimeAgentKey(dialog),
20746
+ memorySubjectId: resolveDialogMemorySubjectId(dialog),
20747
+ userInput: query,
20748
+ ...selectCurrentSpaceId(state) ? { spaceId: selectCurrentSpaceId(state) } : {}
20749
+ },
20750
+ { withAuth: true }
20751
+ );
20752
+ const selectedItems = Array.isArray(result?.selectedItems) ? result.selectedItems : [];
20753
+ const displayData = selectedItems.length ? selectedItems.map((item) => String(item?.content ?? "").trim()).filter(Boolean).join("\n") : "\u6CA1\u6709\u627E\u5230\u76F8\u5173\u957F\u671F\u8BB0\u5FC6\u3002";
20754
+ return { rawData: result, displayData };
20755
+ }
20756
+
20694
20757
  // packages/ai/tools/execShellTool.ts
20695
20758
  var execShellFunctionSchema = {
20696
20759
  name: "execShell",
@@ -23374,7 +23437,7 @@ var executeToolRun = createAsyncThunk(
23374
23437
  if (!executionInput) {
23375
23438
  throw new Error(`ToolRun ${id} has no input to execute with.`);
23376
23439
  }
23377
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-RXIDHJ2C.js");
23440
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-YHZP6NXU.js");
23378
23441
  const { executor } = findToolExecutor2(run.toolName);
23379
23442
  toolRunStarted({
23380
23443
  id: run.id,
@@ -23398,7 +23461,7 @@ var executeToolRun = createAsyncThunk(
23398
23461
  const latestState = thunkApi.getState();
23399
23462
  const userId = latestState.auth?.currentUser?.userId;
23400
23463
  if (userId) {
23401
- const { fetchUserSpaceMemberships } = await import("./spaceSlice-YBORJR2H.js");
23464
+ const { fetchUserSpaceMemberships } = await import("./spaceSlice-V2P5TTQU.js");
23402
23465
  await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
23403
23466
  }
23404
23467
  }
@@ -25881,7 +25944,7 @@ async function updateDocFunc(args, thunkApi) {
25881
25944
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
25882
25945
  };
25883
25946
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
25884
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-EFEUV2FP.js");
25947
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-L6HBNJ3R.js");
25885
25948
  if (getDocState().pageKey === id) {
25886
25949
  applyExternalDocUpdate({
25887
25950
  slateData: finalSlateData,
@@ -26509,6 +26572,17 @@ var baseToolDefinitions = [
26509
26572
  },
26510
26573
  behavior: "answer"
26511
26574
  },
26575
+ {
26576
+ id: "queryMemory",
26577
+ schema: queryMemoryFunctionSchema,
26578
+ executor: queryMemoryFunc,
26579
+ description: {
26580
+ name: "queryMemory",
26581
+ description: "\u6309\u9700\u67E5\u8BE2\u5F53\u524D\u7528\u6237\u3001Space \u548C\u52A9\u624B\u4E3B\u4F53\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
26582
+ category: "\u8BB0\u5FC6 / \u957F\u671F\u4E0A\u4E0B\u6587"
26583
+ },
26584
+ behavior: "data"
26585
+ },
26512
26586
  {
26513
26587
  id: "rememberMemory",
26514
26588
  schema: rememberMemoryFunctionSchema,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-QSJNZQFD.js";
4
+ } from "./chunk-6IGLIDDE.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-6IZTYSJK.js";
4
+ } from "./chunk-W6OKITU6.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-TSGUTKW2.js";
7
+ } from "./chunk-URVWRKFU.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-RIF3XLXK.js";
10
+ } from "./chunk-ZDDHKIWB.js";
11
11
  import {
12
12
  resolveLocalRuntimeEnvFromPolicy
13
13
  } from "./chunk-5CS33IBL.js";