@symerian/symi 3.0.20 → 3.0.22

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 (737) hide show
  1. package/dist/{audio-preflight-BaCdNfrk.js → audio-preflight-D7BVT-ls.js} +4 -4
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{chrome-UfmVM0xR.js → chrome-B5CO2vB5.js} +7 -7
  5. package/dist/{deliver-BqXdac6W.js → deliver-CrwjsDwv.js} +1 -1
  6. package/dist/extensionAPI.js +7 -7
  7. package/dist/{image-DIWsXYcW.js → image-Csu7WcLW.js} +1 -1
  8. package/dist/{manager-DW3SxcPr.js → manager-BkkVjTO8.js} +1 -1
  9. package/dist/{pi-embedded-BNch0U5F.js → pi-embedded-Dhp64z5l.js} +16 -16
  10. package/dist/{pi-embedded-helpers-IkHl02JF.js → pi-embedded-helpers-840E4hop.js} +4 -4
  11. package/dist/{pw-ai-nMkA-oDJ.js → pw-ai-CBgJf_RR.js} +1 -1
  12. package/dist/{runner-DNEC58JI.js → runner-BbFKo1ne.js} +1 -1
  13. package/dist/{synthesis-BWAr0sZ9.js → synthesis-DoEM0E8_.js} +7 -7
  14. package/dist/{web-7a-m_UxL.js → web-BYXJn-Ps.js} +7 -7
  15. package/package.json +1 -1
  16. package/docs/.i18n/README.md +0 -31
  17. package/docs/.i18n/glossary.ja-JP.json +0 -14
  18. package/docs/.i18n/glossary.zh-CN.json +0 -210
  19. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  20. package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
  21. package/docs/CNAME +0 -1
  22. package/docs/assets/install-script.svg +0 -1
  23. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  24. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  25. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  26. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  27. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  28. package/docs/assets/pixel-symi.svg +0 -60
  29. package/docs/assets/showcase/agents-ui.jpg +0 -0
  30. package/docs/assets/showcase/bambu-cli.png +0 -0
  31. package/docs/assets/showcase/codexmonitor.png +0 -0
  32. package/docs/assets/showcase/gohome-grafana.png +0 -0
  33. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  34. package/docs/assets/showcase/oura-health.png +0 -0
  35. package/docs/assets/showcase/padel-cli.svg +0 -11
  36. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  37. package/docs/assets/showcase/papla-tts.jpg +0 -0
  38. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  39. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  40. package/docs/assets/showcase/roborock-status.svg +0 -13
  41. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  42. package/docs/assets/showcase/snag.png +0 -0
  43. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  44. package/docs/assets/showcase/wienerlinien.png +0 -0
  45. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  46. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  47. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  48. package/docs/assets/sponsors/blacksmith.svg +0 -14
  49. package/docs/assets/sponsors/openai.svg +0 -3
  50. package/docs/assets/symi-logo-text-dark.png +0 -0
  51. package/docs/assets/symi-logo-text.png +0 -0
  52. package/docs/automation/auth-monitoring.md +0 -44
  53. package/docs/automation/cron-jobs.md +0 -540
  54. package/docs/automation/cron-vs-heartbeat.md +0 -286
  55. package/docs/automation/gmail-pubsub.md +0 -256
  56. package/docs/automation/hooks.md +0 -998
  57. package/docs/automation/poll.md +0 -61
  58. package/docs/automation/troubleshooting.md +0 -122
  59. package/docs/automation/webhook.md +0 -213
  60. package/docs/brave-search.md +0 -41
  61. package/docs/capabilities.md +0 -151
  62. package/docs/channels/bluebubbles.md +0 -346
  63. package/docs/channels/broadcast-groups.md +0 -441
  64. package/docs/channels/channel-routing.md +0 -112
  65. package/docs/channels/feishu.md +0 -586
  66. package/docs/channels/googlechat.md +0 -253
  67. package/docs/channels/grammy.md +0 -31
  68. package/docs/channels/group-messages.md +0 -82
  69. package/docs/channels/groups.md +0 -364
  70. package/docs/channels/imessage.md +0 -366
  71. package/docs/channels/index.md +0 -46
  72. package/docs/channels/irc.md +0 -234
  73. package/docs/channels/line.md +0 -186
  74. package/docs/channels/location.md +0 -56
  75. package/docs/channels/matrix.md +0 -300
  76. package/docs/channels/mattermost.md +0 -158
  77. package/docs/channels/msteams.md +0 -769
  78. package/docs/channels/nextcloud-talk.md +0 -138
  79. package/docs/channels/nostr.md +0 -233
  80. package/docs/channels/pairing.md +0 -100
  81. package/docs/channels/signal.md +0 -322
  82. package/docs/channels/slack.md +0 -510
  83. package/docs/channels/telegram.md +0 -748
  84. package/docs/channels/tlon.md +0 -148
  85. package/docs/channels/troubleshooting.md +0 -110
  86. package/docs/channels/twitch.md +0 -379
  87. package/docs/channels/whatsapp.md +0 -444
  88. package/docs/channels/zalo.md +0 -192
  89. package/docs/channels/zalouser.md +0 -140
  90. package/docs/ci.md +0 -50
  91. package/docs/cli/acp.md +0 -182
  92. package/docs/cli/agent.md +0 -24
  93. package/docs/cli/agents.md +0 -75
  94. package/docs/cli/approvals.md +0 -50
  95. package/docs/cli/browser.md +0 -107
  96. package/docs/cli/channels.md +0 -73
  97. package/docs/cli/config.md +0 -50
  98. package/docs/cli/configure.md +0 -32
  99. package/docs/cli/cron.md +0 -44
  100. package/docs/cli/dashboard.md +0 -16
  101. package/docs/cli/devices.md +0 -73
  102. package/docs/cli/directory.md +0 -62
  103. package/docs/cli/dns.md +0 -23
  104. package/docs/cli/docs.md +0 -15
  105. package/docs/cli/doctor.md +0 -41
  106. package/docs/cli/gateway.md +0 -202
  107. package/docs/cli/health.md +0 -21
  108. package/docs/cli/hooks.md +0 -313
  109. package/docs/cli/index.md +0 -1029
  110. package/docs/cli/logs.md +0 -28
  111. package/docs/cli/memory.md +0 -45
  112. package/docs/cli/message.md +0 -214
  113. package/docs/cli/models.md +0 -79
  114. package/docs/cli/node.md +0 -112
  115. package/docs/cli/nodes.md +0 -73
  116. package/docs/cli/onboard.md +0 -76
  117. package/docs/cli/pairing.md +0 -21
  118. package/docs/cli/plugins.md +0 -92
  119. package/docs/cli/reset.md +0 -17
  120. package/docs/cli/sandbox.md +0 -152
  121. package/docs/cli/security.md +0 -64
  122. package/docs/cli/sessions.md +0 -16
  123. package/docs/cli/setup.md +0 -29
  124. package/docs/cli/skills.md +0 -26
  125. package/docs/cli/status.md +0 -25
  126. package/docs/cli/system.md +0 -60
  127. package/docs/cli/tui.md +0 -23
  128. package/docs/cli/uninstall.md +0 -17
  129. package/docs/cli/update.md +0 -98
  130. package/docs/cli/voicecall.md +0 -34
  131. package/docs/cli/webhooks.md +0 -25
  132. package/docs/concepts/agent-loop.md +0 -148
  133. package/docs/concepts/agent-workspace.md +0 -234
  134. package/docs/concepts/agent.md +0 -123
  135. package/docs/concepts/architecture.md +0 -135
  136. package/docs/concepts/compaction.md +0 -61
  137. package/docs/concepts/context.md +0 -161
  138. package/docs/concepts/features.md +0 -51
  139. package/docs/concepts/markdown-formatting.md +0 -128
  140. package/docs/concepts/memory.md +0 -729
  141. package/docs/concepts/messages.md +0 -153
  142. package/docs/concepts/model-failover.md +0 -149
  143. package/docs/concepts/model-providers.md +0 -424
  144. package/docs/concepts/models.md +0 -208
  145. package/docs/concepts/multi-agent.md +0 -521
  146. package/docs/concepts/oauth.md +0 -145
  147. package/docs/concepts/presence.md +0 -102
  148. package/docs/concepts/queue.md +0 -86
  149. package/docs/concepts/retry.md +0 -64
  150. package/docs/concepts/session-pruning.md +0 -123
  151. package/docs/concepts/session-tool.md +0 -213
  152. package/docs/concepts/session.md +0 -199
  153. package/docs/concepts/sessions.md +0 -10
  154. package/docs/concepts/streaming.md +0 -129
  155. package/docs/concepts/system-prompt.md +0 -128
  156. package/docs/concepts/timezone.md +0 -90
  157. package/docs/concepts/typebox.md +0 -289
  158. package/docs/concepts/typing-indicators.md +0 -68
  159. package/docs/concepts/usage-tracking.md +0 -35
  160. package/docs/date-time.md +0 -127
  161. package/docs/debug/node-issue.md +0 -85
  162. package/docs/diagnostics/flags.md +0 -91
  163. package/docs/docs.json +0 -1849
  164. package/docs/experiments/onboarding-config-protocol.md +0 -40
  165. package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
  166. package/docs/experiments/plans/cron-add-hardening.md +0 -62
  167. package/docs/experiments/plans/group-policy-hardening.md +0 -40
  168. package/docs/experiments/plans/openresponses-gateway.md +0 -123
  169. package/docs/experiments/plans/pty-process-supervision.md +0 -192
  170. package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
  171. package/docs/experiments/plans/thread-bound-subagents.md +0 -281
  172. package/docs/experiments/proposals/model-config.md +0 -36
  173. package/docs/experiments/research/memory.md +0 -228
  174. package/docs/gateway/authentication.md +0 -162
  175. package/docs/gateway/background-process.md +0 -96
  176. package/docs/gateway/bonjour.md +0 -177
  177. package/docs/gateway/bridge-protocol.md +0 -91
  178. package/docs/gateway/cli-backends.md +0 -225
  179. package/docs/gateway/configuration-examples.md +0 -610
  180. package/docs/gateway/configuration-reference.md +0 -2465
  181. package/docs/gateway/configuration.md +0 -488
  182. package/docs/gateway/discovery.md +0 -123
  183. package/docs/gateway/doctor.md +0 -282
  184. package/docs/gateway/gateway-lock.md +0 -34
  185. package/docs/gateway/health.md +0 -35
  186. package/docs/gateway/heartbeat.md +0 -374
  187. package/docs/gateway/index.md +0 -254
  188. package/docs/gateway/local-models.md +0 -150
  189. package/docs/gateway/logging.md +0 -113
  190. package/docs/gateway/multiple-gateways.md +0 -112
  191. package/docs/gateway/network-model.md +0 -20
  192. package/docs/gateway/openai-http-api.md +0 -119
  193. package/docs/gateway/openresponses-http-api.md +0 -333
  194. package/docs/gateway/pairing.md +0 -99
  195. package/docs/gateway/protocol.md +0 -221
  196. package/docs/gateway/remote-gateway-readme.md +0 -158
  197. package/docs/gateway/remote.md +0 -131
  198. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
  199. package/docs/gateway/sandboxing.md +0 -203
  200. package/docs/gateway/security/index.md +0 -931
  201. package/docs/gateway/tailscale.md +0 -132
  202. package/docs/gateway/tools-invoke-http-api.md +0 -110
  203. package/docs/gateway/troubleshooting.md +0 -317
  204. package/docs/gateway/trusted-proxy-auth.md +0 -270
  205. package/docs/glass-ui-rendering-invariants.md +0 -451
  206. package/docs/help/debugging.md +0 -162
  207. package/docs/help/environment.md +0 -107
  208. package/docs/help/faq.md +0 -2846
  209. package/docs/help/index.md +0 -21
  210. package/docs/help/scripts.md +0 -28
  211. package/docs/help/testing.md +0 -385
  212. package/docs/help/troubleshooting.md +0 -264
  213. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  214. package/docs/images/feishu-step2-create-app.png +0 -0
  215. package/docs/images/feishu-step3-credentials.png +0 -0
  216. package/docs/images/feishu-step4-permissions.png +0 -0
  217. package/docs/images/feishu-step5-bot-capability.png +0 -0
  218. package/docs/images/feishu-step6-event-subscription.png +0 -0
  219. package/docs/images/groups-flow.svg +0 -52
  220. package/docs/images/mobile-ui-screenshot.png +0 -0
  221. package/docs/index.md +0 -186
  222. package/docs/install/ansible.md +0 -207
  223. package/docs/install/bun.md +0 -59
  224. package/docs/install/development-channels.md +0 -75
  225. package/docs/install/docker.md +0 -583
  226. package/docs/install/exe-dev.md +0 -126
  227. package/docs/install/fly.md +0 -472
  228. package/docs/install/gcp.md +0 -499
  229. package/docs/install/hetzner.md +0 -347
  230. package/docs/install/index.md +0 -218
  231. package/docs/install/installer.md +0 -405
  232. package/docs/install/macos-vm.md +0 -281
  233. package/docs/install/migrating.md +0 -192
  234. package/docs/install/nix.md +0 -98
  235. package/docs/install/node.md +0 -138
  236. package/docs/install/northflank.mdx +0 -49
  237. package/docs/install/podman.md +0 -108
  238. package/docs/install/railway.mdx +0 -95
  239. package/docs/install/render.mdx +0 -158
  240. package/docs/install/uninstall.md +0 -128
  241. package/docs/install/updating.md +0 -231
  242. package/docs/ja-JP/AGENTS.md +0 -37
  243. package/docs/ja-JP/index.md +0 -183
  244. package/docs/ja-JP/start/getting-started.md +0 -125
  245. package/docs/ja-JP/start/wizard.md +0 -77
  246. package/docs/logging.md +0 -350
  247. package/docs/nav-tabs-underline.js +0 -100
  248. package/docs/network.md +0 -54
  249. package/docs/nodes/audio.md +0 -133
  250. package/docs/nodes/camera.md +0 -156
  251. package/docs/nodes/images.md +0 -72
  252. package/docs/nodes/index.md +0 -342
  253. package/docs/nodes/location-command.md +0 -113
  254. package/docs/nodes/media-understanding.md +0 -379
  255. package/docs/nodes/talk.md +0 -90
  256. package/docs/nodes/troubleshooting.md +0 -112
  257. package/docs/nodes/voicewake.md +0 -65
  258. package/docs/perplexity.md +0 -80
  259. package/docs/phase-6.5-pre-flight-audit.md +0 -268
  260. package/docs/pi-dev.md +0 -70
  261. package/docs/pi.md +0 -610
  262. package/docs/platforms/android.md +0 -151
  263. package/docs/platforms/digitalocean.md +0 -265
  264. package/docs/platforms/index.md +0 -53
  265. package/docs/platforms/ios.md +0 -108
  266. package/docs/platforms/linux.md +0 -94
  267. package/docs/platforms/mac/bundled-gateway.md +0 -73
  268. package/docs/platforms/mac/canvas.md +0 -125
  269. package/docs/platforms/mac/child-process.md +0 -69
  270. package/docs/platforms/mac/dev-setup.md +0 -104
  271. package/docs/platforms/mac/health.md +0 -34
  272. package/docs/platforms/mac/icon.md +0 -31
  273. package/docs/platforms/mac/logging.md +0 -57
  274. package/docs/platforms/mac/menu-bar.md +0 -81
  275. package/docs/platforms/mac/peekaboo.md +0 -65
  276. package/docs/platforms/mac/permissions.md +0 -50
  277. package/docs/platforms/mac/release.md +0 -85
  278. package/docs/platforms/mac/remote.md +0 -84
  279. package/docs/platforms/mac/signing.md +0 -47
  280. package/docs/platforms/mac/skills.md +0 -33
  281. package/docs/platforms/mac/voice-overlay.md +0 -60
  282. package/docs/platforms/mac/voicewake.md +0 -66
  283. package/docs/platforms/mac/webchat.md +0 -43
  284. package/docs/platforms/mac/xpc.md +0 -61
  285. package/docs/platforms/macos.md +0 -204
  286. package/docs/platforms/oracle.md +0 -303
  287. package/docs/platforms/raspberry-pi.md +0 -358
  288. package/docs/platforms/windows.md +0 -159
  289. package/docs/plugins/agent-tools.md +0 -99
  290. package/docs/plugins/community.md +0 -44
  291. package/docs/plugins/manifest.md +0 -71
  292. package/docs/plugins/voice-call.md +0 -322
  293. package/docs/plugins/zalouser.md +0 -81
  294. package/docs/prose.md +0 -134
  295. package/docs/providers/anthropic.md +0 -174
  296. package/docs/providers/bedrock.md +0 -176
  297. package/docs/providers/claude-max-api-proxy.md +0 -148
  298. package/docs/providers/cloudflare-ai-gateway.md +0 -71
  299. package/docs/providers/deepgram.md +0 -93
  300. package/docs/providers/github-copilot.md +0 -72
  301. package/docs/providers/glm.md +0 -33
  302. package/docs/providers/huggingface.md +0 -209
  303. package/docs/providers/index.md +0 -67
  304. package/docs/providers/litellm.md +0 -153
  305. package/docs/providers/minimax.md +0 -208
  306. package/docs/providers/models.md +0 -52
  307. package/docs/providers/moonshot.md +0 -142
  308. package/docs/providers/nvidia.md +0 -55
  309. package/docs/providers/ollama.md +0 -250
  310. package/docs/providers/openai.md +0 -62
  311. package/docs/providers/opencode.md +0 -36
  312. package/docs/providers/openrouter.md +0 -37
  313. package/docs/providers/qianfan.md +0 -38
  314. package/docs/providers/qwen.md +0 -53
  315. package/docs/providers/synthetic.md +0 -99
  316. package/docs/providers/together.md +0 -65
  317. package/docs/providers/venice.md +0 -267
  318. package/docs/providers/vercel-ai-gateway.md +0 -50
  319. package/docs/providers/vllm.md +0 -92
  320. package/docs/providers/xiaomi.md +0 -64
  321. package/docs/providers/zai.md +0 -38
  322. package/docs/refactor/exec-host.md +0 -316
  323. package/docs/refactor/outbound-session-mirroring.md +0 -83
  324. package/docs/refactor/plugin-sdk.md +0 -214
  325. package/docs/refactor/strict-config.md +0 -93
  326. package/docs/refactor/syminet.md +0 -417
  327. package/docs/reference/AGENTS.default.md +0 -123
  328. package/docs/reference/RELEASING.md +0 -120
  329. package/docs/reference/api-usage-costs.md +0 -138
  330. package/docs/reference/credits.md +0 -28
  331. package/docs/reference/device-models.md +0 -47
  332. package/docs/reference/rpc.md +0 -43
  333. package/docs/reference/session-management-compaction.md +0 -284
  334. package/docs/reference/test.md +0 -51
  335. package/docs/reference/token-use.md +0 -136
  336. package/docs/reference/transcript-hygiene.md +0 -151
  337. package/docs/reference/wizard.md +0 -265
  338. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
  339. package/docs/security/README.md +0 -16
  340. package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
  341. package/docs/security/formal-verification.md +0 -164
  342. package/docs/start/bootstrapping.md +0 -41
  343. package/docs/start/docs-directory.md +0 -63
  344. package/docs/start/getting-started.md +0 -135
  345. package/docs/start/hubs.md +0 -196
  346. package/docs/start/lore.md +0 -216
  347. package/docs/start/onboarding-overview.md +0 -51
  348. package/docs/start/onboarding.md +0 -81
  349. package/docs/start/quickstart.md +0 -22
  350. package/docs/start/setup.md +0 -160
  351. package/docs/start/showcase.md +0 -414
  352. package/docs/start/symi.md +0 -211
  353. package/docs/start/wizard-cli-automation.md +0 -158
  354. package/docs/start/wizard-cli-reference.md +0 -255
  355. package/docs/start/wizard.md +0 -109
  356. package/docs/style.css +0 -37
  357. package/docs/tools/agent-send.md +0 -52
  358. package/docs/tools/apply-patch.md +0 -51
  359. package/docs/tools/browser-linux-troubleshooting.md +0 -139
  360. package/docs/tools/browser-login.md +0 -67
  361. package/docs/tools/browser.md +0 -587
  362. package/docs/tools/chrome-extension.md +0 -183
  363. package/docs/tools/creating-skills.md +0 -54
  364. package/docs/tools/elevated.md +0 -55
  365. package/docs/tools/exec-approvals.md +0 -261
  366. package/docs/tools/exec.md +0 -184
  367. package/docs/tools/firecrawl.md +0 -61
  368. package/docs/tools/index.md +0 -540
  369. package/docs/tools/llm-task.md +0 -115
  370. package/docs/tools/loop-detection.md +0 -98
  371. package/docs/tools/multi-agent-sandbox-tools.md +0 -396
  372. package/docs/tools/pipeline.md +0 -340
  373. package/docs/tools/plugin.md +0 -687
  374. package/docs/tools/reactions.md +0 -21
  375. package/docs/tools/skills-config.md +0 -76
  376. package/docs/tools/skills.md +0 -300
  377. package/docs/tools/slash-commands.md +0 -202
  378. package/docs/tools/subagents.md +0 -232
  379. package/docs/tools/symihub.md +0 -256
  380. package/docs/tools/thinking.md +0 -75
  381. package/docs/tools/web.md +0 -265
  382. package/docs/tts.md +0 -398
  383. package/docs/vps.md +0 -43
  384. package/docs/web/control-ui.md +0 -247
  385. package/docs/web/dashboard.md +0 -46
  386. package/docs/web/index.md +0 -118
  387. package/docs/web/tui.md +0 -162
  388. package/docs/web/webchat.md +0 -53
  389. package/docs/whatsapp-symi-ai-zh.jpg +0 -0
  390. package/docs/whatsapp-symi.jpg +0 -0
  391. package/docs/zh-CN/AGENTS.md +0 -59
  392. package/docs/zh-CN/automation/auth-monitoring.md +0 -47
  393. package/docs/zh-CN/automation/cron-jobs.md +0 -422
  394. package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
  395. package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
  396. package/docs/zh-CN/automation/hooks.md +0 -881
  397. package/docs/zh-CN/automation/poll.md +0 -68
  398. package/docs/zh-CN/automation/troubleshooting.md +0 -8
  399. package/docs/zh-CN/automation/webhook.md +0 -161
  400. package/docs/zh-CN/brave-search.md +0 -48
  401. package/docs/zh-CN/channels/bluebubbles.md +0 -271
  402. package/docs/zh-CN/channels/broadcast-groups.md +0 -448
  403. package/docs/zh-CN/channels/channel-routing.md +0 -112
  404. package/docs/zh-CN/channels/feishu.md +0 -629
  405. package/docs/zh-CN/channels/googlechat.md +0 -257
  406. package/docs/zh-CN/channels/grammy.md +0 -38
  407. package/docs/zh-CN/channels/group-messages.md +0 -89
  408. package/docs/zh-CN/channels/groups.md +0 -369
  409. package/docs/zh-CN/channels/imessage.md +0 -300
  410. package/docs/zh-CN/channels/index.md +0 -52
  411. package/docs/zh-CN/channels/line.md +0 -180
  412. package/docs/zh-CN/channels/location.md +0 -63
  413. package/docs/zh-CN/channels/matrix.md +0 -221
  414. package/docs/zh-CN/channels/mattermost.md +0 -144
  415. package/docs/zh-CN/channels/msteams.md +0 -773
  416. package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
  417. package/docs/zh-CN/channels/nostr.md +0 -240
  418. package/docs/zh-CN/channels/pairing.md +0 -86
  419. package/docs/zh-CN/channels/signal.md +0 -207
  420. package/docs/zh-CN/channels/slack.md +0 -529
  421. package/docs/zh-CN/channels/telegram.md +0 -748
  422. package/docs/zh-CN/channels/tlon.md +0 -136
  423. package/docs/zh-CN/channels/troubleshooting.md +0 -34
  424. package/docs/zh-CN/channels/twitch.md +0 -385
  425. package/docs/zh-CN/channels/whatsapp.md +0 -411
  426. package/docs/zh-CN/channels/zalo.md +0 -196
  427. package/docs/zh-CN/channels/zalouser.md +0 -147
  428. package/docs/zh-CN/cli/acp.md +0 -173
  429. package/docs/zh-CN/cli/agent.md +0 -30
  430. package/docs/zh-CN/cli/agents.md +0 -82
  431. package/docs/zh-CN/cli/approvals.md +0 -57
  432. package/docs/zh-CN/cli/browser.md +0 -114
  433. package/docs/zh-CN/cli/channels.md +0 -80
  434. package/docs/zh-CN/cli/config.md +0 -57
  435. package/docs/zh-CN/cli/configure.md +0 -37
  436. package/docs/zh-CN/cli/cron.md +0 -43
  437. package/docs/zh-CN/cli/dashboard.md +0 -23
  438. package/docs/zh-CN/cli/devices.md +0 -74
  439. package/docs/zh-CN/cli/directory.md +0 -69
  440. package/docs/zh-CN/cli/dns.md +0 -30
  441. package/docs/zh-CN/cli/docs.md +0 -22
  442. package/docs/zh-CN/cli/doctor.md +0 -48
  443. package/docs/zh-CN/cli/gateway.md +0 -206
  444. package/docs/zh-CN/cli/health.md +0 -28
  445. package/docs/zh-CN/cli/hooks.md +0 -298
  446. package/docs/zh-CN/cli/index.md +0 -1025
  447. package/docs/zh-CN/cli/logs.md +0 -31
  448. package/docs/zh-CN/cli/memory.md +0 -52
  449. package/docs/zh-CN/cli/message.md +0 -205
  450. package/docs/zh-CN/cli/models.md +0 -85
  451. package/docs/zh-CN/cli/node.md +0 -115
  452. package/docs/zh-CN/cli/nodes.md +0 -80
  453. package/docs/zh-CN/cli/onboard.md +0 -36
  454. package/docs/zh-CN/cli/pairing.md +0 -28
  455. package/docs/zh-CN/cli/plugins.md +0 -66
  456. package/docs/zh-CN/cli/reset.md +0 -24
  457. package/docs/zh-CN/cli/sandbox.md +0 -158
  458. package/docs/zh-CN/cli/security.md +0 -33
  459. package/docs/zh-CN/cli/sessions.md +0 -23
  460. package/docs/zh-CN/cli/setup.md +0 -36
  461. package/docs/zh-CN/cli/skills.md +0 -33
  462. package/docs/zh-CN/cli/status.md +0 -32
  463. package/docs/zh-CN/cli/system.md +0 -63
  464. package/docs/zh-CN/cli/tui.md +0 -30
  465. package/docs/zh-CN/cli/uninstall.md +0 -24
  466. package/docs/zh-CN/cli/update.md +0 -101
  467. package/docs/zh-CN/cli/voicecall.md +0 -41
  468. package/docs/zh-CN/cli/webhooks.md +0 -32
  469. package/docs/zh-CN/concepts/agent-loop.md +0 -146
  470. package/docs/zh-CN/concepts/agent-workspace.md +0 -219
  471. package/docs/zh-CN/concepts/agent.md +0 -115
  472. package/docs/zh-CN/concepts/architecture.md +0 -122
  473. package/docs/zh-CN/concepts/compaction.md +0 -67
  474. package/docs/zh-CN/concepts/context.md +0 -168
  475. package/docs/zh-CN/concepts/features.md +0 -57
  476. package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
  477. package/docs/zh-CN/concepts/memory.md +0 -412
  478. package/docs/zh-CN/concepts/messages.md +0 -140
  479. package/docs/zh-CN/concepts/model-failover.md +0 -145
  480. package/docs/zh-CN/concepts/model-providers.md +0 -320
  481. package/docs/zh-CN/concepts/models.md +0 -196
  482. package/docs/zh-CN/concepts/multi-agent.md +0 -371
  483. package/docs/zh-CN/concepts/oauth.md +0 -151
  484. package/docs/zh-CN/concepts/presence.md +0 -99
  485. package/docs/zh-CN/concepts/queue.md +0 -91
  486. package/docs/zh-CN/concepts/retry.md +0 -71
  487. package/docs/zh-CN/concepts/session-pruning.md +0 -129
  488. package/docs/zh-CN/concepts/session-tool.md +0 -198
  489. package/docs/zh-CN/concepts/session.md +0 -158
  490. package/docs/zh-CN/concepts/sessions.md +0 -17
  491. package/docs/zh-CN/concepts/streaming.md +0 -131
  492. package/docs/zh-CN/concepts/system-prompt.md +0 -99
  493. package/docs/zh-CN/concepts/timezone.md +0 -94
  494. package/docs/zh-CN/concepts/typebox.md +0 -284
  495. package/docs/zh-CN/concepts/typing-indicators.md +0 -74
  496. package/docs/zh-CN/concepts/usage-tracking.md +0 -42
  497. package/docs/zh-CN/date-time.md +0 -128
  498. package/docs/zh-CN/debug/node-issue.md +0 -90
  499. package/docs/zh-CN/diagnostics/flags.md +0 -98
  500. package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
  501. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
  502. package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
  503. package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
  504. package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
  505. package/docs/zh-CN/experiments/research/memory.md +0 -235
  506. package/docs/zh-CN/gateway/authentication.md +0 -142
  507. package/docs/zh-CN/gateway/background-process.md +0 -100
  508. package/docs/zh-CN/gateway/bonjour.md +0 -174
  509. package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
  510. package/docs/zh-CN/gateway/cli-backends.md +0 -213
  511. package/docs/zh-CN/gateway/configuration-examples.md +0 -580
  512. package/docs/zh-CN/gateway/configuration.md +0 -3284
  513. package/docs/zh-CN/gateway/discovery.md +0 -123
  514. package/docs/zh-CN/gateway/doctor.md +0 -238
  515. package/docs/zh-CN/gateway/gateway-lock.md +0 -41
  516. package/docs/zh-CN/gateway/health.md +0 -42
  517. package/docs/zh-CN/gateway/heartbeat.md +0 -272
  518. package/docs/zh-CN/gateway/index.md +0 -335
  519. package/docs/zh-CN/gateway/local-models.md +0 -157
  520. package/docs/zh-CN/gateway/logging.md +0 -114
  521. package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
  522. package/docs/zh-CN/gateway/network-model.md +0 -23
  523. package/docs/zh-CN/gateway/openai-http-api.md +0 -125
  524. package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
  525. package/docs/zh-CN/gateway/pairing.md +0 -99
  526. package/docs/zh-CN/gateway/protocol.md +0 -220
  527. package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
  528. package/docs/zh-CN/gateway/remote.md +0 -133
  529. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
  530. package/docs/zh-CN/gateway/sandboxing.md +0 -188
  531. package/docs/zh-CN/gateway/security/index.md +0 -772
  532. package/docs/zh-CN/gateway/tailscale.md +0 -124
  533. package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
  534. package/docs/zh-CN/gateway/troubleshooting.md +0 -758
  535. package/docs/zh-CN/help/debugging.md +0 -160
  536. package/docs/zh-CN/help/environment.md +0 -88
  537. package/docs/zh-CN/help/faq.md +0 -2613
  538. package/docs/zh-CN/help/index.md +0 -28
  539. package/docs/zh-CN/help/scripts.md +0 -35
  540. package/docs/zh-CN/help/testing.md +0 -375
  541. package/docs/zh-CN/help/troubleshooting.md +0 -104
  542. package/docs/zh-CN/index.md +0 -183
  543. package/docs/zh-CN/install/ansible.md +0 -214
  544. package/docs/zh-CN/install/bun.md +0 -65
  545. package/docs/zh-CN/install/development-channels.md +0 -81
  546. package/docs/zh-CN/install/docker.md +0 -525
  547. package/docs/zh-CN/install/exe-dev.md +0 -127
  548. package/docs/zh-CN/install/fly.md +0 -476
  549. package/docs/zh-CN/install/gcp.md +0 -509
  550. package/docs/zh-CN/install/hetzner.md +0 -336
  551. package/docs/zh-CN/install/index.md +0 -193
  552. package/docs/zh-CN/install/installer.md +0 -128
  553. package/docs/zh-CN/install/macos-vm.md +0 -288
  554. package/docs/zh-CN/install/migrating.md +0 -199
  555. package/docs/zh-CN/install/nix.md +0 -99
  556. package/docs/zh-CN/install/node.md +0 -8
  557. package/docs/zh-CN/install/northflank.mdx +0 -56
  558. package/docs/zh-CN/install/railway.mdx +0 -102
  559. package/docs/zh-CN/install/render.mdx +0 -168
  560. package/docs/zh-CN/install/uninstall.md +0 -135
  561. package/docs/zh-CN/install/updating.md +0 -233
  562. package/docs/zh-CN/logging.md +0 -329
  563. package/docs/zh-CN/network.md +0 -59
  564. package/docs/zh-CN/nodes/audio.md +0 -120
  565. package/docs/zh-CN/nodes/camera.md +0 -162
  566. package/docs/zh-CN/nodes/images.md +0 -79
  567. package/docs/zh-CN/nodes/index.md +0 -348
  568. package/docs/zh-CN/nodes/location-command.md +0 -120
  569. package/docs/zh-CN/nodes/media-understanding.md +0 -380
  570. package/docs/zh-CN/nodes/talk.md +0 -97
  571. package/docs/zh-CN/nodes/troubleshooting.md +0 -8
  572. package/docs/zh-CN/nodes/voicewake.md +0 -72
  573. package/docs/zh-CN/perplexity.md +0 -84
  574. package/docs/zh-CN/pi-dev.md +0 -77
  575. package/docs/zh-CN/pi.md +0 -617
  576. package/docs/zh-CN/platforms/android.md +0 -155
  577. package/docs/zh-CN/platforms/digitalocean.md +0 -268
  578. package/docs/zh-CN/platforms/index.md +0 -60
  579. package/docs/zh-CN/platforms/ios.md +0 -114
  580. package/docs/zh-CN/platforms/linux.md +0 -101
  581. package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
  582. package/docs/zh-CN/platforms/mac/canvas.md +0 -128
  583. package/docs/zh-CN/platforms/mac/child-process.md +0 -73
  584. package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
  585. package/docs/zh-CN/platforms/mac/health.md +0 -41
  586. package/docs/zh-CN/platforms/mac/icon.md +0 -38
  587. package/docs/zh-CN/platforms/mac/logging.md +0 -64
  588. package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
  589. package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
  590. package/docs/zh-CN/platforms/mac/permissions.md +0 -46
  591. package/docs/zh-CN/platforms/mac/release.md +0 -92
  592. package/docs/zh-CN/platforms/mac/remote.md +0 -90
  593. package/docs/zh-CN/platforms/mac/signing.md +0 -54
  594. package/docs/zh-CN/platforms/mac/skills.md +0 -40
  595. package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
  596. package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
  597. package/docs/zh-CN/platforms/mac/webchat.md +0 -43
  598. package/docs/zh-CN/platforms/mac/xpc.md +0 -68
  599. package/docs/zh-CN/platforms/macos.md +0 -193
  600. package/docs/zh-CN/platforms/oracle.md +0 -310
  601. package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
  602. package/docs/zh-CN/platforms/windows.md +0 -156
  603. package/docs/zh-CN/plugins/agent-tools.md +0 -99
  604. package/docs/zh-CN/plugins/manifest.md +0 -68
  605. package/docs/zh-CN/plugins/voice-call.md +0 -250
  606. package/docs/zh-CN/plugins/zalouser.md +0 -88
  607. package/docs/zh-CN/prose.md +0 -141
  608. package/docs/zh-CN/providers/anthropic.md +0 -159
  609. package/docs/zh-CN/providers/bedrock.md +0 -170
  610. package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
  611. package/docs/zh-CN/providers/deepgram.md +0 -97
  612. package/docs/zh-CN/providers/github-copilot.md +0 -67
  613. package/docs/zh-CN/providers/glm.md +0 -39
  614. package/docs/zh-CN/providers/index.md +0 -66
  615. package/docs/zh-CN/providers/minimax.md +0 -206
  616. package/docs/zh-CN/providers/models.md +0 -55
  617. package/docs/zh-CN/providers/moonshot.md +0 -145
  618. package/docs/zh-CN/providers/ollama.md +0 -230
  619. package/docs/zh-CN/providers/openai.md +0 -68
  620. package/docs/zh-CN/providers/opencode.md +0 -41
  621. package/docs/zh-CN/providers/openrouter.md +0 -43
  622. package/docs/zh-CN/providers/qianfan.md +0 -8
  623. package/docs/zh-CN/providers/qwen.md +0 -55
  624. package/docs/zh-CN/providers/synthetic.md +0 -102
  625. package/docs/zh-CN/providers/venice.md +0 -274
  626. package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
  627. package/docs/zh-CN/providers/xiaomi.md +0 -68
  628. package/docs/zh-CN/providers/zai.md +0 -41
  629. package/docs/zh-CN/refactor/exec-host.md +0 -323
  630. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
  631. package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
  632. package/docs/zh-CN/refactor/strict-config.md +0 -100
  633. package/docs/zh-CN/refactor/syminet.md +0 -424
  634. package/docs/zh-CN/reference/AGENTS.default.md +0 -130
  635. package/docs/zh-CN/reference/RELEASING.md +0 -122
  636. package/docs/zh-CN/reference/api-usage-costs.md +0 -136
  637. package/docs/zh-CN/reference/credits.md +0 -34
  638. package/docs/zh-CN/reference/device-models.md +0 -54
  639. package/docs/zh-CN/reference/rpc.md +0 -48
  640. package/docs/zh-CN/reference/session-management-compaction.md +0 -286
  641. package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
  642. package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
  643. package/docs/zh-CN/reference/templates/BOOT.md +0 -17
  644. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
  645. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
  646. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  647. package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
  648. package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
  649. package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
  650. package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
  651. package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
  652. package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
  653. package/docs/zh-CN/reference/templates/USER.md +0 -30
  654. package/docs/zh-CN/reference/test.md +0 -57
  655. package/docs/zh-CN/reference/token-use.md +0 -119
  656. package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
  657. package/docs/zh-CN/reference/wizard.md +0 -9
  658. package/docs/zh-CN/security/formal-verification.md +0 -171
  659. package/docs/zh-CN/start/bootstrapping.md +0 -9
  660. package/docs/zh-CN/start/docs-directory.md +0 -69
  661. package/docs/zh-CN/start/getting-started.md +0 -201
  662. package/docs/zh-CN/start/hubs.md +0 -199
  663. package/docs/zh-CN/start/lore.md +0 -223
  664. package/docs/zh-CN/start/onboarding.md +0 -105
  665. package/docs/zh-CN/start/quickstart.md +0 -88
  666. package/docs/zh-CN/start/setup.md +0 -151
  667. package/docs/zh-CN/start/showcase.md +0 -421
  668. package/docs/zh-CN/start/symi.md +0 -244
  669. package/docs/zh-CN/start/wizard.md +0 -326
  670. package/docs/zh-CN/tools/agent-send.md +0 -58
  671. package/docs/zh-CN/tools/apply-patch.md +0 -57
  672. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
  673. package/docs/zh-CN/tools/browser-login.md +0 -75
  674. package/docs/zh-CN/tools/browser.md +0 -553
  675. package/docs/zh-CN/tools/chrome-extension.md +0 -183
  676. package/docs/zh-CN/tools/creating-skills.md +0 -61
  677. package/docs/zh-CN/tools/elevated.md +0 -62
  678. package/docs/zh-CN/tools/exec-approvals.md +0 -233
  679. package/docs/zh-CN/tools/exec.md +0 -169
  680. package/docs/zh-CN/tools/firecrawl.md +0 -68
  681. package/docs/zh-CN/tools/index.md +0 -508
  682. package/docs/zh-CN/tools/llm-task.md +0 -117
  683. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
  684. package/docs/zh-CN/tools/pipeline.md +0 -349
  685. package/docs/zh-CN/tools/plugin.md +0 -639
  686. package/docs/zh-CN/tools/reactions.md +0 -28
  687. package/docs/zh-CN/tools/skills-config.md +0 -78
  688. package/docs/zh-CN/tools/skills.md +0 -279
  689. package/docs/zh-CN/tools/slash-commands.md +0 -196
  690. package/docs/zh-CN/tools/subagents.md +0 -167
  691. package/docs/zh-CN/tools/symihub.md +0 -209
  692. package/docs/zh-CN/tools/thinking.md +0 -80
  693. package/docs/zh-CN/tools/web.md +0 -257
  694. package/docs/zh-CN/tts.md +0 -373
  695. package/docs/zh-CN/vps.md +0 -47
  696. package/docs/zh-CN/web/control-ui.md +0 -190
  697. package/docs/zh-CN/web/dashboard.md +0 -53
  698. package/docs/zh-CN/web/index.md +0 -118
  699. package/docs/zh-CN/web/tui.md +0 -166
  700. package/docs/zh-CN/web/webchat.md +0 -56
  701. package/extensions/imessage/index.ts +0 -17
  702. package/extensions/imessage/node_modules/.bin/symi +0 -21
  703. package/extensions/imessage/package.json +0 -15
  704. package/extensions/imessage/src/channel.outbound.test.ts +0 -66
  705. package/extensions/imessage/src/channel.ts +0 -298
  706. package/extensions/imessage/src/runtime.ts +0 -14
  707. package/extensions/imessage/symi.plugin.json +0 -9
  708. package/extensions/line/index.ts +0 -19
  709. package/extensions/line/node_modules/.bin/symi +0 -21
  710. package/extensions/line/package.json +0 -30
  711. package/extensions/line/src/card-command.ts +0 -344
  712. package/extensions/line/src/channel.logout.test.ts +0 -133
  713. package/extensions/line/src/channel.sendPayload.test.ts +0 -312
  714. package/extensions/line/src/channel.startup.test.ts +0 -133
  715. package/extensions/line/src/channel.ts +0 -801
  716. package/extensions/line/src/runtime.ts +0 -14
  717. package/extensions/line/symi.plugin.json +0 -9
  718. package/extensions/signal/index.ts +0 -17
  719. package/extensions/signal/node_modules/.bin/symi +0 -21
  720. package/extensions/signal/package.json +0 -15
  721. package/extensions/signal/src/channel.ts +0 -302
  722. package/extensions/signal/src/runtime.ts +0 -14
  723. package/extensions/signal/symi.plugin.json +0 -9
  724. package/extensions/telegram/index.ts +0 -17
  725. package/extensions/telegram/node_modules/.bin/symi +0 -21
  726. package/extensions/telegram/package.json +0 -15
  727. package/extensions/telegram/src/channel.test.ts +0 -125
  728. package/extensions/telegram/src/channel.ts +0 -560
  729. package/extensions/telegram/src/runtime.ts +0 -14
  730. package/extensions/telegram/symi.plugin.json +0 -9
  731. package/extensions/whatsapp/index.ts +0 -17
  732. package/extensions/whatsapp/node_modules/.bin/symi +0 -21
  733. package/extensions/whatsapp/package.json +0 -15
  734. package/extensions/whatsapp/src/channel.ts +0 -465
  735. package/extensions/whatsapp/src/resolve-target.test.ts +0 -170
  736. package/extensions/whatsapp/src/runtime.ts +0 -14
  737. package/extensions/whatsapp/symi.plugin.json +0 -9
