nolo-cli 0.157.0-alpha.1 → 0.158.0-alpha.1

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 (126) hide show
  1. package/{_executeModel-5WS2PA62.js → _executeModel-6BMU3URY.js} +35 -35
  2. package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
  3. package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +4 -4
  4. package/{addContentAction-TVHB4526.js → addContentAction-BI6RDRTQ.js} +7 -7
  5. package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-4RJYUSIK.js} +6 -6
  6. package/{agentDeleteCommand-Q6M4F3U6.js → agentDeleteCommand-Q2XWGBC2.js} +42 -42
  7. package/{agentEmailCommands-FNH6FEHS.js → agentEmailCommands-XFBE2A3F.js} +44 -44
  8. package/{agentListCommands-JUNMFS6E.js → agentListCommands-OROMT4P3.js} +12 -12
  9. package/{agentMachineCommands-VNLDEKNT.js → agentMachineCommands-ULK5YKKJ.js} +11 -10
  10. package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-MKG2OOEY.js} +2 -2
  11. package/{agentRecordCommands-47XXRVPI.js → agentRecordCommands-3VHBLS6P.js} +42 -42
  12. package/{agentRunCommand-QEXFJUXQ.js → agentRunCommand-LCIMEAQY.js} +44 -43
  13. package/{agentRuntimeLocal-O5GDAFTN.js → agentRuntimeLocal-NPJS2QDP.js} +5 -5
  14. package/{agentSlice-E3XS5FTQ.js → agentSlice-VRAPG6CH.js} +7 -7
  15. package/{appDeleteCommands-C2J5RQ3I.js → appDeleteCommands-AZ3KS4HK.js} +10 -10
  16. package/{appDeployCommands-3YRK7PSU.js → appDeployCommands-BTV22ICJ.js} +10 -10
  17. package/{appDeployStatusCommands-FPAX7MOK.js → appDeployStatusCommands-JSW3HPIW.js} +10 -10
  18. package/{appGetCommands-XAC2V766.js → appGetCommands-5KTTFIMV.js} +10 -10
  19. package/{appListCommands-ZJL2W5O7.js → appListCommands-3BJPAE2U.js} +10 -10
  20. package/{authCommand-J3XILHWW.js → authCommand-NIV3DKPF.js} +7 -287
  21. package/{authCommands-77CHYBGF.js → authCommands-AMNIAKEG.js} +2 -2
  22. package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-H3AY27TR.js} +1 -1
  23. package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
  24. package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
  25. package/{chunk-VSOWPETY.js → chunk-2BKUVRC5.js} +7 -7
  26. package/{chunk-Z6KQDSZW.js → chunk-2SGAI64X.js} +2 -2
  27. package/{chunk-KOB75UNU.js → chunk-2SOS7OSQ.js} +18 -2
  28. package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
  29. package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
  30. package/{chunk-PEO24UB5.js → chunk-3TBHZPNG.js} +33 -6
  31. package/{chunk-YBNHPX4S.js → chunk-4RJJDA57.js} +1 -1
  32. package/{chunk-X5SUT4CN.js → chunk-4UOEOHY3.js} +6 -6
  33. package/{chunk-UUPR3TD7.js → chunk-7RF4O6AT.js} +1 -3
  34. package/{chunk-FPWT3RH2.js → chunk-AJ4V34SG.js} +10 -10
  35. package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
  36. package/{chunk-SKPPKHD3.js → chunk-BYQOCH75.js} +2 -2
  37. package/{chunk-UTIMX333.js → chunk-C3OK72G3.js} +1 -1
  38. package/{chunk-ZWG3C7VI.js → chunk-C6FY7HWI.js} +35 -0
  39. package/{chunk-RUNKPFM5.js → chunk-CDWHHLK5.js} +12 -8
  40. package/{chunk-ROPSATAB.js → chunk-CON6SI7N.js} +1 -1
  41. package/{chunk-4Z245KOA.js → chunk-DC3SZCRR.js} +6 -2
  42. package/{chunk-OH2M7WEU.js → chunk-EQGFFDNA.js} +3 -3
  43. package/{chunk-ANJTRG52.js → chunk-G2WP7VPD.js} +0 -37
  44. package/{chunk-7A4LJCDR.js → chunk-G476FQ7Q.js} +4 -4
  45. package/{chunk-DW7MGLMG.js → chunk-GAVUTXM5.js} +21 -17
  46. package/{chunk-PSJWPSKS.js → chunk-HB4XPBC7.js} +0 -32
  47. package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
  48. package/{chunk-EM3YOZJ4.js → chunk-ICRRXBRN.js} +3 -3
  49. package/{chunk-7KYVUFDG.js → chunk-IE5PXKVU.js} +1 -263
  50. package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
  51. package/{chunk-CE7PIHQD.js → chunk-IRTOYSA2.js} +3 -3
  52. package/{chunk-WZ6OU4NX.js → chunk-J2ATF74A.js} +2 -2
  53. package/{chunk-TJ2VPCBE.js → chunk-JPJGMOIM.js} +2 -2
  54. package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
  55. package/{chunk-7GC3EKUG.js → chunk-KKKHAF3P.js} +2 -2
  56. package/{chunk-KX6LPG7W.js → chunk-KLA62VVE.js} +1 -1
  57. package/{chunk-TYND6RDQ.js → chunk-LV4LV2B4.js} +72 -1
  58. package/{chunk-TZTWMGE3.js → chunk-M2P3OGXZ.js} +3 -3
  59. package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
  60. package/{chunk-6MPAEODB.js → chunk-NDZOXXIM.js} +17 -3
  61. package/{chunk-MVJVF4ED.js → chunk-NKPAHRMA.js} +7 -6
  62. package/{chunk-ZD2BLOY6.js → chunk-O4ZERG3M.js} +3 -3
  63. package/{chunk-36OMEXXR.js → chunk-OON4OBWI.js} +1 -1
  64. package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
  65. package/{chunk-G47IPDOK.js → chunk-QPY264HO.js} +1 -1
  66. package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
  67. package/{chunk-EJU23ST5.js → chunk-S72LMV7T.js} +670 -627
  68. package/{chunk-D4OWHT5Y.js → chunk-SPKLALBU.js} +2 -2
  69. package/{chunk-FDT27L7S.js → chunk-UCLSOLX4.js} +7 -5
  70. package/{chunk-B2EGWZJG.js → chunk-UFYBYB26.js} +1 -1
  71. package/{chunk-3XZKV7QQ.js → chunk-US6MKPE7.js} +1 -1
  72. package/{chunk-VAZHH6FO.js → chunk-VDEVDGEM.js} +18 -12
  73. package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
  74. package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
  75. package/{chunk-H4KACZMG.js → chunk-WTFRBJT5.js} +261 -126
  76. package/{chunk-QDA4Y5O6.js → chunk-WXFZ4P6O.js} +18 -14
  77. package/chunk-Y5GCAMGP.js +9 -0
  78. package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
  79. package/{chunk-XFKZ3MCV.js → chunk-YTXQ2U2X.js} +221 -65
  80. package/{chunk-ZEHTARJA.js → chunk-ZBXIKCZ4.js} +38 -92
  81. package/{chunk-HKT6QXP3.js → chunk-ZEY4NJRE.js} +2 -2
  82. package/{chunk-HP6O6LTV.js → chunk-ZVQHBIWV.js} +6 -6
  83. package/{commandRegistry-OUBQIF62.js → commandRegistry-D6JTVYKG.js} +73 -81
  84. package/{contentThunks-B3FRQGP7.js → contentThunks-DYQO4CTI.js} +14 -13
  85. package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-LW26KIBP.js} +14 -13
  86. package/{createDialogAction-2NFGFBXW.js → createDialogAction-VLLBRD52.js} +15 -14
  87. package/{createPageAction-LDAVZDN7.js → createPageAction-PDACOLI6.js} +14 -13
  88. package/{dbSlice-5QGKMQLO.js → dbSlice-DC2J53RC.js} +6 -6
  89. package/{deleteFile-EW6QNRRT.js → deleteFile-KYWEMNFX.js} +4 -4
  90. package/{dialogCommands-ZLBEAQHE.js → dialogCommands-F3Y4KCPZ.js} +12 -11
  91. package/{dialogSlice-64S3J6CP.js → dialogSlice-ERMZYMS6.js} +13 -12
  92. package/{docCreateCommands-XOG5BBFQ.js → docCreateCommands-YMWZLW64.js} +8 -8
  93. package/{docDeleteCommands-NCW3BBRX.js → docDeleteCommands-6KJ3ESK4.js} +9 -9
  94. package/{docReadCommands-OT7X44Y3.js → docReadCommands-YQGFVLWI.js} +8 -8
  95. package/{docStore-NIP7OO4I.js → docStore-HXKI6W5D.js} +7 -7
  96. package/{docUpdateCommands-JW7OWW2J.js → docUpdateCommands-QLSGXUEX.js} +8 -8
  97. package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-2XCOZPXY.js} +25 -24
  98. package/index.js +6 -6
  99. package/{localRuntimeAdapter-EQM6LFYC.js → localRuntimeAdapter-VOFUPXNF.js} +42 -40
  100. package/{machineCommands-WJ7FZ67T.js → machineCommands-IN5O7CIO.js} +46 -44
  101. package/{machineWsRunDispatch-BQT4DEA2.js → machineWsRunDispatch-TH3GMSR3.js} +41 -41
  102. package/{memberThunks-KRV5YXOB.js → memberThunks-2DWKLE6W.js} +7 -7
  103. package/package.json +1 -1
  104. package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
  105. package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-GSJI4JBJ.js} +1 -1
  106. package/{providerRegistry-7IS43D3X.js → providerRegistry-TSSTPGWF.js} +1 -1
  107. package/{read-5KAZHHDM.js → read-L7QEJETH.js} +4 -4
  108. package/{readDocTool-5QO34OSX.js → readDocTool-QELXV2GW.js} +1 -1
  109. package/{readlineWorkspace-JHJSU5DS.js → readlineWorkspace-EIEQUTEZ.js} +317 -104
  110. package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-376XSUP2.js} +8 -8
  111. package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-3KHKKBZI.js} +39 -34
  112. package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
  113. package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-QBDSH63D.js} +7 -7
  114. package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-537QFGW3.js} +8 -8
  115. package/settingThunks-4Z43ZSAT.js +923 -0
  116. package/{spaceCommands-ZWDPTURU.js → spaceCommands-T5Z4U7HP.js} +8 -8
  117. package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-DMXXSEVX.js} +39 -39
  118. package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-CSO6AKRL.js} +6 -6
  119. package/{tableCommands-U3QDY4L6.js → tableCommands-LBH3QPPO.js} +1 -1
  120. package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
  121. package/{tools-IWNXKK4Y.js → tools-RMT7NAMC.js} +29 -28
  122. package/{updateCommands-NQXAGFM7.js → updateCommands-LXZLG44Y.js} +2 -2
  123. package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-Z4WNUH6Y.js} +14 -13
  124. package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
  125. package/chunk-W4S6OTSC.js +0 -35
  126. package/settingThunks-FTDRZNSJ.js +0 -1371
