@symerian/symi 2.0.15 → 2.0.16

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 (165) hide show
  1. package/dist/{acp-cli-BKh-53nn.js → acp-cli-CSX62tsS.js} +2 -2
  2. package/dist/{acp-cli-CRT2rkIR.js → acp-cli-CrfY9UHo.js} +2 -2
  3. package/dist/{agents-CNsMe4Dr.js → agents-CP6mOf0j.js} +5 -5
  4. package/dist/{agents.config-CdDf19dm.js → agents.config-CFps8Krs.js} +1 -1
  5. package/dist/{agents.config-yx78oSLx.js → agents.config-Da5XukaM.js} +1 -1
  6. package/dist/{audio-preflight-CO2seHjy.js → audio-preflight-CQ5_RYEe.js} +2 -2
  7. package/dist/{audio-preflight-B8ffbICW.js → audio-preflight-Cq4C-m27.js} +4 -4
  8. package/dist/{audit-CiugrQda.js → audit-Do2bVss3.js} +2 -2
  9. package/dist/{audit-DKUpFt8z.js → audit-x_SzU263.js} +2 -2
  10. package/dist/{auth-choice-mw9ndZQO.js → auth-choice-CZ9ugRNS.js} +4 -4
  11. package/dist/{auth-choice-CXMFi9LR.js → auth-choice-za414gQg.js} +2 -2
  12. package/dist/{banner-B-joBGLz.js → banner-DHgxDWv_.js} +1 -1
  13. package/dist/{browser-cli-Bk7Q_04S.js → browser-cli-BydQRa6Z.js} +3 -3
  14. package/dist/{browser-cli-iXhPMwGZ.js → browser-cli-Bz2dcSy1.js} +3 -3
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +1 -1
  17. package/dist/bundled/session-memory/handler.js +1 -1
  18. package/dist/{call-BQiCOxB6.js → call-BVw7l9v8.js} +1 -1
  19. package/dist/{call-BNyqFDDZ.js → call-CJYWtIM9.js} +1 -1
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-D74Jofp4.js → channel-options-BCZol8_4.js} +1 -1
  22. package/dist/{channel-options-XPRRVrmU.js → channel-options-D7RdZp1E.js} +1 -1
  23. package/dist/{channel-web-vRvvtf0S.js → channel-web-Dki5eEiP.js} +2 -2
  24. package/dist/{channels-cli-DgxPfJF7.js → channels-cli-CILkYyG3.js} +7 -7
  25. package/dist/{channels-cli-D3lj5dXo.js → channels-cli-CwliXNUk.js} +9 -9
  26. package/dist/{chrome-B_zrSLce.js → chrome-h6BnL8Lp.js} +7 -7
  27. package/dist/cli/daemon-cli.js +1 -1
  28. package/dist/{cli-Bg_5WQFe.js → cli-CLHi2LEP.js} +4 -4
  29. package/dist/{cli-DQQAfUbo.js → cli-aAOs92a8.js} +6 -6
  30. package/dist/{client-Cnoh7nRo.js → client-CQSyCS4M.js} +2 -1
  31. package/dist/{client-LeVQns9-.js → client-DMBZpU6X.js} +2 -1
  32. package/dist/{command-registry-Cde2LqTh.js → command-registry-OHfvK1Oq.js} +10 -10
  33. package/dist/{completion-cli-KJUTWJP3.js → completion-cli-D7iBY_Z-.js} +2 -2
  34. package/dist/{completion-cli-Cx9htCOm.js → completion-cli-DSHmAUFN.js} +1 -1
  35. package/dist/{config-cli-C5-P9Nzz.js → config-cli-BlusBXAA.js} +1 -1
  36. package/dist/{config-cli-ozfA6MGF.js → config-cli-CcbYdW1-.js} +1 -1
  37. package/dist/{configure-DiuQ_aTS.js → configure-CJf-vDqN.js} +8 -8
  38. package/dist/{configure-ktsZw1bT.js → configure-rrxn5n5n.js} +6 -6
  39. package/dist/control-ui/css/style.css +9 -0
  40. package/dist/control-ui/js/app.js +137 -0
  41. package/dist/control-ui/js/gateway.js +10 -2
  42. package/dist/{cron-cli-iWejT5dL.js → cron-cli-B9s3FO4y.js} +3 -3
  43. package/dist/{cron-cli-BVy2Ysgu.js → cron-cli-CMb8Tfrd.js} +3 -3
  44. package/dist/{daemon-cli-BU1FofT_.js → daemon-cli-DY782AjS.js} +2 -2
  45. package/dist/{daemon-cli-CFZpc0hg.js → daemon-cli-duUjaj82.js} +2 -2
  46. package/dist/daemon-cli.js +2 -1
  47. package/dist/{deliver-CkjSfucB.js → deliver-CZF9f8aC.js} +1 -1
  48. package/dist/{devices-cli-DC8knKQP.js → devices-cli-Cahrr6Rd.js} +2 -2
  49. package/dist/{devices-cli-CKAh6Hnl.js → devices-cli-Ch8p42OS.js} +2 -2
  50. package/dist/{doctor-completion-Vwi_je1c.js → doctor-completion-B6R-Um0m.js} +1 -1
  51. package/dist/{doctor-completion-CrN6Ly8x.js → doctor-completion-Db9Ka2VX.js} +1 -1
  52. package/dist/entry.js +1 -1
  53. package/dist/{exec-approvals-cli-CfrLzlfe.js → exec-approvals-cli-CSTHY6Vs.js} +4 -4
  54. package/dist/{exec-approvals-cli-D7ZfJtB3.js → exec-approvals-cli-lduNEUnu.js} +4 -4
  55. package/dist/extensionAPI.js +6 -6
  56. package/dist/{gateway-cli-DyqK4XZ1.js → gateway-cli-DVzEvDKA.js} +16 -16
  57. package/dist/{gateway-cli-CwO3878F.js → gateway-cli-VZ3pwSh3.js} +14 -14
  58. package/dist/{gateway-rpc-BnsXD9QK.js → gateway-rpc-BTXPWO6j.js} +1 -1
  59. package/dist/{gateway-rpc-XxpDa3Bd.js → gateway-rpc-Cx0HPjI7.js} +1 -1
  60. package/dist/{glass-ui-ws-BmqwQaCf.js → glass-ui-ws-CAm9wWND.js} +21 -15
  61. package/dist/{glass-ui-ws-zVNodseh.js → glass-ui-ws-DmPVzO59.js} +23 -17
  62. package/dist/{health-UjXEBnzA.js → health-CYZdOaco.js} +2 -2
  63. package/dist/{health-Q1RP1M2f.js → health-CnH3J7xA.js} +2 -2
  64. package/dist/{hooks-cli-D4qJl6do.js → hooks-cli-C7tb9Ef0.js} +5 -5
  65. package/dist/{hooks-cli-DOT9uGZw.js → hooks-cli-CHMoGB4O.js} +7 -7
  66. package/dist/{image-CSeAnozE.js → image-DOnOTocl.js} +1 -1
  67. package/dist/index.js +11 -11
  68. package/dist/llm-slug-generator.js +1 -1
  69. package/dist/{logs-cli-D3iVwGDc.js → logs-cli-Cvhx1c0V.js} +3 -3
  70. package/dist/{logs-cli-DfFvgxqj.js → logs-cli-DUzUCojZ.js} +3 -3
  71. package/dist/{model-catalog-DjJ9GtKX.js → model-catalog-CX8kAHv8.js} +1 -1
  72. package/dist/{model-picker-DXwUsLAy.js → model-picker-CDXdeNr-.js} +1 -1
  73. package/dist/{models-cli-ULbdeSgc.js → models-cli-CTptBZ1_.js} +8 -8
  74. package/dist/{models-cli-BS6UJ98e.js → models-cli-xt0_lwNn.js} +6 -6
  75. package/dist/{models-DKsiIvSx.js → models-wHzbWyGd.js} +3 -3
  76. package/dist/{node-cli-Dq7jjGmU.js → node-cli-BhCoxgBf.js} +1 -1
  77. package/dist/{node-cli-BDruQPgf.js → node-cli-C8scjTTR.js} +1 -1
  78. package/dist/{nodes-cli-CO1-qlpY.js → nodes-cli-BHnGJEDY.js} +3 -3
  79. package/dist/{nodes-cli-D71AOvPL.js → nodes-cli-DvFB1bRc.js} +3 -3
  80. package/dist/{onboard-Bt-BwfkR.js → onboard-CLT8dKkn.js} +3 -3
  81. package/dist/{onboard-B387frTY.js → onboard-CqrqIyTw.js} +5 -5
  82. package/dist/{onboard-channels-COcxT5Q0.js → onboard-channels-B1qEMRuK.js} +1 -1
  83. package/dist/{onboard-channels-ybPEmcP8.js → onboard-channels-Dq99OYWi.js} +1 -1
  84. package/dist/{onboard-custom-DoIhWPnb.js → onboard-custom-BPHkLBMT.js} +1 -1
  85. package/dist/{onboard-helpers-BuSj9DUm.js → onboard-helpers-CYxzQfe5.js} +1 -1
  86. package/dist/{onboard-helpers-CUQrf3zD.js → onboard-helpers-Dsr4zKCb.js} +1 -1
  87. package/dist/{onboard-remote-DTYzroFm.js → onboard-remote-3c_muVej.js} +1 -1
  88. package/dist/{onboard-remote-BSjc42yV.js → onboard-remote-d48SMpNw.js} +1 -1
  89. package/dist/{onboard-skills-BD8JNVwL.js → onboard-skills-2HJIpm3O.js} +1 -1
  90. package/dist/{onboard-skills-70EumFmD.js → onboard-skills-b_chEkYH.js} +1 -1
  91. package/dist/{onboarding-BibGEGIS.js → onboarding-Bs82247P.js} +7 -7
  92. package/dist/{onboarding-CdN_NU2d.js → onboarding-yfMTHyHB.js} +9 -9
  93. package/dist/{onboarding.finalize-CY1NjrGb.js → onboarding.finalize-DkZuXXiU.js} +10 -10
  94. package/dist/{onboarding.finalize-CvahVrDM.js → onboarding.finalize-QC0g7ZLU.js} +11 -11
  95. package/dist/{onboarding.gateway-config-Cj_s_IG8.js → onboarding.gateway-config-BkXJPv7f.js} +3 -3
  96. package/dist/{onboarding.gateway-config-DipSuaKH.js → onboarding.gateway-config-stm3z82Y.js} +3 -3
  97. package/dist/{pi-auth-json-DuUL9qfI.js → pi-auth-json-B83DuyYZ.js} +1 -1
  98. package/dist/{pi-embedded-9wEA_0mu.js → pi-embedded-B3nbPN60.js} +18 -17
  99. package/dist/{pi-embedded-BjzaB3CT.js → pi-embedded-DDe6lqPs.js} +4 -3
  100. package/dist/{pi-embedded-helpers-BmYZe8o8.js → pi-embedded-helpers--yFTAWwW.js} +4 -4
  101. package/dist/{plugin-registry-CEoSVvL1.js → plugin-registry-DWJeC9bW.js} +1 -1
  102. package/dist/{plugin-registry-BAbkdLQ7.js → plugin-registry-SCI1BVkI.js} +1 -1
  103. package/dist/plugin-sdk/{channel-web-xXTpy0N_.js → channel-web-BUTyAx0r.js} +1 -1
  104. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -0
  105. package/dist/plugin-sdk/index.js +2 -2
  106. package/dist/plugin-sdk/{reply-EEvLfWgt.js → reply-CjWIATx5.js} +4 -3
  107. package/dist/plugin-sdk/{web-COWtpMAH.js → web-C1q3B85D.js} +2 -2
  108. package/dist/{plugins-cli-C_S07pgO.js → plugins-cli-D2GDnmKk.js} +7 -7
  109. package/dist/{plugins-cli-BpuQ7Y9l.js → plugins-cli-QSrupxLG.js} +5 -5
  110. package/dist/{program-cO9YX6wL.js → program-7hcHnpYu.js} +10 -10
  111. package/dist/{program-context-QBBvnWFX.js → program-context-CIOqtCr8.js} +29 -29
  112. package/dist/{prompt-select-styled-D3dYbx2P.js → prompt-select-styled-DC-k-kBQ.js} +6 -6
  113. package/dist/{prompt-select-styled-CepuQSKg.js → prompt-select-styled-DpVAhv1V.js} +7 -7
  114. package/dist/{provider-auth-helpers-DXqvuBCi.js → provider-auth-helpers-BGhm_DOe.js} +1 -1
  115. package/dist/{provider-auth-helpers-BMACaaEd.js → provider-auth-helpers-DvwmlisW.js} +1 -1
  116. package/dist/{push-apns-8YIzbTM7.js → push-apns-BZu5OVg5.js} +1 -1
  117. package/dist/{push-apns-DhZgao_r.js → push-apns-CiOx7dgB.js} +1 -1
  118. package/dist/{pw-ai-s-d46DCX.js → pw-ai-C_C5as1t.js} +1 -1
  119. package/dist/{register.agent-CiTS9lyx.js → register.agent-CDD5Z9Fj.js} +11 -11
  120. package/dist/{register.agent-CSUoUVKd.js → register.agent-Ds6PkEYl.js} +9 -9
  121. package/dist/{register.configure-CuCVLOW0.js → register.configure-CBRYdCX2.js} +11 -11
  122. package/dist/{register.configure-BbE9MAer.js → register.configure-COyj6XWC.js} +15 -15
  123. package/dist/{register.maintenance-CJG75LTu.js → register.maintenance-CyJQDrP0.js} +11 -11
  124. package/dist/{register.maintenance-D8bthvou.js → register.maintenance-DwHXDl_N.js} +12 -12
  125. package/dist/{register.message-CyqE4E2O.js → register.message-BNe6-SJE.js} +5 -5
  126. package/dist/{register.message-nUpHGrEE.js → register.message-CvQ7LEYe.js} +7 -7
  127. package/dist/{register.onboard-Dlw-TCPH.js → register.onboard-BxxfWU46.js} +11 -11
  128. package/dist/{register.onboard-BDlne5KX.js → register.onboard-CuRnx0wV.js} +7 -7
  129. package/dist/{register.setup-B8kiMuah.js → register.setup-B4rO_Fld.js} +11 -11
  130. package/dist/{register.setup-ByMyofSq.js → register.setup-qmcQQ6EM.js} +7 -7
  131. package/dist/{register.status-health-sessions-0odRpA-p.js → register.status-health-sessions-4OEVg4h6.js} +7 -7
  132. package/dist/{register.status-health-sessions-Diirshgb.js → register.status-health-sessions-CQ0_UB_j.js} +9 -9
  133. package/dist/{register.subclis-CqEj9vfW.js → register.subclis-68XcQ3ao.js} +20 -20
  134. package/dist/{reply-B9o45s3E.js → reply-DI3kOl7x.js} +9 -9
  135. package/dist/{rpc-K2mc_55f.js → rpc-CvzWzHjS.js} +1 -1
  136. package/dist/{rpc-B8S3CF-2.js → rpc-DfC0wvv1.js} +1 -1
  137. package/dist/{run-main-C__lZ7VF.js → run-main-DiJI5-hU.js} +17 -17
  138. package/dist/{runner-C0tJTZmp.js → runner-VHq3quQZ.js} +1 -1
  139. package/dist/{runner-CJJY2r19.js → runner-uDZlTCm2.js} +1 -1
  140. package/dist/{security-cli-Bt0VkUtO.js → security-cli-BPqLtK8x.js} +3 -3
  141. package/dist/{security-cli-YGXUUBvD.js → security-cli-BTcKFy-k.js} +3 -3
  142. package/dist/{server-methods-Df9KsV_-.js → server-methods-B_JpD0c-.js} +29 -13
  143. package/dist/{server-methods-B_NSJmhc.js → server-methods-DnTo3Oou.js} +29 -13
  144. package/dist/{server-node-events-ZG0SBDkU.js → server-node-events-IlWB4f_P.js} +7 -7
  145. package/dist/{server-node-events-C2mugatX.js → server-node-events-t5pGPXLD.js} +5 -5
  146. package/dist/{status-PADx9rG7.js → status-BXQGCrxj.js} +5 -5
  147. package/dist/{status-BTF6_aBO.js → status-cWLYsK8x.js} +1 -1
  148. package/dist/{status-BytVj4kU.js → status-kOpLSgWJ.js} +1 -1
  149. package/dist/{status-hgm5EhwS.js → status-s1Tp-jVl.js} +5 -5
  150. package/dist/{subagent-registry-BR2Qhqjf.js → subagent-registry-XHBZsH3Q.js} +5 -5
  151. package/dist/{system-cli-BMrwtPdR.js → system-cli-D10NhXw1.js} +3 -3
  152. package/dist/{system-cli-B_cCDKOu.js → system-cli-DPNDYRBr.js} +3 -3
  153. package/dist/{tui-0rURH3b3.js → tui-4d-MyU6O.js} +2 -2
  154. package/dist/{tui-cli-D3VMk5c8.js → tui-cli-9uTZZ13F.js} +3 -3
  155. package/dist/{tui-cli-hcbzeOtp.js → tui-cli-BsSKYVE3.js} +3 -3
  156. package/dist/{tui-CcirlGg5.js → tui-pvq_HI-q.js} +2 -2
  157. package/dist/{update-cli-CHr8rjf-.js → update-cli-B3VC_mrH.js} +12 -12
  158. package/dist/{update-cli-qacplfF4.js → update-cli-_1YRH17q.js} +13 -13
  159. package/dist/{update-runner-DM8zQvQB.js → update-runner-DBbX4Iin.js} +1 -1
  160. package/dist/{update-runner-DNA7FJa2.js → update-runner-Dsc1_XOK.js} +1 -1
  161. package/dist/{web-BKQnrqo-.js → web-CmZZsoMg.js} +1 -1
  162. package/dist/{web-CAnxcgBD.js → web-DjgeLZ5l.js} +6 -6
  163. package/dist/{web-DkQc82PT.js → web-DzjJ_iNt.js} +4 -4
  164. package/dist/{web-UroM-w6c.js → web-JIG-oxRW.js} +7 -7
  165. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { an as getPrimaryCommand, cn as hasHelpOrVersion } from "./entry.js";
