@getpaseo/server 0.1.68 → 0.1.70

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 (335) hide show
  1. package/dist/scripts/dev-runner.js +4 -1
  2. package/dist/scripts/dev-runner.js.map +1 -1
  3. package/dist/scripts/supervisor-entrypoint.js +32 -10
  4. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  5. package/dist/scripts/supervisor.js +71 -6
  6. package/dist/scripts/supervisor.js.map +1 -1
  7. package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -1
  8. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
  9. package/dist/server/client/daemon-client.d.ts +33 -0
  10. package/dist/server/client/daemon-client.d.ts.map +1 -1
  11. package/dist/server/client/daemon-client.js +37 -1
  12. package/dist/server/client/daemon-client.js.map +1 -1
  13. package/dist/server/server/agent/agent-manager.d.ts +8 -0
  14. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  15. package/dist/server/server/agent/agent-manager.js +54 -5
  16. package/dist/server/server/agent/agent-manager.js.map +1 -1
  17. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.d.ts +15 -2
  19. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  20. package/dist/server/server/agent/agent-storage.d.ts +2 -2
  21. package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
  22. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
  23. package/dist/server/server/agent/agent-timeline-store.js +1 -1
  24. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  25. package/dist/server/server/agent/create-agent-mode.d.ts +14 -0
  26. package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -0
  27. package/dist/server/server/agent/create-agent-mode.js +23 -0
  28. package/dist/server/server/agent/create-agent-mode.js.map +1 -0
  29. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  30. package/dist/server/server/agent/mcp-server.js +36 -12
  31. package/dist/server/server/agent/mcp-server.js.map +1 -1
  32. package/dist/server/server/agent/mcp-shared.d.ts +8 -4
  33. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  34. package/dist/server/server/agent/mcp-shared.js +12 -5
  35. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  36. package/dist/server/server/agent/pcm16-resampler.js.map +1 -1
  37. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
  38. package/dist/server/server/agent/prompt-attachments.js +2 -0
  39. package/dist/server/server/agent/prompt-attachments.js.map +1 -1
  40. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  41. package/dist/server/server/agent/provider-manifest.d.ts +4 -1
  42. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  43. package/dist/server/server/agent/provider-manifest.js +11 -0
  44. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  45. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  46. package/dist/server/server/agent/provider-registry.js +8 -3
  47. package/dist/server/server/agent/provider-registry.js.map +1 -1
  48. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  49. package/dist/server/server/agent/providers/acp-agent.d.ts +2 -1
  50. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  51. package/dist/server/server/agent/providers/acp-agent.js +35 -17
  52. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  53. package/dist/server/server/agent/providers/{claude-agent.d.ts → claude/agent.d.ts} +10 -6
  54. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -0
  55. package/dist/server/server/agent/providers/{claude-agent.js → claude/agent.js} +216 -153
  56. package/dist/server/server/agent/providers/claude/agent.js.map +1 -0
  57. package/dist/server/server/agent/providers/claude/{claude-models.d.ts → models.d.ts} +1 -1
  58. package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -0
  59. package/dist/server/server/agent/providers/claude/{claude-models.js → models.js} +8 -1
  60. package/dist/server/server/agent/providers/claude/models.js.map +1 -0
  61. package/dist/server/server/agent/providers/claude/query.d.ts +14 -0
  62. package/dist/server/server/agent/providers/claude/query.d.ts.map +1 -0
  63. package/dist/server/server/agent/providers/claude/query.js +84 -0
  64. package/dist/server/server/agent/providers/claude/query.js.map +1 -0
  65. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  66. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +11 -2
  67. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  68. package/dist/server/server/agent/providers/codex-app-server-agent.js +408 -91
  69. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  70. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
  71. package/dist/server/server/agent/providers/diagnostic-utils.js +4 -0
  72. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
  73. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -1
  74. package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/generic-acp-agent.js +0 -3
  76. package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
  77. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  78. package/dist/server/server/agent/providers/mock-load-test-agent.js +6 -2
  79. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  80. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  81. package/dist/server/server/agent/providers/opencode-agent.js +32 -27
  82. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  83. package/dist/server/server/agent/providers/provider-image-output.d.ts +20 -0
  84. package/dist/server/server/agent/providers/provider-image-output.d.ts.map +1 -0
  85. package/dist/server/server/agent/providers/provider-image-output.js +51 -0
  86. package/dist/server/server/agent/providers/provider-image-output.js.map +1 -0
  87. package/dist/server/server/agent/providers/provider-runner.d.ts +3 -3
  88. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
  89. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
  90. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -7
  91. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  92. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +12 -18
  93. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  94. package/dist/server/server/agent/stt-manager.d.ts +1 -0
  95. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  96. package/dist/server/server/agent/stt-manager.js +3 -0
  97. package/dist/server/server/agent/stt-manager.js.map +1 -1
  98. package/dist/server/server/agent/tool-name-normalization.js.map +1 -1
  99. package/dist/server/server/agent/tts-manager.js.map +1 -1
  100. package/dist/server/server/bootstrap.d.ts +3 -0
  101. package/dist/server/server/bootstrap.d.ts.map +1 -1
  102. package/dist/server/server/bootstrap.js +3 -9
  103. package/dist/server/server/bootstrap.js.map +1 -1
  104. package/dist/server/server/chat/chat-rpc-schemas.d.ts +42 -42
  105. package/dist/server/server/chat/chat-types.d.ts +6 -6
  106. package/dist/server/server/config.d.ts +1 -0
  107. package/dist/server/server/config.d.ts.map +1 -1
  108. package/dist/server/server/config.js +27 -2
  109. package/dist/server/server/config.js.map +1 -1
  110. package/dist/server/server/connection-offer.d.ts +1 -0
  111. package/dist/server/server/connection-offer.d.ts.map +1 -1
  112. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  113. package/dist/server/server/daemon-config-store.js +2 -6
  114. package/dist/server/server/daemon-config-store.js.map +1 -1
  115. package/dist/server/server/daemon-keypair.js.map +1 -1
  116. package/dist/server/server/daemon-worker.d.ts +2 -0
  117. package/dist/server/server/daemon-worker.d.ts.map +1 -0
  118. package/dist/server/server/{index.js → daemon-worker.js} +13 -41
  119. package/dist/server/server/daemon-worker.js.map +1 -0
  120. package/dist/server/server/editor-targets.js.map +1 -1
  121. package/dist/server/server/json-utils.js.map +1 -1
  122. package/dist/server/server/logger.d.ts +2 -6
  123. package/dist/server/server/logger.d.ts.map +1 -1
  124. package/dist/server/server/logger.js +28 -118
  125. package/dist/server/server/logger.js.map +1 -1
  126. package/dist/server/server/loop/rpc-schemas.d.ts +340 -272
  127. package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -1
  128. package/dist/server/server/loop/rpc-schemas.js +4 -0
  129. package/dist/server/server/loop/rpc-schemas.js.map +1 -1
  130. package/dist/server/server/loop-service.d.ts +58 -50
  131. package/dist/server/server/loop-service.d.ts.map +1 -1
  132. package/dist/server/server/loop-service.js +11 -2
  133. package/dist/server/server/loop-service.js.map +1 -1
  134. package/dist/server/server/package-version.d.ts +12 -0
  135. package/dist/server/server/package-version.d.ts.map +1 -1
  136. package/dist/server/server/package-version.js +13 -1
  137. package/dist/server/server/package-version.js.map +1 -1
  138. package/dist/server/server/pairing-offer.d.ts +1 -0
  139. package/dist/server/server/pairing-offer.d.ts.map +1 -1
  140. package/dist/server/server/pairing-offer.js +2 -1
  141. package/dist/server/server/pairing-offer.js.map +1 -1
  142. package/dist/server/server/pairing-qr.js +1 -1
  143. package/dist/server/server/pairing-qr.js.map +1 -1
  144. package/dist/server/server/paseo-env.d.ts +7 -3
  145. package/dist/server/server/paseo-env.d.ts.map +1 -1
  146. package/dist/server/server/paseo-env.js +16 -33
  147. package/dist/server/server/paseo-env.js.map +1 -1
  148. package/dist/server/server/persisted-config.d.ts +27 -16
  149. package/dist/server/server/persisted-config.d.ts.map +1 -1
  150. package/dist/server/server/persisted-config.js +3 -2
  151. package/dist/server/server/persisted-config.js.map +1 -1
  152. package/dist/server/server/persistence-hooks.js.map +1 -1
  153. package/dist/server/server/pid-lock.d.ts +21 -4
  154. package/dist/server/server/pid-lock.d.ts.map +1 -1
  155. package/dist/server/server/pid-lock.js +30 -8
  156. package/dist/server/server/pid-lock.js.map +1 -1
  157. package/dist/server/server/relay-transport.d.ts +2 -1
  158. package/dist/server/server/relay-transport.d.ts.map +1 -1
  159. package/dist/server/server/relay-transport.js +8 -5
  160. package/dist/server/server/relay-transport.js.map +1 -1
  161. package/dist/server/server/schedule/rpc-schemas.d.ts +1188 -52
  162. package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
  163. package/dist/server/server/schedule/rpc-schemas.js +39 -0
  164. package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
  165. package/dist/server/server/schedule/service.d.ts +3 -1
  166. package/dist/server/server/schedule/service.d.ts.map +1 -1
  167. package/dist/server/server/schedule/service.js +92 -5
  168. package/dist/server/server/schedule/service.js.map +1 -1
  169. package/dist/server/server/schedule/types.d.ts +28 -12
  170. package/dist/server/server/schedule/types.d.ts.map +1 -1
  171. package/dist/server/server/script-health-monitor.js.map +1 -1
  172. package/dist/server/server/session.d.ts +3 -4
  173. package/dist/server/server/session.d.ts.map +1 -1
  174. package/dist/server/server/session.js +160 -120
  175. package/dist/server/server/session.js.map +1 -1
  176. package/dist/server/server/speech/audio.js.map +1 -1
  177. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
  178. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +52 -52
  179. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
  180. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
  181. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +9 -3
  182. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
  183. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
  184. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +12 -10
  185. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  186. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +2 -2
  187. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
  188. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +1 -1
  189. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
  190. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
  191. package/dist/server/server/voice/voice-turn-controller.d.ts +16 -13
  192. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  193. package/dist/server/server/voice/voice-turn-controller.js +303 -71
  194. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  195. package/dist/server/server/voice-config.js +1 -1
  196. package/dist/server/server/voice-config.js.map +1 -1
  197. package/dist/server/server/websocket-server.js.map +1 -1
  198. package/dist/server/server/workspace-directory.d.ts.map +1 -1
  199. package/dist/server/server/workspace-directory.js +4 -2
  200. package/dist/server/server/workspace-directory.js.map +1 -1
  201. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -1
  202. package/dist/server/server/workspace-git-metadata.js +12 -5
  203. package/dist/server/server/workspace-git-metadata.js.map +1 -1
  204. package/dist/server/server/workspace-git-service.d.ts +2 -0
  205. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  206. package/dist/server/server/workspace-git-service.js +49 -1
  207. package/dist/server/server/workspace-git-service.js.map +1 -1
  208. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  209. package/dist/server/server/workspace-registry-model.js +10 -3
  210. package/dist/server/server/workspace-registry-model.js.map +1 -1
  211. package/dist/server/server/worktree-session.js +1 -1
  212. package/dist/server/server/worktree-session.js.map +1 -1
  213. package/dist/server/services/github-service.d.ts.map +1 -1
  214. package/dist/server/services/github-service.js +9 -2
  215. package/dist/server/services/github-service.js.map +1 -1
  216. package/dist/server/shared/connection-offer.d.ts +10 -0
  217. package/dist/server/shared/connection-offer.d.ts.map +1 -1
  218. package/dist/server/shared/connection-offer.js +1 -0
  219. package/dist/server/shared/connection-offer.js.map +1 -1
  220. package/dist/server/shared/daemon-endpoints.d.ts +4 -0
  221. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
  222. package/dist/server/shared/daemon-endpoints.js +6 -1
  223. package/dist/server/shared/daemon-endpoints.js.map +1 -1
  224. package/dist/server/shared/error-utils.d.ts +11 -0
  225. package/dist/server/shared/error-utils.d.ts.map +1 -0
  226. package/dist/server/shared/error-utils.js +27 -0
  227. package/dist/server/shared/error-utils.js.map +1 -0
  228. package/dist/server/shared/messages.d.ts +8669 -4459
  229. package/dist/server/shared/messages.d.ts.map +1 -1
  230. package/dist/server/shared/messages.js +5 -1
  231. package/dist/server/shared/messages.js.map +1 -1
  232. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  233. package/dist/server/shared/tool-call-display.js +2 -0
  234. package/dist/server/shared/tool-call-display.js.map +1 -1
  235. package/dist/server/terminal/terminal-capture.d.ts +12 -0
  236. package/dist/server/terminal/terminal-capture.d.ts.map +1 -0
  237. package/dist/server/terminal/terminal-capture.js +43 -0
  238. package/dist/server/terminal/terminal-capture.js.map +1 -0
  239. package/dist/server/terminal/terminal-manager-factory.d.ts +2 -6
  240. package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -1
  241. package/dist/server/terminal/terminal-manager-factory.js +2 -10
  242. package/dist/server/terminal/terminal-manager-factory.js.map +1 -1
  243. package/dist/server/terminal/terminal-manager.d.ts +2 -1
  244. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  245. package/dist/server/terminal/terminal-manager.js +2 -1
  246. package/dist/server/terminal/terminal-manager.js.map +1 -1
  247. package/dist/server/terminal/terminal-output-coalescer.js.map +1 -1
  248. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
  249. package/dist/server/terminal/terminal-session-controller.js +2 -0
  250. package/dist/server/terminal/terminal-session-controller.js.map +1 -1
  251. package/dist/server/terminal/terminal-worker-process.js +1 -1
  252. package/dist/server/terminal/terminal-worker-process.js.map +1 -1
  253. package/dist/server/terminal/terminal-worker-protocol.d.ts +1 -1
  254. package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -1
  255. package/dist/server/terminal/terminal.d.ts +0 -10
  256. package/dist/server/terminal/terminal.d.ts.map +1 -1
  257. package/dist/server/terminal/terminal.js +53 -49
  258. package/dist/server/terminal/terminal.js.map +1 -1
  259. package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
  260. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  261. package/dist/server/utils/checkout-git.js +67 -11
  262. package/dist/server/utils/checkout-git.js.map +1 -1
  263. package/dist/server/utils/directory-suggestions.js.map +1 -1
  264. package/dist/server/utils/executable.d.ts +2 -1
  265. package/dist/server/utils/executable.d.ts.map +1 -1
  266. package/dist/server/utils/executable.js +50 -51
  267. package/dist/server/utils/executable.js.map +1 -1
  268. package/dist/server/utils/paseo-config-file.d.ts +1 -1
  269. package/dist/server/utils/paseo-config-file.d.ts.map +1 -1
  270. package/dist/server/utils/spawn.d.ts +2 -0
  271. package/dist/server/utils/spawn.d.ts.map +1 -1
  272. package/dist/server/utils/spawn.js +2 -1
  273. package/dist/server/utils/spawn.js.map +1 -1
  274. package/dist/server/utils/tree-kill.d.ts +18 -0
  275. package/dist/server/utils/tree-kill.d.ts.map +1 -0
  276. package/dist/server/utils/{process-tree.js → tree-kill.js} +14 -33
  277. package/dist/server/utils/tree-kill.js.map +1 -0
  278. package/dist/server/utils/worktree.d.ts.map +1 -1
  279. package/dist/server/utils/worktree.js +18 -43
  280. package/dist/server/utils/worktree.js.map +1 -1
  281. package/dist/src/server/agent/agent-sdk-types.js +12 -0
  282. package/dist/src/server/agent/agent-sdk-types.js.map +1 -0
  283. package/dist/src/server/agent/agent-title-limits.js +3 -0
  284. package/dist/src/server/agent/agent-title-limits.js.map +1 -0
  285. package/dist/src/server/agent/provider-launch-config.js +189 -0
  286. package/dist/src/server/agent/provider-launch-config.js.map +1 -0
  287. package/dist/src/server/agent/provider-manifest.js +197 -0
  288. package/dist/src/server/agent/provider-manifest.js.map +1 -0
  289. package/dist/src/server/chat/chat-rpc-schemas.js +103 -0
  290. package/dist/src/server/chat/chat-rpc-schemas.js.map +1 -0
  291. package/dist/src/server/chat/chat-types.js +22 -0
  292. package/dist/src/server/chat/chat-types.js.map +1 -0
  293. package/dist/src/server/loop/rpc-schemas.js +163 -0
  294. package/dist/src/server/loop/rpc-schemas.js.map +1 -0
  295. package/dist/src/server/paseo-env.js +53 -0
  296. package/dist/src/server/paseo-env.js.map +1 -0
  297. package/dist/src/server/persisted-config.js +363 -0
  298. package/dist/src/server/persisted-config.js.map +1 -0
  299. package/dist/src/server/pid-lock.js +30 -8
  300. package/dist/src/server/pid-lock.js.map +1 -1
  301. package/dist/src/server/schedule/rpc-schemas.js +151 -0
  302. package/dist/src/server/schedule/rpc-schemas.js.map +1 -0
  303. package/dist/src/server/schedule/types.js +73 -0
  304. package/dist/src/server/schedule/types.js.map +1 -0
  305. package/dist/src/shared/agent-lifecycle.js +8 -0
  306. package/dist/src/shared/agent-lifecycle.js.map +1 -0
  307. package/dist/src/shared/client-capabilities.js +4 -0
  308. package/dist/src/shared/client-capabilities.js.map +1 -0
  309. package/dist/src/shared/literal-union.js +2 -0
  310. package/dist/src/shared/literal-union.js.map +1 -0
  311. package/dist/src/shared/messages.js +3026 -0
  312. package/dist/src/shared/messages.js.map +1 -0
  313. package/dist/src/utils/executable.js +113 -0
  314. package/dist/src/utils/executable.js.map +1 -0
  315. package/dist/src/utils/paseo-config-schema.js +60 -0
  316. package/dist/src/utils/paseo-config-schema.js.map +1 -0
  317. package/dist/src/utils/spawn.js +71 -0
  318. package/dist/src/utils/spawn.js.map +1 -0
  319. package/dist/src/utils/windows-command.js +41 -0
  320. package/dist/src/utils/windows-command.js.map +1 -0
  321. package/package.json +7 -6
  322. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +0 -1
  323. package/dist/server/server/agent/providers/claude/claude-models.js.map +0 -1
  324. package/dist/server/server/agent/providers/claude-agent.d.ts.map +0 -1
  325. package/dist/server/server/agent/providers/claude-agent.js.map +0 -1
  326. package/dist/server/server/index.d.ts +0 -2
  327. package/dist/server/server/index.d.ts.map +0 -1
  328. package/dist/server/server/index.js.map +0 -1
  329. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +0 -16
  330. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +0 -1
  331. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +0 -35
  332. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +0 -1
  333. package/dist/server/utils/process-tree.d.ts +0 -25
  334. package/dist/server/utils/process-tree.d.ts.map +0 -1
  335. package/dist/server/utils/process-tree.js.map +0 -1