@@ -296,21 +296,49 @@ var STRINGS = {
296
296
  en: "Usage: /altscreen <on|off>",
297
297
  zh: "\u7528\u6CD5\uFF1A/altscreen <on|off>"
298
298
  },
299
- autoCurrent: {
300
- en: "Permission auto-approve: {0}",
301
- zh: "\u6743\u9650\u81EA\u52A8\u5316\uFF1A{0}"
302
- },
303
299
  autoUsage: {
304
- en: "Usage: /auto <on|off>",
305
- zh: "\u7528\u6CD5\uFF1A/auto <on|off>"
300
+ en: "Usage: /auto [local|remote] <on|off> \xB7 /auto reset (clear both)",
301
+ zh: "\u7528\u6CD5\uFF1A/auto [local|remote] <on|off> \xB7 /auto reset\uFF08\u4E24\u6876\u6E05\u96F6\uFF09"
302
+ },
303
+ autoStateLine: {
304
+ en: "Local-run grant: {0} \xB7 Remote-origin shell grant: {1}",
305
+ zh: "\u672C\u673A run \u6388\u6743\uFF1A{0} \xB7 \u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell \u6388\u6743\uFF1A{1}"
306
+ },
307
+ autoStateOnPersisted: {
308
+ en: "granted (saved)",
309
+ zh: "\u5DF2\u6388\u6743\uFF08\u5DF2\u4FDD\u5B58\uFF09"
310
+ },
311
+ autoStateOff: {
312
+ en: "ask every time",
313
+ zh: "\u9010\u6B21\u8BE2\u95EE"
314
+ },
315
+ autoKindLocal: {
316
+ en: "local-run confirmations (destructive shell / outside-workspace files / file writes)",
317
+ zh: "\u672C\u673A run \u7684\u786E\u8BA4\uFF08\u7834\u574F\u6027\u547D\u4EE4 / \u5DE5\u4F5C\u533A\u5916\u6587\u4EF6 / \u5199\u6587\u4EF6\uFF09"
318
+ },
319
+ autoKindRemote: {
320
+ en: "a remote origin running shell on this machine",
321
+ zh: "\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell"
322
+ },
323
+ autoGrantOn: {
324
+ en: "Approved and saved: {0}. That class no longer asks (this session and future starts). Undo with {1}.",
325
+ zh: "\u5DF2\u6279\u51C6\u5E76\u4FDD\u5B58\uFF1A{0}\u3002\u8BE5\u7C7B\u786E\u8BA4\u4E0D\u518D\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\u7528 {1}\u3002"
306
326
  },