3
- import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-CqEj9vfW.js";
3
+ import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-68XcQ3ao.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -22,7 +22,7 @@ const coreEntries = [
22
22
  hasSubcommands: false
23
23
  }],
24
24
  register: async ({ program }) => {
25
- (await import("./register.setup-ByMyofSq.js")).registerSetupCommand(program);
25
+ (await import("./register.setup-qmcQQ6EM.js")).registerSetupCommand(program);
26
26
  }
27
27
  },
28
28
  {
@@ -32,7 +32,7 @@ const coreEntries = [
32
32
  hasSubcommands: false
33
33
  }],
34
34
  register: async ({ program }) => {
35
- (await import("./register.onboard-BDlne5KX.js")).registerOnboardCommand(program);
35
+ (await import("./register.onboard-CuRnx0wV.js")).registerOnboardCommand(program);
36
36
  }
37
37
  },
38
38
  {
@@ -42,7 +42,7 @@ const coreEntries = [
42
42
  hasSubcommands: false
43
43
  }],
44
44
  register: async ({ program }) => {
45
- (await import("./register.configure-CuCVLOW0.js")).registerConfigureCommand(program);
45
+ (await import("./register.configure-CBRYdCX2.js")).registerConfigureCommand(program);
46
46
  }
47
47
  },
