nolo-cli 0.54.0 → 0.61.0-alpha.3

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 (158) hide show
  1. package/README.md +3 -3
  2. package/{_executeModel-OPTKYHJA.js → _executeModel-R26QYY66.js} +50 -46
  3. package/{action-ORXWW2ZG.js → action-76JX3JX3.js} +7 -6
  4. package/{addContentAction-53BZ34AE.js → addContentAction-V3NAZRTJ.js} +6 -5
  5. package/{addDialogAgentAction-JRYUS54Y.js → addDialogAgentAction-RZOAF46K.js} +5 -4
  6. package/{agentDeleteCommand-FJIWU2BS.js → agentDeleteCommand-6GNQA4J4.js} +30 -27
  7. package/{agentEmailCommands-CE32L43B.js → agentEmailCommands-HH67CYKD.js} +61 -57
  8. package/{agentGrantCommands-2LEZDADN.js → agentGrantCommands-R3VQEZJR.js} +1 -1
  9. package/{agentListCommands-VJNKULIK.js → agentListCommands-23XW3OPZ.js} +61 -31
  10. package/{agentMachineCommands-HCJ3WQXL.js → agentMachineCommands-HXHASEWO.js} +31 -28
  11. package/{agentPullCommand-M552CYSI.js → agentPullCommand-N7L2CT7L.js} +2 -2
  12. package/{agentRecordCommands-QFWERED4.js → agentRecordCommands-UHTQJVGC.js} +59 -55
  13. package/{agentRunCommand-G3GQMUNN.js → agentRunCommand-OAMT77EX.js} +63 -59
  14. package/{agentRunControl-INKFDXDA.js → agentRunControl-WECMOO6O.js} +11 -6
  15. package/{agentRuntimeLocal-K327ELSL.js → agentRuntimeLocal-QBK4H3T2.js} +26 -23
  16. package/{agentSlice-ODKF4J6M.js → agentSlice-7XJH5WQF.js} +8 -7
  17. package/{appDeleteCommands-XUXMFDI4.js → appDeleteCommands-AX2O6VDV.js} +30 -27
  18. package/{appDeployCommands-37F4GPCU.js → appDeployCommands-L5ZR26CB.js} +30 -27
  19. package/{appDeployStatusCommands-WSPU7TUK.js → appDeployStatusCommands-5HQHELRA.js} +30 -27
  20. package/{appGetCommands-YLOBA3EM.js → appGetCommands-HVSYOS57.js} +30 -27
  21. package/{appListCommands-UD62R5ME.js → appListCommands-XV2FPTWX.js} +30 -27
  22. package/{authCommand-OK6HLHGS.js → authCommand-WOTWLJNF.js} +35 -29
  23. package/{authCommands-2DUIUEMT.js → authCommands-ILTBI6JV.js} +7 -5
  24. package/{chatQueueReduxAdapter-TV2TUOQS.js → chatQueueReduxAdapter-F3R253JE.js} +20 -18
  25. package/{chunk-HPW5MNDQ.js → chunk-22BTGNSP.js} +113 -57
  26. package/{chunk-UNZDCI3O.js → chunk-2KDR4CWE.js} +35 -4
  27. package/{chunk-3ZTR7ZO4.js → chunk-2PGGC63K.js} +1 -1
  28. package/{chunk-EA5OYZVD.js → chunk-37XDGCY7.js} +1 -1
  29. package/chunk-3BLB7QKO.js +433 -0
  30. package/{chunk-CS6TCJ7E.js → chunk-3JQ2NRYU.js} +30 -7
  31. package/{chunk-3LKZRP7E.js → chunk-3QGUVVX5.js} +2 -2
  32. package/{chunk-SSXTSPSG.js → chunk-45YO6H7P.js} +71 -30
  33. package/{chunk-YLCUU3WM.js → chunk-4NJEIGBQ.js} +5 -5
  34. package/{chunk-K4NISKOR.js → chunk-5ZYA4JJ3.js} +47 -17
  35. package/{chunk-6HIGYUBQ.js → chunk-6XIE5ZGI.js} +1 -1
  36. package/{chunk-3Y2K5O2R.js → chunk-7A3RRUCQ.js} +125 -40
  37. package/{chunk-6COJEAYH.js → chunk-7KELZLC2.js} +44 -37
  38. package/chunk-AETZ7AD6.js +274 -0
  39. package/chunk-BFU6C242.js +66 -0
  40. package/{chunk-IA3A5373.js → chunk-C3FZR5EC.js} +1 -1
  41. package/{chunk-IWUMSAQF.js → chunk-CJCJF5XB.js} +26 -3
  42. package/{chunk-UGBHDMHI.js → chunk-CP7VIDZ7.js} +1 -1
  43. package/{chunk-TR4DXUYX.js → chunk-CQ2OZMLQ.js} +1181 -737
  44. package/{chunk-JON2PHYT.js → chunk-CTCW7U7N.js} +1 -1
  45. package/{chunk-7NYDJAQ7.js → chunk-DNNSCSA2.js} +5 -5
  46. package/{chunk-NI2BS6UD.js → chunk-DWUCB2A3.js} +1 -1
  47. package/{chunk-FJHMLRDQ.js → chunk-DWYSDNOH.js} +22 -28
  48. package/{chunk-AA564GBL.js → chunk-E3YVTQWT.js} +2 -2
  49. package/chunk-E4MARS3Q.js +114 -0
  50. package/{chunk-75MSWWUE.js → chunk-E6RGHPDR.js} +5 -3
  51. package/chunk-EDKF7RX4.js +30 -0
  52. package/{chunk-TC6P4NDR.js → chunk-F44FAXP2.js} +6 -6
  53. package/{chunk-SYYUU7EV.js → chunk-FHAGENAS.js} +2 -3
  54. package/{chunk-NJUQBYFJ.js → chunk-FKFMIBTT.js} +3 -1
  55. package/{chunk-INZZJSQF.js → chunk-FZGV4FGK.js} +24 -12
  56. package/{chunk-6HDYSFLO.js → chunk-GSXDRMDO.js} +3 -3
  57. package/{chunk-AUVFJGPC.js → chunk-JX5PJCWS.js} +7 -5
  58. package/{chunk-LYGNQHUW.js → chunk-JYYZCK2Z.js} +2 -4
  59. package/{chunk-EY7V7REW.js → chunk-KHCLMKZZ.js} +6 -280
  60. package/{chunk-EJE33XNR.js → chunk-KSCXMC6U.js} +1521 -565
  61. package/{chunk-XOJRZUPF.js → chunk-KWSQR2KK.js} +14 -29
  62. package/{chunk-2WBFJHQA.js → chunk-L7B47JXR.js} +34 -39
  63. package/{chunk-EICIFHVS.js → chunk-LAFC3B2I.js} +1 -1
  64. package/{chunk-N4JKMCY3.js → chunk-LJKICKVC.js} +2 -2
  65. package/chunk-M3JEW6N6.js +193 -0
  66. package/{chunk-LRGKOI5Y.js → chunk-MBOEV4L2.js} +7 -3
  67. package/{chunk-SVDMVX4G.js → chunk-MMZ6ZTVO.js} +112 -73
  68. package/{chunk-JDSUTNYY.js → chunk-MP64VFGD.js} +2 -2
  69. package/{chunk-NFLA6GSU.js → chunk-MXUDQZXQ.js} +44 -5
  70. package/chunk-N4G4PKQ6.js +23 -0
  71. package/{chunk-WQHGJHAL.js → chunk-N6HLMLKE.js} +732 -726
  72. package/{chunk-YQBXOHE6.js → chunk-NO42UD73.js} +1 -1
  73. package/{chunk-MLEZPE3U.js → chunk-NRRPKMM7.js} +4 -4
  74. package/{chunk-KXKQO4Q6.js → chunk-NTW5GWDM.js} +58 -1
  75. package/chunk-ONXOABJR.js +215 -0
  76. package/{chunk-TY3ADTX5.js → chunk-OZX2IPKM.js} +7 -2
  77. package/{chunk-Q4XZVZPN.js → chunk-P7OOB7QP.js} +1 -1
  78. package/{chunk-XIJZOCSP.js → chunk-PEZJEQAO.js} +1 -1
  79. package/{chunk-SWJGJMTW.js → chunk-PQDIDWGX.js} +1 -1
  80. package/chunk-PSCNXBYA.js +11 -0
  81. package/{chunk-BY2FF2C4.js → chunk-QEFJJS2I.js} +55 -73
  82. package/{chunk-BG7J6Y5X.js → chunk-QEW2MFDQ.js} +1 -1
  83. package/{chunk-KLIBF3BY.js → chunk-RDBARW6T.js} +8 -3
  84. package/{chunk-ZVOHVJI3.js → chunk-RJ2SAFB5.js} +82 -35
  85. package/{chunk-MYMBBB6Q.js → chunk-RVWRKFUB.js} +5 -3
  86. package/{chunk-43CXXVJD.js → chunk-RXX4GDIH.js} +1 -1
  87. package/chunk-SEJ5OS6F.js +49 -0
  88. package/{chunk-JXIP6ZWH.js → chunk-SKIRVYEI.js} +18 -5
  89. package/{chunk-SAJSBPI2.js → chunk-SOJM57FX.js} +5 -2
  90. package/{chunk-EKLRRZIN.js → chunk-SPAQ4PVV.js} +0 -5
  91. package/{chunk-RHMDMTDK.js → chunk-SYNKICCB.js} +2 -2
  92. package/{chunk-YBFJQC2M.js → chunk-TBHAHL33.js} +65 -42
  93. package/{chunk-L7NG2M6H.js → chunk-TRV2MIDW.js} +89 -74
  94. package/{chunk-5UAYZEXO.js → chunk-UZPQSVM6.js} +1 -1
  95. package/{chunk-7FAS3NEF.js → chunk-VAKVNHK5.js} +19 -15
  96. package/{chunk-UOWXD4VN.js → chunk-VHO3TMQZ.js} +336 -244
  97. package/{chunk-SVC3GGUA.js → chunk-VMWYBIXG.js} +7 -5
  98. package/{chunk-ZHXJ6M7T.js → chunk-W7XHHYWM.js} +4 -0
  99. package/{chunk-UR66XPVF.js → chunk-XAVSS3KE.js} +21 -3
  100. package/{chunk-A65UV3M5.js → chunk-XOKOSO35.js} +10 -19
  101. package/{chunk-VZMUOPYG.js → chunk-XTJTN3RW.js} +46 -3
  102. package/{chunk-T5HJEUQN.js → chunk-YCDWJX45.js} +1 -1
  103. package/{chunk-BBTN4NQD.js → chunk-Z4QSJILV.js} +85 -13
  104. package/{chunk-5FCIPEKT.js → chunk-Z5MHFBJZ.js} +1051 -926
  105. package/{chunk-O5FLGN2L.js → chunk-ZRSJ3JEH.js} +6 -2
  106. package/{cliExecutor-BBUVQU4L.js → cliExecutor-HG3S345O.js} +1 -1
  107. package/{codingSkills-BCQXRZOI.js → codingSkills-TKROLCBA.js} +4 -3
  108. package/{contentThunks-KNI6VXLT.js → contentThunks-OZPK5B4Z.js} +21 -19
  109. package/{cooldownCommands-GI5NNWGL.js → cooldownCommands-BSCH2W7P.js} +2 -2
  110. package/{createAgentAutomationAction-OK4L33KF.js → createAgentAutomationAction-LCIBGE5T.js} +23 -21
  111. package/{createDialogAction-JDSMY4AY.js → createDialogAction-JPJZMHJE.js} +25 -22
  112. package/{createPageAction-T7RA3HCG.js → createPageAction-6P2WLNHO.js} +26 -23
  113. package/{dbSlice-TVX6SN2T.js → dbSlice-IBVOBVMS.js} +5 -4
  114. package/{deleteFile-JYKRT7C3.js → deleteFile-FWP2PSBG.js} +3 -2
  115. package/{dialogCommands-UQZYWOOV.js → dialogCommands-WAFKC3KK.js} +30 -27
  116. package/{dialogSlice-TYW2G7IL.js → dialogSlice-R5RZHFTU.js} +20 -18
  117. package/{docCreateCommands-OA6HZBWO.js → docCreateCommands-GHGB42S7.js} +32 -28
  118. package/{docDeleteCommands-KBB3YQI2.js → docDeleteCommands-Y5I7ZEX4.js} +33 -29
  119. package/{docReadCommands-ZLMFVC67.js → docReadCommands-BMXM6J7T.js} +32 -28
  120. package/{docStore-2URPBVCS.js → docStore-DKWZ6XJ5.js} +6 -5
  121. package/{docUpdateCommands-HMH5KUON.js → docUpdateCommands-QNABH3M2.js} +32 -28
  122. package/{getPricing-RFOPUWHY.js → getPricing-NM3NUTAS.js} +4 -4
  123. package/handleSendMessageAction-UQGKM4UX.js +675 -0
  124. package/index.js +79 -88
  125. package/{lib-2ZTNRXR4.js → lib-FRRS27KN.js} +63 -28
  126. package/{localRuntimeAuthority-KQDAE64E.js → localRuntimeAuthority-R5UBODT3.js} +6 -4
  127. package/{localRuntimeDb-PF7CFKDL.js → localRuntimeDb-P37ZTX55.js} +1 -1
  128. package/{machineCommands-RK6L7ZWL.js → machineCommands-YDAIPYU5.js} +298 -80
  129. package/{machineWsRunDispatch-3X64DW2Z.js → machineWsRunDispatch-O6RM2ECT.js} +57 -53
  130. package/{memberThunks-THZYZFSN.js → memberThunks-VZI6G7YZ.js} +10 -8
  131. package/{models-JVKUEER5.js → models-FAMINFZ7.js} +2 -2
  132. package/package.json +3 -2
  133. package/{read-K4JU4MQC.js → read-2BYWW7AA.js} +3 -2
  134. package/{readDocTool-LQGR6FUN.js → readDocTool-LC3A7QTB.js} +1 -1
  135. package/{readlineWorkspace-XUFJV3RS.js → readlineWorkspace-5DP3AJWN.js} +4367 -2796
  136. package/{removeDialogAgentAction-ECHCFB7N.js → removeDialogAgentAction-SFYZXHNK.js} +8 -7
  137. package/{runAgentClientLoop-24GQ2AW6.js → runAgentClientLoop-Y6HWP2PT.js} +51 -46
  138. package/{runtimeDoctorCommands-JKTTN723.js → runtimeDoctorCommands-CROTMULY.js} +7 -5
  139. package/{setDialogExtraReferencesAction-KCVJNGMB.js → setDialogExtraReferencesAction-Q32RGFTA.js} +6 -5
  140. package/{setPrimaryDialogAgentAction-VDOBOMKC.js → setPrimaryDialogAgentAction-BFYJHUJS.js} +8 -7
  141. package/{settingSlice-VR2IJSXC.js → settingSlice-IRUU4VFB.js} +6 -5
  142. package/{skillDiscovery-2QTZINON.js → skillDiscovery-CYUCJMAG.js} +2 -1
  143. package/{spaceCommands-S5YJJXL7.js → spaceCommands-CLN45IE3.js} +33 -215
  144. package/{streamAgentChatTurn-QHKP3ABO.js → streamAgentChatTurn-6WFQJ4DY.js} +107 -74
  145. package/{switchDialogAgentAction-5L4UP7VI.js → switchDialogAgentAction-L2KOKCGG.js} +5 -4
  146. package/{tableCommands-R6WFRDYF.js → tableCommands-SUNTHAYX.js} +1 -1
  147. package/{toolApiClient-53U4UDFF.js → toolApiClient-VGYUB4P5.js} +2 -1
  148. package/{tools-SSXSTC3O.js → tools-RR53D65Q.js} +39 -35
  149. package/{tuiSummaryLlmCaller-URFJHFC5.js → tuiSummaryLlmCaller-F3DPFFZM.js} +15 -13
  150. package/{updateCommands-IYKLF3JX.js → updateCommands-AJYSD73Y.js} +2 -2
  151. package/{updateDialogTitleAction-YFYAEW3T.js → updateDialogTitleAction-WXS3AKOL.js} +23 -21
  152. package/agentSuperviseCommands-5AR3DKNN.js +0 -640
  153. package/chunk-6IGD47IC.js +0 -19
  154. package/chunk-FD36SCCD.js +0 -105
  155. package/chunk-GRFK2XP4.js +0 -230
  156. package/chunk-HJTAGT3W.js +0 -370
  157. package/chunk-SUEIAK5N.js +0 -2574
  158. package/handleSendMessageAction-GO53TY7U.js +0 -409
