@undefineds.co/linx 0.3.25 → 0.3.27

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 (362) hide show
  1. package/README.md +4 -3
  2. package/dist/index.js +3 -832
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/agent-stream-bridge-contract.js +2 -0
  5. package/dist/lib/agent-stream-bridge-contract.js.map +1 -0
  6. package/dist/lib/auto-mode/auth.js +100 -2
  7. package/dist/lib/auto-mode/auth.js.map +1 -1
  8. package/dist/lib/auto-mode/backend-kind.js +13 -0
  9. package/dist/lib/auto-mode/backend-kind.js.map +1 -0
  10. package/dist/lib/auto-mode/display.js +1 -1
  11. package/dist/lib/auto-mode/display.js.map +1 -1
  12. package/dist/lib/auto-mode/format.js +1 -1
  13. package/dist/lib/auto-mode/format.js.map +1 -1
  14. package/dist/lib/auto-mode/hooks/{index.js → registry.js} +1 -1
  15. package/dist/lib/auto-mode/hooks/registry.js.map +1 -0
  16. package/dist/lib/auto-mode/pod-ai.js +1 -14
  17. package/dist/lib/auto-mode/pod-ai.js.map +1 -1
  18. package/dist/lib/auto-mode/pod-approval-store.js +596 -0
  19. package/dist/lib/auto-mode/pod-approval-store.js.map +1 -0
  20. package/dist/lib/auto-mode/pod-approval.js +4 -607
  21. package/dist/lib/auto-mode/pod-approval.js.map +1 -1
  22. package/dist/lib/auto-mode/pod-persistence-builders.js +266 -0
  23. package/dist/lib/auto-mode/pod-persistence-builders.js.map +1 -0
  24. package/dist/lib/auto-mode/pod-persistence.js +1 -281
  25. package/dist/lib/auto-mode/pod-persistence.js.map +1 -1
  26. package/dist/lib/auto-mode/runner.js +41 -378
  27. package/dist/lib/auto-mode/runner.js.map +1 -1
  28. package/dist/lib/auto-mode/runtime.js +25 -0
  29. package/dist/lib/auto-mode/runtime.js.map +1 -0
  30. package/dist/lib/auto-mode/secretary-reaction-window.js +12 -0
  31. package/dist/lib/auto-mode/secretary-reaction-window.js.map +1 -0
  32. package/dist/lib/auto-mode/secretary-runtime-config.js +66 -0
  33. package/dist/lib/auto-mode/secretary-runtime-config.js.map +1 -0
  34. package/dist/lib/auto-mode/secretary.js +2 -64
  35. package/dist/lib/auto-mode/secretary.js.map +1 -1
  36. package/dist/lib/auto-mode/session-log.js +25 -0
  37. package/dist/lib/auto-mode/session-log.js.map +1 -0
  38. package/dist/lib/auto-mode/shell-command.js +172 -0
  39. package/dist/lib/auto-mode/shell-command.js.map +1 -0
  40. package/dist/lib/auto-mode-command.js +2 -1
  41. package/dist/lib/auto-mode-command.js.map +1 -1
  42. package/dist/lib/backend-command-router-contract.js +2 -0
  43. package/dist/lib/backend-command-router-contract.js.map +1 -0
  44. package/dist/lib/{pi-adapter/backend-credentials.js → backend-credentials.js} +8 -8
  45. package/dist/lib/backend-credentials.js.map +1 -0
  46. package/dist/lib/linx-ai-connect-command.js +201 -0
  47. package/dist/lib/linx-ai-connect-command.js.map +1 -0
  48. package/dist/lib/linx-assistant-message-rendering.js +33 -0
  49. package/dist/lib/linx-assistant-message-rendering.js.map +1 -0
  50. package/dist/lib/linx-auto-command-routing.js +53 -0
  51. package/dist/lib/linx-auto-command-routing.js.map +1 -0
  52. package/dist/lib/linx-auto-editor-indicator-host.js +15 -0
  53. package/dist/lib/linx-auto-editor-indicator-host.js.map +1 -0
  54. package/dist/lib/linx-auto-editor-indicator.js +56 -0
  55. package/dist/lib/linx-auto-editor-indicator.js.map +1 -0
  56. package/dist/lib/linx-auto-mode-cli-admission.js +16 -0
  57. package/dist/lib/linx-auto-mode-cli-admission.js.map +1 -0
  58. package/dist/lib/linx-backend-command-router.js +64 -0
  59. package/dist/lib/linx-backend-command-router.js.map +1 -0
  60. package/dist/lib/linx-backend-event-source.js +32 -0
  61. package/dist/lib/linx-backend-event-source.js.map +1 -0
  62. package/dist/lib/linx-chat-completion-projection.js +276 -0
  63. package/dist/lib/linx-chat-completion-projection.js.map +1 -0
  64. package/dist/lib/linx-cloud-errors.js +1 -0
  65. package/dist/lib/linx-cloud-errors.js.map +1 -1
  66. package/dist/lib/linx-cloud-models.js +75 -0
  67. package/dist/lib/linx-cloud-models.js.map +1 -0
  68. package/dist/lib/linx-cloud-runtime-auth.js +146 -0
  69. package/dist/lib/linx-cloud-runtime-auth.js.map +1 -0
  70. package/dist/lib/linx-cloud-runtime-coordinator.js +102 -0
  71. package/dist/lib/linx-cloud-runtime-coordinator.js.map +1 -0
  72. package/dist/lib/linx-codex-plugin-command.js +56 -0
  73. package/dist/lib/linx-codex-plugin-command.js.map +1 -0
  74. package/dist/lib/linx-command-autocomplete.js +123 -0
  75. package/dist/lib/linx-command-autocomplete.js.map +1 -0
  76. package/dist/lib/linx-completion-backend.js +2 -0
  77. package/dist/lib/linx-completion-backend.js.map +1 -0
  78. package/dist/lib/linx-config-command.js +12 -0
  79. package/dist/lib/linx-config-command.js.map +1 -0
  80. package/dist/lib/linx-editor-component-router.js +83 -0
  81. package/dist/lib/linx-editor-component-router.js.map +1 -0
  82. package/dist/lib/linx-extension-ui-context-router.js +43 -0
  83. package/dist/lib/linx-extension-ui-context-router.js.map +1 -0
  84. package/dist/lib/linx-external-open-host.js +8 -0
  85. package/dist/lib/linx-external-open-host.js.map +1 -0
  86. package/dist/lib/linx-external-url.js +16 -0
  87. package/dist/lib/linx-external-url.js.map +1 -0
  88. package/dist/lib/linx-footer-patch.js +52 -0
  89. package/dist/lib/linx-footer-patch.js.map +1 -0
  90. package/dist/lib/linx-input-command-routing.js +65 -0
  91. package/dist/lib/linx-input-command-routing.js.map +1 -0
  92. package/dist/lib/linx-interactive-auth-state-host.js +50 -0
  93. package/dist/lib/linx-interactive-auth-state-host.js.map +1 -0
  94. package/dist/lib/linx-interactive-autocomplete-host.js +32 -0
  95. package/dist/lib/linx-interactive-autocomplete-host.js.map +1 -0
  96. package/dist/lib/linx-interactive-bootstrap.js +66 -0
  97. package/dist/lib/linx-interactive-bootstrap.js.map +1 -0
  98. package/dist/lib/linx-interactive-branding.js +24 -0
  99. package/dist/lib/linx-interactive-branding.js.map +1 -0
  100. package/dist/lib/linx-interactive-chat-text-host.js +16 -0
  101. package/dist/lib/linx-interactive-chat-text-host.js.map +1 -0
  102. package/dist/lib/linx-interactive-command-routing-host.js +31 -0
  103. package/dist/lib/linx-interactive-command-routing-host.js.map +1 -0
  104. package/dist/lib/linx-interactive-command-routing.js +75 -0
  105. package/dist/lib/linx-interactive-command-routing.js.map +1 -0
  106. package/dist/lib/linx-interactive-command-surface.js +16 -0
  107. package/dist/lib/linx-interactive-command-surface.js.map +1 -0
  108. package/dist/lib/linx-interactive-editor-text-host.js +16 -0
  109. package/dist/lib/linx-interactive-editor-text-host.js.map +1 -0
  110. package/dist/lib/linx-interactive-error-display.js +8 -0
  111. package/dist/lib/linx-interactive-error-display.js.map +1 -0
  112. package/dist/lib/linx-interactive-event-router.js +91 -0
  113. package/dist/lib/linx-interactive-event-router.js.map +1 -0
  114. package/dist/lib/linx-interactive-extension-input-host.js +7 -0
  115. package/dist/lib/linx-interactive-extension-input-host.js.map +1 -0
  116. package/dist/lib/linx-interactive-extension-selector-host.js +12 -0
  117. package/dist/lib/linx-interactive-extension-selector-host.js.map +1 -0
  118. package/dist/lib/linx-interactive-header-host.js +14 -0
  119. package/dist/lib/linx-interactive-header-host.js.map +1 -0
  120. package/dist/lib/linx-interactive-lifecycle-host.js +4 -0
  121. package/dist/lib/linx-interactive-lifecycle-host.js.map +1 -0
  122. package/dist/lib/linx-interactive-login-ui-router.js +81 -0
  123. package/dist/lib/linx-interactive-login-ui-router.js.map +1 -0
  124. package/dist/lib/linx-interactive-model-registry-host.js +14 -0
  125. package/dist/lib/linx-interactive-model-registry-host.js.map +1 -0
  126. package/dist/lib/linx-interactive-post-init.js +60 -0
  127. package/dist/lib/linx-interactive-post-init.js.map +1 -0
  128. package/dist/lib/linx-interactive-provider-count-host.js +4 -0
  129. package/dist/lib/linx-interactive-provider-count-host.js.map +1 -0
  130. package/dist/lib/linx-interactive-run-router.js +43 -0
  131. package/dist/lib/linx-interactive-run-router.js.map +1 -0
  132. package/dist/lib/linx-interactive-runtime-host.js +113 -0
  133. package/dist/lib/linx-interactive-runtime-host.js.map +1 -0
  134. package/dist/lib/linx-interactive-selector-host.js +12 -0
  135. package/dist/lib/linx-interactive-selector-host.js.map +1 -0
  136. package/dist/lib/linx-interactive-shell-state.js +215 -0
  137. package/dist/lib/linx-interactive-shell-state.js.map +1 -0
  138. package/dist/lib/linx-interactive-status-display.js +9 -0
  139. package/dist/lib/linx-interactive-status-display.js.map +1 -0
  140. package/dist/lib/linx-interactive-stop-router.js +85 -0
  141. package/dist/lib/linx-interactive-stop-router.js.map +1 -0
  142. package/dist/lib/linx-interactive-streaming-message-host.js +11 -0
  143. package/dist/lib/linx-interactive-streaming-message-host.js.map +1 -0
  144. package/dist/lib/linx-interactive-submit-router.js +63 -0
  145. package/dist/lib/linx-interactive-submit-router.js.map +1 -0
  146. package/dist/lib/linx-interactive-update-router.js +78 -0
  147. package/dist/lib/linx-interactive-update-router.js.map +1 -0
  148. package/dist/lib/linx-interactive-update-state-host.js +43 -0
  149. package/dist/lib/linx-interactive-update-state-host.js.map +1 -0
  150. package/dist/lib/linx-interactive-warning-display.js +4 -0
  151. package/dist/lib/linx-interactive-warning-display.js.map +1 -0
  152. package/dist/lib/linx-interrupt-control-host.js +22 -0
  153. package/dist/lib/linx-interrupt-control-host.js.map +1 -0
  154. package/dist/lib/linx-interrupt-control.js +96 -0
  155. package/dist/lib/linx-interrupt-control.js.map +1 -0
  156. package/dist/lib/linx-login-flow.js +566 -0
  157. package/dist/lib/linx-login-flow.js.map +1 -0
  158. package/dist/lib/linx-models-command.js +71 -0
  159. package/dist/lib/linx-models-command.js.map +1 -0
  160. package/dist/lib/linx-package-command.js +117 -0
  161. package/dist/lib/linx-package-command.js.map +1 -0
  162. package/dist/lib/linx-peer-command-routing.js +20 -0
  163. package/dist/lib/linx-peer-command-routing.js.map +1 -0
  164. package/dist/lib/linx-pi-cli-command.js +121 -0
  165. package/dist/lib/linx-pi-cli-command.js.map +1 -0
  166. package/dist/lib/linx-pi-completion-events.js +101 -0
  167. package/dist/lib/linx-pi-completion-events.js.map +1 -0
  168. package/dist/lib/linx-pi-normalized-event-stream.js +41 -0
  169. package/dist/lib/linx-pi-normalized-event-stream.js.map +1 -0
  170. package/dist/lib/linx-pi-resume-cli-admission.js +21 -0
  171. package/dist/lib/linx-pi-resume-cli-admission.js.map +1 -0
  172. package/dist/lib/linx-pi-runtime-execution.js +67 -0
  173. package/dist/lib/linx-pi-runtime-execution.js.map +1 -0
  174. package/dist/lib/linx-pi-startup-control.js +49 -0
  175. package/dist/lib/linx-pi-startup-control.js.map +1 -0
  176. package/dist/lib/linx-pi-startup-plan.js +103 -0
  177. package/dist/lib/linx-pi-startup-plan.js.map +1 -0
  178. package/dist/lib/linx-pi-stream-errors.js +10 -0
  179. package/dist/lib/linx-pi-stream-errors.js.map +1 -0
  180. package/dist/lib/linx-pod-backed-extension-ui.js +29 -0
  181. package/dist/lib/linx-pod-backed-extension-ui.js.map +1 -0
  182. package/dist/lib/linx-pod-data-session-factory.js +19 -0
  183. package/dist/lib/linx-pod-data-session-factory.js.map +1 -0
  184. package/dist/lib/linx-pod-mirror-runtime-host.js +50 -0
  185. package/dist/lib/linx-pod-mirror-runtime-host.js.map +1 -0
  186. package/dist/lib/linx-pod-mirror-sync-cli-admission.js +18 -0
  187. package/dist/lib/linx-pod-mirror-sync-cli-admission.js.map +1 -0
  188. package/dist/lib/linx-pod-mirror-sync-command.js +30 -0
  189. package/dist/lib/linx-pod-mirror-sync-command.js.map +1 -0
  190. package/dist/lib/{pi-adapter/sync-recovery.js → linx-pod-mirror-sync-recovery.js} +13 -13
  191. package/dist/lib/linx-pod-mirror-sync-recovery.js.map +1 -0
  192. package/dist/lib/{pi-adapter/pod-mirror.js → linx-pod-mirror.js} +63 -40
  193. package/dist/lib/linx-pod-mirror.js.map +1 -0
  194. package/dist/lib/linx-restored-auto-startup.js +21 -0
  195. package/dist/lib/linx-restored-auto-startup.js.map +1 -0
  196. package/dist/lib/linx-resume-output.js +209 -0
  197. package/dist/lib/linx-resume-output.js.map +1 -0
  198. package/dist/lib/linx-retired-command.js +22 -0
  199. package/dist/lib/linx-retired-command.js.map +1 -0
  200. package/dist/lib/linx-rewind-command.js +209 -0
  201. package/dist/lib/linx-rewind-command.js.map +1 -0
  202. package/dist/lib/linx-runtime-adapter-contract.js +2 -0
  203. package/dist/lib/linx-runtime-adapter-contract.js.map +1 -0
  204. package/dist/lib/linx-runtime-adapter-defaults.js +17 -0
  205. package/dist/lib/linx-runtime-adapter-defaults.js.map +1 -0
  206. package/dist/lib/linx-runtime-adapter-dependencies.js +2 -0
  207. package/dist/lib/linx-runtime-adapter-dependencies.js.map +1 -0
  208. package/dist/lib/linx-runtime-agent-session.js +130 -0
  209. package/dist/lib/linx-runtime-agent-session.js.map +1 -0
  210. package/dist/lib/linx-runtime-auth.js +5 -0
  211. package/dist/lib/linx-runtime-auth.js.map +1 -0
  212. package/dist/lib/linx-runtime-backend-composition.js +73 -0
  213. package/dist/lib/linx-runtime-backend-composition.js.map +1 -0
  214. package/dist/lib/linx-runtime-coding-tools.js +58 -0
  215. package/dist/lib/linx-runtime-coding-tools.js.map +1 -0
  216. package/dist/lib/linx-runtime-completion-backend.js +27 -0
  217. package/dist/lib/linx-runtime-completion-backend.js.map +1 -0
  218. package/dist/lib/linx-runtime-oauth-provider.js +57 -0
  219. package/dist/lib/linx-runtime-oauth-provider.js.map +1 -0
  220. package/dist/lib/linx-runtime-provider-registration.js +33 -0
  221. package/dist/lib/linx-runtime-provider-registration.js.map +1 -0
  222. package/dist/lib/linx-runtime-resources.js +167 -0
  223. package/dist/lib/linx-runtime-resources.js.map +1 -0
  224. package/dist/lib/linx-runtime-system-prompt.js +27 -0
  225. package/dist/lib/linx-runtime-system-prompt.js.map +1 -0
  226. package/dist/lib/linx-runtime-thinking.js +21 -0
  227. package/dist/lib/linx-runtime-thinking.js.map +1 -0
  228. package/dist/lib/linx-selector-choice.js +38 -0
  229. package/dist/lib/linx-selector-choice.js.map +1 -0
  230. package/dist/lib/linx-self-update.js +113 -0
  231. package/dist/lib/linx-self-update.js.map +1 -0
  232. package/dist/lib/linx-session-command-routing-host.js +24 -0
  233. package/dist/lib/linx-session-command-routing-host.js.map +1 -0
  234. package/dist/lib/linx-session-command-routing.js +68 -0
  235. package/dist/lib/linx-session-command-routing.js.map +1 -0
  236. package/dist/lib/linx-session-cwd-router.js +15 -0
  237. package/dist/lib/linx-session-cwd-router.js.map +1 -0
  238. package/dist/lib/linx-session-history.js +388 -0
  239. package/dist/lib/linx-session-history.js.map +1 -0
  240. package/dist/lib/{pi-adapter/session.js → linx-session-manager.js} +94 -46
  241. package/dist/lib/linx-session-manager.js.map +1 -0
  242. package/dist/lib/linx-session-metadata.js +55 -0
  243. package/dist/lib/linx-session-metadata.js.map +1 -0
  244. package/dist/lib/linx-session-selector-ui.js +32 -0
  245. package/dist/lib/linx-session-selector-ui.js.map +1 -0
  246. package/dist/lib/linx-session-thinking-capability-router.js +55 -0
  247. package/dist/lib/linx-session-thinking-capability-router.js.map +1 -0
  248. package/dist/lib/linx-session-work-control.js +163 -0
  249. package/dist/lib/linx-session-work-control.js.map +1 -0
  250. package/dist/lib/linx-shell-command-executor.js +41 -0
  251. package/dist/lib/linx-shell-command-executor.js.map +1 -0
  252. package/dist/lib/linx-shell-command-router.js +151 -0
  253. package/dist/lib/linx-shell-command-router.js.map +1 -0
  254. package/dist/lib/{pi-adapter/control-state.js → linx-startup-control-state.js} +6 -6
  255. package/dist/lib/linx-startup-control-state.js.map +1 -0
  256. package/dist/lib/linx-startup-login-policy.js +48 -0
  257. package/dist/lib/linx-startup-login-policy.js.map +1 -0
  258. package/dist/lib/linx-status-line-command.js +382 -0
  259. package/dist/lib/linx-status-line-command.js.map +1 -0
  260. package/dist/lib/{status-line-command.js → linx-status-line-config-command.js} +2 -12
  261. package/dist/lib/linx-status-line-config-command.js.map +1 -0
  262. package/dist/lib/linx-status-line.js +12 -4
  263. package/dist/lib/linx-status-line.js.map +1 -1
  264. package/dist/lib/linx-stream-abort.js +12 -0
  265. package/dist/lib/linx-stream-abort.js.map +1 -0
  266. package/dist/lib/linx-stream-error-formatting.js +54 -0
  267. package/dist/lib/linx-stream-error-formatting.js.map +1 -0
  268. package/dist/lib/linx-submitted-user-message-recording.js +16 -0
  269. package/dist/lib/linx-submitted-user-message-recording.js.map +1 -0
  270. package/dist/lib/linx-symphony-interactive-command.js +493 -0
  271. package/dist/lib/linx-symphony-interactive-command.js.map +1 -0
  272. package/dist/lib/linx-terminal-title-router.js +49 -0
  273. package/dist/lib/linx-terminal-title-router.js.map +1 -0
  274. package/dist/lib/{pi-adapter/theme.js → linx-theme.js} +2 -2
  275. package/dist/lib/linx-theme.js.map +1 -0
  276. package/dist/lib/linx-top-level-command-admission.js +27 -0
  277. package/dist/lib/linx-top-level-command-admission.js.map +1 -0
  278. package/dist/lib/linx-update-notification.js +176 -0
  279. package/dist/lib/linx-update-notification.js.map +1 -0
  280. package/dist/lib/linx-welcome-header.js +148 -0
  281. package/dist/lib/linx-welcome-header.js.map +1 -0
  282. package/dist/lib/linx-workspace-command.js +45 -0
  283. package/dist/lib/linx-workspace-command.js.map +1 -0
  284. package/dist/lib/native-backend-command-router.js +25 -0
  285. package/dist/lib/native-backend-command-router.js.map +1 -0
  286. package/dist/lib/native-backend-proxy.js +2 -0
  287. package/dist/lib/native-backend-proxy.js.map +1 -0
  288. package/dist/lib/native-backend-stream-backend.js +15 -0
  289. package/dist/lib/native-backend-stream-backend.js.map +1 -0
  290. package/dist/lib/oidc-auth.js +2 -4
  291. package/dist/lib/oidc-auth.js.map +1 -1
  292. package/dist/lib/pi-adapter/runtime.js +32 -841
  293. package/dist/lib/pi-adapter/runtime.js.map +1 -1
  294. package/dist/lib/pi-adapter/stream.js +17 -516
  295. package/dist/lib/pi-adapter/stream.js.map +1 -1
  296. package/dist/lib/{pi-adapter/pod-approval.js → pod-backed-extension-ui-context.js} +2 -2
  297. package/dist/lib/pod-backed-extension-ui-context.js.map +1 -0
  298. package/dist/lib/pod-chat-store-runtime.js +38 -0
  299. package/dist/lib/pod-chat-store-runtime.js.map +1 -0
  300. package/dist/lib/pod-chat-store.js +15 -65
  301. package/dist/lib/pod-chat-store.js.map +1 -1
  302. package/dist/lib/{pi-adapter/pod-mirror-mapping.js → pod-mirror-mapping.js} +8 -18
  303. package/dist/lib/pod-mirror-mapping.js.map +1 -0
  304. package/dist/lib/{pi-adapter/pod-native.js → pod-native.js} +1 -1
  305. package/dist/lib/pod-native.js.map +1 -0
  306. package/dist/lib/pod-status-output.js.map +1 -0
  307. package/dist/lib/{pi-adapter/auto-input-controller.js → secretary-auto-input-controller.js} +62 -77
  308. package/dist/lib/secretary-auto-input-controller.js.map +1 -0
  309. package/dist/lib/{pi-adapter/session-control.js → session-control.js} +80 -29
  310. package/dist/lib/session-control.js.map +1 -0
  311. package/dist/lib/shell-lifecycle.js +179 -0
  312. package/dist/lib/shell-lifecycle.js.map +1 -0
  313. package/dist/lib/solid-local-store.js +3 -3
  314. package/dist/lib/solid-local-store.js.map +1 -1
  315. package/dist/lib/symphony/pod-projection.js +1 -31
  316. package/dist/lib/symphony/pod-projection.js.map +1 -1
  317. package/dist/lib/{symphony-command.js → symphony/run.js} +11 -16
  318. package/dist/lib/symphony/run.js.map +1 -0
  319. package/dist/lib/symphony/runtime.js +30 -0
  320. package/dist/lib/symphony/runtime.js.map +1 -0
  321. package/dist/lib/symphony/status.js +242 -0
  322. package/dist/lib/symphony/status.js.map +1 -0
  323. package/dist/linx-cli-app.js +70 -0
  324. package/dist/linx-cli-app.js.map +1 -0
  325. package/dist/linx-cli-runtime-adapter-factory.js +12 -0
  326. package/dist/linx-cli-runtime-adapter-factory.js.map +1 -0
  327. package/dist/plugins/linx-symphony-codex/.codex-plugin/plugin.json +1 -1
  328. package/package.json +1 -1
  329. package/dist/lib/auto-mode/hooks/index.js.map +0 -1
  330. package/dist/lib/auto-mode/index.js +0 -10
  331. package/dist/lib/auto-mode/index.js.map +0 -1
  332. package/dist/lib/codex-plugin/index.js +0 -5
  333. package/dist/lib/codex-plugin/index.js.map +0 -1
  334. package/dist/lib/pi-adapter/auth.js +0 -68
  335. package/dist/lib/pi-adapter/auth.js.map +0 -1
  336. package/dist/lib/pi-adapter/auto-input-controller.js.map +0 -1
  337. package/dist/lib/pi-adapter/backend-command.js +0 -2
  338. package/dist/lib/pi-adapter/backend-command.js.map +0 -1
  339. package/dist/lib/pi-adapter/backend-credentials.js.map +0 -1
  340. package/dist/lib/pi-adapter/branding.js +0 -1188
  341. package/dist/lib/pi-adapter/branding.js.map +0 -1
  342. package/dist/lib/pi-adapter/control-state.js.map +0 -1
  343. package/dist/lib/pi-adapter/index.js +0 -4
  344. package/dist/lib/pi-adapter/index.js.map +0 -1
  345. package/dist/lib/pi-adapter/interactive.js +0 -3186
  346. package/dist/lib/pi-adapter/interactive.js.map +0 -1
  347. package/dist/lib/pi-adapter/pod-approval.js.map +0 -1
  348. package/dist/lib/pi-adapter/pod-mirror-mapping.js.map +0 -1
  349. package/dist/lib/pi-adapter/pod-mirror.js.map +0 -1
  350. package/dist/lib/pi-adapter/pod-native.js.map +0 -1
  351. package/dist/lib/pi-adapter/pod-status-output.js.map +0 -1
  352. package/dist/lib/pi-adapter/pod-tools.js +0 -140
  353. package/dist/lib/pi-adapter/pod-tools.js.map +0 -1
  354. package/dist/lib/pi-adapter/session-control.js.map +0 -1
  355. package/dist/lib/pi-adapter/session.js.map +0 -1
  356. package/dist/lib/pi-adapter/sync-recovery.js.map +0 -1
  357. package/dist/lib/pi-adapter/theme.js.map +0 -1
  358. package/dist/lib/pi-adapter/web-fetch.js +0 -170
  359. package/dist/lib/pi-adapter/web-fetch.js.map +0 -1
  360. package/dist/lib/status-line-command.js.map +0 -1
  361. package/dist/lib/symphony-command.js.map +0 -1
  362. /package/dist/lib/{pi-adapter/pod-status-output.js → pod-status-output.js} +0 -0