307
- autoOn: {
308
- en: "Permission auto-approve ON \u2014 destructive shell and external-file confirmations will be skipped for this session.",
309
- zh: "\u6743\u9650\u81EA\u52A8\u5316\u5DF2\u5F00\u542F\uFF1A\u672C\u4F1A\u8BDD\u5185\u7834\u574F\u6027 shell \u4E0E\u5916\u90E8\u6587\u4EF6\u8BBF\u95EE\u786E\u8BA4\u5C06\u81EA\u52A8\u653E\u884C\u3002"
327
+ autoGrantOff: {
328
+ en: "Revoked and saved: {0}. Those confirmations ask again (this session and future starts). Re-enable with {1}.",
329
+ zh: "\u5DF2\u64A4\u9500\u5E76\u4FDD\u5B58\uFF1A{0}\u3002\u8BE5\u7C7B\u786E\u8BA4\u6062\u590D\u9010\u6B21\u8BE2\u95EE\uFF08\u672C\u4F1A\u8BDD\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u91CD\u65B0\u5F00\u542F\u7528 {1}\u3002"
310
330
  },
311
- autoOff: {
312
- en: "Permission auto-approve OFF \u2014 confirmations will ask again.",
313
- zh: "\u6743\u9650\u81EA\u52A8\u5316\u5DF2\u5173\u95ED\uFF1A\u6062\u590D\u9010\u6B21\u786E\u8BA4\u3002"
331
+ autoReset: {
332
+ en: "Cleared and saved: both permission buckets are reset \u2014 every confirmation asks again.",
333
+ zh: "\u5DF2\u6E05\u7A7A\u5E76\u4FDD\u5B58\uFF1A\u672C\u673A\u4E0E\u8FDC\u7A0B\u4E24\u6876\u6388\u6743\u90FD\u6E05\u96F6\uFF0C\u6240\u6709\u786E\u8BA4\u6062\u590D\u9010\u6B21\u8BE2\u95EE\u3002"
334
+ },
335
+ autoPersistFailed: {
336
+ en: "This grant applies to this session only \u2014 it could not be saved to your config (no profile?).",
337
+ zh: "\u8BE5\u6388\u6743\u4EC5\u672C\u6B21\u4F1A\u8BDD\u6709\u6548\uFF1A\u672A\u80FD\u4FDD\u5B58\u5230\u914D\u7F6E\uFF08\u53EF\u80FD\u8FD8\u6CA1\u6709 profile\uFF09\u3002"
338
+ },
339
+ autoPersistedStartup: {
340
+ en: "Approved from your saved config: {0}. Those confirmations are skipped; undo with /auto reset.",
341
+ zh: "\u5DF2\u4ECE\u4FDD\u5B58\u7684\u914D\u7F6E\u751F\u6548\u7684\u6388\u6743\uFF1A{0}\u3002\u8FD9\u4E9B\u786E\u8BA4\u5DF2\u88AB\u8DF3\u8FC7\uFF1B\u64A4\u9500\u7528 /auto reset\u3002"
314
342
  },
315
343
  langSwitched: {
316
344
  en: "Language switched to English.",
@@ -580,40 +608,52 @@ var STRINGS = {
580
608
  zh: "\uFF08\u2191\u2193 \u79FB\u52A8 \xB7 Enter \u9009\u62E9 \xB7 Esc \u53D6\u6D88\uFF09"
581
609
  },
582
610
  dialogConfirmTitle: {
583
- en: "Confirm destructive shell command",
584
- zh: "\u786E\u8BA4\u6267\u884C\u7834\u574F\u6027 shell \u547D\u4EE4"
611
+ en: "Allow destructive shell commands from local runs?",
612
+ zh: "\u5141\u8BB8\u672C\u673A run \u6267\u884C\u7834\u574F\u6027 shell \u547D\u4EE4\u5417\uFF1F"
585
613
  },
586
614
  dialogConfirmBody: {
587
- en: "This command may delete or reset user content and needs explicit confirmation before it runs.",
588
- zh: "\u8BE5\u547D\u4EE4\u53EF\u80FD\u5220\u9664\u6216\u91CD\u7F6E\u7528\u6237\u5185\u5BB9\uFF0C\u9700\u8981\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\u624D\u80FD\u6267\u884C\u3002"
615
+ en: "This command may delete or reset user content \u2014 a local-run destructive shell command.",
616
+ zh: "\u8BE5\u547D\u4EE4\u53EF\u80FD\u5220\u9664\u6216\u91CD\u7F6E\u7528\u6237\u5185\u5BB9\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u7834\u574F\u6027 shell \u547D\u4EE4\u3002"
589
617
  },
590
618
  dialogConfirmExternalFileTitle: {
591
- en: "Confirm reading a file outside the workspace",
592
- zh: "\u786E\u8BA4\u8BFB\u53D6\u5DE5\u4F5C\u533A\u5916\u90E8\u6587\u4EF6"
619
+ en: "Allow reading files outside the workspace?",
620
+ zh: "\u5141\u8BB8\u8BFB\u53D6\u5DE5\u4F5C\u533A\u5916\u90E8\u6587\u4EF6\u5417\uFF1F"
593
621
  },
594
622
  dialogConfirmExternalFileBody: {
595
- en: "This path is outside the current workspace. Allow this one-time access, or deny it.",
596
- zh: "\u8BE5\u8DEF\u5F84\u4F4D\u4E8E\u5F53\u524D\u5DE5\u4F5C\u533A\u4E4B\u5916\u3002\u786E\u8BA4\u540E\u672C\u6B21\u8BBF\u95EE\u653E\u884C\uFF0C\u5426\u5219\u62D2\u7EDD\u3002"
623
+ en: "This path is outside the current workspace \u2014 a local-run outside-workspace file access.",
624
+ zh: "\u8BE5\u8DEF\u5F84\u4F4D\u4E8E\u5F53\u524D\u5DE5\u4F5C\u533A\u4E4B\u5916\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u5DE5\u4F5C\u533A\u5916\u6587\u4EF6\u8BBF\u95EE\u3002"
625
+ },
626
+ dialogConfirmFileWriteTitle: {
627
+ en: "Allow writing files from local runs?",
628
+ zh: "\u5141\u8BB8\u672C\u673A run \u5199\u5165\u6587\u4EF6\u5417\uFF1F"
629
+ },
630
+ dialogConfirmFileWriteBody: {
631
+ en: "This action writes into the workspace \u2014 a local-run file-write confirmation.",
632
+ zh: "\u8BE5\u64CD\u4F5C\u4F1A\u5199\u5165\u5DE5\u4F5C\u533A\u6587\u4EF6\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u5199\u6587\u4EF6\u786E\u8BA4\u3002"
633
+ },
634
+ dialogConfirmRememberLocal: {
635
+ en: "Approving covers all three local-run classes (destructive shell / outside-workspace files / file writes) and is saved, so they stop asking \u2014 this session and future starts. Undo with /auto local off or /auto reset.",
636
+ zh: "\u6279\u51C6\u540E\u672C\u673A run \u7684\u4E09\u7C7B\u786E\u8BA4\uFF08\u7834\u574F\u6027\u547D\u4EE4 / \u5DE5\u4F5C\u533A\u5916\u6587\u4EF6 / \u5199\u6587\u4EF6\uFF09\u90FD\u4E0D\u518D\u8BE2\u95EE\uFF0C\u5E76\u4FDD\u5B58\u5230\u914D\u7F6E\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\u7528 /auto local off \u6216 /auto reset\u3002"
597
637
  },
598
638
  dialogConfirmCommandTruncated: {
599
639
  en: "(truncated)",
600
640
  zh: "\uFF08\u5DF2\u622A\u65AD\uFF09"
601
641
  },
602
642
  dialogConfirmAllowLabel: {
603
- en: "Allow",
604
- zh: "\u5141\u8BB8"
643
+ en: "Approve & remember",
644
+ zh: "\u6279\u51C6\u5E76\u8BB0\u4F4F"
605
645
  },
606
646
  dialogConfirmAllowDetail: {
607
- en: "execute this time",
608
- zh: "\u672C\u6B21\u6267\u884C"
647
+ en: "stop asking for this class (saved)",
648
+ zh: "\u540C\u7C7B\u786E\u8BA4\u4E0D\u518D\u8BE2\u95EE\uFF08\u5DF2\u4FDD\u5B58\uFF09"
609
649
  },
610
650
  dialogConfirmCancelLabel: {
611
- en: "Cancel",
612
- zh: "\u53D6\u6D88"
651
+ en: "Reject",
652
+ zh: "\u62D2\u7EDD"
613
653
  },
614
654
  dialogConfirmCancelDetail: {
615
- en: "abort the operation",
616
- zh: "\u4E2D\u6B62\u64CD\u4F5C"
655
+ en: "do not run it; ask again next time",
656
+ zh: "\u4E0D\u6267\u884C\uFF0C\u4E0B\u6B21\u4ECD\u4F1A\u8BE2\u95EE"
617
657
  },
618
658
  // --- Ask choice (ask_user) ------------------------------------------
619
659
  askChoiceTitle: {
@@ -859,7 +899,7 @@ var STRINGS = {
859
899
  " Drag a file in Drop an image file on the terminal to attach it; audio/video transcribes; other files stay paths",
860
900
  " Shift+Enter / Ctrl+J Insert a newline in the draft",
861
901
  " /mouse <on|off> Toggle mouse mode (off = drag to select text)",
862
- " /auto <on|off> Toggle permission auto-approve (skip destructive-shell, external-file & file-write confirms)",
902
+ " /auto [local|remote] <on|off> Approve one permission bucket (local-run confirms / remote-origin shell) so it stops asking; saved to your config. /auto reset clears both",
863
903
  " /shell-revoke Revoke this session's shell grant; the next shell call re-asks (works while a reply runs; does not interrupt a running command)",
864
904
  " /math <on|off> Toggle math formula rendering (Unicode transcription)",
865
905
  " /altscreen <on|off> Toggle the terminal alternate screen (default on; off shares shell scrollback)",
@@ -905,7 +945,7 @@ var STRINGS = {
905
945
  " \u62D6\u5165\u6587\u4EF6 \u628A\u56FE\u7247\u6587\u4EF6\u62D6\u8FDB\u7EC8\u7AEF\u5373\u6210\u4E3A\u9644\u4EF6\uFF1B\u97F3\u89C6\u9891\u81EA\u52A8\u8F6C\u5199\uFF1B\u5176\u4ED6\u6587\u4EF6\u53EA\u7559\u8DEF\u5F84",
906
946
  " Shift+Enter / Ctrl+J \u5728\u8349\u7A3F\u91CC\u6362\u884C",
907
947
  " /mouse <on|off> \u5207\u6362\u9F20\u6807\u6A21\u5F0F\uFF08off \u540E\u53EF\u76F4\u63A5\u62D6\u9009\u6587\u672C\uFF09",
908
- " /auto <on|off> \u5207\u6362\u6743\u9650\u81EA\u52A8\u5316\uFF08\u81EA\u52A8\u653E\u884C\u7834\u574F\u6027 shell\u3001\u5916\u90E8\u6587\u4EF6\u4E0E\u5199\u6587\u4EF6\u786E\u8BA4\uFF09",
948
+ " /auto [local|remote] <on|off> \u6388\u6743\u67D0\u4E00\u6876\uFF08\u672C\u673A run \u786E\u8BA4 / \u8FDC\u7A0B\u6765\u6E90 shell\uFF09\u4E0D\u518D\u9010\u6B21\u8BE2\u95EE\uFF0C\u5E76\u4FDD\u5B58\u5230\u914D\u7F6E\uFF1B/auto reset \u4E24\u6876\u6E05\u96F6",
909
949
  " /shell-revoke \u64A4\u9500\u672C\u4F1A\u8BDD\u7684 shell \u6267\u884C\u6388\u6743\uFF0C\u4E0B\u4E00\u6B21 shell \u8C03\u7528\u91CD\u65B0\u786E\u8BA4\uFF08\u56DE\u590D\u8FDB\u884C\u4E2D\u4E5F\u53EF\u7528\uFF1B\u4E0D\u4E2D\u65AD\u5DF2\u653E\u884C\u7684\u547D\u4EE4\uFF09",
910
950
  " /math <on|off> \u5207\u6362\u6570\u5B66\u516C\u5F0F\u6E32\u67D3\uFF08Unicode \u8F6C\u5199\uFF09",
911
951
  " /altscreen <on|off> \u5207\u6362\u7EC8\u7AEF\u5907\u7528\u5C4F\uFF08\u9ED8\u8BA4 on\uFF1Boff \u6539\u4E3A\u4E0E shell \u5171\u7528\u56DE\u6EDA\uFF09",
@@ -1567,13 +1607,23 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
1567
1607
  // 分享 OAuth agent 的 shell 会话授权确认(块 D):首次 execShell/
1568
1608
  // launchProcess 前弹。必须把三件事说清——这是谁的 agent / 命令在哪台
1569
1609
  // 设备哪个工作区跑 / 任意 shell 可读写该用户可访问的资源。
1610
+ // 子 run 的 per-call shell 确认(远程来源在本机跑一条命令):与会话授权同一套
1611
+ // 语义,参数为 runId / agentKey / owner / device / workspace / 权限提示。
1612
+ "shellPerCall.title": {
1613
+ en: "Allow a remote origin to run this command on this machine?",
1614
+ zh: "\u5141\u8BB8\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C\u8FD9\u6761\u547D\u4EE4\u5417\uFF1F"
1615
+ },
1616
+ "shellPerCall.body": {
1617
+ en: "A remote origin asked to run one shell command on this device.\nRun: {0}\nAgent: {1}\nOwner: {2}\nDevice: {3}\nWorkspace: {4}\n{5}\n\nShell commands can read/write anything this user can access. Approving covers this whole class: remote-origin shell confirmations stop asking one by one (this session and future starts). Undo with /shell-revoke or /auto remote off.",
1618
+ zh: "\u8FDC\u7A0B\u6765\u6E90\u8BF7\u6C42\u5728\u672C\u673A\u6267\u884C\u4E00\u6761 shell \u547D\u4EE4\u3002\nRun\uFF1A{0}\nAgent\uFF1A{1}\n\u4E3B\u4EBA\uFF1A{2}\n\u8BBE\u5907\uFF1A{3}\n\u5DE5\u4F5C\u533A\uFF1A{4}\n{5}\n\n\u4EFB\u610F shell \u547D\u4EE4\u53EF\u8BFB\u5199\u672C\u673A\u8BE5\u7528\u6237\u80FD\u8BBF\u95EE\u7684\u8D44\u6E90\u3002\u6279\u51C6\u540E\u300C\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell\u300D\u8FD9\u4E00\u7C7B\u786E\u8BA4\u4E0D\u518D\u9010\u6761\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\uFF1A/shell-revoke \u6216 /auto remote off\u3002"
1619
+ },
1570
1620
  "shellGrant.confirmTitle": {
1571
- en: "Allow shell commands for shared agent {0}?",
1572
- zh: "\u5141\u8BB8\u5206\u4EAB agent {0} \u6267\u884C shell \u547D\u4EE4\u5417\uFF1F"
1621
+ en: "Allow remote agent {0} to run shell commands on this machine?",
1622
+ zh: "\u5141\u8BB8\u8FDC\u7A0B agent {0} \u5728\u672C\u673A\u6267\u884C shell \u547D\u4EE4\u5417\uFF1F"
1573
1623
  },
1574
1624
  "shellGrant.confirmBody": {
1575
- en: "Agent {0} (owner {1}) asked to run shell commands on this device.\nDevice: {2} ({3})\nWorkspace: {4}\n\nShell commands can read/write anything this user can access. Allowed for the rest of this session; revoke any time with /shell-revoke.",
1576
- zh: "\u5206\u4EAB agent {0}\uFF08\u4E3B\u4EBA {1}\uFF09\u8BF7\u6C42\u5728\u672C\u673A\u6267\u884C shell \u547D\u4EE4\u3002\n\u8BBE\u5907\uFF1A{2}\uFF08{3}\uFF09\n\u5DE5\u4F5C\u533A\uFF1A{4}\n\n\u4EFB\u610F shell \u547D\u4EE4\u53EF\u8BFB\u5199\u672C\u673A\u8BE5\u7528\u6237\u80FD\u8BBF\u95EE\u7684\u5168\u90E8\u8D44\u6E90\u3002\u5141\u8BB8\u540E\u5728\u672C\u4F1A\u8BDD\u6301\u7EED\u6709\u6548\uFF1B\u968F\u65F6\u53EF\u7528 /shell-revoke \u64A4\u9500\u3002"
1625
+ en: "Remote agent {0} (owner {1}) requested to run a shell command on this machine.\nDevice: {2} ({3})\nWorkspace: {4}\nCommand: {5}\n\nShell commands can read/write anything this user can access. Approving covers this whole class: remote-origin shell confirmations stop asking one by one (this session and future starts). Undo with /shell-revoke (this session) or /auto remote off (also clears the saved grant).",
1626
+ zh: "\u8FDC\u7A0B agent {0}\uFF08\u4E3B\u4EBA {1}\uFF09\u8BF7\u6C42\u5728\u672C\u673A\u6267\u884C shell \u547D\u4EE4\u3002\n\u8BBE\u5907\uFF1A{2}\uFF08{3}\uFF09\n\u5DE5\u4F5C\u533A\uFF1A{4}\n\u547D\u4EE4\uFF1A{5}\n\n\u4EFB\u610F shell \u547D\u4EE4\u53EF\u8BFB\u5199\u672C\u673A\u8BE5\u7528\u6237\u80FD\u8BBF\u95EE\u7684\u8D44\u6E90\u3002\u6279\u51C6\u540E\u300C\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell\u300D\u8FD9\u4E00\u7C7B\u786E\u8BA4\u4E0D\u518D\u9010\u6761\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\uFF1A/shell-revoke\uFF08\u672C\u4F1A\u8BDD\uFF09\u6216 /auto remote off\uFF08\u540C\u65F6\u6E05\u9664\u6301\u4E45\u6388\u6743\uFF09\u3002"
1577
1627
  },
1578
1628
  "shellGrant.revoked": {
1579
1629
  en: "[nolo] Shell permission revoked for shared agents in this session.",
@@ -2,7 +2,7 @@ import {
2
2
  clipMultilineText,
3
3
  fetchAndSerializeTable,
4
4
  waitForAbortableDelay
5
- } from "./chunk-RUNKPFM5.js";
5
+ } from "./chunk-CDWHHLK5.js";
6
6
  import {
7
7
  isGatewayHttpStatus
8
8
  } from "./chunk-NF64D32W.js";
@@ -11,31 +11,31 @@ import {
11
11
  isCoreDrainingBody,
12
12
  normalizeNonNegativeMs,
13
13
  parseRetryAfterHeaderMs
14
- } from "./chunk-XPWGOTBQ.js";
14
+ } from "./chunk-3L2WKC3W.js";
15
15
  import {
16
16
  resolvePageReadMarkdown,
17
17
  slateToSimplifiedMarkdown
18
- } from "./chunk-3XZKV7QQ.js";
18
+ } from "./chunk-US6MKPE7.js";
19
19
  import {
20
20
  extractCategorizedMentions
21
21
  } from "./chunk-AGIM7IMJ.js";
22
22
  import {
23
23
  fetchAndCacheMessages
24
- } from "./chunk-H4KACZMG.js";
24
+ } from "./chunk-WTFRBJT5.js";
25
25
  import {
26
26
  createSpaceKey
27
27
  } from "./chunk-UAD2WT54.js";
28
28
  import {
29
29
  read
30
- } from "./chunk-HP6O6LTV.js";
30
+ } from "./chunk-ZVQHBIWV.js";
31
31
  import {
32
32
  getRuntimeServerContext
33
- } from "./chunk-Z6KQDSZW.js";
33
+ } from "./chunk-2SGAI64X.js";
34
34
  import {
35
35
  extractRuntimePageCapabilities,
36
36
  resolveBuiltinSkillPage,
37
37
  resolveSkillGraphFromRoots
38
- } from "./chunk-4Z245KOA.js";
38
+ } from "./chunk-DC3SZCRR.js";
39
39
  import {
40
40
  isAbortError
41
41
  } from "./chunk-7DPNBQSV.js";