@@ -3,12 +3,15 @@ import {
3
3
  resolvePlatformChatCompletionsEndpoint,
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformResponsesEndpoint
6
- } from "./chunk-N4JKMCY3.js";
6
+ } from "./chunk-LJKICKVC.js";
7
+ import {
8
+ CLI_PROVIDER_VALUES
9
+ } from "./chunk-W7XHHYWM.js";
7
10
  import {
8
11
  CLIENT_VERSION_TOO_OLD_CODE,
9
12
  buildClientVersionGateErrorDetail,
10
13
  evaluatePlatformHostedClientVersionGate
11
- } from "./chunk-HPW5MNDQ.js";
14
+ } from "./chunk-22BTGNSP.js";
12
15
  import {
13
16
  asTrimmedLowercaseString
14
17
  } from "./chunk-QSJ3HFEF.js";
@@ -110,7 +113,9 @@ function hasDirectOpenAiCompatibleProvider(env) {
110
113
  );
111
114
  }
112
115
  function resolveAgentProviderMode(agentConfig) {
113
- if (agentConfig.apiSource === "cli" || agentConfig.provider === "cli" || agentConfig.cliProvider) {
116
+ const cliProviderName = asTrimmedLowercaseString(agentConfig.cliProvider);
117
+ const hasRealCliProvider = Boolean(cliProviderName && CLI_PROVIDER_VALUES.includes(cliProviderName)) || asTrimmedLowercaseString(agentConfig.provider) === "cli";
118
+ if (agentConfig.apiSource === "cli" || hasRealCliProvider && agentConfig.apiSource !== "platform") {
114
119
  return "cli";
115
120
  }
116
121
  if (agentConfig.apiSource === "custom" || agentConfig.customProviderUrl) {
@@ -20,20 +20,6 @@ import {
20
20
  asOptionalTrimmedString
21
21
  } from "./chunk-G3SUCT4W.js";
22
22
 
23
- // packages/agent-runtime/agentRecordKeys.ts
24
- function buildAgentRuntimeAgentLookupKeys(args) {
25
- if (/^agent(-pub)?-/.test(args.agentRef)) {
26
- return [args.agentRef];
27
- }
28
- return [
29
- ownedAgentKey(args.userId, args.agentRef),
30
- publicAgentKey(args.agentRef)
31
- ];
32
- }
33
- function shouldFetchAgentRuntimeRecordRemotely(dbKey) {
34
- return /^agent(-pub)?-/.test(dbKey);
35
- }
36
-
37
23
  // packages/agent-runtime/runtimeToolSurface.ts
38
24
  var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
39
25
  "listDialogs",
@@ -51,6 +37,25 @@ var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
51
37
  "cliWhoami",
52
38
  "cliDoctor"
53
39
  ];
40
+ var DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS = [
41
+ "readDialog",
42
+ "queryDialogsBySubjectRef",
43
+ "readDoc",
44
+ "queryTableRows"
45
+ ];
46
+ function applyToolSurfaceConstraints(surface, constraints) {
47
+ const allowed = constraints.allowedToolNames == null ? null : new Set(asTrimmedNonEmptyStringArray(constraints.allowedToolNames));
48
+ const blocked = new Set(asTrimmedNonEmptyStringArray(constraints.blockedToolNames ?? []));
49
+ const narrow = (names) => names.filter(
50
+ (name) => (allowed === null || allowed.has(name)) && !blocked.has(name)
51
+ );
52
+ return {
53
+ ...surface,
54
+ explicitToolNames: narrow(surface.explicitToolNames),
55
+ injectedToolNames: narrow(surface.injectedToolNames),
56
+ finalToolNames: narrow(surface.finalToolNames)
57
+ };
58
+ }
54
59
  function uniqueToolNames(values) {
55
60
  return [...new Set(asTrimmedNonEmptyStringArray(values))];
56
61
  }
@@ -75,21 +80,29 @@ function explicitOnlyReason(args) {
75
80
  function resolveRuntimeToolSurface(args) {
76
81
  const explicitToolNames = uniqueToolNames(args.explicitToolNames ?? []);
77
82
  if (canInjectPrivateDefaults(args)) {
78
- const injectedToolNames = [...DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS];
83
+ const baseInjected = args.injectPrivateDefaults === false ? args.defaultInjectedToolNames ?? DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS : args.defaultInjectedToolNames ?? DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS;
84
+ const injectedToolNames2 = uniqueToolNames([
85
+ ...baseInjected,
86
+ ...args.additionalRequiredToolNames ?? []
87
+ ]);
79
88
  return {
80
89
  explicitToolNames,
81
- injectedToolNames,
90
+ injectedToolNames: injectedToolNames2,
82
91
  finalToolNames: uniqueToolNames([
83
92
  ...explicitToolNames,
84
- ...injectedToolNames
93
+ ...injectedToolNames2
85
94
  ]),
86
95
  auditReason: "private-authenticated-defaults"
87
96
  };
88
97
  }
98
+ const injectedToolNames = uniqueToolNames(args.additionalRequiredToolNames ?? []);
89
99
  return {
90
100
  explicitToolNames,
91
- injectedToolNames: [],
92
- finalToolNames: explicitToolNames,
101
+ injectedToolNames,
102
+ finalToolNames: uniqueToolNames([
103
+ ...explicitToolNames,
104
+ ...injectedToolNames
105
+ ]),
93
106
  auditReason: explicitOnlyReason(args)
94
107
  };
95
108
  }
@@ -116,7 +129,10 @@ function resolveRuntimeToolSurfaceForAgent(args) {
116
129
  agentOwnerId: inferredOwnerId,
117
130
  invocationVisibility: visibility,
118
131
  runtimeHost: args.runtimeHost,
119
- trustedPrivateInvocation: args.trustedPrivateInvocation
132
+ trustedPrivateInvocation: args.trustedPrivateInvocation,
133
+ injectPrivateDefaults: args.injectPrivateDefaults,
134
+ defaultInjectedToolNames: args.defaultInjectedToolNames,
135
+ additionalRequiredToolNames: args.additionalRequiredToolNames
120
136
  });
121
137
  }
122
138
  var SECRET_FIELD_NAMES = [
@@ -146,6 +162,20 @@ function redactAgentRecordForWorkspaceTool(record) {
146
162
  return redacted;
147
163
  }
148
164
 
165
+ // packages/agent-runtime/agentRecordKeys.ts
166
+ function buildAgentRuntimeAgentLookupKeys(args) {
167
+ if (/^agent(-pub)?-/.test(args.agentRef)) {
168
+ return [args.agentRef];
169
+ }
170
+ return [
171
+ ownedAgentKey(args.userId, args.agentRef),
172
+ publicAgentKey(args.agentRef)
173
+ ];
174
+ }
175
+ function shouldFetchAgentRuntimeRecordRemotely(dbKey) {
176
+ return /^agent(-pub)?-/.test(dbKey);
177
+ }
178
+
149
179
  // packages/ai/agent/agentSelectionPriority.ts
150
180
  function parseAgentTimestamp(value) {
151
181
  if (typeof value === "number" && Number.isFinite(value)) return value;
@@ -181,16 +211,26 @@ function compareAgentSelection(left, right) {
181
211
  const rightUpdated = parseAgentTimestamp(right.updatedAt ?? right.createdAt);
182
212
  return rightUpdated - leftUpdated;
183
213
  }
184
- var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E25\u683C\u4E00\u81F4\uFF09\uFF1A
185
- 1. \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08isFavorite=true \u4E14 isOAuth=true \u6216 apiSource="custom"\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF0C\u4E0D\u70E7\u5E73\u53F0 credits\uFF09
186
- 2. \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
187
- 3. \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08isOAuth=true \u6216 apiSource="custom"\uFF09
188
- 4. \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
189
- 5. \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08apiSource="platform" \u6216\u793E\u533A\u516C\u5F00\uFF09
190
- \u540C\u6863\u4F4D\u4E0B\u6536\u85CF\u9879\u6309\u6700\u8FD1\u6536\u85CF\uFF08favoritedAt\uFF09\u4F18\u5148\uFF0C\u5176\u4F59\u6309\u6700\u8FD1\u66F4\u65B0\uFF08updatedAt\uFF09\u4F18\u5148\u3002
191
- - \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u7981\u6B62\u5728\u6536\u85CF Agent \u53EF\u7528\u65F6\u6D3E\u5E73\u53F0\u901A\u9053\u3002\u6536\u85CF\u7684 OAuth/\u81EA\u5B9A\u4E49 Agent \u8D70\u7528\u6237\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\uFF0C\u5373\u4F7F\u662F\u9876\u6863\u6A21\u578B\uFF08Opus\u3001GPT-5.6 \u7EA7\uFF09\u4E5F\u4E0D\u6784\u6210\u6210\u672C\u56DE\u907F\u7406\u7531\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
214
+ var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\u4E24\u9636\u6BB5\u53D1\u73B0\u4E0E\u9009\u4EBA\u5951\u7EA6\uFF08listAgents \u9ED8\u8BA4 scope="preferred"\uFF09\uFF1A
215
+ 1. \u9996\u8F6E\u53D1\u73B0\uFF1A\u9ED8\u8BA4\u8C03\u7528 listAgents()\uFF08\u5373 scope="preferred"\uFF09\uFF0C\u4EC5\u53D1\u73B0\u7528\u6237\u5DF2\u6709\u5173\u7CFB\u7684 preferred Agent\uFF08\u6536\u85CF\u3001\u81EA\u6709\u3001OAuth \u8BA2\u9605\u3001\u81EA\u5B9A\u4E49 API\u3001\u672C\u5730 Agent\uFF09\u3002
216
+ 2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
217
+ 3. \u4F18\u5148\u7EA7\u6392\u5E8F\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E00\u81F4\uFF09\uFF1A
218
+ (1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
219
+ (2) \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
220
+ (3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF09
221
+ (4) \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
222
+ (5) \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08billingSource="platform_credits" \u6216\u793E\u533A\u516C\u5F00\uFF09
223
+ \u540C\u6863\u4F4D\u4E0B\u6536\u85CF\u9879\u6309\u6700\u8FD1\u6536\u85CF\uFF08favoritedAt\uFF09\u4F18\u5148\uFF0C\u5176\u4F59\u6309\u6700\u8FD1\u66F4\u65B0\uFF08updatedAt\uFF09\u4F18\u5148\u3002
224
+ 4. \u516C\u5F00 Agent \u53D1\u73B0\uFF1A\u4EC5\u5F53 preferred \u5217\u8868\u4E2D\u6CA1\u6709\u9002\u5408\u4E14\u53EF\u7528\u7684\u5019\u9009\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u63A2\u7D22\u516C\u5F00 Agent \u65F6\uFF0C\u624D\u663E\u5F0F\u8C03\u7528 listAgents({ scope: "public" })\u3002\u516C\u5F00 Agent \u53EF\u80FD\u6D88\u8017 platform_credits\uFF0C\u5FC5\u987B\u5728\u83B7\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u540E\u624D\u80FD\u8C03\u7528\u3002
225
+ - \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
192
226
  - \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
193
- - 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u4E4B\u4E00\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
227
+ - isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
228
+ - qualityContext \u662F task-domain-specific supporting evidence\uFF1A\u53EA\u5728\u5339\u914D\u7684 task domain \u5185\u3001suitable candidates \u4E2D\uFF0C\u5E76\u4E14\u4ECD\u6392\u5728\u73B0\u6709\u4F18\u5148\u7EA7 / \u6210\u672C / \u53EF\u7528\u6027\u89C4\u5219\u4E4B\u540E\u53C2\u8003\u3002
229
+ \u6BCF\u884C\u5F62\u5982 \`dimension [direction] (benchmark version): model=score\`\u3002\u6BCF\u4E2A dimension\uFF08preference / rubric / slop / repetition / length / task_success \u7B49\uFF09\u90FD\u662F\u4E00\u6761\u72EC\u7ACB evidence\uFF0C\u4E0D\u662F\u603B\u5206\u7684\u4E00\u90E8\u5206\u3002
230
+ direction \u53EA\u662F\u6307\u6807\u65B9\u5411\uFF1Ahigher_better \u8D8A\u9AD8\u8D8A\u597D\uFF0Clower_better \u8D8A\u4F4E\u8D8A\u597D\uFF0Cneutral \u53EA\u63CF\u8FF0\u884C\u4E3A\u7279\u5F81\uFF08\u5982\u8F93\u51FA\u957F\u5EA6\uFF09\uFF0C\u4E0D\u4EE3\u8868\u4F18\u52A3\u3002
231
+ \u7981\u6B62\u628A\u4E0D\u540C dimension \u76F8\u52A0 / \u5E73\u5747 / \u5F52\u4E00\u5316\uFF0C\u6216\u751F\u6210 overall score / winner / rank\uFF1B\u7981\u6B62\u8DE8 benchmark identity \u6BD4\u8F83 raw score\uFF1B\u540C\u4E00 dimension \u5185\u53EA\u6BD4\u8F83\u540C\u4E00\u884C\u7684\u540C\u7C7B benchmark evidence\u3002
232
+ \u672A\u5217\u51FA\u7684 model \u6216 dimension \u8868\u793A\u6CA1\u6709 curated evidence\uFF1A\u4E0D\u662F 0\uFF0C\u4E5F\u4E0D\u662F\u8F83\u5F31\u3002\u54EA\u4E9B dimension \u66F4\u91CD\u8981\u7531\u5F53\u524D\u4EFB\u52A1\u51B3\u5B9A\uFF0C\u4E0D\u8981\u5199\u6B7B\u6743\u91CD\u3002
233
+ - 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
194
234
 
195
235
  // packages/agent-runtime/noloWorkspaceTools.ts
196
236
  var NOLO_WORKSPACE_TOOL_NAMES = [
@@ -273,10 +313,12 @@ function buildNoloWorkspaceOpenAiTools(args) {
273
313
  description: "Confirmed dialog ids or dbKeys to delete."
274
314
  }
275
315
  }, ["query"]);
276
- add("listAgents", "List the current user's agents with runnable agentKey for delegation. Copy the agentKey verbatim; do not infer it from the display name. Agents currently rate-limited (429) are hidden by default and summarized in `unavailableAgents` with `unavailableCount`; pass showUnavailable: true to include them in `agents`.", {
277
- space: stringToolParam("Optional space id or URL."),
278
- publicOnly: { type: "boolean", description: "Only show public agents." },
279
- showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." }
316
+ add("listAgents", "List agents for delegation. Default scope='preferred' returns the user's favorites, owned, OAuth, custom API, and local agents only; scope='public' discovers shared/marketplace agents; scope='all' returns their deduplicated union. Public agents may consume platform credits. Copy the agentKey verbatim; use the runnable agentKey exactly and do not infer it from the display name. publicOnly is deprecated compatibility for scope='public'. Rate-limited agents are hidden unless showUnavailable is true.", {
317
+ scope: { type: "string", enum: ["preferred", "public", "all"], description: "Discovery scope; preferred is the default and does not load the public marketplace." },
318
+ publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
319
+ showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." },
320
+ verbose: { type: "boolean", description: "Return full safe-summary details when supported." },
321
+ space: stringToolParam("Optional space id or URL.")
280
322
  });
281
323
  add("readAgent", "Read one agent's full config by exact agentKey returned by listAgents (agent-<userId>-<id> or agent-pub-<id>); do not use the display name.", {
282
324
  agent: stringToolParam("Exact agentKey from listAgents (preferred; copy verbatim; plain id or URL are compatibility fallbacks).")
@@ -600,7 +642,11 @@ function buildNoloWorkspaceCommandArgs(call) {
600
642
  const cliArgs = ["agent", "list"];
601
643
  const space = noloStringArg(args.space);
602
644
  if (space) cliArgs.push("--space", space);
645
+ const scope = noloStringArg(args.scope);
646
+ if (scope) cliArgs.push("--scope", scope);
603
647
  if (args.publicOnly === true) cliArgs.push("--public-only");
648
+ if (args.showUnavailable === true) cliArgs.push("--show-unavailable");
649
+ if (args.verbose === true) cliArgs.push("--verbose");
604
650
  cliArgs.push("--json", "--safe");
605
651
  return cliArgs;
606
652
  }
@@ -666,12 +712,13 @@ function buildNoloWorkspaceCommandArgs(call) {
666
712
  }
667
713
 
668
714
  export {
715
+ applyToolSurfaceConstraints,
716
+ resolveRuntimeToolSurfaceForAgent,
717
+ redactAgentRecordForWorkspaceTool,
669
718
  compareAgentSelection,
670
719
  AGENT_SELECTION_PRIORITY_INSTRUCTIONS,
671
720
  buildAgentRuntimeAgentLookupKeys,
672
721
  shouldFetchAgentRuntimeRecordRemotely,
673
- resolveRuntimeToolSurfaceForAgent,
674
- redactAgentRecordForWorkspaceTool,
675
722
  NOLO_WORKSPACE_TOOL_NAMES,
676
723
  buildNoloWorkspaceOpenAiTools,
677
724
  noloPositiveIntegerString,
@@ -4,12 +4,14 @@ import {
4
4
  import {
5
5
  patch,
6
6
  read
7
- } from "./chunk-7NYDJAQ7.js";
7
+ } from "./chunk-DNNSCSA2.js";
8
8
  import {
9
9
  DEVICE_LOCAL_OWNER_ID,
10
- isDeviceLocalSpaceBody,
10
+ isDeviceLocalSpaceBody
11
+ } from "./chunk-KWSQR2KK.js";
12
+ import {
11
13
  selectIdentityUserId
12
- } from "./chunk-XOJRZUPF.js";
14
+ } from "./chunk-SEJ5OS6F.js";
13
15
 
14
16
  // packages/create/space/utils/permissions.ts
15
17
  var checkSpaceMembership = (spaceData, userId) => {
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // packages/cli/agentCommandSupport.ts
6
6
  async function getDefaultCliDb() {
7
- const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-PF7CFKDL.js");
7
+ const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-P37ZTX55.js");
8
8
  return getDefaultCliLocalRuntimeDb();
9
9
  }
10
10
  function createNullCliDb() {
@@ -0,0 +1,49 @@
1
+ // packages/identity/sessionSource.ts
2
+ var IDENTITY_SESSION_READER = Symbol.for(
3
+ "nolo.identity.sessionReader"
4
+ );
5
+ var moduleFallbackReader = null;
6
+ function getBoundSessionSnapshot() {
7
+ return moduleFallbackReader?.() ?? null;
8
+ }
9
+ function getSessionSnapshotForState(state) {
10
+ const reader = state?.[IDENTITY_SESSION_READER];
11
+ if (typeof reader === "function") {
12
+ return reader();
13
+ }
14
+ return getBoundSessionSnapshot();
15
+ }
16
+
17
+ // packages/identity/selectors.local.ts
18
+ var LOCAL_USER_ID = (typeof process !== "undefined" ? process.env?.NOLO_LOCAL_USER_ID : void 0) || (typeof process !== "undefined" ? process.env?.NOLO_USER_ID : void 0) || "local";
19
+ var LOCAL_USER = {
20
+ userId: LOCAL_USER_ID,
21
+ username: "Local User"
22
+ };
23
+ var selectIdentityUserId = (state) => {
24
+ const snapshot = getSessionSnapshotForState(state);
25
+ if (snapshot) return snapshot.activeAccountId ?? void 0;
26
+ return LOCAL_USER_ID;
27
+ };
28
+ var selectIdentityToken = (state) => {
29
+ return getSessionSnapshotForState(state)?.activeToken ?? void 0;
30
+ };
31
+ var selectIdentityUser = (state) => {
32
+ const snapshot = getSessionSnapshotForState(state);
33
+ if (snapshot) {
34
+ const active = snapshot.accounts.find(
35
+ (account) => account.userId === snapshot.activeAccountId
36
+ );
37
+ return active ?? null;
38
+ }
39
+ return LOCAL_USER;
40
+ };
41
+ var selectIdentityUserBalance = (state) => void 0;
42
+
43
+ export {
44
+ getSessionSnapshotForState,
45
+ selectIdentityUserId,
46
+ selectIdentityToken,
47
+ selectIdentityUser,
48
+ selectIdentityUserBalance
49
+ };
@@ -1,16 +1,19 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-5FCIPEKT.js";
4
+ } from "./chunk-Z5MHFBJZ.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-TR4DXUYX.js";
7
+ } from "./chunk-CQ2OZMLQ.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-EJE33XNR.js";
10
+ } from "./chunk-KSCXMC6U.js";
11
+ import {
12
+ applyToolSurfaceConstraints
13
+ } from "./chunk-RJ2SAFB5.js";
11
14
  import {
12
15
  resolveLocalRuntimeEnvFromPolicy
13
- } from "./chunk-CS6TCJ7E.js";
16
+ } from "./chunk-3JQ2NRYU.js";
14
17
  import {
15
18
  toErrorMessage
16
19
  } from "./chunk-HNMXYYJR.js";
@@ -431,12 +434,21 @@ async function defaultRunConnectorLocalRuntimeAgent(args) {
431
434
  const agentConfigRaw = readField(payload, "agentConfig");
432
435
  const payloadAgentConfig = asRecordOrEmpty(agentConfigRaw);
433
436
  const policy = runtimePolicyFromConnectorPayload(args.parsed);
434
- const toolNames = mergeToolNames(
437
+ const candidateToolNames = mergeToolNames(
435
438
  readField(payloadAgentConfig, "toolNames"),
436
439
  readField(payloadAgentConfig, "tools"),
437
440
  policy?.agentTools,
438
441
  policy?.runtimeTools
439
442
  );
443
+ const runtimeContext = asRecordOrEmpty(readField(payload, "runtimeContext"));
444
+ const constrainedSurface = applyToolSurfaceConstraints(
445
+ { explicitToolNames: candidateToolNames, injectedToolNames: [], finalToolNames: candidateToolNames },
446
+ {
447
+ allowedToolNames: Array.isArray(readField(runtimeContext, "allowedToolNames")) ? readField(runtimeContext, "allowedToolNames") : void 0,
448
+ blockedToolNames: Array.isArray(readField(runtimeContext, "blockedToolNames")) ? readField(runtimeContext, "blockedToolNames") : void 0
449
+ }
450
+ );
451
+ const toolNames = constrainedSurface.finalToolNames;
440
452
  const apiSourceRaw = readField(payloadAgentConfig, "apiSource");
441
453
  const providerRaw = readField(payloadAgentConfig, "provider");
442
454
  const agentRecord = {
@@ -447,6 +459,7 @@ async function defaultRunConnectorLocalRuntimeAgent(args) {
447
459
  apiSource: typeof apiSourceRaw === "string" ? apiSourceRaw : "platform",
448
460
  provider: typeof providerRaw === "string" ? providerRaw : typeof apiSourceRaw === "string" ? apiSourceRaw : "openai",
449
461
  toolNames,
462
+ runScopedToolSurface: constrainedSurface,
450
463
  ...policy ? { runtimeToolPolicy: policy } : {}
451
464
  };
452
465
  const dispatchUserId = String(args.runtimeEnv.NOLO_USER_ID || "local");
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-XOJRZUPF.js";
4
+ } from "./chunk-KWSQR2KK.js";
5
5
  import {
6
6
  fetchFromClientDb
7
7
  } from "./chunk-QOKAKDPE.js";
8
+ import {
9
+ selectIdentityToken
10
+ } from "./chunk-SEJ5OS6F.js";
8
11
  import {
9
12
  buildTombstoneRecord
10
13
  } from "./chunk-GBRG75BQ.js";
@@ -191,7 +194,7 @@ var removeAction = async (payload, thunkApi) => {
191
194
  preferredServerOrigin,
192
195
  currentServer,
193
196
  syncServers,
194
- hasToken: Boolean(state?.auth?.currentToken)
197
+ hasToken: Boolean(selectIdentityToken(state))
195
198
  });
196
199
  const localData = await fetchFromClientDb(clientDb, dbKey);
197
200
  const hadLocalData = Boolean(localData);
@@ -10,8 +10,6 @@ import {
10
10
  var CURRENT_OPERATOR_USER_ID = "0e95801d90";
11
11
  var NOLO_DEFAULT_AGENT_ID = "01NOLOAPPBLD000000019KCKT0";
12
12
  var NOLO_DEFAULT_AGENT_KEY = publicAgentKey(NOLO_DEFAULT_AGENT_ID);
13
- var NOLO_PROJECT_MANAGER_AGENT_ID = "01NOLOPROJMGR00000000MSVGG";
14
- var NOLO_PROJECT_MANAGER_AGENT_KEY = ownedAgentKey(CURRENT_OPERATOR_USER_ID, NOLO_PROJECT_MANAGER_AGENT_ID);
15
13
  var NOLO_FRONTEND_AGENT_ID = "01FRONTENDAG0000000115N4E1";
16
14
  var NOLO_FRONTEND_AGENT_KEY = ownedAgentKey(CURRENT_OPERATOR_USER_ID, NOLO_FRONTEND_AGENT_ID);
17
15
  var LOCAL_CODEX_AGENT_ID = "01LOCALCODEXCLI000000NEW";
@@ -27,8 +25,6 @@ var AGENT_ALIAS_TO_KEY = {
27
25
  "frontend agent": NOLO_FRONTEND_AGENT_KEY,
28
26
  "\u524D\u7AEFagent": NOLO_FRONTEND_AGENT_KEY,
29
27
  "\u524D\u7AEF agent": NOLO_FRONTEND_AGENT_KEY,
30
- "project-manager": NOLO_PROJECT_MANAGER_AGENT_KEY,
31
- pm: NOLO_PROJECT_MANAGER_AGENT_KEY,
32
28
  // Explicit local CLI agents. These are ordinary private agent records that
33
29
  // run through the current computer local runtime when unbound.
34
30
  "local-codex": LOCAL_CODEX_AGENT_KEY,
@@ -55,7 +51,6 @@ function isLocalCliAgentKey(agentKey) {
55
51
  export {
56
52
  NOLO_DEFAULT_AGENT_ID,
57
53
  NOLO_DEFAULT_AGENT_KEY,
58
- NOLO_PROJECT_MANAGER_AGENT_KEY,
59
54
  LOCAL_CODEX_AGENT_ID,
60
55
  LOCAL_CODEX_AGENT_KEY,
61
56
  resolveCliAgentKeyInput,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  i18n_default,
3
3
  toolRegistry
4
- } from "./chunk-TR4DXUYX.js";
4
+ } from "./chunk-CQ2OZMLQ.js";
5
5
  import {
6
6
  canonicalizeToolNames
7
7
  } from "./chunk-O6OSWFZQ.js";
8
8
  import {
9
9
  isNoloHostedProvider
10
- } from "./chunk-HPW5MNDQ.js";
10
+ } from "./chunk-22BTGNSP.js";
11
11
  import {
12
12
  asTrimmedLowercaseString
13
13
  } from "./chunk-QSJ3HFEF.js";