@@ -1,52 +1,24 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { setTimeout as delay } from 'node:timers/promises';
3
- import { buildAcpPermissionResponse, buildAutoModeUserInputResponse, MAX_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS, MIN_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS, normalizeAcpInteractionRequest, normalizeAcpRequest, normalizeAcpSessionNotification, parseAutoModeJsonLine, autoModeApprovalDecisionLabel, autoModeUserInputAnswersSummary, resolveAutoModeCommandRoute, shouldMaterializeAutoModeGrant, } from '../../../vendor/agent-runtime/dist/auto-mode.js';
4
- import { adoptAutoModeSessionId, appendAutoModeEvent, createAutoModeSession, finishAutoModeSession, hasPendingAutoModeSync, loadAutoModeEvents, loadAutoModeSession, listAutoModeSessionsWithPendingSync, listAutoModeSessions, writeAutoModeSyncCheckpoint, writeAutoModeSession, } from './archive.js';
5
- import { detectAutoModeAuthFailure, preflightAutoModeAuth } from './auth.js';
3
+ import { buildAcpPermissionResponse, buildAutoModeUserInputResponse, normalizeAcpInteractionRequest, normalizeAcpRequest, normalizeAcpSessionNotification, parseAutoModeJsonLine, autoModeApprovalDecisionLabel, autoModeUserInputAnswersSummary, shouldMaterializeAutoModeGrant, } from '../../../vendor/agent-runtime/dist/auto-mode.js';
4
+ import { adoptAutoModeSessionId, createAutoModeSession, finishAutoModeSession, hasPendingAutoModeSync, loadAutoModeEvents, loadAutoModeSession, listAutoModeSessionsWithPendingSync, listAutoModeSessions, writeAutoModeSyncCheckpoint, writeAutoModeSession, } from './archive.js';
5
+ import { detectAutoModeAuthFailure, promptLinxCloudAuth, runBackendLinxLogin, runBackendLinxLogout } from './auth.js';
6
6
  import { createAutoModeDisplay } from './display.js';
