nolo-cli 0.168.0-alpha.2 → 0.169.0-alpha.2

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 (80) hide show
  1. package/{_executeModel-AY53O33B.js → _executeModel-7J6IIHWQ.js} +13 -13
  2. package/{agentDeleteCommand-4HOAILRY.js → agentDeleteCommand-F66NIWCF.js} +15 -15
  3. package/{agentEmailCommands-PYNUCXDD.js → agentEmailCommands-M4SHODDA.js} +17 -17
  4. package/{agentGrantCommands-5DPHYEKP.js → agentGrantCommands-LPVAJ6KR.js} +1 -1
  5. package/{agentListCommands-TLM2Z5YA.js → agentListCommands-4BBFWXHX.js} +7 -7
  6. package/{agentMachineCommands-U4EJNIZ3.js → agentMachineCommands-R55P5SZY.js} +5 -5
  7. package/{agentProviderCommands-CXBHNONN.js → agentProviderCommands-4USYTCL3.js} +1 -1
  8. package/{agentPullCommand-GXXEDOSA.js → agentPullCommand-UXXV5KKW.js} +1 -1
  9. package/{agentRecordCommands-TBIANIZL.js → agentRecordCommands-PDWACZFR.js} +16 -16
  10. package/{agentRunCommand-73EXLR7O.js → agentRunCommand-U2F74LTS.js} +16 -16
  11. package/{agentRunControl-QWFFIAQY.js → agentRunControl-EI3BGJFM.js} +4 -2
  12. package/{agentRuntimeLocal-YDRO43VQ.js → agentRuntimeLocal-7EZYBR6X.js} +2 -2
  13. package/{agentSlice-ZU6XEZND.js → agentSlice-UN7ZHCAM.js} +1 -1
  14. package/{appDeleteCommands-UKXZ4AW6.js → appDeleteCommands-WS3UFMCB.js} +6 -6
  15. package/{appDeployCommands-X5TKB23X.js → appDeployCommands-W5B7I73P.js} +6 -6
  16. package/{appDeployStatusCommands-N4RRXIOF.js → appDeployStatusCommands-UEHNV2GU.js} +6 -6
  17. package/{appGetCommands-RTXNFQNZ.js → appGetCommands-XJOBVREN.js} +6 -6
  18. package/{appListCommands-FX2YMHZU.js → appListCommands-BISQV6BQ.js} +6 -6
  19. package/{authCommand-OVBMDPIF.js → authCommand-H35CPF25.js} +2 -2
  20. package/{authCommands-QOCKVPX3.js → authCommands-BKDT4ZYB.js} +2 -2
  21. package/{chromeOpsCommands-GZVVK7HU.js → chromeOpsCommands-6JHNTKXU.js} +1 -1
  22. package/{chunk-HL5KVGSL.js → chunk-2AZSL4GL.js} +2 -2
  23. package/{chunk-JICBK5VC.js → chunk-2DXGW4UO.js} +1 -1
  24. package/{chunk-N3XCSZOY.js → chunk-3ELX6JK5.js} +3 -3
  25. package/{chunk-6NAYN42Q.js → chunk-3USFOET4.js} +2 -2
  26. package/{chunk-CFHDJJBA.js → chunk-45IOFLGH.js} +5 -5
  27. package/{chunk-FK55VK7X.js → chunk-46OQD3AP.js} +2 -2
  28. package/{chunk-4TIZP7PG.js → chunk-7VWWGKEQ.js} +2 -2
  29. package/{chunk-IRC2AHEV.js → chunk-CEQFVBI2.js} +2 -2
  30. package/{chunk-T6CYTRP4.js → chunk-CMRP4XHV.js} +8 -8
  31. package/{chunk-XFTJICLD.js → chunk-DHNQA4VI.js} +1 -1
  32. package/{chunk-KU5TYLY3.js → chunk-FQU23S3P.js} +7 -7
  33. package/{chunk-6M2XWWM3.js → chunk-HZMWJUSD.js} +2 -2
  34. package/{chunk-5DJOZ3FN.js → chunk-IMMA7QFE.js} +3 -3
  35. package/{chunk-YOKJE6RU.js → chunk-IOFLVIKF.js} +2 -2
  36. package/{chunk-N6EMFRPR.js → chunk-KJETBEEN.js} +1 -1
  37. package/{chunk-CR2YHS2G.js → chunk-LEZLJTQ4.js} +1 -1
  38. package/{chunk-6M5BXJK5.js → chunk-O2AY3CVI.js} +13 -11
  39. package/{chunk-TQYYH5UI.js → chunk-QW6SSF7V.js} +8 -8
  40. package/{chunk-DLV3H464.js → chunk-RV4DPEAM.js} +1 -1
  41. package/{chunk-KYFGIHVF.js → chunk-TOUKACDK.js} +35 -19
  42. package/{chunk-IW64YHXL.js → chunk-TWJYVVUB.js} +1 -1
  43. package/{chunk-DWMLT22B.js → chunk-URO44BCD.js} +1 -1
  44. package/{chunk-LPO6AMQU.js → chunk-URW5UM6Y.js} +85 -23
  45. package/{chunk-A7GB5UGH.js → chunk-WACI5I6V.js} +1 -1
  46. package/{chunk-2BWYN4N6.js → chunk-WC7UXON2.js} +10 -10
  47. package/{chunk-NH7672YN.js → chunk-WLPUUBFR.js} +2 -2
  48. package/{chunk-7NBDLDX2.js → chunk-WVREKHHJ.js} +5 -5
  49. package/{chunk-RG5K3ULI.js → chunk-XLBQQ5SB.js} +3 -3
  50. package/{chunk-PBCVKRGH.js → chunk-XLQFVHNX.js} +2 -2
  51. package/{chunk-U4STABYN.js → chunk-YGILMZ7N.js} +1 -1
  52. package/{chunk-D52O6RA6.js → chunk-Z6HR75HX.js} +4 -4
  53. package/{cliEnvHelpers-ZXNMX7VV.js → cliEnvHelpers-BVYTMUPJ.js} +1 -1
  54. package/{commandRegistry-IKUZMWAN.js → commandRegistry-3XBG7JHS.js} +72 -72
  55. package/{contentThunks-VAPJZ75B.js → contentThunks-OO3MJAED.js} +3 -3
  56. package/{createAgentAutomationAction-4GXJYWCX.js → createAgentAutomationAction-F3O6FJ5W.js} +3 -3
  57. package/{createDialogAction-I73INVXI.js → createDialogAction-UBQKDUK5.js} +4 -4
  58. package/{createPageAction-2UXGWGNB.js → createPageAction-RDEDO4GF.js} +3 -3
  59. package/{dialogCommands-T6E3ZC6W.js → dialogCommands-P5HSDZ7T.js} +7 -7
  60. package/{dialogSlice-AGUU6TEF.js → dialogSlice-WZCWWYR3.js} +2 -2
  61. package/{docCreateCommands-PB5O2AHR.js → docCreateCommands-B2M3MGX7.js} +5 -5
  62. package/{docDeleteCommands-RPW7WC2I.js → docDeleteCommands-NHCUX4XL.js} +6 -6
  63. package/{docReadCommands-IXHQDBDY.js → docReadCommands-FOLST4JD.js} +5 -5
  64. package/{docStore-W72REPIB.js → docStore-PTSCGC6T.js} +1 -1
  65. package/{docUpdateCommands-FFY6APSV.js → docUpdateCommands-YZT2PQP2.js} +5 -5
  66. package/{handleSendMessageAction-3OHYCSFM.js → handleSendMessageAction-3YMQS6XO.js} +7 -7
  67. package/index.js +5 -5
  68. package/{localRuntimeAdapter-UYVJ5AJT.js → localRuntimeAdapter-ZIAOTUBE.js} +13 -13
  69. package/{machineCommands-VPLS3SWV.js → machineCommands-3LSEP24P.js} +14 -14
  70. package/{machineWsRunDispatch-YVELU5LS.js → machineWsRunDispatch-7A3TSH4Q.js} +14 -14
  71. package/{memoryCommands-ZS3VQJAL.js → memoryCommands-YLT3ADGQ.js} +1 -1
  72. package/package.json +1 -1
  73. package/{readlineWorkspace-Q5BPFMSC.js → readlineWorkspace-OFBP6OA7.js} +22 -22
  74. package/{runAgentClientLoop-N2B2CN2W.js → runAgentClientLoop-F6EQK26A.js} +11 -11
  75. package/{runtimeDoctorCommands-MMCP4B4U.js → runtimeDoctorCommands-LYMJEM4F.js} +1 -1
  76. package/{spaceCommands-X5ITNKLC.js → spaceCommands-XESXH5CW.js} +5 -5
  77. package/{streamAgentChatTurn-C7QTXNPY.js → streamAgentChatTurn-KXELVHFR.js} +13 -13
  78. package/{tools-5RNURQPU.js → tools-FMNDEVTZ.js} +7 -7
  79. package/{updateCommands-FJHGWD3Q.js → updateCommands-C56QMWHF.js} +2 -2
  80. package/{updateDialogTitleAction-TOSX6Q4L.js → updateDialogTitleAction-65R3Y22L.js} +3 -3
