saeeol 1.4.2 → 1.4.3

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 (1603) hide show
  1. package/bin/saeeol +51 -172
  2. package/package.json +47 -203
  3. package/{npm/postinstall.js → postinstall.js} +1 -1
  4. package/AGENTS.md +0 -72
  5. package/BUN_SHELL_MIGRATION_PLAN.md +0 -136
  6. package/Dockerfile +0 -18
  7. package/README.md +0 -51
  8. package/assets/saeeol.ico +0 -0
  9. package/bin/saeeol.cjs +0 -206
  10. package/bunfig.toml +0 -7
  11. package/database.db +0 -0
  12. package/drizzle.config.ts +0 -10
  13. package/git +0 -0
  14. package/migration/20260127222353_familiar_lady_ursula/migration.sql +0 -90
  15. package/migration/20260127222353_familiar_lady_ursula/snapshot.json +0 -796
  16. package/migration/20260211171708_add_project_commands/migration.sql +0 -1
  17. package/migration/20260211171708_add_project_commands/snapshot.json +0 -806
  18. package/migration/20260213144116_wakeful_the_professor/migration.sql +0 -11
  19. package/migration/20260213144116_wakeful_the_professor/snapshot.json +0 -897
  20. package/migration/20260225215848_workspace/migration.sql +0 -7
  21. package/migration/20260225215848_workspace/snapshot.json +0 -959
  22. package/migration/20260227213759_add_session_workspace_id/migration.sql +0 -2
  23. package/migration/20260227213759_add_session_workspace_id/snapshot.json +0 -983
  24. package/migration/20260228203230_blue_harpoon/migration.sql +0 -17
  25. package/migration/20260228203230_blue_harpoon/snapshot.json +0 -1102
  26. package/migration/20260303231226_add_workspace_fields/migration.sql +0 -5
  27. package/migration/20260303231226_add_workspace_fields/snapshot.json +0 -1013
  28. package/migration/20260309230000_move_org_to_state/migration.sql +0 -3
  29. package/migration/20260309230000_move_org_to_state/snapshot.json +0 -1156
  30. package/migration/20260312043431_session_message_cursor/migration.sql +0 -4
  31. package/migration/20260312043431_session_message_cursor/snapshot.json +0 -1168
  32. package/migration/20260323234822_events/migration.sql +0 -13
  33. package/migration/20260323234822_events/snapshot.json +0 -1271
  34. package/migration/20260410174513_workspace-name/migration.sql +0 -16
  35. package/migration/20260410174513_workspace-name/snapshot.json +0 -1271
  36. package/migration/20260413175956_chief_energizer/migration.sql +0 -13
  37. package/migration/20260413175956_chief_energizer/snapshot.json +0 -1399
  38. package/migration/20260423070820_add_icon_url_override/migration.sql +0 -2
  39. package/migration/20260423070820_add_icon_url_override/snapshot.json +0 -1409
  40. package/migration/20260428004200_add_session_path/migration.sql +0 -1
  41. package/migration/20260428004200_add_session_path/snapshot.json +0 -1419
  42. package/npm/bin/saeeol +0 -42
  43. package/npm/package.json +0 -39
  44. package/parsers-config.ts +0 -289
  45. package/script/build.ts +0 -393
  46. package/script/check-migrations.ts +0 -16
  47. package/script/fix-node-pty.ts +0 -34
  48. package/script/generate.ts +0 -23
  49. package/script/postinstall.mjs +0 -189
  50. package/script/publish.ts +0 -200
  51. package/script/run-workspace-server +0 -106
  52. package/script/schema.ts +0 -63
  53. package/script/test-runner.ts +0 -420
  54. package/script/time.ts +0 -6
  55. package/script/trace-imports.ts +0 -153
  56. package/script/upgrade-opentui.ts +0 -64
  57. package/scripts/diff-sdk-types.sh +0 -52
  58. package/specs/effect/facades.md +0 -221
  59. package/specs/effect/http-api.md +0 -401
  60. package/specs/effect/instance-context.md +0 -309
  61. package/specs/effect/loose-ends.md +0 -34
  62. package/specs/effect/migration.md +0 -299
  63. package/specs/effect/routes.md +0 -64
  64. package/specs/effect/schema.md +0 -399
  65. package/specs/effect/server-package.md +0 -668
  66. package/specs/effect/tools.md +0 -90
  67. package/specs/tui-plugins.md +0 -433
  68. package/specs/v2/api.ts +0 -67
  69. package/specs/v2/keymappings.md +0 -10
  70. package/specs/v2/message-shape.md +0 -136
  71. package/src/account/account.sql.ts +0 -39
  72. package/src/account/account.ts +0 -456
  73. package/src/account/repo.ts +0 -166
  74. package/src/account/schema.ts +0 -99
  75. package/src/account/url.ts +0 -8
  76. package/src/acp/README.md +0 -174
  77. package/src/acp/agent-events.ts +0 -157
  78. package/src/acp/agent-message.ts +0 -97
  79. package/src/acp/agent-prompt.ts +0 -149
  80. package/src/acp/agent-session.ts +0 -196
  81. package/src/acp/agent-types.ts +0 -16
  82. package/src/acp/agent-utils.ts +0 -206
  83. package/src/acp/agent.ts +0 -89
  84. package/src/acp/session.ts +0 -116
  85. package/src/acp/types.ts +0 -24
  86. package/src/addons/addon-analytics.ts +0 -14
  87. package/src/addons/addon-core.ts +0 -15
  88. package/src/addons/addon-data.ts +0 -14
  89. package/src/addons/addon-dev.ts +0 -13
  90. package/src/addons/addon-lifecycle.ts +0 -13
  91. package/src/addons/addon-llm.ts +0 -15
  92. package/src/addons/addon-remote.ts +0 -12
  93. package/src/addons/addon-server.ts +0 -14
  94. package/src/addons/addon-tools.ts +0 -13
  95. package/src/addons/addon-web.ts +0 -12
  96. package/src/addons/registry.ts +0 -65
  97. package/src/addons/types.ts +0 -31
  98. package/src/agent/agent.ts +0 -426
  99. package/src/agent/generate.txt +0 -75
  100. package/src/agent/prompt/ask.txt +0 -13
  101. package/src/agent/prompt/compaction.txt +0 -9
  102. package/src/agent/prompt/debug.txt +0 -8
  103. package/src/agent/prompt/explore.txt +0 -18
  104. package/src/agent/prompt/orchestrator.txt +0 -24
  105. package/src/agent/prompt/summary.txt +0 -11
  106. package/src/agent/prompt/title.txt +0 -44
  107. package/src/audio.d.ts +0 -4
  108. package/src/auth/index.ts +0 -109
  109. package/src/boxes/ansi.ts +0 -17
  110. package/src/boxes/atomic-write.ts +0 -35
  111. package/src/boxes/b64.ts +0 -58
  112. package/src/boxes/bash-security.ts +0 -129
  113. package/src/boxes/bom.ts +0 -18
  114. package/src/boxes/cancel.ts +0 -16
  115. package/src/boxes/chop.ts +0 -12
  116. package/src/boxes/clamp.ts +0 -3
  117. package/src/boxes/compact.ts +0 -9
  118. package/src/boxes/cost-tracker.ts +0 -116
  119. package/src/boxes/dataurl.ts +0 -29
  120. package/src/boxes/delay.ts +0 -27
  121. package/src/boxes/diff-apply.ts +0 -53
  122. package/src/boxes/disposable.ts +0 -13
  123. package/src/boxes/err.ts +0 -34
  124. package/src/boxes/human.ts +0 -47
  125. package/src/boxes/iife.ts +0 -9
  126. package/src/boxes/latch.ts +0 -8
  127. package/src/boxes/memory.ts +0 -198
  128. package/src/boxes/net.ts +0 -16
  129. package/src/boxes/plural.ts +0 -4
  130. package/src/boxes/puny.ts +0 -21
  131. package/src/boxes/retry.ts +0 -49
  132. package/src/boxes/rwlock.ts +0 -41
  133. package/src/boxes/schedule.ts +0 -71
  134. package/src/boxes/scope.ts +0 -21
  135. package/src/boxes/tokens.ts +0 -9
  136. package/src/boxes/ttl-cache.ts +0 -63
  137. package/src/boxes/typed-event.ts +0 -51
  138. package/src/boxes/uid.ts +0 -50
  139. package/src/boxes/wave6.test.ts +0 -296
  140. package/src/boxes/wildcard.ts +0 -58
  141. package/src/bus/bus-event.ts +0 -49
  142. package/src/bus/global.ts +0 -13
  143. package/src/bus/index.ts +0 -188
  144. package/src/cli/bootstrap.ts +0 -18
  145. package/src/cli/cmd/account.ts +0 -258
  146. package/src/cli/cmd/acp.ts +0 -70
  147. package/src/cli/cmd/agent.ts +0 -264
  148. package/src/cli/cmd/cmd.ts +0 -7
  149. package/src/cli/cmd/config.ts +0 -39
  150. package/src/cli/cmd/db.ts +0 -121
  151. package/src/cli/cmd/debug/agent.ts +0 -192
  152. package/src/cli/cmd/debug/config.ts +0 -17
  153. package/src/cli/cmd/debug/file.ts +0 -100
  154. package/src/cli/cmd/debug/index.ts +0 -50
  155. package/src/cli/cmd/debug/lsp.ts +0 -60
  156. package/src/cli/cmd/debug/ripgrep.ts +0 -105
  157. package/src/cli/cmd/debug/scrap.ts +0 -16
  158. package/src/cli/cmd/debug/skill.ts +0 -23
  159. package/src/cli/cmd/debug/snapshot.ts +0 -53
  160. package/src/cli/cmd/debug/startup.ts +0 -11
  161. package/src/cli/cmd/export.ts +0 -302
  162. package/src/cli/cmd/generate.ts +0 -67
  163. package/src/cli/cmd/github-install.ts +0 -242
  164. package/src/cli/cmd/github-run-api.ts +0 -207
  165. package/src/cli/cmd/github-run-auth.ts +0 -104
  166. package/src/cli/cmd/github-run-fetch.ts +0 -232
  167. package/src/cli/cmd/github-run-git.ts +0 -192
  168. package/src/cli/cmd/github-run-prompt.ts +0 -301
  169. package/src/cli/cmd/github-run.ts +0 -300
  170. package/src/cli/cmd/github-types.ts +0 -147
  171. package/src/cli/cmd/github-util.ts +0 -22
  172. package/src/cli/cmd/github.ts +0 -13
  173. package/src/cli/cmd/import.ts +0 -234
  174. package/src/cli/cmd/init.ts +0 -307
  175. package/src/cli/cmd/mcp-add.ts +0 -215
  176. package/src/cli/cmd/mcp-auth.ts +0 -178
  177. package/src/cli/cmd/mcp-debug.ts +0 -198
  178. package/src/cli/cmd/mcp-list.ts +0 -71
  179. package/src/cli/cmd/mcp-logout.ts +0 -68
  180. package/src/cli/cmd/mcp-refresh.ts +0 -47
  181. package/src/cli/cmd/mcp-shared.ts +0 -80
  182. package/src/cli/cmd/mcp.ts +0 -24
  183. package/src/cli/cmd/models.ts +0 -65
  184. package/src/cli/cmd/plug.ts +0 -233
  185. package/src/cli/cmd/pr.ts +0 -155
  186. package/src/cli/cmd/providers-auth.ts +0 -162
  187. package/src/cli/cmd/providers.ts +0 -302
  188. package/src/cli/cmd/remote.ts +0 -31
  189. package/src/cli/cmd/run-display.ts +0 -169
  190. package/src/cli/cmd/run-events.ts +0 -149
  191. package/src/cli/cmd/run-session.ts +0 -143
  192. package/src/cli/cmd/run.ts +0 -135
  193. package/src/cli/cmd/serve.ts +0 -32
  194. package/src/cli/cmd/session.ts +0 -216
  195. package/src/cli/cmd/stats.ts +0 -415
  196. package/src/cli/cmd/tui/app-commands-core.tsx +0 -218
  197. package/src/cli/cmd/tui/app-commands-system.tsx +0 -288
  198. package/src/cli/cmd/tui/app-config.ts +0 -44
  199. package/src/cli/cmd/tui/app-error.tsx +0 -104
  200. package/src/cli/cmd/tui/app-events.ts +0 -179
  201. package/src/cli/cmd/tui/app-setup.ts +0 -174
  202. package/src/cli/cmd/tui/app.tsx +0 -284
  203. package/src/cli/cmd/tui/asset/charge.wav +0 -0
  204. package/src/cli/cmd/tui/asset/pulse-a.wav +0 -0
  205. package/src/cli/cmd/tui/asset/pulse-b.wav +0 -0
  206. package/src/cli/cmd/tui/asset/pulse-c.wav +0 -0
  207. package/src/cli/cmd/tui/attach.ts +0 -127
  208. package/src/cli/cmd/tui/component/bg-pulse.tsx +0 -130
  209. package/src/cli/cmd/tui/component/border.tsx +0 -21
  210. package/src/cli/cmd/tui/component/dialog/dialog-agent.tsx +0 -32
  211. package/src/cli/cmd/tui/component/dialog/dialog-command.tsx +0 -189
  212. package/src/cli/cmd/tui/component/dialog/dialog-console-org.tsx +0 -103
  213. package/src/cli/cmd/tui/component/dialog/dialog-go-upsell.tsx +0 -159
  214. package/src/cli/cmd/tui/component/dialog/dialog-mcp.tsx +0 -84
  215. package/src/cli/cmd/tui/component/dialog/dialog-model.tsx +0 -238
  216. package/src/cli/cmd/tui/component/dialog/dialog-provider.tsx +0 -343
  217. package/src/cli/cmd/tui/component/dialog/dialog-session-delete-failed.tsx +0 -103
  218. package/src/cli/cmd/tui/component/dialog/dialog-session-list.tsx +0 -301
  219. package/src/cli/cmd/tui/component/dialog/dialog-session-rename.tsx +0 -35
  220. package/src/cli/cmd/tui/component/dialog/dialog-skill.tsx +0 -37
  221. package/src/cli/cmd/tui/component/dialog/dialog-stash.tsx +0 -86
  222. package/src/cli/cmd/tui/component/dialog/dialog-status.tsx +0 -190
  223. package/src/cli/cmd/tui/component/dialog/dialog-tag.tsx +0 -44
  224. package/src/cli/cmd/tui/component/dialog/dialog-theme-list.tsx +0 -50
  225. package/src/cli/cmd/tui/component/dialog/dialog-variant.tsx +0 -39
  226. package/src/cli/cmd/tui/component/dialog/dialog-workspace-create.tsx +0 -200
  227. package/src/cli/cmd/tui/component/dialog/dialog-workspace-unavailable.tsx +0 -81
  228. package/src/cli/cmd/tui/component/dialog-agent.tsx +0 -1
  229. package/src/cli/cmd/tui/component/dialog-command.tsx +0 -1
  230. package/src/cli/cmd/tui/component/dialog-console-org.tsx +0 -1
  231. package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +0 -1
  232. package/src/cli/cmd/tui/component/dialog-mcp.tsx +0 -1
  233. package/src/cli/cmd/tui/component/dialog-model.tsx +0 -1
  234. package/src/cli/cmd/tui/component/dialog-provider.tsx +0 -1
  235. package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +0 -1
  236. package/src/cli/cmd/tui/component/dialog-session-list.tsx +0 -1
  237. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +0 -1
  238. package/src/cli/cmd/tui/component/dialog-skill.tsx +0 -1
  239. package/src/cli/cmd/tui/component/dialog-stash.tsx +0 -1
  240. package/src/cli/cmd/tui/component/dialog-status.tsx +0 -1
  241. package/src/cli/cmd/tui/component/dialog-tag.tsx +0 -1
  242. package/src/cli/cmd/tui/component/dialog-theme-list.tsx +0 -1
  243. package/src/cli/cmd/tui/component/dialog-variant.tsx +0 -1
  244. package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +0 -1
  245. package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +0 -1
  246. package/src/cli/cmd/tui/component/error-component.tsx +0 -92
  247. package/src/cli/cmd/tui/component/logo.tsx +0 -565
  248. package/src/cli/cmd/tui/component/plugin-route-missing.tsx +0 -14
  249. package/src/cli/cmd/tui/component/prompt/PromptMeta.tsx +0 -73
  250. package/src/cli/cmd/tui/component/prompt/PromptStatusBar.tsx +0 -217
  251. package/src/cli/cmd/tui/component/prompt/autocomplete-options.ts +0 -148
  252. package/src/cli/cmd/tui/component/prompt/autocomplete-ref.ts +0 -129
  253. package/src/cli/cmd/tui/component/prompt/autocomplete-types.ts +0 -27
  254. package/src/cli/cmd/tui/component/prompt/autocomplete-utils.ts +0 -69
  255. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +0 -757
  256. package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
  257. package/src/cli/cmd/tui/component/prompt/frecency.tsx +0 -90
  258. package/src/cli/cmd/tui/component/prompt/history.tsx +0 -108
  259. package/src/cli/cmd/tui/component/prompt/index.tsx +0 -216
  260. package/src/cli/cmd/tui/component/prompt/part.ts +0 -16
  261. package/src/cli/cmd/tui/component/prompt/prompt-textarea.tsx +0 -180
  262. package/src/cli/cmd/tui/component/prompt/stash.tsx +0 -101
  263. package/src/cli/cmd/tui/component/prompt/traits.ts +0 -31
  264. package/src/cli/cmd/tui/component/prompt/use-extmark-sync.ts +0 -93
  265. package/src/cli/cmd/tui/component/prompt/use-prompt-commands.tsx +0 -234
  266. package/src/cli/cmd/tui/component/prompt/use-prompt-memos.ts +0 -210
  267. package/src/cli/cmd/tui/component/prompt/use-prompt-store.ts +0 -183
  268. package/src/cli/cmd/tui/component/prompt/use-prompt-submit.tsx +0 -179
  269. package/src/cli/cmd/tui/component/spinner.tsx +0 -24
  270. package/src/cli/cmd/tui/component/startup-loading.tsx +0 -63
  271. package/src/cli/cmd/tui/component/textarea-keybindings.ts +0 -69
  272. package/src/cli/cmd/tui/component/todo-item.tsx +0 -32
  273. package/src/cli/cmd/tui/component/use-connected.tsx +0 -11
  274. package/src/cli/cmd/tui/component/worker/worker-cell.tsx +0 -62
  275. package/src/cli/cmd/tui/component/worker/worker-detail.tsx +0 -73
  276. package/src/cli/cmd/tui/component/worker/worker-grid.tsx +0 -51
  277. package/src/cli/cmd/tui/component/worker/worker-status.tsx +0 -15
  278. package/src/cli/cmd/tui/config/cwd.ts +0 -5
  279. package/src/cli/cmd/tui/config/tui-migrate.ts +0 -161
  280. package/src/cli/cmd/tui/config/tui-schema.ts +0 -38
  281. package/src/cli/cmd/tui/config/tui.ts +0 -225
  282. package/src/cli/cmd/tui/context/app/args.tsx +0 -15
  283. package/src/cli/cmd/tui/context/app/directory.ts +0 -15
  284. package/src/cli/cmd/tui/context/app/editor-zed.ts +0 -281
  285. package/src/cli/cmd/tui/context/app/editor.ts +0 -425
  286. package/src/cli/cmd/tui/context/app/helper.tsx +0 -25
  287. package/src/cli/cmd/tui/context/app/project.tsx +0 -109
  288. package/src/cli/cmd/tui/context/app/route.tsx +0 -67
  289. package/src/cli/cmd/tui/context/app/sdk.tsx +0 -140
  290. package/src/cli/cmd/tui/context/app/sync.tsx +0 -712
  291. package/src/cli/cmd/tui/context/app/theme.tsx +0 -307
  292. package/src/cli/cmd/tui/context/app/tui-config.tsx +0 -9
  293. package/src/cli/cmd/tui/context/args.tsx +0 -1
  294. package/src/cli/cmd/tui/context/directory.ts +0 -1
  295. package/src/cli/cmd/tui/context/editor-zed.ts +0 -1
  296. package/src/cli/cmd/tui/context/editor.ts +0 -1
  297. package/src/cli/cmd/tui/context/event.ts +0 -1
  298. package/src/cli/cmd/tui/context/exit.tsx +0 -1
  299. package/src/cli/cmd/tui/context/helper.tsx +0 -1
  300. package/src/cli/cmd/tui/context/keybind.tsx +0 -1
  301. package/src/cli/cmd/tui/context/kv.tsx +0 -1
  302. package/src/cli/cmd/tui/context/local.tsx +0 -1
  303. package/src/cli/cmd/tui/context/plugin-keybinds.ts +0 -1
  304. package/src/cli/cmd/tui/context/project.tsx +0 -1
  305. package/src/cli/cmd/tui/context/prompt.tsx +0 -1
  306. package/src/cli/cmd/tui/context/route.tsx +0 -1
  307. package/src/cli/cmd/tui/context/runtime/event.ts +0 -45
  308. package/src/cli/cmd/tui/context/runtime/exit.tsx +0 -67
  309. package/src/cli/cmd/tui/context/runtime/keybind.tsx +0 -105
  310. package/src/cli/cmd/tui/context/runtime/kv.tsx +0 -76
  311. package/src/cli/cmd/tui/context/runtime/local.tsx +0 -475
  312. package/src/cli/cmd/tui/context/runtime/plugin-keybinds.ts +0 -41
  313. package/src/cli/cmd/tui/context/sdk.tsx +0 -1
  314. package/src/cli/cmd/tui/context/session/prompt.tsx +0 -18
  315. package/src/cli/cmd/tui/context/sync.tsx +0 -1
  316. package/src/cli/cmd/tui/context/theme/aura.json +0 -69
  317. package/src/cli/cmd/tui/context/theme/ayu.json +0 -80
  318. package/src/cli/cmd/tui/context/theme/carbonfox.json +0 -248
  319. package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +0 -230
  320. package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +0 -230
  321. package/src/cli/cmd/tui/context/theme/catppuccin.json +0 -112
  322. package/src/cli/cmd/tui/context/theme/cobalt2.json +0 -225
  323. package/src/cli/cmd/tui/context/theme/colorblind.json +0 -229
  324. package/src/cli/cmd/tui/context/theme/cursor.json +0 -249
  325. package/src/cli/cmd/tui/context/theme/dracula.json +0 -219
  326. package/src/cli/cmd/tui/context/theme/everforest.json +0 -241
  327. package/src/cli/cmd/tui/context/theme/flexoki.json +0 -237
  328. package/src/cli/cmd/tui/context/theme/github.json +0 -233
  329. package/src/cli/cmd/tui/context/theme/gruvbox.json +0 -242
  330. package/src/cli/cmd/tui/context/theme/kanagawa.json +0 -77
  331. package/src/cli/cmd/tui/context/theme/lucent-orng.json +0 -234
  332. package/src/cli/cmd/tui/context/theme/material.json +0 -235
  333. package/src/cli/cmd/tui/context/theme/matrix.json +0 -77
  334. package/src/cli/cmd/tui/context/theme/mercury.json +0 -252
  335. package/src/cli/cmd/tui/context/theme/monokai.json +0 -221
  336. package/src/cli/cmd/tui/context/theme/nightowl.json +0 -221
  337. package/src/cli/cmd/tui/context/theme/nord.json +0 -223
  338. package/src/cli/cmd/tui/context/theme/one-dark.json +0 -84
  339. package/src/cli/cmd/tui/context/theme/orng.json +0 -249
  340. package/src/cli/cmd/tui/context/theme/osaka-jade.json +0 -93
  341. package/src/cli/cmd/tui/context/theme/palenight.json +0 -222
  342. package/src/cli/cmd/tui/context/theme/rosepine.json +0 -234
  343. package/src/cli/cmd/tui/context/theme/saeeol.json +0 -245
  344. package/src/cli/cmd/tui/context/theme/solarized.json +0 -223
  345. package/src/cli/cmd/tui/context/theme/synthwave84.json +0 -226
  346. package/src/cli/cmd/tui/context/theme/theme-resolve.ts +0 -86
  347. package/src/cli/cmd/tui/context/theme/theme-syntax-code.ts +0 -47
  348. package/src/cli/cmd/tui/context/theme/theme-syntax-markup.ts +0 -50
  349. package/src/cli/cmd/tui/context/theme/theme-syntax.ts +0 -36
  350. package/src/cli/cmd/tui/context/theme/theme-system.ts +0 -158
  351. package/src/cli/cmd/tui/context/theme/theme-themes.ts +0 -79
  352. package/src/cli/cmd/tui/context/theme/theme-types.ts +0 -46
  353. package/src/cli/cmd/tui/context/theme/tokyonight.json +0 -243
  354. package/src/cli/cmd/tui/context/theme/vercel.json +0 -245
  355. package/src/cli/cmd/tui/context/theme/vesper.json +0 -218
  356. package/src/cli/cmd/tui/context/theme/zenburn.json +0 -223
  357. package/src/cli/cmd/tui/context/theme.tsx +0 -1
  358. package/src/cli/cmd/tui/context/tui-config.tsx +0 -1
  359. package/src/cli/cmd/tui/event.ts +0 -53
  360. package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +0 -93
  361. package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +0 -159
  362. package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +0 -55
  363. package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +0 -64
  364. package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +0 -63
  365. package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +0 -92
  366. package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +0 -67
  367. package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +0 -97
  368. package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +0 -49
  369. package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +0 -270
  370. package/src/cli/cmd/tui/layer.ts +0 -6
  371. package/src/cli/cmd/tui/opentui-augment.d.ts +0 -7
  372. package/src/cli/cmd/tui/plugin/api.tsx +0 -395
  373. package/src/cli/cmd/tui/plugin/internal.ts +0 -39
  374. package/src/cli/cmd/tui/plugin/runtime.install.ts +0 -187
  375. package/src/cli/cmd/tui/plugin/runtime.lifecycle.ts +0 -158
  376. package/src/cli/cmd/tui/plugin/runtime.resolve.ts +0 -213
  377. package/src/cli/cmd/tui/plugin/runtime.scope.ts +0 -88
  378. package/src/cli/cmd/tui/plugin/runtime.theme.ts +0 -131
  379. package/src/cli/cmd/tui/plugin/runtime.ts +0 -129
  380. package/src/cli/cmd/tui/plugin/runtime.types.ts +0 -181
  381. package/src/cli/cmd/tui/plugin/slots.tsx +0 -71
  382. package/src/cli/cmd/tui/preflight.ts +0 -138
  383. package/src/cli/cmd/tui/routes/home.tsx +0 -90
  384. package/src/cli/cmd/tui/routes/local-models.tsx +0 -151
  385. package/src/cli/cmd/tui/routes/session/context.ts +0 -24
  386. package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +0 -76
  387. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +0 -108
  388. package/src/cli/cmd/tui/routes/session/dialog-pointing.tsx +0 -103
  389. package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +0 -26
  390. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +0 -47
  391. package/src/cli/cmd/tui/routes/session/footer.tsx +0 -124
  392. package/src/cli/cmd/tui/routes/session/index.tsx +0 -188
  393. package/src/cli/cmd/tui/routes/session/messages/assistant-message.tsx +0 -183
  394. package/src/cli/cmd/tui/routes/session/messages/message-utils.ts +0 -33
  395. package/src/cli/cmd/tui/routes/session/messages/tool-parts.tsx +0 -197
  396. package/src/cli/cmd/tui/routes/session/messages/tool-renderers-2.tsx +0 -251
  397. package/src/cli/cmd/tui/routes/session/messages/tool-renderers.tsx +0 -303
  398. package/src/cli/cmd/tui/routes/session/messages/tool-router.tsx +0 -111
  399. package/src/cli/cmd/tui/routes/session/messages/user-message.tsx +0 -125
  400. package/src/cli/cmd/tui/routes/session/network.tsx +0 -82
  401. package/src/cli/cmd/tui/routes/session/permission.tsx +0 -713
  402. package/src/cli/cmd/tui/routes/session/question.tsx +0 -472
  403. package/src/cli/cmd/tui/routes/session/scroll-manager.ts +0 -13
  404. package/src/cli/cmd/tui/routes/session/session-commands.tsx +0 -324
  405. package/src/cli/cmd/tui/routes/session/session-effects.ts +0 -60
  406. package/src/cli/cmd/tui/routes/session/session-layout.tsx +0 -229
  407. package/src/cli/cmd/tui/routes/session/session-revert-banner.tsx +0 -46
  408. package/src/cli/cmd/tui/routes/session/session-setup.ts +0 -240
  409. package/src/cli/cmd/tui/routes/session/sidebar.tsx +0 -98
  410. package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +0 -131
  411. package/src/cli/cmd/tui/routes/session/suggest.tsx +0 -1
  412. package/src/cli/cmd/tui/routes/session/usage.ts +0 -25
  413. package/src/cli/cmd/tui/thread.ts +0 -399
  414. package/src/cli/cmd/tui/ui/dialog-alert.tsx +0 -61
  415. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +0 -91
  416. package/src/cli/cmd/tui/ui/dialog-export-options.tsx +0 -213
  417. package/src/cli/cmd/tui/ui/dialog-help.tsx +0 -43
  418. package/src/cli/cmd/tui/ui/dialog-prompt.tsx +0 -117
  419. package/src/cli/cmd/tui/ui/dialog-select.tsx +0 -449
  420. package/src/cli/cmd/tui/ui/dialog.tsx +0 -190
  421. package/src/cli/cmd/tui/ui/link.tsx +0 -28
  422. package/src/cli/cmd/tui/ui/spinner.ts +0 -368
  423. package/src/cli/cmd/tui/ui/toast.tsx +0 -111
  424. package/src/cli/cmd/tui/util/clipboard.ts +0 -205
  425. package/src/cli/cmd/tui/util/editor.ts +0 -37
  426. package/src/cli/cmd/tui/util/markdown.ts +0 -211
  427. package/src/cli/cmd/tui/util/model.ts +0 -23
  428. package/src/cli/cmd/tui/util/provider-origin.ts +0 -7
  429. package/src/cli/cmd/tui/util/revert-diff.ts +0 -41
  430. package/src/cli/cmd/tui/util/scroll.ts +0 -23
  431. package/src/cli/cmd/tui/util/selection.ts +0 -25
  432. package/src/cli/cmd/tui/util/signal.ts +0 -41
  433. package/src/cli/cmd/tui/util/sound.ts +0 -156
  434. package/src/cli/cmd/tui/util/transcript.ts +0 -112
  435. package/src/cli/cmd/tui/validate-session.ts +0 -24
  436. package/src/cli/cmd/tui/win32.ts +0 -130
  437. package/src/cli/cmd/tui/worker.ts +0 -107
  438. package/src/cli/cmd/uninstall.ts +0 -350
  439. package/src/cli/cmd/upgrade.ts +0 -75
  440. package/src/cli/cmd/web.ts +0 -92
  441. package/src/cli/effect/prompt.ts +0 -25
  442. package/src/cli/effect-cmd.ts +0 -50
  443. package/src/cli/error.ts +0 -89
  444. package/src/cli/heap.ts +0 -59
  445. package/src/cli/logo.ts +0 -13
  446. package/src/cli/network.ts +0 -62
  447. package/src/cli/ui.ts +0 -91
  448. package/src/cli/upgrade.ts +0 -33
  449. package/src/command/index.ts +0 -198
  450. package/src/command/template/initialize.txt +0 -66
  451. package/src/command/template/review.txt +0 -101
  452. package/src/config/agent.ts +0 -217
  453. package/src/config/command.ts +0 -75
  454. package/src/config/config-loader.ts +0 -166
  455. package/src/config/config-schema.ts +0 -287
  456. package/src/config/config.ts +0 -411
  457. package/src/config/console-state.ts +0 -17
  458. package/src/config/entry-name.ts +0 -16
  459. package/src/config/error.ts +0 -21
  460. package/src/config/formatter.ts +0 -17
  461. package/src/config/keybinds.ts +0 -130
  462. package/src/config/layout.ts +0 -10
  463. package/src/config/lsp.ts +0 -45
  464. package/src/config/managed.ts +0 -71
  465. package/src/config/markdown.ts +0 -106
  466. package/src/config/mcp.ts +0 -65
  467. package/src/config/model-id.ts +0 -14
  468. package/src/config/parse.ts +0 -88
  469. package/src/config/paths.ts +0 -55
  470. package/src/config/permission.ts +0 -71
  471. package/src/config/plugin.ts +0 -88
  472. package/src/config/provider.ts +0 -117
  473. package/src/config/server.ts +0 -22
  474. package/src/config/skills.ts +0 -16
  475. package/src/config/variable.ts +0 -92
  476. package/src/control-plane/adapters/index.ts +0 -45
  477. package/src/control-plane/adapters/worktree.ts +0 -54
  478. package/src/control-plane/dev/README.md +0 -19
  479. package/src/control-plane/dev/debug-workspace-plugin.ts +0 -73
  480. package/src/control-plane/schema.ts +0 -18
  481. package/src/control-plane/types.ts +0 -45
  482. package/src/control-plane/util.ts +0 -39
  483. package/src/control-plane/workspace-context.ts +0 -26
  484. package/src/control-plane/workspace-types.ts +0 -90
  485. package/src/control-plane/workspace.sql.ts +0 -17
  486. package/src/control-plane/workspace.ts +0 -876
  487. package/src/effect/app-runtime.ts +0 -148
  488. package/src/effect/bootstrap-runtime.ts +0 -29
  489. package/src/effect/bridge.ts +0 -78
  490. package/src/effect/config-service.ts +0 -67
  491. package/src/effect/instance-ref.ts +0 -11
  492. package/src/effect/instance-registry.ts +0 -12
  493. package/src/effect/instance-state.ts +0 -83
  494. package/src/effect/run-service.ts +0 -57
  495. package/src/effect/runner.ts +0 -222
  496. package/src/effect/service-use.ts +0 -38
  497. package/src/env/index.ts +0 -37
  498. package/src/file/file-search.ts +0 -60
  499. package/src/file/file-status.ts +0 -174
  500. package/src/file/ignore.ts +0 -81
  501. package/src/file/index.ts +0 -311
  502. package/src/file/protected.ts +0 -59
  503. package/src/file/ripgrep.ts +0 -482
  504. package/src/file/watcher.ts +0 -159
  505. package/src/format/formatter.ts +0 -403
  506. package/src/format/index.ts +0 -207
  507. package/src/git/index.ts +0 -263
  508. package/src/id/id.ts +0 -87
  509. package/src/ide/index.ts +0 -49
  510. package/src/index.ts +0 -286
  511. package/src/installation/index.ts +0 -339
  512. package/src/lsp/client-diagnostics.ts +0 -260
  513. package/src/lsp/client-types.ts +0 -97
  514. package/src/lsp/client.ts +0 -205
  515. package/src/lsp/diagnostic.ts +0 -29
  516. package/src/lsp/language.ts +0 -121
  517. package/src/lsp/launch.ts +0 -21
  518. package/src/lsp/lsp.ts +0 -530
  519. package/src/lsp/server-devops.ts +0 -161
  520. package/src/lsp/server-dotnet-swift.ts +0 -221
  521. package/src/lsp/server-elixir-zig.ts +0 -185
  522. package/src/lsp/server-jvm.ts +0 -221
  523. package/src/lsp/server-lint.ts +0 -231
  524. package/src/lsp/server-lua-php-tex.ts +0 -264
  525. package/src/lsp/server-misc.ts +0 -238
  526. package/src/lsp/server-python-ruby.ts +0 -153
  527. package/src/lsp/server-shared.ts +0 -60
  528. package/src/lsp/server-system.ts +0 -239
  529. package/src/lsp/server-web.ts +0 -150
  530. package/src/lsp/server.ts +0 -21
  531. package/src/ltm/config.ts +0 -114
  532. package/src/ltm/events.ts +0 -50
  533. package/src/ltm/index.ts +0 -12
  534. package/src/ltm/memory/episodic.ts +0 -83
  535. package/src/ltm/memory/procedural.ts +0 -92
  536. package/src/ltm/memory/semantic.ts +0 -80
  537. package/src/ltm/pipeline.ts +0 -241
  538. package/src/ltm/retrieval.ts +0 -62
  539. package/src/ltm/scheduler.ts +0 -117
  540. package/src/ltm/store.ts +0 -143
  541. package/src/ltm/types.ts +0 -102
  542. package/src/mcp/auth.ts +0 -144
  543. package/src/mcp/index.ts +0 -444
  544. package/src/mcp/mcp-types.ts +0 -110
  545. package/src/mcp/oauth-callback.ts +0 -263
  546. package/src/mcp/oauth-provider.ts +0 -214
  547. package/src/md.d.ts +0 -4
  548. package/src/node.ts +0 -6
  549. package/src/overlay/agent/agent-remove.ts +0 -74
  550. package/src/overlay/agent/index.ts +0 -53
  551. package/src/overlay/agent/patch-agents.ts +0 -164
  552. package/src/overlay/agent/permissions.ts +0 -197
  553. package/src/overlay/agent-manager/event.ts +0 -25
  554. package/src/overlay/bash-hierarchy.ts +0 -28
  555. package/src/overlay/bell.ts +0 -5
  556. package/src/overlay/bootstrap.ts +0 -13
  557. package/src/overlay/claw/autocomplete-popup.tsx +0 -70
  558. package/src/overlay/claw/autocomplete-ref.ts +0 -106
  559. package/src/overlay/claw/autocomplete-types.ts +0 -16
  560. package/src/overlay/claw/autocomplete.tsx +0 -191
  561. package/src/overlay/claw/chat-client.ts +0 -260
  562. package/src/overlay/claw/chat.tsx +0 -286
  563. package/src/overlay/claw/client-events.ts +0 -136
  564. package/src/overlay/claw/client-helpers.ts +0 -182
  565. package/src/overlay/claw/client.ts +0 -225
  566. package/src/overlay/claw/dialog-conversation-list.tsx +0 -129
  567. package/src/overlay/claw/event-service-client-core.ts +0 -104
  568. package/src/overlay/claw/event-service-client-impl.ts +0 -193
  569. package/src/overlay/claw/event-service-client.ts +0 -3
  570. package/src/overlay/claw/hooks.ts +0 -299
  571. package/src/overlay/claw/sidebar.tsx +0 -215
  572. package/src/overlay/claw/types.ts +0 -214
  573. package/src/overlay/claw/view.tsx +0 -152
  574. package/src/overlay/cli/cmd/roll-call-call.ts +0 -82
  575. package/src/overlay/cli/cmd/roll-call-format.ts +0 -55
  576. package/src/overlay/cli/cmd/roll-call.ts +0 -218
  577. package/src/overlay/cli/cmd/tui/app.tsx +0 -190
  578. package/src/overlay/cli/cmd/tui/component/dialog-provider.tsx +0 -126
  579. package/src/overlay/cli/cmd/tui/feedback.ts +0 -57
  580. package/src/overlay/cli/cmd/tui/util/terminal.ts +0 -21
  581. package/src/overlay/cli/dev-setup-utils.ts +0 -171
  582. package/src/overlay/cli/dev-setup.ts +0 -148
  583. package/src/overlay/cli/heap-snapshot.ts +0 -13
  584. package/src/overlay/cli/logo.ts +0 -3
  585. package/src/overlay/cli/run-auto.ts +0 -46
  586. package/src/overlay/cli/saeeol-logo.ts +0 -106
  587. package/src/overlay/cloud-session.ts +0 -36
  588. package/src/overlay/commands-index.ts +0 -5
  589. package/src/overlay/commands.ts +0 -74
  590. package/src/overlay/commands.tsx +0 -256
  591. package/src/overlay/commit-message/generate.ts +0 -204
  592. package/src/overlay/commit-message/git-context.ts +0 -231
  593. package/src/overlay/commit-message/index.ts +0 -2
  594. package/src/overlay/commit-message/types.ts +0 -31
  595. package/src/overlay/components/dialog-auto-method.tsx +0 -158
  596. package/src/overlay/components/dialog-claw-setup.tsx +0 -67
  597. package/src/overlay/components/dialog-claw-upgrade.tsx +0 -55
  598. package/src/overlay/components/dialog-indexing-helpers.ts +0 -159
  599. package/src/overlay/components/dialog-indexing.tsx +0 -169
  600. package/src/overlay/components/dialog-notifications.tsx +0 -91
  601. package/src/overlay/components/dialog-organization.tsx +0 -73
  602. package/src/overlay/components/dialog-profile.tsx +0 -77
  603. package/src/overlay/components/dialog-provider-settings.tsx +0 -95
  604. package/src/overlay/components/dialog-team-select.tsx +0 -32
  605. package/src/overlay/components/dialog-tuning.tsx +0 -55
  606. package/src/overlay/components/dialog-vector-store.tsx +0 -104
  607. package/src/overlay/components/error-display.tsx +0 -49
  608. package/src/overlay/components/model-info-panel-utils.ts +0 -39
  609. package/src/overlay/components/model-info-panel.tsx +0 -149
  610. package/src/overlay/components/news.tsx +0 -64
  611. package/src/overlay/components/notification-banner.tsx +0 -58
  612. package/src/overlay/components/session-indexing.tsx +0 -30
  613. package/src/overlay/components/tips.tsx +0 -119
  614. package/src/overlay/config/config-core.ts +0 -130
  615. package/src/overlay/config/config-helpers.ts +0 -71
  616. package/src/overlay/config/config-legacy.ts +0 -158
  617. package/src/overlay/config/config.ts +0 -30
  618. package/src/overlay/config/default-plugins.ts +0 -29
  619. package/src/overlay/config/markdown.ts +0 -38
  620. package/src/overlay/config-injector.ts +0 -116
  621. package/src/overlay/config-validation.ts +0 -168
  622. package/src/overlay/const.ts +0 -7
  623. package/src/overlay/cost-tracker/format.ts +0 -1
  624. package/src/overlay/cost-tracker/index.ts +0 -22
  625. package/src/overlay/cost-tracker/state.ts +0 -5
  626. package/src/overlay/cost-tracker/types.ts +0 -9
  627. package/src/overlay/docs/migration.md +0 -398
  628. package/src/overlay/docs/rules-migration.md +0 -137
  629. package/src/overlay/editor-context.ts +0 -65
  630. package/src/overlay/encoding.ts +0 -187
  631. package/src/overlay/enhance-prompt.ts +0 -52
  632. package/src/overlay/errors.ts +0 -84
  633. package/src/overlay/generate-cli-docs.ts +0 -41
  634. package/src/overlay/help-command.ts +0 -45
  635. package/src/overlay/help.ts +0 -240
  636. package/src/overlay/i18n/index.ts +0 -163
  637. package/src/overlay/ignore-migrator.ts +0 -226
  638. package/src/overlay/index.ts +0 -7
  639. package/src/overlay/indexing-auth.ts +0 -114
  640. package/src/overlay/indexing-feature.ts +0 -43
  641. package/src/overlay/indexing-helpers.ts +0 -180
  642. package/src/overlay/indexing-label.ts +0 -18
  643. package/src/overlay/indexing-state.ts +0 -200
  644. package/src/overlay/indexing-types.ts +0 -49
  645. package/src/overlay/indexing.ts +0 -54
  646. package/src/overlay/lancedb.ts +0 -40
  647. package/src/overlay/mcp-migrator.ts +0 -181
  648. package/src/overlay/mcp-oauth-callback.ts +0 -93
  649. package/src/overlay/memory/age.ts +0 -1
  650. package/src/overlay/memory/index.ts +0 -37
  651. package/src/overlay/memory/paths.ts +0 -4
  652. package/src/overlay/memory/scan.ts +0 -1
  653. package/src/overlay/memory/types.ts +0 -2
  654. package/src/overlay/model-match.ts +0 -6
  655. package/src/overlay/modes-migrator.ts +0 -211
  656. package/src/overlay/paths.ts +0 -94
  657. package/src/overlay/permission/config-paths.ts +0 -168
  658. package/src/overlay/permission/drain.ts +0 -58
  659. package/src/overlay/permission/external-directory.ts +0 -14
  660. package/src/overlay/permission/read.ts +0 -19
  661. package/src/overlay/permission/routes.ts +0 -87
  662. package/src/overlay/permission/rule.ts +0 -17
  663. package/src/overlay/plan-followup-handover.ts +0 -64
  664. package/src/overlay/plan-followup-runtime.ts +0 -86
  665. package/src/overlay/plan-followup-session.ts +0 -111
  666. package/src/overlay/plan-followup.ts +0 -173
  667. package/src/overlay/plugins/home-footer.tsx +0 -168
  668. package/src/overlay/plugins/home-news.tsx +0 -44
  669. package/src/overlay/plugins/home-onboarding.tsx +0 -40
  670. package/src/overlay/plugins/sidebar-footer.tsx +0 -95
  671. package/src/overlay/plugins/sidebar-pr.tsx +0 -285
  672. package/src/overlay/plugins/sidebar-usage.tsx +0 -81
  673. package/src/overlay/project-id.ts +0 -129
  674. package/src/overlay/provider/codex-refresh.ts +0 -102
  675. package/src/overlay/provider/provider.ts +0 -220
  676. package/src/overlay/provider-options.ts +0 -33
  677. package/src/overlay/question/index.ts +0 -62
  678. package/src/overlay/remote-tui.tsx +0 -47
  679. package/src/overlay/review/command.ts +0 -30
  680. package/src/overlay/review/diff.ts +0 -128
  681. package/src/overlay/review/prompt.ts +0 -161
  682. package/src/overlay/review/review.ts +0 -168
  683. package/src/overlay/review/types.ts +0 -24
  684. package/src/overlay/review/worktree-diff.ts +0 -310
  685. package/src/overlay/rules-migrator.ts +0 -153
  686. package/src/overlay/server/instance.ts +0 -62
  687. package/src/overlay/server/router.ts +0 -5
  688. package/src/overlay/server/routes/commit-message.ts +0 -47
  689. package/src/overlay/server/routes/indexing.ts +0 -11
  690. package/src/overlay/server/server.ts +0 -27
  691. package/src/overlay/session/compaction-chunks-core.ts +0 -202
  692. package/src/overlay/session/compaction-chunks-utils.ts +0 -229
  693. package/src/overlay/session/compaction-chunks.ts +0 -125
  694. package/src/overlay/session/compaction-payload-recovery.ts +0 -108
  695. package/src/overlay/session/cost-propagation.ts +0 -68
  696. package/src/overlay/session/digest-storage.ts +0 -57
  697. package/src/overlay/session/fork.ts +0 -66
  698. package/src/overlay/session/index.ts +0 -70
  699. package/src/overlay/session/instruction.ts +0 -7
  700. package/src/overlay/session/kg-compaction.ts +0 -138
  701. package/src/overlay/session/llm.ts +0 -53
  702. package/src/overlay/session/overflow.ts +0 -15
  703. package/src/overlay/session/platform.ts +0 -97
  704. package/src/overlay/session/processor.ts +0 -200
  705. package/src/overlay/session/prompt-context.ts +0 -110
  706. package/src/overlay/session/prompt-plan.ts +0 -149
  707. package/src/overlay/session/prompt-queue.ts +0 -154
  708. package/src/overlay/session/prompt.ts +0 -71
  709. package/src/overlay/session/queries.ts +0 -199
  710. package/src/overlay/session/tui-sync.ts +0 -7
  711. package/src/overlay/session-import/routes.ts +0 -94
  712. package/src/overlay/session-import/service.ts +0 -145
  713. package/src/overlay/session-import/types.ts +0 -222
  714. package/src/overlay/skills/builtin.ts +0 -20
  715. package/src/overlay/skills/config.md +0 -376
  716. package/src/overlay/snapshot/diff-full.ts +0 -150
  717. package/src/overlay/snapshot/index.ts +0 -2
  718. package/src/overlay/snapshot/track-hooks.ts +0 -182
  719. package/src/overlay/snapshot/track-types.ts +0 -86
  720. package/src/overlay/snapshot/track.ts +0 -175
  721. package/src/overlay/soul.txt +0 -28
  722. package/src/overlay/suggestion/index.ts +0 -231
  723. package/src/overlay/suggestion/routes.ts +0 -100
  724. package/src/overlay/suggestion/tool.ts +0 -131
  725. package/src/overlay/suggestion/tool.txt +0 -30
  726. package/src/overlay/suggestion/tui/bar.tsx +0 -76
  727. package/src/overlay/suggestion/tui/prompt.tsx +0 -169
  728. package/src/overlay/suggestion/tui/render.tsx +0 -79
  729. package/src/overlay/suggestion/tui/sync.ts +0 -58
  730. package/src/overlay/system-prompt.ts +0 -24
  731. package/src/overlay/text-stream.ts +0 -70
  732. package/src/overlay/todo-view.ts +0 -73
  733. package/src/overlay/tool/agent-manager.ts +0 -74
  734. package/src/overlay/tool/agent-manager.txt +0 -13
  735. package/src/overlay/tool/bash-security-patterns.ts +0 -123
  736. package/src/overlay/tool/bash-security.ts +0 -6
  737. package/src/overlay/tool/encoded-io.ts +0 -19
  738. package/src/overlay/tool/question.ts +0 -27
  739. package/src/overlay/tool/registry.ts +0 -97
  740. package/src/overlay/tool/semantic-search.ts +0 -128
  741. package/src/overlay/tool/semantic-search.txt +0 -28
  742. package/src/overlay/tool/task.ts +0 -77
  743. package/src/overlay/ts-check.ts +0 -170
  744. package/src/overlay/ts-client.ts +0 -95
  745. package/src/overlay/tui/diff.ts +0 -79
  746. package/src/overlay/util/url.ts +0 -1
  747. package/src/overlay/worker/index.ts +0 -21
  748. package/src/overlay/worker/pool.ts +0 -145
  749. package/src/overlay/worker/store.ts +0 -144
  750. package/src/overlay/worker/types.ts +0 -58
  751. package/src/overlay/workflows-migrator.ts +0 -135
  752. package/src/overlay/worktree-cleanup.ts +0 -67
  753. package/src/overlay/worktree-family.ts +0 -34
  754. package/src/patch/index.ts +0 -4
  755. package/src/patch/patch-apply.ts +0 -340
  756. package/src/patch/patch-parse.ts +0 -198
  757. package/src/patch/patch-types.ts +0 -63
  758. package/src/permission/arity.ts +0 -163
  759. package/src/permission/evaluate.ts +0 -15
  760. package/src/permission/index.ts +0 -528
  761. package/src/permission/schema.ts +0 -16
  762. package/src/plugin/azure.ts +0 -53
  763. package/src/plugin/cloudflare.ts +0 -76
  764. package/src/plugin/codex-auth.ts +0 -361
  765. package/src/plugin/codex.ts +0 -260
  766. package/src/plugin/github-copilot/copilot.ts +0 -394
  767. package/src/plugin/github-copilot/models.ts +0 -195
  768. package/src/plugin/index.ts +0 -298
  769. package/src/plugin/install.ts +0 -439
  770. package/src/plugin/loader.ts +0 -217
  771. package/src/plugin/meta.ts +0 -188
  772. package/src/plugin/shared.ts +0 -323
  773. package/src/project/bootstrap.ts +0 -80
  774. package/src/project/instance-context.ts +0 -24
  775. package/src/project/instance-store.ts +0 -211
  776. package/src/project/instance.ts +0 -45
  777. package/src/project/project.sql.ts +0 -17
  778. package/src/project/project.ts +0 -519
  779. package/src/project/schema.ts +0 -15
  780. package/src/project/vcs.ts +0 -230
  781. package/src/provider/auth.ts +0 -243
  782. package/src/provider/bundled-providers.ts +0 -41
  783. package/src/provider/custom-loaders.ts +0 -175
  784. package/src/provider/error.ts +0 -206
  785. package/src/provider/loader-cloud.ts +0 -260
  786. package/src/provider/loader-local.ts +0 -185
  787. package/src/provider/loader-platform.ts +0 -266
  788. package/src/provider/local/embedder.ts +0 -204
  789. package/src/provider/local/events.ts +0 -74
  790. package/src/provider/local/gpu.ts +0 -93
  791. package/src/provider/local/hub.ts +0 -174
  792. package/src/provider/local/index.ts +0 -10
  793. package/src/provider/local/model-manager.ts +0 -113
  794. package/src/provider/local/orchestrator.ts +0 -301
  795. package/src/provider/local/rag.ts +0 -112
  796. package/src/provider/local/types.ts +0 -142
  797. package/src/provider/model-cache.ts +0 -302
  798. package/src/provider/models-snapshot.ts +0 -3
  799. package/src/provider/models.ts +0 -292
  800. package/src/provider/provider-conversion.ts +0 -274
  801. package/src/provider/provider-events.ts +0 -29
  802. package/src/provider/provider-layer.ts +0 -257
  803. package/src/provider/provider-resolve.ts +0 -230
  804. package/src/provider/provider-schema.ts +0 -124
  805. package/src/provider/provider-schemas.ts +0 -96
  806. package/src/provider/provider-state.ts +0 -228
  807. package/src/provider/provider-types.ts +0 -62
  808. package/src/provider/provider.ts +0 -37
  809. package/src/provider/schema.ts +0 -36
  810. package/src/provider/sdk/copilot/AGENTS.md +0 -1
  811. package/src/provider/sdk/copilot/README.md +0 -5
  812. package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -170
  813. package/src/provider/sdk/copilot/chat/get-response-metadata.ts +0 -15
  814. package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -19
  815. package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +0 -64
  816. package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +0 -815
  817. package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +0 -28
  818. package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -44
  819. package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -83
  820. package/src/provider/sdk/copilot/copilot-provider.ts +0 -100
  821. package/src/provider/sdk/copilot/openai-compatible-error.ts +0 -27
  822. package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +0 -335
  823. package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +0 -22
  824. package/src/provider/sdk/copilot/responses/openai-config.ts +0 -18
  825. package/src/provider/sdk/copilot/responses/openai-error.ts +0 -22
  826. package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +0 -214
  827. package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +0 -1770
  828. package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +0 -173
  829. package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +0 -1
  830. package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +0 -87
  831. package/src/provider/sdk/copilot/responses/tool/file-search.ts +0 -127
  832. package/src/provider/sdk/copilot/responses/tool/image-generation.ts +0 -114
  833. package/src/provider/sdk/copilot/responses/tool/local-shell.ts +0 -64
  834. package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +0 -103
  835. package/src/provider/sdk/copilot/responses/tool/web-search.ts +0 -102
  836. package/src/provider/tiers/code.ts +0 -20
  837. package/src/provider/tiers/light.ts +0 -10
  838. package/src/provider/tiers/master.ts +0 -17
  839. package/src/provider/transform-message.ts +0 -143
  840. package/src/provider/transform-options.ts +0 -65
  841. package/src/provider/transform-params.ts +0 -37
  842. package/src/provider/transform-schema.ts +0 -54
  843. package/src/provider/transform-variants.ts +0 -86
  844. package/src/provider/transform.ts +0 -6
  845. package/src/pty/index.ts +0 -376
  846. package/src/pty/input.ts +0 -24
  847. package/src/pty/pty.bun.ts +0 -26
  848. package/src/pty/pty.node.ts +0 -27
  849. package/src/pty/pty.ts +0 -25
  850. package/src/pty/schema.ts +0 -16
  851. package/src/question/index.ts +0 -269
  852. package/src/question/schema.ts +0 -16
  853. package/src/saeeol-web-ui.gen.ts +0 -33
  854. package/src/server/adapter.bun.ts +0 -44
  855. package/src/server/adapter.node.ts +0 -73
  856. package/src/server/adapter.ts +0 -26
  857. package/src/server/backend.ts +0 -32
  858. package/src/server/cors.ts +0 -17
  859. package/src/server/error.ts +0 -36
  860. package/src/server/event.ts +0 -8
  861. package/src/server/fence.ts +0 -90
  862. package/src/server/mdns.ts +0 -60
  863. package/src/server/middleware.ts +0 -87
  864. package/src/server/ports.ts +0 -17
  865. package/src/server/projectors.ts +0 -28
  866. package/src/server/proxy-util.ts +0 -48
  867. package/src/server/proxy.ts +0 -153
  868. package/src/server/routes/control/index.ts +0 -163
  869. package/src/server/routes/control/workspace.ts +0 -210
  870. package/src/server/routes/game.ts +0 -284
  871. package/src/server/routes/global.ts +0 -297
  872. package/src/server/routes/instance/AGENTS.md +0 -8
  873. package/src/server/routes/instance/config.ts +0 -129
  874. package/src/server/routes/instance/enhance-prompt.ts +0 -39
  875. package/src/server/routes/instance/event.ts +0 -100
  876. package/src/server/routes/instance/experimental-console.ts +0 -125
  877. package/src/server/routes/instance/experimental-mcp.ts +0 -215
  878. package/src/server/routes/instance/experimental-review.ts +0 -232
  879. package/src/server/routes/instance/experimental.ts +0 -12
  880. package/src/server/routes/instance/file.ts +0 -190
  881. package/src/server/routes/instance/httpapi/AGENTS.md +0 -35
  882. package/src/server/routes/instance/httpapi/api.ts +0 -58
  883. package/src/server/routes/instance/httpapi/event.ts +0 -77
  884. package/src/server/routes/instance/httpapi/groups/config.ts +0 -61
  885. package/src/server/routes/instance/httpapi/groups/control.ts +0 -75
  886. package/src/server/routes/instance/httpapi/groups/experimental.ts +0 -214
  887. package/src/server/routes/instance/httpapi/groups/file.ts +0 -121
  888. package/src/server/routes/instance/httpapi/groups/global.ts +0 -106
  889. package/src/server/routes/instance/httpapi/groups/instance.ts +0 -143
  890. package/src/server/routes/instance/httpapi/groups/local.ts +0 -87
  891. package/src/server/routes/instance/httpapi/groups/ltm.ts +0 -93
  892. package/src/server/routes/instance/httpapi/groups/mcp.ts +0 -155
  893. package/src/server/routes/instance/httpapi/groups/metadata.ts +0 -18
  894. package/src/server/routes/instance/httpapi/groups/permission.ts +0 -70
  895. package/src/server/routes/instance/httpapi/groups/project.ts +0 -77
  896. package/src/server/routes/instance/httpapi/groups/provider.ts +0 -76
  897. package/src/server/routes/instance/httpapi/groups/pty.ts +0 -127
  898. package/src/server/routes/instance/httpapi/groups/question.ts +0 -70
  899. package/src/server/routes/instance/httpapi/groups/session-schemas.ts +0 -77
  900. package/src/server/routes/instance/httpapi/groups/session.ts +0 -179
  901. package/src/server/routes/instance/httpapi/groups/sync.ts +0 -92
  902. package/src/server/routes/instance/httpapi/groups/tui.ts +0 -197
  903. package/src/server/routes/instance/httpapi/groups/workspace.ts +0 -106
  904. package/src/server/routes/instance/httpapi/handlers/config.ts +0 -34
  905. package/src/server/routes/instance/httpapi/handlers/control.ts +0 -34
  906. package/src/server/routes/instance/httpapi/handlers/experimental.ts +0 -155
  907. package/src/server/routes/instance/httpapi/handlers/file.ts +0 -54
  908. package/src/server/routes/instance/httpapi/handlers/global.ts +0 -157
  909. package/src/server/routes/instance/httpapi/handlers/instance.ts +0 -79
  910. package/src/server/routes/instance/httpapi/handlers/local.ts +0 -95
  911. package/src/server/routes/instance/httpapi/handlers/ltm.ts +0 -118
  912. package/src/server/routes/instance/httpapi/handlers/mcp.ts +0 -73
  913. package/src/server/routes/instance/httpapi/handlers/permission.ts +0 -43
  914. package/src/server/routes/instance/httpapi/handlers/project.ts +0 -44
  915. package/src/server/routes/instance/httpapi/handlers/provider.ts +0 -100
  916. package/src/server/routes/instance/httpapi/handlers/pty.ts +0 -121
  917. package/src/server/routes/instance/httpapi/handlers/question.ts +0 -33
  918. package/src/server/routes/instance/httpapi/handlers/session.ts +0 -387
  919. package/src/server/routes/instance/httpapi/handlers/sync.ts +0 -77
  920. package/src/server/routes/instance/httpapi/handlers/tui.ts +0 -135
  921. package/src/server/routes/instance/httpapi/handlers/workspace.ts +0 -62
  922. package/src/server/routes/instance/httpapi/lifecycle.ts +0 -52
  923. package/src/server/routes/instance/httpapi/middleware/authorization.ts +0 -128
  924. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +0 -53
  925. package/src/server/routes/instance/httpapi/middleware/proxy.ts +0 -86
  926. package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +0 -218
  927. package/src/server/routes/instance/httpapi/public-schema.ts +0 -118
  928. package/src/server/routes/instance/httpapi/public-types.ts +0 -80
  929. package/src/server/routes/instance/httpapi/public.ts +0 -215
  930. package/src/server/routes/instance/httpapi/server.ts +0 -216
  931. package/src/server/routes/instance/index.ts +0 -378
  932. package/src/server/routes/instance/mcp.ts +0 -277
  933. package/src/server/routes/instance/middleware.ts +0 -34
  934. package/src/server/routes/instance/network.ts +0 -93
  935. package/src/server/routes/instance/permission.ts +0 -131
  936. package/src/server/routes/instance/project.ts +0 -122
  937. package/src/server/routes/instance/provider.ts +0 -170
  938. package/src/server/routes/instance/pty.ts +0 -276
  939. package/src/server/routes/instance/question.ts +0 -111
  940. package/src/server/routes/instance/remote.ts +0 -83
  941. package/src/server/routes/instance/saeeol.ts +0 -98
  942. package/src/server/routes/instance/session/_shared.ts +0 -72
  943. package/src/server/routes/instance/session/action.ts +0 -201
  944. package/src/server/routes/instance/session/crud.ts +0 -294
  945. package/src/server/routes/instance/session/message.ts +0 -247
  946. package/src/server/routes/instance/session/prompt.ts +0 -163
  947. package/src/server/routes/instance/session/share.ts +0 -216
  948. package/src/server/routes/instance/session.ts +0 -16
  949. package/src/server/routes/instance/suggestion.ts +0 -1
  950. package/src/server/routes/instance/sync.ts +0 -152
  951. package/src/server/routes/instance/telemetry.ts +0 -73
  952. package/src/server/routes/instance/trace.ts +0 -59
  953. package/src/server/routes/instance/tui.ts +0 -399
  954. package/src/server/routes/ui.ts +0 -63
  955. package/src/server/server.ts +0 -198
  956. package/src/server/workspace.ts +0 -130
  957. package/src/session/compaction-helpers.ts +0 -1
  958. package/src/session/compaction.ts +0 -1
  959. package/src/session/core/compaction/compaction-helpers.ts +0 -169
  960. package/src/session/core/compaction/compaction.ts +0 -712
  961. package/src/session/core/compaction/overflow.ts +0 -28
  962. package/src/session/core/instruction.ts +0 -234
  963. package/src/session/core/llm.ts +0 -500
  964. package/src/session/core/network.ts +0 -392
  965. package/src/session/core/processor.ts +0 -731
  966. package/src/session/core/projectors.ts +0 -139
  967. package/src/session/core/resolve-tools.ts +0 -241
  968. package/src/session/core/retry.ts +0 -145
  969. package/src/session/core/revert.ts +0 -173
  970. package/src/session/core/run-state.ts +0 -110
  971. package/src/session/core/schema.ts +0 -35
  972. package/src/session/core/session-events.ts +0 -143
  973. package/src/session/core/session-types.ts +0 -158
  974. package/src/session/core/session.sql.ts +0 -124
  975. package/src/session/core/session.ts +0 -912
  976. package/src/session/core/shell-exec.ts +0 -205
  977. package/src/session/core/status.ts +0 -100
  978. package/src/session/core/subtask.ts +0 -268
  979. package/src/session/core/summary.ts +0 -173
  980. package/src/session/core/system.ts +0 -114
  981. package/src/session/core/todo.ts +0 -86
  982. package/src/session/core/user-part.ts +0 -293
  983. package/src/session/instruction.ts +0 -1
  984. package/src/session/llm.ts +0 -1
  985. package/src/session/message/message-errors.ts +0 -79
  986. package/src/session/message/message-parts.ts +0 -87
  987. package/src/session/message/message-query.ts +0 -107
  988. package/src/session/message/message-transform.ts +0 -156
  989. package/src/session/message/message-types.ts +0 -68
  990. package/src/session/message/message-v2.ts +0 -73
  991. package/src/session/message/message.ts +0 -192
  992. package/src/session/message-errors.ts +0 -1
  993. package/src/session/message-parts.ts +0 -1
  994. package/src/session/message-query.ts +0 -1
  995. package/src/session/message-transform.ts +0 -1
  996. package/src/session/message-types.ts +0 -1
  997. package/src/session/message-v2.ts +0 -1
  998. package/src/session/message.ts +0 -1
  999. package/src/session/network.ts +0 -1
  1000. package/src/session/overflow.ts +0 -1
  1001. package/src/session/processor.ts +0 -1
  1002. package/src/session/projectors.ts +0 -2
  1003. package/src/session/prompt/anthropic.txt +0 -105
  1004. package/src/session/prompt/beast.txt +0 -147
  1005. package/src/session/prompt/code-switch.txt +0 -5
  1006. package/src/session/prompt/codex.txt +0 -80
  1007. package/src/session/prompt/copilot-gpt-5.txt +0 -143
  1008. package/src/session/prompt/default.txt +0 -105
  1009. package/src/session/prompt/gemini.txt +0 -155
  1010. package/src/session/prompt/gpt.txt +0 -108
  1011. package/src/session/prompt/kimi.txt +0 -95
  1012. package/src/session/prompt/ling.txt +0 -129
  1013. package/src/session/prompt/max-steps.txt +0 -16
  1014. package/src/session/prompt/plan-reminder-anthropic.txt +0 -67
  1015. package/src/session/prompt/plan.txt +0 -25
  1016. package/src/session/prompt/prompt-command.ts +0 -93
  1017. package/src/session/prompt/prompt-loop.ts +0 -299
  1018. package/src/session/prompt/prompt-model.ts +0 -44
  1019. package/src/session/prompt/prompt-reminders.ts +0 -120
  1020. package/src/session/prompt/prompt-resolve.ts +0 -42
  1021. package/src/session/prompt/prompt-schemas.ts +0 -128
  1022. package/src/session/prompt/prompt-title.ts +0 -55
  1023. package/src/session/prompt/prompt-types.ts +0 -47
  1024. package/src/session/prompt/prompt-user-msg.ts +0 -80
  1025. package/src/session/prompt/prompt.ts +0 -210
  1026. package/src/session/prompt/saeeol-gpt-5.5.txt +0 -95
  1027. package/src/session/prompt/trinity.txt +0 -97
  1028. package/src/session/prompt-command.ts +0 -1
  1029. package/src/session/prompt-loop.ts +0 -1
  1030. package/src/session/prompt-model.ts +0 -1
  1031. package/src/session/prompt-reminders.ts +0 -1
  1032. package/src/session/prompt-resolve.ts +0 -1
  1033. package/src/session/prompt-schemas.ts +0 -1
  1034. package/src/session/prompt-title.ts +0 -1
  1035. package/src/session/prompt-types.ts +0 -1
  1036. package/src/session/prompt-user-msg.ts +0 -1
  1037. package/src/session/prompt.ts +0 -1
  1038. package/src/session/resolve-tools.ts +0 -1
  1039. package/src/session/retry.ts +0 -1
  1040. package/src/session/revert.ts +0 -1
  1041. package/src/session/run-state.ts +0 -1
  1042. package/src/session/schema.ts +0 -1
  1043. package/src/session/session-types.ts +0 -1
  1044. package/src/session/session.sql.ts +0 -1
  1045. package/src/session/session.ts +0 -1
  1046. package/src/session/shell-exec.ts +0 -1
  1047. package/src/session/status.ts +0 -1
  1048. package/src/session/subtask.ts +0 -1
  1049. package/src/session/summary.ts +0 -1
  1050. package/src/session/system.ts +0 -1
  1051. package/src/session/todo.ts +0 -1
  1052. package/src/session/user-part.ts +0 -1
  1053. package/src/sessions/inflight-cache.ts +0 -72
  1054. package/src/sessions/ingest-queue.ts +0 -318
  1055. package/src/sessions/remote-protocol.ts +0 -86
  1056. package/src/sessions/remote-sender.ts +0 -422
  1057. package/src/sessions/remote-ws.ts +0 -189
  1058. package/src/sessions/sessions.ts +0 -720
  1059. package/src/share/session.ts +0 -59
  1060. package/src/share/share-next.ts +0 -376
  1061. package/src/share/share.sql.ts +0 -13
  1062. package/src/shell/shell.ts +0 -215
  1063. package/src/skill/discovery.ts +0 -116
  1064. package/src/skill/index.ts +0 -322
  1065. package/src/snapshot/index.ts +0 -125
  1066. package/src/snapshot/snapshot-core.ts +0 -279
  1067. package/src/snapshot/snapshot-diff.ts +0 -85
  1068. package/src/snapshot/snapshot-git.ts +0 -60
  1069. package/src/snapshot/snapshot-types.ts +0 -43
  1070. package/src/sql.d.ts +0 -4
  1071. package/src/storage/db.bun.ts +0 -8
  1072. package/src/storage/db.node.ts +0 -8
  1073. package/src/storage/db.ts +0 -177
  1074. package/src/storage/json-migration-entities.ts +0 -214
  1075. package/src/storage/json-migration-helpers.ts +0 -76
  1076. package/src/storage/json-migration.ts +0 -88
  1077. package/src/storage/schema.sql.ts +0 -10
  1078. package/src/storage/schema.ts +0 -5
  1079. package/src/storage/storage.ts +0 -341
  1080. package/src/suggestion/index.ts +0 -1
  1081. package/src/sync/README.md +0 -179
  1082. package/src/sync/event.sql.ts +0 -16
  1083. package/src/sync/index.ts +0 -387
  1084. package/src/sync/schema.ts +0 -13
  1085. package/src/temporary.ts +0 -33
  1086. package/src/tool/apply_patch.ts +0 -1
  1087. package/src/tool/bash.ts +0 -1
  1088. package/src/tool/core/external-directory.ts +0 -55
  1089. package/src/tool/core/invalid.ts +0 -21
  1090. package/src/tool/core/recall.ts +0 -164
  1091. package/src/tool/core/recall.txt +0 -12
  1092. package/src/tool/core/schema.ts +0 -16
  1093. package/src/tool/core/tool.ts +0 -162
  1094. package/src/tool/core/truncate.ts +0 -160
  1095. package/src/tool/core/truncation-dir.ts +0 -4
  1096. package/src/tool/diagnostics.ts +0 -1
  1097. package/src/tool/edit-replacers.ts +0 -1
  1098. package/src/tool/edit-utils.ts +0 -1
  1099. package/src/tool/edit.ts +0 -1
  1100. package/src/tool/external-directory.ts +0 -1
  1101. package/src/tool/file/apply_patch.ts +0 -313
  1102. package/src/tool/file/apply_patch.txt +0 -33
  1103. package/src/tool/file/bash.ts +0 -656
  1104. package/src/tool/file/bash.txt +0 -119
  1105. package/src/tool/file/edit-replacers.ts +0 -287
  1106. package/src/tool/file/edit-utils.ts +0 -86
  1107. package/src/tool/file/edit.ts +0 -262
  1108. package/src/tool/file/edit.txt +0 -10
  1109. package/src/tool/file/read.ts +0 -389
  1110. package/src/tool/file/read.txt +0 -14
  1111. package/src/tool/file/write.ts +0 -114
  1112. package/src/tool/file/write.txt +0 -8
  1113. package/src/tool/glob.ts +0 -1
  1114. package/src/tool/grep.ts +0 -1
  1115. package/src/tool/integration/diagnostics.ts +0 -20
  1116. package/src/tool/integration/lsp.ts +0 -113
  1117. package/src/tool/integration/lsp.txt +0 -24
  1118. package/src/tool/integration/mcp-exa.ts +0 -73
  1119. package/src/tool/integration/package.ts +0 -166
  1120. package/src/tool/integration/registry.ts +0 -375
  1121. package/src/tool/invalid.ts +0 -1
  1122. package/src/tool/lsp.ts +0 -1
  1123. package/src/tool/mcp-exa.ts +0 -1
  1124. package/src/tool/package.ts +0 -1
  1125. package/src/tool/plan.ts +0 -1
  1126. package/src/tool/question.ts +0 -1
  1127. package/src/tool/read.ts +0 -1
  1128. package/src/tool/recall.ts +0 -1
  1129. package/src/tool/registry.ts +0 -1
  1130. package/src/tool/schema.ts +0 -1
  1131. package/src/tool/search/glob.ts +0 -115
  1132. package/src/tool/search/glob.txt +0 -6
  1133. package/src/tool/search/grep.ts +0 -151
  1134. package/src/tool/search/grep.txt +0 -8
  1135. package/src/tool/search/warpgrep.ts +0 -99
  1136. package/src/tool/search/warpgrep.txt +0 -10
  1137. package/src/tool/search/webfetch.ts +0 -194
  1138. package/src/tool/search/webfetch.txt +0 -13
  1139. package/src/tool/search/websearch.ts +0 -71
  1140. package/src/tool/search/websearch.txt +0 -14
  1141. package/src/tool/skill.ts +0 -1
  1142. package/src/tool/suggest.ts +0 -1
  1143. package/src/tool/task.ts +0 -1
  1144. package/src/tool/todo.ts +0 -1
  1145. package/src/tool/tool.ts +0 -1
  1146. package/src/tool/truncate.ts +0 -1
  1147. package/src/tool/truncation-dir.ts +0 -1
  1148. package/src/tool/warpgrep.ts +0 -1
  1149. package/src/tool/webfetch.ts +0 -1
  1150. package/src/tool/websearch.ts +0 -1
  1151. package/src/tool/workflow/plan-enter.txt +0 -14
  1152. package/src/tool/workflow/plan-exit.txt +0 -13
  1153. package/src/tool/workflow/plan.ts +0 -30
  1154. package/src/tool/workflow/question.ts +0 -52
  1155. package/src/tool/workflow/question.txt +0 -11
  1156. package/src/tool/workflow/skill.ts +0 -91
  1157. package/src/tool/workflow/skill.txt +0 -5
  1158. package/src/tool/workflow/task.ts +0 -197
  1159. package/src/tool/workflow/task.txt +0 -57
  1160. package/src/tool/workflow/todo.ts +0 -62
  1161. package/src/tool/workflow/todowrite.txt +0 -167
  1162. package/src/tool/write.ts +0 -1
  1163. package/src/util/abort.ts +0 -1
  1164. package/src/util/archive.ts +0 -17
  1165. package/src/util/bom.ts +0 -19
  1166. package/src/util/color.ts +0 -3
  1167. package/src/util/data-url.ts +0 -1
  1168. package/src/util/defer.ts +0 -1
  1169. package/src/util/effect-http-client.ts +0 -11
  1170. package/src/util/effect-zod.ts +0 -370
  1171. package/src/util/error.ts +0 -46
  1172. package/src/util/filesystem.ts +0 -230
  1173. package/src/util/fn.ts +0 -21
  1174. package/src/util/format.ts +0 -1
  1175. package/src/util/i18n.ts +0 -104
  1176. package/src/util/iife.ts +0 -1
  1177. package/src/util/keybind.ts +0 -103
  1178. package/src/util/lazy.ts +0 -18
  1179. package/src/util/local-context.ts +0 -3
  1180. package/src/util/locale.ts +0 -13
  1181. package/src/util/lock.ts +0 -3
  1182. package/src/util/media.ts +0 -26
  1183. package/src/util/named-schema-error.ts +0 -61
  1184. package/src/util/network.ts +0 -1
  1185. package/src/util/process.ts +0 -176
  1186. package/src/util/queue.ts +0 -32
  1187. package/src/util/record.ts +0 -3
  1188. package/src/util/rpc.ts +0 -66
  1189. package/src/util/schema.ts +0 -108
  1190. package/src/util/scrap.ts +0 -10
  1191. package/src/util/signal.ts +0 -10
  1192. package/src/util/timeout.ts +0 -13
  1193. package/src/util/token.ts +0 -3
  1194. package/src/util/update-schema.ts +0 -13
  1195. package/src/util/which.ts +0 -14
  1196. package/src/util/wildcard.ts +0 -20
  1197. package/src/v2/session-entry-stepper.ts +0 -262
  1198. package/src/v2/session-entry.ts +0 -219
  1199. package/src/v2/session-event-base.ts +0 -102
  1200. package/src/v2/session-event-step.ts +0 -51
  1201. package/src/v2/session-event-stream.ts +0 -65
  1202. package/src/v2/session-event-tool.ts +0 -88
  1203. package/src/v2/session-event.ts +0 -92
  1204. package/src/v2/session.ts +0 -69
  1205. package/src/web-static/assets/index--nIB0GG1.js +0 -1
  1206. package/src/web-static/assets/index-BAFkjvN0.css +0 -1
  1207. package/src/web-static/index.html +0 -23
  1208. package/src/worktree/index.ts +0 -19
  1209. package/src/worktree/worktree-layer.ts +0 -450
  1210. package/src/worktree/worktree-types.ts +0 -131
  1211. package/sst-env.d.ts +0 -10
  1212. package/test/AGENTS.md +0 -133
  1213. package/test/account/repo.test.ts +0 -352
  1214. package/test/account/service.test.ts +0 -456
  1215. package/test/acp/agent-interface.test.ts +0 -51
  1216. package/test/acp/event-subscription.test.ts +0 -725
  1217. package/test/agent/agent.test.ts +0 -890
  1218. package/test/auth/auth.test.ts +0 -86
  1219. package/test/bun/registry.test.ts +0 -75
  1220. package/test/bus/bus-effect.test.ts +0 -161
  1221. package/test/bus/bus-integration.test.ts +0 -87
  1222. package/test/bus/bus.test.ts +0 -219
  1223. package/test/cli/account.test.ts +0 -26
  1224. package/test/cli/auto-mode.test.ts +0 -75
  1225. package/test/cli/bin-saeeol.test.ts +0 -8
  1226. package/test/cli/cmd/tui/prompt-part.test.ts +0 -47
  1227. package/test/cli/cmd/tui/prompt-traits.test.ts +0 -38
  1228. package/test/cli/cmd/tui/sync.test.tsx +0 -159
  1229. package/test/cli/error.test.ts +0 -18
  1230. package/test/cli/github-action.test.ts +0 -198
  1231. package/test/cli/github-remote.test.ts +0 -85
  1232. package/test/cli/import.test.ts +0 -97
  1233. package/test/cli/install-artifact.test.ts +0 -72
  1234. package/test/cli/plugin-auth-picker.test.ts +0 -120
  1235. package/test/cli/pr.test.ts +0 -59
  1236. package/test/cli/tui/editor-context-zed.test.ts +0 -356
  1237. package/test/cli/tui/editor-context.test.tsx +0 -228
  1238. package/test/cli/tui/keybind-plugin.test.ts +0 -90
  1239. package/test/cli/tui/markdown.test.ts +0 -161
  1240. package/test/cli/tui/plugin-add.test.ts +0 -111
  1241. package/test/cli/tui/plugin-install.test.ts +0 -87
  1242. package/test/cli/tui/plugin-lifecycle.test.ts +0 -224
  1243. package/test/cli/tui/plugin-loader-entrypoint.test.ts +0 -484
  1244. package/test/cli/tui/plugin-loader-pure.test.ts +0 -71
  1245. package/test/cli/tui/plugin-loader.test.ts +0 -816
  1246. package/test/cli/tui/plugin-toggle.test.ts +0 -157
  1247. package/test/cli/tui/revert-diff.test.ts +0 -35
  1248. package/test/cli/tui/slot-replace.test.tsx +0 -47
  1249. package/test/cli/tui/theme-store.test.ts +0 -54
  1250. package/test/cli/tui/thread.test.ts +0 -28
  1251. package/test/cli/tui/transcript.test.ts +0 -426
  1252. package/test/cli/tui/usage.test.ts +0 -60
  1253. package/test/cli/tui/use-event.test.tsx +0 -175
  1254. package/test/config/agent-color.test.ts +0 -67
  1255. package/test/config/config.test.ts +0 -2544
  1256. package/test/config/fixtures/empty-frontmatter.md +0 -4
  1257. package/test/config/fixtures/frontmatter.md +0 -28
  1258. package/test/config/fixtures/markdown-header.md +0 -11
  1259. package/test/config/fixtures/no-frontmatter.md +0 -1
  1260. package/test/config/fixtures/weird-model-id.md +0 -13
  1261. package/test/config/lsp.test.ts +0 -87
  1262. package/test/config/markdown.test.ts +0 -228
  1263. package/test/config/plugin.test.ts +0 -0
  1264. package/test/config/tui.test.ts +0 -624
  1265. package/test/control-plane/adapters.test.ts +0 -71
  1266. package/test/control-plane/workspace.test.ts +0 -1526
  1267. package/test/effect/app-runtime-logger.test.ts +0 -98
  1268. package/test/effect/config-service.test.ts +0 -65
  1269. package/test/effect/instance-state.test.ts +0 -394
  1270. package/test/effect/run-service.test.ts +0 -89
  1271. package/test/effect/runner.test.ts +0 -523
  1272. package/test/fake/provider.ts +0 -82
  1273. package/test/file/fsmonitor.test.ts +0 -68
  1274. package/test/file/ignore.test.ts +0 -10
  1275. package/test/file/index.test.ts +0 -954
  1276. package/test/file/path-traversal.test.ts +0 -205
  1277. package/test/file/ripgrep.test.ts +0 -226
  1278. package/test/file/watcher.test.ts +0 -249
  1279. package/test/filesystem/filesystem.test.ts +0 -319
  1280. package/test/fixture/db.ts +0 -11
  1281. package/test/fixture/fixture.test.ts +0 -26
  1282. package/test/fixture/fixture.ts +0 -175
  1283. package/test/fixture/flock-worker.ts +0 -72
  1284. package/test/fixture/log-init-worker.ts +0 -62
  1285. package/test/fixture/lsp/fake-lsp-server.js +0 -249
  1286. package/test/fixture/plug-worker.ts +0 -93
  1287. package/test/fixture/plugin-meta-worker.ts +0 -19
  1288. package/test/fixture/skills/agents-sdk/SKILL.md +0 -152
  1289. package/test/fixture/skills/cloudflare/SKILL.md +0 -211
  1290. package/test/fixture/skills/index.json +0 -6
  1291. package/test/fixture/tui-plugin.ts +0 -323
  1292. package/test/fixture/tui-runtime.ts +0 -31
  1293. package/test/format/format.test.ts +0 -272
  1294. package/test/git/git.test.ts +0 -128
  1295. package/test/ide/ide.test.ts +0 -82
  1296. package/test/installation/installation.test.ts +0 -168
  1297. package/test/keybind.test.ts +0 -421
  1298. package/test/lib/effect.ts +0 -53
  1299. package/test/lib/filesystem.ts +0 -10
  1300. package/test/lib/llm-server.ts +0 -778
  1301. package/test/lib/websocket.ts +0 -46
  1302. package/test/lsp/client.test.ts +0 -482
  1303. package/test/lsp/index.test.ts +0 -160
  1304. package/test/lsp/launch.test.ts +0 -22
  1305. package/test/lsp/lifecycle.test.ts +0 -184
  1306. package/test/ltm/ltm.test.ts +0 -230
  1307. package/test/mcp/headers.test.ts +0 -178
  1308. package/test/mcp/lifecycle.test.ts +0 -787
  1309. package/test/mcp/oauth-auto-connect.test.ts +0 -311
  1310. package/test/mcp/oauth-browser.test.ts +0 -276
  1311. package/test/mcp/oauth-callback.test.ts +0 -34
  1312. package/test/memory/abort-leak-webfetch.ts +0 -49
  1313. package/test/memory/abort-leak.test.ts +0 -128
  1314. package/test/patch/patch.test.ts +0 -348
  1315. package/test/permission/arity.test.ts +0 -33
  1316. package/test/permission/next.test.ts +0 -1227
  1317. package/test/permission/next.toConfig.test.ts +0 -110
  1318. package/test/permission-task.test.ts +0 -326
  1319. package/test/plugin/auth-override.test.ts +0 -79
  1320. package/test/plugin/cloudflare.test.ts +0 -68
  1321. package/test/plugin/codex.test.ts +0 -123
  1322. package/test/plugin/github-copilot-models.test.ts +0 -261
  1323. package/test/plugin/install-concurrency.test.ts +0 -140
  1324. package/test/plugin/install.test.ts +0 -570
  1325. package/test/plugin/loader-shared.test.ts +0 -1169
  1326. package/test/plugin/meta.test.ts +0 -137
  1327. package/test/plugin/plugin-contract.test.ts +0 -291
  1328. package/test/plugin/shared.test.ts +0 -88
  1329. package/test/plugin/trigger.test.ts +0 -102
  1330. package/test/plugin/workspace-adapter.test.ts +0 -109
  1331. package/test/preload.ts +0 -77
  1332. package/test/project/instance.test.ts +0 -276
  1333. package/test/project/migrate-global.test.ts +0 -152
  1334. package/test/project/project.test.ts +0 -600
  1335. package/test/project/vcs.test.ts +0 -286
  1336. package/test/project/worktree-remove.test.ts +0 -126
  1337. package/test/project/worktree.test.ts +0 -223
  1338. package/test/provider/amazon-bedrock.test.ts +0 -462
  1339. package/test/provider/copilot/convert-to-copilot-messages.test.ts +0 -523
  1340. package/test/provider/copilot/copilot-chat-model.test.ts +0 -592
  1341. package/test/provider/gitlab-duo.test.ts +0 -413
  1342. package/test/provider/local.test.ts +0 -208
  1343. package/test/provider/models.test.ts +0 -261
  1344. package/test/provider/provider-category.test.ts +0 -190
  1345. package/test/provider/provider.test.ts +0 -2758
  1346. package/test/provider/transform.test.ts +0 -3681
  1347. package/test/pty/pty-output-isolation.test.ts +0 -147
  1348. package/test/pty/pty-session.test.ts +0 -102
  1349. package/test/pty/pty-shell.test.ts +0 -104
  1350. package/test/question/question.test.ts +0 -490
  1351. package/test/saeeol/agent-global-config-dirs.test.ts +0 -24
  1352. package/test/saeeol/agent-manager-tool.test.ts +0 -71
  1353. package/test/saeeol/agent-permission-overrides.test.ts +0 -75
  1354. package/test/saeeol/agent-skill-permissions.test.ts +0 -37
  1355. package/test/saeeol/ask-agent-permissions.test.ts +0 -303
  1356. package/test/saeeol/bash-hierarchy.test.ts +0 -64
  1357. package/test/saeeol/bash-permission-metadata.test.ts +0 -66
  1358. package/test/saeeol/bash-security-extended.test.ts +0 -243
  1359. package/test/saeeol/bedrock-claude-empty-content.test.ts +0 -138
  1360. package/test/saeeol/boxes-integration.test.ts +0 -415
  1361. package/test/saeeol/builtin-skills.test.ts +0 -75
  1362. package/test/saeeol/cleanup.ts +0 -28
  1363. package/test/saeeol/cli/dev-setup.test.ts +0 -74
  1364. package/test/saeeol/cli/roll-call.test.ts +0 -161
  1365. package/test/saeeol/cli-run-auto-helper.test.ts +0 -58
  1366. package/test/saeeol/codex-auth-refresh.test.ts +0 -124
  1367. package/test/saeeol/commit-message/generate.test.ts +0 -188
  1368. package/test/saeeol/commit-message/git-context.test.ts +0 -303
  1369. package/test/saeeol/commit-message-windows.test.ts +0 -38
  1370. package/test/saeeol/compaction-payload-recovery.test.ts +0 -406
  1371. package/test/saeeol/compaction-preservation-audit.test.ts +0 -122
  1372. package/test/saeeol/compaction-skip-guard.test.ts +0 -224
  1373. package/test/saeeol/compaction-smart-select.test.ts +0 -100
  1374. package/test/saeeol/config/config.test.ts +0 -166
  1375. package/test/saeeol/config/indexing-default-plugin.test.ts +0 -82
  1376. package/test/saeeol/config/opentelemetry-default.test.ts +0 -29
  1377. package/test/saeeol/config-gitignore.test.ts +0 -70
  1378. package/test/saeeol/config-injector.test.ts +0 -305
  1379. package/test/saeeol/config-resilience.test.ts +0 -234
  1380. package/test/saeeol/config-validation.test.ts +0 -183
  1381. package/test/saeeol/cost-propagation.test.ts +0 -94
  1382. package/test/saeeol/cost-tracker-extended.test.ts +0 -141
  1383. package/test/saeeol/cost-tracker.test.ts +0 -64
  1384. package/test/saeeol/custom-provider-delete.test.ts +0 -149
  1385. package/test/saeeol/diff-full.test.ts +0 -226
  1386. package/test/saeeol/edit-permission-filediff.test.ts +0 -223
  1387. package/test/saeeol/encoding.test.ts +0 -364
  1388. package/test/saeeol/enhance-prompt.test.ts +0 -61
  1389. package/test/saeeol/ensure-plan-dir.test.ts +0 -32
  1390. package/test/saeeol/errors.test.ts +0 -144
  1391. package/test/saeeol/external-directory-boundary.test.ts +0 -96
  1392. package/test/saeeol/gateway-headers.test.ts +0 -88
  1393. package/test/saeeol/help.test.ts +0 -191
  1394. package/test/saeeol/ignore-migrator.test.ts +0 -308
  1395. package/test/saeeol/indexing-auth.test.ts +0 -45
  1396. package/test/saeeol/indexing-feature.test.ts +0 -44
  1397. package/test/saeeol/indexing-label.test.ts +0 -70
  1398. package/test/saeeol/indexing-startup.test.ts +0 -381
  1399. package/test/saeeol/indexing-worktree.test.ts +0 -73
  1400. package/test/saeeol/instruction.test.ts +0 -136
  1401. package/test/saeeol/lancedb-runtime.test.ts +0 -116
  1402. package/test/saeeol/loader-auth.test.ts +0 -168
  1403. package/test/saeeol/local-model.test.ts +0 -621
  1404. package/test/saeeol/logo.test.ts +0 -31
  1405. package/test/saeeol/lsp-typescript-lightweight.test.ts +0 -89
  1406. package/test/saeeol/mcp-branding.test.ts +0 -33
  1407. package/test/saeeol/mcp-docker-rm.test.ts +0 -32
  1408. package/test/saeeol/mcp-migrator.test.ts +0 -736
  1409. package/test/saeeol/mcp-oauth-callback.test.ts +0 -33
  1410. package/test/saeeol/memory-io.test.ts +0 -198
  1411. package/test/saeeol/memory-paths.test.ts +0 -87
  1412. package/test/saeeol/memory-security.test.ts +0 -166
  1413. package/test/saeeol/model-cache-org.test.ts +0 -164
  1414. package/test/saeeol/model-info-panel-utils.test.ts +0 -52
  1415. package/test/saeeol/model-info-panel.types.test.ts +0 -7
  1416. package/test/saeeol/models-401-fallback.test.ts +0 -52
  1417. package/test/saeeol/modes-migrator.test.ts +0 -320
  1418. package/test/saeeol/nvidia-headers.test.ts +0 -74
  1419. package/test/saeeol/patch-jsonc.test.ts +0 -73
  1420. package/test/saeeol/patch.test.ts +0 -172
  1421. package/test/saeeol/paths.test.ts +0 -265
  1422. package/test/saeeol/permission/config-paths.test.ts +0 -174
  1423. package/test/saeeol/permission/env-read.test.ts +0 -149
  1424. package/test/saeeol/permission/external-directory-allow.test.ts +0 -327
  1425. package/test/saeeol/permission/next.always-rules.test.ts +0 -882
  1426. package/test/saeeol/permission/next.reply-http.test.ts +0 -205
  1427. package/test/saeeol/permission/next.reply-routing.test.ts +0 -184
  1428. package/test/saeeol/plan-exit-detection.test.ts +0 -494
  1429. package/test/saeeol/plan-followup.test.ts +0 -1376
  1430. package/test/saeeol/project-config-update.test.ts +0 -120
  1431. package/test/saeeol/project-id.test.ts +0 -455
  1432. package/test/saeeol/provider-cost.test.ts +0 -171
  1433. package/test/saeeol/provider-list-failed-state.test.ts +0 -100
  1434. package/test/saeeol/question-dismiss-all.test.ts +0 -174
  1435. package/test/saeeol/read-directory.test.ts +0 -116
  1436. package/test/saeeol/rules-migrator.test.ts +0 -257
  1437. package/test/saeeol/run-auto.test.ts +0 -176
  1438. package/test/saeeol/run-network.test.ts +0 -224
  1439. package/test/saeeol/semantic-search.test.ts +0 -186
  1440. package/test/saeeol/server/permission-allow-everything.test.ts +0 -125
  1441. package/test/saeeol/session/instruction-substitution.test.ts +0 -72
  1442. package/test/saeeol/session/platform-attribution.test.ts +0 -118
  1443. package/test/saeeol/session/session.test.ts +0 -105
  1444. package/test/saeeol/session-compaction-cap.test.ts +0 -399
  1445. package/test/saeeol/session-compaction-chunks.test.ts +0 -501
  1446. package/test/saeeol/session-compaction-safety.test.ts +0 -481
  1447. package/test/saeeol/session-fork-remap.test.ts +0 -251
  1448. package/test/saeeol/session-import-service.test.ts +0 -114
  1449. package/test/saeeol/session-list.test.ts +0 -47
  1450. package/test/saeeol/session-message-metadata.test.ts +0 -128
  1451. package/test/saeeol/session-overflow.test.ts +0 -78
  1452. package/test/saeeol/session-processor-empty-tool-calls.test.ts +0 -571
  1453. package/test/saeeol/session-processor-network-offline.test.ts +0 -204
  1454. package/test/saeeol/session-processor-retry-limit.test.ts +0 -238
  1455. package/test/saeeol/session-processor-review-telemetry.test.ts +0 -82
  1456. package/test/saeeol/session-prompt-compaction-safety.test.ts +0 -517
  1457. package/test/saeeol/session-prompt-queue.test.ts +0 -815
  1458. package/test/saeeol/sessions/inflight-cache.test.ts +0 -157
  1459. package/test/saeeol/sessions/ingest-queue.test.ts +0 -402
  1460. package/test/saeeol/sessions/remote-protocol.test.ts +0 -258
  1461. package/test/saeeol/sessions/remote-sender.test.ts +0 -1036
  1462. package/test/saeeol/sessions/remote-ws.test.ts +0 -367
  1463. package/test/saeeol/sessions/sessions-enable-remote.test.disable +0 -181
  1464. package/test/saeeol/slot-prop-reactivity.test.ts +0 -142
  1465. package/test/saeeol/snapshot-cache.test.ts +0 -84
  1466. package/test/saeeol/snapshot-freeze-repro.test.ts +0 -100
  1467. package/test/saeeol/snapshot-track-timeout.test.ts +0 -519
  1468. package/test/saeeol/stats-subagent-cost.test.ts +0 -123
  1469. package/test/saeeol/suggestion/auto-dismiss.test.ts +0 -65
  1470. package/test/saeeol/suggestion/suggestion.test.ts +0 -145
  1471. package/test/saeeol/suggestion/tool.test.ts +0 -298
  1472. package/test/saeeol/summary-file-diff.test.ts +0 -28
  1473. package/test/saeeol/system-prompt.test.ts +0 -142
  1474. package/test/saeeol/task-nesting.test.ts +0 -193
  1475. package/test/saeeol/telemetry/feedback.test.ts +0 -8
  1476. package/test/saeeol/todo-view.test.ts +0 -57
  1477. package/test/saeeol/tool-encoding.test.ts +0 -455
  1478. package/test/saeeol/tool-registry-indexing-import-failure.test.ts +0 -49
  1479. package/test/saeeol/tool-registry-indexing.test.ts +0 -236
  1480. package/test/saeeol/tool-registry-semantic-import-failure.test.ts +0 -55
  1481. package/test/saeeol/tool-task-model.test.ts +0 -352
  1482. package/test/saeeol/transform-opus-4.7.test.ts +0 -89
  1483. package/test/saeeol/tui-diff.test.ts +0 -91
  1484. package/test/saeeol/tui-sync.test.ts +0 -80
  1485. package/test/saeeol/util/url.test.ts +0 -141
  1486. package/test/saeeol/workflows-migrator.test.ts +0 -261
  1487. package/test/saeeol/worktree-diff-summary.test.ts +0 -64
  1488. package/test/saeeol/worktree-diff.test.ts +0 -223
  1489. package/test/saeeol/worktree-remove-lock.test.ts +0 -82
  1490. package/test/server/AGENTS.md +0 -15
  1491. package/test/server/contract.test.ts +0 -357
  1492. package/test/server/experimental-session-list.test.ts +0 -157
  1493. package/test/server/global-session-list.test.ts +0 -155
  1494. package/test/server/httpapi-authorization.test.ts +0 -103
  1495. package/test/server/httpapi-bridge.test.ts +0 -440
  1496. package/test/server/httpapi-config.test.ts +0 -67
  1497. package/test/server/httpapi-cors.test.ts +0 -89
  1498. package/test/server/httpapi-event.test.ts +0 -57
  1499. package/test/server/httpapi-experimental.test.ts +0 -219
  1500. package/test/server/httpapi-file.test.ts +0 -79
  1501. package/test/server/httpapi-instance-context.test.ts +0 -237
  1502. package/test/server/httpapi-instance.legacy.test.ts +0 -140
  1503. package/test/server/httpapi-instance.test.ts +0 -83
  1504. package/test/server/httpapi-json-parity.test.ts +0 -263
  1505. package/test/server/httpapi-mcp-oauth.test.ts +0 -76
  1506. package/test/server/httpapi-mcp.test.ts +0 -189
  1507. package/test/server/httpapi-provider.test.ts +0 -153
  1508. package/test/server/httpapi-pty-websocket.test.ts +0 -16
  1509. package/test/server/httpapi-pty.test.ts +0 -175
  1510. package/test/server/httpapi-raw-route-auth.test.ts +0 -89
  1511. package/test/server/httpapi-sdk.test.ts +0 -681
  1512. package/test/server/httpapi-session.test.ts +0 -464
  1513. package/test/server/httpapi-sync.test.ts +0 -130
  1514. package/test/server/httpapi-tui.test.ts +0 -121
  1515. package/test/server/httpapi-workspace-routing.test.ts +0 -471
  1516. package/test/server/httpapi-workspace.test.ts +0 -427
  1517. package/test/server/lib/conformance.ts +0 -88
  1518. package/test/server/lib/stateful.ts +0 -112
  1519. package/test/server/project-init-git.test.ts +0 -113
  1520. package/test/server/proxy-util.test.ts +0 -113
  1521. package/test/server/session-actions.test.ts +0 -49
  1522. package/test/server/session-list.test.ts +0 -238
  1523. package/test/server/session-messages.test.ts +0 -167
  1524. package/test/server/session-select.test.ts +0 -100
  1525. package/test/server/trace-attributes.test.ts +0 -76
  1526. package/test/server/workspace-proxy.test.ts +0 -165
  1527. package/test/server/workspace-routing.test.ts +0 -85
  1528. package/test/session/compaction.test.ts +0 -2420
  1529. package/test/session/instruction.test.ts +0 -247
  1530. package/test/session/llm.test.ts +0 -1273
  1531. package/test/session/message-v2.test.ts +0 -1291
  1532. package/test/session/messages-pagination.test.ts +0 -1173
  1533. package/test/session/network.test.ts +0 -249
  1534. package/test/session/processor-effect.test.ts +0 -847
  1535. package/test/session/prompt.test.ts +0 -2131
  1536. package/test/session/retry.test.ts +0 -340
  1537. package/test/session/revert-compact.test.ts +0 -639
  1538. package/test/session/schema-decoding.test.ts +0 -311
  1539. package/test/session/session-entry-stepper.test.ts +0 -917
  1540. package/test/session/session-schema.test.ts +0 -76
  1541. package/test/session/snapshot-tool-race.test.ts +0 -257
  1542. package/test/session/structured-output-integration.test.ts +0 -265
  1543. package/test/session/structured-output.test.ts +0 -381
  1544. package/test/session/system.test.ts +0 -73
  1545. package/test/share/share-next.test.ts +0 -333
  1546. package/test/shell/shell.test.ts +0 -99
  1547. package/test/skill/discovery.test.ts +0 -116
  1548. package/test/skill/skill.test.ts +0 -393
  1549. package/test/smoke/smoke-tui-pty.test.ts +0 -123
  1550. package/test/smoke/smoke-tui.mjs +0 -83
  1551. package/test/smoke/tui-walkthrough-driver.ts +0 -234
  1552. package/test/smoke/tui-walkthrough-input.test.ts +0 -285
  1553. package/test/smoke/tui-walkthrough-leader.test.ts +0 -175
  1554. package/test/smoke/tui-walkthrough-scroll.test.ts +0 -177
  1555. package/test/smoke/tui-walkthrough-slash.test.ts +0 -302
  1556. package/test/smoke/tui-walkthrough-system.test.ts +0 -208
  1557. package/test/snapshot/snapshot.test.ts +0 -1531
  1558. package/test/storage/db.test.ts +0 -23
  1559. package/test/storage/json-migration.test.ts +0 -832
  1560. package/test/storage/storage.test.ts +0 -293
  1561. package/test/suggestion/suggestion.test.ts +0 -1
  1562. package/test/sync/index.test.ts +0 -256
  1563. package/test/tool/__snapshots__/parameters.test.ts.snap +0 -500
  1564. package/test/tool/__snapshots__/tool.test.ts.snap +0 -9
  1565. package/test/tool/apply_patch.test.ts +0 -614
  1566. package/test/tool/bash.test.ts +0 -1225
  1567. package/test/tool/diagnostics-filter.test.ts +0 -55
  1568. package/test/tool/edit.test.ts +0 -754
  1569. package/test/tool/external-directory.test.ts +0 -169
  1570. package/test/tool/fixtures/large-image.png +0 -0
  1571. package/test/tool/fixtures/models-api.json +0 -65179
  1572. package/test/tool/glob.test.ts +0 -107
  1573. package/test/tool/grep.test.ts +0 -114
  1574. package/test/tool/lsp.test.ts +0 -187
  1575. package/test/tool/parameters.test.ts +0 -243
  1576. package/test/tool/question.test.ts +0 -129
  1577. package/test/tool/read.test.ts +0 -500
  1578. package/test/tool/recall.test.ts +0 -151
  1579. package/test/tool/registry.test.ts +0 -203
  1580. package/test/tool/skill.test.ts +0 -135
  1581. package/test/tool/suggest.test.ts +0 -1
  1582. package/test/tool/task.test.ts +0 -612
  1583. package/test/tool/tool-define.test.ts +0 -99
  1584. package/test/tool/truncation.test.ts +0 -260
  1585. package/test/tool/webfetch.test.ts +0 -103
  1586. package/test/tool/write.test.ts +0 -291
  1587. package/test/util/data-url.test.ts +0 -14
  1588. package/test/util/effect-zod.test.ts +0 -754
  1589. package/test/util/error.test.ts +0 -38
  1590. package/test/util/filesystem.test.ts +0 -656
  1591. package/test/util/format.test.ts +0 -59
  1592. package/test/util/glob.test.ts +0 -164
  1593. package/test/util/iife.test.ts +0 -36
  1594. package/test/util/lazy.test.ts +0 -50
  1595. package/test/util/lock.test.ts +0 -72
  1596. package/test/util/log.test.ts +0 -86
  1597. package/test/util/module.test.ts +0 -59
  1598. package/test/util/process.test.ts +0 -128
  1599. package/test/util/timeout.test.ts +0 -21
  1600. package/test/util/which.test.ts +0 -100
  1601. package/test/util/wildcard.test.ts +0 -90
  1602. package/test/workspace/workspace-restore.test.ts +0 -296
  1603. package/tsconfig.json +0 -19