7
7
  import { formatAutoModeSessionSummary } from './format.js';
8
- import { describeAutoControl, getAutoModeHook, linxNativeBackend, listAutoModeHooks } from './hooks/index.js';
9
- import { createRemoteAutoModeApproval, isRemoteApprovalAbortError, materializeRemoteAutoModeGrant, resolveExistingRemoteAutoModeGrant, resolveRemoteAutoModeApproval, waitForRemoteAutoModeApproval, } from './pod-approval.js';
10
- import { persistAutoModeConversationToPod } from './pod-persistence.js';
11
- import { loadPodBackendCredential, podCredentialMissingMessage } from './pod-ai.js';
12
- import { resolveAutoModeSecretaryRecommendation } from './secretary.js';
13
- import { promptText } from '../prompt.js';
14
- import { runLinxLoginCommand, runLinxLogoutCommand } from '../login-command.js';
15
- import { clearDefaultPodDataSession, createPodDataSession } from '../pod-data-session.js';
16
- import { parseSolidClientCredentials, persistSolidClientCredentialsLogin } from '../solid-client-credentials-login.js';
17
- import { connectAiProviderCredential } from '../ai-command.js';
18
- import { saveAccountSession } from '../account-session.js';
19
- import { clearCredentials, loadCredentials, saveCredentials } from '../credentials-store.js';
20
- import { resolveAccountBaseUrl } from '../account-api.js';
21
- import { createRemoteCompletionResult } from '../chat-api.js';
8
+ import { describeAutoControl, getAutoModeHook, linxNativeBackend, listAutoModeHooks } from './hooks/registry.js';
9
+ import { isRemoteApprovalAbortError } from './pod-approval.js';
10
+ import { podCredentialMissingMessage } from './pod-ai.js';
11
+ import { resolveSecretaryReactionWindowMs } from './secretary-reaction-window.js';
12
+ import { isAcpAutoModeWorkerBackend, isAutoModeWorkerBackend, resolveApprovalStrategy, defaultAutoModeApprovalStrategy } from './backend-kind.js';
13
+ import { appendAutoModeSessionEvent as appendEntry, appendAndDisplaySessionNote, appendSessionNote } from './session-log.js';
14
+ import { handleAutoModeShellCommand } from './shell-command.js';
15
+ import { autoModeRuntime } from './runtime.js';
22
16
  import { resolveRuntimeTarget } from '../runtime-target.js';