@@ -9,7 +9,7 @@ import {
9
9
  resolveRawAgentInput,
10
10
  resolveServerUrl,
11
11
  writeUsage
12
- } from "./chunk-XFTJICLD.js";
12
+ } from "./chunk-DHNQA4VI.js";
13
13
  import {
14
14
  getReadableCliDb
15
15
  } from "./chunk-62TBKWTV.js";
@@ -31,7 +31,7 @@ import {
31
31
  resolveFileWriteGateEnabled,
32
32
  resolveLocalUserId,
33
33
  validateInstaboxWorkspaceSelection
34
- } from "./chunk-2BWYN4N6.js";
34
+ } from "./chunk-WC7UXON2.js";
35
35
  import {
36
36
  clearCredentialAvailability,
37
37
  readEffectiveCredentialEntry,
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  readDbRecord,
66
66
  resolveAgentRecordFromHybridStore
67
- } from "./chunk-N6EMFRPR.js";
67
+ } from "./chunk-KJETBEEN.js";
68
68
  import {
69
69
  isLocalCliAgentKey
70
70
  } from "./chunk-NBTY7YJF.js";
@@ -79,14 +79,14 @@ import {
79
79
  } from "./chunk-BMQ2MJUK.js";
80
80
  import {
81
81
  resolveCliLocalRuntimeKeyCapability
82
- } from "./chunk-TQYYH5UI.js";
82
+ } from "./chunk-QW6SSF7V.js";
83
83
  import {
84
84
  isTransientFetchError
85
85
  } from "./chunk-KFHREHUQ.js";
86
86
  import {
87
87
  parseUiCard,
88
88
  uiCardFallback
89
- } from "./chunk-NH7672YN.js";
89
+ } from "./chunk-WLPUUBFR.js";
90
90
  import {
91
91
  isGatewayHttpStatus
92
92
  } from "./chunk-NF64D32W.js";
@@ -95,7 +95,7 @@ import {
95
95
  chooseMemoryOwners,
96
96
  loadMemoryCandidatesFromDb,
97
97
  resolveAgentMemoryPolicy
98
- } from "./chunk-FK55VK7X.js";
98
+ } from "./chunk-46OQD3AP.js";
99
99
  import {
100
100
  API_REPORTED_COST_MULTIPLIER,
101
101
  estimateMessagesTokens,
@@ -103,7 +103,7 @@ import {
103
103
  resolveAgentContextWindow,
104
104
  resolveOccupancy,
105
105
  resolveOccupancyWindow
106
- } from "./chunk-T6CYTRP4.js";
106
+ } from "./chunk-CMRP4XHV.js";
107
107
  import {
108
108
  buildSkillDiscoveryContextLayer
109
109
  } from "./chunk-AU7AXHUL.js";
@@ -115,7 +115,7 @@ import {
115
115
  LOCAL_AGENT_CONFIG_MISSING_CODE,
116
116
  LOCAL_TURN_ABORTED_CODE,
117
117
  readActionGate
118
- } from "./chunk-JICBK5VC.js";
118
+ } from "./chunk-2DXGW4UO.js";
119
119
  import {
120
120
  resolveAgentRuntimeConfigFromRecord
121
121
  } from "./chunk-CEXJ6Y3C.js";