48
48
  {
@@ -52,7 +52,7 @@ const coreEntries = [
52
52
  hasSubcommands: true
53
53
  }],
54
54
  register: async ({ program }) => {
55
- (await import("./config-cli-ozfA6MGF.js")).registerConfigCli(program);
55
+ (await import("./config-cli-CcbYdW1-.js")).registerConfigCli(program);
56
56
  }
57
57
  },
58
58
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  }
80
80
  ],
81
81
  register: async ({ program }) => {
82
- (await import("./register.maintenance-CJG75LTu.js")).registerMaintenanceCommands(program);
82
+ (await import("./register.maintenance-CyJQDrP0.js")).registerMaintenanceCommands(program);
83
83
  }
84
84
  },
85
85
  {
@@ -89,7 +89,7 @@ const coreEntries = [
89
89
  hasSubcommands: true
90
90
  }],
91
91
  register: async ({ program, ctx }) => {
92
- (await import("./register.message-CyqE4E2O.js")).registerMessageCommands(program, ctx);
92
+ (await import("./register.message-BNe6-SJE.js")).registerMessageCommands(program, ctx);
93
93
  }
94
94
  },
95
95
  {
@@ -113,7 +113,7 @@ const coreEntries = [
113
113
  hasSubcommands: true
114
114
  }],