@@ -1,269 +0,0 @@
1
- import { Deferred, Effect, Layer, Schema, Context } from "effect"
2
- import { Bus } from "@/bus"
3
- import { BusEvent } from "@/bus/bus-event"
4
- import { InstanceState } from "@/effect/instance-state"
5
- import { SessionID, MessageID } from "@/session/schema"
6
- import { zod } from "@/util/effect-zod"
7
- import * as Log from "@saeeol/core/util/log"
8
- import { withStatics } from "@/util/schema"
9
- import { QuestionID } from "./schema"
10
- import { makeRuntime } from "@/effect/run-service"
11
- import { SaeeolQuestion } from "@/saeeol/question"
12
-
13
- const log = Log.create({ service: "question" })
14
-
15
- // Schemas
16
-
17
- export class Option extends Schema.Class<Option>("QuestionOption")({
18
- label: Schema.String.annotate({
19
- description: "Display text (1-5 words, concise)",
20
- }),
21
- description: Schema.String.annotate({
22
- description: "Explanation of choice",
23
- }),
24
- // replying with the canonical English label (backend matches on `label`).
25
- labelKey: Schema.optional(Schema.String).annotate({
26
- description: "Optional i18n key for the label; clients translate and still reply with `label`",
27
- }),
28
- descriptionKey: Schema.optional(Schema.String).annotate({
29
- description: "Optional i18n key for the description",
30
- }),
31
- // when this option is selected (before the reply is confirmed by the server).
32
- mode: Schema.optional(Schema.String).annotate({
33
- description: "Optional agent/mode name to pre-select in the UI when this option is picked",
34
- }),
35
- }) {
36
- static readonly zod = zod(this)
37
- }
38
-
39
- const base = {
40
- question: Schema.String.annotate({
41
- description: "Complete question",
42
- }),
43
- header: Schema.String.annotate({
44
- description: "Very short label (max 30 chars)",
45
- }),
46
- options: Schema.Array(Option).annotate({
47
- description: "Available choices",
48
- }),
49
- multiple: Schema.optional(Schema.Boolean).annotate({
50
- description: "Allow selecting multiple choices",
51
- }),
52
- questionKey: Schema.optional(Schema.String).annotate({
53
- description: "Optional i18n key for the question text; clients fall back to `question` when missing",
54
- }),
55
- headerKey: Schema.optional(Schema.String).annotate({
56
- description: "Optional i18n key for the header; clients fall back to `header` when missing",
57
- }),
58
- }
59
-
60
- export class Info extends Schema.Class<Info>("QuestionInfo")({
61
- ...base,
62
- custom: Schema.optional(Schema.Boolean).annotate({
63
- description: "Allow typing a custom answer (default: true)",
64
- }),
65
- }) {
66
- static readonly zod = zod(this)
67
- }
68
-
69
- export class Prompt extends Schema.Class<Prompt>("QuestionPrompt")(base) {
70
- static readonly zod = zod(this)
71
- }
72
-
73
- export class Tool extends Schema.Class<Tool>("QuestionTool")({
74
- messageID: MessageID,
75
- callID: Schema.String,
76
- }) {
77
- static readonly zod = zod(this)
78
- }
79
-
80
- export class Request extends Schema.Class<Request>("QuestionRequest")({
81
- id: QuestionID,
82
- sessionID: SessionID,
83
- questions: Schema.Array(Info).annotate({
84
- description: "Questions to ask",
85
- }),
86
- blocking: Schema.optional(Schema.Boolean).annotate({
87
- description: "Whether this question blocks prompt input (default: true)",
88
- }),
89
- tool: Schema.optional(Tool),
90
- }) {
91
- static readonly zod = zod(this)
92
- }
93
-
94
- export const Answer = Schema.Array(Schema.String)
95
- .annotate({ identifier: "QuestionAnswer" })
96
- .pipe(withStatics((s) => ({ zod: zod(s) })))
97
- export type Answer = Schema.Schema.Type<typeof Answer>
98
-
99
- export class Reply extends Schema.Class<Reply>("QuestionReply")({
100
- answers: Schema.Array(Answer).annotate({
101
- description: "User answers in order of questions (each answer is an array of selected labels)",
102
- }),
103
- }) {
104
- static readonly zod = zod(this)
105
- }
106
-
107
- class Replied extends Schema.Class<Replied>("QuestionReplied")({
108
- sessionID: SessionID,
109
- requestID: QuestionID,
110
- answers: Schema.Array(Answer),
111
- }) {}
112
-
113
- class Rejected extends Schema.Class<Rejected>("QuestionRejected")({
114
- sessionID: SessionID,
115
- requestID: QuestionID,
116
- }) {}
117
-
118
- export const Event = {
119
- Asked: BusEvent.define("question.asked", Request),
120
- Replied: BusEvent.define("question.replied", Replied),
121
- Rejected: BusEvent.define("question.rejected", Rejected),
122
- }
123
-
124
- export class RejectedError extends Schema.TaggedErrorClass<RejectedError>()("QuestionRejectedError", {}) {
125
- override get message() {
126
- return "The user dismissed this question"
127
- }
128
- }
129
-
130
- interface PendingEntry {
131
- info: Request
132
- deferred: Deferred.Deferred<ReadonlyArray<Answer>, RejectedError>
133
- }
134
-
135
- interface State {
136
- pending: Map<QuestionID, PendingEntry>
137
- }
138
-
139
- // Service
140
-
141
- export interface Interface {
142
- readonly ask: (input: {
143
- sessionID: SessionID
144
- questions: ReadonlyArray<Info>
145
- blocking?: boolean
146
- tool?: Tool
147
- }) => Effect.Effect<ReadonlyArray<Answer>, RejectedError>
148
- readonly reply: (input: { requestID: QuestionID; answers: ReadonlyArray<Answer> }) => Effect.Effect<void>
149
- readonly reject: (requestID: QuestionID) => Effect.Effect<void>
150
- readonly list: () => Effect.Effect<ReadonlyArray<Request>>
151
- readonly dismissAll: (sessionID: SessionID) => Effect.Effect<void>
152
- }
153
-
154
- export class Service extends Context.Service<Service, Interface>()("@saeeol/Question") {}
155
-
156
- export const layer = Layer.effect(
157
- Service,
158
- Effect.gen(function* () {
159
- const bus = yield* Bus.Service
160
- const state = yield* InstanceState.make<State>(
161
- Effect.fn("Question.state")(function* () {
162
- const state = {
163
- pending: new Map<QuestionID, PendingEntry>(),
164
- }
165
-
166
- yield* Effect.addFinalizer(() =>
167
- Effect.gen(function* () {
168
- for (const item of state.pending.values()) {
169
- yield* Deferred.fail(item.deferred, new RejectedError())
170
- }
171
- state.pending.clear()
172
- }),
173
- )
174
-
175
- return state
176
- }),
177
- )
178
-
179
- const ask = Effect.fn("Question.ask")(function* (input: {
180
- sessionID: SessionID
181
- questions: ReadonlyArray<Info>
182
- blocking?: boolean
183
- tool?: Tool
184
- }) {
185
- const pending = (yield* InstanceState.get(state)).pending
186
- const id = QuestionID.ascending()
187
- log.info("asking", { id, questions: input.questions.length })
188
-
189
- const deferred = yield* Deferred.make<ReadonlyArray<Answer>, RejectedError>()
190
- const info = Schema.decodeUnknownSync(Request)({
191
- id,
192
- sessionID: input.sessionID,
193
- questions: input.questions,
194
- blocking: input.blocking,
195
- tool: input.tool,
196
- })
197
- yield* SaeeolQuestion.guardFollowup(input.sessionID, () => new RejectedError())
198
-
199
- pending.set(id, { info, deferred })
200
- yield* bus.publish(Event.Asked, info)
201
-
202
- return yield* Effect.ensuring(
203
- Deferred.await(deferred),
204
- Effect.sync(() => {
205
- pending.delete(id)
206
- }),
207
- )
208
- })
209
-
210
- const reply = Effect.fn("Question.reply")(function* (input: {
211
- requestID: QuestionID
212
- answers: ReadonlyArray<Answer>
213
- }) {
214
- const pending = (yield* InstanceState.get(state)).pending
215
- const existing = pending.get(input.requestID)
216
- if (!existing) {
217
- log.warn("reply for unknown request", { requestID: input.requestID })
218
- return
219
- }
220
- pending.delete(input.requestID)
221
- log.info("replied", { requestID: input.requestID, answers: input.answers })
222
- yield* bus.publish(Event.Replied, {
223
- sessionID: existing.info.sessionID,
224
- requestID: existing.info.id,
225
- answers: input.answers.map((a) => [...a]),
226
- })
227
- yield* Deferred.succeed(existing.deferred, input.answers)
228
- })
229
-
230
- const reject = Effect.fn("Question.reject")(function* (requestID: QuestionID) {
231
- const pending = (yield* InstanceState.get(state)).pending
232
- const existing = pending.get(requestID)
233
- if (!existing) {
234
- log.warn("reject for unknown request", { requestID })
235
- return
236
- }
237
- pending.delete(requestID)
238
- log.info("rejected", { requestID })
239
- yield* bus.publish(Event.Rejected, {
240
- sessionID: existing.info.sessionID,
241
- requestID: existing.info.id,
242
- })
243
- yield* Deferred.fail(existing.deferred, new RejectedError())
244
- })
245
-
246
- const list = Effect.fn("Question.list")(function* () {
247
- const pending = (yield* InstanceState.get(state)).pending
248
- return Array.from(pending.values(), (x) => x.info)
249
- })
250
- const dismissAll = SaeeolQuestion.makeDismissAll({
251
- state,
252
- publishRejected: (entry) =>
253
- bus.publish(Event.Rejected, { sessionID: entry.info.sessionID, requestID: entry.info.id }),
254
- makeError: () => new RejectedError(),
255
- })
256
-
257
- return Service.of({ ask, reply, reject, list, dismissAll })
258
- }),
259
- )
260
-
261
- export const defaultLayer = layer.pipe(Layer.provide(Bus.layer))
262
- const { runPromise } = makeRuntime(Service, defaultLayer)
263
- export const list = () => runPromise((svc) => svc.list())
264
- export const ask = (input: Parameters<Interface["ask"]>[0]) => runPromise((svc) => svc.ask(input))
265
- export const reply = (input: Parameters<Interface["reply"]>[0]) => runPromise((svc) => svc.reply(input))
266
- export const reject = (requestID: QuestionID) => runPromise((svc) => svc.reject(requestID))
267
- export const dismissAll = (sessionID: string) => runPromise((svc) => svc.dismissAll(SessionID.make(sessionID)))
268
-
269
- export * as Question from "."
@@ -1,16 +0,0 @@
1
- import { Schema } from "effect"
2
-
3
- import { Identifier } from "@/id/id"
4
- import { zod, ZodOverride } from "@/util/effect-zod"
5
- import { Newtype } from "@/util/schema"
6
-
7
- export class QuestionID extends Newtype<QuestionID>()(
8
- "QuestionID",
9
- Schema.String.annotate({ [ZodOverride]: Identifier.schema("question") }),
10
- ) {
11
- static ascending(id?: string): QuestionID {
12
- return this.make(Identifier.ascending("question", id))
13
- }
14
-
15
- static readonly zod = zod(this)
16
- }
@@ -1,33 +0,0 @@
1
- // Auto-generated by packages/web/generate.ts — DO NOT EDIT
2
- import { writeFileSync, mkdirSync, existsSync } from "node:fs"
3
- import { join, dirname } from "node:path"
4
- import { tmpdir } from "node:os"
5
- import { Buffer } from "node:buffer"
6
-
7
- const encoded: Record<string, string> = {
8
- "assets/index--nIB0GG1.js": "KGZ1bmN0aW9uKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikucmVsTGlzdDtpZih0JiZ0LnN1cHBvcnRzJiZ0LnN1cHBvcnRzKCJtb2R1bGVwcmVsb2FkIikpcmV0dXJuO2Zvcihjb25zdCBpIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl0nKSlzKGkpO25ldyBNdXRhdGlvbk9ic2VydmVyKGk9Pntmb3IoY29uc3QgbCBvZiBpKWlmKGwudHlwZT09PSJjaGlsZExpc3QiKWZvcihjb25zdCBvIG9mIGwuYWRkZWROb2RlcylvLnRhZ05hbWU9PT0iTElOSyImJm8ucmVsPT09Im1vZHVsZXByZWxvYWQiJiZzKG8pfSkub2JzZXJ2ZShkb2N1bWVudCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtmdW5jdGlvbiBuKGkpe2NvbnN0IGw9e307cmV0dXJuIGkuaW50ZWdyaXR5JiYobC5pbnRlZ3JpdHk9aS5pbnRlZ3JpdHkpLGkucmVmZXJyZXJQb2xpY3kmJihsLnJlZmVycmVyUG9saWN5PWkucmVmZXJyZXJQb2xpY3kpLGkuY3Jvc3NPcmlnaW49PT0idXNlLWNyZWRlbnRpYWxzIj9sLmNyZWRlbnRpYWxzPSJpbmNsdWRlIjppLmNyb3NzT3JpZ2luPT09ImFub255bW91cyI/bC5jcmVkZW50aWFscz0ib21pdCI6bC5jcmVkZW50aWFscz0ic2FtZS1vcmlnaW4iLGx9ZnVuY3Rpb24gcyhpKXtpZihpLmVwKXJldHVybjtpLmVwPSEwO2NvbnN0IGw9bihpKTtmZXRjaChpLmhyZWYsbCl9fSkoKTtjb25zdCBrZT0hMSxPZT0oZSx0KT0+ZT09PXQsTmU9U3ltYm9sKCJzb2xpZC10cmFjayIpLFk9e2VxdWFsczpPZX07bGV0IEY9bnVsbCxiZT14ZTtjb25zdCBJPTEsWj0yLHZlPXtvd25lZDpudWxsLGNsZWFudXBzOm51bGwsY29udGV4dDpudWxsLG93bmVyOm51bGx9O3ZhciBoPW51bGw7bGV0IG9lPW51bGwsSWU9bnVsbCxwPW51bGwseT1udWxsLEE9bnVsbCxuZT0wO2Z1bmN0aW9uIFgoZSx0KXtjb25zdCBuPXAscz1oLGk9ZS5sZW5ndGg9PT0wLGw9dD09PXZvaWQgMD9zOnQsbz1pP3ZlOntvd25lZDpudWxsLGNsZWFudXBzOm51bGwsY29udGV4dDpsP2wuY29udGV4dDpudWxsLG93bmVyOmx9LHI9aT9lOigpPT5lKCgpPT5OKCgpPT5HKG8pKSk7aD1vLHA9bnVsbDt0cnl7cmV0dXJuIEgociwhMCl9ZmluYWxseXtwPW4saD1zfX1mdW5jdGlvbiBPKGUsdCl7dD10P09iamVjdC5hc3NpZ24oe30sWSx0KTpZO2NvbnN0IG49e3ZhbHVlOmUsb2JzZXJ2ZXJzOm51bGwsb2JzZXJ2ZXJTbG90czpudWxsLGNvbXBhcmF0b3I6dC5lcXVhbHN8fHZvaWQgMH0scz1pPT4odHlwZW9mIGk9PSJmdW5jdGlvbiImJihpPWkobi52YWx1ZSkpLEVlKG4saSkpO3JldHVybltTZS5iaW5kKG4pLHNdfWZ1bmN0aW9uIEsoZSx0LG4pe2NvbnN0IHM9c2UoZSx0LCExLEkpO0oocyl9ZnVuY3Rpb24gTGUoZSx0LG4pe2JlPVJlO2NvbnN0IHM9c2UoZSx0LCExLEkpO3MudXNlcj0hMCxBP0EucHVzaChzKTpKKHMpfWZ1bmN0aW9uIHEoZSx0LG4pe249bj9PYmplY3QuYXNzaWduKHt9LFksbik6WTtjb25zdCBzPXNlKGUsdCwhMCwwKTtyZXR1cm4gcy5vYnNlcnZlcnM9bnVsbCxzLm9ic2VydmVyU2xvdHM9bnVsbCxzLmNvbXBhcmF0b3I9bi5lcXVhbHN8fHZvaWQgMCxKKHMpLFNlLmJpbmQocyl9ZnVuY3Rpb24gTihlKXtpZihwPT09bnVsbClyZXR1cm4gZSgpO2NvbnN0IHQ9cDtwPW51bGw7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtwPXR9fWZ1bmN0aW9uIERlKGUpe0xlKCgpPT5OKGUpKX1mdW5jdGlvbiBmZShlKXtyZXR1cm4gaD09PW51bGx8fChoLmNsZWFudXBzPT09bnVsbD9oLmNsZWFudXBzPVtlXTpoLmNsZWFudXBzLnB1c2goZSkpLGV9ZnVuY3Rpb24gQmUoZSx0KXtGfHwoRj1TeW1ib2woImVycm9yIikpLGg9c2Uodm9pZCAwLHZvaWQgMCwhMCksaC5jb250ZXh0PXsuLi5oLmNvbnRleHQsW0ZdOlt0XX07dHJ5e3JldHVybiBlKCl9Y2F0Y2gobil7aWUobil9ZmluYWxseXtoPWgub3duZXJ9fWZ1bmN0aW9uIFNlKCl7aWYodGhpcy5zb3VyY2VzJiZ0aGlzLnN0YXRlKWlmKHRoaXMuc3RhdGU9PT1JKUoodGhpcyk7ZWxzZXtjb25zdCBlPXk7eT1udWxsLEgoKCk9PmVlKHRoaXMpLCExKSx5PWV9aWYocCl7Y29uc3QgZT10aGlzLm9ic2VydmVycz90aGlzLm9ic2VydmVycy5sZW5ndGg6MDtwLnNvdXJjZXM/KHAuc291cmNlcy5wdXNoKHRoaXMpLHAuc291cmNlU2xvdHMucHVzaChlKSk6KHAuc291cmNlcz1bdGhpc10scC5zb3VyY2VTbG90cz1bZV0pLHRoaXMub2JzZXJ2ZXJzPyh0aGlzLm9ic2VydmVycy5wdXNoKHApLHRoaXMub2JzZXJ2ZXJTbG90cy5wdXNoKHAuc291cmNlcy5sZW5ndGgtMSkpOih0aGlzLm9ic2VydmVycz1bcF0sdGhpcy5vYnNlcnZlclNsb3RzPVtwLnNvdXJjZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy52YWx1ZX1mdW5jdGlvbiBFZShlLHQsbil7bGV0IHM9ZS52YWx1ZTtyZXR1cm4oIWUuY29tcGFyYXRvcnx8IWUuY29tcGFyYXRvcihzLHQpKSYmKGUudmFsdWU9dCxlLm9ic2VydmVycyYmZS5vYnNlcnZlcnMubGVuZ3RoJiZIKCgpPT57Zm9yKGxldCBpPTA7aTxlLm9ic2VydmVycy5sZW5ndGg7aSs9MSl7Y29uc3QgbD1lLm9ic2VydmVyc1tpXSxvPW9lJiZvZS5ydW5uaW5nO28mJm9lLmRpc3Bvc2VkLmhhcyhsKSwobz8hbC50U3RhdGU6IWwuc3RhdGUpJiYobC5wdXJlP3kucHVzaChsKTpBLnB1c2gobCksbC5vYnNlcnZlcnMmJl9lKGwpKSxvfHwobC5zdGF0ZT1JKX1pZih5Lmxlbmd0aD4xZTYpdGhyb3cgeT1bXSxuZXcgRXJyb3J9LCExKSksdH1mdW5jdGlvbiBKKGUpe2lmKCFlLmZuKXJldHVybjtHKGUpO2NvbnN0IHQ9bmU7TWUoZSxlLnZhbHVlLHQpfWZ1bmN0aW9uIE1lKGUsdCxuKXtsZXQgcztjb25zdCBpPWgsbD1wO3A9aD1lO3RyeXtzPWUuZm4odCl9Y2F0Y2gobyl7cmV0dXJuIGUucHVyZSYmKGUuc3RhdGU9SSxlLm93bmVkJiZlLm93bmVkLmZvckVhY2goRyksZS5vd25lZD1udWxsKSxlLnVwZGF0ZWRBdD1uKzEsaWUobyl9ZmluYWxseXtwPWwsaD1pfSghZS51cGRhdGVkQXR8fGUudXBkYXRlZEF0PD1uKSYmKGUudXBkYXRlZEF0IT1udWxsJiYib2JzZXJ2ZXJzImluIGU/RWUoZSxzKTplLnZhbHVlPXMsZS51cGRhdGVkQXQ9bil9ZnVuY3Rpb24gc2UoZSx0LG4scz1JLGkpe2NvbnN0IGw9e2ZuOmUsc3RhdGU6cyx1cGRhdGVkQXQ6bnVsbCxvd25lZDpudWxsLHNvdXJjZXM6bnVsbCxzb3VyY2VTbG90czpudWxsLGNsZWFudXBzOm51bGwsdmFsdWU6dCxvd25lcjpoLGNvbnRleHQ6aD9oLmNvbnRleHQ6bnVsbCxwdXJlOm59O3JldHVybiBoPT09bnVsbHx8aCE9PXZlJiYoaC5vd25lZD9oLm93bmVkLnB1c2gobCk6aC5vd25lZD1bbF0pLGx9ZnVuY3Rpb24geihlKXtpZihlLnN0YXRlPT09MClyZXR1cm47aWYoZS5zdGF0ZT09PVopcmV0dXJuIGVlKGUpO2lmKGUuc3VzcGVuc2UmJk4oZS5zdXNwZW5zZS5pbkZhbGxiYWNrKSlyZXR1cm4gZS5zdXNwZW5zZS5lZmZlY3RzLnB1c2goZSk7Y29uc3QgdD1bZV07Zm9yKDsoZT1lLm93bmVyKSYmKCFlLnVwZGF0ZWRBdHx8ZS51cGRhdGVkQXQ8bmUpOyllLnN0YXRlJiZ0LnB1c2goZSk7Zm9yKGxldCBuPXQubGVuZ3RoLTE7bj49MDtuLS0paWYoZT10W25dLGUuc3RhdGU9PT1JKUooZSk7ZWxzZSBpZihlLnN0YXRlPT09Wil7Y29uc3Qgcz15O3k9bnVsbCxIKCgpPT5lZShlLHRbMF0pLCExKSx5PXN9fWZ1bmN0aW9uIEgoZSx0KXtpZih5KXJldHVybiBlKCk7bGV0IG49ITE7dHx8KHk9W10pLEE/bj0hMDpBPVtdLG5lKys7dHJ5e2NvbnN0IHM9ZSgpO3JldHVybiBQZShuKSxzfWNhdGNoKHMpe258fChBPW51bGwpLHk9bnVsbCxpZShzKX19ZnVuY3Rpb24gUGUoZSl7aWYoeSYmKHhlKHkpLHk9bnVsbCksZSlyZXR1cm47Y29uc3QgdD1BO0E9bnVsbCx0Lmxlbmd0aCYmSCgoKT0+YmUodCksITEpfWZ1bmN0aW9uIHhlKGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXooZVt0XSl9ZnVuY3Rpb24gUmUoZSl7bGV0IHQsbj0wO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IHM9ZVt0XTtzLnVzZXI/ZVtuKytdPXM6eihzKX1mb3IodD0wO3Q8bjt0KyspeihlW3RdKX1mdW5jdGlvbiBlZShlLHQpe2Uuc3RhdGU9MDtmb3IobGV0IG49MDtuPGUuc291cmNlcy5sZW5ndGg7bis9MSl7Y29uc3Qgcz1lLnNvdXJjZXNbbl07aWYocy5zb3VyY2VzKXtjb25zdCBpPXMuc3RhdGU7aT09PUk/cyE9PXQmJighcy51cGRhdGVkQXR8fHMudXBkYXRlZEF0PG5lKSYmeihzKTppPT09WiYmZWUocyx0KX19fWZ1bmN0aW9uIF9lKGUpe2ZvcihsZXQgdD0wO3Q8ZS5vYnNlcnZlcnMubGVuZ3RoO3QrPTEpe2NvbnN0IG49ZS5vYnNlcnZlcnNbdF07bi5zdGF0ZXx8KG4uc3RhdGU9WixuLnB1cmU/eS5wdXNoKG4pOkEucHVzaChuKSxuLm9ic2VydmVycyYmX2UobikpfX1mdW5jdGlvbiBHKGUpe2xldCB0O2lmKGUuc291cmNlcylmb3IoO2Uuc291cmNlcy5sZW5ndGg7KXtjb25zdCBuPWUuc291cmNlcy5wb3AoKSxzPWUuc291cmNlU2xvdHMucG9wKCksaT1uLm9ic2VydmVycztpZihpJiZpLmxlbmd0aCl7Y29uc3QgbD1pLnBvcCgpLG89bi5vYnNlcnZlclNsb3RzLnBvcCgpO3M8aS5sZW5ndGgmJihsLnNvdXJjZVNsb3RzW29dPXMsaVtzXT1sLG4ub2JzZXJ2ZXJTbG90c1tzXT1vKX19aWYoZS50T3duZWQpe2Zvcih0PWUudE93bmVkLmxlbmd0aC0xO3Q+PTA7dC0tKUcoZS50T3duZWRbdF0pO2RlbGV0ZSBlLnRPd25lZH1pZihlLm93bmVkKXtmb3IodD1lLm93bmVkLmxlbmd0aC0xO3Q+PTA7dC0tKUcoZS5vd25lZFt0XSk7ZS5vd25lZD1udWxsfWlmKGUuY2xlYW51cHMpe2Zvcih0PWUuY2xlYW51cHMubGVuZ3RoLTE7dD49MDt0LS0pZS5jbGVhbnVwc1t0XSgpO2UuY2xlYW51cHM9bnVsbH1lLnN0YXRlPTB9ZnVuY3Rpb24gamUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lOm5ldyBFcnJvcih0eXBlb2YgZT09InN0cmluZyI/ZToiVW5rbm93biBlcnJvciIse2NhdXNlOmV9KX1mdW5jdGlvbiBwZShlLHQsbil7dHJ5e2Zvcihjb25zdCBzIG9mIHQpcyhlKX1jYXRjaChzKXtpZShzLG4mJm4ub3duZXJ8fG51bGwpfX1mdW5jdGlvbiBpZShlLHQ9aCl7Y29uc3Qgbj1GJiZ0JiZ0LmNvbnRleHQmJnQuY29udGV4dFtGXSxzPWplKGUpO2lmKCFuKXRocm93IHM7QT9BLnB1c2goe2ZuKCl7cGUocyxuLHQpfSxzdGF0ZTpJfSk6cGUocyxuLHQpfWNvbnN0IFVlPVN5bWJvbCgiZmFsbGJhY2siKTtmdW5jdGlvbiBnZShlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdKCl9ZnVuY3Rpb24gS2UoZSx0LG49e30pe2xldCBzPVtdLGk9W10sbD1bXSxvPTAscj10Lmxlbmd0aD4xP1tdOm51bGw7cmV0dXJuIGZlKCgpPT5nZShsKSksKCk9PntsZXQgYT1lKCl8fFtdLGY9YS5sZW5ndGgsZCxjO3JldHVybiBhW05lXSxOKCgpPT57bGV0ICQsVCxFLGosUCxiLHYsdSxtO2lmKGY9PT0wKW8hPT0wJiYoZ2UobCksbD1bXSxzPVtdLGk9W10sbz0wLHImJihyPVtdKSksbi5mYWxsYmFjayYmKHM9W1VlXSxpWzBdPVgodz0+KGxbMF09dyxuLmZhbGxiYWNrKCkpKSxvPTEpO2Vsc2UgaWYobz09PTApe2ZvcihpPW5ldyBBcnJheShmKSxjPTA7YzxmO2MrKylzW2NdPWFbY10saVtjXT1YKEMpO289Zn1lbHNle2ZvcihFPW5ldyBBcnJheShmKSxqPW5ldyBBcnJheShmKSxyJiYoUD1uZXcgQXJyYXkoZikpLGI9MCx2PU1hdGgubWluKG8sZik7Yjx2JiZzW2JdPT09YVtiXTtiKyspO2Zvcih2PW8tMSx1PWYtMTt2Pj1iJiZ1Pj1iJiZzW3ZdPT09YVt1XTt2LS0sdS0tKUVbdV09aVt2XSxqW3VdPWxbdl0sciYmKFBbdV09clt2XSk7Zm9yKCQ9bmV3IE1hcCxUPW5ldyBBcnJheSh1KzEpLGM9dTtjPj1iO2MtLSltPWFbY10sZD0kLmdldChtKSxUW2NdPWQ9PT12b2lkIDA/LTE6ZCwkLnNldChtLGMpO2ZvcihkPWI7ZDw9djtkKyspbT1zW2RdLGM9JC5nZXQobSksYyE9PXZvaWQgMCYmYyE9PS0xPyhFW2NdPWlbZF0saltjXT1sW2RdLHImJihQW2NdPXJbZF0pLGM9VFtjXSwkLnNldChtLGMpKTpsW2RdKCk7Zm9yKGM9YjtjPGY7YysrKWMgaW4gRT8oaVtjXT1FW2NdLGxbY109altjXSxyJiYocltjXT1QW2NdLHJbY10oYykpKTppW2NdPVgoQyk7aT1pLnNsaWNlKDAsbz1mKSxzPWEuc2xpY2UoMCl9cmV0dXJuIGl9KTtmdW5jdGlvbiBDKCQpe2lmKGxbY109JCxyKXtjb25zdFtULEVdPU8oYyk7cmV0dXJuIHJbY109RSx0KGFbY10sVCl9cmV0dXJuIHQoYVtjXSl9fX1mdW5jdGlvbiBCKGUsdCl7cmV0dXJuIE4oKCk9PmUodHx8e30pKX1jb25zdCBWZT1lPT5gU3RhbGUgcmVhZCBmcm9tIDwke2V9Pi5gO2Z1bmN0aW9uIG1lKGUpe2NvbnN0IHQ9ImZhbGxiYWNrImluIGUmJntmYWxsYmFjazooKT0+ZS5mYWxsYmFja307cmV0dXJuIHEoS2UoKCk9PmUuZWFjaCxlLmNoaWxkcmVuLHR8fHZvaWQgMCkpfWZ1bmN0aW9uIGNlKGUpe2NvbnN0IHQ9ZS5rZXllZCxuPXEoKCk9PmUud2hlbix2b2lkIDAsdm9pZCAwKSxzPXQ/bjpxKG4sdm9pZCAwLHtlcXVhbHM6KGksbCk9PiFpPT0hbH0pO3JldHVybiBxKCgpPT57Y29uc3QgaT1zKCk7aWYoaSl7Y29uc3QgbD1lLmNoaWxkcmVuO3JldHVybiB0eXBlb2YgbD09ImZ1bmN0aW9uIiYmbC5sZW5ndGg+MD9OKCgpPT5sKHQ/aTooKT0+e2lmKCFOKHMpKXRocm93IFZlKCJTaG93Iik7cmV0dXJuIG4oKX0pKTpsfXJldHVybiBlLmZhbGxiYWNrfSx2b2lkIDAsdm9pZCAwKX1sZXQgVztmdW5jdGlvbiBGZShlKXtsZXQgdDtjb25zdFtuLHNdPU8odCx2b2lkIDApO3JldHVybiBXfHwoVz1uZXcgU2V0KSxXLmFkZChzKSxmZSgoKT0+Vy5kZWxldGUocykpLHEoKCk9PntsZXQgaTtpZihpPW4oKSl7Y29uc3QgbD1lLmZhbGxiYWNrO3JldHVybiB0eXBlb2YgbD09ImZ1bmN0aW9uIiYmbC5sZW5ndGg/TigoKT0+bChpLCgpPT5zKCkpKTpsfXJldHVybiBCZSgoKT0+ZS5jaGlsZHJlbixzKX0sdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gcWUoZSx0LG4pe2xldCBzPW4ubGVuZ3RoLGk9dC5sZW5ndGgsbD1zLG89MCxyPTAsYT10W2ktMV0ubmV4dFNpYmxpbmcsZj1udWxsO2Zvcig7bzxpfHxyPGw7KXtpZih0W29dPT09bltyXSl7bysrLHIrKztjb250aW51ZX1mb3IoO3RbaS0xXT09PW5bbC0xXTspaS0tLGwtLTtpZihpPT09byl7Y29uc3QgZD1sPHM/cj9uW3ItMV0ubmV4dFNpYmxpbmc6bltsLXJdOmE7Zm9yKDtyPGw7KWUuaW5zZXJ0QmVmb3JlKG5bcisrXSxkKX1lbHNlIGlmKGw9PT1yKWZvcig7bzxpOykoIWZ8fCFmLmhhcyh0W29dKSkmJnRbb10ucmVtb3ZlKCksbysrO2Vsc2UgaWYodFtvXT09PW5bbC0xXSYmbltyXT09PXRbaS0xXSl7Y29uc3QgZD10Wy0taV0ubmV4dFNpYmxpbmc7ZS5pbnNlcnRCZWZvcmUobltyKytdLHRbbysrXS5uZXh0U2libGluZyksZS5pbnNlcnRCZWZvcmUoblstLWxdLGQpLHRbaV09bltsXX1lbHNle2lmKCFmKXtmPW5ldyBNYXA7bGV0IGM9cjtmb3IoO2M8bDspZi5zZXQobltjXSxjKyspfWNvbnN0IGQ9Zi5nZXQodFtvXSk7aWYoZCE9bnVsbClpZihyPGQmJmQ8bCl7bGV0IGM9byxDPTEsJDtmb3IoOysrYzxpJiZjPGwmJiEoKCQ9Zi5nZXQodFtjXSkpPT1udWxsfHwkIT09ZCtDKTspQysrO2lmKEM+ZC1yKXtjb25zdCBUPXRbb107Zm9yKDtyPGQ7KWUuaW5zZXJ0QmVmb3JlKG5bcisrXSxUKX1lbHNlIGUucmVwbGFjZUNoaWxkKG5bcisrXSx0W28rK10pfWVsc2UgbysrO2Vsc2UgdFtvKytdLnJlbW92ZSgpfX19Y29uc3QgeWU9Il8kRFhfREVMRUdBVEUiO2Z1bmN0aW9uIEdlKGUsdCxuLHM9e30pe2xldCBpO3JldHVybiBYKGw9PntpPWwsdD09PWRvY3VtZW50P2UoKTpTKHQsZSgpLHQuZmlyc3RDaGlsZD9udWxsOnZvaWQgMCxuKX0scy5vd25lciksKCk9PntpKCksdC50ZXh0Q29udGVudD0iIn19ZnVuY3Rpb24gTShlLHQsbixzKXtsZXQgaTtjb25zdCBsPSgpPT57Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiByLmlubmVySFRNTD1lLHIuY29udGVudC5maXJzdENoaWxkfSxvPSgpPT4oaXx8KGk9bCgpKSkuY2xvbmVOb2RlKCEwKTtyZXR1cm4gby5jbG9uZU5vZGU9byxvfWZ1bmN0aW9uIEFlKGUsdD13aW5kb3cuZG9jdW1lbnQpe2NvbnN0IG49dFt5ZV18fCh0W3llXT1uZXcgU2V0KTtmb3IobGV0IHM9MCxpPWUubGVuZ3RoO3M8aTtzKyspe2NvbnN0IGw9ZVtzXTtuLmhhcyhsKXx8KG4uYWRkKGwpLHQuYWRkRXZlbnRMaXN0ZW5lcihsLEhlKSl9fWZ1bmN0aW9uIEplKGUsdCl7dD09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTplLmNsYXNzTmFtZT10fWZ1bmN0aW9uIHdlKGUsdCxuKXtyZXR1cm4gTigoKT0+ZSh0LG4pKX1mdW5jdGlvbiBTKGUsdCxuLHMpe2lmKG4hPT12b2lkIDAmJiFzJiYocz1bXSksdHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuIHRlKGUsdCxzLG4pO0soaT0+dGUoZSx0KCksaSxuKSxzKX1mdW5jdGlvbiBIZShlKXtsZXQgdD1lLnRhcmdldDtjb25zdCBuPWAkJCR7ZS50eXBlfWAscz1lLnRhcmdldCxpPWUuY3VycmVudFRhcmdldCxsPWE9Pk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ0YXJnZXQiLHtjb25maWd1cmFibGU6ITAsdmFsdWU6YX0pLG89KCk9Pntjb25zdCBhPXRbbl07aWYoYSYmIXQuZGlzYWJsZWQpe2NvbnN0IGY9dFtgJHtufURhdGFgXTtpZihmIT09dm9pZCAwP2EuY2FsbCh0LGYsZSk6YS5jYWxsKHQsZSksZS5jYW5jZWxCdWJibGUpcmV0dXJufXJldHVybiB0Lmhvc3QmJnR5cGVvZiB0Lmhvc3QhPSJzdHJpbmciJiYhdC5ob3N0Ll8kaG9zdCYmdC5jb250YWlucyhlLnRhcmdldCkmJmwodC5ob3N0KSwhMH0scj0oKT0+e2Zvcig7bygpJiYodD10Ll8kaG9zdHx8dC5wYXJlbnROb2RlfHx0Lmhvc3QpOyk7fTtpZihPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3VycmVudFRhcmdldCIse2NvbmZpZ3VyYWJsZTohMCxnZXQoKXtyZXR1cm4gdHx8ZG9jdW1lbnR9fSksZS5jb21wb3NlZFBhdGgpe2NvbnN0IGE9ZS5jb21wb3NlZFBhdGgoKTtsKGFbMF0pO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGgtMiYmKHQ9YVtmXSwhIW8oKSk7ZisrKXtpZih0Ll8kaG9zdCl7dD10Ll8kaG9zdCxyKCk7YnJlYWt9aWYodC5wYXJlbnROb2RlPT09aSlicmVha319ZWxzZSByKCk7bChzKX1mdW5jdGlvbiB0ZShlLHQsbixzLGkpe2Zvcig7dHlwZW9mIG49PSJmdW5jdGlvbiI7KW49bigpO2lmKHQ9PT1uKXJldHVybiBuO2NvbnN0IGw9dHlwZW9mIHQsbz1zIT09dm9pZCAwO2lmKGU9byYmblswXSYmblswXS5wYXJlbnROb2RlfHxlLGw9PT0ic3RyaW5nInx8bD09PSJudW1iZXIiKXtpZihsPT09Im51bWJlciImJih0PXQudG9TdHJpbmcoKSx0PT09bikpcmV0dXJuIG47aWYobyl7bGV0IHI9blswXTtyJiZyLm5vZGVUeXBlPT09Mz9yLmRhdGEhPT10JiYoci5kYXRhPXQpOnI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCksbj1VKGUsbixzLHIpfWVsc2UgbiE9PSIiJiZ0eXBlb2Ygbj09InN0cmluZyI/bj1lLmZpcnN0Q2hpbGQuZGF0YT10Om49ZS50ZXh0Q29udGVudD10fWVsc2UgaWYodD09bnVsbHx8bD09PSJib29sZWFuIiluPVUoZSxuLHMpO2Vsc2V7aWYobD09PSJmdW5jdGlvbiIpcmV0dXJuIEsoKCk9PntsZXQgcj10KCk7Zm9yKDt0eXBlb2Ygcj09ImZ1bmN0aW9uIjspcj1yKCk7bj10ZShlLHIsbixzKX0pLCgpPT5uO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IHI9W10sYT1uJiZBcnJheS5pc0FycmF5KG4pO2lmKGFlKHIsdCxuLGkpKXJldHVybiBLKCgpPT5uPXRlKGUscixuLHMsITApKSwoKT0+bjtpZihyLmxlbmd0aD09PTApe2lmKG49VShlLG4scyksbylyZXR1cm4gbn1lbHNlIGE/bi5sZW5ndGg9PT0wPyRlKGUscixzKTpxZShlLG4scik6KG4mJlUoZSksJGUoZSxyKSk7bj1yfWVsc2UgaWYodC5ub2RlVHlwZSl7aWYoQXJyYXkuaXNBcnJheShuKSl7aWYobylyZXR1cm4gbj1VKGUsbixzLHQpO1UoZSxuLG51bGwsdCl9ZWxzZSBuPT1udWxsfHxuPT09IiJ8fCFlLmZpcnN0Q2hpbGQ/ZS5hcHBlbmRDaGlsZCh0KTplLnJlcGxhY2VDaGlsZCh0LGUuZmlyc3RDaGlsZCk7bj10fX1yZXR1cm4gbn1mdW5jdGlvbiBhZShlLHQsbixzKXtsZXQgaT0hMTtmb3IobGV0IGw9MCxvPXQubGVuZ3RoO2w8bztsKyspe2xldCByPXRbbF0sYT1uJiZuW2UubGVuZ3RoXSxmO2lmKCEocj09bnVsbHx8cj09PSEwfHxyPT09ITEpKWlmKChmPXR5cGVvZiByKT09Im9iamVjdCImJnIubm9kZVR5cGUpZS5wdXNoKHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShyKSlpPWFlKGUscixhKXx8aTtlbHNlIGlmKGY9PT0iZnVuY3Rpb24iKWlmKHMpe2Zvcig7dHlwZW9mIHI9PSJmdW5jdGlvbiI7KXI9cigpO2k9YWUoZSxBcnJheS5pc0FycmF5KHIpP3I6W3JdLEFycmF5LmlzQXJyYXkoYSk/YTpbYV0pfHxpfWVsc2UgZS5wdXNoKHIpLGk9ITA7ZWxzZXtjb25zdCBkPVN0cmluZyhyKTthJiZhLm5vZGVUeXBlPT09MyYmYS5kYXRhPT09ZD9lLnB1c2goYSk6ZS5wdXNoKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpKX19cmV0dXJuIGl9ZnVuY3Rpb24gJGUoZSx0LG49bnVsbCl7Zm9yKGxldCBzPTAsaT10Lmxlbmd0aDtzPGk7cysrKWUuaW5zZXJ0QmVmb3JlKHRbc10sbil9ZnVuY3Rpb24gVShlLHQsbixzKXtpZihuPT09dm9pZCAwKXJldHVybiBlLnRleHRDb250ZW50PSIiO2NvbnN0IGk9c3x8ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO2lmKHQubGVuZ3RoKXtsZXQgbD0hMTtmb3IobGV0IG89dC5sZW5ndGgtMTtvPj0wO28tLSl7Y29uc3Qgcj10W29dO2lmKGkhPT1yKXtjb25zdCBhPXIucGFyZW50Tm9kZT09PWU7IWwmJiFvP2E/ZS5yZXBsYWNlQ2hpbGQoaSxyKTplLmluc2VydEJlZm9yZShpLG4pOmEmJnIucmVtb3ZlKCl9ZWxzZSBsPSEwfX1lbHNlIGUuaW5zZXJ0QmVmb3JlKGksbik7cmV0dXJuW2ldfWZ1bmN0aW9uIFFlKGUpe2NvbnN0IHQ9ZS5yZXBsYWNlKC9cLyskLywiIik7YXN5bmMgZnVuY3Rpb24gbihzLGkpe3JldHVybiBhd2FpdCBmZXRjaChgJHt0fSR7c31gLHsuLi5pLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwuLi5pPy5oZWFkZXJzfX0pfXJldHVybnt1cmw6dCxmZXRjaDpuLGFzeW5jIGdldFNlc3Npb25zKCl7cmV0dXJuKGF3YWl0IG4oIi9pbnN0YW5jZS9zZXNzaW9ucyIpKS5qc29uKCl9LGFzeW5jIHByb21wdChzLGkpe3JldHVybiBuKCIvaW5zdGFuY2UvcHJvbXB0Iix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHttZXNzYWdlOnMsc2Vzc2lvbklkOml9KX0pfSxldmVudHM6e3N1YnNjcmliZShzKXtjb25zdCBpPW5ldyBFdmVudFNvdXJjZShgJHt0fS9nbG9iYWwvZXZlbnRgKTtyZXR1cm4gaS5vbm1lc3NhZ2U9bD0+e3RyeXtzKEpTT04ucGFyc2UobC5kYXRhKSl9Y2F0Y2h7fX0saX19fX12YXIgV2U9TSgiPGFzaWRlIGNsYXNzPXNpZGViYXI+PGRpdiBjbGFzcz1zaWRlYmFyLWhlYWRlcj48YnV0dG9uIGNsYXNzPW5ldy1jaGF0LWJ0bj4rIOyDiCDrjIDtmZQ8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPXNpZGViYXItc2Vzc2lvbnM+IiksWGU9TSgiPGRpdiBjbGFzcz1lbXB0eS1zdGF0ZT48ZGl2IGNsYXNzPWVtcHR5LWxvZ28+4qyhPC9kaXY+PGgyPlNBRUVPTDwvaDI+PHA+QUkg7L2U65SpIOyXkOydtOyghO2KuDwvcD48ZGl2IGNsYXNzPWVtcHR5LWhpbnRzPjxkaXYgY2xhc3M9aGludD7tmITsnqwg7ZSE66Gc7KCd7Yq4IOq1rOyhsOulvCDshKTrqoXtlbTspJg8L2Rpdj48ZGl2IGNsYXNzPWhpbnQ+UkVBRE1FLm1k66W8IOyekeyEse2VtOykmDwvZGl2PjxkaXYgY2xhc3M9aGludD7rsoTqt7jrpbwg7LC+7JWE7IScIOyImOygle2VtOykmCIpLFllPU0oJzxkaXYgY2xhc3M9Im1lc3NhZ2UgbWVzc2FnZS1hc3Npc3RhbnQiPjxkaXYgY2xhc3M9bWVzc2FnZS1hdmF0YXI+4qyhPC9kaXY+PGRpdiBjbGFzcz1tZXNzYWdlLWNvbnRlbnQ+PGRpdiBjbGFzcz10eXBpbmctaW5kaWNhdG9yPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+JyksWmU9TSgnPGRpdiBjbGFzcz1jaGF0LWxheW91dD48ZGl2IGNsYXNzPWNoYXQtbWFpbj48ZGl2IGNsYXNzPW1lc3NhZ2VzPjxkaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1pbnB1dC1hcmVhPjxkaXYgY2xhc3M9aW5wdXQtd3JhcHBlcj48dGV4dGFyZWEgcGxhY2Vob2xkZXI9IuuplOyLnOyngOulvCDsnoXroKXtlZjshLjsmpQuLi4icm93cz0xPjwvdGV4dGFyZWE+PGJ1dHRvbiBjbGFzcz1zZW5kLWJ0bj7soITshqEnKSx6ZT1NKCI8ZGl2IGNsYXNzPXNlc3Npb24taXRlbT48c3BhbiBjbGFzcz1zZXNzaW9uLXRpdGxlPiIpLGV0PU0oIjxkaXY+PGRpdiBjbGFzcz1tZXNzYWdlLWF2YXRhcj48L2Rpdj48ZGl2IGNsYXNzPW1lc3NhZ2UtY29udGVudD48ZGl2IGNsYXNzPW1lc3NhZ2UtdGV4dD48L2Rpdj48ZGl2IGNsYXNzPW1lc3NhZ2UtdGltZT4iKTtmdW5jdGlvbiB0dCgpe2NvbnN0W2UsdF09TyhbXSksW24sc109TygiIiksW2ksbF09TyghMSksW29dPU8oW10pLFtyLGFdPU8obnVsbCksW2YsZF09TyghMSksW2NdPU8oITApO2xldCBDLCQsVDtjb25zdCBFPSgpPT5gJHtsb2NhdGlvbi5wcm90b2NvbH0vLyR7bG9jYXRpb24uaG9zdH1gO0RlKGFzeW5jKCk9Pnt0cnl7VD1RZShFKCkpO2NvbnN0IHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbm5lY3Rpb24tc3RhdHVzIik7dSYmKHUudGV4dENvbnRlbnQ9IuyXsOqysOuQqCIpLGQoITApLGF3YWl0IGooKX1jYXRjaHtjb25zdCBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25uZWN0aW9uLXN0YXR1cyIpO20mJihtLnRleHRDb250ZW50PSLsl7DqsrAg7Iuk7YyoIil9fSksZmUoKCk9Pnt9KTthc3luYyBmdW5jdGlvbiBqKCl7dHJ5e2NvbnN0IHU9YXdhaXQgZmV0Y2goYCR7RSgpfS93b3Jrc3BhY2UvbGlzdGApO2lmKHUub2spe2NvbnN0IG09YXdhaXQgdS5qc29uKCksdz1tLmRpcmVjdG9yaWVzfHxtLndvcmtzcGFjZXN8fFtdfX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIFAoKXtjb25zdCB1PW4oKS50cmltKCk7aWYoIXV8fGkoKSlyZXR1cm47Y29uc3QgbT17aWQ6YHUtJHtEYXRlLm5vdygpfWAscm9sZToidXNlciIsY29udGVudDp1LHRpbWVzdGFtcDpEYXRlLm5vdygpfTt0KHc9PlsuLi53LG1dKSxzKCIiKSxsKCEwKTt0cnl7Y29uc3Qgdz17bWVzc2FnZTp1fTtyKCkmJih3LnNlc3Npb25JZD1yKCkpO2NvbnN0IHg9YXdhaXQgZmV0Y2goYCR7RSgpfS9pbnN0YW5jZS9wcm9tcHRgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh3KX0pO2lmKCF4Lm9rKXtjb25zdCBsZT1hd2FpdCB4LnRleHQoKTt0KHJlPT5bLi4ucmUse2lkOmBlLSR7RGF0ZS5ub3coKX1gLHJvbGU6ImFzc2lzdGFudCIsY29udGVudDpg7Jik66WYOiAke3guc3RhdHVzfSAke2xlfWAsdGltZXN0YW1wOkRhdGUubm93KCl9XSl9fWNhdGNoKHcpe3QoeD0+Wy4uLngse2lkOmBlLSR7RGF0ZS5ub3coKX1gLHJvbGU6ImFzc2lzdGFudCIsY29udGVudDpg64Sk7Yq47JuM7YGsIOyYpOulmDogJHt3Lm1lc3NhZ2V9YCx0aW1lc3RhbXA6RGF0ZS5ub3coKX1dKX1maW5hbGx5e2woITEpLGIoKX19ZnVuY3Rpb24gYigpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+Qz8uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgifSkpfWZ1bmN0aW9uIHYodSl7dS5rZXk9PT0iRW50ZXIiJiYhdS5zaGlmdEtleSYmKHUucHJldmVudERlZmF1bHQoKSxQKCkpfXJldHVybigoKT0+e3ZhciB1PVplKCksbT11LmZpcnN0Q2hpbGQsdz1tLmZpcnN0Q2hpbGQseD13LmZpcnN0Q2hpbGQsbGU9dy5uZXh0U2libGluZyxyZT1sZS5maXJzdENoaWxkLFI9cmUuZmlyc3RDaGlsZCx1ZT1SLm5leHRTaWJsaW5nO1ModSxCKGNlLHtnZXQgd2hlbigpe3JldHVybiBjKCl9LGdldCBjaGlsZHJlbigpe3ZhciBnPVdlKCksXz1nLmZpcnN0Q2hpbGQsaz1fLmZpcnN0Q2hpbGQsVj1fLm5leHRTaWJsaW5nO3JldHVybiBrLiQkY2xpY2s9KCk9Pnt0KFtdKSxhKG51bGwpfSxTKFYsQihtZSx7Z2V0IGVhY2goKXtyZXR1cm4gbygpfSxjaGlsZHJlbjpMPT4oKCk9Pnt2YXIgRD16ZSgpLFE9RC5maXJzdENoaWxkO3JldHVybiBELiQkY2xpY2s9KCk9PnthKEwuaWQpLG5hdmlnYXRlKGAvcy8ke0wuaWR9YCl9LFMoUSwoKT0+TC50aXRsZXx8IuyDiCDrjIDtmZQiKSxEfSkoKX0pKSxnfX0pLG0pLFModyxCKGNlLHtnZXQgd2hlbigpe3JldHVybiBlKCkubGVuZ3RoPT09MH0sZ2V0IGNoaWxkcmVuKCl7dmFyIGc9WGUoKSxfPWcuZmlyc3RDaGlsZCxrPV8ubmV4dFNpYmxpbmcsVj1rLm5leHRTaWJsaW5nLEw9Vi5uZXh0U2libGluZyxEPUwuZmlyc3RDaGlsZCxRPUQubmV4dFNpYmxpbmcsVGU9US5uZXh0U2libGluZztyZXR1cm4gRC4kJGNsaWNrPSgpPT5zKCLtmITsnqwg7ZSE66Gc7KCd7Yq4IOq1rOyhsOulvCDshKTrqoXtlbTspJgiKSxRLiQkY2xpY2s9KCk9PnMoIlJFQURNRS5tZOulvCDsnpHshLHtlbTspJgiKSxUZS4kJGNsaWNrPSgpPT5zKCLrsoTqt7jrpbwg7LC+7JWE7IScIOyImOygle2VtOykmCIpLGd9fSkseCksUyh3LEIobWUse2dldCBlYWNoKCl7cmV0dXJuIGUoKX0sY2hpbGRyZW46Zz0+KCgpPT57dmFyIF89ZXQoKSxrPV8uZmlyc3RDaGlsZCxWPWsubmV4dFNpYmxpbmcsTD1WLmZpcnN0Q2hpbGQsRD1MLm5leHRTaWJsaW5nO3JldHVybiBTKGssKCk9Pmcucm9sZT09PSJ1c2VyIj8i8J+RpCI6IuKsoSIpLFMoTCwoKT0+Zy5jb250ZW50KSxTKEQsKCk9Pm5ldyBEYXRlKGcudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoImtvLUtSIikpLEsoKCk9PkplKF8sYG1lc3NhZ2UgbWVzc2FnZS0ke2cucm9sZX1gKSksX30pKCl9KSx4KSxTKHcsQihjZSx7Z2V0IHdoZW4oKXtyZXR1cm4gaSgpfSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gWWUoKX19KSx4KTt2YXIgZGU9Qzt0eXBlb2YgZGU9PSJmdW5jdGlvbiI/d2UoZGUseCk6Qz14LFIuJCRrZXlkb3duPXYsUi4kJGlucHV0PWc9PnMoZy5jdXJyZW50VGFyZ2V0LnZhbHVlKTt2YXIgaGU9JDtyZXR1cm4gdHlwZW9mIGhlPT0iZnVuY3Rpb24iP3dlKGhlLFIpOiQ9Uix1ZS4kJGNsaWNrPVAsSyhnPT57dmFyIF89IWYoKSxrPSFuKCkudHJpbSgpfHxpKCl8fCFmKCk7cmV0dXJuIF8hPT1nLmUmJihSLmRpc2FibGVkPWcuZT1fKSxrIT09Zy50JiYodWUuZGlzYWJsZWQ9Zy50PWspLGd9LHtlOnZvaWQgMCx0OnZvaWQgMH0pLEsoKCk9PlIudmFsdWU9bigpKSx1fSkoKX1BZShbImNsaWNrIiwiaW5wdXQiLCJrZXlkb3duIl0pO3ZhciBudD1NKCI8ZGl2IGNsYXNzPWFwcD48bmF2IGNsYXNzPXRvcGJhcj48ZGl2IGNsYXNzPXRvcGJhci1sZWZ0PjxzcGFuIGNsYXNzPWxvZ28+4qyhIFNBRUVPTDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPXRvcGJhci1yaWdodD48c3BhbiBjbGFzcz1zdGF0dXMgaWQ9Y29ubmVjdGlvbi1zdGF0dXM+7Jew6rKwIOykkS4uLjwvc3Bhbj48L2Rpdj48L25hdj48bWFpbiBjbGFzcz1tYWluPiIpLHN0PU0oIjxkaXYgY2xhc3M9ZXJyb3Itc2NyZWVuPjxoMj7smKTrpZgg67Cc7IOdPC9oMj48cHJlPjwvcHJlPjxidXR0b24+7IOI66Gc6rOg7LmoIik7ZnVuY3Rpb24gaXQoKXtyZXR1cm4gQihGZSx7ZmFsbGJhY2s6ZT0+KCgpPT57dmFyIHQ9c3QoKSxuPXQuZmlyc3RDaGlsZCxzPW4ubmV4dFNpYmxpbmcsaT1zLm5leHRTaWJsaW5nO3JldHVybiBTKHMsKCk9PlN0cmluZyhlKSksaS4kJGNsaWNrPSgpPT5sb2NhdGlvbi5yZWxvYWQoKSx0fSkoKSxnZXQgY2hpbGRyZW4oKXt2YXIgZT1udCgpLHQ9ZS5maXJzdENoaWxkLG49dC5uZXh0U2libGluZztyZXR1cm4gUyhuLEIodHQse30pKSxlfX0pfUFlKFsiY2xpY2siXSk7Y29uc3QgQ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKTtpZighQ2UpdGhyb3cgbmV3IEVycm9yKCJSb290IGVsZW1lbnQgbm90IGZvdW5kIik7R2UoKCk9PkIoaXQse30pLENlKTsK",
9
- "assets/index-BAFkjvN0.css": "OnJvb3R7LS1iZzogIzBhMGEwYTstLWJnLXNlY29uZGFyeTogIzE0MTQxNDstLWJnLXRlcnRpYXJ5OiAjMWUxZTFlOy0tdGV4dDogI2UwZTBlMDstLXRleHQtZGltOiAjODg4Oy0tYWNjZW50OiAjZjk3MzE2Oy0tYWNjZW50LWhvdmVyOiAjZmI5MjNjOy0tYm9yZGVyOiAjMmEyYTJhOy0tdXNlci1iZzogIzFhMWEyZTstLWFzc2lzdGFudC1iZzogIzE0MTQxNDstLXJhZGl1czogOHB4fS5hcHB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwdmg7b3ZlcmZsb3c6aGlkZGVufS50b3BiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjAgMTZweDtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9LnRvcGJhci1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHh9LmxvZ297Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOnZhcigtLWFjY2VudCk7Y3Vyc29yOnBvaW50ZXJ9LnRvcGJhci1yaWdodHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9LnN0YXR1c3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtZGltKX0ubWFpbntmbGV4OjE7b3ZlcmZsb3c6aGlkZGVufS5jaGF0LWxheW91dHtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCV9LnNpZGViYXJ7d2lkdGg6MjQwcHg7bWluLXdpZHRoOjI0MHB4O2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc2lkZWJhci1oZWFkZXJ7cGFkZGluZzoxMnB4fS5uZXctY2hhdC1idG57d2lkdGg6MTAwJTtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljg1cmVtO2ZvbnQtd2VpZ2h0OjYwMH0ubmV3LWNoYXQtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LWhvdmVyKX0uc2lkZWJhci1zZXNzaW9uc3tmbGV4OjE7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6NHB4IDhweH0uc2Vzc2lvbi1pdGVte3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyLXJhZGl1czo2cHg7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLWJvdHRvbToycHg7Zm9udC1zaXplOi44NXJlbTtjb2xvcjp2YXIoLS10ZXh0LWRpbSk7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5zZXNzaW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dCl9LnNlc3Npb24tdGl0bGV7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2hhdC1tYWlue2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDowfS5tZXNzYWdlc3tmbGV4OjE7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MjBweCAyNHB4fS5lbXB0eS1zdGF0ZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2dhcDo4cHh9LmVtcHR5LWxvZ297Zm9udC1zaXplOjNyZW07Y29sb3I6dmFyKC0tYWNjZW50KX0uZW1wdHktc3RhdGUgaDJ7Zm9udC1zaXplOjEuNXJlbTtjb2xvcjp2YXIoLS10ZXh0KTttYXJnaW46MH0uZW1wdHktc3RhdGUgcHtjb2xvcjp2YXIoLS10ZXh0LWRpbSk7bWFyZ2luOjAgMCAyMHB4fS5lbXB0eS1oaW50c3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7bWF4LXdpZHRoOjQwMHB4O3dpZHRoOjEwMCV9LmhpbnR7cGFkZGluZzoxMnB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljg1cmVtO2NvbG9yOnZhcigtLXRleHQtZGltKTt0ZXh0LWFsaWduOmxlZnR9LmhpbnQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dCl9Lm1lc3NhZ2V7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O21hcmdpbi1ib3R0b206MjBweDttYXgtd2lkdGg6ODAwcHh9Lm1lc3NhZ2UtdXNlciwubWVzc2FnZS1hc3Npc3RhbnR7ZmxleC1kaXJlY3Rpb246cm93fS5tZXNzYWdlLWF2YXRhcnt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi13aWR0aDozMnB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MXJlbTtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0ubWVzc2FnZS1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MH0ubWVzc2FnZS11c2VyIC5tZXNzYWdlLWNvbnRlbnR7YmFja2dyb3VuZDp2YXIoLS11c2VyLWJnKTtwYWRkaW5nOjEwcHggMTRweDtib3JkZXItcmFkaXVzOjEycHggMTJweCAxMnB4IDRweH0ubWVzc2FnZS1hc3Npc3RhbnQgLm1lc3NhZ2UtY29udGVudHtiYWNrZ3JvdW5kOnZhcigtLWFzc2lzdGFudC1iZyk7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czoxMnB4IDEycHggNHB4fS5tZXNzYWdlLXRleHR7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO2xpbmUtaGVpZ2h0OjEuNjtmb250LXNpemU6LjlyZW19Lm1lc3NhZ2UtdGltZXtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1kaW0pO21hcmdpbi10b3A6NHB4O3RleHQtYWxpZ246cmlnaHR9LnR5cGluZy1pbmRpY2F0b3J7ZGlzcGxheTpmbGV4O2dhcDo0cHg7cGFkZGluZzo0cHggMH0udHlwaW5nLWluZGljYXRvciBzcGFue3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1kaW0pO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjp0eXBpbmcgMS40cyBpbmZpbml0ZX0udHlwaW5nLWluZGljYXRvciBzcGFuOm50aC1jaGlsZCgyKXthbmltYXRpb24tZGVsYXk6LjJzfS50eXBpbmctaW5kaWNhdG9yIHNwYW46bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTouNHN9QGtleWZyYW1lcyB0eXBpbmd7MCUsODAlLHRve29wYWNpdHk6LjM7dHJhbnNmb3JtOnNjYWxlKC44KX00MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX19LmlucHV0LWFyZWF7cGFkZGluZzoxMnB4IDI0cHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWJnKX0uaW5wdXQtd3JhcHBlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjhweDtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjhweCAxMnB4fS5pbnB1dC13cmFwcGVyIHRleHRhcmVhe2ZsZXg6MTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dCk7Zm9udC1zaXplOi45cmVtO3Jlc2l6ZTpub25lO291dGxpbmU6bm9uZTttaW4taGVpZ2h0OjI0cHg7bWF4LWhlaWdodDoxMjBweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1mYW1pbHk6aW5oZXJpdH0uaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1kaW0pfS5pbnB1dC13cmFwcGVyIHRleHRhcmVhOmRpc2FibGVke29wYWNpdHk6LjV9LnNlbmQtYnRue3BhZGRpbmc6NnB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi44NXJlbTtmb250LXdlaWdodDo2MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5zZW5kLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1ob3Zlcil9LnNlbmQtYnRuOmRpc2FibGVke29wYWNpdHk6LjQ7Y3Vyc29yOm5vdC1hbGxvd2VkfS5lcnJvci1zY3JlZW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJTtnYXA6MTZweDtwYWRkaW5nOjIwcHh9LmVycm9yLXNjcmVlbiBwcmV7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzoxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKTttYXgtd2lkdGg6NjAwcHg7b3ZlcmZsb3c6YXV0bztjb2xvcjojZjg3MTcxO2ZvbnQtc2l6ZTouODVyZW19LmVycm9yLXNjcmVlbiBidXR0b257cGFkZGluZzo4cHggMjRweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cyk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi45cmVtfQo=",
10
- "index.html": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImtvIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+CiAgICA8dGl0bGU+U0FFRU9MPC90aXRsZT4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCIgaHJlZj0iL2Zhdmljb24uc3ZnIiAvPgogICAgPHN0eWxlPgogICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgICAgIGh0bWwsIGJvZHksICNyb290IHsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICBib2R5IHsgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kOiAjMGEwYTBhOyBjb2xvcjogI2UwZTBlMDsgfQogICAgICAjbG9hZGluZyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBoZWlnaHQ6IDEwMCU7IH0KICAgICAgI2xvYWRpbmcgc3BhbiB7IGNvbG9yOiAjZjk3MzE2OyBmb250LXNpemU6IDEuMnJlbTsgfQogICAgPC9zdHlsZT4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBjcm9zc29yaWdpbiBzcmM9Ii9hc3NldHMvaW5kZXgtLW5JQjBHRzEuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBjcm9zc29yaWdpbiBocmVmPSIvYXNzZXRzL2luZGV4LUJBRmtqdk4wLmNzcyI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdiBpZD0icm9vdCI+CiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciPjxzcGFuPlNBRUVPTCDroZzrk5wg7KSRLi4uPC9zcGFuPjwvZGl2PgogICAgPC9kaXY+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=="
11
- }
12
-
13
- const _dir = join(tmpdir(), "saeeol-web-ui")
14
- const _cache: Record<string, string> = {}
15
-
16
- const files: Record<string, string> = {}
17
- for (const key of Object.keys(encoded)) {
18
- Object.defineProperty(files, key, {
19
- get() {
20
- if (_cache[key]) return _cache[key]
21
- const p = join(_dir, key)
22
- const d = dirname(p)
23
- if (!existsSync(d)) mkdirSync(d, { recursive: true })
24
- writeFileSync(p, Buffer.from(encoded[key], "base64"))
25
- _cache[key] = p
26
- return p
27
- },
28
- enumerable: true,
29
- configurable: true,
30
- })
31
- }
32
-
33
- export default files
@@ -1,44 +0,0 @@
1
- import type { Hono } from "hono"
2
- import { createBunWebSocket } from "hono/bun"
3
- import type { Adapter, FetchApp, Opts } from "./adapter"
4
-
5
- function listen(app: FetchApp, opts: Opts, websocket?: ReturnType<typeof createBunWebSocket>["websocket"]) {
6
- const start = (port: number) => {
7
- try {
8
- if (websocket) {
9
- return Bun.serve({ fetch: app.fetch, hostname: opts.hostname, idleTimeout: 0, websocket, port })
10
- }
11
- return Bun.serve({ fetch: app.fetch, hostname: opts.hostname, idleTimeout: 0, port })
12
- } catch {
13
- return
14
- }
15
- }
16
- const server = opts.port === 0 ? (start(4096) ?? start(0)) : start(opts.port)
17
- if (!server) {
18
- throw new Error(`Failed to start server on port ${opts.port}`)
19
- }
20
- if (!server.port) {
21
- throw new Error(`Failed to resolve server address for port ${opts.port}`)
22
- }
23
- return {
24
- port: server.port,
25
- stop(close?: boolean) {
26
- return Promise.resolve(server.stop(close))
27
- },
28
- }
29
- }
30
-
31
- export const adapter: Adapter = {
32
- create(app: Hono) {
33
- const ws = createBunWebSocket()
34
- return {
35
- upgradeWebSocket: ws.upgradeWebSocket,
36
- listen: (opts) => Promise.resolve(listen(app, opts, ws.websocket)),
37
- }
38
- },
39
- createFetch(app) {
40
- return {
41
- listen: (opts) => Promise.resolve(listen(app, opts)),
42
- }
43
- },
44
- }
@@ -1,73 +0,0 @@
1
- import { createAdaptorServer, type ServerType } from "@hono/node-server"
2
- import { createNodeWebSocket } from "@hono/node-ws"
3
- import type { Hono } from "hono"
4
- import type { Adapter, FetchApp, Opts } from "./adapter"
5
-
6
- async function listen(app: FetchApp, opts: Opts, inject?: (server: ServerType) => void) {
7
- const start = (port: number) =>
8
- new Promise<ServerType>((resolve, reject) => {
9
- const server = createAdaptorServer({ fetch: app.fetch })
10
- inject?.(server)
11
- const fail = (err: Error) => {
12
- cleanup()
13
- reject(err)
14
- }
15
- const ready = () => {
16
- cleanup()
17
- resolve(server)
18
- }
19
- const cleanup = () => {
20
- server.off("error", fail)
21
- server.off("listening", ready)
22
- }
23
- server.once("error", fail)
24
- server.once("listening", ready)
25
- server.listen(port, opts.hostname)
26
- })
27
-
28
- const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port)
29
- const addr = server.address()
30
- if (!addr || typeof addr === "string") {
31
- throw new Error(`Failed to resolve server address for port ${opts.port}`)
32
- }
33
-
34
- let closing: Promise<void> | undefined
35
- return {
36
- port: addr.port,
37
- stop(close?: boolean) {
38
- closing ??= new Promise<void>((resolve, reject) => {
39
- server.close((err) => {
40
- if (err) {
41
- reject(err)
42
- return
43
- }
44
- resolve()
45
- })
46
- if (close) {
47
- if ("closeAllConnections" in server && typeof server.closeAllConnections === "function") {
48
- server.closeAllConnections()
49
- }
50
- if ("closeIdleConnections" in server && typeof server.closeIdleConnections === "function") {
51
- server.closeIdleConnections()
52
- }
53
- }
54
- })
55
- return closing
56
- },
57
- }
58
- }
59
-
60
- export const adapter: Adapter = {
61
- create(app: Hono) {
62
- const ws = createNodeWebSocket({ app })
63
- return {
64
- upgradeWebSocket: ws.upgradeWebSocket,
65
- listen: (opts) => listen(app, opts, ws.injectWebSocket),
66
- }
67
- },
68
- createFetch(app) {
69
- return {
70
- listen: (opts) => listen(app, opts),
71
- }
72
- },
73
- }
@@ -1,26 +0,0 @@
1
- import type { Hono } from "hono"
2
- import type { UpgradeWebSocket } from "hono/ws"
3
-
4
- export type FetchApp = {
5
- fetch(request: Request): Response | Promise<Response>
6
- }
7
-
8
- export type Opts = {
9
- port: number
10
- hostname: string
11
- }
12
-
13
- export type Listener = {
14
- port: number
15
- stop: (close?: boolean) => Promise<void>
16
- }
17
-
18
- export interface Runtime {
19
- upgradeWebSocket: UpgradeWebSocket
20
- listen(opts: Opts): Promise<Listener>
21
- }
22
-
23
- export interface Adapter {
24
- create(app: Hono): Runtime
25
- createFetch(app: FetchApp): Omit<Runtime, "upgradeWebSocket">
26
- }
@@ -1,32 +0,0 @@
1
- import { Flag } from "@saeeol/core/flag/flag"
2
- import { InstallationChannel, InstallationVersion } from "@saeeol/core/installation/version"
3
-
4
- export type Backend = "effect-httpapi" | "hono"
5
-
6
- export type Selection = {
7
- backend: Backend
8
- reason: "env" | "stable" | "explicit"
9
- }
10
-
11
- export type Attributes = ReturnType<typeof attributes>
12
-
13
- export function select(): Selection {
14
- if (Flag.SAEEOL_EXPERIMENTAL_HTTPAPI) return { backend: "effect-httpapi", reason: "env" }
15
- return { backend: "hono", reason: "stable" }
16
- }
17
-
18
- export function attributes(selection: Selection): Record<string, string> {
19
- return {
20
- "saeeol.server.backend": selection.backend,
21
- "saeeol.server.backend.reason": selection.reason,
22
- "saeeol.installation.channel": InstallationChannel,
23
- "saeeol.installation.version": InstallationVersion,
24
- }
25
- }
26
-
27
- export function force(selection: Selection, backend: Backend): Selection {
28
- return {
29
- backend,
30
- reason: selection.backend === backend ? selection.reason : "explicit",
31
- }
32
- }
@@ -1,17 +0,0 @@
1
- import * as SaeeolServer from "@/saeeol/server/server"
2
-
3
- const saeeolOrigin = /^https:\/\/([a-z0-9-]+\.)*saeeol\.ai$/
4
-
5
- export type CorsOptions = { readonly cors?: ReadonlyArray<string> }
6
-
7
- export function isAllowedCorsOrigin(input: string | undefined, opts?: CorsOptions) {
8
- if (!input) return true
9
- if (input.startsWith("http://localhost:")) return true
10
- if (input.startsWith("http://127.0.0.1:")) return true
11
- if (input.startsWith("oc://renderer")) return true
12
- if (input === "tauri://localhost" || input === "http://tauri.localhost" || input === "https://tauri.localhost")
13
- return true
14
- if (saeeolOrigin.test(input)) return true
15
- if (SaeeolServer.corsOrigin(input)) return true
16
- return opts?.cors?.includes(input) ?? false
17
- }
@@ -1,36 +0,0 @@
1
- import { resolver } from "hono-openapi"
2
- import z from "zod"
3
- import { NotFoundError } from "@/storage/storage"
4
-
5
- export const ERRORS = {
6
- 400: {
7
- description: "Bad request",
8
- content: {
9
- "application/json": {
10
- schema: resolver(
11
- z
12
- .object({
13
- data: z.any(),
14
- errors: z.array(z.record(z.string(), z.any())),
15
- success: z.literal(false),
16
- })
17
- .meta({
18
- ref: "BadRequestError",
19
- }),
20
- ),
21
- },
22
- },
23
- },
24
- 404: {
25
- description: "Not found",
26
- content: {
27
- "application/json": {
28
- schema: resolver(NotFoundError.Schema),
29
- },
30
- },
31
- },
32
- } as const
33
-
34
- export function errors(...codes: number[]) {
35
- return Object.fromEntries(codes.map((code) => [code, ERRORS[code as keyof typeof ERRORS]]))
36
- }
@@ -1,8 +0,0 @@
1
- import { BusEvent } from "@/bus/bus-event"
2
- import { Schema } from "effect"
3
-
4
- export const Event = {
5
- Connected: BusEvent.define("server.connected", Schema.Struct({})),
6
- Disposed: BusEvent.define("global.disposed", Schema.Struct({})),
7
- ConfigUpdated: BusEvent.define("global.config.updated", Schema.Struct({})),
8
- }