@@ -182,13 +182,14 @@ import {
182
182
  popSingleQueueMessage,
183
183
  readRunRecord,
184
184
  recordRunResultHeaderMeta,
185
+ reportRunProcessIdentity,
185
186
  resolveResultServerMeta,
186
187
  resolveRunQueuePath,
187
188
  resolveRunsDir,
188
189
  serverOriginForDialog,
189
190
  settleRunTerminalAuthoritatively,
190
191
  spawnLocalBackgroundRun
191
- } from "./chunk-LPO6AMQU.js";
192
+ } from "./chunk-URW5UM6Y.js";
192
193
  import {
193
194
  formatAgentListCard,
194
195
  formatFinishedRunCard,
@@ -213,7 +214,7 @@ import {
213
214
  } from "./chunk-EYLGAEB4.js";
214
215
  import {
215
216
  resolveAuthToken
216
- } from "./chunk-A7GB5UGH.js";
217
+ } from "./chunk-WACI5I6V.js";
217
218
  import {
218
219
  readPipeText,
219
220
  spawnProcess
@@ -11373,7 +11374,7 @@ function isBalanceExhaustedError(error) {
11373
11374
 
11374
11375
  // packages/cli/client/agentRun.ts
11375
11376
  async function loadRunLocalAgentTurn() {
11376
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-YDRO43VQ.js");
11377
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-7EZYBR6X.js");
11377
11378
  return runLocalAgentTurn;
11378
11379
  }
11379
11380
  var stripDebugNoise = (s) => s.replace(/\s*raw="[\s\S]*"/g, "").replace(/\s*raw=\S+/g, "").replace(/\s*headers=\[[^\]]*\]/g, "").replace(/\s*headers=\S+/g, "").trim();
@@ -15600,6 +15601,7 @@ async function runAgentRunCommand(args, deps) {
15600
15601
  const nowMs = () => deps.now ? deps.now().getTime() : Date.now();
15601
15602
  const childRunId = env.NOLO_AGENT_RUN_ID;
15602
15603
  const hasRegistry = typeof childRunId === "string" && childRunId.length > 0;
15604
+ if (hasRegistry) reportRunProcessIdentity(childRunId, { env, homedir: deps.homedir, fs: deps.fs, now: deps.now });
15603
15605
  const processExit = deps.processExit ?? ((code) => process.exit(code));
15604
15606
  const stallTimeoutMs = resolvePositiveMs(
15605
15607
  deps.stallTimeoutMs ?? env.NOLO_LOCAL_RUN_STALL_TIMEOUT_MS,
@@ -20,7 +20,7 @@ import {
20
20
  toolRunUpdated,
21
21
  uiCardFallback,
22
22
  waitForAbortableDelay
23
- } from "./chunk-NH7672YN.js";
23
+ } from "./chunk-WLPUUBFR.js";
24
24
  import {
25
25
  isGatewayHttpStatus
26
26
  } from "./chunk-NF64D32W.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-VF4K2QE6.js";
65
65
  import {
66
66
  createDocState
67
- } from "./chunk-6M2XWWM3.js";
67
+ } from "./chunk-HZMWJUSD.js";
68
68
  import {
69
69
  addMemberSpace,
70
70
  fetchAuthoritativeRemoteSpace,
@@ -79,7 +79,7 @@ import {
79
79
  } from "./chunk-BAWAKW7X.js";
80
80
  import {
81
81
  createDialogAction
82
- } from "./chunk-FK55VK7X.js";
82
+ } from "./chunk-46OQD3AP.js";
83
83
  import {
84
84
  setDialogExtraReferencesAction
85
85
  } from "./chunk-IF7V3CBU.js";
@@ -102,7 +102,7 @@ import {
102
102
  updateContentCategory,
103
103
  updateContentTitle,
104
104
  writeStoredCollapsedCategories
105
- } from "./chunk-DWMLT22B.js";
105
+ } from "./chunk-URO44BCD.js";
106
106
  import {
107
107
  buildDatabaseFileContentUrl,
108
108
  deleteDialog,
@@ -115,7 +115,7 @@ import {
115
115
  selectMsgById,
116
116
  uiAskChoiceFunc,
117
117
  uiAskChoiceFunctionSchema
118
- } from "./chunk-T6CYTRP4.js";
118
+ } from "./chunk-CMRP4XHV.js";
119
119
  import {
120
120
  buildMediaToolConfirmation,
121
121
  normalizeMediaConfirmExecutionRevision
@@ -126,7 +126,7 @@ import {
126
126
  runLlm,
127
127
  streamAgentChatTurn,
128
128
  updateAgent
129
- } from "./chunk-RG5K3ULI.js";
129
+ } from "./chunk-XLBQQ5SB.js";
130
130
  import {
131
131
  getCurrentSpaceId,
132
132
  getCurrentSpaceIdRaw,
@@ -3882,7 +3882,7 @@ async function deleteDialogsFunc(args, thunkApi) {
3882
3882
  const deletedDialogIds = [];
3883
3883
  const deletedDialogKeys = [];
3884
3884
  const failures = [];
3885
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-AGUU6TEF.js");
3885
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-WZCWWYR3.js");
3886
3886
  for (const target of targets) {
3887
3887
  try {
3888
3888
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -18563,7 +18563,7 @@ async function updateDocFunc(args, thunkApi) {
18563
18563
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18564
18564
  };
18565
18565
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18566
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-W72REPIB.js");
18566
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-PTSCGC6T.js");
18567
18567
  if (getDocState().pageKey === id) {
18568
18568
  applyExternalDocUpdate({
18569
18569
  slateData: finalSlateData,
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-FDLDMJTM.js";
20
20
  import {
21
21
  resolveAuthTokenFromEnv
22
- } from "./chunk-A7GB5UGH.js";
22
+ } from "./chunk-WACI5I6V.js";
23
23
  import {
24
24
  DEFAULT_NOLO_SERVER_URL
25
25
  } from "./chunk-OLZBQWZU.js";
@@ -475,26 +475,42 @@ var AGENT_CONFIRM_BOUNDARY = `--- \u786E\u8BA4\u8FB9\u754C ---
475
475
  - \u6D89\u53CA\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF08\u4FEE\u6539\u6587\u4EF6\u3001\u5220\u9664\u6570\u636E\u3001\u53D1\u9001\u6D88\u606F\u3001\u751F\u6210\u6B63\u5F0F\u6587\u4EF6\u3001\u6267\u884C\u4EA4\u6613\uFF09\u6216\u9AD8\u6210\u672C\u52A8\u4F5C\uFF08\u5927\u89C4\u6A21\u91CD\u6784/\u957F\u65F6\u8FD0\u884C/\u5927\u91CF token\uFF09\u65F6\uFF0C\u4F18\u5148\u9884\u89C8\u6216\u5411\u7528\u6237\u786E\u8BA4\uFF1B\u5DE5\u5177\u8FD4\u56DE"\u9884\u89C8/\u5F85\u786E\u8BA4"\u65F6\u6682\u505C\uFF0C\u7B49\u660E\u786E\u786E\u8BA4\u518D\u7EE7\u7EED\uFF0C\u672A\u786E\u8BA4\u524D\u4E0D\u8FDE\u7EED\u53D1\u591A\u6B21\u7834\u574F\u6027\u4FEE\u6539\u3002
476
476
  - \u6536\u5230\u300C\u5B50\u5BF9\u8BDD\u7981\u6B62\u518D\u521B\u5EFA\u5B59\u5BF9\u8BDD\u300D\uFF1D\u4F60\u5DF2\u662F\u5B50\u5BF9\u8BDD\uFF0C\u7981\u6B62\u518D\u6D3E\u53D1\uFF0C\u628A\u7ED3\u679C\u8FD4\u56DE\u7236\u5BF9\u8BDD\u5373\u53EF\u3002
477
477
  - **\u76EE\u6807\u8303\u56F4\u63A7\u5236**\uFF1A\u53D1\u73B0\u539F\u4EA4\u4ED8\u7269\u4E0D\u80FD\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u81EA\u884C\u7F29\u6210\u6587\u6848/\u624B\u52A8\u9000\u8DEF\u540E\u5BA3\u79F0\u5B8C\u6210\uFF1B\u9648\u8FF0\u5DF2\u8BC1\u5B9E\u9650\u5236\u3001\u539F\u76EE\u6807\u5DEE\u8DDD\u3001\u63A8\u8350\u66FF\u4EE3\u53CA\u5F71\u54CD\uFF0C\u7F29\u51CF\u7528\u6237\u53EF\u89C1\u80FD\u529B\u9700\u660E\u786E\u786E\u8BA4\uFF1B\u540C\u8303\u56F4\u6280\u672F\u7EC6\u8282\u4E0D\u9700\u95EE\uFF0C\u5DF2\u6388\u6743\u4E0D\u53D8\u8303\u56F4\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u9632\u53D8\u6210\u4E8B\u4E8B\u786E\u8BA4\u3002`;
478
- var AGENT_COLLABORATION_INSTRUCTIONS = [
479
- AGENT_COLLABORATION_VALUE_AND_METHOD,
480
- AGENT_DELEGATE_FIRST_DEFAULT,
481
- AGENT_PLATFORM_CREDITS_GATE,
482
- AGENT_DISPATCH_PRECHECK,
483
- AGENT_COLLABORATION_FULL_PROTOCOL,
484
- AGENT_COMMIT_REVIEW_GATE,
485
- AGENT_CONFIRM_BOUNDARY
486
- ].join("\n\n");
487
- var AGENT_COLLABORATION_MIN_INSTRUCTIONS = [
488
- `--- \u591A Agent \u6D3E\u53D1\uFF08\u6700\u5C0F\u534F\u8BAE\uFF09 ---
478
+ var AGENT_COLLABORATION_MIN_DISPATCH = `--- \u591A Agent \u6D3E\u53D1\uFF08\u6700\u5C0F\u534F\u8BAE\uFF09 ---
489
479
  - startAgentRun \u542F\u52A8\u5B50 Agent\uFF1A\u7701\u7565 agentKey\uFF08\u6216\u4F20 'self'\uFF09\u81EA\u52A8\u6D3E\u53D1\u81EA\u8EAB\u6267\u884C\u7EC6\u5206\u5B50\u4EFB\u52A1\uFF1B\u6D3E\u5176\u4ED6 Agent \u65F6 agentKey \u5FC5\u987B\u539F\u6837\u7167\u6284 listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF09\uFF1Bwait:false\uFF08\u9ED8\u8BA4\uFF09\u5F02\u6B65\u8FD4\u56DE runId\uFF0C\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\u7B49\u7EC8\u6001\u901A\u77E5\uFF0C\u7981\u6B62\u8F6E\u8BE2\uFF1B\u5E76\u884C\u6D3E\u53D1\u7528\u540C\u4E00 batchId \u5F52\u7EC4\u3002
490
480
  - \u5E76\u884C\u6247\u51FA\uFF1A\u540C\u4E00\u51ED\u8BC1\u9ED8\u8BA4\u5141\u8BB8\u5E76\u53D1\uFF08\u53D7\u670D\u52A1\u7AEF\u51C6\u5165\u9884\u7B97\u7EA6\u675F\uFF1B\u6CE8\u610F\u4E0A\u6E38 429 \u9650\u6D41\uFF0C\u5FC5\u8981\u65F6\u964D\u4F4E\u5E76\u53D1\u6216\u6362\u901A\u9053\uFF09\uFF1B\u82E5\u9700\u5206\u6563\u4E0A\u6E38\u538B\u529B\uFF0C\u4F18\u5148\u8DE8\u4E0D\u540C credentialGroup \u6D3E\u53D1\uFF1Bcredentialed:false\uFF08\u51ED\u8BC1\u5F52\u5C5E\u672A\u77E5\uFF09\u7684 agent \u4E0D\u662F\u300C\u72EC\u7ACB\u51ED\u8BC1\u300D\uFF0C\u540C\u6279\u5E76\u53D1\u4F1A\u88AB\u5B88\u536B\u62D2\u7EDD\uFF0C\u9700\u4E32\u884C\u6D3E\u53D1\u6216\u663E\u5F0F allowUnknownCredential \u786E\u8BA4\u98CE\u9669\u3002
491
- - \u672C\u8F6E\u672A\u6CE8\u5165\u5B8C\u6574\u7F16\u6392\u534F\u8BAE\uFF08\u65E0\u6D3E\u53D1\u610F\u56FE\uFF09\uFF1B\u5982\u786E\u9700\u591A Agent \u7F16\u6392\uFF0C\u6309\u672C\u6700\u5C0F\u534F\u8BAE\u4E0E startAgentRun \u5DE5\u5177\u63CF\u8FF0\u6267\u884C\uFF0C\u5B89\u5168\u786C\u95E8\u89C1\u4E0B\u3002`,
492
- AGENT_DELEGATE_FIRST_DEFAULT,
493
- AGENT_PLATFORM_CREDITS_GATE,
494
- AGENT_DISPATCH_PRECHECK,
495
- AGENT_COMMIT_REVIEW_GATE,
496
- AGENT_CONFIRM_BOUNDARY
497
- ].join("\n\n");
481
+ - \u672C\u8F6E\u672A\u6CE8\u5165\u5B8C\u6574\u7F16\u6392\u534F\u8BAE\uFF08\u65E0\u6D3E\u53D1\u610F\u56FE\uFF09\uFF1B\u5982\u786E\u9700\u591A Agent \u7F16\u6392\uFF0C\u6309\u672C\u6700\u5C0F\u534F\u8BAE\u4E0E startAgentRun \u5DE5\u5177\u63CF\u8FF0\u6267\u884C\uFF0C\u5B89\u5168\u786C\u95E8\u89C1\u4E0B\u3002`;
482
+ function isCommitReviewGateEnabled(opts) {
483
+ if (opts?.enableCommitReviewGate !== void 0) {
484
+ return opts.enableCommitReviewGate;
485
+ }
486
+ if (typeof process !== "undefined" && process.env?.NOLO_DISABLE_COMMIT_REVIEW_GATE === "1") {
487
+ return false;
488
+ }
489
+ return true;
490
+ }
491
+ function buildAgentCollaborationInstructions(opts) {
492
+ const isFull = opts?.dispatchIntent === true;
493
+ const gateEnabled = isCommitReviewGateEnabled(opts);
494
+ const sections = isFull ? [
495
+ AGENT_COLLABORATION_VALUE_AND_METHOD,
496
+ AGENT_DELEGATE_FIRST_DEFAULT,
497
+ AGENT_PLATFORM_CREDITS_GATE,
498
+ AGENT_DISPATCH_PRECHECK,
499
+ AGENT_COLLABORATION_FULL_PROTOCOL,
500
+ ...gateEnabled ? [AGENT_COMMIT_REVIEW_GATE] : [],
501
+ AGENT_CONFIRM_BOUNDARY
502
+ ] : [
503
+ AGENT_COLLABORATION_MIN_DISPATCH,
504
+ AGENT_DELEGATE_FIRST_DEFAULT,
505
+ AGENT_PLATFORM_CREDITS_GATE,
506
+ AGENT_DISPATCH_PRECHECK,
507
+ ...gateEnabled ? [AGENT_COMMIT_REVIEW_GATE] : [],
508
+ AGENT_CONFIRM_BOUNDARY
509
+ ];
510
+ return sections.join("\n\n");
511
+ }
512
+ var AGENT_COLLABORATION_INSTRUCTIONS = buildAgentCollaborationInstructions({ dispatchIntent: true });
513
+ var AGENT_COLLABORATION_MIN_INSTRUCTIONS = buildAgentCollaborationInstructions({ dispatchIntent: false });
498
514
  var CONVERSATION_INTERACTION_INSTRUCTIONS = `--- \u5BF9\u8BDD\u5185\u4EA4\u4E92\uFF08show_interaction\uFF09 ---
499
515
  \u201C\u5C55\u793A\u7ED3\u6784\u5316\u5185\u5BB9 + \u8BA9\u7528\u6237\u9009\u62E9\u201D\u540C\u65F6\u51FA\u73B0\u65F6\uFF08\u591A\u65B9\u6848\u5BF9\u6BD4\u8981\u7528\u6237\u9009\u4E00\u4E2A\u3001\u5173\u952E\u6307\u6807\u914D\u5408\u786E\u8BA4\u9879\uFF09\uFF0C\u8D70 show_interaction\uFF0C\u5185\u5BB9\u4E0E\u9009\u9879\u5728\u540C\u4E00\u5757\u5448\u73B0\u4E14\u63D0\u4EA4\u540E\u539F\u4F4D\u53EA\u8BFB\uFF0C\u6BD4\u5148\u7ED9 Markdown \u8868\u683C\u518D\u8FFD\u95EE\u66F4\u7D27\u51D1\u3002
500
516
  - \u7528\u5B83\uFF1A\u7ED3\u6784\u5316\u5BF9\u6BD4/\u6307\u6807\u4E0E\u9009\u62E9\u540C\u5757\u5C55\u793A\uFF1B\u63D0\u4EA4\u540E\u7528\u6237\u9009\u62E9\u539F\u4F4D\u53EA\u8BFB\u3002
@@ -576,7 +592,7 @@ var TOOL_GUIDED_SECTIONS = [
576
592
  ],
577
593
  // 按需注入:完整编排协议仅在有派发意图时给;无派发意图给最小协议
578
594
  // (派发机制 + 安全硬门常在:平台积分授权门 / commit review 硬门)。
579
- build: (_tools, opts) => opts?.dispatchIntent === true ? AGENT_COLLABORATION_INSTRUCTIONS : AGENT_COLLABORATION_MIN_INSTRUCTIONS
595
+ build: (_tools, opts) => buildAgentCollaborationInstructions(opts)
580
596
  },
581
597
  { id: "menuUsage", triggerTools: ["ask_user"], build: () => MENU_USAGE_INSTRUCTIONS },
582
598
  {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isCompiledBinary
3
- } from "./chunk-A7GB5UGH.js";
3
+ } from "./chunk-WACI5I6V.js";
4
4
  import {
5
5
  DEFAULT_NOLO_SERVER_URL
6
6
  } from "./chunk-OLZBQWZU.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDialog,
3
3
  runtime_default,
4
4
  toast
5
- } from "./chunk-T6CYTRP4.js";
5
+ } from "./chunk-CMRP4XHV.js";
6
6
  import {
7
7
  getCurrentSpaceId,
8
8
  getCurrentSpaceIdRaw,
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  isCompiledBinary,
7
7
  resolveCliEntrypointPath
8
- } from "./chunk-A7GB5UGH.js";
8
+ } from "./chunk-WACI5I6V.js";
9
9
  import {
10
10
  resolvePlatformAuthToken
11
11
  } from "./chunk-PIG2IUVZ.js";
@@ -828,7 +828,7 @@ function scanActiveReservations(reservationsDir, deps) {
828
828
  } catch {
829
829
  }
830
830
  const reused = expectedStart && actualStart && Number.isFinite(actualStart.getTime()) && actualStart.toISOString() !== expectedStart;
831
- if (!alive || reused || record.status === "active" && ageMs >= startupWindowMs) {
831
+ if (!alive || reused || record.status === "active" && !!expectedStart && record.childIdentity !== "unverified" && ageMs >= startupWindowMs) {
832
832
  updateReservationFile(filePath, fs, (r) => {
833
833
  r.status = "reclaimed";
834
834
  r.reclaimedAt = new Date(nowMs).toISOString();
@@ -909,14 +909,14 @@ function reserveHostMemory(deps) {
909
909
  const validStart = !!params.processStartedAt && Number.isFinite(Date.parse(params.processStartedAt));
910
910
  locked(() => updateReservationFile(recordPath, fs, (r) => {
911
911
  if (r.status !== "reserved") throw new Error("Reservation is not reserved");
912
+ r.status = "active";
913
+ r.childIdentity = validStart ? "verified" : "unverified";
912
914
  if (validStart) {
913
- r.status = "active";
914
915
  r.childStartedAt = params.processStartedAt;
915
916
  }
916
917
  if (params.runId) r.runId = params.runId;
917
918
  if (typeof params.pid === "number") r.childPid = params.pid;
918
919
  }));
919
- if (!validStart) throw new Error("Child starttime unknown; reservation retained");
920
920
  },
921
921
  release(reason) {
922
922
  locked(() => updateReservationFile(recordPath, fs, (r) => {
@@ -1472,6 +1472,17 @@ function writeRunRecord(record, deps = {}) {
1472
1472
  }
1473
1473
  fs.writeFileSync(path, payload);
1474
1474
  }
1475
+ function reportRunProcessIdentity(runId, deps = {}) {
1476
+ const processStartedAt = new Date(Date.now() - process.uptime() * 1e3).toISOString();
1477
+ withRunRecordLock(runId, deps, () => {
1478
+ const record = readRunRecord(runId, deps);
1479
+ if (!record || record.pid !== void 0 && record.pid !== process.pid) return;
1480
+ record.pid = process.pid;
1481
+ record.processStartedAt = processStartedAt;
1482
+ record.processIdentity = "verified";
1483
+ writeRunRecord(record, deps);
1484
+ }, { strict: true });
1485
+ }
1475
1486
  var FILE_EDIT_TOOL_NAMES = /* @__PURE__ */ new Set(["writeFile", "editFile"]);
1476
1487
  var DEFAULT_ACTIVITY_WRITE_INTERVAL_MS = 2e3;
1477
1488
  function createRunActivityTracker(runId, deps = {}, options = {}) {
@@ -1932,7 +1943,8 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
1932
1943
  fs: reservationFs,
1933
1944
  now: resolvedDeps.now,
1934
1945
  readHostMemory: () => hostMemory = (resolvedDeps.readHostMemory ?? readHostMemory)(),
1935
- getProcessStartTime: resolvedDeps.getProcessStartTime ?? defaultGetProcessStartTime,
1946
+ // Admission remains conservative for existing reservations; no OS probes on startup.
1947
+ getProcessStartTime: () => null,
1936
1948
  withLock: (id, fn, opts) => withRunRecordLock(id, resolvedDeps, fn, opts)
1937
1949
  });
1938
1950
  proc = spawn(execPath, childArgs, {
@@ -1966,24 +1978,17 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
1966
1978
  });
1967
1979
  const hostMemoryNotice = emitHostMemoryNotice(hostMemory, input.output);
1968
1980
  if (typeof proc.pid === "number") {
1969
- let processStartedAt;
1970
- try {
1971
- processStartedAt = (resolvedDeps.getProcessStartTime ?? defaultGetProcessStartTime)(proc.pid);
1972
- if (processStartedAt && !Number.isFinite(processStartedAt.getTime())) processStartedAt = null;
1973
- } catch {
1974
- processStartedAt = null;
1975
- }
1976
1981
  withRunRecordLock(runId, resolvedDeps, () => {
1977
1982
  const latest = readRunRecord(runId, resolvedDeps) ?? record;
1978
1983
  latest.pid = proc.pid;
1979
- if (processStartedAt) latest.processStartedAt = processStartedAt.toISOString();
1984
+ latest.processIdentity ??= "unverified";
1980
1985
  writeRunRecord(latest, resolvedDeps);
1981
1986
  return true;
1982
1987
  }, { strict: true });
1983
1988
  try {
1984
1989
  const persisted = readRunRecord(runId, resolvedDeps);
1985
- reservation.associate({ runId, pid: proc.pid, processStartedAt: processStartedAt?.toISOString() });
1986
- if (persisted?.pid !== proc.pid || !persisted.processStartedAt) throw new Error("Child identity persistence failed");
1990
+ reservation.associate({ runId, pid: proc.pid, processStartedAt: persisted?.processStartedAt });
1991
+ if (persisted?.pid !== proc.pid) throw new Error("Child identity persistence failed: pid not bound");
1987
1992
  } catch (error) {
1988
1993
  throw new Error(`[host-memory-reservation] child ${proc.pid}, run ${runId}: association failed: ${error}`);
1989
1994
  }
@@ -2187,9 +2192,29 @@ function isPidGone(pid, deps = {}) {
2187
2192
  return error.code === "ESRCH";
2188
2193
  }
2189
2194
  }
2190
- function defaultGetProcessStartTime(pid) {
2195
+ function defaultGetProcessStartTime(pid, deps = {}) {
2196
+ if (!Number.isSafeInteger(pid) || pid <= 0) return null;
2191
2197
  try {
2192
- const output = nodeExecFileSync("ps", ["-o", "lstart=", "-p", String(pid)], {
2198
+ const execFileSync = deps.execFileSync ?? nodeExecFileSync;
2199
+ if ((deps.platform ?? process.platform) === "win32") {
2200
+ const systemRoot = (deps.env ?? process.env).SystemRoot;
2201
+ const shell = systemRoot ? join2(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe") : "powershell.exe";
2202
+ const output2 = execFileSync(shell, [
2203
+ "-NoProfile",
2204
+ "-NonInteractive",
2205
+ "-Command",
2206
+ `$ErrorActionPreference='Stop'; (Get-Process -Id ${pid} -ErrorAction Stop).StartTime.ToUniversalTime().ToString('o')`
2207
+ ], {
2208
+ encoding: "utf8",
2209
+ stdio: ["ignore", "pipe", "ignore"],
2210
+ timeout: 5e3,
2211
+ windowsHide: true
2212
+ }).trim();
2213
+ if (!output2) return null;
2214
+ const date = new Date(output2);
2215
+ return Number.isFinite(date.getTime()) ? date : null;
2216
+ }
2217
+ const output = execFileSync("ps", ["-o", "lstart=", "-p", String(pid)], {
2193
2218
  encoding: "utf8",
2194
2219
  stdio: ["ignore", "pipe", "ignore"],
2195
2220
  timeout: 1e3,
@@ -2210,6 +2235,14 @@ function defaultGetProcessStartTime(pid) {
2210
2235
  }
2211
2236
  var MAX_PROCESS_START_TIME_DIFF_MS = 3e4;
2212
2237
  var MAX_PERSISTED_PROCESS_START_TIME_DIFF_MS = 2e3;
2238
+ function probeProcessStartTime(pid, deps) {
2239
+ try {
2240
+ const date = deps.getProcessStartTime ? deps.getProcessStartTime(pid) : defaultGetProcessStartTime(pid, deps);
2241
+ return date && Number.isFinite(date.getTime()) ? date : null;
2242
+ } catch {
2243
+ return null;
2244
+ }
2245
+ }
2213
2246
  var ORPHAN_HEARTBEAT_GRACE_MS = 1e4;
2214
2247
  function readTimestampMs(value) {
2215
2248
  if (!value) return null;
@@ -2217,8 +2250,7 @@ function readTimestampMs(value) {
2217
2250
  return Number.isNaN(ms) ? null : ms;
2218
2251
  }
2219
2252
  function isPidReused(pid, expectedStartedAt, deps = {}, maxDiffMs = MAX_PROCESS_START_TIME_DIFF_MS) {
2220
- const getStartTime = deps.getProcessStartTime ?? defaultGetProcessStartTime;
2221
- const procStartTime = getStartTime(pid);
2253
+ const procStartTime = probeProcessStartTime(pid, deps);
2222
2254
  if (!procStartTime) {
2223
2255
  return false;
2224
2256
  }
@@ -2235,7 +2267,7 @@ function checkStaleRun(runId, deps = {}) {
2235
2267
  const pidGone = isPidGone(record.pid, deps);
2236
2268
  const expectedStartedAt = record.processStartedAt ?? record.startedAt;
2237
2269
  const maxStartTimeDiffMs = record.processStartedAt ? MAX_PERSISTED_PROCESS_START_TIME_DIFF_MS : MAX_PROCESS_START_TIME_DIFF_MS;
2238
- const pidReused = !pidGone && isPidReused(record.pid, expectedStartedAt, deps, maxStartTimeDiffMs);
2270
+ const pidReused = !pidGone && record.processIdentity !== "unverified" && isPidReused(record.pid, expectedStartedAt, deps, maxStartTimeDiffMs);
2239
2271
  if (!pidGone && !pidReused) return record;
2240
2272
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
2241
2273
  const heartbeatAt = readTimestampMs(record.activity?.updatedAt);
@@ -2603,8 +2635,30 @@ async function terminateRunProcess(record, initialSignal, deps) {
2603
2635
  const sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
2604
2636
  const nowMs = () => deps.now ? deps.now().getTime() : Date.now();
2605
2637
  const signalGroup = (sig) => {
2638
+ const fail = (reason) => {
2639
+ throw new Error(`Run ${record.runId}, pid ${pid}, platform ${deps.platform ?? process.platform}: \u8EAB\u4EFD\u672A\u9A8C\u8BC1\uFF0C\u65E0\u6CD5\u5B89\u5168\u7EC8\u6B62 (${reason}). \u53EF\u5148\u786E\u8BA4\u8FDB\u7A0B\u72B6\u6001\u6216\u91CD\u542F\u8BE5 run\uFF1B\u786E\u8BA4\u8EAB\u4EFD\u540E\u91CD\u8BD5 stop/kill\u3002`);
2640
+ };
2641
+ const expectedMs = readTimestampMs(record.processStartedAt ?? record.startedAt);
2642
+ if (expectedMs === null) fail("no trusted process start baseline");
2643
+ const maxDiffMs = record.processStartedAt ? MAX_PERSISTED_PROCESS_START_TIME_DIFF_MS : MAX_PROCESS_START_TIME_DIFF_MS;
2644
+ const actual = probeProcessStartTime(pid, deps);
2645
+ if (!actual || Math.abs(actual.getTime() - expectedMs) > maxDiffMs) {
2646
+ fail("identity probe failed or PID start time mismatch");
2647
+ }
2648
+ const persisted = withRunRecordLock(record.runId, deps, () => {
2649
+ const latest = readRunRecord(record.runId, deps);
2650
+ if (latest) {
2651
+ if (latest.pid !== pid || latest.processStartedAt !== record.processStartedAt || latest.startedAt !== record.startedAt) {
2652
+ fail("record changed");
2653
+ }
2654
+ latest.processIdentity = "verified";
2655
+ writeRunRecord(latest, deps);
2656
+ }
2657
+ return true;
2658
+ }, { strict: true });
2659
+ if (persisted !== true) fail("identity persistence lock contended");
2606
2660
  try {
2607
- if (process.platform !== "win32") {
2661
+ if ((deps.platform ?? process.platform) !== "win32") {
2608
2662
  kill(-pid, sig);
2609
2663
  } else {
2610
2664
  kill(pid, sig);
@@ -2648,7 +2702,7 @@ async function runSignalCommand(args, signal, verb, deps) {
2648
2702
  `);
2649
2703
  return 1;
2650
2704
  }
2651
- const reconciled = checkStaleRun(record.runId, deps) ?? record;
2705
+ const reconciled = record.status === "running" && typeof record.pid === "number" && isPidGone(record.pid, deps) ? checkStaleRun(record.runId, deps) ?? record : record;
2652
2706
  if (isAgentRunTerminalStatus(reconciled.status)) {
2653
2707
  deps.output.write(`Run ${reconciled.runId} is already ${reconciled.status}.
2654
2708
  `);
@@ -2659,7 +2713,14 @@ async function runSignalCommand(args, signal, verb, deps) {
2659
2713
  `);
2660
2714
  return 1;
2661
2715
  }
2662
- const confirmed = await terminateRunProcess(reconciled, signal, deps);
2716
+ let confirmed;
2717
+ try {
2718
+ confirmed = await terminateRunProcess(reconciled, signal, deps);
2719
+ } catch (error) {
2720
+ deps.output.write(`${error instanceof Error ? error.message : String(error)}
2721
+ `);
2722
+ return 1;
2723
+ }
2663
2724
  if (!confirmed) {
2664
2725
  deps.output.write(
2665
2726
  `Failed to ${verb} ${record.runId} (pid ${record.pid}): process still alive after SIGKILL.
@@ -2725,6 +2786,7 @@ export {
2725
2786
  defaultGenerateBatchId,
2726
2787
  withRunRecordLock,
2727
2788
  writeRunRecord,
2789
+ reportRunProcessIdentity,
2728
2790
  createRunActivityTracker,
2729
2791
  readRunRecord,
2730
2792
  backfillRunRecordParentDialog,
@@ -130,7 +130,7 @@ function resolveCliEntrypointPath(fromModuleUrl = import.meta.url) {
130
130
  }
131
131
  const sourcePath = fileURLToPath(fromModuleUrl);
132
132
  const ext = extname(sourcePath) || ".ts";
133
- return join(dirname(sourcePath), "..", `index${ext}`);
133
+ return join(dirname(sourcePath), `index${ext}`);
134
134
  }
135
135
 
136
136
  export {
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  inlineImageUrlsForCustomProvider,
66
66
  prepareTools
67
- } from "./chunk-HL5KVGSL.js";
67
+ } from "./chunk-2AZSL4GL.js";
68
68
  import {
69
69
  getServerProviderSecret
70
70
  } from "./chunk-HS7MLR74.js";
@@ -86,7 +86,7 @@ import {
86
86
  resolveCliLocalRuntimeKeyCapability,
87
87
  resolveCliLocalSpawnDispatch,
88
88
  resolveStartAgentRunCwd
89
- } from "./chunk-TQYYH5UI.js";
89
+ } from "./chunk-QW6SSF7V.js";
90
90
  import {
91
91
  deriveCredentialGroup,
92
92
  deriveCustomProviderCredentialGroup
@@ -97,7 +97,7 @@ import {
97
97
  } from "./chunk-KFHREHUQ.js";
98
98
  import {
99
99
  resolveAgentRequiredPackIds
100
- } from "./chunk-NH7672YN.js";
100
+ } from "./chunk-WLPUUBFR.js";
101
101
  import {
102
102
  applyBuiltinAgentRuntimeOverride,
103
103
  applyTokenUsageToDayStats,
@@ -106,14 +106,14 @@ import {
106
106
  resolveBuiltinPlatformAgentConfig,
107
107
  runKeyed,
108
108
  validateAskChoiceInput
109
- } from "./chunk-T6CYTRP4.js";
109
+ } from "./chunk-CMRP4XHV.js";
110
110
  import {
111
111
  BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
112
112
  BUILTIN_TITLE_LLM_CONFIG
113
113
  } from "./chunk-523DITKR.js";
114
114
  import {
115
115
  fetchServerSyncedCredential
116
- } from "./chunk-RG5K3ULI.js";
116
+ } from "./chunk-XLBQQ5SB.js";
117
117
  import {
118
118
  isTombstoneRecord
119
119
  } from "./chunk-D2MDMY2M.js";
@@ -170,7 +170,7 @@ import {
170
170
  runExecShellGates,
171
171
  validateConfiguredRootExecutionLease,
172
172
  verifyOwnerRouteAck
173
- } from "./chunk-JICBK5VC.js";
173
+ } from "./chunk-2DXGW4UO.js";
174
174
  import {
175
175
  accumulateGeminiChunks,
176
176
  buildGeminiGenerateContentRequest,
@@ -303,7 +303,7 @@ import {
303
303
  terminateRunProcess,
304
304
  transitionRunToTerminal,
305
305
  withQueueLock
306
- } from "./chunk-LPO6AMQU.js";
306
+ } from "./chunk-URW5UM6Y.js";
307
307
  import {
308
308
  TASK_PREVIEW_MAX,
309
309
  formatListRunsCard,
@@ -331,7 +331,7 @@ import {
331
331
  parseUserIdFromAuthToken,
332
332
  resolveAuthToken,
333
333
  resolveServerUrl
334
- } from "./chunk-A7GB5UGH.js";
334
+ } from "./chunk-WACI5I6V.js";
335
335
  import {
336
336
  DEFAULT_NOLO_SERVER_URL
337
337
  } from "./chunk-OLZBQWZU.js";
@@ -12169,7 +12169,7 @@ function createCliLocalRuntimeAdapter(deps) {
12169
12169
  const recordRunExecutionIsolation = async () => {
12170
12170
  try {
12171
12171
  const { writeFileSync: writeFileSync4, mkdirSync: mkdirSync4 } = await import("node:fs");
12172
- const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-QWFFIAQY.js");
12172
+ const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-EI3BGJFM.js");
12173
12173
  const fact = resolveLocalRunExecutionIsolationFact({
12174
12174
  // F1:显式点名宿主执行的 run 在审计里必须与 docker 沙盒区分开
12175
12175
  // (reason: host-explicit-writes vs docker-workload)。
@@ -12201,7 +12201,7 @@ function createCliLocalRuntimeAdapter(deps) {
12201
12201
  dockerWorkloadReleased = true;
12202
12202
  dockerWorkloadLoad = null;
12203
12203
  if (loaded) {
12204
- const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-QWFFIAQY.js");
12204
+ const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-EI3BGJFM.js");
12205
12205
  const exportRunDiff = deps.exportDockerRunDiffArtifact ?? exportDockerRunDiffArtifact;
12206
12206
  const warn = (message) => process.stderr.write(`[nolo] ${message}
12207
12207
  `);
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-VYNMQ6HW.js";
9
9
  import {
10
10
  fetchAndCacheTableRows
11
- } from "./chunk-DWMLT22B.js";
11
+ } from "./chunk-URO44BCD.js";
12
12
  import {
13
13
  require_react
14
14
  } from "./chunk-YDH3FDFQ.js";
@@ -521,7 +521,7 @@ var executeToolRun = createAsyncThunk(
521
521
  if (!executionInput) {
522
522
  throw new Error(`ToolRun ${id} has no input to execute with.`);
523
523
  }
524
- const { findToolExecutor } = await import("./tools-5RNURQPU.js");
524
+ const { findToolExecutor } = await import("./tools-FMNDEVTZ.js");
525
525
  const { executor } = findToolExecutor(run.toolName);
526
526
  toolRunStarted({
527
527
  id: run.id,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  refreshSubscriptionQuotas
3
- } from "./chunk-U4STABYN.js";
3
+ } from "./chunk-YGILMZ7N.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-62TBKWTV.js";
7
7
  import {
8
8
  clearCliLocalRuntimePreparedAgentCache
9
- } from "./chunk-2BWYN4N6.js";
9
+ } from "./chunk-WC7UXON2.js";
10
10
  import {
11
11
  readCredentialAvailability
12
12
  } from "./chunk-R4BMKAR5.js";
@@ -19,14 +19,14 @@ import {
19
19
  resolveAgentRecordFromHybridStore,
20
20
  sanitizeAgentRecordForCliOutput,
21
21
  writeAgentRecord
22
- } from "./chunk-N6EMFRPR.js";
22
+ } from "./chunk-KJETBEEN.js";
23
23
  import {
24
24
  resolveCliAgentKeyInput
25
25
  } from "./chunk-NBTY7YJF.js";
26
26
  import {
27
27
  parseUserIdFromAuthToken,
28
28
  resolveAuthToken
29
- } from "./chunk-A7GB5UGH.js";
29
+ } from "./chunk-WACI5I6V.js";
30
30
  import {
31
31
  toErrorMessage
32
32
  } from "./chunk-HNMXYYJR.js";
@@ -244,7 +244,7 @@ async function runAgentCreateCommand(args, deps = {}) {
244
244
  let verifyResult;
245
245
  if (parsed.verify) {
246
246
  try {
247
- const { verifyCustomProvider } = await import("./agentProviderCommands-CXBHNONN.js");
247
+ const { verifyCustomProvider } = await import("./agentProviderCommands-4USYTCL3.js");
248
248
  const rec = built.nextRecord;
249
249
  verifyResult = await verifyCustomProvider({
250
250
  providerUrl: rec.customProviderUrl,