@sleepy-ai/cli 0.1.6 → 0.1.7

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 (799) hide show
  1. package/{src/skill/compose/LICENSE-superpowers → LICENSE} +3 -6
  2. package/README.md +139 -6
  3. package/package.json +35 -199
  4. package/postinstall.mjs +102 -0
  5. package/.sleepycode-test-fixtures-50158/sleepycode-test-eqsxv84ythu/.watcher-b67v64k2mnv +0 -1
  6. package/Dockerfile +0 -18
  7. package/drizzle.config.ts +0 -10
  8. package/git +0 -0
  9. package/migration/20260127222353_familiar_lady_ursula/migration.sql +0 -90
  10. package/migration/20260127222353_familiar_lady_ursula/snapshot.json +0 -796
  11. package/migration/20260211171708_add_project_commands/migration.sql +0 -1
  12. package/migration/20260211171708_add_project_commands/snapshot.json +0 -806
  13. package/migration/20260213144116_wakeful_the_professor/migration.sql +0 -11
  14. package/migration/20260213144116_wakeful_the_professor/snapshot.json +0 -897
  15. package/migration/20260225215848_workspace/migration.sql +0 -7
  16. package/migration/20260225215848_workspace/snapshot.json +0 -959
  17. package/migration/20260227213759_add_session_workspace_id/migration.sql +0 -2
  18. package/migration/20260227213759_add_session_workspace_id/snapshot.json +0 -983
  19. package/migration/20260228203230_blue_harpoon/migration.sql +0 -17
  20. package/migration/20260228203230_blue_harpoon/snapshot.json +0 -1102
  21. package/migration/20260303231226_add_workspace_fields/migration.sql +0 -5
  22. package/migration/20260303231226_add_workspace_fields/snapshot.json +0 -1013
  23. package/migration/20260309230000_move_org_to_state/migration.sql +0 -3
  24. package/migration/20260309230000_move_org_to_state/snapshot.json +0 -1156
  25. package/migration/20260312043431_session_message_cursor/migration.sql +0 -4
  26. package/migration/20260312043431_session_message_cursor/snapshot.json +0 -1168
  27. package/migration/20260323234822_events/migration.sql +0 -13
  28. package/migration/20260323234822_events/snapshot.json +0 -1271
  29. package/migration/20260410174513_workspace-name/migration.sql +0 -16
  30. package/migration/20260410174513_workspace-name/snapshot.json +0 -1271
  31. package/migration/20260413175956_chief_energizer/migration.sql +0 -13
  32. package/migration/20260413175956_chief_energizer/snapshot.json +0 -1399
  33. package/migration/20260422160000_context_inheritance/migration.sql +0 -3
  34. package/migration/20260422170000_task_registry/migration.sql +0 -18
  35. package/migration/20260423145421_remove_session_entry/migration.sql +0 -4
  36. package/migration/20260515000000_actor_rename/migration.sql +0 -7
  37. package/migration/20260515010000_memory_fts/migration.sql +0 -33
  38. package/migration/20260515020000_user_task/migration.sql +0 -29
  39. package/migration/20260519000000_last_checkpoint_message_id/migration.sql +0 -1
  40. package/migration/20260521000000_message_agent_id/migration.sql +0 -2
  41. package/migration/20260521000100_actor_registry_v6/migration.sql +0 -25
  42. package/migration/20260521010000_memory_fts_v6/migration.sql +0 -33
  43. package/migration/20260521020000_memory_fts_triggers/migration.sql +0 -17
  44. package/migration/20260526000000_agent_id_main/migration.sql +0 -14
  45. package/migration/20260527000000_actor_lifecycle/migration.sql +0 -8
  46. package/migration/20260527000100_inbox/migration.sql +0 -12
  47. package/migration/20260529000000_task_todo_redesign/migration.sql +0 -16
  48. package/migration/20260603000000_task_in_progress_owner/migration.sql +0 -1
  49. package/migration/20260603000000_workflow_run/migration.sql +0 -17
  50. package/migration/20260604000000_workflow_script_sha/migration.sql +0 -1
  51. package/migration/20260608000000_claude_import/migration.sql +0 -7
  52. package/migration/20260608010000_claude_import_message_ids/migration.sql +0 -1
  53. package/migration/20260609000000_history_fts/migration.sql +0 -29
  54. package/migration/20260609230000_workflow_agent_timeout/migration.sql +0 -1
  55. package/migration/20260612000000_external_import/migration.sql +0 -16
  56. package/parsers-config.ts +0 -290
  57. package/src/account/account.sql.ts +0 -39
  58. package/src/account/account.ts +0 -456
  59. package/src/account/repo.ts +0 -166
  60. package/src/account/schema.ts +0 -99
  61. package/src/account/url.ts +0 -8
  62. package/src/acp/README.md +0 -174
  63. package/src/acp/agent.ts +0 -1787
  64. package/src/acp/session.ts +0 -116
  65. package/src/acp/types.ts +0 -24
  66. package/src/actor/actor.sql.ts +0 -38
  67. package/src/actor/events.ts +0 -67
  68. package/src/actor/index.ts +0 -2
  69. package/src/actor/registry.ts +0 -412
  70. package/src/actor/return-header.ts +0 -24
  71. package/src/actor/schema.ts +0 -47
  72. package/src/actor/spawn-ref.ts +0 -16
  73. package/src/actor/spawn.ts +0 -756
  74. package/src/actor/turn.ts +0 -49
  75. package/src/actor/waiter.ts +0 -166
  76. package/src/agent/agent.ts +0 -574
  77. package/src/agent/config.ts +0 -5
  78. package/src/agent/generate.txt +0 -75
  79. package/src/agent/prompt/checkpoint-writer.txt +0 -167
  80. package/src/agent/prompt/compaction.txt +0 -9
  81. package/src/agent/prompt/distill.txt +0 -199
  82. package/src/agent/prompt/dream.txt +0 -155
  83. package/src/agent/prompt/explore.txt +0 -18
  84. package/src/agent/prompt/summary.txt +0 -11
  85. package/src/agent/prompt/title.txt +0 -44
  86. package/src/audio.d.ts +0 -9
  87. package/src/auth/index.ts +0 -97
  88. package/src/bus/bus-event.ts +0 -33
  89. package/src/bus/global.ts +0 -12
  90. package/src/bus/index.ts +0 -193
  91. package/src/cli/bootstrap.ts +0 -33
  92. package/src/cli/cmd/account.ts +0 -258
  93. package/src/cli/cmd/acp.ts +0 -70
  94. package/src/cli/cmd/agent.ts +0 -248
  95. package/src/cli/cmd/cmd.ts +0 -7
  96. package/src/cli/cmd/db.ts +0 -120
  97. package/src/cli/cmd/debug/agent.ts +0 -192
  98. package/src/cli/cmd/debug/config.ts +0 -17
  99. package/src/cli/cmd/debug/file.ts +0 -100
  100. package/src/cli/cmd/debug/index.ts +0 -48
  101. package/src/cli/cmd/debug/lsp.ts +0 -61
  102. package/src/cli/cmd/debug/ripgrep.ts +0 -105
  103. package/src/cli/cmd/debug/scrap.ts +0 -16
  104. package/src/cli/cmd/debug/skill.ts +0 -23
  105. package/src/cli/cmd/debug/snapshot.ts +0 -53
  106. package/src/cli/cmd/doctor.ts +0 -116
  107. package/src/cli/cmd/export.ts +0 -306
  108. package/src/cli/cmd/generate.ts +0 -50
  109. package/src/cli/cmd/github.ts +0 -1647
  110. package/src/cli/cmd/import.ts +0 -208
  111. package/src/cli/cmd/init.ts +0 -97
  112. package/src/cli/cmd/login.ts +0 -402
  113. package/src/cli/cmd/mcp.ts +0 -812
  114. package/src/cli/cmd/models.ts +0 -88
  115. package/src/cli/cmd/plug.ts +0 -233
  116. package/src/cli/cmd/pr.ts +0 -138
  117. package/src/cli/cmd/providers.ts +0 -713
  118. package/src/cli/cmd/run-completion.ts +0 -77
  119. package/src/cli/cmd/run.ts +0 -694
  120. package/src/cli/cmd/serve.ts +0 -30
  121. package/src/cli/cmd/session.ts +0 -181
  122. package/src/cli/cmd/stats.ts +0 -413
  123. package/src/cli/cmd/tui/app.tsx +0 -1181
  124. package/src/cli/cmd/tui/asset/TEN_VAD_LICENSE +0 -12
  125. package/src/cli/cmd/tui/asset/charge.wav +0 -0
  126. package/src/cli/cmd/tui/asset/pulse-a.wav +0 -0
  127. package/src/cli/cmd/tui/asset/pulse-b.wav +0 -0
  128. package/src/cli/cmd/tui/asset/pulse-c.wav +0 -0
  129. package/src/cli/cmd/tui/asset/ten_vad.wasm +0 -0
  130. package/src/cli/cmd/tui/asset/ten_vad_loader.js +0 -30
  131. package/src/cli/cmd/tui/attach.ts +0 -84
  132. package/src/cli/cmd/tui/component/background-image.tsx +0 -150
  133. package/src/cli/cmd/tui/component/banner-session-expired.tsx +0 -48
  134. package/src/cli/cmd/tui/component/bg-pulse.tsx +0 -130
  135. package/src/cli/cmd/tui/component/border.tsx +0 -21
  136. package/src/cli/cmd/tui/component/dialog-agent.tsx +0 -31
  137. package/src/cli/cmd/tui/component/dialog-agreement.tsx +0 -111
  138. package/src/cli/cmd/tui/component/dialog-command.tsx +0 -219
  139. package/src/cli/cmd/tui/component/dialog-console-org.tsx +0 -103
  140. package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +0 -157
  141. package/src/cli/cmd/tui/component/dialog-image-list.tsx +0 -111
  142. package/src/cli/cmd/tui/component/dialog-logo-design.tsx +0 -37
  143. package/src/cli/cmd/tui/component/dialog-mcp.tsx +0 -86
  144. package/src/cli/cmd/tui/component/dialog-model.tsx +0 -299
  145. package/src/cli/cmd/tui/component/dialog-provider.tsx +0 -449
  146. package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +0 -101
  147. package/src/cli/cmd/tui/component/dialog-session-list.tsx +0 -269
  148. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +0 -31
  149. package/src/cli/cmd/tui/component/dialog-skill.tsx +0 -42
  150. package/src/cli/cmd/tui/component/dialog-sleepy-login.tsx +0 -288
  151. package/src/cli/cmd/tui/component/dialog-stash.tsx +0 -87
  152. package/src/cli/cmd/tui/component/dialog-status.tsx +0 -170
  153. package/src/cli/cmd/tui/component/dialog-tag.tsx +0 -44
  154. package/src/cli/cmd/tui/component/dialog-theme-list.tsx +0 -50
  155. package/src/cli/cmd/tui/component/dialog-token-plan.tsx +0 -77
  156. package/src/cli/cmd/tui/component/dialog-variant.tsx +0 -39
  157. package/src/cli/cmd/tui/component/dialog-workflows.tsx +0 -51
  158. package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +0 -289
  159. package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +0 -81
  160. package/src/cli/cmd/tui/component/dialog-worktree.tsx +0 -90
  161. package/src/cli/cmd/tui/component/error-component.tsx +0 -92
  162. package/src/cli/cmd/tui/component/logo.tsx +0 -961
  163. package/src/cli/cmd/tui/component/plugin-route-missing.tsx +0 -14
  164. package/src/cli/cmd/tui/component/prompt/autocomplete-detect.ts +0 -34
  165. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +0 -668
  166. package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
  167. package/src/cli/cmd/tui/component/prompt/frecency.tsx +0 -90
  168. package/src/cli/cmd/tui/component/prompt/history.tsx +0 -108
  169. package/src/cli/cmd/tui/component/prompt/index.tsx +0 -1869
  170. package/src/cli/cmd/tui/component/prompt/offset.ts +0 -45
  171. package/src/cli/cmd/tui/component/prompt/part.ts +0 -36
  172. package/src/cli/cmd/tui/component/prompt/stash.tsx +0 -101
  173. package/src/cli/cmd/tui/component/spinner.tsx +0 -24
  174. package/src/cli/cmd/tui/component/starry-background.tsx +0 -305
  175. package/src/cli/cmd/tui/component/startup-loading.tsx +0 -67
  176. package/src/cli/cmd/tui/component/task-item.tsx +0 -63
  177. package/src/cli/cmd/tui/component/textarea-keybindings.ts +0 -73
  178. package/src/cli/cmd/tui/component/todo-item.tsx +0 -32
  179. package/src/cli/cmd/tui/component/workflow-tree.tsx +0 -177
  180. package/src/cli/cmd/tui/config/cwd.ts +0 -5
  181. package/src/cli/cmd/tui/config/tui-migrate.ts +0 -151
  182. package/src/cli/cmd/tui/config/tui-schema.ts +0 -38
  183. package/src/cli/cmd/tui/config/tui.ts +0 -219
  184. package/src/cli/cmd/tui/context/args.tsx +0 -16
  185. package/src/cli/cmd/tui/context/directory.ts +0 -15
  186. package/src/cli/cmd/tui/context/event.ts +0 -45
  187. package/src/cli/cmd/tui/context/exit.tsx +0 -65
  188. package/src/cli/cmd/tui/context/helper.tsx +0 -25
  189. package/src/cli/cmd/tui/context/keybind.tsx +0 -105
  190. package/src/cli/cmd/tui/context/kv.tsx +0 -86
  191. package/src/cli/cmd/tui/context/language.tsx +0 -91
  192. package/src/cli/cmd/tui/context/local.tsx +0 -469
  193. package/src/cli/cmd/tui/context/plugin-keybinds.ts +0 -41
  194. package/src/cli/cmd/tui/context/project.tsx +0 -109
  195. package/src/cli/cmd/tui/context/prompt.tsx +0 -18
  196. package/src/cli/cmd/tui/context/route.tsx +0 -68
  197. package/src/cli/cmd/tui/context/sdk.tsx +0 -150
  198. package/src/cli/cmd/tui/context/sync.tsx +0 -884
  199. package/src/cli/cmd/tui/context/theme/aura.json +0 -69
  200. package/src/cli/cmd/tui/context/theme/ayu.json +0 -80
  201. package/src/cli/cmd/tui/context/theme/carbonfox.json +0 -248
  202. package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +0 -230
  203. package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +0 -230
  204. package/src/cli/cmd/tui/context/theme/catppuccin.json +0 -112
  205. package/src/cli/cmd/tui/context/theme/cobalt2.json +0 -225
  206. package/src/cli/cmd/tui/context/theme/cursor.json +0 -249
  207. package/src/cli/cmd/tui/context/theme/dracula.json +0 -219
  208. package/src/cli/cmd/tui/context/theme/everforest.json +0 -241
  209. package/src/cli/cmd/tui/context/theme/flexoki.json +0 -237
  210. package/src/cli/cmd/tui/context/theme/github.json +0 -233
  211. package/src/cli/cmd/tui/context/theme/gruvbox.json +0 -242
  212. package/src/cli/cmd/tui/context/theme/kanagawa.json +0 -77
  213. package/src/cli/cmd/tui/context/theme/lucent-orng.json +0 -234
  214. package/src/cli/cmd/tui/context/theme/material.json +0 -235
  215. package/src/cli/cmd/tui/context/theme/matrix.json +0 -77
  216. package/src/cli/cmd/tui/context/theme/mercury.json +0 -252
  217. package/src/cli/cmd/tui/context/theme/monokai.json +0 -221
  218. package/src/cli/cmd/tui/context/theme/nightowl.json +0 -221
  219. package/src/cli/cmd/tui/context/theme/nord.json +0 -223
  220. package/src/cli/cmd/tui/context/theme/one-dark.json +0 -84
  221. package/src/cli/cmd/tui/context/theme/orng.json +0 -249
  222. package/src/cli/cmd/tui/context/theme/osaka-jade.json +0 -93
  223. package/src/cli/cmd/tui/context/theme/palenight.json +0 -222
  224. package/src/cli/cmd/tui/context/theme/rosepine.json +0 -234
  225. package/src/cli/cmd/tui/context/theme/sleepycode.json +0 -245
  226. package/src/cli/cmd/tui/context/theme/solarized.json +0 -223
  227. package/src/cli/cmd/tui/context/theme/synthwave84.json +0 -226
  228. package/src/cli/cmd/tui/context/theme/tokyonight.json +0 -243
  229. package/src/cli/cmd/tui/context/theme/vercel.json +0 -245
  230. package/src/cli/cmd/tui/context/theme/vesper.json +0 -218
  231. package/src/cli/cmd/tui/context/theme/zenburn.json +0 -223
  232. package/src/cli/cmd/tui/context/theme.tsx +0 -1298
  233. package/src/cli/cmd/tui/context/thinking.ts +0 -48
  234. package/src/cli/cmd/tui/context/tui-config.tsx +0 -9
  235. package/src/cli/cmd/tui/event.ts +0 -62
  236. package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +0 -93
  237. package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +0 -193
  238. package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +0 -54
  239. package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +0 -267
  240. package/src/cli/cmd/tui/feature-plugins/sidebar/cwd.tsx +0 -45
  241. package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +0 -62
  242. package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +0 -93
  243. package/src/cli/cmd/tui/feature-plugins/sidebar/goal.tsx +0 -84
  244. package/src/cli/cmd/tui/feature-plugins/sidebar/instructions.tsx +0 -54
  245. package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +0 -66
  246. package/src/cli/cmd/tui/feature-plugins/sidebar/mascot.tsx +0 -69
  247. package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +0 -98
  248. package/src/cli/cmd/tui/feature-plugins/sidebar/task.tsx +0 -95
  249. package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +0 -51
  250. package/src/cli/cmd/tui/feature-plugins/sidebar/tps.ts +0 -31
  251. package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +0 -274
  252. package/src/cli/cmd/tui/i18n/en.ts +0 -465
  253. package/src/cli/cmd/tui/i18n/es.ts +0 -508
  254. package/src/cli/cmd/tui/i18n/fr.ts +0 -515
  255. package/src/cli/cmd/tui/i18n/ja.ts +0 -463
  256. package/src/cli/cmd/tui/i18n/locales.ts +0 -82
  257. package/src/cli/cmd/tui/i18n/ru.ts +0 -527
  258. package/src/cli/cmd/tui/i18n/slash-command.ts +0 -11
  259. package/src/cli/cmd/tui/i18n/zh.ts +0 -454
  260. package/src/cli/cmd/tui/i18n/zht.ts +0 -430
  261. package/src/cli/cmd/tui/layer.ts +0 -6
  262. package/src/cli/cmd/tui/plugin/api.tsx +0 -402
  263. package/src/cli/cmd/tui/plugin/index.ts +0 -3
  264. package/src/cli/cmd/tui/plugin/internal.ts +0 -37
  265. package/src/cli/cmd/tui/plugin/runtime.ts +0 -1057
  266. package/src/cli/cmd/tui/plugin/slots.tsx +0 -60
  267. package/src/cli/cmd/tui/routes/home.tsx +0 -165
  268. package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +0 -76
  269. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +0 -116
  270. package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +0 -47
  271. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +0 -47
  272. package/src/cli/cmd/tui/routes/session/footer.tsx +0 -91
  273. package/src/cli/cmd/tui/routes/session/index.tsx +0 -3073
  274. package/src/cli/cmd/tui/routes/session/permission.tsx +0 -697
  275. package/src/cli/cmd/tui/routes/session/question.tsx +0 -488
  276. package/src/cli/cmd/tui/routes/session/sidebar.tsx +0 -97
  277. package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +0 -143
  278. package/src/cli/cmd/tui/thread.ts +0 -324
  279. package/src/cli/cmd/tui/ui/dialog-alert.tsx +0 -61
  280. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +0 -95
  281. package/src/cli/cmd/tui/ui/dialog-export-options.tsx +0 -223
  282. package/src/cli/cmd/tui/ui/dialog-help.tsx +0 -42
  283. package/src/cli/cmd/tui/ui/dialog-prompt.tsx +0 -123
  284. package/src/cli/cmd/tui/ui/dialog-select.tsx +0 -467
  285. package/src/cli/cmd/tui/ui/dialog.tsx +0 -207
  286. package/src/cli/cmd/tui/ui/link.tsx +0 -28
  287. package/src/cli/cmd/tui/ui/spinner.ts +0 -378
  288. package/src/cli/cmd/tui/ui/toast.tsx +0 -102
  289. package/src/cli/cmd/tui/util/clipboard.ts +0 -203
  290. package/src/cli/cmd/tui/util/editor.ts +0 -36
  291. package/src/cli/cmd/tui/util/image-protocol.ts +0 -35
  292. package/src/cli/cmd/tui/util/index.ts +0 -6
  293. package/src/cli/cmd/tui/util/model.ts +0 -23
  294. package/src/cli/cmd/tui/util/pinyin.ts +0 -20
  295. package/src/cli/cmd/tui/util/provider-origin.ts +0 -7
  296. package/src/cli/cmd/tui/util/revert-diff.ts +0 -18
  297. package/src/cli/cmd/tui/util/scroll.ts +0 -23
  298. package/src/cli/cmd/tui/util/selection.ts +0 -23
  299. package/src/cli/cmd/tui/util/signal.ts +0 -41
  300. package/src/cli/cmd/tui/util/sound.ts +0 -154
  301. package/src/cli/cmd/tui/util/system-locale.ts +0 -209
  302. package/src/cli/cmd/tui/util/terminal.ts +0 -110
  303. package/src/cli/cmd/tui/util/transcript.ts +0 -112
  304. package/src/cli/cmd/tui/util/vad.ts +0 -229
  305. package/src/cli/cmd/tui/util/voice.ts +0 -450
  306. package/src/cli/cmd/tui/win32.ts +0 -130
  307. package/src/cli/cmd/tui/worker.ts +0 -104
  308. package/src/cli/cmd/uninstall.ts +0 -351
  309. package/src/cli/cmd/upgrade.ts +0 -79
  310. package/src/cli/cmd/web.ts +0 -96
  311. package/src/cli/effect/prompt.ts +0 -25
  312. package/src/cli/error.ts +0 -82
  313. package/src/cli/heap.ts +0 -59
  314. package/src/cli/i18n.ts +0 -15
  315. package/src/cli/logo.ts +0 -53
  316. package/src/cli/network.ts +0 -68
  317. package/src/cli/ui.ts +0 -133
  318. package/src/cli/upgrade.ts +0 -41
  319. package/src/command/index.ts +0 -276
  320. package/src/command/template/initialize.txt +0 -66
  321. package/src/command/template/review.txt +0 -101
  322. package/src/config/agent.ts +0 -197
  323. package/src/config/command.ts +0 -69
  324. package/src/config/compose.ts +0 -26
  325. package/src/config/config.ts +0 -1047
  326. package/src/config/console-state.ts +0 -16
  327. package/src/config/entry-name.ts +0 -16
  328. package/src/config/error.ts +0 -21
  329. package/src/config/formatter.ts +0 -17
  330. package/src/config/history.ts +0 -21
  331. package/src/config/index.ts +0 -17
  332. package/src/config/keybinds.ts +0 -127
  333. package/src/config/layout.ts +0 -10
  334. package/src/config/lsp.ts +0 -45
  335. package/src/config/managed.ts +0 -70
  336. package/src/config/markdown.ts +0 -97
  337. package/src/config/mcp.ts +0 -172
  338. package/src/config/model-id.ts +0 -14
  339. package/src/config/parse.ts +0 -44
  340. package/src/config/paths.ts +0 -85
  341. package/src/config/permission.ts +0 -76
  342. package/src/config/plugin.ts +0 -88
  343. package/src/config/provider.ts +0 -118
  344. package/src/config/server.ts +0 -20
  345. package/src/config/skills.ts +0 -16
  346. package/src/config/variable.ts +0 -90
  347. package/src/control-plane/adaptors/index.ts +0 -52
  348. package/src/control-plane/adaptors/worktree.ts +0 -47
  349. package/src/control-plane/dev/debug-workspace-plugin.ts +0 -73
  350. package/src/control-plane/schema.ts +0 -19
  351. package/src/control-plane/sse.ts +0 -66
  352. package/src/control-plane/types.ts +0 -34
  353. package/src/control-plane/util.ts +0 -37
  354. package/src/control-plane/workspace-context.ts +0 -26
  355. package/src/control-plane/workspace.sql.ts +0 -17
  356. package/src/control-plane/workspace.ts +0 -615
  357. package/src/effect/app-runtime.ts +0 -146
  358. package/src/effect/bootstrap-runtime.ts +0 -33
  359. package/src/effect/bridge.ts +0 -48
  360. package/src/effect/cross-spawn-spawner.ts +0 -514
  361. package/src/effect/index.ts +0 -5
  362. package/src/effect/instance-ref.ts +0 -11
  363. package/src/effect/instance-registry.ts +0 -12
  364. package/src/effect/instance-state.ts +0 -81
  365. package/src/effect/logger.ts +0 -73
  366. package/src/effect/memo-map.ts +0 -3
  367. package/src/effect/observability.ts +0 -107
  368. package/src/effect/run-service.ts +0 -52
  369. package/src/effect/runner.ts +0 -210
  370. package/src/effect/runtime.ts +0 -19
  371. package/src/env/index.ts +0 -37
  372. package/src/file/ignore.ts +0 -81
  373. package/src/file/index.ts +0 -664
  374. package/src/file/protected.ts +0 -59
  375. package/src/file/ripgrep.ts +0 -485
  376. package/src/file/watcher.ts +0 -163
  377. package/src/flag/flag.ts +0 -185
  378. package/src/format/formatter.ts +0 -403
  379. package/src/format/index.ts +0 -203
  380. package/src/git/index.ts +0 -260
  381. package/src/global/index.ts +0 -54
  382. package/src/history/backfill.ts +0 -162
  383. package/src/history/extract.ts +0 -67
  384. package/src/history/fts-query.ts +0 -15
  385. package/src/history/fts.sql.ts +0 -20
  386. package/src/history/index.ts +0 -10
  387. package/src/history/resolve.ts +0 -65
  388. package/src/history/service.ts +0 -258
  389. package/src/history/writer.ts +0 -112
  390. package/src/id/id.ts +0 -87
  391. package/src/ide/index.ts +0 -73
  392. package/src/inbox/inbox-ref.ts +0 -38
  393. package/src/inbox/inbox.sql.ts +0 -26
  394. package/src/inbox/inbox.ts +0 -223
  395. package/src/inbox/index.ts +0 -3
  396. package/src/inbox/render.ts +0 -40
  397. package/src/index.ts +0 -268
  398. package/src/installation/index.ts +0 -362
  399. package/src/installation/version.ts +0 -8
  400. package/src/lsp/client.ts +0 -249
  401. package/src/lsp/diagnostic.ts +0 -29
  402. package/src/lsp/index.ts +0 -3
  403. package/src/lsp/language.ts +0 -120
  404. package/src/lsp/launch.ts +0 -21
  405. package/src/lsp/lsp.ts +0 -519
  406. package/src/lsp/server.ts +0 -1956
  407. package/src/mcp/auth.ts +0 -144
  408. package/src/mcp/index.ts +0 -939
  409. package/src/mcp/oauth-callback.ts +0 -236
  410. package/src/mcp/oauth-provider.ts +0 -214
  411. package/src/memory/fts-query.ts +0 -37
  412. package/src/memory/fts.sql.ts +0 -19
  413. package/src/memory/index.ts +0 -1
  414. package/src/memory/paths.ts +0 -116
  415. package/src/memory/reconcile.ts +0 -144
  416. package/src/memory/service.ts +0 -144
  417. package/src/metrics/client.ts +0 -40
  418. package/src/metrics/event.ts +0 -43
  419. package/src/metrics/index.ts +0 -5
  420. package/src/metrics/installation.ts +0 -18
  421. package/src/metrics/subscriber.ts +0 -58
  422. package/src/metrics/util.ts +0 -9
  423. package/src/node.ts +0 -6
  424. package/src/npm/config.ts +0 -0
  425. package/src/npm/index.ts +0 -293
  426. package/src/npmcli-config.d.ts +0 -43
  427. package/src/patch/index.ts +0 -680
  428. package/src/permission/arity.ts +0 -163
  429. package/src/permission/evaluate.ts +0 -15
  430. package/src/permission/index.ts +0 -382
  431. package/src/permission/schema.ts +0 -17
  432. package/src/plugin/checkpoint-splitover.ts +0 -60
  433. package/src/plugin/cloudflare.ts +0 -76
  434. package/src/plugin/codex.ts +0 -611
  435. package/src/plugin/github-copilot/copilot.ts +0 -368
  436. package/src/plugin/github-copilot/models.ts +0 -153
  437. package/src/plugin/index.ts +0 -637
  438. package/src/plugin/install.ts +0 -439
  439. package/src/plugin/loader.ts +0 -216
  440. package/src/plugin/matcher.ts +0 -33
  441. package/src/plugin/meta.ts +0 -188
  442. package/src/plugin/shared.ts +0 -323
  443. package/src/plugin/sleepy.ts +0 -244
  444. package/src/plugin/subagent-progress-checker.ts +0 -147
  445. package/src/project/bootstrap.ts +0 -59
  446. package/src/project/index.ts +0 -2
  447. package/src/project/instance.ts +0 -215
  448. package/src/project/project-id.ts +0 -48
  449. package/src/project/project.sql.ts +0 -16
  450. package/src/project/project.ts +0 -522
  451. package/src/project/schema.ts +0 -15
  452. package/src/project/vcs.ts +0 -227
  453. package/src/project/workspace-trust.ts +0 -67
  454. package/src/provider/auth.ts +0 -234
  455. package/src/provider/error.ts +0 -216
  456. package/src/provider/index.ts +0 -5
  457. package/src/provider/models-snapshot.d.ts +0 -2
  458. package/src/provider/models-snapshot.js +0 -3
  459. package/src/provider/models.ts +0 -180
  460. package/src/provider/provider.ts +0 -2098
  461. package/src/provider/schema.ts +0 -36
  462. package/src/provider/sdk/copilot/README.md +0 -5
  463. package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -170
  464. package/src/provider/sdk/copilot/chat/get-response-metadata.ts +0 -15
  465. package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -19
  466. package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +0 -64
  467. package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +0 -815
  468. package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +0 -28
  469. package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -44
  470. package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -83
  471. package/src/provider/sdk/copilot/copilot-provider.ts +0 -100
  472. package/src/provider/sdk/copilot/index.ts +0 -2
  473. package/src/provider/sdk/copilot/openai-compatible-error.ts +0 -27
  474. package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +0 -335
  475. package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +0 -22
  476. package/src/provider/sdk/copilot/responses/openai-config.ts +0 -18
  477. package/src/provider/sdk/copilot/responses/openai-error.ts +0 -22
  478. package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +0 -214
  479. package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +0 -1770
  480. package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +0 -173
  481. package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +0 -1
  482. package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +0 -87
  483. package/src/provider/sdk/copilot/responses/tool/file-search.ts +0 -127
  484. package/src/provider/sdk/copilot/responses/tool/image-generation.ts +0 -114
  485. package/src/provider/sdk/copilot/responses/tool/local-shell.ts +0 -64
  486. package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +0 -103
  487. package/src/provider/sdk/copilot/responses/tool/web-search.ts +0 -102
  488. package/src/provider/session-check.ts +0 -163
  489. package/src/provider/transform.ts +0 -1376
  490. package/src/pty/index.ts +0 -364
  491. package/src/pty/pty.bun.ts +0 -26
  492. package/src/pty/pty.node.ts +0 -27
  493. package/src/pty/pty.ts +0 -25
  494. package/src/pty/schema.ts +0 -17
  495. package/src/question/index.ts +0 -252
  496. package/src/question/schema.ts +0 -17
  497. package/src/server/adapter.bun.ts +0 -40
  498. package/src/server/adapter.node.ts +0 -66
  499. package/src/server/adapter.ts +0 -21
  500. package/src/server/auth.ts +0 -16
  501. package/src/server/error.ts +0 -53
  502. package/src/server/event.ts +0 -7
  503. package/src/server/fence.ts +0 -81
  504. package/src/server/mdns.ts +0 -60
  505. package/src/server/middleware.ts +0 -94
  506. package/src/server/projectors.ts +0 -28
  507. package/src/server/proxy.ts +0 -171
  508. package/src/server/pty-ticket.ts +0 -42
  509. package/src/server/rate-limit.ts +0 -38
  510. package/src/server/routes/control/index.ts +0 -160
  511. package/src/server/routes/control/workspace.ts +0 -203
  512. package/src/server/routes/global.ts +0 -367
  513. package/src/server/routes/instance/bash-interactive.ts +0 -82
  514. package/src/server/routes/instance/config.ts +0 -89
  515. package/src/server/routes/instance/event.ts +0 -108
  516. package/src/server/routes/instance/experimental.ts +0 -408
  517. package/src/server/routes/instance/file.ts +0 -190
  518. package/src/server/routes/instance/httpapi/config.ts +0 -51
  519. package/src/server/routes/instance/httpapi/permission.ts +0 -72
  520. package/src/server/routes/instance/httpapi/project.ts +0 -62
  521. package/src/server/routes/instance/httpapi/provider.ts +0 -142
  522. package/src/server/routes/instance/httpapi/question.ts +0 -121
  523. package/src/server/routes/instance/httpapi/server.ts +0 -153
  524. package/src/server/routes/instance/index.ts +0 -301
  525. package/src/server/routes/instance/mcp.ts +0 -260
  526. package/src/server/routes/instance/middleware.ts +0 -44
  527. package/src/server/routes/instance/permission.ts +0 -73
  528. package/src/server/routes/instance/project.ts +0 -122
  529. package/src/server/routes/instance/provider.ts +0 -158
  530. package/src/server/routes/instance/pty.ts +0 -302
  531. package/src/server/routes/instance/question.ts +0 -162
  532. package/src/server/routes/instance/session.ts +0 -1328
  533. package/src/server/routes/instance/sync.ts +0 -143
  534. package/src/server/routes/instance/trace.ts +0 -59
  535. package/src/server/routes/instance/tui.ts +0 -384
  536. package/src/server/routes/instance/workflows.ts +0 -142
  537. package/src/server/routes/ui.ts +0 -37
  538. package/src/server/server.ts +0 -146
  539. package/src/server/workspace.ts +0 -122
  540. package/src/session/auto-dream.ts +0 -123
  541. package/src/session/boundary.ts +0 -77
  542. package/src/session/budgeted-read.ts +0 -118
  543. package/src/session/checkpoint-align.ts +0 -29
  544. package/src/session/checkpoint-context.ts +0 -36
  545. package/src/session/checkpoint-paths.ts +0 -86
  546. package/src/session/checkpoint-progress-reconcile.ts +0 -111
  547. package/src/session/checkpoint-retry.ts +0 -192
  548. package/src/session/checkpoint-templates.ts +0 -114
  549. package/src/session/checkpoint-validator.ts +0 -259
  550. package/src/session/checkpoint.ts +0 -1560
  551. package/src/session/classify.ts +0 -117
  552. package/src/session/claude-import.ts +0 -381
  553. package/src/session/codex-import.ts +0 -416
  554. package/src/session/compaction.ts +0 -545
  555. package/src/session/external-import.sql.ts +0 -18
  556. package/src/session/external-import.ts +0 -136
  557. package/src/session/goal.ts +0 -232
  558. package/src/session/index.ts +0 -1
  559. package/src/session/instruction.ts +0 -276
  560. package/src/session/last-message-info.ts +0 -32
  561. package/src/session/llm-request-prefix.ts +0 -82
  562. package/src/session/llm.ts +0 -737
  563. package/src/session/max-mode.ts +0 -410
  564. package/src/session/message-v2.ts +0 -1138
  565. package/src/session/message.ts +0 -191
  566. package/src/session/opencode-import.ts +0 -281
  567. package/src/session/overflow.ts +0 -53
  568. package/src/session/prefix-capture-ref.ts +0 -48
  569. package/src/session/processor.ts +0 -983
  570. package/src/session/projectors.ts +0 -137
  571. package/src/session/prompt/anthropic.txt +0 -154
  572. package/src/session/prompt/beast.txt +0 -155
  573. package/src/session/prompt/build-switch.txt +0 -5
  574. package/src/session/prompt/codex.txt +0 -79
  575. package/src/session/prompt/compose.txt +0 -119
  576. package/src/session/prompt/copilot-gpt-5.txt +0 -143
  577. package/src/session/prompt/deepseek.txt +0 -131
  578. package/src/session/prompt/default.old.txt +0 -151
  579. package/src/session/prompt/default.txt +0 -172
  580. package/src/session/prompt/gemini.txt +0 -155
  581. package/src/session/prompt/glm.txt +0 -51
  582. package/src/session/prompt/gpt.txt +0 -107
  583. package/src/session/prompt/kimi.txt +0 -95
  584. package/src/session/prompt/max-steps.txt +0 -16
  585. package/src/session/prompt/minimax.txt +0 -140
  586. package/src/session/prompt/text-loop-recovery.ts +0 -40
  587. package/src/session/prompt/text-ngram-detection.ts +0 -87
  588. package/src/session/prompt/trinity.txt +0 -97
  589. package/src/session/prompt.ts +0 -3878
  590. package/src/session/prune.ts +0 -481
  591. package/src/session/retry.ts +0 -178
  592. package/src/session/revert.ts +0 -161
  593. package/src/session/run-state.ts +0 -135
  594. package/src/session/schema.ts +0 -36
  595. package/src/session/session.sql.ts +0 -110
  596. package/src/session/session.ts +0 -908
  597. package/src/session/status.ts +0 -89
  598. package/src/session/summary.ts +0 -163
  599. package/src/session/system.ts +0 -96
  600. package/src/session/todo.ts +0 -77
  601. package/src/session/trajectory.ts +0 -98
  602. package/src/share/index.ts +0 -2
  603. package/src/share/session.ts +0 -57
  604. package/src/share/share-next.ts +0 -381
  605. package/src/share/share.sql.ts +0 -13
  606. package/src/shell/shell.ts +0 -124
  607. package/src/skill/builtin/.bundle/self-extend/SKILL.md +0 -131
  608. package/src/skill/builtin/.bundle/self-extend/reference/hook-api.md +0 -242
  609. package/src/skill/builtin/.bundle/self-extend/reference/skill-api.md +0 -114
  610. package/src/skill/builtin/.bundle/self-extend/reference/tool-api.md +0 -115
  611. package/src/skill/builtin/.bundle/self-extend/reference/tui-api.md +0 -258
  612. package/src/skill/builtin/bundle.macro.ts +0 -30
  613. package/src/skill/builtin/extract.ts +0 -41
  614. package/src/skill/compose/.bundle/ask/SKILL.md +0 -58
  615. package/src/skill/compose/.bundle/brainstorm/SKILL.md +0 -200
  616. package/src/skill/compose/.bundle/brainstorm/scripts/frame-template.html +0 -214
  617. package/src/skill/compose/.bundle/brainstorm/scripts/helper.js +0 -88
  618. package/src/skill/compose/.bundle/brainstorm/scripts/server.cjs +0 -354
  619. package/src/skill/compose/.bundle/brainstorm/scripts/start-server.sh +0 -148
  620. package/src/skill/compose/.bundle/brainstorm/scripts/stop-server.sh +0 -56
  621. package/src/skill/compose/.bundle/brainstorm/spec-document-reviewer-prompt.md +0 -50
  622. package/src/skill/compose/.bundle/brainstorm/visual-companion.md +0 -258
  623. package/src/skill/compose/.bundle/debug/CREATION-LOG.md +0 -119
  624. package/src/skill/compose/.bundle/debug/SKILL.md +0 -297
  625. package/src/skill/compose/.bundle/debug/condition-based-waiting-example.ts +0 -158
  626. package/src/skill/compose/.bundle/debug/condition-based-waiting.md +0 -106
  627. package/src/skill/compose/.bundle/debug/defense-in-depth.md +0 -122
  628. package/src/skill/compose/.bundle/debug/find-polluter.sh +0 -63
  629. package/src/skill/compose/.bundle/debug/root-cause-tracing.md +0 -144
  630. package/src/skill/compose/.bundle/debug/test-academic.md +0 -14
  631. package/src/skill/compose/.bundle/debug/test-pressure-1.md +0 -58
  632. package/src/skill/compose/.bundle/debug/test-pressure-2.md +0 -68
  633. package/src/skill/compose/.bundle/debug/test-pressure-3.md +0 -69
  634. package/src/skill/compose/.bundle/execute/SKILL.md +0 -71
  635. package/src/skill/compose/.bundle/feedback/SKILL.md +0 -214
  636. package/src/skill/compose/.bundle/merge/SKILL.md +0 -252
  637. package/src/skill/compose/.bundle/new-skill/SKILL.md +0 -211
  638. package/src/skill/compose/.bundle/parallel/SKILL.md +0 -168
  639. package/src/skill/compose/.bundle/plan/SKILL.md +0 -183
  640. package/src/skill/compose/.bundle/plan/plan-document-reviewer-prompt.md +0 -50
  641. package/src/skill/compose/.bundle/report/SKILL.md +0 -180
  642. package/src/skill/compose/.bundle/review/SKILL.md +0 -104
  643. package/src/skill/compose/.bundle/review/code-reviewer.md +0 -178
  644. package/src/skill/compose/.bundle/subagent/SKILL.md +0 -325
  645. package/src/skill/compose/.bundle/subagent/code-quality-reviewer-prompt.md +0 -26
  646. package/src/skill/compose/.bundle/subagent/implementer-prompt.md +0 -128
  647. package/src/skill/compose/.bundle/subagent/spec-reviewer-prompt.md +0 -118
  648. package/src/skill/compose/.bundle/tdd/SKILL.md +0 -360
  649. package/src/skill/compose/.bundle/tdd/testing-anti-patterns.md +0 -299
  650. package/src/skill/compose/.bundle/verify/SKILL.md +0 -140
  651. package/src/skill/compose/.bundle/worktree/SKILL.md +0 -234
  652. package/src/skill/compose/LICENSE-karpathy +0 -28
  653. package/src/skill/compose/bundle.macro.ts +0 -30
  654. package/src/skill/compose/extract.ts +0 -85
  655. package/src/skill/discovery.ts +0 -114
  656. package/src/skill/index.ts +0 -328
  657. package/src/snapshot/index.ts +0 -777
  658. package/src/sql.d.ts +0 -4
  659. package/src/storage/db.bun.ts +0 -8
  660. package/src/storage/db.node.ts +0 -8
  661. package/src/storage/db.ts +0 -172
  662. package/src/storage/index.ts +0 -26
  663. package/src/storage/json-migration.ts +0 -426
  664. package/src/storage/read-sqlite.bun.ts +0 -11
  665. package/src/storage/read-sqlite.node.ts +0 -13
  666. package/src/storage/read-sqlite.ts +0 -10
  667. package/src/storage/schema.sql.ts +0 -10
  668. package/src/storage/schema.ts +0 -7
  669. package/src/storage/storage.ts +0 -331
  670. package/src/sync/README.md +0 -179
  671. package/src/sync/event.sql.ts +0 -16
  672. package/src/sync/index.ts +0 -278
  673. package/src/sync/schema.ts +0 -14
  674. package/src/task/events.ts +0 -28
  675. package/src/task/gate-state.ts +0 -54
  676. package/src/task/gate.ts +0 -116
  677. package/src/task/index.ts +0 -1
  678. package/src/task/registry.ts +0 -394
  679. package/src/task/schema.ts +0 -43
  680. package/src/task/task.sql.ts +0 -50
  681. package/src/team/events.ts +0 -22
  682. package/src/team/index.ts +0 -113
  683. package/src/team/schema.ts +0 -31
  684. package/src/temporary.ts +0 -33
  685. package/src/tool/actor.shell.txt +0 -72
  686. package/src/tool/actor.ts +0 -804
  687. package/src/tool/actor.txt +0 -103
  688. package/src/tool/apply_patch.ts +0 -308
  689. package/src/tool/apply_patch.txt +0 -33
  690. package/src/tool/bash-interactive.ts +0 -183
  691. package/src/tool/bash.ts +0 -704
  692. package/src/tool/bash.txt +0 -123
  693. package/src/tool/change-directory.ts +0 -91
  694. package/src/tool/codesearch.ts +0 -63
  695. package/src/tool/codesearch.txt +0 -12
  696. package/src/tool/edit.ts +0 -693
  697. package/src/tool/edit.txt +0 -10
  698. package/src/tool/external-directory.ts +0 -132
  699. package/src/tool/glob.ts +0 -100
  700. package/src/tool/glob.txt +0 -6
  701. package/src/tool/grep.ts +0 -145
  702. package/src/tool/grep.txt +0 -8
  703. package/src/tool/history.ts +0 -146
  704. package/src/tool/history.txt +0 -17
  705. package/src/tool/index.ts +0 -4
  706. package/src/tool/invalid.ts +0 -20
  707. package/src/tool/invocation-style.ts +0 -17
  708. package/src/tool/lsp.ts +0 -91
  709. package/src/tool/lsp.txt +0 -19
  710. package/src/tool/mcp-exa.ts +0 -78
  711. package/src/tool/memory-path-guard.ts +0 -162
  712. package/src/tool/memory.ts +0 -81
  713. package/src/tool/memory.txt +0 -69
  714. package/src/tool/multiedit.ts +0 -54
  715. package/src/tool/multiedit.txt +0 -41
  716. package/src/tool/notebook-edit.ts +0 -225
  717. package/src/tool/notebook-edit.txt +0 -10
  718. package/src/tool/plan-enter.txt +0 -16
  719. package/src/tool/plan-exit.txt +0 -14
  720. package/src/tool/plan.ts +0 -179
  721. package/src/tool/question.ts +0 -67
  722. package/src/tool/question.txt +0 -10
  723. package/src/tool/read-state.ts +0 -44
  724. package/src/tool/read.ts +0 -327
  725. package/src/tool/read.txt +0 -14
  726. package/src/tool/recoverable.ts +0 -35
  727. package/src/tool/registry.ts +0 -429
  728. package/src/tool/schema.ts +0 -17
  729. package/src/tool/session-cwd.ts +0 -35
  730. package/src/tool/shell-tokenize.ts +0 -374
  731. package/src/tool/shell-wrap.ts +0 -235
  732. package/src/tool/skill.ts +0 -76
  733. package/src/tool/skill.txt +0 -5
  734. package/src/tool/task.shell.txt +0 -57
  735. package/src/tool/task.ts +0 -456
  736. package/src/tool/task.txt +0 -56
  737. package/src/tool/tool.ts +0 -166
  738. package/src/tool/truncate.ts +0 -201
  739. package/src/tool/truncation-dir.ts +0 -4
  740. package/src/tool/webfetch.ts +0 -208
  741. package/src/tool/webfetch.txt +0 -13
  742. package/src/tool/websearch/index.ts +0 -104
  743. package/src/tool/websearch/sleepy.ts +0 -118
  744. package/src/tool/websearch/websearch.txt +0 -14
  745. package/src/tool/workflow.ts +0 -357
  746. package/src/tool/workflow.txt +0 -25
  747. package/src/tool/write.ts +0 -88
  748. package/src/tool/write.txt +0 -10
  749. package/src/util/abort.ts +0 -35
  750. package/src/util/archive.ts +0 -15
  751. package/src/util/color.ts +0 -17
  752. package/src/util/data-url.ts +0 -9
  753. package/src/util/defer.ts +0 -10
  754. package/src/util/effect-http-client.ts +0 -11
  755. package/src/util/effect-zod.ts +0 -367
  756. package/src/util/env-info.ts +0 -62
  757. package/src/util/error.ts +0 -78
  758. package/src/util/filesystem.ts +0 -243
  759. package/src/util/fn.ts +0 -21
  760. package/src/util/format.ts +0 -20
  761. package/src/util/iife.ts +0 -3
  762. package/src/util/index.ts +0 -14
  763. package/src/util/keybind.ts +0 -101
  764. package/src/util/lazy.ts +0 -18
  765. package/src/util/local-context.ts +0 -23
  766. package/src/util/locale.ts +0 -79
  767. package/src/util/lock.ts +0 -96
  768. package/src/util/log.ts +0 -234
  769. package/src/util/media.ts +0 -26
  770. package/src/util/network.ts +0 -9
  771. package/src/util/process.ts +0 -174
  772. package/src/util/provider-priority.ts +0 -48
  773. package/src/util/queue.ts +0 -60
  774. package/src/util/record.ts +0 -3
  775. package/src/util/rpc.ts +0 -64
  776. package/src/util/schema.ts +0 -53
  777. package/src/util/scrap.ts +0 -10
  778. package/src/util/signal.ts +0 -12
  779. package/src/util/sleepy-process.ts +0 -24
  780. package/src/util/ssrf.ts +0 -116
  781. package/src/util/timeout.ts +0 -14
  782. package/src/util/token.ts +0 -5
  783. package/src/util/tool-compat.ts +0 -144
  784. package/src/util/update-schema.ts +0 -13
  785. package/src/util/which.ts +0 -14
  786. package/src/util/wildcard.ts +0 -57
  787. package/src/workflow/builtin/compose.js +0 -749
  788. package/src/workflow/builtin/deep-research.js +0 -398
  789. package/src/workflow/builtin.ts +0 -59
  790. package/src/workflow/events.ts +0 -72
  791. package/src/workflow/meta.ts +0 -335
  792. package/src/workflow/persistence.ts +0 -312
  793. package/src/workflow/resolve.ts +0 -45
  794. package/src/workflow/runtime-ref.ts +0 -18
  795. package/src/workflow/runtime.ts +0 -1447
  796. package/src/workflow/sandbox.ts +0 -286
  797. package/src/workflow/workflow.sql.ts +0 -31
  798. package/src/workflow/workspace.ts +0 -69
  799. package/src/worktree/index.ts +0 -629