@@ -8,7 +8,7 @@ import {
8
8
  noloUploadRequest,
9
9
  noloWriteRequest,
10
10
  syncWithServers
11
- } from "./chunk-7BSQK2UC.js";
11
+ } from "./chunk-WRCZXJ4N.js";
12
12
  import {
13
13
  getAllServers,
14
14
  getIsDesktopApp
@@ -17,7 +17,7 @@ import {
17
17
  selectIdentityToken,
18
18
  selectIdentityUser,
19
19
  selectIdentityUserId
20
- } from "./chunk-SEJ5OS6F.js";
20
+ } from "./chunk-PXYBUFDB.js";
21
21
  import {
22
22
  asOptionalPositiveFiniteNumber
23
23
  } from "./chunk-U6VC4MU4.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NBTY7YJF.js";
6
6
  import {
7
7
  resolveCliLocalRuntimeKeyCapability
8
- } from "./chunk-XFKZ3MCV.js";
8
+ } from "./chunk-YTXQ2U2X.js";
9
9
  import {
10
10
  HIGH_RISK_MUTATION_TOOL_NAMES
11
11
  } from "./chunk-QLQ573SU.js";
@@ -150,7 +150,7 @@ function writeUsage(output, commandPath) {
150
150
  return;
151
151
  }
