@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,998 +0,0 @@
1
- ---
2
- summary: "Hooks: event-driven automation for commands and lifecycle events"
3
- read_when:
4
- - You want event-driven automation for /new, /reset, /stop, and agent lifecycle events
5
- - You want to build, install, or debug hooks
6
- title: "Hooks"
7
- ---
8
-
9
- # Hooks
10
-
11
- Hooks provide an extensible event-driven system for automating actions in response to agent commands and events. Hooks are automatically discovered from directories and can be managed via CLI commands, similar to how skills work in Symi.
12
-
13
- ## Getting Oriented
14
-
15
- Hooks are small scripts that run when something happens. There are two kinds:
16
-
17
- - **Hooks** (this page): run inside the Gateway when agent events fire, like `/new`, `/reset`, `/stop`, or lifecycle events.
18
- - **Webhooks**: external HTTP webhooks that let other systems trigger work in Symi. See [Webhook Hooks](/automation/webhook) or use `symi webhooks` for Gmail helper commands.
19
-
20
- Hooks can also be bundled inside plugins; see [Plugins](/tools/plugin#plugin-hooks).
21
-
22
- Common uses:
23
-
24
- - Save a memory snapshot when you reset a session
25
- - Keep an audit trail of commands for troubleshooting or compliance
26
- - Trigger follow-up automation when a session starts or ends
27
- - Write files into the agent workspace or call external APIs when events fire
28
-
29
- If you can write a small TypeScript function, you can write a hook. Hooks are discovered automatically, and you enable or disable them via the CLI.
30
-
31
- ## Overview
32
-
33
- The hooks system allows you to:
34
-
35
- - Save session context to memory when `/new` is issued
36
- - Log all commands for auditing
37
- - Trigger custom automations on agent lifecycle events
38
- - Extend Symi's behavior without modifying core code
39
-
40
- ## Getting Started
41
-
42
- ### Bundled Hooks
43
-
44
- Symi ships with four bundled hooks that are automatically discovered:
45
-
46
- - **💾 session-memory**: Saves session context to your agent workspace (default `~/.symi/workspace/memory/`) when you issue `/new`
47
- - **📎 bootstrap-extra-files**: Injects additional workspace bootstrap files from configured glob/path patterns during `agent:bootstrap`
48
- - **📝 command-logger**: Logs all command events to `~/.symi/logs/commands.log`
49
- - **🚀 boot-md**: Runs `BOOT.md` when the gateway starts (requires internal hooks enabled)
50
-
51
- List available hooks:
52
-
53
- ```bash
54
- symi hooks list
55
- ```
56
-
57
- Enable a hook:
58
-
59
- ```bash
60
- symi hooks enable session-memory
61
- ```
62
-
63
- Check hook status:
64
-
65
- ```bash
66
- symi hooks check
67
- ```
68
-
69
- Get detailed information:
70
-
71
- ```bash
72
- symi hooks info session-memory
73
- ```
74
-
75
- ### Onboarding
76
-
77
- During onboarding (`symi onboard`), you'll be prompted to enable recommended hooks. The wizard automatically discovers eligible hooks and presents them for selection.
78
-
79
- ## Hook Discovery
80
-
81
- Hooks are automatically discovered from three directories (in order of precedence):
82
-
83
- 1. **Workspace hooks**: `<workspace>/hooks/` (per-agent, highest precedence)
84
- 2. **Managed hooks**: `~/.symi/hooks/` (user-installed, shared across workspaces)
85
- 3. **Bundled hooks**: `<symi>/dist/hooks/bundled/` (shipped with Symi)
86
-
87
- Managed hook directories can be either a **single hook** or a **hook pack** (package directory).
88
-
89
- Each hook is a directory containing:
90
-
91
- ```
92
- my-hook/
93
- ├── HOOK.md # Metadata + documentation
94
- └── handler.ts # Handler implementation
95
- ```
96
-
97
- ## Hook Packs (npm/archives)
98
-
99
- Hook packs are standard npm packages that export one or more hooks via `symi.hooks` in
100
- `package.json`. Install them with:
101
-
102
- ```bash
103
- symi hooks install <path-or-spec>
104
- ```
105
-
106
- Npm specs are registry-only (package name + optional version/tag). Git/URL/file specs are rejected.
107
-
108
- Example `package.json`:
109
-
110
- ```json
111
- {
112
- "name": "@acme/my-hooks",
113
- "version": "0.1.0",
114
- "symi": {
115
- "hooks": ["./hooks/my-hook", "./hooks/other-hook"]
116
- }
117
- }
118
- ```
119
-
120
- Each entry points to a hook directory containing `HOOK.md` and `handler.ts` (or `index.ts`).
121
- Hook packs can ship dependencies; they will be installed under `~/.symi/hooks/<id>`.
122
- Each `symi.hooks` entry must stay inside the package directory after symlink
123
- resolution; entries that escape are rejected.
124
-
125
- Security note: `symi hooks install` installs dependencies with `npm install --ignore-scripts`
126
- (no lifecycle scripts). Keep hook pack dependency trees "pure JS/TS" and avoid packages that rely
127
- on `postinstall` builds.
128
-
129
- ## Hook Structure
130
-
131
- ### HOOK.md Format
132
-
133
- The `HOOK.md` file contains metadata in YAML frontmatter plus Markdown documentation:
134
-
135
- ```markdown
136
- ---
137
- name: my-hook
138
- description: "Short description of what this hook does"
139
- homepage: https://docs.symi.ai/automation/hooks#my-hook
140
- metadata: { "symi": { "emoji": "🔗", "events": ["command:new"], "requires": { "bins": ["node"] } } }
141
- ---
142
-
143
- # My Hook
144
-
145
- Detailed documentation goes here...
146
-
147
- ## What It Does
148
-
149
- - Listens for `/new` commands
150
- - Performs some action
151
- - Logs the result
152
-
153
- ## Requirements
154
-
155
- - Node.js must be installed
156
-
157
- ## Configuration
158
-
159
- No configuration needed.
160
- ```
161
-
162
- ### Metadata Fields
163
-
164
- The `metadata.symi` object supports:
165
-
166
- - **`emoji`**: Display emoji for CLI (e.g., `"💾"`)
167
- - **`events`**: Array of events to listen for (e.g., `["command:new", "command:reset"]`)
168
- - **`export`**: Named export to use (defaults to `"default"`)
169
- - **`homepage`**: Documentation URL
170
- - **`requires`**: Optional requirements
171
- - **`bins`**: Required binaries on PATH (e.g., `["git", "node"]`)
172
- - **`anyBins`**: At least one of these binaries must be present
173
- - **`env`**: Required environment variables
174
- - **`config`**: Required config paths (e.g., `["workspace.dir"]`)
175
- - **`os`**: Required platforms (e.g., `["darwin", "linux"]`)
176
- - **`always`**: Bypass eligibility checks (boolean)
177
- - **`install`**: Installation methods (for bundled hooks: `[{"id":"bundled","kind":"bundled"}]`)
178
-
179
- ### Handler Implementation
180
-
181
- The `handler.ts` file exports a `HookHandler` function:
182
-
183
- ```typescript
184
- import type { HookHandler } from "../../src/hooks/hooks.js";
185
-
186
- const myHandler: HookHandler = async (event) => {
187
- // Only trigger on 'new' command
188
- if (event.type !== "command" || event.action !== "new") {
189
- return;
190
- }
191
-
192
- console.log(`[my-hook] New command triggered`);
193
- console.log(` Session: ${event.sessionKey}`);
194
- console.log(` Timestamp: ${event.timestamp.toISOString()}`);
195
-
196
- // Your custom logic here
197
-
198
- // Optionally send message to user
199
- event.messages.push("✨ My hook executed!");
200
- };
201
-
202
- export default myHandler;
203
- ```
204
-
205
- #### Event Context
206
-
207
- Each event includes:
208
-
209
- ```typescript
210
- {
211
- type: 'command' | 'session' | 'agent' | 'gateway' | 'message',
212
- action: string, // e.g., 'new', 'reset', 'stop', 'received', 'sent'
213
- sessionKey: string, // Session identifier
214
- timestamp: Date, // When the event occurred
215
- messages: string[], // Push messages here to send to user
216
- context: {
217
- // Command events:
218
- sessionEntry?: SessionEntry,
219
- sessionId?: string,
220
- sessionFile?: string,
221
- commandSource?: string, // e.g., 'whatsapp', 'telegram'
222
- senderId?: string,
223
- workspaceDir?: string,
224
- bootstrapFiles?: WorkspaceBootstrapFile[],
225
- cfg?: SymiConfig,
226
- // Message events (see Message Events section for full details):
227
- from?: string, // message:received
228
- to?: string, // message:sent
229
- content?: string,
230
- channelId?: string,
231
- success?: boolean, // message:sent
232
- }
233
- }
234
- ```
235
-
236
- ## Event Types
237
-
238
- ### Command Events
239
-
240
- Triggered when agent commands are issued:
241
-
242
- - **`command`**: All command events (general listener)
243
- - **`command:new`**: When `/new` command is issued
244
- - **`command:reset`**: When `/reset` command is issued
245
- - **`command:stop`**: When `/stop` command is issued
246
-
247
- ### Agent Events
248
-
249
- - **`agent:bootstrap`**: Before workspace bootstrap files are injected (hooks may mutate `context.bootstrapFiles`)
250
-
251
- ### Gateway Events
252
-
253
- Triggered when the gateway starts:
254
-
255
- - **`gateway:startup`**: After channels start and hooks are loaded
256
-
257
- ### Message Events
258
-
259
- Triggered when messages are received or sent:
260
-
261
- - **`message`**: All message events (general listener)
262
- - **`message:received`**: When an inbound message is received from any channel
263
- - **`message:sent`**: When an outbound message is successfully sent
264
-
265
- #### Message Event Context
266
-
267
- Message events include rich context about the message:
268
-
269
- ```typescript
270
- // message:received context
271
- {
272
- from: string, // Sender identifier (phone number, user ID, etc.)
273
- content: string, // Message content
274
- timestamp?: number, // Unix timestamp when received
275
- accountId?: string, // Provider account ID for multi-account setups
276
- conversationId?: string, // Chat/conversation ID
277
- messageId?: string, // Message ID from the provider
278
- metadata?: { // Additional provider-specific data
279
- to?: string,
280
- provider?: string,
281
- surface?: string,
282
- threadId?: string,
283
- senderId?: string,
284
- senderName?: string,
285
- senderUsername?: string,
286
- senderE164?: string,
287
- }
288
- }
289
-
290
- // message:sent context
291
- {
292
- to: string, // Recipient identifier
293
- content: string, // Message content that was sent
294
- success: boolean, // Whether the send succeeded
295
- error?: string, // Error message if sending failed
296
- accountId?: string, // Provider account ID
297
- conversationId?: string, // Chat/conversation ID
298
- messageId?: string, // Message ID returned by the provider
299
- }
300
- ```
301
-
302
- #### Example: Message Logger Hook
303
-
304
- ```typescript
305
- import type { HookHandler } from "../../src/hooks/hooks.js";
306
- import { isMessageReceivedEvent, isMessageSentEvent } from "../../src/hooks/internal-hooks.js";
307
-
308
- const handler: HookHandler = async (event) => {
309
- if (isMessageReceivedEvent(event)) {
310
- console.log(`[message-logger] Received from ${event.context.from}: ${event.context.content}`);
311
- } else if (isMessageSentEvent(event)) {
312
- console.log(`[message-logger] Sent to ${event.context.to}: ${event.context.content}`);
313
- }
314
- };
315
-
316
- export default handler;
317
- ```
318
-
319
- ### Tool Result Hooks (Plugin API)
320
-
321
- These hooks are not event-stream listeners; they let plugins synchronously adjust tool results before Symi persists them.
322
-
323
- - **`tool_result_persist`**: transform tool results before they are written to the session transcript. Must be synchronous; return the updated tool result payload or `undefined` to keep it as-is. See [Agent Loop](/concepts/agent-loop).
324
-
325
- ### Future Events
326
-
327
- Planned event types:
328
-
329
- - **`session:start`**: When a new session begins
330
- - **`session:end`**: When a session ends
331
- - **`agent:error`**: When an agent encounters an error
332
-
333
- ## Creating Custom Hooks
334
-
335
- ### 1. Choose Location
336
-
337
- - **Workspace hooks** (`<workspace>/hooks/`): Per-agent, highest precedence
338
- - **Managed hooks** (`~/.symi/hooks/`): Shared across workspaces
339
-
340
- ### 2. Create Directory Structure
341
-
342
- ```bash
343
- mkdir -p ~/.symi/hooks/my-hook
344
- cd ~/.symi/hooks/my-hook
345
- ```
346
-
347
- ### 3. Create HOOK.md
348
-
349
- ```markdown
350
- ---
351
- name: my-hook
352
- description: "Does something useful"
353
- metadata: { "symi": { "emoji": "🎯", "events": ["command:new"] } }
354
- ---
355
-
356
- # My Custom Hook
357
-
358
- This hook does something useful when you issue `/new`.
359
- ```
360
-
361
- ### 4. Create handler.ts
362
-
363
- ```typescript
364
- import type { HookHandler } from "../../src/hooks/hooks.js";
365
-
366
- const handler: HookHandler = async (event) => {
367
- if (event.type !== "command" || event.action !== "new") {
368
- return;
369
- }
370
-
371
- console.log("[my-hook] Running!");
372
- // Your logic here
373
- };
374
-
375
- export default handler;
376
- ```
377
-
378
- ### 5. Enable and Test
379
-
380
- ```bash
381
- # Verify hook is discovered
382
- symi hooks list
383
-
384
- # Enable it
385
- symi hooks enable my-hook
386
-
387
- # Restart your gateway process (menu bar app restart on macOS, or restart your dev process)
388
-
389
- # Trigger the event
390
- # Send /new via your messaging channel
391
- ```
392
-
393
- ## Configuration
394
-
395
- ### New Config Format (Recommended)
396
-
397
- ```json
398
- {
399
- "hooks": {
400
- "internal": {
401
- "enabled": true,
402
- "entries": {
403
- "session-memory": { "enabled": true },
404
- "command-logger": { "enabled": false }
405
- }
406
- }
407
- }
408
- }
409
- ```
410
-
411
- ### Per-Hook Configuration
412
-
413
- Hooks can have custom configuration:
414
-
415
- ```json
416
- {
417
- "hooks": {
418
- "internal": {
419
- "enabled": true,
420
- "entries": {
421
- "my-hook": {
422
- "enabled": true,
423
- "env": {
424
- "MY_CUSTOM_VAR": "value"
425
- }
426
- }
427
- }
428
- }
429
- }
430
- }
431
- ```
432
-
433
- ### Extra Directories
434
-
435
- Load hooks from additional directories:
436
-
437
- ```json
438
- {
439
- "hooks": {
440
- "internal": {
441
- "enabled": true,
442
- "load": {
443
- "extraDirs": ["/path/to/more/hooks"]
444
- }
445
- }
446
- }
447
- }
448
- ```
449
-
450
- ### Legacy Config Format (Still Supported)
451
-
452
- The old config format still works for backwards compatibility:
453
-
454
- ```json
455
- {
456
- "hooks": {
457
- "internal": {
458
- "enabled": true,
459
- "handlers": [
460
- {
461
- "event": "command:new",
462
- "module": "./hooks/handlers/my-handler.ts",
463
- "export": "default"
464
- }
465
- ]
466
- }
467
- }
468
- }
469
- ```
470
-
471
- Note: `module` must be a workspace-relative path. Absolute paths and traversal outside the workspace are rejected.
472
-
473
- **Migration**: Use the new discovery-based system for new hooks. Legacy handlers are loaded after directory-based hooks.
474
-
475
- ## CLI Commands
476
-
477
- ### List Hooks
478
-
479
- ```bash
480
- # List all hooks
481
- symi hooks list
482
-
483
- # Show only eligible hooks
484
- symi hooks list --eligible
485
-
486
- # Verbose output (show missing requirements)
487
- symi hooks list --verbose
488
-
489
- # JSON output
490
- symi hooks list --json
491
- ```
492
-
493
- ### Hook Information
494
-
495
- ```bash
496
- # Show detailed info about a hook
497
- symi hooks info session-memory
498
-
499
- # JSON output
500
- symi hooks info session-memory --json
501
- ```
502
-
503
- ### Check Eligibility
504
-
505
- ```bash
506
- # Show eligibility summary
507
- symi hooks check
508
-
509
- # JSON output
510
- symi hooks check --json
511
- ```
512
-
513
- ### Enable/Disable
514
-
515
- ```bash
516
- # Enable a hook
517
- symi hooks enable session-memory
518
-
519
- # Disable a hook
520
- symi hooks disable command-logger
521
- ```
522
-
523
- ## Bundled hook reference
524
-
525
- ### session-memory
526
-
527
- Saves session context to memory when you issue `/new`.
528
-
529
- **Events**: `command:new`
530
-
531
- **Requirements**: `workspace.dir` must be configured
532
-
533
- **Output**: `<workspace>/memory/YYYY-MM-DD-slug.md` (defaults to `~/.symi/workspace`)
534
-
535
- **What it does**:
536
-
537
- 1. Uses the pre-reset session entry to locate the correct transcript
538
- 2. Extracts the last 15 lines of conversation
539
- 3. Uses LLM to generate a descriptive filename slug
540
- 4. Saves session metadata to a dated memory file
541
-
542
- **Example output**:
543
-
544
- ```markdown
545
- # Session: 2026-01-16 14:30:00 UTC
546
-
547
- - **Session Key**: agent:main:main
548
- - **Session ID**: abc123def456
549
- - **Source**: telegram
550
- ```
551
-
552
- **Filename examples**:
553
-
554
- - `2026-01-16-vendor-pitch.md`
555
- - `2026-01-16-api-design.md`
556
- - `2026-01-16-1430.md` (fallback timestamp if slug generation fails)
557
-
558
- **Enable**:
559
-
560
- ```bash
561
- symi hooks enable session-memory
562
- ```
563
-
564
- ### bootstrap-extra-files
565
-
566
- Injects additional bootstrap files (for example monorepo-local `AGENTS.md` / `TOOLS.md`) during `agent:bootstrap`.
567
-
568
- **Events**: `agent:bootstrap`
569
-
570
- **Requirements**: `workspace.dir` must be configured
571
-
572
- **Output**: No files written; bootstrap context is modified in-memory only.
573
-
574
- **Config**:
575
-
576
- ```json
577
- {
578
- "hooks": {
579
- "internal": {
580
- "enabled": true,
581
- "entries": {
582
- "bootstrap-extra-files": {
583
- "enabled": true,
584
- "paths": ["packages/*/AGENTS.md", "packages/*/TOOLS.md"]
585
- }
586
- }
587
- }
588
- }
589
- }
590
- ```
591
-
592
- **Notes**:
593
-
594
- - Paths are resolved relative to workspace.
595
- - Files must stay inside workspace (realpath-checked).
596
- - Only recognized bootstrap basenames are loaded.
597
- - Subagent allowlist is preserved (`AGENTS.md` and `TOOLS.md` only).
598
-
599
- **Enable**:
600
-
601
- ```bash
602
- symi hooks enable bootstrap-extra-files
603
- ```
604
-
605
- ### command-logger
606
-
607
- Logs all command events to a centralized audit file.
608
-
609
- **Events**: `command`
610
-
611
- **Requirements**: None
612
-
613
- **Output**: `~/.symi/logs/commands.log`
614
-
615
- **What it does**:
616
-
617
- 1. Captures event details (command action, timestamp, session key, sender ID, source)
618
- 2. Appends to log file in JSONL format
619
- 3. Runs silently in the background
620
-
621
- **Example log entries**:
622
-
623
- ```jsonl
624
- {"timestamp":"2026-01-16T14:30:00.000Z","action":"new","sessionKey":"agent:main:main","senderId":"+1234567890","source":"telegram"}
625
- {"timestamp":"2026-01-16T15:45:22.000Z","action":"stop","sessionKey":"agent:main:main","senderId":"user@example.com","source":"whatsapp"}
626
- ```
627
-
628
- **View logs**:
629
-
630
- ```bash
631
- # View recent commands
632
- tail -n 20 ~/.symi/logs/commands.log
633
-
634
- # Pretty-print with jq
635
- cat ~/.symi/logs/commands.log | jq .
636
-
637
- # Filter by action
638
- grep '"action":"new"' ~/.symi/logs/commands.log | jq .
639
- ```
640
-
641
- **Enable**:
642
-
643
- ```bash
644
- symi hooks enable command-logger
645
- ```
646
-
647
- ### boot-md
648
-
649
- Runs `BOOT.md` when the gateway starts (after channels start).
650
- Internal hooks must be enabled for this to run.
651
-
652
- **Events**: `gateway:startup`
653
-
654
- **Requirements**: `workspace.dir` must be configured
655
-
656
- **What it does**:
657
-
658
- 1. Reads `BOOT.md` from your workspace
659
- 2. Runs the instructions via the agent runner
660
- 3. Sends any requested outbound messages via the message tool
661
-
662
- **Enable**:
663
-
664
- ```bash
665
- symi hooks enable boot-md
666
- ```
667
-
668
- ## Best Practices
669
-
670
- ### Keep Handlers Fast
671
-
672
- Hooks run during command processing. Keep them lightweight:
673
-
674
- ```typescript
675
- // ✓ Good - async work, returns immediately
676
- const handler: HookHandler = async (event) => {
677
- void processInBackground(event); // Fire and forget
678
- };
679
-
680
- // ✗ Bad - blocks command processing
681
- const handler: HookHandler = async (event) => {
682
- await slowDatabaseQuery(event);
683
- await evenSlowerAPICall(event);
684
- };
685
- ```
686
-
687
- ### Handle Errors Gracefully
688
-
689
- Always wrap risky operations:
690
-
691
- ```typescript
692
- const handler: HookHandler = async (event) => {
693
- try {
694
- await riskyOperation(event);
695
- } catch (err) {
696
- console.error("[my-handler] Failed:", err instanceof Error ? err.message : String(err));
697
- // Don't throw - let other handlers run
698
- }
699
- };
700
- ```
701
-
702
- ### Filter Events Early
703
-
704
- Return early if the event isn't relevant:
705
-
706
- ```typescript
707
- const handler: HookHandler = async (event) => {
708
- // Only handle 'new' commands
709
- if (event.type !== "command" || event.action !== "new") {
710
- return;
711
- }
712
-
713
- // Your logic here
714
- };
715
- ```
716
-
717
- ### Use Specific Event Keys
718
-
719
- Specify exact events in metadata when possible:
720
-
721
- ```yaml
722
- metadata: { "symi": { "events": ["command:new"] } } # Specific
723
- ```
724
-
725
- Rather than:
726
-
727
- ```yaml
728
- metadata: { "symi": { "events": ["command"] } } # General - more overhead
729
- ```
730
-
731
- ## Debugging
732
-
733
- ### Enable Hook Logging
734
-
735
- The gateway logs hook loading at startup:
736
-
737
- ```
738
- Registered hook: session-memory -> command:new
739
- Registered hook: bootstrap-extra-files -> agent:bootstrap
740
- Registered hook: command-logger -> command
741
- Registered hook: boot-md -> gateway:startup
742
- ```
743
-
744
- ### Check Discovery
745
-
746
- List all discovered hooks:
747
-
748
- ```bash
749
- symi hooks list --verbose
750
- ```
751
-
752
- ### Check Registration
753
-
754
- In your handler, log when it's called:
755
-
756
- ```typescript
757
- const handler: HookHandler = async (event) => {
758
- console.log("[my-handler] Triggered:", event.type, event.action);
759
- // Your logic
760
- };
761
- ```
762
-
763
- ### Verify Eligibility
764
-
765
- Check why a hook isn't eligible:
766
-
767
- ```bash
768
- symi hooks info my-hook
769
- ```
770
-
771
- Look for missing requirements in the output.
772
-
773
- ## Testing
774
-
775
- ### Gateway Logs
776
-
777
- Monitor gateway logs to see hook execution:
778
-
779
- ```bash
780
- # macOS
781
- ./scripts/symilog.sh -f
782
-
783
- # Other platforms
784
- tail -f ~/.symi/gateway.log
785
- ```
786
-
787
- ### Test Hooks Directly
788
-
789
- Test your handlers in isolation:
790
-
791
- ```typescript
792
- import { test } from "vitest";
793
- import { createHookEvent } from "./src/hooks/hooks.js";
794
- import myHandler from "./hooks/my-hook/handler.js";
795
-
796
- test("my handler works", async () => {
797
- const event = createHookEvent("command", "new", "test-session", {
798
- foo: "bar",
799
- });
800
-
801
- await myHandler(event);
802
-
803
- // Assert side effects
804
- });
805
- ```
806
-
807
- ## Architecture
808
-
809
- ### Core Components
810
-
811
- - **`src/hooks/types.ts`**: Type definitions
812
- - **`src/hooks/workspace.ts`**: Directory scanning and loading
813
- - **`src/hooks/frontmatter.ts`**: HOOK.md metadata parsing
814
- - **`src/hooks/config.ts`**: Eligibility checking
815
- - **`src/hooks/hooks-status.ts`**: Status reporting
816
- - **`src/hooks/loader.ts`**: Dynamic module loader
817
- - **`src/cli/hooks-cli.ts`**: CLI commands
818
- - **`src/gateway/server-startup.ts`**: Loads hooks at gateway start
819
- - **`src/auto-reply/reply/commands-core.ts`**: Triggers command events
820
-
821
- ### Discovery Flow
822
-
823
- ```
824
- Gateway startup
825
-
826
- Scan directories (workspace → managed → bundled)
827
-
828
- Parse HOOK.md files
829
-
830
- Check eligibility (bins, env, config, os)
831
-
832
- Load handlers from eligible hooks
833
-
834
- Register handlers for events
835
- ```
836
-
837
- ### Event Flow
838
-
839
- ```
840
- User sends /new
841
-
842
- Command validation
843
-
844
- Create hook event
845
-
846
- Trigger hook (all registered handlers)
847
-
848
- Command processing continues
849
-
850
- Session reset
851
- ```
852
-
853
- ## Troubleshooting
854
-
855
- ### Hook Not Discovered
856
-
857
- 1. Check directory structure:
858
-
859
- ```bash
860
- ls -la ~/.symi/hooks/my-hook/
861
- # Should show: HOOK.md, handler.ts
862
- ```
863
-
864
- 2. Verify HOOK.md format:
865
-
866
- ```bash
867
- cat ~/.symi/hooks/my-hook/HOOK.md
868
- # Should have YAML frontmatter with name and metadata
869
- ```
870
-
871
- 3. List all discovered hooks:
872
-
873
- ```bash
874
- symi hooks list
875
- ```
876
-
877
- ### Hook Not Eligible
878
-
879
- Check requirements:
880
-
881
- ```bash
882
- symi hooks info my-hook
883
- ```
884
-
885
- Look for missing:
886
-
887
- - Binaries (check PATH)
888
- - Environment variables
889
- - Config values
890
- - OS compatibility
891
-
892
- ### Hook Not Executing
893
-
894
- 1. Verify hook is enabled:
895
-
896
- ```bash
897
- symi hooks list
898
- # Should show ✓ next to enabled hooks
899
- ```
900
-
901
- 2. Restart your gateway process so hooks reload.
902
-
903
- 3. Check gateway logs for errors:
904
-
905
- ```bash
906
- ./scripts/symilog.sh | grep hook
907
- ```
908
-
909
- ### Handler Errors
910
-
911
- Check for TypeScript/import errors:
912
-
913
- ```bash
914
- # Test import directly
915
- node -e "import('./path/to/handler.ts').then(console.log)"
916
- ```
917
-
918
- ## Migration Guide
919
-
920
- ### From Legacy Config to Discovery
921
-
922
- **Before**:
923
-
924
- ```json
925
- {
926
- "hooks": {
927
- "internal": {
928
- "enabled": true,
929
- "handlers": [
930
- {
931
- "event": "command:new",
932
- "module": "./hooks/handlers/my-handler.ts"
933
- }
934
- ]
935
- }
936
- }
937
- }
938
- ```
939
-
940
- **After**:
941
-
942
- 1. Create hook directory:
943
-
944
- ```bash
945
- mkdir -p ~/.symi/hooks/my-hook
946
- mv ./hooks/handlers/my-handler.ts ~/.symi/hooks/my-hook/handler.ts
947
- ```
948
-
949
- 2. Create HOOK.md:
950
-
951
- ```markdown
952
- ---
953
- name: my-hook
954
- description: "My custom hook"
955
- metadata: { "symi": { "emoji": "🎯", "events": ["command:new"] } }
956
- ---
957
-
958
- # My Hook
959
-
960
- Does something useful.
961
- ```
962
-
963
- 3. Update config:
964
-
965
- ```json
966
- {
967
- "hooks": {
968
- "internal": {
969
- "enabled": true,
970
- "entries": {
971
- "my-hook": { "enabled": true }
972
- }
973
- }
974
- }
975
- }
976
- ```
977
-
978
- 4. Verify and restart your gateway process:
979
-
980
- ```bash
981
- symi hooks list
982
- # Should show: 🎯 my-hook ✓
983
- ```
984
-
985
- **Benefits of migration**:
986
-
987
- - Automatic discovery
988
- - CLI management
989
- - Eligibility checking
990
- - Better documentation
991
- - Consistent structure
992
-
993
- ## See Also
994
-
995
- - [CLI Reference: hooks](/cli/hooks)
996
- - [Bundled Hooks README](https://github.com/symi/symi/tree/main/src/hooks/bundled)
997
- - [Webhook Hooks](/automation/webhook)
998
- - [Configuration](/gateway/configuration#hooks)