115
115
  register: async ({ program, ctx }) => {
116
- (await import("./register.agent-CSUoUVKd.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
116
+ (await import("./register.agent-Ds6PkEYl.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
117
117
  }
118
118
  },
119
119
  {
@@ -135,7 +135,7 @@ const coreEntries = [
135
135
  }
136
136
  ],
137
137
  register: async ({ program }) => {
138
- (await import("./register.status-health-sessions-0odRpA-p.js")).registerStatusHealthSessionsCommands(program);
138
+ (await import("./register.status-health-sessions-4OEVg4h6.js")).registerStatusHealthSessionsCommands(program);
139
139
  }
140
140
  },
141
141
  {
@@ -145,7 +145,7 @@ const coreEntries = [
145
145
  hasSubcommands: true
146
146
  }],
147
147
  register: async ({ program }) => {
148
- (await import("./browser-cli-iXhPMwGZ.js")).registerBrowserCli(program);
148
+ (await import("./browser-cli-Bz2dcSy1.js")).registerBrowserCli(program);
149
149
  }
150
150
  }
151
151
  ];
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Yt as resolveStateDir, l as routeLogsToStderr, nt as pathExists } from "./entry.js";
3
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-CqEj9vfW.js";
4
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-Cde2LqTh.js";
3
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-68XcQ3ao.js";
4
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-OHfvK1Oq.js";
5
5
  import { t as getProgramContext } from "./program-context-CqzR_m-7.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