152
152
  output.write(
153
- "Usage: nolo agent run <agent> <message> [--local|--server|--auto] [--runtime-key <key>] [--ephemeral|--memory-only] [--continue <dialogId>] [--cwd <path>]\n nolo agent run --agent <agent> (--msg <message>|--msg-file <path>) [--image <url-or-path>] [--space <spaceId>] [--category <name>] [--inherit-from-dialog <dialog>] [--parent-dialog <dialog>] [--subject-dialog <dialog>] [--subject-ref <kind:id[:role]>] [--task-row-dbkey <key>] [--fallback-agent <agent>] (suggestions for agent to decide on quota) [--allowed-tool <tool>] [--blocked-tool <tool>] [--read-only] [--runtime-key <key>] [--machine-shell] [--dod <cmd>] [--bg] [--timeout-ms <n>] [--events jsonl] [--no-stream] [--skill <dbKey-or-md-path>]\n"
153
+ "Usage: nolo agent run <agent> <message> [--local|--server|--auto] [--runtime-key <key>] [--docker-workspace-mode git|empty] [--ephemeral|--memory-only] [--continue <dialogId>] [--cwd <path>]\n nolo agent run --agent <agent> (--msg <message>|--msg-file <path>) [--image <url-or-path>] [--space <spaceId>] [--category <name>] [--inherit-from-dialog <dialog>] [--parent-dialog <dialog>] [--subject-dialog <dialog>] [--subject-ref <kind:id[:role]>] [--task-row-dbkey <key>] [--fallback-agent <agent>] (suggestions for agent to decide on quota) [--allowed-tool <tool>] [--blocked-tool <tool>] [--read-only] [--runtime-key <key>] [--docker-workspace-mode git|empty] [--machine-shell] [--dod <cmd>] [--bg] [--timeout-ms <n>] [--events jsonl] [--no-stream] [--skill <dbKey-or-md-path>]\n"
154
154
  );