23
17
  import { runThreadReconcilerCycle } from '../../../vendor/agent-runtime/dist/index.js';
24
18
  import { createLinxSyncCheckpoint } from '../../../vendor/agent-runtime/dist/sync.js';
25
19
  const AUTO_MODE_SECRETARY_COUNTDOWN_BAR_WIDTH = 10;
26
20
  const AUTO_MODE_SECRETARY_COUNTDOWN_TICK_MS = 250;
27
21
  const POD_PERSISTENCE_TIMEOUT_MS = 5_000;
28
- export const autoModeRuntime = {
29
- promptText,
30
- preflightAutoModeAuth,
31
- loadPodBackendCredential,
32
- connectAiProviderCredential,
33
- createRemoteAutoModeApproval,
34
- resolveExistingRemoteAutoModeGrant,
35
- waitForRemoteAutoModeApproval,
36
- resolveRemoteAutoModeApproval,
37
- materializeRemoteAutoModeGrant,
38
- persistAutoModeConversationToPod,
39
- resolveAutoModeSecretaryRecommendation,
40
- createPodDataSession,
41
- clearDefaultPodDataSession,
42
- loadCredentials,
43
- saveCredentials,
44
- clearCredentials,
45
- saveAccountSession,
46
- resolveAccountBaseUrl,
47
- persistSolidClientCredentialsLogin,
48
- createRemoteCompletionResult,
49
- };
50
22
  function createLineSplitter(stream, onLine) {
51
23
  let buffer = '';
52
24
  return {
@@ -123,55 +95,6 @@ function withAbortSignal(promise, signal) {
123
95
  .finally(() => signal.removeEventListener('abort', onAbort));
124
96
  });
125
97
  }