3
3
  import { h as pathExists } from "./utils-B-0b9bGM.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-D9vIQve0.js";
5
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-QBBvnWFX.js";
5
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-CIOqtCr8.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
206
206
  }
207
207
  function registerConfigCli(program) {
208
208
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
209
- const { configureCommandFromSectionsArg } = await import("./configure-DiuQ_aTS.js").then((n) => n.t);
209
+ const { configureCommandFromSectionsArg } = await import("./configure-CJf-vDqN.js").then((n) => n.t);
210
210
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
211
211
  });
212
212
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
201
201
  }
202
202
  function registerConfigCli(program) {
203
203
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
204
- const { configureCommandFromSectionsArg } = await import("./configure-ktsZw1bT.js").then((n) => n.t);
204
+ const { configureCommandFromSectionsArg } = await import("./configure-rrxn5n5n.js").then((n) => n.t);
205
205
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
206
206
  });
207
207
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -8,26 +8,26 @@ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } fr
8
8
  import { a as findTailscaleBinary } from "./tailscale-D5dKabOc.js";
9
9
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
10
10
  import { n as withProgress } from "./progress-jIePzvGA.js";
11
- import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-BuSj9DUm.js";
11
+ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-CYxzQfe5.js";
12
12
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-8JqOYj0q.js";
13
13
  import { t as note$1 } from "./note-DeHoW7xO.js";
14
14
  import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-B7pN13HV.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-COcxT5Q0.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-B1qEMRuK.js";
17
17
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CjgoCPLb.js";
18
18
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
19
- import { r as healthCommand } from "./health-Q1RP1M2f.js";
19
+ import { r as healthCommand } from "./health-CnH3J7xA.js";
20
20
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
21
21
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLzEBA1v.js";
23
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-mw9ndZQO.js";
24
- import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-DXwUsLAy.js";
23
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CZ9ugRNS.js";
24
+ import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-CDXdeNr-.js";
25
25
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-aQ75ZlXY.js";
26
- import { a as promptCustomApiConfig } from "./onboard-custom-DoIhWPnb.js";
26
+ import { a as promptCustomApiConfig } from "./onboard-custom-BPHkLBMT.js";
27
27
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-CxY-xbsH.js";
28
28
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
29
- import { n as promptRemoteGatewayConfig } from "./onboard-remote-BSjc42yV.js";
30
- import { n as setupSkills } from "./onboard-skills-BD8JNVwL.js";
29
+ import { n as promptRemoteGatewayConfig } from "./onboard-remote-d48SMpNw.js";
30
+ import { n as setupSkills } from "./onboard-skills-2HJIpm3O.js";
31
31
  import { confirm, intro, outro, select, text } from "@clack/prompts";
32
32
 
33
33
  //#region src/commands/configure.shared.ts
@@ -6,26 +6,26 @@ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } fr
6
6
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
7
7
  import { a as findTailscaleBinary } from "./tailscale-CbbvYNVw.js";
8
8
  import { n as withProgress } from "./progress-BAHiAaDW.js";
9
- import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-CUQrf3zD.js";
9
+ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-Dsr4zKCb.js";
10
10
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-DwCXob2h.js";
11
11
  import { t as note$1 } from "./note-DDecZomM.js";
12
12
  import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
13
13
  import { t as createClackPrompter } from "./clack-prompter-B1aVoXd5.js";
14
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-ybPEmcP8.js";
14
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Dq99OYWi.js";
15
15
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-B38pOixq.js";
16
16
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
17
- import { r as healthCommand } from "./health-UjXEBnzA.js";
17
+ import { r as healthCommand } from "./health-CYZdOaco.js";
18
18
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
19
19
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
20
20
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-DVcYPG2v.js";
21
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CXMFi9LR.js";
21
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-za414gQg.js";
22
22
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-ay4NPk8S.js";
23
23
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
24
24
  import { a as promptCustomApiConfig } from "./onboard-custom-BKR6vm2R.js";
25
25
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-B-xy96ST.js";
26
26
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
27
- import { n as promptRemoteGatewayConfig } from "./onboard-remote-DTYzroFm.js";
28
- import { n as setupSkills } from "./onboard-skills-70EumFmD.js";
27
+ import { n as promptRemoteGatewayConfig } from "./onboard-remote-3c_muVej.js";
28
+ import { n as setupSkills } from "./onboard-skills-b_chEkYH.js";
29
29
  import { confirm, intro, outro, select, text } from "@clack/prompts";