@@ -1,40 +0,0 @@
1
- ---
2
- summary: "RPC protocol notes for onboarding wizard and config schema"
3
- read_when: "Changing onboarding wizard steps or config schema endpoints"
4
- title: "Onboarding and Config Protocol"
5
- ---
6
-
7
- # Onboarding + Config Protocol
8
-
9
- Purpose: shared onboarding + config surfaces across CLI, macOS app, and Web UI.
10
-
11
- ## Components
12
-
13
- - Wizard engine (shared session + prompts + onboarding state).
14
- - CLI onboarding uses the same wizard flow as the UI clients.
15
- - Gateway RPC exposes wizard + config schema endpoints.
16
- - macOS onboarding uses the wizard step model.
17
- - Web UI renders config forms from JSON Schema + UI hints.
18
-
19
- ## Gateway RPC
20
-
21
- - `wizard.start` params: `{ mode?: "local"|"remote", workspace?: string }`
22
- - `wizard.next` params: `{ sessionId, answer?: { stepId, value? } }`
23
- - `wizard.cancel` params: `{ sessionId }`
24
- - `wizard.status` params: `{ sessionId }`
25
- - `config.schema` params: `{}`
26
-
27
- Responses (shape)
28
-
29
- - Wizard: `{ sessionId, done, step?, status?, error? }`
30
- - Config schema: `{ schema, uiHints, version, generatedAt }`
31
-
32
- ## UI Hints
33
-
34
- - `uiHints` keyed by path; optional metadata (label/help/group/order/advanced/sensitive/placeholder).
35
- - Sensitive fields render as password inputs; no redaction layer.
36
- - Unsupported schema nodes fall back to the raw JSON editor.
37
-
38
- ## Notes
39
-
40
- - This doc is the single place to track protocol refactors for onboarding/config.
@@ -1,229 +0,0 @@
1
- ---
2
- summary: "Plan: isolate browser act:evaluate from Playwright queue using CDP, with end-to-end deadlines and safer ref resolution"
3
- owner: "symi"
4
- status: "draft"
5
- last_updated: "2026-02-10"
6
- title: "Browser Evaluate CDP Refactor"
7
- ---
8
-
9
- # Browser Evaluate CDP Refactor Plan
10
-
11
- ## Context
12
-
13
- `act:evaluate` executes user provided JavaScript in the page. Today it runs via Playwright
14
- (`page.evaluate` or `locator.evaluate`). Playwright serializes CDP commands per page, so a
15
- stuck or long running evaluate can block the page command queue and make every later action
16
- on that tab look "stuck".
17
-
18
- PR #13498 adds a pragmatic safety net (bounded evaluate, abort propagation, and best-effort
19
- recovery). This document describes a larger refactor that makes `act:evaluate` inherently
20
- isolated from Playwright so a stuck evaluate cannot wedge normal Playwright operations.
21
-
22
- ## Goals
23
-
24
- - `act:evaluate` cannot permanently block later browser actions on the same tab.
25
- - Timeouts are single source of truth end to end so a caller can rely on a budget.
26
- - Abort and timeout are treated the same way across HTTP and in-process dispatch.
27
- - Element targeting for evaluate is supported without switching everything off Playwright.
28
- - Maintain backward compatibility for existing callers and payloads.
29
-
30
- ## Non-goals
31
-
32
- - Replace all browser actions (click, type, wait, etc.) with CDP implementations.
33
- - Remove the existing safety net introduced in PR #13498 (it remains a useful fallback).
34
- - Introduce new unsafe capabilities beyond the existing `browser.evaluateEnabled` gate.
35
- - Add process isolation (worker process/thread) for evaluate. If we still see hard to recover
36
- stuck states after this refactor, that is a follow-up idea.
37
-
38
- ## Current Architecture (Why It Gets Stuck)
39
-
40
- At a high level:
41
-
42
- - Callers send `act:evaluate` to the browser control service.
43
- - The route handler calls into Playwright to execute the JavaScript.
44
- - Playwright serializes page commands, so an evaluate that never finishes blocks the queue.
45
- - A stuck queue means later click/type/wait operations on the tab can appear to hang.
46
-
47
- ## Proposed Architecture
48
-
49
- ### 1. Deadline Propagation
50
-
51
- Introduce a single budget concept and derive everything from it:
52
-
53
- - Caller sets `timeoutMs` (or a deadline in the future).
54
- - The outer request timeout, route handler logic, and the execution budget inside the page
55
- all use the same budget, with small headroom where needed for serialization overhead.
56
- - Abort is propagated as an `AbortSignal` everywhere so cancellation is consistent.
57
-
58
- Implementation direction:
59
-
60
- - Add a small helper (for example `createBudget({ timeoutMs, signal })`) that returns:
61
- - `signal`: the linked AbortSignal
62
- - `deadlineAtMs`: absolute deadline
63
- - `remainingMs()`: remaining budget for child operations
64
- - Use this helper in:
65
- - `src/browser/client-fetch.ts` (HTTP and in-process dispatch)
66
- - `src/node-host/runner.ts` (proxy path)
67
- - browser action implementations (Playwright and CDP)
68
-
69
- ### 2. Separate Evaluate Engine (CDP Path)
70
-
71
- Add a CDP based evaluate implementation that does not share Playwright's per page command
72
- queue. The key property is that the evaluate transport is a separate WebSocket connection
73
- and a separate CDP session attached to the target.
74
-
75
- Implementation direction:
76
-
77
- - New module, for example `src/browser/cdp-evaluate.ts`, that:
78
- - Connects to the configured CDP endpoint (browser level socket).
79
- - Uses `Target.attachToTarget({ targetId, flatten: true })` to get a `sessionId`.
80
- - Runs either:
81
- - `Runtime.evaluate` for page level evaluate, or
82
- - `DOM.resolveNode` plus `Runtime.callFunctionOn` for element evaluate.
83
- - On timeout or abort:
84
- - Sends `Runtime.terminateExecution` best-effort for the session.
85
- - Closes the WebSocket and returns a clear error.
86
-
87
- Notes:
88
-
89
- - This still executes JavaScript in the page, so termination can have side effects. The win
90
- is that it does not wedge the Playwright queue, and it is cancelable at the transport
91
- layer by killing the CDP session.
92
-
93
- ### 3. Ref Story (Element Targeting Without A Full Rewrite)
94
-
95
- The hard part is element targeting. CDP needs a DOM handle or `backendDOMNodeId`, while
96
- today most browser actions use Playwright locators based on refs from snapshots.
97
-
98
- Recommended approach: keep existing refs, but attach an optional CDP resolvable id.
99
-
100
- #### 3.1 Extend Stored Ref Info
101
-
102
- Extend the stored role ref metadata to optionally include a CDP id:
103
-
104
- - Today: `{ role, name, nth }`
105
- - Proposed: `{ role, name, nth, backendDOMNodeId?: number }`
106
-
107
- This keeps all existing Playwright based actions working and allows CDP evaluate to accept
108
- the same `ref` value when the `backendDOMNodeId` is available.
109
-
110
- #### 3.2 Populate backendDOMNodeId At Snapshot Time
111
-
112
- When producing a role snapshot:
113
-
114
- 1. Generate the existing role ref map as today (role, name, nth).
115
- 2. Fetch the AX tree via CDP (`Accessibility.getFullAXTree`) and compute a parallel map of
116
- `(role, name, nth) -> backendDOMNodeId` using the same duplicate handling rules.
117
- 3. Merge the id back into the stored ref info for the current tab.
118
-
119
- If mapping fails for a ref, leave `backendDOMNodeId` undefined. This makes the feature
120
- best-effort and safe to roll out.
121
-
122
- #### 3.3 Evaluate Behavior With Ref
123
-
124
- In `act:evaluate`:
125
-
126
- - If `ref` is present and has `backendDOMNodeId`, run element evaluate via CDP.
127
- - If `ref` is present but has no `backendDOMNodeId`, fall back to the Playwright path (with
128
- the safety net).
129
-
130
- Optional escape hatch:
131
-
132
- - Extend the request shape to accept `backendDOMNodeId` directly for advanced callers (and
133
- for debugging), while keeping `ref` as the primary interface.
134
-
135
- ### 4. Keep A Last Resort Recovery Path
136
-
137
- Even with CDP evaluate, there are other ways to wedge a tab or a connection. Keep the
138
- existing recovery mechanisms (terminate execution + disconnect Playwright) as a last resort
139
- for:
140
-
141
- - legacy callers
142
- - environments where CDP attach is blocked
143
- - unexpected Playwright edge cases
144
-
145
- ## Implementation Plan (Single Iteration)
146
-
147
- ### Deliverables
148
-
149
- - A CDP based evaluate engine that runs outside the Playwright per-page command queue.
150
- - A single end-to-end timeout/abort budget used consistently by callers and handlers.
151
- - Ref metadata that can optionally carry `backendDOMNodeId` for element evaluate.
152
- - `act:evaluate` prefers the CDP engine when possible and falls back to Playwright when not.
153
- - Tests that prove a stuck evaluate does not wedge later actions.
154
- - Logs/metrics that make failures and fallbacks visible.
155
-
156
- ### Implementation Checklist
157
-
158
- 1. Add a shared "budget" helper to link `timeoutMs` + upstream `AbortSignal` into:
159
- - a single `AbortSignal`
160
- - an absolute deadline
161
- - a `remainingMs()` helper for downstream operations
162
- 2. Update all caller paths to use that helper so `timeoutMs` means the same thing everywhere:
163
- - `src/browser/client-fetch.ts` (HTTP and in-process dispatch)
164
- - `src/node-host/runner.ts` (node proxy path)
165
- - CLI wrappers that call `/act` (add `--timeout-ms` to `browser evaluate`)
166
- 3. Implement `src/browser/cdp-evaluate.ts`:
167
- - connect to the browser-level CDP socket
168
- - `Target.attachToTarget` to get a `sessionId`
169
- - run `Runtime.evaluate` for page evaluate
170
- - run `DOM.resolveNode` + `Runtime.callFunctionOn` for element evaluate
171
- - on timeout/abort: best-effort `Runtime.terminateExecution` then close the socket
172
- 4. Extend stored role ref metadata to optionally include `backendDOMNodeId`:
173
- - keep existing `{ role, name, nth }` behavior for Playwright actions
174
- - add `backendDOMNodeId?: number` for CDP element targeting
175
- 5. Populate `backendDOMNodeId` during snapshot creation (best-effort):
176
- - fetch AX tree via CDP (`Accessibility.getFullAXTree`)
177
- - compute `(role, name, nth) -> backendDOMNodeId` and merge into the stored ref map
178
- - if mapping is ambiguous or missing, leave the id undefined
179
- 6. Update `act:evaluate` routing:
180
- - if no `ref`: always use CDP evaluate
181
- - if `ref` resolves to a `backendDOMNodeId`: use CDP element evaluate
182
- - otherwise: fall back to Playwright evaluate (still bounded and abortable)
183
- 7. Keep the existing "last resort" recovery path as a fallback, not the default path.
184
- 8. Add tests:
185
- - stuck evaluate times out within budget and the next click/type succeeds
186
- - abort cancels evaluate (client disconnect or timeout) and unblocks subsequent actions
187
- - mapping failures cleanly fall back to Playwright
188
- 9. Add observability:
189
- - evaluate duration and timeout counters
190
- - terminateExecution usage
191
- - fallback rate (CDP -> Playwright) and reasons
192
-
193
- ### Acceptance Criteria
194
-
195
- - A deliberately hung `act:evaluate` returns within the caller budget and does not wedge the
196
- tab for later actions.
197
- - `timeoutMs` behaves consistently across CLI, agent tool, node proxy, and in-process calls.
198
- - If `ref` can be mapped to `backendDOMNodeId`, element evaluate uses CDP; otherwise the
199
- fallback path is still bounded and recoverable.
200
-
201
- ## Testing Plan
202
-
203
- - Unit tests:
204
- - `(role, name, nth)` matching logic between role refs and AX tree nodes.
205
- - Budget helper behavior (headroom, remaining time math).
206
- - Integration tests:
207
- - CDP evaluate timeout returns within budget and does not block the next action.
208
- - Abort cancels evaluate and triggers termination best-effort.
209
- - Contract tests:
210
- - Ensure `BrowserActRequest` and `BrowserActResponse` remain compatible.
211
-
212
- ## Risks And Mitigations
213
-
214
- - Mapping is imperfect:
215
- - Mitigation: best-effort mapping, fallback to Playwright evaluate, and add debug tooling.
216
- - `Runtime.terminateExecution` has side effects:
217
- - Mitigation: only use on timeout/abort and document the behavior in errors.
218
- - Extra overhead:
219
- - Mitigation: only fetch AX tree when snapshots are requested, cache per target, and keep
220
- CDP session short lived.
221
- - Extension relay limitations:
222
- - Mitigation: use browser level attach APIs when per page sockets are not available, and
223
- keep the current Playwright path as fallback.
224
-
225
- ## Open Questions
226
-
227
- - Should the new engine be configurable as `playwright`, `cdp`, or `auto`?
228
- - Do we want to expose a new "nodeRef" format for advanced users, or keep `ref` only?
229
- - How should frame snapshots and selector scoped snapshots participate in AX mapping?
@@ -1,62 +0,0 @@
1
- ---
2
- summary: "Harden cron.add input handling, align schemas, and improve cron UI/agent tooling"
3
- owner: "symi"
4
- status: "complete"
5
- last_updated: "2026-01-05"
6
- title: "Cron Add Hardening"
7
- ---
8
-
9
- # Cron Add Hardening & Schema Alignment
10
-
11
- ## Context
12
-
13
- Recent gateway logs show repeated `cron.add` failures with invalid parameters (missing `sessionTarget`, `wakeMode`, `payload`, and malformed `schedule`). This indicates that at least one client (likely the agent tool call path) is sending wrapped or partially specified job payloads. Separately, there is drift between cron provider enums in TypeScript, gateway schema, CLI flags, and UI form types, plus a UI mismatch for `cron.status` (expects `jobCount` while gateway returns `jobs`).
14
-
15
- ## Goals
16
-
17
- - Stop `cron.add` INVALID_REQUEST spam by normalizing common wrapper payloads and inferring missing `kind` fields.
18
- - Align cron provider lists across gateway schema, cron types, CLI docs, and UI forms.
19
- - Make agent cron tool schema explicit so the LLM produces correct job payloads.
20
- - Fix the Control UI cron status job count display.
21
- - Add tests to cover normalization and tool behavior.
22
-
23
- ## Non-goals
24
-
25
- - Change cron scheduling semantics or job execution behavior.
26
- - Add new schedule kinds or cron expression parsing.
27
- - Overhaul the UI/UX for cron beyond the necessary field fixes.
28
-
29
- ## Findings (current gaps)
30
-
31
- - `CronPayloadSchema` in gateway excludes `signal` + `imessage`, while TS types include them.
32
- - Control UI CronStatus expects `jobCount`, but gateway returns `jobs`.
33
- - Agent cron tool schema allows arbitrary `job` objects, enabling malformed inputs.
34
- - Gateway strictly validates `cron.add` with no normalization, so wrapped payloads fail.
35
-
36
- ## What changed
37
-
38
- - `cron.add` and `cron.update` now normalize common wrapper shapes and infer missing `kind` fields.
39
- - Agent cron tool schema matches the gateway schema, which reduces invalid payloads.
40
- - Provider enums are aligned across gateway, CLI, UI, and macOS picker.
41
- - Control UI uses the gateway’s `jobs` count field for status.
42
-
43
- ## Current behavior
44
-
45
- - **Normalization:** wrapped `data`/`job` payloads are unwrapped; `schedule.kind` and `payload.kind` are inferred when safe.
46
- - **Defaults:** safe defaults are applied for `wakeMode` and `sessionTarget` when missing.
47
-
48
- See [Cron jobs](/automation/cron-jobs) for the normalized shape and examples.
49
-
50
- ## Verification
51
-
52
- - Watch gateway logs for reduced `cron.add` INVALID_REQUEST errors.
53
- - Confirm Control UI cron status shows job count after refresh.
54
-
55
- ## Optional Follow-ups
56
-
57
- - Manual Control UI smoke: add a cron job per provider + verify status job count.
58
-
59
- ## Open Questions
60
-
61
- - Should `cron.add` accept explicit `state` from clients (currently disallowed by schema)?
62
- - Should we allow `webchat` as an explicit delivery provider (currently filtered in delivery resolution)?
@@ -1,40 +0,0 @@
1
- ---
2
- summary: "Telegram allowlist hardening: prefix + whitespace normalization"
3
- read_when:
4
- - Reviewing historical Telegram allowlist changes
5
- title: "Telegram Allowlist Hardening"
6
- ---
7
-
8
- # Telegram Allowlist Hardening
9
-
10
- **Date**: 2026-01-05
11
- **Status**: Complete
12
- **PR**: #216
13
-
14
- ## Summary
15
-
16
- Telegram allowlists now accept `telegram:` and `tg:` prefixes case-insensitively, and tolerate
17
- accidental whitespace. This aligns inbound allowlist checks with outbound send normalization.
18
-
19
- ## What changed
20
-
21
- - Prefixes `telegram:` and `tg:` are treated the same (case-insensitive).
22
- - Allowlist entries are trimmed; empty entries are ignored.
23
-
24
- ## Examples
25
-
26
- All of these are accepted for the same ID:
27
-
28
- - `telegram:123456`
29
- - `TG:123456`
30
- - `tg:123456`
31
-
32
- ## Why it matters
33
-
34
- Copy/paste from logs or chat IDs often includes prefixes and whitespace. Normalizing avoids
35
- false negatives when deciding whether to respond in DMs or groups.
36
-
37
- ## Related docs
38
-
39
- - [Group Chats](/channels/groups)
40
- - [Telegram Provider](/channels/telegram)
@@ -1,123 +0,0 @@
1
- ---
2
- summary: "Plan: Add OpenResponses /v1/responses endpoint and deprecate chat completions cleanly"
3
- owner: "symi"
4
- status: "draft"
5
- last_updated: "2026-01-19"
6
- title: "OpenResponses Gateway Plan"
7
- ---
8
-
9
- # OpenResponses Gateway Integration Plan
10
-
11
- ## Context
12
-
13
- Symi Gateway currently exposes a minimal OpenAI-compatible Chat Completions endpoint at
14
- `/v1/chat/completions` (see [OpenAI Chat Completions](/gateway/openai-http-api)).
15
-
16
- Open Responses is an open inference standard based on the OpenAI Responses API. It is designed
17
- for agentic workflows and uses item-based inputs plus semantic streaming events. The OpenResponses
18
- spec defines `/v1/responses`, not `/v1/chat/completions`.
19
-
20
- ## Goals
21
-
22
- - Add a `/v1/responses` endpoint that adheres to OpenResponses semantics.
23
- - Keep Chat Completions as a compatibility layer that is easy to disable and eventually remove.
24
- - Standardize validation and parsing with isolated, reusable schemas.
25
-
26
- ## Non-goals
27
-
28
- - Full OpenResponses feature parity in the first pass (images, files, hosted tools).
29
- - Replacing internal agent execution logic or tool orchestration.
30
- - Changing the existing `/v1/chat/completions` behavior during the first phase.
31
-
32
- ## Research Summary
33
-
34
- Sources: OpenResponses OpenAPI, OpenResponses specification site, and the Hugging Face blog post.
35
-
36
- Key points extracted:
37
-
38
- - `POST /v1/responses` accepts `CreateResponseBody` fields like `model`, `input` (string or
39
- `ItemParam[]`), `instructions`, `tools`, `tool_choice`, `stream`, `max_output_tokens`, and
40
- `max_tool_calls`.
41
- - `ItemParam` is a discriminated union of:
42
- - `message` items with roles `system`, `developer`, `user`, `assistant`
43
- - `function_call` and `function_call_output`
44
- - `reasoning`
45
- - `item_reference`
46
- - Successful responses return a `ResponseResource` with `object: "response"`, `status`, and
47
- `output` items.
48
- - Streaming uses semantic events such as:
49
- - `response.created`, `response.in_progress`, `response.completed`, `response.failed`
50
- - `response.output_item.added`, `response.output_item.done`
51
- - `response.content_part.added`, `response.content_part.done`
52
- - `response.output_text.delta`, `response.output_text.done`
53
- - The spec requires:
54
- - `Content-Type: text/event-stream`
55
- - `event:` must match the JSON `type` field
56
- - terminal event must be literal `[DONE]`
57
- - Reasoning items may expose `content`, `encrypted_content`, and `summary`.
58
- - HF examples include `OpenResponses-Version: latest` in requests (optional header).
59
-
60
- ## Proposed Architecture
61
-
62
- - Add `src/gateway/open-responses.schema.ts` containing Zod schemas only (no gateway imports).
63
- - Add `src/gateway/openresponses-http.ts` (or `open-responses-http.ts`) for `/v1/responses`.
64
- - Keep `src/gateway/openai-http.ts` intact as a legacy compatibility adapter.
65
- - Add config `gateway.http.endpoints.responses.enabled` (default `false`).
66
- - Keep `gateway.http.endpoints.chatCompletions.enabled` independent; allow both endpoints to be
67
- toggled separately.
68
- - Emit a startup warning when Chat Completions is enabled to signal legacy status.
69
-
70
- ## Deprecation Path for Chat Completions
71
-
72
- - Maintain strict module boundaries: no shared schema types between responses and chat completions.
73
- - Make Chat Completions opt-in by config so it can be disabled without code changes.
74
- - Update docs to label Chat Completions as legacy once `/v1/responses` is stable.
75
- - Optional future step: map Chat Completions requests to the Responses handler for a simpler
76
- removal path.
77
-
78
- ## Phase 1 Support Subset
79
-
80
- - Accept `input` as string or `ItemParam[]` with message roles and `function_call_output`.
81
- - Extract system and developer messages into `extraSystemPrompt`.
82
- - Use the most recent `user` or `function_call_output` as the current message for agent runs.
83
- - Reject unsupported content parts (image/file) with `invalid_request_error`.
84
- - Return a single assistant message with `output_text` content.
85
- - Return `usage` with zeroed values until token accounting is wired.
86
-
87
- ## Validation Strategy (No SDK)
88
-
89
- - Implement Zod schemas for the supported subset of:
90
- - `CreateResponseBody`
91
- - `ItemParam` + message content part unions
92
- - `ResponseResource`
93
- - Streaming event shapes used by the gateway
94
- - Keep schemas in a single, isolated module to avoid drift and allow future codegen.
95
-
96
- ## Streaming Implementation (Phase 1)
97
-
98
- - SSE lines with both `event:` and `data:`.
99
- - Required sequence (minimum viable):
100
- - `response.created`
101
- - `response.output_item.added`
102
- - `response.content_part.added`
103
- - `response.output_text.delta` (repeat as needed)
104
- - `response.output_text.done`
105
- - `response.content_part.done`
106
- - `response.completed`
107
- - `[DONE]`
108
-
109
- ## Tests and Verification Plan
110
-
111
- - Add e2e coverage for `/v1/responses`:
112
- - Auth required
113
- - Non-stream response shape
114
- - Stream event ordering and `[DONE]`
115
- - Session routing with headers and `user`
116
- - Keep `src/gateway/openai-http.e2e.test.ts` unchanged.
117
- - Manual: curl to `/v1/responses` with `stream: true` and verify event ordering and terminal
118
- `[DONE]`.
119
-
120
- ## Doc Updates (Follow-up)
121
-
122
- - Add a new docs page for `/v1/responses` usage and examples.
123
- - Update `/gateway/openai-http-api` with a legacy note and pointer to `/v1/responses`.
@@ -1,192 +0,0 @@
1
- ---
2
- summary: "Production plan for reliable interactive process supervision (PTY + non-PTY) with explicit ownership, unified lifecycle, and deterministic cleanup"
3
- owner: "symi"
4
- status: "in-progress"
5
- last_updated: "2026-02-15"
6
- title: "PTY and Process Supervision Plan"
7
- ---
8
-
9
- # PTY and Process Supervision Plan
10
-
11
- ## 1. Problem and goal
12
-
13
- We need one reliable lifecycle for long-running command execution across:
14
-
15
- - `exec` foreground runs
16
- - `exec` background runs
17
- - `process` follow up actions (`poll`, `log`, `send-keys`, `paste`, `submit`, `kill`, `remove`)
18
- - CLI agent runner subprocesses
19
-
20
- The goal is not just to support PTY. The goal is predictable ownership, cancellation, timeout, and cleanup with no unsafe process matching heuristics.
21
-
22
- ## 2. Scope and boundaries
23
-
24
- - Keep implementation internal in `src/process/supervisor`.
25
- - Do not create a new package for this.
26
- - Keep current behavior compatibility where practical.
27
- - Do not broaden scope to terminal replay or tmux style session persistence.
28
-
29
- ## 3. Implemented in this branch
30
-
31
- ### Supervisor baseline already present
32
-
33
- - Supervisor module is in place under `src/process/supervisor/*`.
34
- - Exec runtime and CLI runner are already routed through supervisor spawn and wait.
35
- - Registry finalization is idempotent.
36
-
37
- ### This pass completed
38
-
39
- 1. Explicit PTY command contract
40
-
41
- - `SpawnInput` is now a discriminated union in `src/process/supervisor/types.ts`.
42
- - PTY runs require `ptyCommand` instead of reusing generic `argv`.
43
- - Supervisor no longer rebuilds PTY command strings from argv joins in `src/process/supervisor/supervisor.ts`.
44
- - Exec runtime now passes `ptyCommand` directly in `src/agents/bash-tools.exec-runtime.ts`.
45
-
46
- 2. Process layer type decoupling
47
-
48
- - Supervisor types no longer import `SessionStdin` from agents.
49
- - Process local stdin contract lives in `src/process/supervisor/types.ts` (`ManagedRunStdin`).
50
- - Adapters now depend only on process level types:
51
- - `src/process/supervisor/adapters/child.ts`
52
- - `src/process/supervisor/adapters/pty.ts`
53
-
54
- 3. Process tool lifecycle ownership improvement
55
-
56
- - `src/agents/bash-tools.process.ts` now requests cancellation through supervisor first.
57
- - `process kill/remove` now use process-tree fallback termination when supervisor lookup misses.
58
- - `remove` keeps deterministic remove behavior by dropping running session entries immediately after termination is requested.
59
-
60
- 4. Single source watchdog defaults
61
-
62
- - Added shared defaults in `src/agents/cli-watchdog-defaults.ts`.
63
- - `src/agents/cli-backends.ts` consumes the shared defaults.
64
- - `src/agents/cli-runner/reliability.ts` consumes the same shared defaults.
65
-
66
- 5. Dead helper cleanup
67
-
68
- - Removed unused `killSession` helper path from `src/agents/bash-tools.shared.ts`.
69
-
70
- 6. Direct supervisor path tests added
71
-
72
- - Added `src/agents/bash-tools.process.supervisor.test.ts` to cover kill and remove routing through supervisor cancellation.
73
-
74
- 7. Reliability gap fixes completed
75
-
76
- - `src/agents/bash-tools.process.ts` now falls back to real OS-level process termination when supervisor lookup misses.
77
- - `src/process/supervisor/adapters/child.ts` now uses process-tree termination semantics for default cancel/timeout kill paths.
78
- - Added shared process-tree utility in `src/process/kill-tree.ts`.
79
-
80
- 8. PTY contract edge-case coverage added
81
-
82
- - Added `src/process/supervisor/supervisor.pty-command.test.ts` for verbatim PTY command forwarding and empty-command rejection.
83
- - Added `src/process/supervisor/adapters/child.test.ts` for process-tree kill behavior in child adapter cancellation.
84
-
85
- ## 4. Remaining gaps and decisions
86
-
87
- ### Reliability status
88
-
89
- The two required reliability gaps for this pass are now closed:
90
-
91
- - `process kill/remove` now has a real OS termination fallback when supervisor lookup misses.
92
- - child cancel/timeout now uses process-tree kill semantics for default kill path.
93
- - Regression tests were added for both behaviors.
94
-
95
- ### Durability and startup reconciliation
96
-
97
- Restart behavior is now explicitly defined as in-memory lifecycle only.
98
-
99
- - `reconcileOrphans()` remains a no-op in `src/process/supervisor/supervisor.ts` by design.
100
- - Active runs are not recovered after process restart.
101
- - This boundary is intentional for this implementation pass to avoid partial persistence risks.
102
-
103
- ### Maintainability follow-ups
104
-
105
- 1. `runExecProcess` in `src/agents/bash-tools.exec-runtime.ts` still handles multiple responsibilities and can be split into focused helpers in a follow-up.
106
-
107
- ## 5. Implementation plan
108
-
109
- The implementation pass for required reliability and contract items is complete.
110
-
111
- Completed:
112
-
113
- - `process kill/remove` fallback real termination
114
- - process-tree cancellation for child adapter default kill path
115
- - regression tests for fallback kill and child adapter kill path
116
- - PTY command edge-case tests under explicit `ptyCommand`
117
- - explicit in-memory restart boundary with `reconcileOrphans()` no-op by design
118
-
119
- Optional follow-up:
120
-
121
- - split `runExecProcess` into focused helpers with no behavior drift
122
-
123
- ## 6. File map
124
-
125
- ### Process supervisor
126
-
127
- - `src/process/supervisor/types.ts` updated with discriminated spawn input and process local stdin contract.
128
- - `src/process/supervisor/supervisor.ts` updated to use explicit `ptyCommand`.
129
- - `src/process/supervisor/adapters/child.ts` and `src/process/supervisor/adapters/pty.ts` decoupled from agent types.
130
- - `src/process/supervisor/registry.ts` idempotent finalize unchanged and retained.
131
-
132
- ### Exec and process integration
133
-
134
- - `src/agents/bash-tools.exec-runtime.ts` updated to pass PTY command explicitly and keep fallback path.
135
- - `src/agents/bash-tools.process.ts` updated to cancel via supervisor with real process-tree fallback termination.
136
- - `src/agents/bash-tools.shared.ts` removed direct kill helper path.
137
-
138
- ### CLI reliability
139
-
140
- - `src/agents/cli-watchdog-defaults.ts` added as shared baseline.
141
- - `src/agents/cli-backends.ts` and `src/agents/cli-runner/reliability.ts` now consume same defaults.
142
-
143
- ## 7. Validation run in this pass
144
-
145
- Unit tests:
146
-
147
- - `pnpm vitest src/process/supervisor/registry.test.ts`
148
- - `pnpm vitest src/process/supervisor/supervisor.test.ts`
149
- - `pnpm vitest src/process/supervisor/supervisor.pty-command.test.ts`
150
- - `pnpm vitest src/process/supervisor/adapters/child.test.ts`
151
- - `pnpm vitest src/agents/cli-backends.test.ts`
152
- - `pnpm vitest src/agents/bash-tools.exec.pty-cleanup.test.ts`
153
- - `pnpm vitest src/agents/bash-tools.process.poll-timeout.test.ts`
154
- - `pnpm vitest src/agents/bash-tools.process.supervisor.test.ts`
155
- - `pnpm vitest src/process/exec.test.ts`
156
-
157
- E2E targets:
158
-
159
- - `pnpm test:e2e src/agents/cli-runner.e2e.test.ts`
160
- - `pnpm test:e2e src/agents/bash-tools.exec.pty-fallback.e2e.test.ts src/agents/bash-tools.exec.background-abort.e2e.test.ts src/agents/bash-tools.process.send-keys.e2e.test.ts`
161
-
162
- Typecheck note:
163
-
164
- - `pnpm tsgo` currently fails in this repo due to a pre-existing UI typing dependency issue (`@vitest/browser-playwright` resolution), unrelated to this process supervision work.
165
-
166
- ## 8. Operational guarantees preserved
167
-
168
- - Exec env hardening behavior is unchanged.
169
- - Approval and allowlist flow is unchanged.
170
- - Output sanitization and output caps are unchanged.
171
- - PTY adapter still guarantees wait settlement on forced kill and listener disposal.
172
-
173
- ## 9. Definition of done
174
-
175
- 1. Supervisor is lifecycle owner for managed runs.
176
- 2. PTY spawn uses explicit command contract with no argv reconstruction.
177
- 3. Process layer has no type dependency on agent layer for supervisor stdin contracts.
178
- 4. Watchdog defaults are single source.
179
- 5. Targeted unit and e2e tests remain green.
180
- 6. Restart durability boundary is explicitly documented or fully implemented.
181
-
182
- ## 10. Summary
183
-
184
- The branch now has a coherent and safer supervision shape:
185
-
186
- - explicit PTY contract
187
- - cleaner process layering
188
- - supervisor driven cancellation path for process operations
189
- - real fallback termination when supervisor lookup misses
190
- - process-tree cancellation for child-run default kill paths
191
- - unified watchdog defaults
192
- - explicit in-memory restart boundary (no orphan reconciliation across restart in this pass)