126
- function appendEntry(record, stream, line, events) {
127
- const entry = {
128
- timestamp: new Date().toISOString(),
129
- stream,
130
- line,
131
- events,
132
- };
133
- appendAutoModeEvent(record, entry);
134
- }
135
- function appendSessionNote(record, message, raw) {
136
- appendEntry(record, 'system', JSON.stringify({
137
- type: 'session.note',
138
- message,
139
- }), [{
140
- type: 'session.note',
141
- message,
142
- raw,
143
- }]);
144
- }
145
- function writeFailedPodSyncCheckpoint(record, message) {
146
- const now = new Date().toISOString();
147
- const result = {
148
- source: 'auto-mode-archive',
149
- target: 'pod',
150
- direction: 'local-to-core',
151
- plane: 'projection',
152
- authority: 'core',
153
- attempted: 0,
154
- applied: 0,
155
- skipped: 0,
156
- failed: 1,
157
- failures: [{
158
- operationId: 'auto-mode.persist-to-pod',
159
- message,
160
- failedAt: now,
161
- }],
162
- startedAt: now,
163
- completedAt: now,
164
- status: 'failed',
165
- };
166
- writeAutoModeSyncCheckpoint(record, createLinxSyncCheckpoint('auto-mode-archive:pod:projection', result, {
167
- sessionId: record.id,
168
- backend: record.backend,
169
- }));
170
- }
171
- function appendAndDisplaySessionNote(record, display, message, tone = 'note', raw) {
172
- appendSessionNote(record, message, raw);
173
- display.showActivity(message, tone);
174
- }
175
98
  async function promptApproval(display, message, allowSessionOption = true, signal, recommendation) {
176
99
  while (true) {
177
100
  display.setPhase('approval', message);
@@ -211,17 +134,6 @@ function approvalPromptLines(message, recommendation) {
211
134
  }
212
135
  return lines;
213
136
  }
214
- function resolveSecretaryReactionWindowMs(recommendation) {
215
- if (!recommendation?.canAutoDecide) {
216
- return 0;
217
- }
218
- const reactionWindowMs = recommendation.reactionWindowMs ?? 0;
219
- if (recommendation.source === 'fallback') {
220
- return Math.max(0, Math.min(MAX_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS, reactionWindowMs));
221
- }
222
- return Math.max(MIN_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS, Math.min(MAX_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS, reactionWindowMs > 0 ? reactionWindowMs : MIN_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS));
223
- }
224
- export const __testResolveSecretaryReactionWindowMs = resolveSecretaryReactionWindowMs;
225
137
  function approvalPromptOptions(allowSessionOption, recommendedDecision) {
226
138
  const option = (decision, label, description, shortcuts) => ({
227
139
  label: recommendedDecision === decision ? `${label} (recommended)` : label,
@@ -312,87 +224,6 @@ export function formatAutoModeSecretaryCountdownDetail(remainingMs, durationMs)
312
224
  const bar = `${'#'.repeat(filled)}${'-'.repeat(AUTO_MODE_SECRETARY_COUNTDOWN_BAR_WIDTH - filled)}`;
313
225
  return `auto [${bar}] ${formatReactionWindow(clampedRemainingMs)}`;
314
226
  }
315
- async function promptLinxCloudAuth(display, lines, reason = 'manual') {
316
- while (true) {
317
- display.setPhase('question', reason === 'expired' ? 'LinX Cloud login expired' : 'LinX Cloud login required');
318
- const answer = (await display.chooseOption(reason === 'expired' ? 'LinX Cloud login expired' : 'LinX Cloud login required', lines, [
319
- { label: 'Authorize in browser', value: 'browser', description: 'refresh the LinX Cloud Solid session', shortcuts: ['b', '1'] },
320
- { label: 'Enter Solid client credentials', value: 'client-credentials', description: 'use LinX Cloud client credentials', shortcuts: ['k', '2'] },
321
- { label: 'Exit', value: 'exit', description: 'leave this session', shortcuts: ['x', '3'] },
322
- ])).trim().toLowerCase();
323
- if (answer === 'browser' || answer === 'b' || answer === '1') {
324
- await runBackendLinxLogin(display);
325
- return 'retry';
326
- }
327
- if (answer === 'client-credentials' || answer === 'k' || answer === '2') {
328
- const saved = await promptBackendSolidClientCredentials(display);
329
- if (saved) {
330
- return 'retry';
331
- }
332
- continue;
333
- }
334
- if (answer === 'exit' || answer === 'x' || answer === '3' || answer === 'cancel') {
335
- display.setPhase('running', 'Authentication cancelled');
336
- return 'cancel';
337
- }
338
- }
339
- }
340
- async function runBackendLinxLogin(display) {
341
- display.showActivity('Opening LinX Cloud login in your browser...');
342
- await runLinxLoginCommand({}, {
343
- promptText: autoModeRuntime.promptText,
344
- write(chunk) {
345
- for (const line of chunk.split(/\r?\n/u)) {
346
- const trimmed = line.trim();
347
- if (trimmed) {
348
- display.showActivity(trimmed);
349
- }
350
- }
351
- },
352
- });
353
- autoModeRuntime.clearDefaultPodDataSession();
354
- display.showActivity('LinX Cloud login refreshed.', 'success');
355
- }
356
- function runBackendLinxLogout(display) {
357
- runLinxLogoutCommand({
358
- write(chunk) {
359
- for (const line of chunk.split(/\r?\n/u)) {
360
- const trimmed = line.trim();
361
- if (trimmed) {
362
- display.showActivity(trimmed);
363
- }
364
- }
365
- },
366
- });
367
- autoModeRuntime.clearDefaultPodDataSession();
368
- display.showActivity('Use /login or choose browser authorization to sign in again.', 'note');
369
- }
370
- async function promptBackendSolidClientCredentials(display) {
371
- display.setPhase('question', 'Solid client credentials required');
372
- const credentialsText = await display.promptSecret({
373
- header: 'Solid client credentials',
374
- question: 'Paste Solid client credentials in client_id:client_secret format.',
375
- note: 'Input is hidden and saved locally as LinX Cloud client credentials.',
376
- });
377
- const parsed = parseSolidClientCredentials(credentialsText);
378
- if (!parsed) {
379
- display.showActivity('Solid client credentials entry cancelled or invalid. Expected client_id:client_secret.', 'error');
380
- return false;
381
- }
382
- autoModeRuntime.clearDefaultPodDataSession();
383
- try {
384
- await autoModeRuntime.persistSolidClientCredentialsLogin(credentialsText, autoModeRuntime);
385
- autoModeRuntime.clearDefaultPodDataSession();
386
- display.showActivity('Solid client credentials saved. Retrying backend startup.', 'success');
387
- return true;
388
- }
389
- catch (error) {
390
- autoModeRuntime.clearDefaultPodDataSession();
391
- const message = error instanceof Error ? error.message : String(error);
392
- display.showActivity(`Solid client credentials rejected: ${message}`, 'error');
393
- return false;
394
- }
395
- }
396
227
  function isRecoverableLinxCloudAuthError(message) {
397
228
  const normalized = message.toLowerCase();
398
229
  return normalized.includes('linx login')
@@ -501,12 +332,6 @@ function createAcpInteractionThreadEvent(record, interaction) {
501
332
  function requestedCredentialSource(options) {
502
333
  return options.credentialSource === 'local' ? 'local' : 'cloud';
503
334
  }
504
- function defaultApprovalStrategy() {
505
- return 'hybrid';
506
- }
507
- function resolveApprovalStrategy(options) {
508
- return options.approvalStrategy ?? defaultApprovalStrategy();
509
- }
510
335
  function requestedRuntime(options) {
511
336
  return options.runtime ?? 'local';
512
337
  }
@@ -519,11 +344,31 @@ function requestedAutoModeMode(options) {
519
344
  }
520
345
  return requestedAutoEnabled(options) ? 'auto' : 'off';
521
346
  }
522
- function isAutoModeWorkerBackend(backend) {
523
- return backend === 'linx' || backend === 'codex' || backend === 'claude' || backend === 'codebuddy';
524
- }
525
- function isAcpAutoModeWorkerBackend(backend) {
526
- return backend === 'codex' || backend === 'claude' || backend === 'codebuddy';
347
+ function writeFailedPodSyncCheckpoint(record, message) {
348
+ const now = new Date().toISOString();
349
+ const result = {
350
+ source: 'auto-mode-archive',
351
+ target: 'pod',
352
+ direction: 'local-to-core',
353
+ plane: 'projection',
354
+ authority: 'core',
355
+ attempted: 0,
356
+ applied: 0,
357
+ skipped: 0,
358
+ failed: 1,
359
+ failures: [{
360
+ operationId: 'auto-mode.persist-to-pod',
361
+ message,
362
+ failedAt: now,
363
+ }],
364
+ startedAt: now,
365
+ completedAt: now,
366
+ status: 'failed',
367
+ };
368
+ writeAutoModeSyncCheckpoint(record, createLinxSyncCheckpoint('auto-mode-archive:pod:projection', result, {
369
+ sessionId: record.id,
370
+ backend: record.backend,
371
+ }));
527
372
  }
528
373
  function normalizeBackendCommandEnv(backend, env) {
529
374
  if (!env) {
@@ -554,7 +399,7 @@ function syncRecordFromOptions(record, options, plan) {
554
399
  passthroughArgs: [...options.passthroughArgs],
555
400
  credentialSource: requestedCredentialSource(options),
556
401
  resolvedCredentialSource: options.resolvedCredentialSource,
557
- approvalSource: record.approvalSource ?? defaultApprovalStrategy(),
402
+ approvalSource: record.approvalSource ?? defaultAutoModeApprovalStrategy(),
558
403
  command: plan.command,
559
404
  args: [...plan.args],
560
405
  transport: options.transport ?? (options.backend === 'linx' ? 'native' : 'acp'),
@@ -1496,192 +1341,6 @@ function buildConversationSession(options) {
1496
1341
  const hook = getAutoModeHook(options.backend);
1497
1342
  return new AcpSession(options, hook);
1498
1343
  }
1499
- async function handleAutoModeShellCommand(args) {
1500
- const { input, session, display, queueState, backend, record } = args;
1501
- if (input === '/exit' || input === '/quit') {
1502
- return 'exit';
1503
- }
1504
- if (input === '/help' || input === '/hotkeys' || input === '/keymap') {
1505
- display.showHelp();
1506
- return 'handled';
1507
- }
1508
- if (input === '/login') {
1509
- try {
1510
- await runBackendLinxLogin(display);
1511
- appendSessionNote(record, 'LinX Cloud login refreshed from auto-mode');
1512
- }
1513
- catch (error) {
1514
- const message = error instanceof Error ? error.message : String(error);
1515
- appendAndDisplaySessionNote(record, display, `LinX Cloud login failed | ${message}`, 'error', { error: message });
1516
- }
1517
- return 'handled';
1518
- }
1519
- if (input === '/logout') {
1520
- runBackendLinxLogout(display);
1521
- appendSessionNote(record, 'LinX Cloud logout requested from auto-mode');
1522
- return 'handled';
1523
- }
1524
- if (input === '/session') {
1525
- appendAndDisplaySessionNote(record, display, [
1526
- `session=${record.backendSessionId ?? record.id}`,
1527
- `backend=${record.backend}`,
1528
- `runtime=${record.runtime}`,
1529
- 'credentials=pod',
1530
- `model=${record.model ?? 'default'}`,
1531
- `cwd=${record.cwd}`,
1532
- ].join(' | '));
1533
- return 'handled';
1534
- }
1535
- const autoModeRoute = resolveAutoModeCommandRoute(input);
1536
- if (autoModeRoute) {
1537
- return handleAutoModeCommandRoute({
1538
- route: autoModeRoute,
1539
- session,
1540
- display,
1541
- record,
1542
- });
1543
- }
1544
- if (input === '/queue') {
1545
- appendAndDisplaySessionNote(record, display, `queue | steer=${queueState.steeringCount} | follow-up=${queueState.followUpCount}`);
1546
- return 'handled';
1547
- }
1548
- if (input.startsWith('/follow-up ')) {
1549
- return 'pass';
1550
- }
1551
- if (input === '/sessions') {
1552
- const summaries = listAutoModeSessions().slice(0, 5).map(formatAutoModeSessionSummary);
1553
- if (summaries.length === 0) {
1554
- appendAndDisplaySessionNote(record, display, 'No archived auto-mode sessions found');
1555
- return 'handled';
1556
- }
1557
- for (const summary of summaries) {
1558
- appendAndDisplaySessionNote(record, display, summary);
1559
- }
1560
- return 'handled';
1561
- }
1562
- if (input === '/new') {
1563
- appendAndDisplaySessionNote(record, display, 'Use `linx --backend <backend>` to start a fresh auto-mode session');
1564
- return 'handled';
1565
- }
1566
- if (input === '/debug' || input === '/debug on') {
1567
- display.setDebugMode(true);
1568
- appendSessionNote(record, 'Debug protocol view enabled', { debug: true });
1569
- return 'handled';
1570
- }
1571
- if (input === '/debug off') {
1572
- display.setDebugMode(false);
1573
- appendSessionNote(record, 'Debug protocol view disabled', { debug: false });
1574
- return 'handled';
1575
- }
1576
- if (input.startsWith('/model ')) {
1577
- const model = input.slice('/model '.length).trim();
1578
- if (!model) {
1579
- appendAndDisplaySessionNote(record, display, 'Usage: /model <modelId>', 'error');
1580
- return 'handled';
1581
- }
1582
- try {
1583
- await session.setModel(model);
1584
- appendAndDisplaySessionNote(record, display, `Model set to ${model}`, 'success', { backend, model });
1585
- }
1586
- catch (error) {
1587
- const reason = error instanceof Error ? error.message : String(error);
1588
- appendAndDisplaySessionNote(record, display, `Model switch failed | ${reason}`, 'error', { backend, model, reason });
1589
- }
1590
- return 'handled';
1591
- }
1592
- return 'pass';
1593
- }
1594
- function handleAutoModeCommandRoute(args) {
1595
- const { route, session, display, record } = args;
1596
- if (route.kind === 'control-command') {
1597
- return handleAutoModeControlCommand({ route, session, display, record });
1598
- }
1599
- return handleAutoModePeerCommand({ route, session, display, record });
1600
- }
1601
- function handleAutoModeControlCommand(args) {
1602
- const { route, session, display, record } = args;
1603
- const auto = route.auto;
1604
- if (!auto || auto.action === 'status') {
1605
- const enabled = record.autoEnabled === true;
1606
- appendAndDisplaySessionNote(record, display, `Auto is ${enabled ? 'on' : 'off'}. Use /auto on or /auto off.`);
1607
- return 'handled';
1608
- }
1609
- if (!isAutoModeWorkerBackend(record.backend)) {
1610
- throw new Error(`Auto control commands cannot run backend ${record.backend}`);
1611
- }
1612
- applyAutoModeAutoEnabled(session, record, auto.enabled);
1613
- appendAndDisplaySessionNote(record, display, `Auto ${auto.enabled ? 'on' : 'off'}: ${auto.enabled ? 'Secretary drives the session and asks when blocked' : 'user drives the session directly'}.`, 'success', { autoEnabled: auto.enabled });
1614
- if (auto.initialInput) {
1615
- const projectedRoute = resolveAutoModeCommandRoute(auto.initialInput);
1616
- if (projectedRoute) {
1617
- return handleAutoModeCommandRoute({
1618
- route: projectedRoute,
1619
- session,
1620
- display,
1621
- record,
1622
- });
1623
- }
1624
- return { kind: 'send', text: auto.initialInput };
1625
- }
1626
- return 'handled';
1627
- }
1628
- function handleAutoModePeerCommand(args) {
1629
- const { route, session, display, record } = args;
1630
- const goalMirror = route.secretaryBehavior?.goalMode;
1631
- if (goalMirror !== undefined) {
1632
- applyAutoModeGoalMode(session, record, goalMirror);
1633
- appendAndDisplaySessionNote(record, display, `Goal command routed to current chat peer; local supervision mirror is ${goalMirror ? 'active' : 'paused'}.`, 'success', { goalMode: goalMirror, peerCommand: route.text });
1634
- }
1635
- else {
1636
- appendAndDisplaySessionNote(record, display, 'Goal command routed to current chat peer.', 'note', { peerCommand: route.text });
1637
- }
1638
- return { kind: 'send', text: route.text };
1639
- }
1640
- function applyAutoModeAutoEnabled(session, record, enabled) {
1641
- session.applyResolvedOptions({
1642
- backend: record.backend,
1643
- autoEnabled: enabled,
1644
- mode: enabled ? 'auto' : 'off',
1645
- cwd: record.cwd,
1646
- plain: false,
1647
- model: record.model,
1648
- prompt: record.prompt,
1649
- passthroughArgs: record.passthroughArgs,
1650
- goalMode: record.goalMode,
1651
- runtime: record.runtime,
1652
- transport: record.transport,
1653
- credentialSource: record.credentialSource,
1654
- resolvedCredentialSource: record.resolvedCredentialSource,
1655
- approvalStrategy: resolveApprovalStrategy({ approvalStrategy: record.approvalSource }),
1656
- });
1657
- record.autoEnabled = enabled;
1658
- record.mode = enabled ? 'auto' : 'off';
1659
- }
1660
- function applyAutoModeGoalMode(session, record, enabled) {
1661
- if (!isAutoModeWorkerBackend(record.backend)) {
1662
- throw new Error(`Goal peer commands cannot run backend ${record.backend}`);
1663
- }
1664
- session.applyResolvedOptions({
1665
- backend: record.backend,
1666
- autoEnabled: record.autoEnabled === true,
1667
- mode: record.mode,
1668
- cwd: record.cwd,
1669
- plain: false,
1670
- model: record.model,
1671
- prompt: record.prompt,
1672
- passthroughArgs: record.passthroughArgs,
1673
- goalMode: enabled,
1674
- runtime: record.runtime,
1675
- transport: record.transport,
1676
- credentialSource: record.credentialSource,
1677
- resolvedCredentialSource: record.resolvedCredentialSource,
1678
- approvalStrategy: resolveApprovalStrategy({ approvalStrategy: record.approvalSource }),
1679
- });
1680
- record.goalMode = enabled || undefined;
1681
- }
1682
- export const __testHandleAutoModeShellCommand = handleAutoModeShellCommand;
1683
- export const __testPromptLinxCloudAuth = promptLinxCloudAuth;
1684
- export const __testParseSolidClientCredentials = parseSolidClientCredentials;
1685
1344
  export async function runAutoMode(options) {
1686
1345
  const previousPlainEnv = process.env.LINX_BACKEND_PLAIN;
1687
1346
  if (options.plain) {
@@ -1945,6 +1604,10 @@ export async function runAutoMode(options) {
1945
1604
  },
1946
1605
  backend: resolvedRun.options.backend,
1947
1606
  record: activeSession.record,
1607
+ auth: {
1608
+ login: runBackendLinxLogin,
1609
+ logout: runBackendLinxLogout,
1610
+ },
1948
1611
  });
1949
1612
  if (shellCommand === 'handled') {
1950
1613
  activeSession.display.setPhase(activeTurn ? 'running' : 'ready', activeTurn ? `Running ${resolvedRun.options.backend}` : 'Waiting for input');