155
155
  }
156
156
  function parseAgentRunArgs(args, options = {}) {
@@ -166,6 +166,21 @@ function parseAgentRunArgs(args, options = {}) {
166
166
  const message = rawMessage.trim();
167
167
  const rawRuntimeKey = readFlagValue(args, "--runtime-key");
168
168
  const runtimeKey = rawRuntimeKey?.trim();
169
+ const rawDockerWorkspaceMode = readFlagValue(args, "--docker-workspace-mode")?.trim();
170
+ if (args.includes("--docker-workspace-mode") && rawDockerWorkspaceMode !== "git" && rawDockerWorkspaceMode !== "empty") {
171
+ throw new Error("--docker-workspace-mode \u5FC5\u987B\u662F git \u6216 empty");
172
+ }
173
+ const dockerWorkspaceMode = rawDockerWorkspaceMode;
174
+ if (dockerWorkspaceMode && !/^docker(:.+)?$/.test(runtimeKey ?? "")) {
175
+ throw new Error("--docker-workspace-mode \u4EC5\u9002\u7528\u4E8E --runtime-key docker[:runtimeId]");
176
+ }
177
+ const dockerWorkspaceModeRuntimeMode = runtimeModeFromArgs(args);
178
+ const dockerWorkspaceModeImplicitLocal = !dockerWorkspaceModeRuntimeMode && (isFullstackCodingAgentRef(rawAgentKey, agentKey) || isLocalCliAgentKey(agentKey) || args.includes("--dangerously-allow-shell"));
179
+ if (dockerWorkspaceMode && dockerWorkspaceModeRuntimeMode !== "local" && !dockerWorkspaceModeImplicitLocal) {
180
+ throw new Error(
181
+ "--docker-workspace-mode \u9700\u8981\u672C\u673A\u6267\u884C\u8DEF\u5F84\uFF1A\u4E0D\u5E26 --local \u65F6 runtimeMode \u89E3\u6790\u4E3A auto\uFF0C\u8BE5\u53C2\u6570\u4F1A\u88AB\u9759\u9ED8\u4E22\u5F03\u5E76\u6539\u8D70\u670D\u52A1\u7AEF\u6D3E\u53D1\u3002\u8BF7\u52A0 --local\uFF1B\u9690\u5F0F local\uFF08fullstack / local-cli agent / --dangerously-allow-shell\uFF09\u540C\u6837\u88AB\u63A5\u53D7\u3002"
182
+ );
183
+ }
169
184
  if (args.includes("--runtime-key") && !runtimeKey) {
170
185
  throw new Error(
171
186
  "runtimeKey \u5FC5\u987B\u662F\u975E\u7A7A\u7684 listRuntimes key\uFF08local | server | machine:<machineId> | docker | docker:<runtimeId> | instabox | gcp\uFF09"
@@ -244,6 +259,7 @@ function parseAgentRunArgs(args, options = {}) {
244
259
  } : {},
245
260
  ...runtimeMode ? { runtimeMode } : !runtimeKey && (fullstackLocalWorkspaceDefault || explicitLocalCliAgentDefault || args.includes("--dangerously-allow-shell")) ? { runtimeMode: "local" } : {},
246
261
  ...runtimeKey ? { runtimeKey } : {},
262
+ ...dockerWorkspaceMode ? { dockerWorkspaceMode } : {},
247
263
  background: args.includes("--bg"),
248
264
  noStream: args.includes("--no-stream"),
249
265
  machineShell: args.includes("--machine-shell"),
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSelector
3
- } from "./chunk-7BSQK2UC.js";
3
+ } from "./chunk-WRCZXJ4N.js";
4
4
  import {
5
5
  getAllServers,
6
6
  getIsDesktopApp
@@ -24,12 +24,6 @@ async function isDrainExhaustedResponse(response) {
24
24
  }
25
25
  }
26
26
 
27
- // packages/core/positiveFiniteNumberOrFallback.ts
28
- function parsePositiveFiniteNumberOrFallback(value, fallback) {
29
- const parsed = Number(value);
30
- return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
31
- }
32
-
33
27
  // packages/core/retryAfterMs.ts
34
28
  function normalizeNonNegativeMs(value, fallbackMs) {
35
29
  const parsed = Number(value);
@@ -57,6 +51,5 @@ export {
57
51
  createDrainExhaustedResponse,
58
52
  isDrainExhaustedResponse,
59
53
  normalizeNonNegativeMs,
60
- parseRetryAfterHeaderMs,
61
- parsePositiveFiniteNumberOrFallback
54
+ parseRetryAfterHeaderMs
62
55
  };
@@ -24,9 +24,8 @@ import {
24
24
  } from "./chunk-PWTNI4N7.js";
25
25
  import {
26
26
  hasImageInRuntimeMessages,
27
- resolveAgentContextWindow,
28
27
  stripImagePartsFromMessages
29
- } from "./chunk-ANJTRG52.js";
28
+ } from "./chunk-G2WP7VPD.js";
30
29
  import {
31
30
  clipToolText,
32
31
  resolveAgentImageInputSupport,
@@ -52,7 +51,9 @@ import {
52
51
  finalizeAccumulatedToolCalls
53
52
  } from "./chunk-56GBUMO5.js";
54
53
  import {
54
+ CREDENTIAL_HYGIENE_RULE,
55
55
  DELETE_SAFETY_RED_LINE,
56
+ DISPATCH_BACKEND_POLICY,
56
57
  PARALLEL_DISPATCH_DEFAULT_RULE,
57
58
  PLATFORM_RISK_CONTROL_RULE,
58
59
  TOOL_GUIDED_SECTION_ORDER,
@@ -63,8 +64,9 @@ import {
63
64
  detectDispatchIntentFromMessages,
64
65
  estimateContextTokens,
65
66
  hashStablePrefixContent,
67
+ resolveResponseGuidelines,
66
68
  resolveToolGuidedSections
67
- } from "./chunk-TYND6RDQ.js";
69
+ } from "./chunk-LV4LV2B4.js";
68
70
  import {
69
71
  classifyUnparsableToolArgs,
70
72
  collectStablePromptPrefix,
@@ -114,10 +116,11 @@ import {
114
116
  normalizeUsage,
115
117
  readCacheCreationInputTokens,
116
118
  readCacheReadInputTokens,
119
+ resolveAgentContextWindow,
117
120
  resolveEmptyAssistantFallbackMessage,
118
121
  resolveEmptyAssistantOutcome,
119
122
  resolveTruncatedReasoningTailLog
120
- } from "./chunk-ZWG3C7VI.js";
123
+ } from "./chunk-C6FY7HWI.js";
121
124
  import {
122
125
  COMPACTION_SUMMARY_SCHEMA_VERSION,
123
126
  COMPACTION_SUMMARY_SYSTEM_PROMPT,
@@ -18463,7 +18466,11 @@ async function executeToolCall(args2) {
18463
18466
  ...userInputText ? { userInput: userInputText } : {},
18464
18467
  ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {},
18465
18468
  ...args2.runToolNames ? { runToolNames: args2.runToolNames } : {},
18466
- ...input.abortSignal ? { abortSignal: input.abortSignal } : {}
18469
+ ...input.abortSignal ? { abortSignal: input.abortSignal } : {},
18470
+ // 定档信号:来源只由 turn 输入推导,不让模型/参数层参与。
18471
+ // 三级判据见 plan §10——后台运行优先于子 run(后台派发的子 run 仍是
18472
+ // 无人值守的,按 automation 报更保守)。
18473
+ origin: input.background ? "automation" : input.runKind === "subtask" ? "agent" : "chat"
18467
18474
  }, {
18468
18475
  ...input.abortSignal ? { abortSignal: input.abortSignal } : {},
18469
18476
  ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {}
@@ -19756,18 +19763,38 @@ async function runLocalAgentTurn(input) {
19756
19763
  input.contextBlocks,
19757
19764
  input.contextBlockScopes
19758
19765
  );
19766
+ const responseGuidelines = resolveResponseGuidelines(
19767
+ input.responseViewport ?? "unknown"
19768
+ );
19769
+ const responseGuidelineScopes = [
19770
+ { content: responseGuidelines.behavior, cacheScope: "session" },
19771
+ ...responseGuidelines.presentation.trim().length > 0 ? [
19772
+ {
19773
+ content: responseGuidelines.presentation,
19774
+ cacheScope: "session"
19775
+ }
19776
+ ] : []
19777
+ ];
19759
19778
  const mergedContextBlockScopes = [
19760
19779
  // 删除安全红线:系统层最高优先级约束,位于所有块之前(含身份信息块),
19761
19780
  // owner 要求常驻「根本提示词」的最顶部(2026-09-26 批量误删事故)。
19762
19781
  { content: DELETE_SAFETY_RED_LINE, cacheScope: "session" },
19782
+ // 凭据纪律:与红线同为系统层固定块,紧随其后(四条装配线同源)。
19783
+ { content: CREDENTIAL_HYGIENE_RULE, cacheScope: "session" },
19763
19784
  // 并行是默认:系统层固定块,紧随红线(localLoop 无 static 作用域,用 session 占位,
19764
19785
  // 「最顶」由数组首位保证——与红线同一约定)。
19765
19786
  { content: PARALLEL_DISPATCH_DEFAULT_RULE, cacheScope: "session" },
19787
+ // 派发落点:并行派发纪律的下一层(派到哪个执行后端),沿用 session 占位约定。
19788
+ { content: DISPATCH_BACKEND_POLICY, cacheScope: "session" },
19766
19789
  // 平台风控纪律:无条件系统层块,沿用 session 占位约定。
19767
19790
  { content: PLATFORM_RISK_CONTROL_RULE, cacheScope: "session" },
19768
19791
  { content: buildConsultationModeBlock(), cacheScope: "session" },
19769
19792
  { content: identityBlock, cacheScope: "session" },
19770
19793
  ...guidanceScopes,
19794
+ // 回复行为准则:local 线(CLI 非交互 / 桌面 / TUI)的唯一注入边界。
19795
+ // 行为段恒注入;排版段只在宿主声明了可确认的展示能力时追加一份
19796
+ // (unknown = 拿不到视口信息,不得猜成宽屏或窄屏)。两块同属 session scope。
19797
+ ...responseGuidelineScopes,
19771
19798
  ...callerScopes
19772
19799
  ];
19773
19800
  loopTiming.mark("buildContextBlocks", 0);
@@ -21677,7 +21704,7 @@ function buildLoadSkillExecutor(args2) {
21677
21704
  const { resolveSkillByName } = await import("./skillDiscovery-QC35EQY4.js");
21678
21705
  const resolved = resolveSkillByName(args2.cwd, name);
21679
21706
  if (!resolved) {
21680
- const { resolveBuiltinSkillByName } = await import("./builtinSkillRegistry-A6VSPJEJ.js");
21707
+ const { resolveBuiltinSkillByName } = await import("./builtinSkillRegistry-H3AY27TR.js");
21681
21708
  const builtin = resolveBuiltinSkillByName(name);
21682
21709
  if (builtin) {
21683
21710
  return {
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-CF7PE763.js";
10
10
  import {
11
11
  loadProfileConfig
12
- } from "./chunk-TNIX77YM.js";
12
+ } from "./chunk-R5GO3YZP.js";
13
13
  import {
14
14
  resolveDefaultSpawn
15
15
  } from "./chunk-Y6ROFCZO.js";
@@ -2,14 +2,14 @@ import {
2
2
  patch,
3
3
  remove,
4
4
  write
5
- } from "./chunk-HP6O6LTV.js";
5
+ } from "./chunk-ZVQHBIWV.js";
6
6
  import {
7
7
  getRuntimeServerContext
8
- } from "./chunk-Z6KQDSZW.js";
8
+ } from "./chunk-2SGAI64X.js";
9
9
  import {
10
10
  asyncThunkCreator,
11
11
  buildCreateSlice
12
- } from "./chunk-7BSQK2UC.js";
12
+ } from "./chunk-WRCZXJ4N.js";
13
13
  import {
14
14
  applyAgentSecretMigrationUpdates,
15
15
  migrateAgentSecrets,
@@ -308,7 +308,7 @@ var slice = createSliceWithThunks({
308
308
  const overrides = {};
309
309
  if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
310
310
  if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
311
- const { _executeModel } = await import("./_executeModel-5WS2PA62.js");
311
+ const { _executeModel } = await import("./_executeModel-6BMU3URY.js");
312
312
  return _executeModel(
313
313
  {
314
314
  isStreaming: args.isStreaming ?? false,
@@ -329,7 +329,7 @@ var slice = createSliceWithThunks({
329
329
  * - 循环直到无工具调用或触发其他运行时停止条件
330
330
  */
331
331
  runAgent: create.asyncThunk(async (args, thunkApi) => {
332
- const { runAgentClientLoop } = await import("./runAgentClientLoop-5QIGEALK.js");
332
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-3KHKKBZI.js");
333
333
  const { content: loopContent, toolCallCount } = await runAgentClientLoop(
334
334
  {
335
335
  agentKey: args.agentKey,
@@ -345,7 +345,7 @@ var slice = createSliceWithThunks({
345
345
  * 聊天轮次流式 Agent 调用
346
346
  */
347
347
  streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
348
- const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-456DWXNY.js");
348
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-DMXXSEVX.js");
349
349
  return streamAgentChatTurnHandler(args, thunkApi);
350
350
  }),
351
351
  /**
@@ -10,9 +10,7 @@ var OAUTH_PROVIDER_REFS = [
10
10
  "antigravity",
11
11
  "claude",
12
12
  "cursor",
13
- "devin",
14
- "workbuddy",
15
- "workbuddy-ai"
13
+ "devin"
16
14
  ];
17
15
  var METERED_API_KEY_REF_PREFIX = "api-key:";
18
16
  var normalizeRef = (ref) => typeof ref === "string" ? ref.trim().toLowerCase() : "";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  buildStaticUserPolicyContext,
3
3
  resolveSpaceContextPreloadPlan
4
- } from "./chunk-T6CBQ6BN.js";
4
+ } from "./chunk-INFHX73M.js";
5
5
  import {
6
6
  fetchReferenceContents,
7
7
  mergeReferences,
8
8
  resolveReferenceAssets,
9
9
  resolveToolsFromKeys
10
- } from "./chunk-VSOWPETY.js";
10
+ } from "./chunk-2BKUVRC5.js";
11
11
  import {
12
12
  UI_CARD_ENVELOPE_MAX_BYTES,
13
13
  getAllToolRuns,
@@ -20,10 +20,10 @@ import {
20
20
  selectSpaceContextLevel,
21
21
  selectUserTonePreset,
22
22
  uiCardFallback
23
- } from "./chunk-RUNKPFM5.js";
23
+ } from "./chunk-CDWHHLK5.js";
24
24
  import {
25
25
  resolveToolBaseUrl
26
- } from "./chunk-CBHGZRCE.js";
26
+ } from "./chunk-MYOH447Z.js";
27
27
  import {
28
28
  getFinalPrice,
29
29
  getModelPricing,
@@ -32,15 +32,15 @@ import {
32
32
  } from "./chunk-YANF2RR4.js";
33
33
  import {
34
34
  getDocState
35
- } from "./chunk-OH2M7WEU.js";
35
+ } from "./chunk-EQGFFDNA.js";
36
36
  import {
37
37
  getTableState
38
- } from "./chunk-VAZHH6FO.js";
38
+ } from "./chunk-VDEVDGEM.js";
39
39
  import {
40
40
  PERSONALIZATION_DIALOG_CATEGORY,
41
41
  buildPersonalizationDialogPolicyContext,
42
42
  selectAllMsgs
43
- } from "./chunk-H4KACZMG.js";
43
+ } from "./chunk-WTFRBJT5.js";
44
44
  import {
45
45
  getCurrentSpaceIdRaw,
46
46
  getViewMode
@@ -51,12 +51,12 @@ import {
51
51
  import {
52
52
  read,
53
53
  selectById
54
- } from "./chunk-HP6O6LTV.js";
54
+ } from "./chunk-ZVQHBIWV.js";
55
55
  import {
56
56
  getSessionSnapshotForState,
57
57
  selectIdentityUserBalance,
58
58
  selectIdentityUserId
59
- } from "./chunk-SEJ5OS6F.js";
59
+ } from "./chunk-PXYBUFDB.js";
60
60
  import {
61
61
  TOOL_PACKS,
62
62
  addDefaultSystemCapabilityTools,
@@ -76,7 +76,7 @@ import {
76
76
  } from "./chunk-WJZOQR2J.js";
77
77
  import {
78
78
  extractReferenceKeysFromMessage
79
- } from "./chunk-ZWG3C7VI.js";
79
+ } from "./chunk-C6FY7HWI.js";
80
80
  import {
81
81
  getModelContextWindow,
82
82
  planContextUsage
@@ -1,11 +1,13 @@
1
+ import {
2
+ parsePositiveFiniteNumberOrFallback
3
+ } from "./chunk-Y5GCAMGP.js";
1
4
  import {
2
5
  isGatewayHttpStatus
3
6
  } from "./chunk-NF64D32W.js";
4
7
  import {
5
8
  CORE_DRAIN_REASON,
6
- parsePositiveFiniteNumberOrFallback,
7
9
  parseRetryAfterHeaderMs
8
- } from "./chunk-XPWGOTBQ.js";
10
+ } from "./chunk-3L2WKC3W.js";
9
11
  import {
10
12
  asTrimmedLowercaseString
11
13
  } from "./chunk-QSJ3HFEF.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-XFKZ3MCV.js";
3
+ } from "./chunk-YTXQ2U2X.js";
4
4
  import {
5
5
  runtime_default
6
- } from "./chunk-H4KACZMG.js";
6
+ } from "./chunk-WTFRBJT5.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-5EBLANFT.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  readDbRecord,
3
3
  writeAgentRecord
4
- } from "./chunk-HKT6QXP3.js";
4
+ } from "./chunk-ZEY4NJRE.js";
5
5
  import {
6
6
  buildSkillSummaryMarker
7
7
  } from "./chunk-VF4K2QE6.js";