@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linx-stream-abort.js","sourceRoot":"","sources":["../../src/lib/linx-stream-abort.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,wBAAwB,CAAC,MAAoB;IAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACrB,OAAM;IACR,CAAC;IACD,MAAM,0BAA0B,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,GAAG,YAAY,CAAA;IACzB,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { normalizeMisclassifiedCloudCompletionPodTimeoutMessage } from './linx-cloud-errors.js';
2
+ export function formatLinxStreamErrorMessage(error) {
3
+ if (isLinxStreamAbortError(error)) {
4
+ return 'Request was aborted.';
5
+ }
6
+ if (isLinxStreamAuthExpiredError(error)) {
7
+ return 'LinX Cloud login expired.';
8
+ }
9
+ const misclassifiedPodRuntimeTimeout = normalizeMisclassifiedCloudCompletionPodTimeoutMessage(error);
10
+ if (misclassifiedPodRuntimeTimeout) {
11
+ return misclassifiedPodRuntimeTimeout;
12
+ }
13
+ return appendCloudDebugDetails(error instanceof Error ? error.message : String(error), error);
14
+ }
15
+ export function isLinxStreamAbortError(error) {
16
+ return error instanceof Error && error.name === 'AbortError';
17
+ }
18
+ function isLinxStreamAuthExpiredError(error) {
19
+ if (isRecord(error) && error.authExpired === true) {
20
+ return true;
21
+ }
22
+ const message = error instanceof Error ? error.message : String(error);
23
+ const normalized = message.toLowerCase();
24
+ return normalized.includes('linx cloud login expired')
25
+ || normalized.includes('invalid solid token')
26
+ || (normalized.includes('chat request failed (401)') && normalized.includes('unauthorized'));
27
+ }
28
+ function appendCloudDebugDetails(message, error) {
29
+ if (!isTruthyEnv('LINX_DEBUG_CLOUD') || !isRecord(error)) {
30
+ return message;
31
+ }
32
+ const responseBody = typeof error.responseBody === 'string' ? error.responseBody : '';
33
+ const status = typeof error.status === 'number' ? error.status : undefined;
34
+ if (!responseBody && status === undefined) {
35
+ return message;
36
+ }
37
+ const parts = [
38
+ status === undefined ? undefined : `status=${status}`,
39
+ responseBody ? `response=${truncateCloudDebug(responseBody)}` : undefined,
40
+ ].filter(Boolean);
41
+ return `${message}\nCloud debug: ${parts.join(' ')}`;
42
+ }
43
+ function isTruthyEnv(name) {
44
+ const raw = process.env[name];
45
+ return raw === '1' || raw === 'true' || raw === 'yes';
46
+ }
47
+ function truncateCloudDebug(value) {
48
+ const trimmed = value.replace(/\s+/g, ' ').trim();
49
+ return trimmed.length > 500 ? `${trimmed.slice(0, 500)}...` : trimmed;
50
+ }
51
+ function isRecord(value) {
52
+ return typeof value === 'object' && value !== null;
53
+ }
54
+ //# sourceMappingURL=linx-stream-error-formatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linx-stream-error-formatting.js","sourceRoot":"","sources":["../../src/lib/linx-stream-error-formatting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { showLinxInteractiveWarning } from './linx-interactive-warning-display.js';
2
+ import { getSessionControlManager } from './session-control.js';
3
+ export function recordInteractiveSubmittedUserMessage(interactive, runtime, text) {
4
+ const input = text.trim();
5
+ if (!input || input.startsWith('/')) {
6
+ return;
7
+ }
8
+ try {
9
+ getSessionControlManager(interactive, runtime).recordUserMessage({ text: input });
10
+ }
11
+ catch (error) {
12
+ const message = error instanceof Error ? error.message : String(error);
13
+ showLinxInteractiveWarning(interactive, `Thread reconciliation unavailable: ${message}`);
14
+ }
15
+ }
16
+ //# sourceMappingURL=linx-submitted-user-message-recording.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linx-submitted-user-message-recording.js","sourceRoot":"","sources":["../../src/lib/linx-submitted-user-message-recording.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,MAAM,UAAU,qCAAqC,CAAC,WAAgB,EAAE,OAAY,EAAE,IAAY;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,0BAA0B,CAAC,WAAW,EAAE,sCAAsC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC"}
@@ -0,0 +1,493 @@
1
+ import { runSymphony } from './symphony/run.js';
2
+ import { createSymphonyRuntimeForPodProjection } from './symphony/runtime.js';
3
+ import { formatSymphonyStatus } from './symphony/status.js';
4
+ import { showLinxInteractiveError } from './linx-interactive-error-display.js';
5
+ import { showLinxInteractiveStatus } from './linx-interactive-status-display.js';
6
+ import { DEFAULT_SECRETARY_CHAT_ID, secretaryChatUri, secretaryThreadUri } from './pod-mirror-mapping.js';
7
+ import { getSessionControlManager } from './session-control.js';
8
+ import { resolveInteractiveCwd } from './linx-workspace-command.js';
9
+ import { createSymphonyIdeaRecord, } from './symphony/archive.js';
10
+ import { persistSymphonyIdeaToPod } from './symphony/pod-projection.js';
11
+ import { registerLinxInteractiveSubmitHandler } from './linx-interactive-submit-router.js';
12
+ import { setLinxInteractiveEditorText } from './linx-interactive-editor-text-host.js';
13
+ import { getLinxInteractiveRuntime, resolveLinxInteractivePodWebId } from './linx-interactive-runtime-host.js';
14
+ import { resolveLinxSessionId, resolveLinxSessionModelId } from './linx-session-metadata.js';
15
+ import { queueLinxInteractiveSessionRuntimeProjection } from './linx-session-work-control.js';
16
+ import { getLinxInteractiveListSymphonyIssues, getLinxInteractiveListSymphonySessions, getLinxInteractiveRunSymphony, isLinxInteractiveAutoModeEnabled, getLinxInteractiveSymphonyAgentRuntime, getLinxInteractiveSymphonyAgentRuntimeConfig, getLinxInteractiveSymphonyDispatchControllers, getLinxInteractiveSymphonyDispatches, getLinxInteractiveSymphonyModeGeneration, getLinxInteractiveSymphonyPodProjectionRuntime, getLinxInteractiveSymphonyStatusPodTimeoutMs, getLinxInteractiveSymphonyWorkerBackend, getLinxInteractiveSymphonyWorkerCredentialSource, getLinxInteractiveSymphonyWorkerModel, getLinxInteractiveSymphonyWorkerSupervisorIntervalMs, isLinxInteractiveSymphonyModeEnabled, notifyLinxInteractiveSymphonyControlChange, setLinxInteractiveSymphonyModeEnabled, } from './linx-interactive-shell-state.js';
17
+ const DEFAULT_SYMPHONY_WORKER_SUPERVISOR_INTERVAL_MS = 10 * 60 * 1000;
18
+ const symphonyCommandInstalled = new WeakSet();
19
+ export function installSymphonyCommand(interactive) {
20
+ if (!interactive || symphonyCommandInstalled.has(interactive)) {
21
+ return;
22
+ }
23
+ registerLinxInteractiveSubmitHandler(interactive, {
24
+ name: 'linx-symphony',
25
+ priority: 20,
26
+ async handler({ interactive: target, input, originalSubmit }) {
27
+ const command = parseSymphonyCommand(input);
28
+ if (command) {
29
+ setLinxInteractiveEditorText(target, '');
30
+ await handleSymphonyCommand(target, command);
31
+ return true;
32
+ }
33
+ if (isLinxInteractiveSymphonyModeEnabled(target) && shouldProjectSymphonyInput(input)) {
34
+ getSessionControlManager(target, getLinxInteractiveRuntime(target)).recordUserMessage({ text: input });
35
+ await queueSymphonySecretaryProjection(target, input);
36
+ await originalSubmit(input);
37
+ return true;
38
+ }
39
+ return false;
40
+ },
41
+ });
42
+ symphonyCommandInstalled.add(interactive);
43
+ }
44
+ function parseSymphonyCommand(input) {
45
+ if (input !== '/symphony' && !input.startsWith('/symphony ')) {
46
+ return null;
47
+ }
48
+ const args = input === '/symphony' ? '' : input.slice('/symphony'.length).trim();
49
+ if (!args || args.toLowerCase() === 'on' || args.toLowerCase() === 'enable') {
50
+ return { action: 'enable' };
51
+ }
52
+ const normalized = args.toLowerCase();
53
+ if (normalized === 'off' || normalized === 'disable' || normalized === 'exit') {
54
+ return { action: 'disable' };
55
+ }
56
+ if (normalized === 'status') {
57
+ return { action: 'status' };
58
+ }
59
+ return { action: 'usage', input: args };
60
+ }
61
+ async function handleSymphonyCommand(interactive, command) {
62
+ if (command.action === 'enable') {
63
+ setLinxInteractiveSymphonyModeEnabled(interactive, getLinxInteractiveRuntime(interactive), true);
64
+ showLinxInteractiveStatus(interactive, formatSymphonyModeChangeStatus(true));
65
+ await notifyLinxInteractiveSymphonyControlChange(interactive, true);
66
+ return;
67
+ }
68
+ if (command.action === 'disable') {
69
+ setLinxInteractiveSymphonyModeEnabled(interactive, getLinxInteractiveRuntime(interactive), false);
70
+ abortInteractiveSymphonyDispatches(interactive);
71
+ showLinxInteractiveStatus(interactive, formatSymphonyModeChangeStatus(false));
72
+ await notifyLinxInteractiveSymphonyControlChange(interactive, false);
73
+ return;
74
+ }
75
+ if (command.action === 'status') {
76
+ showLinxInteractiveStatus(interactive, await formatSymphonyStatus({
77
+ enabled: isLinxInteractiveSymphonyModeEnabled(interactive),
78
+ source: await resolveSymphonySourceContext(interactive),
79
+ podProjectionRuntime: getLinxInteractiveSymphonyPodProjectionRuntime(interactive),
80
+ statusPodTimeoutMs: getLinxInteractiveSymphonyStatusPodTimeoutMs(interactive),
81
+ listLocalIssues: getLinxInteractiveListSymphonyIssues(interactive),
82
+ listLocalSessions: getLinxInteractiveListSymphonySessions(interactive),
83
+ }));
84
+ return;
85
+ }
86
+ showLinxInteractiveStatus(interactive, formatSymphonyUsage(command.input));
87
+ }
88
+ function formatSymphonyModeChangeStatus(enabled) {
89
+ return enabled
90
+ ? 'Symphony is on. I will keep ordinary chat ordinary and only plan or hand off real work.'
91
+ : 'Symphony is off. Back to direct chat. Active handoffs from this window were stopped.';
92
+ }
93
+ function formatSymphonyUsage(input) {
94
+ return [
95
+ `Unsupported /symphony argument: ${input}`,
96
+ 'Use /symphony on to chat with Secretary, /symphony off to chat with the worker/backend peer, or /symphony status to inspect workers.',
97
+ 'After enabling Symphony, send the objective as a normal chat message to Secretary; Secretary will decide whether it is an Issue, update existing work, split tasks, and dispatch workers.',
98
+ ].join('\n');
99
+ }
100
+ function shouldProjectSymphonyInput(input) {
101
+ return Boolean(input)
102
+ && !input.startsWith('/')
103
+ && !input.startsWith('!');
104
+ }
105
+ async function queueSymphonySecretaryProjection(interactive, input) {
106
+ await queueLinxInteractiveSessionRuntimeProjection(interactive, {
107
+ customType: 'linx.symphony.secretary_projection',
108
+ content: renderSymphonySecretaryProjection(input),
109
+ display: false,
110
+ details: {
111
+ kind: 'runtime_projection',
112
+ visibleInput: input,
113
+ },
114
+ }, { deliverAs: 'nextTurn' });
115
+ }
116
+ function renderSymphonySecretaryProjection(input) {
117
+ return [
118
+ '# AI Secretary Symphony request',
119
+ '',
120
+ 'Symphony is on: the user is chatting with Secretary, not directly with the worker/backend peer.',
121
+ 'Treat the user message below as a Secretary-facing product message.',
122
+ 'Decide whether it is ordinary chat, an Idea, a change to existing work, or delegable work.',
123
+ 'Default response style: reply like normal chat.',
124
+ 'Do not print internal Symphony binding, Issue/Task routing, worker selection, or report-style sections unless a visible state change or blocker must be surfaced.',
125
+ 'If the message is ordinary chat or early exploration, answer directly and do not explain that it was not delegated.',
126
+ 'If real delegation is needed, summarize the visible handoff result briefly after updating control state.',
127
+ 'When you need to inspect or mutate Symphony Pod resources from the AI side, use the xpod CLI as the direct Pod tool surface.',
128
+ 'Prefer model-backed xpod obj commands for Idea, Issue, Task, Delivery, Run, RunStep, Report, Evidence, ApprovalRequest, InputRequest, and InboxNotification resources.',
129
+ 'xpod uses the same Solid authority as LinX inside the Agent Runtime; do not ask the model to handle tokens or client secrets.',
130
+ 'Before mutating Pod resources from tools, verify xpod auth status/whoami reports the same acting WebID/Pod root as the LinX session; stop on mismatch.',
131
+ 'Do not hand-patch TTL or guess Pod paths for modeled product resources; use xpod/model descriptors or inspect existing links first.',
132
+ '',
133
+ 'User message:',
134
+ input,
135
+ ].join('\n');
136
+ }
137
+ async function dispatchSymphonyWorkerFromInteractive(interactive, objective, source) {
138
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
139
+ const backend = resolveSymphonyWorkerBackend(interactive, objective);
140
+ const agentRuntime = resolveSymphonyControlAgentRuntime(interactive);
141
+ const workerModel = resolveSymphonyWorkerModel(interactive, objective, backend);
142
+ const workerCredentialSource = resolveSymphonyWorkerCredentialSource(interactive, backend);
143
+ const workerGoalMode = isLinxInteractiveAutoModeEnabled(interactive, activeRuntime);
144
+ const workerSupervisorIntervalMs = workerGoalMode ? resolveSymphonyWorkerSupervisorIntervalMs(interactive) : undefined;
145
+ const cwd = resolveInteractiveCwd(interactive, activeRuntime);
146
+ const dispatchGeneration = getLinxInteractiveSymphonyModeGeneration(interactive);
147
+ const dispatches = getLinxInteractiveSymphonyDispatches(interactive);
148
+ const controller = new AbortController();
149
+ const controllers = getLinxInteractiveSymphonyDispatchControllers(interactive);
150
+ controllers.add(controller);
151
+ showLinxInteractiveStatus(interactive, `Symphony handoff started: ${backend}${workerModel ? ` · ${workerModel}` : ''}`
152
+ + `${workerGoalMode ? ` · supervised every ${formatSymphonySupervisorInterval(workerSupervisorIntervalMs)}` : ''}.`
153
+ + ' Use /symphony status for details.');
154
+ const run = getLinxInteractiveRunSymphony(interactive) ?? runSymphony;
155
+ const dispatchArgs = {
156
+ objective: [objective],
157
+ backend,
158
+ auto: workerGoalMode,
159
+ cwd,
160
+ plain: true,
161
+ print: false,
162
+ quietProjectionErrors: true,
163
+ quietWorkers: true,
164
+ credentialSource: workerCredentialSource,
165
+ agentRuntime,
166
+ workerModel,
167
+ workerGoalMode,
168
+ workerSupervisorIntervalMs,
169
+ signal: controller.signal,
170
+ ...(source?.chat ? { chat: source.chat } : {}),
171
+ ...(source?.thread ? { thread: source.thread } : {}),
172
+ target: {
173
+ source: 'active-session',
174
+ backend,
175
+ agent: `${backend}-worker`,
176
+ label: `${backend} worker`,
177
+ ...(source?.chat ? { chat: source.chat } : {}),
178
+ ...(source?.thread ? { thread: source.thread } : {}),
179
+ },
180
+ };
181
+ const runtime = createInteractiveSymphonyRuntime(interactive);
182
+ const dispatch = run(dispatchArgs, runtime)
183
+ .then((plan) => {
184
+ if (!isCurrentSymphonyDispatch(interactive, dispatchGeneration)) {
185
+ return;
186
+ }
187
+ showLinxInteractiveStatus(interactive, formatSymphonyDispatchResult(plan), { render: false });
188
+ })
189
+ .catch((error) => {
190
+ if (!isCurrentSymphonyDispatch(interactive, dispatchGeneration)) {
191
+ return;
192
+ }
193
+ if (isSymphonyAbortError(error)) {
194
+ showLinxInteractiveStatus(interactive, 'Symphony dispatch cancelled.', { render: false });
195
+ return;
196
+ }
197
+ const message = error instanceof Error ? error.message : String(error);
198
+ showLinxInteractiveError(interactive, `Symphony dispatch failed: ${message}`);
199
+ })
200
+ .finally(() => {
201
+ controllers.delete(controller);
202
+ if (!isCurrentSymphonyDispatch(interactive, dispatchGeneration)) {
203
+ return;
204
+ }
205
+ showLinxInteractiveStatus(interactive, null);
206
+ });
207
+ dispatches.push(dispatch);
208
+ await Promise.resolve();
209
+ }
210
+ function abortInteractiveSymphonyDispatches(interactive) {
211
+ const controllers = getLinxInteractiveSymphonyDispatchControllers(interactive);
212
+ for (const controller of controllers) {
213
+ if (!controller.signal.aborted) {
214
+ controller.abort(new Error('Symphony dispatch aborted by /symphony off'));
215
+ }
216
+ }
217
+ controllers.clear();
218
+ }
219
+ function isSymphonyAbortError(error) {
220
+ return error instanceof Error
221
+ && (error.name === 'AbortError' || error.message.toLowerCase().includes('aborted'));
222
+ }
223
+ function isCurrentSymphonyDispatch(interactive, generation) {
224
+ return isLinxInteractiveSymphonyModeEnabled(interactive)
225
+ && getLinxInteractiveSymphonyModeGeneration(interactive) === generation;
226
+ }
227
+ function createInteractiveSymphonyRuntime(interactive) {
228
+ const projectionRuntime = getLinxInteractiveSymphonyPodProjectionRuntime(interactive);
229
+ return projectionRuntime ? createSymphonyRuntimeForPodProjection(projectionRuntime) : undefined;
230
+ }
231
+ function resolveSymphonyWorkerBackend(interactive, objective) {
232
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
233
+ const candidates = [
234
+ getLinxInteractiveSymphonyWorkerBackend(interactive),
235
+ activeRuntime?.symphonyWorkerBackend,
236
+ extractSymphonyWorkerBackendFromText(objective),
237
+ activeRuntime?.runtimeBackend,
238
+ activeRuntime?.workerBackend,
239
+ activeRuntime?.backendCommandRouter?.backend,
240
+ activeRuntime?.backendSessionRef?.backend,
241
+ ];
242
+ for (const candidate of candidates) {
243
+ if (candidate === 'cc') {
244
+ return 'claude';
245
+ }
246
+ if (isSymphonyWorkerBackend(candidate)) {
247
+ return candidate;
248
+ }
249
+ }
250
+ return 'codex';
251
+ }
252
+ function isSymphonyWorkerBackend(value) {
253
+ return value === 'linx' || value === 'codex' || value === 'claude' || value === 'codebuddy';
254
+ }
255
+ function resolveSymphonyWorkerCredentialSource(interactive, backend) {
256
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
257
+ const configured = normalizeSymphonyCredentialSource(getLinxInteractiveSymphonyWorkerCredentialSource(interactive), activeRuntime?.symphonyWorkerCredentialSource, activeRuntime?.workerCredentialSource);
258
+ if (configured) {
259
+ return configured;
260
+ }
261
+ return backend === 'linx' ? 'cloud' : 'local';
262
+ }
263
+ function normalizeSymphonyCredentialSource(...values) {
264
+ for (const value of values) {
265
+ if (value === 'local' || value === 'cloud') {
266
+ return value;
267
+ }
268
+ if (typeof value === 'string') {
269
+ const normalized = value.trim().toLowerCase();
270
+ if (normalized === 'local' || normalized === 'cloud') {
271
+ return normalized;
272
+ }
273
+ }
274
+ }
275
+ return undefined;
276
+ }
277
+ function extractSymphonyWorkerBackendFromText(input) {
278
+ const normalized = input?.trim().toLowerCase();
279
+ if (!normalized) {
280
+ return undefined;
281
+ }
282
+ if (/\b(?:linx|pi)\s*(?:runtime|backend|worker|agent)\b/u.test(normalized)
283
+ || /\b(?:runtime|backend|worker|agent)\s*(?:=|:|:|是|用|使用|设为|指定为)\s*(?:linx|pi)\b/u.test(normalized)
284
+ || /(用|使用|让|派)\s*(linx|pi)\s*(runtime|后端|worker|agent|模型)?/u.test(normalized)) {
285
+ return 'linx';
286
+ }
287
+ if (/\b(?:claude|cc)\s*(?:code\s*)?(?:runtime|backend|worker|agent)\b/u.test(normalized)
288
+ || /\b(?:runtime|backend|worker|agent)\s*(?:=|:|:|是|用|使用|设为|指定为)\s*(?:claude|cc)\b/u.test(normalized)
289
+ || /(用|使用|让|派)\s*(?:claude|cc)\s*(?:code|runtime|后端|worker|agent|模型)?/u.test(normalized)) {
290
+ return 'claude';
291
+ }
292
+ if (/\bcodex\s*(?:runtime|backend|worker|agent)?\b/u.test(normalized)) {
293
+ return 'codex';
294
+ }
295
+ if (/\b(?:claude|cc)\s*(?:code|runtime|backend|worker|agent)?\b/u.test(normalized)) {
296
+ return 'claude';
297
+ }
298
+ if (/\bcodebuddy\s*(?:runtime|backend|worker|agent)?\b/u.test(normalized)) {
299
+ return 'codebuddy';
300
+ }
301
+ return undefined;
302
+ }
303
+ function resolveSymphonyControlAgentRuntime(interactive) {
304
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
305
+ const configured = normalizeSymphonyAgentRuntimeConfig(getLinxInteractiveSymphonyAgentRuntime(interactive), getLinxInteractiveSymphonyAgentRuntimeConfig(interactive), activeRuntime?.agentRuntime, activeRuntime?.agentRuntimeConfig);
306
+ const model = configured?.model ?? normalizeSymphonyConfigString(resolveLinxSessionModelId({ interactive, runtime: activeRuntime }));
307
+ if (!configured && !model) {
308
+ return undefined;
309
+ }
310
+ return {
311
+ backend: configured?.backend ?? 'linx',
312
+ credentialSource: configured?.credentialSource ?? 'cloud',
313
+ ...configured,
314
+ ...(model ? { model } : {}),
315
+ };
316
+ }
317
+ function normalizeSymphonyAgentRuntimeConfig(...values) {
318
+ for (const value of values) {
319
+ if (!isRecord(value)) {
320
+ continue;
321
+ }
322
+ const metadata = isRecord(value.metadata) ? { ...value.metadata } : undefined;
323
+ const resolved = {
324
+ ...(normalizeSymphonyConfigString(value.backend) ? { backend: normalizeSymphonyConfigString(value.backend) } : {}),
325
+ ...(normalizeSymphonyConfigString(value.model) ? { model: normalizeSymphonyConfigString(value.model) } : {}),
326
+ ...(normalizeSymphonyConfigString(value.credentialSource) ? { credentialSource: normalizeSymphonyConfigString(value.credentialSource) } : {}),
327
+ ...(normalizeSymphonyConfigString(value.runtime) ? { runtime: normalizeSymphonyConfigString(value.runtime) } : {}),
328
+ ...(normalizeSymphonyConfigString(value.transport) ? { transport: normalizeSymphonyConfigString(value.transport) } : {}),
329
+ ...(normalizeSymphonyConfigString(value.endpoint) ? { endpoint: normalizeSymphonyConfigString(value.endpoint) } : {}),
330
+ ...(metadata ? { metadata } : {}),
331
+ };
332
+ if (Object.keys(resolved).length > 0) {
333
+ return resolved;
334
+ }
335
+ }
336
+ return undefined;
337
+ }
338
+ function formatSymphonyControlRuntime(runtime) {
339
+ return [
340
+ runtime.backend ?? 'linx',
341
+ runtime.model,
342
+ runtime.credentialSource ? `credentials=${runtime.credentialSource}` : undefined,
343
+ ].filter(Boolean).join(' · ');
344
+ }
345
+ function resolveSymphonyWorkerModel(interactive, objective, backend) {
346
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
347
+ const configured = normalizeSymphonyConfigString(getLinxInteractiveSymphonyWorkerModel(interactive), activeRuntime?.symphonyWorkerModel, activeRuntime?.workerModel, extractSymphonyWorkerModelFromText(objective));
348
+ if (backend === 'claude' && configured && isProviderRoutedModel(configured)) {
349
+ return 'opus';
350
+ }
351
+ return configured;
352
+ }
353
+ function resolveSymphonyWorkerSupervisorIntervalMs(interactive) {
354
+ const activeRuntime = getLinxInteractiveRuntime(interactive);
355
+ const value = Number(getLinxInteractiveSymphonyWorkerSupervisorIntervalMs(interactive)
356
+ ?? activeRuntime?.symphonyWorkerSupervisorIntervalMs
357
+ ?? DEFAULT_SYMPHONY_WORKER_SUPERVISOR_INTERVAL_MS);
358
+ if (!Number.isFinite(value) || value <= 0) {
359
+ return DEFAULT_SYMPHONY_WORKER_SUPERVISOR_INTERVAL_MS;
360
+ }
361
+ return Math.trunc(value);
362
+ }
363
+ function formatSymphonySupervisorInterval(value) {
364
+ const intervalMs = Number(value);
365
+ if (!Number.isFinite(intervalMs) || intervalMs <= 0) {
366
+ return `${DEFAULT_SYMPHONY_WORKER_SUPERVISOR_INTERVAL_MS / 60_000}m`;
367
+ }
368
+ if (intervalMs % 60_000 === 0) {
369
+ return `${intervalMs / 60_000}m`;
370
+ }
371
+ if (intervalMs % 1000 === 0) {
372
+ return `${intervalMs / 1000}s`;
373
+ }
374
+ return `${intervalMs}ms`;
375
+ }
376
+ function normalizeSymphonyConfigString(...values) {
377
+ for (const value of values) {
378
+ const normalized = typeof value === 'string' ? value.trim() : '';
379
+ if (normalized) {
380
+ return normalized;
381
+ }
382
+ }
383
+ return undefined;
384
+ }
385
+ function extractSymphonyWorkerModelFromText(input) {
386
+ const patterns = [
387
+ /(?:worker|agent|模型|model)\s*(?:=|:|:|是|用|使用|设为|指定为)\s*([A-Za-z0-9][A-Za-z0-9._/-]{1,80})/iu,
388
+ /(?:用|使用|让|派)\s*([A-Za-z0-9][A-Za-z0-9._/-]{1,80})\s*(?:作为)?\s*(?:worker|agent|模型|model)/iu,
389
+ /\b((?:deepseek|gpt|claude|qwen|gemini)[A-Za-z0-9._/-]{1,80})\s*(?:worker|agent)?/iu,
390
+ ];
391
+ for (const pattern of patterns) {
392
+ const match = input.match(pattern);
393
+ const normalized = normalizeSymphonyModelToken(match?.[1]);
394
+ if (normalized) {
395
+ return normalized;
396
+ }
397
+ }
398
+ return undefined;
399
+ }
400
+ function normalizeSymphonyModelToken(value) {
401
+ const normalized = typeof value === 'string'
402
+ ? value.trim().replace(/[,。,.、;;::!?!?))\]}】]+$/u, '')
403
+ : '';
404
+ return normalized || undefined;
405
+ }
406
+ function isProviderRoutedModel(model) {
407
+ return /(?:deepseek|qwen|gemini|kimi|moonshot|mistral|grok|glm|minimax)/iu.test(model);
408
+ }
409
+ function formatSymphonyDispatchResult(plan) {
410
+ const worker = plan.workers[0];
411
+ const session = worker?.session ?? plan.session;
412
+ const delivery = worker?.delivery ?? plan.delivery;
413
+ const lines = [
414
+ plan.issue.status === 'resolved' && delivery.status === 'completed'
415
+ ? `Symphony handoff completed: ${plan.issue.title}.`
416
+ : `Symphony handoff recorded: ${plan.issue.title}.`,
417
+ 'Use /symphony status for details.',
418
+ ];
419
+ if (session.error) {
420
+ lines.push(`Error: ${session.error}`);
421
+ }
422
+ return lines.join('\n');
423
+ }
424
+ async function captureSymphonyIdeaIfNeeded(input, source) {
425
+ if (!shouldCaptureSymphonyIdeaInput(input)) {
426
+ return undefined;
427
+ }
428
+ try {
429
+ const affectedArea = inferSymphonyIdeaAffectedArea(input);
430
+ const captureInput = {
431
+ input,
432
+ commitment: 'thought',
433
+ status: 'captured',
434
+ currentUnderstanding: input.trim(),
435
+ nextStep: 'Bind this Idea against existing control records before promoting it to work.',
436
+ ...(source?.chat ? { chat: source.chat } : {}),
437
+ ...(source?.thread ? { thread: source.thread } : {}),
438
+ ...(affectedArea ? { affectedArea } : {}),
439
+ };
440
+ const idea = createSymphonyIdeaRecord(captureInput);
441
+ const persisted = await persistSymphonyIdeaToPod(idea);
442
+ if (!persisted) {
443
+ throw new Error('No active Pod session; Symphony Idea records must be written to Pod in LinX runtime.');
444
+ }
445
+ return {
446
+ uri: idea.uri,
447
+ summary: idea.summary,
448
+ status: idea.status,
449
+ commitment: idea.commitment,
450
+ };
451
+ }
452
+ catch (error) {
453
+ process.emitWarning(error instanceof Error
454
+ ? new Error(`LinX Symphony Idea Pod write failed: ${error.message}`)
455
+ : new Error(`LinX Symphony Idea Pod write failed: ${String(error)}`));
456
+ return undefined;
457
+ }
458
+ }
459
+ function shouldCaptureSymphonyIdeaInput(input) {
460
+ const normalized = input.trim();
461
+ if (normalized.length < 12) {
462
+ return false;
463
+ }
464
+ return /\b(idea|maybe|perhaps|could we|should we|what if|proposal|direction)\b/iu.test(normalized)
465
+ || /(我觉得|感觉|也许|可能|考虑|想法|方向|要不要|能不能|是不是|是否|应该)/u.test(normalized);
466
+ }
467
+ function inferSymphonyIdeaAffectedArea(input) {
468
+ const normalized = input.toLowerCase();
469
+ if (/symphony|secretary|auto|approval|grant|pod|xpod|skill|worker|agent/u.test(normalized)) {
470
+ return normalized.match(/symphony|secretary|auto|approval|grant|pod|xpod|skill|worker|agent/u)?.[0];
471
+ }
472
+ if (/(建模|模型|数据|同步|权限|审批|托管|多端|工作流|指标|质检)/u.test(input)) {
473
+ return input.match(/建模|模型|数据|同步|权限|审批|托管|多端|工作流|指标|质检/u)?.[0];
474
+ }
475
+ return undefined;
476
+ }
477
+ async function resolveSymphonySourceContext(interactive) {
478
+ const sessionId = resolveLinxSessionId({ interactive, runtime: getLinxInteractiveRuntime(interactive) });
479
+ const webId = await resolveLinxInteractivePodWebId(interactive);
480
+ if (typeof sessionId !== 'string' || !sessionId.trim() || !webId) {
481
+ return undefined;
482
+ }
483
+ const trimmedSessionId = sessionId.trim();
484
+ return {
485
+ chat: secretaryChatUri(webId),
486
+ thread: secretaryThreadUri(webId, trimmedSessionId, DEFAULT_SECRETARY_CHAT_ID),
487
+ sessionId: trimmedSessionId,
488
+ };
489
+ }
490
+ function isRecord(value) {
491
+ return typeof value === 'object' && value !== null;
492
+ }
493
+ //# sourceMappingURL=linx-symphony-interactive-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linx-symphony-interactive-command.js","sourceRoot":"","sources":["../../src/lib/linx-symphony-interactive-command.ts"],"names":[],"mappings":"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"}