30
30
 
31
31
  //#region src/commands/configure.shared.ts
@@ -3718,3 +3718,12 @@ html, body {
3718
3718
  color: var(--text-dim);
3719
3719
  padding: 2px 0 0;
3720
3720
  }
3721
+
3722
+ /* ── Lazy-load sentinel ──────────────────────────────────────────── */
3723
+ .load-more-sentinel {
3724
+ text-align: center;
3725
+ padding: 12px 0;
3726
+ font-size: 12px;
3727
+ color: var(--text-dim);
3728
+ opacity: 0.7;
3729
+ }
@@ -12,6 +12,11 @@ let streamBubble = null;
12
12
  let streamContent = null;
13
13
  let streamStart = 0;
14
14
 
15
+ // ── Lazy-loading pagination state ────────────────────────────────
16
+ let historyStartIndex = 0; // index of first loaded message in full transcript
17
+ let historyHasMore = false; // server says there are older messages
18
+ let isLoadingMore = false; // guard against concurrent fetches
19
+
15
20
  // ── Prompt queue ──────────────────────────────────────────────────
16
21
  let chatQueue = []; // [{id, text}]
17
22
 
@@ -251,6 +256,7 @@ function renderHistory(messages) {
251
256
  window.clearReasoningPanel();
252
257
  }
253
258
  responseArea.innerHTML = "";