@@ -1,961 +0,0 @@
1
- import { BoxRenderable, MouseButton, MouseEvent, RGBA, TextAttributes } from "@opentui/core"
2
- import { For, createMemo, createSignal, onCleanup, onMount, type JSX } from "solid-js"
3
- import { useTheme, tint } from "@tui/context/theme"
4
- import * as Sound from "@tui/util/sound"
5
- import { go, logo } from "@/cli/logo"
6
-
7
- export type LogoShape = {
8
- left: string[]
9
- right: string[]
10
- }
11
-
12
- type ShimmerConfig = {
13
- period: number
14
- rings: number
15
- sweepFraction: number
16
- coreWidth: number
17
- coreAmp: number
18
- softWidth: number
19
- softAmp: number
20
- tail: number
21
- tailAmp: number
22
- haloWidth: number
23
- haloOffset: number
24
- haloAmp: number
25
- breathBase: number
26
- noise: number
27
- ambientAmp: number
28
- ambientCenter: number
29
- ambientWidth: number
30
- shadowMix: number
31
- primaryMix: number
32
- originX: number
33
- originY: number
34
- }
35
-
36
- const shimmerConfig: ShimmerConfig = {
37
- period: 4600,
38
- rings: 2,
39
- sweepFraction: 1,
40
- coreWidth: 1.2,
41
- coreAmp: 1.9,
42
- softWidth: 10,
43
- softAmp: 1.6,
44
- tail: 5,
45
- tailAmp: 0.64,
46
- haloWidth: 4.3,
47
- haloOffset: 0.6,
48
- haloAmp: 0.16,
49
- breathBase: 0.04,
50
- noise: 0.1,
51
- ambientAmp: 0.36,
52
- ambientCenter: 0.5,
53
- ambientWidth: 0.34,
54
- shadowMix: 0.1,
55
- primaryMix: 0.3,
56
- originX: 4.5,
57
- originY: 13.5,
58
- }
59
-
60
- // Shadow markers (rendered chars in parens):
61
- // _ = full shadow cell (space with bg=shadow)
62
- // ^ = letter top, shadow bottom (▀ with fg=letter, bg=shadow)
63
- // ~ = shadow top only (▀ with fg=shadow)
64
- const GAP = 1
65
- const WIDTH = 0.76
66
- const GAIN = 2.3
67
- const FLASH = 2.15
68
- const TRAIL = 0.28
69
- const SWELL = 0.24
70
- const WIDE = 1.85
71
- const DRIFT = 1.45
72
- const EXPAND = 1.62
73
- const LIFE = 1020
74
- const CHARGE = 3000
75
- const HOLD = 90
76
- const SINK = 40
77
- const ARC = 2.2
78
- const FORK = 1.2
79
- const DIM = 1.04
80
- const KICK = 0.86
81
- const LAG = 60
82
- const SUCK = 0.34
83
- const SHIMMER_IN = 60
84
- const SHIMMER_OUT = 2.8
85
- const TRACE = 0.033
86
- const TAIL = 1.8
87
- const TRACE_IN = 200
88
- const GLOW_OUT = 1600
89
- const SWEEP_INTERVAL = 10000
90
- const SWEEP_DURATION = 1900
91
- const SWEEP_BAND = 4.5
92
- const SWEEP_AMP = 1.5
93
- const PEAK = RGBA.fromInts(255, 255, 255)
94
-
95
- type Ring = {
96
- x: number
97
- y: number
98
- at: number
99
- force: number
100
- kick: number
101
- }
102
-
103
- type Hold = {
104
- x: number
105
- y: number
106
- at: number
107
- glyph: number | undefined
108
- }
109
-
110
- type Release = {
111
- x: number
112
- y: number
113
- at: number
114
- glyph: number | undefined
115
- level: number
116
- rise: number
117
- }
118
-
119
- type Glow = {
120
- glyph: number
121
- at: number
122
- force: number
123
- }
124
-
125
- type Sweep = {
126
- at: number
127
- }
128
-
129
- type Frame = {
130
- t: number
131
- list: Ring[]
132
- hold: Hold | undefined
133
- release: Release | undefined
134
- glow: Glow | undefined
135
- spark: number
136
- sweep: Sweep | undefined
137
- }
138
-
139
- const NEAR = [
140
- [1, 0],
141
- [1, 1],
142
- [0, 1],
143
- [-1, 1],
144
- [-1, 0],
145
- [-1, -1],
146
- [0, -1],
147
- [1, -1],
148
- ] as const
149
-
150
- type Trace = {
151
- glyph: number
152
- i: number
153
- l: number
154
- }
155
-
156
- function clamp(n: number) {
157
- return Math.max(0, Math.min(1, n))
158
- }
159
-
160
- function lerp(a: number, b: number, t: number) {
161
- return a + (b - a) * clamp(t)
162
- }
163
-
164
- function ease(t: number) {
165
- const p = clamp(t)
166
- return p * p * (3 - 2 * p)
167
- }
168
-
169
- function push(t: number) {
170
- const p = clamp(t)
171
- return ease(p * p)
172
- }
173
-
174
- function ramp(t: number, start: number, end: number) {
175
- if (end <= start) return ease(t >= end ? 1 : 0)
176
- return ease((t - start) / (end - start))
177
- }
178
-
179
- function glow(base: RGBA, theme: ReturnType<typeof useTheme>["theme"], n: number) {
180
- const mid = tint(base, theme.primary, 0.84)
181
- const top = tint(theme.primary, PEAK, 0.96)
182
- if (n <= 1) return tint(base, mid, Math.min(1, Math.sqrt(Math.max(0, n)) * 1.14))
183
- return tint(mid, top, Math.min(1, 1 - Math.exp(-2.4 * (n - 1))))
184
- }
185
-
186
- function shade(base: RGBA, theme: ReturnType<typeof useTheme>["theme"], n: number) {
187
- if (n >= 0) return glow(base, theme, n)
188
- return tint(base, theme.background, Math.min(0.82, -n * 0.64))
189
- }
190
-
191
- function ghost(n: number, scale: number) {
192
- if (n < 0) return n
193
- return n * scale
194
- }
195
-
196
- function noise(x: number, y: number, t: number) {
197
- const n = Math.sin(x * 12.9898 + y * 78.233 + t * 0.043) * 43758.5453
198
- return n - Math.floor(n)
199
- }
200
-
201
- function lit(char: string) {
202
- return char !== " " && char !== "_" && char !== "~" && char !== ","
203
- }
204
-
205
- function key(x: number, y: number) {
206
- return `${x},${y}`
207
- }
208
-
209
- function route(list: Array<{ x: number; y: number }>) {
210
- const left = new Map(list.map((item) => [key(item.x, item.y), item]))
211
- const path: Array<{ x: number; y: number }> = []
212
- let cur = [...left.values()].sort((a, b) => a.y - b.y || a.x - b.x)[0]
213
- let dir = { x: 1, y: 0 }
214
-
215
- while (cur) {
216
- path.push(cur)
217
- left.delete(key(cur.x, cur.y))
218
- if (!left.size) return path
219
-
220
- const next = NEAR.map(([dx, dy]) => left.get(key(cur.x + dx, cur.y + dy)))
221
- .filter((item): item is { x: number; y: number } => !!item)
222
- .sort((a, b) => {
223
- const ax = a.x - cur.x
224
- const ay = a.y - cur.y
225
- const bx = b.x - cur.x
226
- const by = b.y - cur.y
227
- const adot = ax * dir.x + ay * dir.y
228
- const bdot = bx * dir.x + by * dir.y
229
- if (adot !== bdot) return bdot - adot
230
- return Math.abs(ax) + Math.abs(ay) - (Math.abs(bx) + Math.abs(by))
231
- })[0]
232
-
233
- if (!next) {
234
- cur = [...left.values()].sort((a, b) => {
235
- const da = (a.x - cur.x) ** 2 + (a.y - cur.y) ** 2
236
- const db = (b.x - cur.x) ** 2 + (b.y - cur.y) ** 2
237
- return da - db
238
- })[0]
239
- dir = { x: 1, y: 0 }
240
- continue
241
- }
242
-
243
- dir = { x: next.x - cur.x, y: next.y - cur.y }
244
- cur = next
245
- }
246
-
247
- return path
248
- }
249
-
250
- function mapGlyphs(full: string[]) {
251
- const cells = [] as Array<{ x: number; y: number }>
252
-
253
- for (let y = 0; y < full.length; y++) {
254
- for (let x = 0; x < (full[y]?.length ?? 0); x++) {
255
- if (lit(full[y]?.[x] ?? " ")) cells.push({ x, y })
256
- }
257
- }
258
-
259
- const all = new Map(cells.map((item) => [key(item.x, item.y), item]))
260
- const seen = new Set<string>()
261
- const glyph = new Map<string, number>()
262
- const trace = new Map<string, Trace>()
263
- const center = new Map<number, { x: number; y: number }>()
264
- let id = 0
265
-
266
- for (const item of cells) {
267
- const start = key(item.x, item.y)
268
- if (seen.has(start)) continue
269
- const stack = [item]
270
- const part = [] as Array<{ x: number; y: number }>
271
- seen.add(start)
272
-
273
- while (stack.length) {
274
- const cur = stack.pop()!
275
- part.push(cur)
276
- glyph.set(key(cur.x, cur.y), id)
277
- for (const [dx, dy] of NEAR) {
278
- const next = all.get(key(cur.x + dx, cur.y + dy))
279
- if (!next) continue
280
- const mark = key(next.x, next.y)
281
- if (seen.has(mark)) continue
282
- seen.add(mark)
283
- stack.push(next)
284
- }
285
- }
286
-
287
- const path = route(part)
288
- path.forEach((cell, i) => trace.set(key(cell.x, cell.y), { glyph: id, i, l: path.length }))
289
- center.set(id, {
290
- x: part.reduce((sum, item) => sum + item.x, 0) / part.length + 0.5,
291
- y: (part.reduce((sum, item) => sum + item.y, 0) / part.length) * 2 + 1,
292
- })
293
- id++
294
- }
295
-
296
- return { glyph, trace, center }
297
- }
298
-
299
- type LogoContext = {
300
- LEFT: number
301
- FULL: string[]
302
- SPAN: number
303
- MAP: ReturnType<typeof mapGlyphs>
304
- shape: LogoShape
305
- }
306
-
307
- function build(shape: LogoShape): LogoContext {
308
- const LEFT = shape.left[0]?.length ?? 0
309
- const FULL = shape.left.map((line, i) => line + " ".repeat(GAP) + shape.right[i])
310
- const SPAN = Math.hypot(FULL[0]?.length ?? 0, FULL.length * 2) * 0.94
311
- return { LEFT, FULL, SPAN, MAP: mapGlyphs(FULL), shape }
312
- }
313
-
314
- const DEFAULT = build(logo)
315
- const GO = build(go)
316
-
317
- function shimmer(x: number, y: number, frame: Frame, ctx: LogoContext) {
318
- return frame.list.reduce((best, item) => {
319
- const age = frame.t - item.at
320
- if (age < SHIMMER_IN || age > LIFE) return best
321
- const dx = x + 0.5 - item.x
322
- const dy = y * 2 + 1 - item.y
323
- const dist = Math.hypot(dx, dy)
324
- const p = age / LIFE
325
- const r = ctx.SPAN * (1 - (1 - p) ** EXPAND)
326
- const lag = r - dist
327
- if (lag < 0.18 || lag > SHIMMER_OUT) return best
328
- const band = Math.exp(-(((lag - 1.05) / 0.68) ** 2))
329
- const wobble = 0.5 + 0.5 * Math.sin(frame.t * 0.035 + x * 0.9 + y * 1.7)
330
- const n = band * wobble * (1 - p) ** 1.45
331
- if (n > best) return n
332
- return best
333
- }, 0)
334
- }
335
-
336
- function remain(x: number, y: number, item: Release, t: number, ctx: LogoContext) {
337
- const age = t - item.at
338
- if (age < 0 || age > LIFE) return 0
339
- const p = age / LIFE
340
- const dx = x + 0.5 - item.x - 0.5
341
- const dy = y * 2 + 1 - item.y * 2 - 1
342
- const dist = Math.hypot(dx, dy)
343
- const r = ctx.SPAN * (1 - (1 - p) ** EXPAND)
344
- if (dist > r) return 1
345
- return clamp((r - dist) / 1.35 < 1 ? 1 - (r - dist) / 1.35 : 0)
346
- }
347
-
348
- function wave(x: number, y: number, frame: Frame, live: boolean, ctx: LogoContext) {
349
- return frame.list.reduce((sum, item) => {
350
- const age = frame.t - item.at
351
- if (age < 0 || age > LIFE) return sum
352
- const p = age / LIFE
353
- const dx = x + 0.5 - item.x
354
- const dy = y * 2 + 1 - item.y
355
- const dist = Math.hypot(dx, dy)
356
- const r = ctx.SPAN * (1 - (1 - p) ** EXPAND)
357
- const fade = (1 - p) ** 1.32
358
- const j = 1.02 + noise(x + item.x * 0.7, y + item.y * 0.7, item.at * 0.002 + age * 0.06) * 0.52
359
- const edge = Math.exp(-(((dist - r) / WIDTH) ** 2)) * GAIN * fade * item.force * j
360
- const swell = Math.exp(-(((dist - Math.max(0, r - DRIFT)) / WIDE) ** 2)) * SWELL * fade * item.force
361
- const trail = dist < r ? Math.exp(-(r - dist) / 2.4) * TRAIL * fade * item.force * lerp(0.92, 1.22, j) : 0
362
- const flash = Math.exp(-(dist * dist) / 3.2) * FLASH * item.force * Math.max(0, 1 - age / 140) * lerp(0.95, 1.18, j)
363
- const kick = Math.exp(-(dist * dist) / 2) * item.kick * Math.max(0, 1 - age / 100)
364
- const suck = Math.exp(-(((dist - 1.25) / 0.75) ** 2)) * item.kick * SUCK * Math.max(0, 1 - age / 110)
365
- const wake = live && dist < r ? Math.exp(-(r - dist) / 1.25) * 0.32 * fade : 0
366
- return sum + edge + swell + trail + flash + wake - kick - suck
367
- }, 0)
368
- }
369
-
370
- function field(x: number, y: number, frame: Frame, ctx: LogoContext) {
371
- const held = frame.hold
372
- const rest = frame.release
373
- const item = held ?? rest
374
- if (!item) return 0
375
- const rise = held ? ramp(frame.t - held.at, HOLD, CHARGE) : rest!.rise
376
- const level = held ? push(rise) : rest!.level
377
- const body = rise
378
- const storm = level * level
379
- const sink = held ? ramp(frame.t - held.at, SINK, CHARGE) : rest!.rise
380
- const dx = x + 0.5 - item.x - 0.5
381
- const dy = y * 2 + 1 - item.y * 2 - 1
382
- const dist = Math.hypot(dx, dy)
383
- const angle = Math.atan2(dy, dx)
384
- const spin = frame.t * lerp(0.008, 0.018, storm)
385
- const dim = lerp(0, DIM, sink) * lerp(0.99, 1.01, 0.5 + 0.5 * Math.sin(frame.t * 0.014))
386
- const core = Math.exp(-(dist * dist) / Math.max(0.22, lerp(0.22, 3.2, body))) * lerp(0.42, 2.45, body)
387
- const shell =
388
- Math.exp(-(((dist - lerp(0.16, 2.05, body)) / Math.max(0.18, lerp(0.18, 0.82, body))) ** 2)) * lerp(0.1, 0.95, body)
389
- const ember =
390
- Math.exp(-(((dist - lerp(0.45, 2.65, body)) / Math.max(0.14, lerp(0.14, 0.62, body))) ** 2)) *
391
- lerp(0.02, 0.78, body)
392
- const arc = Math.max(0, Math.cos(angle * 3 - spin + frame.spark * 2.2)) ** 8
393
- const seam = Math.max(0, Math.cos(angle * 5 + spin * 1.55)) ** 12
394
- const ring = Math.exp(-(((dist - lerp(1.05, 3, level)) / 0.48) ** 2)) * arc * lerp(0.03, 0.5 + ARC, storm)
395
- const fork = Math.exp(-(((dist - (1.55 + storm * 2.1)) / 0.36) ** 2)) * seam * storm * FORK
396
- const spark = Math.max(0, noise(x, y, frame.t) - lerp(0.94, 0.66, storm)) * lerp(0, 5.4, storm)
397
- const glitch = spark * Math.exp(-dist / Math.max(1.2, 3.1 - storm))
398
- const crack = Math.max(0, Math.cos((dx - dy) * 1.6 + spin * 2.1)) ** 18
399
- const lash = crack * Math.exp(-(((dist - (1.95 + storm * 2)) / 0.28) ** 2)) * storm * 1.1
400
- const flicker =
401
- Math.max(0, noise(item.x * 3.1, item.y * 2.7, frame.t * 1.7) - 0.72) *
402
- Math.exp(-(dist * dist) / 0.15) *
403
- lerp(0.08, 0.42, body)
404
- const fade = frame.release && !frame.hold ? remain(x, y, frame.release, frame.t, ctx) : 1
405
- return (core + shell + ember + ring + fork + glitch + lash + flicker - dim) * fade
406
- }
407
-
408
- function pick(x: number, y: number, frame: Frame, ctx: LogoContext) {
409
- const held = frame.hold
410
- const rest = frame.release
411
- const item = held ?? rest
412
- if (!item) return 0
413
- const rise = held ? ramp(frame.t - held.at, HOLD, CHARGE) : rest!.rise
414
- const dx = x + 0.5 - item.x - 0.5
415
- const dy = y * 2 + 1 - item.y * 2 - 1
416
- const dist = Math.hypot(dx, dy)
417
- const fade = frame.release && !frame.hold ? remain(x, y, frame.release, frame.t, ctx) : 1
418
- return Math.exp(-(dist * dist) / 1.7) * lerp(0.2, 0.96, rise) * fade
419
- }
420
-
421
- function select(x: number, y: number, ctx: LogoContext) {
422
- const direct = ctx.MAP.glyph.get(key(x, y))
423
- if (direct !== undefined) return direct
424
-
425
- const near = NEAR.map(([dx, dy]) => ctx.MAP.glyph.get(key(x + dx, y + dy))).find(
426
- (item): item is number => item !== undefined,
427
- )
428
- return near
429
- }
430
-
431
- function trace(x: number, y: number, frame: Frame, ctx: LogoContext) {
432
- const held = frame.hold
433
- const rest = frame.release
434
- const item = held ?? rest
435
- if (!item || item.glyph === undefined) return 0
436
- const step = ctx.MAP.trace.get(key(x, y))
437
- if (!step || step.glyph !== item.glyph || step.l < 2) return 0
438
- const age = frame.t - item.at
439
- const rise = held ? ramp(age, HOLD, CHARGE) : rest!.rise
440
- const appear = held ? ramp(age, 0, TRACE_IN) : 1
441
- const speed = lerp(TRACE * 0.48, TRACE * 0.88, rise)
442
- const head = (age * speed) % step.l
443
- const dist = Math.min(Math.abs(step.i - head), step.l - Math.abs(step.i - head))
444
- const tail = (head - TAIL + step.l) % step.l
445
- const lag = Math.min(Math.abs(step.i - tail), step.l - Math.abs(step.i - tail))
446
- const fade = frame.release && !frame.hold ? remain(x, y, frame.release, frame.t, ctx) : 1
447
- const core = Math.exp(-((dist / 1.05) ** 2)) * lerp(0.8, 2.35, rise)
448
- const glow = Math.exp(-((dist / 1.85) ** 2)) * lerp(0.08, 0.34, rise)
449
- const trail = Math.exp(-((lag / 1.45) ** 2)) * lerp(0.04, 0.42, rise)
450
- return (core + glow + trail) * appear * fade
451
- }
452
-
453
- function idle(
454
- x: number,
455
- pixelY: number,
456
- frame: Frame,
457
- ctx: LogoContext,
458
- state: IdleState,
459
- ): { glow: number; peak: number; primary: number } {
460
- const cfg = state.cfg
461
- const dx = x + 0.5 - cfg.originX
462
- const dy = pixelY - cfg.originY
463
- const dist = Math.hypot(dx, dy)
464
- const angle = Math.atan2(dy, dx)
465
- const wob1 = noise(x * 0.32, pixelY * 0.25, frame.t * 0.0005) - 0.5
466
- const wob2 = noise(x * 0.12, pixelY * 0.08, frame.t * 0.00022) - 0.5
467
- const ripple = Math.sin(angle * 3 + frame.t * 0.0012) * 0.3
468
- const jitter = (wob1 * 0.55 + wob2 * 0.32 + ripple * 0.18) * cfg.noise
469
- const traveled = dist + jitter
470
- let glow = 0
471
- let peak = 0
472
- let halo = 0
473
- let primary = 0
474
- let ambient = 0
475
- for (const active of state.active) {
476
- const head = active.head
477
- const eased = active.eased
478
- const delta = traveled - head
479
- // Use shallower exponent (1.6 vs 2) for softer edges on the Gaussians
480
- // so adjacent pixels have smaller brightness deltas
481
- const core = Math.exp(-(Math.abs(delta / cfg.coreWidth) ** 1.8))
482
- const soft = Math.exp(-(Math.abs(delta / cfg.softWidth) ** 1.6))
483
- const tailRange = cfg.tail * 2.6
484
- const tail = delta < 0 && delta > -tailRange ? (1 + delta / tailRange) ** 2.6 : 0
485
- const haloDelta = delta + cfg.haloOffset
486
- const haloBand = Math.exp(-(Math.abs(haloDelta / cfg.haloWidth) ** 1.6))
487
- glow += (soft * cfg.softAmp + tail * cfg.tailAmp) * eased
488
- peak += core * cfg.coreAmp * eased
489
- halo += haloBand * cfg.haloAmp * eased
490
- // Primary-tinted fringe follows the halo (which trails behind the core) and the tail
491
- primary += (haloBand + tail * 0.6) * eased
492
- ambient += active.ambient
493
- }
494
- ambient /= state.rings
495
- return {
496
- glow: glow / state.rings,
497
- peak: cfg.breathBase + ambient + (peak + halo) / state.rings,
498
- primary: (primary / state.rings) * cfg.primaryMix,
499
- }
500
- }
501
-
502
- function bloom(x: number, y: number, frame: Frame, ctx: LogoContext) {
503
- const item = frame.glow
504
- if (!item) return 0
505
- const glyph = ctx.MAP.glyph.get(key(x, y))
506
- if (glyph !== item.glyph) return 0
507
- const age = frame.t - item.at
508
- if (age < 0 || age > GLOW_OUT) return 0
509
- const p = age / GLOW_OUT
510
- const flash = (1 - p) ** 2
511
- const dx = x + 0.5 - ctx.MAP.center.get(item.glyph)!.x
512
- const dy = y * 2 + 1 - ctx.MAP.center.get(item.glyph)!.y
513
- const bias = Math.exp(-((Math.hypot(dx, dy) / 2.8) ** 2))
514
- return lerp(item.force, item.force * 0.18, p) * lerp(0.72, 1.1, bias) * flash
515
- }
516
-
517
- function sweepGlow(x: number, y: number, frame: Frame, ctx: LogoContext) {
518
- const item = frame.sweep
519
- if (!item) return 0
520
- const age = frame.t - item.at
521
- if (age < 0 || age > SWEEP_DURATION) return 0
522
- const p = age / SWEEP_DURATION
523
- const width = ctx.FULL[0]?.length ?? 1
524
- const head = -3 + (width + 6) * ease(p)
525
- const dx = x + 0.5 - head
526
- const band = Math.exp(-((dx / SWEEP_BAND) ** 2))
527
- const core = Math.exp(-((dx / 1.3) ** 2)) * 1.7
528
- const env = Math.sin(p * Math.PI)
529
- const wobble = 1 + 0.08 * Math.sin(y * 0.9 + p * 6)
530
- return (band * 0.7 + core) * env * SWEEP_AMP * wobble
531
- }
532
-
533
- type IdleState = {
534
- cfg: ShimmerConfig
535
- reach: number
536
- rings: number
537
- active: Array<{
538
- head: number
539
- eased: number
540
- ambient: number
541
- }>
542
- }
543
-
544
- function buildIdleState(t: number, ctx: LogoContext): IdleState {
545
- const cfg = shimmerConfig
546
- const w = ctx.FULL[0]?.length ?? 1
547
- const h = ctx.FULL.length * 2
548
- const corners: [number, number][] = [
549
- [0, 0],
550
- [w, 0],
551
- [0, h],
552
- [w, h],
553
- ]
554
- let maxCorner = 0
555
- for (const [cx, cy] of corners) {
556
- const d = Math.hypot(cx - cfg.originX, cy - cfg.originY)
557
- if (d > maxCorner) maxCorner = d
558
- }
559
- const reach = maxCorner + cfg.tail * 2
560
- const rings = Math.max(1, Math.floor(cfg.rings))
561
- const active = [] as IdleState["active"]
562
- for (let i = 0; i < rings; i++) {
563
- const offset = i / rings
564
- const cyclePhase = (t / cfg.period + offset) % 1
565
- if (cyclePhase >= cfg.sweepFraction) continue
566
- const phase = cyclePhase / cfg.sweepFraction
567
- const envelope = Math.sin(phase * Math.PI)
568
- const eased = envelope * envelope * (3 - 2 * envelope)
569
- const d = (phase - cfg.ambientCenter) / cfg.ambientWidth
570
- active.push({
571
- head: phase * reach,
572
- eased,
573
- ambient: Math.abs(d) < 1 ? (1 - d * d) ** 2 * cfg.ambientAmp : 0,
574
- })
575
- }
576
- return { cfg, reach, rings, active }
577
- }
578
-
579
- export function Logo(props: { shape?: LogoShape; ink?: RGBA; idle?: boolean; sweep?: boolean } = {}) {
580
- const ctx = props.shape ? build(props.shape) : DEFAULT
581
- const { theme } = useTheme()
582
- const [rings, setRings] = createSignal<Ring[]>([])
583
- const [hold, setHold] = createSignal<Hold>()
584
- const [release, setRelease] = createSignal<Release>()
585
- const [glow, setGlow] = createSignal<Glow>()
586
- const [sweep, setSweep] = createSignal<Sweep>()
587
- const [now, setNow] = createSignal(0)
588
- let box: BoxRenderable | undefined
589
- let timer: ReturnType<typeof setInterval> | undefined
590
- let sweepStart: ReturnType<typeof setTimeout> | undefined
591
- let sweepTimer: ReturnType<typeof setInterval> | undefined
592
- let hum = false
593
-
594
- const stop = () => {
595
- if (!timer) return
596
- clearInterval(timer)
597
- timer = undefined
598
- }
599
-
600
- const fireSweep = () => {
601
- setSweep({ at: performance.now() })
602
- start()
603
- }
604
-
605
- const tick = () => {
606
- const t = performance.now()
607
- setNow(t)
608
- const item = hold()
609
- if (item && !hum && t - item.at >= HOLD) {
610
- hum = true
611
- Sound.start()
612
- }
613
- if (item && t - item.at >= CHARGE) {
614
- burst(item.x, item.y)
615
- }
616
- let live = false
617
- setRings((list) => {
618
- const next = list.filter((item) => t - item.at < LIFE)
619
- live = next.length > 0
620
- return next
621
- })
622
- const flash = glow()
623
- if (flash && t - flash.at >= GLOW_OUT) {
624
- setGlow(undefined)
625
- }
626
- const sw = sweep()
627
- if (sw && t - sw.at >= SWEEP_DURATION) {
628
- setSweep(undefined)
629
- }
630
- if (!live) setRelease(undefined)
631
- if (live || hold() || release() || glow() || sweep()) return
632
- if (props.idle) return
633
- stop()
634
- }
635
-
636
- const start = () => {
637
- if (timer) return
638
- timer = setInterval(tick, 16)
639
- }
640
-
641
- onCleanup(() => {
642
- stop()
643
- if (sweepStart) {
644
- clearTimeout(sweepStart)
645
- sweepStart = undefined
646
- }
647
- if (sweepTimer) {
648
- clearInterval(sweepTimer)
649
- sweepTimer = undefined
650
- }
651
- hum = false
652
- Sound.dispose()
653
- })
654
-
655
- onMount(() => {
656
- if (props.idle) {
657
- setNow(performance.now())
658
- start()
659
- }
660
- if (props.sweep) {
661
- sweepStart = setTimeout(() => {
662
- fireSweep()
663
- sweepTimer = setInterval(fireSweep, SWEEP_INTERVAL)
664
- }, 1500)
665
- }
666
- })
667
-
668
- const hit = (x: number, y: number) => {
669
- const char = ctx.FULL[y]?.[x]
670
- return char !== undefined && char !== " "
671
- }
672
-
673
- const press = (x: number, y: number, t: number) => {
674
- const last = hold()
675
- if (last) burst(last.x, last.y)
676
- setNow(t)
677
- if (!last) setRelease(undefined)
678
- setHold({ x, y, at: t, glyph: select(x, y, ctx) })
679
- hum = false
680
- start()
681
- }
682
-
683
- const burst = (x: number, y: number) => {
684
- const item = hold()
685
- if (!item) return
686
- hum = false
687
- const t = performance.now()
688
- const age = t - item.at
689
- const rise = ramp(age, HOLD, CHARGE)
690
- const level = push(rise)
691
- setHold(undefined)
692
- setRelease({ x, y, at: t, glyph: item.glyph, level, rise })
693
- if (item.glyph !== undefined) {
694
- setGlow({ glyph: item.glyph, at: t, force: lerp(0.18, 1.5, rise * level) })
695
- }
696
- setRings((list) => [
697
- ...list,
698
- {
699
- x: x + 0.5,
700
- y: y * 2 + 1,
701
- at: t,
702
- force: lerp(0.82, 2.55, level),
703
- kick: lerp(0.32, 0.32 + KICK, level),
704
- },
705
- ])
706
- setNow(t)
707
- start()
708
- Sound.pulse(lerp(0.8, 1, level))
709
- }
710
-
711
- const frame = createMemo(() => {
712
- const t = now()
713
- const item = hold()
714
- return {
715
- t,
716
- list: rings(),
717
- hold: item,
718
- release: release(),
719
- glow: glow(),
720
- spark: item ? noise(item.x, item.y, t) : 0,
721
- sweep: sweep(),
722
- }
723
- })
724
-
725
- const dusk = createMemo(() => {
726
- const base = frame()
727
- const t = base.t - LAG
728
- const item = base.hold
729
- return {
730
- t,
731
- list: base.list,
732
- hold: item,
733
- release: base.release,
734
- glow: base.glow,
735
- spark: item ? noise(item.x, item.y, t) : 0,
736
- sweep: base.sweep,
737
- }
738
- })
739
-
740
- const idleState = createMemo(() => (props.idle ? buildIdleState(frame().t, ctx) : undefined))
741
-
742
- const renderLine = (
743
- line: string,
744
- y: number,
745
- ink: RGBA,
746
- bold: boolean,
747
- off: number,
748
- frame: Frame,
749
- dusk: Frame,
750
- state: IdleState | undefined,
751
- ): JSX.Element[] => {
752
- const shadow = tint(theme.background, ink, 0.25)
753
- const attrs = bold ? TextAttributes.BOLD : undefined
754
-
755
- return Array.from(line).map((char, i) => {
756
- if (char === " ") {
757
- return (
758
- <text fg={ink} attributes={attrs} selectable={false}>
759
- {char}
760
- </text>
761
- )
762
- }
763
-
764
- const h = field(off + i, y, frame, ctx)
765
- const charLit = lit(char)
766
- // Sub-pixel sampling: cells are 2 pixels tall. Sample at top (y*2) and bottom (y*2+1) pixel rows.
767
- const pulseTop = state ? idle(off + i, y * 2, frame, ctx, state) : { glow: 0, peak: 0, primary: 0 }
768
- const pulseBot = state ? idle(off + i, y * 2 + 1, frame, ctx, state) : { glow: 0, peak: 0, primary: 0 }
769
- const peakMixTop = charLit ? Math.min(1, pulseTop.peak) : 0
770
- const peakMixBot = charLit ? Math.min(1, pulseBot.peak) : 0
771
- const primaryMixTop = charLit ? Math.min(1, pulseTop.primary) : 0
772
- const primaryMixBot = charLit ? Math.min(1, pulseBot.primary) : 0
773
- // Layer primary tint first, then white peak on top — so the halo/tail pulls toward primary,
774
- // while the bright core stays pure white
775
- const inkTopTint = primaryMixTop > 0 ? tint(ink, theme.primary, primaryMixTop) : ink
776
- const inkBotTint = primaryMixBot > 0 ? tint(ink, theme.primary, primaryMixBot) : ink
777
- const inkTop = peakMixTop > 0 ? tint(inkTopTint, PEAK, peakMixTop) : inkTopTint
778
- const inkBot = peakMixBot > 0 ? tint(inkBotTint, PEAK, peakMixBot) : inkBotTint
779
- // For the non-peak-aware brightness channels, use the average of top/bot
780
- const pulse = {
781
- glow: (pulseTop.glow + pulseBot.glow) / 2,
782
- peak: (pulseTop.peak + pulseBot.peak) / 2,
783
- primary: (pulseTop.primary + pulseBot.primary) / 2,
784
- }
785
- const peakMix = charLit ? Math.min(1, pulse.peak) : 0
786
- const primaryMix = charLit ? Math.min(1, pulse.primary) : 0
787
- const inkPrimary = primaryMix > 0 ? tint(ink, theme.primary, primaryMix) : ink
788
- const inkTinted = peakMix > 0 ? tint(inkPrimary, PEAK, peakMix) : inkPrimary
789
- const shadowMixCfg = state?.cfg.shadowMix ?? shimmerConfig.shadowMix
790
- const shadowMixTop = Math.min(1, pulseTop.peak * shadowMixCfg)
791
- const shadowMixBot = Math.min(1, pulseBot.peak * shadowMixCfg)
792
- const shadowTop = shadowMixTop > 0 ? tint(shadow, PEAK, shadowMixTop) : shadow
793
- const shadowBot = shadowMixBot > 0 ? tint(shadow, PEAK, shadowMixBot) : shadow
794
- const shadowMix = Math.min(1, pulse.peak * shadowMixCfg)
795
- const shadowTinted = shadowMix > 0 ? tint(shadow, PEAK, shadowMix) : shadow
796
- const n = wave(off + i, y, frame, charLit, ctx) + h + (charLit ? sweepGlow(off + i, y, frame, ctx) : 0)
797
- const s = wave(off + i, y, dusk, false, ctx) + h
798
- const p = charLit ? pick(off + i, y, frame, ctx) : 0
799
- const e = charLit ? trace(off + i, y, frame, ctx) : 0
800
- const b = charLit ? bloom(off + i, y, frame, ctx) : 0
801
- const q = shimmer(off + i, y, frame, ctx)
802
-
803
- if (char === "_") {
804
- return (
805
- <text
806
- fg={shade(inkTinted, theme, s * 0.08)}
807
- bg={shade(shadowTinted, theme, ghost(s, 0.24) + ghost(q, 0.06))}
808
- attributes={attrs}
809
- selectable={false}
810
- >
811
- {" "}
812
- </text>
813
- )
814
- }
815
-
816
- if (char === "^") {
817
- return (
818
- <text
819
- fg={shade(inkTop, theme, n + p + e + b)}
820
- bg={shade(shadowBot, theme, ghost(s, 0.18) + ghost(q, 0.05) + ghost(b, 0.08))}
821
- attributes={attrs}
822
- selectable={false}
823
- >
824
-
825
- </text>
826
- )
827
- }
828
-
829
- if (char === "~") {
830
- return (
831
- <text fg={shade(shadowTop, theme, ghost(s, 0.22) + ghost(q, 0.05))} attributes={attrs} selectable={false}>
832
-
833
- </text>
834
- )
835
- }
836
-
837
- if (char === ",") {
838
- return (
839
- <text fg={shade(shadowBot, theme, ghost(s, 0.22) + ghost(q, 0.05))} attributes={attrs} selectable={false}>
840
-
841
- </text>
842
- )
843
- }
844
-
845
- // Solid █: render as ▀ so the top pixel (fg) and bottom pixel (bg) can carry independent shimmer values
846
- if (char === "█") {
847
- return (
848
- <text
849
- fg={shade(inkTop, theme, n + p + e + b)}
850
- bg={shade(inkBot, theme, n + p + e + b)}
851
- attributes={attrs}
852
- selectable={false}
853
- >
854
-
855
- </text>
856
- )
857
- }
858
-
859
- // ▀ top-half-lit: fg uses top-pixel sample, bg stays transparent/panel
860
- if (char === "▀") {
861
- return (
862
- <text fg={shade(inkTop, theme, n + p + e + b)} attributes={attrs} selectable={false}>
863
-
864
- </text>
865
- )
866
- }
867
-
868
- // ▄ bottom-half-lit: fg uses bottom-pixel sample
869
- if (char === "▄") {
870
- return (
871
- <text fg={shade(inkBot, theme, n + p + e + b)} attributes={attrs} selectable={false}>
872
-
873
- </text>
874
- )
875
- }
876
-
877
- return (
878
- <text fg={shade(inkTinted, theme, n + p + e + b)} attributes={attrs} selectable={false}>
879
- {char}
880
- </text>
881
- )
882
- })
883
- }
884
-
885
- const mouse = (evt: MouseEvent) => {
886
- if (!box) return
887
- if ((evt.type === "down" || evt.type === "drag") && evt.button === MouseButton.LEFT) {
888
- const x = evt.x - box.x
889
- const y = evt.y - box.y
890
- if (!hit(x, y)) return
891
- if (evt.type === "drag" && hold()) return
892
- evt.preventDefault()
893
- evt.stopPropagation()
894
- const t = performance.now()
895
- press(x, y, t)
896
- return
897
- }
898
-
899
- if (!hold()) return
900
- if (evt.type === "up") {
901
- const item = hold()
902
- if (!item) return
903
- burst(item.x, item.y)
904
- }
905
- }
906
-
907
- const SLEEPY_ORANGE = RGBA.fromInts(251, 129, 71)
908
- const SLEEPY_GRAY = RGBA.fromInts(160, 160, 160)
909
-
910
- return (
911
- <box ref={(item: BoxRenderable) => (box = item)}>
912
- <box
913
- position="absolute"
914
- top={0}
915
- left={0}
916
- width={ctx.FULL[0]?.length ?? 0}
917
- height={ctx.FULL.length}
918
- zIndex={1}
919
- onMouse={mouse}
920
- />
921
- <For each={ctx.shape.left}>
922
- {(line, index) => {
923
- const labelRow = index() === 0
924
- if (labelRow) {
925
- return (
926
- <box flexDirection="row" gap={1}>
927
- <text fg={SLEEPY_GRAY} selectable={false}>{line}</text>
928
- <text fg={SLEEPY_GRAY} selectable={false}>{ctx.shape.right[index()]}</text>
929
- </box>
930
- )
931
- }
932
- return (
933
- <box flexDirection="row" gap={1}>
934
- <box flexDirection="row">
935
- {renderLine(line, index(), props.ink ?? SLEEPY_ORANGE, true, 0, frame(), dusk(), idleState())}
936
- </box>
937
- <box flexDirection="row">
938
- {renderLine(
939
- ctx.shape.right[index()],
940
- index(),
941
- props.ink ?? SLEEPY_GRAY,
942
- true,
943
- ctx.LEFT + GAP,
944
- frame(),
945
- dusk(),
946
- idleState(),
947
- )}
948
- </box>
949
- </box>
950
- )
951
- }}
952
- </For>
953
- </box>
954
- )
955
- }
956
-
957
- export function GoLogo() {
958
- const { theme } = useTheme()
959
- const base = tint(theme.background, theme.text, 0.62)
960
- return <Logo shape={go} ink={base} idle />
961
- }