@@ -0,0 +1,163 @@
1
+ import { z } from "zod";
2
+ import { AgentProviderSchema } from "../agent/provider-manifest.js";
3
+ export const LoopLogEntrySchema = z.object({
4
+ seq: z.number().int().positive(),
5
+ timestamp: z.string(),
6
+ iteration: z.number().int().positive().nullable(),
7
+ source: z.enum(["loop", "worker", "verifier", "verify-check"]),
8
+ level: z.enum(["info", "error"]),
9
+ text: z.string(),
10
+ });
11
+ export const LoopVerifyCheckResultSchema = z.object({
12
+ command: z.string(),
13
+ exitCode: z.number().int(),
14
+ passed: z.boolean(),
15
+ stdout: z.string(),
16
+ stderr: z.string(),
17
+ startedAt: z.string(),
18
+ completedAt: z.string(),
19
+ });
20
+ export const LoopVerifyPromptResultSchema = z.object({
21
+ passed: z.boolean(),
22
+ reason: z.string(),
23
+ verifierAgentId: z.string().nullable(),
24
+ startedAt: z.string(),
25
+ completedAt: z.string(),
26
+ });
27
+ export const LoopIterationRecordSchema = z.object({
28
+ index: z.number().int().positive(),
29
+ workerAgentId: z.string().nullable(),
30
+ workerStartedAt: z.string(),
31
+ workerCompletedAt: z.string().nullable(),
32
+ verifierAgentId: z.string().nullable(),
33
+ status: z.enum(["running", "succeeded", "failed", "stopped"]),
34
+ workerOutcome: z.enum(["completed", "failed", "canceled"]).nullable(),
35
+ failureReason: z.string().nullable(),
36
+ verifyChecks: z.array(LoopVerifyCheckResultSchema),
37
+ verifyPrompt: LoopVerifyPromptResultSchema.nullable(),
38
+ });
39
+ export const LoopRecordSchema = z.object({
40
+ id: z.string(),
41
+ name: z.string().nullable(),
42
+ prompt: z.string(),
43
+ cwd: z.string(),
44
+ provider: AgentProviderSchema,
45
+ model: z.string().nullable(),
46
+ modeId: z.string().nullable().default(null),
47
+ workerProvider: AgentProviderSchema.nullable(),
48
+ workerModel: z.string().nullable(),
49
+ verifierProvider: AgentProviderSchema.nullable(),
50
+ verifierModel: z.string().nullable(),
51
+ verifierModeId: z.string().nullable().default(null),
52
+ verifyPrompt: z.string().nullable(),
53
+ verifyChecks: z.array(z.string()),
54
+ archive: z.boolean(),
55
+ sleepMs: z.number().int().nonnegative(),
56
+ maxIterations: z.number().int().positive().nullable(),
57
+ maxTimeMs: z.number().int().positive().nullable(),
58
+ status: z.enum(["running", "succeeded", "failed", "stopped"]),
59
+ createdAt: z.string(),
60
+ updatedAt: z.string(),
61
+ startedAt: z.string(),
62
+ completedAt: z.string().nullable(),
63
+ stopRequestedAt: z.string().nullable(),
64
+ iterations: z.array(LoopIterationRecordSchema),
65
+ logs: z.array(LoopLogEntrySchema),
66
+ nextLogSeq: z.number().int().positive(),
67
+ activeIteration: z.number().int().positive().nullable(),
68
+ activeWorkerAgentId: z.string().nullable(),
69
+ activeVerifierAgentId: z.string().nullable(),
70
+ });
71
+ export const LoopListItemSchema = z.object({
72
+ id: z.string(),
73
+ name: z.string().nullable(),
74
+ status: z.enum(["running", "succeeded", "failed", "stopped"]),
75
+ cwd: z.string(),
76
+ createdAt: z.string(),
77
+ updatedAt: z.string(),
78
+ activeIteration: z.number().int().positive().nullable(),
79
+ });
80
+ export const LoopRunRequestSchema = z.object({
81
+ type: z.literal("loop/run"),
82
+ requestId: z.string(),
83
+ prompt: z.string().trim().min(1),
84
+ cwd: z.string(),
85
+ provider: AgentProviderSchema.optional(),
86
+ model: z.string().trim().min(1).optional(),
87
+ modeId: z.string().trim().min(1).optional(),
88
+ workerProvider: AgentProviderSchema.optional(),
89
+ workerModel: z.string().trim().min(1).optional(),
90
+ verifierProvider: AgentProviderSchema.optional(),
91
+ verifierModel: z.string().trim().min(1).optional(),
92
+ verifierModeId: z.string().trim().min(1).optional(),
93
+ verifyPrompt: z.string().trim().min(1).optional(),
94
+ verifyChecks: z.array(z.string().trim().min(1)).optional(),
95
+ archive: z.boolean().optional(),
96
+ name: z.string().trim().min(1).optional(),
97
+ sleepMs: z.number().int().nonnegative().optional(),
98
+ maxIterations: z.number().int().positive().optional(),
99
+ maxTimeMs: z.number().int().positive().optional(),
100
+ });
101
+ export const LoopListRequestSchema = z.object({
102
+ type: z.literal("loop/list"),
103
+ requestId: z.string(),
104
+ });
105
+ export const LoopInspectRequestSchema = z.object({
106
+ type: z.literal("loop/inspect"),
107
+ requestId: z.string(),
108
+ id: z.string().trim().min(1),
109
+ });
110
+ export const LoopLogsRequestSchema = z.object({
111
+ type: z.literal("loop/logs"),
112
+ requestId: z.string(),
113
+ id: z.string().trim().min(1),
114
+ afterSeq: z.number().int().nonnegative().optional(),
115
+ });
116
+ export const LoopStopRequestSchema = z.object({
117
+ type: z.literal("loop/stop"),
118
+ requestId: z.string(),
119
+ id: z.string().trim().min(1),
120
+ });
121
+ export const LoopRunResponseSchema = z.object({
122
+ type: z.literal("loop/run/response"),
123
+ payload: z.object({
124
+ requestId: z.string(),
125
+ loop: LoopRecordSchema.nullable(),
126
+ error: z.string().nullable(),
127
+ }),
128
+ });
129
+ export const LoopListResponseSchema = z.object({
130
+ type: z.literal("loop/list/response"),
131
+ payload: z.object({
132
+ requestId: z.string(),
133
+ loops: z.array(LoopListItemSchema),
134
+ error: z.string().nullable(),
135
+ }),
136
+ });
137
+ export const LoopInspectResponseSchema = z.object({
138
+ type: z.literal("loop/inspect/response"),
139
+ payload: z.object({
140
+ requestId: z.string(),
141
+ loop: LoopRecordSchema.nullable(),
142
+ error: z.string().nullable(),
143
+ }),
144
+ });
145
+ export const LoopLogsResponseSchema = z.object({
146
+ type: z.literal("loop/logs/response"),
147
+ payload: z.object({
148
+ requestId: z.string(),
149
+ loop: LoopRecordSchema.nullable(),
150
+ entries: z.array(LoopLogEntrySchema),
151
+ nextCursor: z.number().int().nonnegative(),
152
+ error: z.string().nullable(),
153
+ }),
154
+ });
155
+ export const LoopStopResponseSchema = z.object({
156
+ type: z.literal("loop/stop/response"),
157
+ payload: z.object({
158
+ requestId: z.string(),
159
+ loop: LoopRecordSchema.nullable(),
160
+ error: z.string().nullable(),
161
+ }),
162
+ });
163
+ //# sourceMappingURL=rpc-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-schemas.js","sourceRoot":"","sources":["../../../../src/server/loop/rpc-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;IAClD,YAAY,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,cAAc,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,cAAc,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,gBAAgB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ const PASEO_NODE_ENV = "PASEO_NODE_ENV";
2
+ const ELECTRON_RUN_AS_NODE = "ELECTRON_RUN_AS_NODE";
3
+ const RUNTIME_CONTROL_ENV_KEYS = [
4
+ PASEO_NODE_ENV,
5
+ "PASEO_DESKTOP_MANAGED",
6
+ "PASEO_SUPERVISED",
7
+ ELECTRON_RUN_AS_NODE,
8
+ "ELECTRON_NO_ATTACH_CONSOLE",
9
+ ];
10
+ function buildInternalProcessEnv(baseEnv) {
11
+ return { ...baseEnv };
12
+ }
13
+ function buildExternalProcessEnv(baseEnv, overlays) {
14
+ const sanitized = Object.assign({}, baseEnv, ...overlays);
15
+ for (const key of RUNTIME_CONTROL_ENV_KEYS) {
16
+ delete sanitized[key];
17
+ }
18
+ for (const [key, value] of Object.entries(sanitized)) {
19
+ if (value === undefined) {
20
+ delete sanitized[key];
21
+ }
22
+ }
23
+ return sanitized;
24
+ }
25
+ export function createPaseoInternalEnv(baseEnv) {
26
+ return buildInternalProcessEnv(baseEnv);
27
+ }
28
+ export function createExternalProcessEnv(baseEnv, ...overlays) {
29
+ return buildExternalProcessEnv(baseEnv, overlays);
30
+ }
31
+ export function createExternalCommandProcessEnv(_command, baseEnv, ...overlays) {
32
+ // Deprecated command parameter: retained while callers migrate to createExternalProcessEnv.
33
+ return buildExternalProcessEnv(baseEnv, overlays);
34
+ }
35
+ export function buildSelfNodeCommand(args, envOverlay) {
36
+ const env = buildExternalProcessEnv(process.env, []);
37
+ Object.assign(env, { [ELECTRON_RUN_AS_NODE]: "1" }, envOverlay);
38
+ for (const [key, value] of Object.entries(env)) {
39
+ if (value === undefined) {
40
+ delete env[key];
41
+ }
42
+ }
43
+ return {
44
+ command: process.execPath,
45
+ args,
46
+ env,
47
+ };
48
+ }
49
+ export function resolvePaseoNodeEnv(env) {
50
+ const value = env[PASEO_NODE_ENV];
51
+ return value === "development" || value === "production" || value === "test" ? value : undefined;
52
+ }
53
+ //# sourceMappingURL=paseo-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paseo-env.js","sourceRoot":"","sources":["../../../src/server/paseo-env.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD,MAAM,wBAAwB,GAAG;IAC/B,cAAc;IACd,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,4BAA4B;CACpB,CAAC;AAMX,SAAS,uBAAuB,CAA6B,OAAU;IACrE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAyB,EACzB,QAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAA0B;IAC/D,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,GAAG,QAA4B;IAE/B,OAAO,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,QAAgB,EAChB,OAAyB,EACzB,GAAG,QAA4B;IAE/B,4FAA4F;IAC5F,OAAO,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,UAA6B;IAM7B,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,IAAI;QACJ,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAsB;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC"}
@@ -0,0 +1,363 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { z } from "zod";
4
+ import { AgentProviderRuntimeSettingsMapSchema, migrateProviderSettings, ProviderOverrideSchema, } from "./agent/provider-launch-config.js";
5
+ export const LogLevelSchema = z.enum(["trace", "debug", "info", "warn", "error", "fatal"]);
6
+ export const LogFormatSchema = z.enum(["pretty", "json"]);
7
+ const LogConfigSchema = z
8
+ .object({
9
+ // Legacy global log settings (kept for backwards compatibility).
10
+ level: LogLevelSchema.optional(),
11
+ format: LogFormatSchema.optional(),
12
+ console: z
13
+ .object({
14
+ level: LogLevelSchema.optional(),
15
+ format: LogFormatSchema.optional(),
16
+ })
17
+ .strict()
18
+ .optional(),
19
+ file: z
20
+ .object({
21
+ level: LogLevelSchema.optional(),
22
+ path: z.string().min(1).optional(),
23
+ rotate: z
24
+ .object({
25
+ maxSize: z.string().min(1).optional(),
26
+ maxFiles: z.number().int().positive().optional(),
27
+ })
28
+ .strict()
29
+ .optional(),
30
+ })
31
+ .strict()
32
+ .optional(),
33
+ })
34
+ .strict();
35
+ const ProviderCredentialsSchema = z
36
+ .object({
37
+ apiKey: z.string().min(1).optional(),
38
+ })
39
+ .strict();
40
+ const LocalSpeechProviderSchema = z
41
+ .object({
42
+ modelsDir: z.string().min(1).optional(),
43
+ })
44
+ .strict();
45
+ const ProvidersSchema = z
46
+ .object({
47
+ openai: ProviderCredentialsSchema.optional(),
48
+ local: LocalSpeechProviderSchema.optional(),
49
+ })
50
+ .strict();
51
+ const BcryptHashSchema = z.string().regex(/^\$2[aby]\$\d{2}\$[./A-Za-z0-9]{53}$/, {
52
+ message: "Expected a bcrypt hash",
53
+ });
54
+ const DaemonAuthSchema = z
55
+ .object({
56
+ password: BcryptHashSchema.optional(),
57
+ })
58
+ .strict();
59
+ const SpeechProviderIdSchema = z
60
+ .string()
61
+ .trim()
62
+ .toLowerCase()
63
+ .pipe(z.enum(["openai", "local"]));
64
+ const FeatureDictationSchema = z
65
+ .object({
66
+ enabled: z.boolean().optional(),
67
+ stt: z
68
+ .object({
69
+ provider: SpeechProviderIdSchema.optional(),
70
+ model: z.string().min(1).optional(),
71
+ confidenceThreshold: z.number().optional(),
72
+ })
73
+ .strict()
74
+ .optional(),
75
+ })
76
+ .strict();
77
+ const FeatureVoiceModeSchema = z
78
+ .object({
79
+ enabled: z.boolean().optional(),
80
+ llm: z
81
+ .object({
82
+ provider: z.string().optional(),
83
+ model: z.string().min(1).optional(),
84
+ })
85
+ .strict()
86
+ .optional(),
87
+ stt: z
88
+ .object({
89
+ provider: SpeechProviderIdSchema.optional(),
90
+ model: z.string().min(1).optional(),
91
+ })
92
+ .strict()
93
+ .optional(),
94
+ turnDetection: z
95
+ .object({
96
+ provider: SpeechProviderIdSchema.optional(),
97
+ })
98
+ .strict()
99
+ .optional(),
100
+ tts: z
101
+ .object({
102
+ provider: SpeechProviderIdSchema.optional(),
103
+ model: z.string().min(1).optional(),
104
+ voice: z.enum(["alloy", "echo", "fable", "onyx", "nova", "shimmer"]).optional(),
105
+ speakerId: z.number().int().optional(),
106
+ speed: z.number().optional(),
107
+ })
108
+ .strict()
109
+ .optional(),
110
+ })
111
+ .strict();
112
+ const BUILTIN_PROVIDER_IDS = ["claude", "codex", "copilot", "opencode", "pi"];
113
+ const PROVIDER_ID_PATTERN = /^[a-z][a-z0-9-]*$/;
114
+ const ProviderOverridesSchema = z
115
+ .record(z.string(), ProviderOverrideSchema)
116
+ .superRefine((providers, ctx) => {
117
+ const builtinProviderIdSet = new Set(BUILTIN_PROVIDER_IDS);
118
+ const validExtendsValues = new Set([...BUILTIN_PROVIDER_IDS, "acp"]);
119
+ for (const [providerId, provider] of Object.entries(providers)) {
120
+ if (!PROVIDER_ID_PATTERN.test(providerId)) {
121
+ ctx.addIssue({
122
+ code: z.ZodIssueCode.custom,
123
+ path: [providerId],
124
+ message: `Provider ID "${providerId}" must match ${PROVIDER_ID_PATTERN}.`,
125
+ });
126
+ }
127
+ const isBuiltinProvider = builtinProviderIdSet.has(providerId);
128
+ if (!isBuiltinProvider && !provider.extends) {
129
+ ctx.addIssue({
130
+ code: z.ZodIssueCode.custom,
131
+ path: [providerId, "extends"],
132
+ message: `Custom provider "${providerId}" must declare extends.`,
133
+ });
134
+ }
135
+ if (!isBuiltinProvider && !provider.label) {
136
+ ctx.addIssue({
137
+ code: z.ZodIssueCode.custom,
138
+ path: [providerId, "label"],
139
+ message: `Custom provider "${providerId}" must declare label.`,
140
+ });
141
+ }
142
+ if (provider.extends && !validExtendsValues.has(provider.extends)) {
143
+ ctx.addIssue({
144
+ code: z.ZodIssueCode.custom,
145
+ path: [providerId, "extends"],
146
+ message: `Provider "${providerId}" extends unknown provider "${provider.extends}".`,
147
+ });
148
+ }
149
+ if (provider.extends === "acp" && !provider.command) {
150
+ ctx.addIssue({
151
+ code: z.ZodIssueCode.custom,
152
+ path: [providerId, "command"],
153
+ message: `Provider "${providerId}" extending "acp" must declare command.`,
154
+ });
155
+ }
156
+ }
157
+ });
158
+ function isLegacyProviderEntry(value) {
159
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
160
+ return false;
161
+ }
162
+ const command = value.command;
163
+ if (!command || typeof command !== "object" || Array.isArray(command)) {
164
+ return false;
165
+ }
166
+ return typeof command.mode === "string";
167
+ }
168
+ function normalizeAgentProviders(value) {
169
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
170
+ return value;
171
+ }
172
+ const rawProviders = value;
173
+ const hasLegacyEntries = Object.values(rawProviders).some((entry) => isLegacyProviderEntry(entry));
174
+ if (!hasLegacyEntries) {
175
+ return value;
176
+ }
177
+ const legacyEntries = {};
178
+ const normalizedEntries = {};
179
+ for (const [providerId, providerValue] of Object.entries(rawProviders)) {
180
+ if (isLegacyProviderEntry(providerValue)) {
181
+ legacyEntries[providerId] = providerValue;
182
+ continue;
183
+ }
184
+ normalizedEntries[providerId] = providerValue;
185
+ }
186
+ const parsedLegacyEntries = AgentProviderRuntimeSettingsMapSchema.safeParse(legacyEntries);
187
+ if (!parsedLegacyEntries.success) {
188
+ return value;
189
+ }
190
+ return {
191
+ ...normalizedEntries,
192
+ ...migrateProviderSettings(parsedLegacyEntries.data, [...BUILTIN_PROVIDER_IDS]),
193
+ };
194
+ }
195
+ export const PersistedConfigSchema = z
196
+ .object({
197
+ // v1 schema marker
198
+ version: z.literal(1).optional(),
199
+ // v1 config layout
200
+ daemon: z
201
+ .object({
202
+ listen: z.string().optional(),
203
+ hostnames: z.union([z.literal(true), z.array(z.string())]).optional(),
204
+ allowedHosts: z.union([z.literal(true), z.array(z.string())]).optional(),
205
+ mcp: z
206
+ .object({
207
+ enabled: z.boolean().optional(),
208
+ injectIntoAgents: z.boolean().optional(),
209
+ })
210
+ .passthrough()
211
+ .optional(),
212
+ cors: z
213
+ .object({
214
+ allowedOrigins: z.array(z.string()).optional(),
215
+ })
216
+ .strict()
217
+ .optional(),
218
+ relay: z
219
+ .object({
220
+ enabled: z.boolean().optional(),
221
+ endpoint: z.string().optional(),
222
+ publicEndpoint: z.string().optional(),
223
+ useTls: z.boolean().optional(),
224
+ })
225
+ .strict()
226
+ .optional(),
227
+ auth: DaemonAuthSchema.optional(),
228
+ })
229
+ .strict()
230
+ .transform(({ allowedHosts, ...daemon }) => {
231
+ const hostnames = daemon.hostnames ?? allowedHosts;
232
+ return hostnames === undefined ? daemon : { ...daemon, hostnames };
233
+ })
234
+ .optional(),
235
+ app: z
236
+ .object({
237
+ baseUrl: z.string().optional(),
238
+ })
239
+ .strict()
240
+ .optional(),
241
+ providers: ProvidersSchema.optional(),
242
+ agents: z
243
+ .object({
244
+ providers: z.preprocess(normalizeAgentProviders, ProviderOverridesSchema).optional(),
245
+ })
246
+ .strict()
247
+ .optional(),
248
+ features: z
249
+ .object({
250
+ dictation: FeatureDictationSchema.optional(),
251
+ voiceMode: FeatureVoiceModeSchema.optional(),
252
+ })
253
+ .strict()
254
+ .optional(),
255
+ log: LogConfigSchema.optional(),
256
+ })
257
+ .strict();
258
+ const CONFIG_FILENAME = "config.json";
259
+ const DEFAULT_PERSISTED_CONFIG = PersistedConfigSchema.parse({
260
+ version: 1,
261
+ daemon: {
262
+ listen: "127.0.0.1:6767",
263
+ cors: {
264
+ allowedOrigins: ["https://app.paseo.sh"],
265
+ },
266
+ relay: {
267
+ enabled: true,
268
+ },
269
+ },
270
+ app: {
271
+ baseUrl: "https://app.paseo.sh",
272
+ },
273
+ });
274
+ function getConfigPath(paseoHome) {
275
+ return path.join(paseoHome, CONFIG_FILENAME);
276
+ }
277
+ function getLogger(logger) {
278
+ return logger?.child({ module: "config" });
279
+ }
280
+ function stripDeprecatedLocalSpeechConfigFields(parsed) {
281
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
282
+ return parsed;
283
+ }
284
+ const root = { ...parsed };
285
+ const providers = root.providers;
286
+ if (!providers || typeof providers !== "object" || Array.isArray(providers)) {
287
+ return root;
288
+ }
289
+ const providersRecord = { ...providers };
290
+ const local = providersRecord.local;
291
+ if (!local || typeof local !== "object" || Array.isArray(local)) {
292
+ root.providers = providersRecord;
293
+ return root;
294
+ }
295
+ const localRecord = { ...local };
296
+ if ("autoDownload" in localRecord) {
297
+ delete localRecord.autoDownload;
298
+ }
299
+ providersRecord.local = localRecord;
300
+ root.providers = providersRecord;
301
+ return root;
302
+ }
303
+ export function loadPersistedConfig(paseoHome, logger) {
304
+ const log = getLogger(logger);
305
+ const configPath = getConfigPath(paseoHome);
306
+ if (!existsSync(configPath)) {
307
+ try {
308
+ mkdirSync(path.dirname(configPath), { recursive: true });
309
+ writeFileSync(configPath, JSON.stringify(DEFAULT_PERSISTED_CONFIG, null, 2) + "\n");
310
+ log?.info(`Initialized config file at ${configPath}`);
311
+ }
312
+ catch (err) {
313
+ const message = err instanceof Error ? err.message : String(err);
314
+ throw new Error(`[Config] Failed to initialize ${configPath}: ${message}`, { cause: err });
315
+ }
316
+ }
317
+ let raw;
318
+ try {
319
+ raw = readFileSync(configPath, "utf-8");
320
+ }
321
+ catch (err) {
322
+ const message = err instanceof Error ? err.message : String(err);
323
+ throw new Error(`[Config] Failed to read ${configPath}: ${message}`, { cause: err });
324
+ }
325
+ let parsed;
326
+ try {
327
+ parsed = JSON.parse(raw);
328
+ }
329
+ catch (err) {
330
+ const message = err instanceof Error ? err.message : String(err);
331
+ throw new Error(`[Config] Invalid JSON in ${configPath}: ${message}`, { cause: err });
332
+ }
333
+ const migrated = stripDeprecatedLocalSpeechConfigFields(parsed);
334
+ const result = PersistedConfigSchema.safeParse(migrated);
335
+ if (!result.success) {
336
+ const issues = result.error.issues
337
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
338
+ .join("\n");
339
+ throw new Error(`[Config] Invalid config in ${configPath}:\n${issues}`);
340
+ }
341
+ log?.info(`Loaded from ${configPath}`);
342
+ return result.data;
343
+ }
344
+ export function savePersistedConfig(paseoHome, config, logger) {
345
+ const log = getLogger(logger);
346
+ const configPath = getConfigPath(paseoHome);
347
+ const result = PersistedConfigSchema.safeParse(config);
348
+ if (!result.success) {
349
+ const issues = result.error.issues
350
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
351
+ .join("\n");
352
+ throw new Error(`[Config] Invalid config to save:\n${issues}`);
353
+ }
354
+ try {
355
+ writeFileSync(configPath, JSON.stringify(result.data, null, 2) + "\n");
356
+ log?.info(`Saved to ${configPath}`);
357
+ }
358
+ catch (err) {
359
+ const message = err instanceof Error ? err.message : String(err);
360
+ throw new Error(`[Config] Failed to write ${configPath}: ${message}`, { cause: err });
361
+ }
362
+ }
363
+ //# sourceMappingURL=persisted-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persisted-config.js","sourceRoot":"","sources":["../../../src/server/persisted-config.ts"],"names":[],"mappings":"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"}