259
+ responseArea.prepend(loadMoreSentinel);
254
260
  for (const m of messages) {
255
261
  if (!m || !m.role) {
256
262
  continue;
@@ -311,12 +317,137 @@ function renderHistory(messages) {
311
317
  window.applyHighlighting(el);
312
318
  }
313
319
 
320
+ // Update sentinel visibility
321
+ updateLoadMoreSentinel();
322
+
314
323
  // Scroll to very bottom after history renders
315
324
  requestAnimationFrame(() => {
316
325
  responseArea.scrollTop = responseArea.scrollHeight;
317
326
  });
318
327
  }
319
328
 
329
+ // ── Lazy-loading: sentinel + IntersectionObserver ─────────────────
330
+ const loadMoreSentinel = document.createElement("div");
331
+ loadMoreSentinel.className = "load-more-sentinel";
332
+ loadMoreSentinel.id = "load-more-sentinel";
333
+ loadMoreSentinel.textContent = "Loading older messages…";
334
+ loadMoreSentinel.style.display = "none";
335
+ responseArea.prepend(loadMoreSentinel);
336
+
337
+ function updateLoadMoreSentinel() {
338
+ loadMoreSentinel.style.display = historyHasMore ? "" : "none";
339
+ }
340
+
341
+ const loadMoreObserver = new IntersectionObserver(
342
+ (entries) => {
343
+ if (entries[0]?.isIntersecting && historyHasMore && !isLoadingMore) {
344
+ void loadMoreHistory();
345
+ }
346
+ },
347
+ { root: responseArea, threshold: 0.1 },
348
+ );
349
+ loadMoreObserver.observe(loadMoreSentinel);
350
+
351
+ async function loadMoreHistory() {
352
+ if (isLoadingMore || !historyHasMore || historyStartIndex <= 0) {
353
+ return;
354
+ }
355
+ isLoadingMore = true;
356
+ loadMoreSentinel.textContent = "Loading older messages…";
357
+
358
+ try {
359
+ const result = await gateway.rpc("chat.history", {
360
+ sessionKey: window.SESSION_KEY,
361
+ limit: 100,
362
+ before: historyStartIndex,
363
+ });
364
+
365
+ const msgs = result.messages ?? [];
366
+ historyStartIndex = result.startIndex ?? 0;
367
+ historyHasMore = result.hasMore ?? false;
368
+
369
+ if (msgs.length === 0) {
370
+ historyHasMore = false;
371
+ updateLoadMoreSentinel();
372
+ return;
373
+ }
374
+
375
+ // Remember scroll position so we can restore it after prepending
376
+ const prevScrollHeight = responseArea.scrollHeight;
377
+ const prevScrollTop = responseArea.scrollTop;
378
+
379
+ // Build fragment of older messages (reuse same filtering as renderHistory)
380
+ const frag = document.createDocumentFragment();
381
+ for (const m of msgs) {
382
+ if (!m || !m.role) {
383
+ continue;
384
+ }
385
+ if (m.role === "toolResult" || m.role === "tool") {
386
+ const content = Array.isArray(m.content) ? m.content : [];
387
+ const text = content
388
+ .map((b) => b.text ?? "")
389
+ .join("\n")
390
+ .trim();
391
+ if (text && typeof window.appendToReasoningPanel === "function") {
392
+ window.appendToReasoningPanel({
393
+ type: "tool_result",
394
+ content: m.content,
395
+ is_error: m.isError === true,
396
+ });
397
+ }
398
+ continue;
399
+ }
400
+ if (m.role === "system") {
401
+ continue;
402
+ }
403
+ if (m.role === "assistant") {
404
+ const blocks = Array.isArray(m.content) ? m.content : [];
405
+ const ackText = blocks
406
+ .filter((b) => b.type === "text")
407
+ .map((b) => b.text ?? "")
408
+ .join("")
409
+ .trim();
410
+ if (/^[A-Z_]+_OK$/i.test(ackText)) {
411
+ for (const b of blocks) {
412
+ if (typeof window.appendToReasoningPanel === "function") {
413
+ window.appendToReasoningPanel(b);
414
+ }
415
+ }
416
+ continue;
417
+ }
418
+ }
419
+ const hasContent = Array.isArray(m.content)
420
+ ? m.content.some((b) => b.type === "text" && (b.text ?? "").trim())
421
+ : extractText(m.content).trim();
422
+ if (!hasContent) {
423
+ continue;
424
+ }
425
+ const el = window.renderMessage(m);
426
+ if (!el) {
427
+ continue;
428
+ }
429
+ frag.appendChild(el);
430
+ window.applyHighlighting(el);
431
+ }
432
+
433
+ // Insert after sentinel (which stays at top)
434
+ loadMoreSentinel.after(frag);
435
+
436
+ // Restore scroll position so the view doesn't jump
437
+ requestAnimationFrame(() => {
438
+ const newScrollHeight = responseArea.scrollHeight;
439
+ responseArea.scrollTop = prevScrollTop + (newScrollHeight - prevScrollHeight);
440
+ });
441
+
442
+ updateLoadMoreSentinel();
443
+ } catch (err) {
444
+ console.warn("[lazy-load] Failed to load older history:", err);
445
+ loadMoreSentinel.textContent = "Failed to load — scroll up to retry";
446
+ } finally {
447
+ isLoadingMore = false;
448
+ }
449
+ }
450
+
320
451
  // ── Gateway event handler ──────────────────────────────────────────
321
452
  let thinkingEl = null;
322
453
 
@@ -606,7 +737,11 @@ async function handleNewSession() {
606
737
  await sleep(260);
607
738
 
608
739
  responseArea.innerHTML = "";
740
+ responseArea.prepend(loadMoreSentinel);
609
741
  responseArea.style.opacity = "1";
742
+ historyStartIndex = 0;
743
+ historyHasMore = false;
744
+ updateLoadMoreSentinel();
610
745
  if (typeof window.clearReasoningPanel === "function") {
611
746
  window.clearReasoningPanel();
612
747
  }
@@ -724,6 +859,8 @@ gateway.addEventListener("connect", () => {
724
859
 
725
860
  gateway.addEventListener("history", (e) => {
726
861
  const msgs = Array.isArray(e.detail?.messages) ? e.detail.messages : [];
862
+ historyStartIndex = e.detail?.startIndex ?? 0;
863
+ historyHasMore = e.detail?.hasMore ?? false;
727
864
  renderHistory(msgs);
728
865
  });
729
866
 
@@ -116,8 +116,16 @@ class SymiGateway extends EventTarget {
116
116
  }
117
117
 
118
118
  if (type === "history") {
119
- const messages = msg.messages ?? [];
120
- this.dispatchEvent(new CustomEvent("history", { detail: { messages } }));
119
+ this.dispatchEvent(
120
+ new CustomEvent("history", {
121
+ detail: {
122
+ messages: msg.messages ?? [],
123
+ total: msg.total ?? 0,
124
+ hasMore: msg.hasMore ?? false,
125
+ startIndex: msg.startIndex ?? 0,
126
+ },
127
+ }),
128
+ );
121
129
  return;
122
130
  }
123
131
 
@@ -16,15 +16,15 @@ import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
16
16
  import "./accounts-DDuIpcln.js";
17
17
  import "./bindings-DFaVVCsf.js";
18
18
  import "./logging-w5jq5901.js";
19
- import "./client-Cnoh7nRo.js";
20
- import "./call-BNyqFDDZ.js";
19
+ import "./client-CQSyCS4M.js";
20
+ import "./call-CJYWtIM9.js";
21
21
  import "./pairing-token-CX3NN_qj.js";
22
22
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
23
23
  import "./progress-jIePzvGA.js";
24
24
  import { n as formatDurationHuman } from "./format-duration-D0B0Uo-I.js";
25
25
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-BUClb97_.js";
26
26
  import { n as parsePositiveIntOrUndefined } from "./helpers-By2rxBQ5.js";
27
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-XxpDa3Bd.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Cx0HPjI7.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -6,8 +6,8 @@ import "./agent-scope-D-jRCY0d.js";
6
6
  import "./github-copilot-token-DuFIqfeC.js";
7
7
  import "./manifest-registry-Czr39pxG.js";
8
8
  import "./config-amjzHiWZ.js";
9
- import "./client-LeVQns9-.js";
10
- import "./call-BQiCOxB6.js";
9
+ import "./client-DMBZpU6X.js";
10
+ import "./call-BVw7l9v8.js";
11
11
  import "./message-channel-C9dERklz.js";
12
12
  import "./pairing-token-Byh6drgn.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
@@ -18,7 +18,7 @@ import { n as formatDurationHuman } from "./format-duration-BOC0O2XQ.js";
18
18
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CQar2eKe.js";
19
19
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
20
20
  import "./progress-BAHiAaDW.js";
21
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BnsXD9QK.js";
21
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BTXPWO6j.js";
22
22
  import { n as parsePositiveIntOrUndefined } from "./helpers-ITexi1_a.js";
23
23
 
24
24
  //#region src/cli/cron-cli/shared.ts
@@ -9,10 +9,10 @@ import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-B741uFtk.js";
11
11
  import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
12
- import { n as callGateway } from "./call-BNyqFDDZ.js";
12
+ import { n as callGateway } from "./call-CJYWtIM9.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
14
14
  import { n as withProgress } from "./progress-jIePzvGA.js";
15
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BuSj9DUm.js";
15
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CYxzQfe5.js";
16
16
  import { n as isWSLEnv } from "./wsl-C4424szg.js";
17
17
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-C8_BLnaW.js";
18
18
  import { n as inheritOptionFromParent } from "./command-options-BtDai3oC.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { At as getResolvedLoggerSettings, Dt as theme, Et as isRich, Tt as colorize, Ut as resolveGatewayPort, Wt as resolveIsNixMode, Yt as resolveStateDir, _ as defaultRuntime, lt as shortenHomePath, zt as resolveConfigPath } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-amjzHiWZ.js";
5
- import { n as callGateway } from "./call-BQiCOxB6.js";
5
+ import { n as callGateway } from "./call-BVw7l9v8.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
7
7
  import { l as resolveGatewayBindHost } from "./net-DZ5Ayk-W.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-Cmumpn76.js";
@@ -11,7 +11,7 @@ import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXb
11
11
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
12
12
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
13
13
  import { n as withProgress } from "./progress-BAHiAaDW.js";
14
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CUQrf3zD.js";
14
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-Dsr4zKCb.js";
15
15
  import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
16
16
  import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
17
17
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-B38pOixq.js";
@@ -10399,7 +10399,8 @@ const ChatHistoryParamsSchema = Type.Object({
10399
10399
  limit: Type.Optional(Type.Integer({
10400
10400
  minimum: 1,
10401
10401
  maximum: 1e3
10402
- }))
10402
+ })),
10403
+ before: Type.Optional(Type.Integer({ minimum: 0 }))
10403
10404
  }, { additionalProperties: false });
10404
10405
  const ChatSendParamsSchema = Type.Object({
10405
10406
  sessionKey: NonEmptyString,
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cn6drXx2.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-71oIavrF.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BmYZe8o8.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers--yFTAWwW.js";
9
9
  import { d as getChannelDock } from "./thinking-W85Rb32m.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-DTMTDXwE.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
@@ -12,8 +12,8 @@ import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-
12
12
  import "./config-Dgn_cL29.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
14
  import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
15
- import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-Cnoh7nRo.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BNyqFDDZ.js";
15
+ import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-CQSyCS4M.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJYWtIM9.js";
17
17
  import "./pairing-token-CX3NN_qj.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
@@ -5,8 +5,8 @@ import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-Czr39pxG.js";
7
7
  import "./config-amjzHiWZ.js";
8
- import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-LeVQns9-.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BQiCOxB6.js";
8
+ import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-DMBZpU6X.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BVw7l9v8.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-KJUTWJP3.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-D7iBY_Z-.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DeHoW7xO.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cx9htCOm.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DSHmAUFN.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-C__lZ7VF.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-DiJI5-hU.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -5,20 +5,20 @@ import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-Czr39pxG.js";
7
7
  import "./config-amjzHiWZ.js";
8
- import "./client-LeVQns9-.js";
9
- import "./call-BQiCOxB6.js";
8
+ import "./client-DMBZpU6X.js";
9
+ import "./call-BVw7l9v8.js";
10
10
  import "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as formatTimeAgo } from "./format-relative-DX-rh76l.js";
13
13
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-BhFq_Iv9.js";
14
14
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
15
15
  import "./progress-BAHiAaDW.js";
16
- import { n as callGatewayFromCli } from "./gateway-rpc-BnsXD9QK.js";
16
+ import { n as callGatewayFromCli } from "./gateway-rpc-BTXPWO6j.js";
17
17
  import "./systemd-DlMdyFDY.js";
18
18
  import "./service-Cm9j9WzQ.js";
19
19
  import { t as renderTable } from "./table-D01d2GuY.js";
20
20
  import { t as describeUnknownError } from "./shared-BtG9rny3.js";
21
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-K2mc_55f.js";
21
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-CvzWzHjS.js";
22
22
  import JSON5 from "json5";
23
23
  import fs from "node:fs/promises";
24
24
 
@@ -11,19 +11,19 @@ import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
12
  import "./config-Dgn_cL29.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
- import "./client-Cnoh7nRo.js";
15
- import "./call-BNyqFDDZ.js";
14
+ import "./client-CQSyCS4M.js";
15
+ import "./call-CJYWtIM9.js";
16
16
  import "./pairing-token-CX3NN_qj.js";
17
17
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
18
18
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
19
19
  import "./progress-jIePzvGA.js";
20
20
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-Kn31mBcW.js";
21
- import { n as callGatewayFromCli } from "./gateway-rpc-XxpDa3Bd.js";
21
+ import { n as callGatewayFromCli } from "./gateway-rpc-Cx0HPjI7.js";
22
22
  import "./systemd-riq8uNJQ.js";
23
23
  import "./service-Cl74hx8J.js";
24
24
  import { t as renderTable } from "./table-BTgkRafz.js";
25
25
  import { t as describeUnknownError } from "./shared-BJvwnR5z.js";
26
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-B8S3CF-2.js";
26
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-DfC0wvv1.js";
27
27
  import JSON5 from "json5";
28
28
  import fs from "node:fs/promises";
29
29