@miaws/miaw 1.18.5 → 1.18.6

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 (751) hide show
  1. package/package.json +1 -154
  2. package/AGENTS.md +0 -131
  3. package/Dockerfile +0 -18
  4. package/README.md +0 -15
  5. package/bunfig.toml +0 -7
  6. package/git +0 -0
  7. package/migration/20260511173437_session-metadata/migration.sql +0 -1
  8. package/migration/20260511173437_session-metadata/snapshot.json +0 -1500
  9. package/parsers-config.ts +0 -1
  10. package/script/bench-search.ts +0 -94
  11. package/script/bench-test-suite.ts +0 -52
  12. package/script/build.ts +0 -243
  13. package/script/generate.ts +0 -14
  14. package/script/httpapi-exercise.ts +0 -1
  15. package/script/postinstall.mjs +0 -189
  16. package/script/profile-test-files.ts +0 -42
  17. package/script/publish.ts +0 -213
  18. package/script/run-workspace-server +0 -106
  19. package/script/schema.ts +0 -77
  20. package/script/time.ts +0 -6
  21. package/script/trace-imports.ts +0 -153
  22. package/specs/effect/error-boundaries-plan.md +0 -235
  23. package/specs/effect/errors.md +0 -207
  24. package/specs/effect/facades.md +0 -218
  25. package/specs/effect/guide.md +0 -247
  26. package/specs/effect/instance-context.md +0 -13
  27. package/specs/effect/loose-ends.md +0 -30
  28. package/specs/effect/migration.md +0 -62
  29. package/specs/effect/routes.md +0 -61
  30. package/specs/effect/schema.md +0 -88
  31. package/specs/effect/server-package.md +0 -58
  32. package/specs/effect/todo.md +0 -241
  33. package/specs/effect/tools.md +0 -88
  34. package/specs/openapi-translation-cleanup.md +0 -204
  35. package/specs/tui-plugins.md +0 -544
  36. package/specs/v2/api.ts +0 -67
  37. package/specs/v2/message-shape.md +0 -136
  38. package/specs/v2/notifications.md +0 -13
  39. package/specs/v2/tui-command-shim.md +0 -67
  40. package/src/account/account.ts +0 -463
  41. package/src/account/repo.ts +0 -173
  42. package/src/account/schema.ts +0 -99
  43. package/src/account/url.ts +0 -8
  44. package/src/acp/agent.ts +0 -95
  45. package/src/acp/config-option.ts +0 -203
  46. package/src/acp/content.ts +0 -250
  47. package/src/acp/directory.ts +0 -210
  48. package/src/acp/error.ts +0 -90
  49. package/src/acp/event.ts +0 -336
  50. package/src/acp/permission.ts +0 -124
  51. package/src/acp/profile.ts +0 -42
  52. package/src/acp/service.ts +0 -1048
  53. package/src/acp/session.ts +0 -231
  54. package/src/acp/tool.ts +0 -321
  55. package/src/acp/usage.ts +0 -232
  56. package/src/agent/agent.ts +0 -467
  57. package/src/agent/generate.txt +0 -75
  58. package/src/agent/prompt/compaction.txt +0 -9
  59. package/src/agent/prompt/explore.txt +0 -18
  60. package/src/agent/prompt/summary.txt +0 -11
  61. package/src/agent/prompt/title.txt +0 -44
  62. package/src/agent/subagent-permissions.ts +0 -27
  63. package/src/audio.d.ts +0 -14
  64. package/src/auth/index.ts +0 -99
  65. package/src/background/job.ts +0 -39
  66. package/src/bus/global.ts +0 -22
  67. package/src/cli/bootstrap.ts +0 -11
  68. package/src/cli/cmd/account.ts +0 -264
  69. package/src/cli/cmd/acp.ts +0 -73
  70. package/src/cli/cmd/agent.ts +0 -253
  71. package/src/cli/cmd/attach.ts +0 -97
  72. package/src/cli/cmd/cmd.ts +0 -7
  73. package/src/cli/cmd/db.ts +0 -62
  74. package/src/cli/cmd/debug/agent.handler.ts +0 -193
  75. package/src/cli/cmd/debug/agent.ts +0 -27
  76. package/src/cli/cmd/debug/config.ts +0 -14
  77. package/src/cli/cmd/debug/file.ts +0 -73
  78. package/src/cli/cmd/debug/index.ts +0 -87
  79. package/src/cli/cmd/debug/lsp.ts +0 -50
  80. package/src/cli/cmd/debug/ripgrep.ts +0 -79
  81. package/src/cli/cmd/debug/scrap.ts +0 -15
  82. package/src/cli/cmd/debug/skill.ts +0 -15
  83. package/src/cli/cmd/debug/snapshot.ts +0 -50
  84. package/src/cli/cmd/debug/startup.ts +0 -11
  85. package/src/cli/cmd/debug/v2.ts +0 -49
  86. package/src/cli/cmd/export.ts +0 -292
  87. package/src/cli/cmd/generate.ts +0 -54
  88. package/src/cli/cmd/github.handler.ts +0 -1593
  89. package/src/cli/cmd/github.shared.ts +0 -30
  90. package/src/cli/cmd/github.ts +0 -42
  91. package/src/cli/cmd/import.ts +0 -224
  92. package/src/cli/cmd/mcp.ts +0 -849
  93. package/src/cli/cmd/models.ts +0 -66
  94. package/src/cli/cmd/plug.ts +0 -230
  95. package/src/cli/cmd/pr.ts +0 -115
  96. package/src/cli/cmd/prompt-display.ts +0 -1
  97. package/src/cli/cmd/providers.ts +0 -534
  98. package/src/cli/cmd/run/demo.ts +0 -1274
  99. package/src/cli/cmd/run/entry.body.ts +0 -205
  100. package/src/cli/cmd/run/footer.command.tsx +0 -1064
  101. package/src/cli/cmd/run/footer.menu.tsx +0 -351
  102. package/src/cli/cmd/run/footer.permission.tsx +0 -472
  103. package/src/cli/cmd/run/footer.prompt.tsx +0 -1306
  104. package/src/cli/cmd/run/footer.question.tsx +0 -573
  105. package/src/cli/cmd/run/footer.subagent.tsx +0 -173
  106. package/src/cli/cmd/run/footer.ts +0 -1129
  107. package/src/cli/cmd/run/footer.view.tsx +0 -943
  108. package/src/cli/cmd/run/footer.width.ts +0 -27
  109. package/src/cli/cmd/run/permission.shared.ts +0 -256
  110. package/src/cli/cmd/run/prompt.editor.ts +0 -157
  111. package/src/cli/cmd/run/prompt.shared.ts +0 -153
  112. package/src/cli/cmd/run/question.shared.ts +0 -340
  113. package/src/cli/cmd/run/runtime.boot.ts +0 -202
  114. package/src/cli/cmd/run/runtime.lifecycle.ts +0 -406
  115. package/src/cli/cmd/run/runtime.queue.ts +0 -349
  116. package/src/cli/cmd/run/runtime.shared.ts +0 -17
  117. package/src/cli/cmd/run/runtime.stdin.ts +0 -37
  118. package/src/cli/cmd/run/runtime.ts +0 -814
  119. package/src/cli/cmd/run/scrollback.shared.ts +0 -92
  120. package/src/cli/cmd/run/scrollback.surface.ts +0 -431
  121. package/src/cli/cmd/run/scrollback.writer.tsx +0 -352
  122. package/src/cli/cmd/run/session-data.ts +0 -1113
  123. package/src/cli/cmd/run/session-replay.ts +0 -374
  124. package/src/cli/cmd/run/session.shared.ts +0 -196
  125. package/src/cli/cmd/run/splash.ts +0 -280
  126. package/src/cli/cmd/run/stream.transport.ts +0 -1462
  127. package/src/cli/cmd/run/stream.ts +0 -175
  128. package/src/cli/cmd/run/subagent-data.ts +0 -876
  129. package/src/cli/cmd/run/theme.ts +0 -690
  130. package/src/cli/cmd/run/tool.ts +0 -1489
  131. package/src/cli/cmd/run/trace.ts +0 -94
  132. package/src/cli/cmd/run/turn-summary.ts +0 -47
  133. package/src/cli/cmd/run/types.ts +0 -350
  134. package/src/cli/cmd/run/variant.shared.ts +0 -215
  135. package/src/cli/cmd/run.ts +0 -894
  136. package/src/cli/cmd/serve.ts +0 -24
  137. package/src/cli/cmd/session.ts +0 -147
  138. package/src/cli/cmd/stats.ts +0 -393
  139. package/src/cli/cmd/tui.ts +0 -224
  140. package/src/cli/cmd/uninstall.ts +0 -353
  141. package/src/cli/cmd/upgrade.ts +0 -74
  142. package/src/cli/cmd/web.ts +0 -84
  143. package/src/cli/effect/prompt.ts +0 -37
  144. package/src/cli/effect-cmd.ts +0 -96
  145. package/src/cli/error.ts +0 -130
  146. package/src/cli/heap.ts +0 -45
  147. package/src/cli/logo.ts +0 -1
  148. package/src/cli/network.ts +0 -64
  149. package/src/cli/tui/layer.ts +0 -7
  150. package/src/cli/tui/validate-session.ts +0 -29
  151. package/src/cli/tui/worker.ts +0 -71
  152. package/src/cli/ui.ts +0 -132
  153. package/src/cli/upgrade.ts +0 -53
  154. package/src/command/index.ts +0 -184
  155. package/src/command/template/initialize.txt +0 -66
  156. package/src/command/template/review.txt +0 -101
  157. package/src/config/agent-preset.ts +0 -175
  158. package/src/config/agent.ts +0 -59
  159. package/src/config/command.ts +0 -39
  160. package/src/config/config.ts +0 -703
  161. package/src/config/entry-name.ts +0 -19
  162. package/src/config/managed.ts +0 -69
  163. package/src/config/markdown.ts +0 -36
  164. package/src/config/parse.ts +0 -79
  165. package/src/config/paths.ts +0 -45
  166. package/src/config/plugin.ts +0 -79
  167. package/src/config/tui-cwd.ts +0 -5
  168. package/src/config/tui-host-attention.ts +0 -21
  169. package/src/config/tui-migrate.ts +0 -132
  170. package/src/config/tui.ts +0 -274
  171. package/src/config/variable.ts +0 -91
  172. package/src/control-plane/adapters/index.ts +0 -41
  173. package/src/control-plane/adapters/worktree.ts +0 -96
  174. package/src/control-plane/dev/README.md +0 -19
  175. package/src/control-plane/dev/debug-workspace-plugin.ts +0 -73
  176. package/src/control-plane/types.ts +0 -59
  177. package/src/control-plane/util.ts +0 -39
  178. package/src/control-plane/workspace-adapter-runtime.ts +0 -51
  179. package/src/control-plane/workspace-context.ts +0 -26
  180. package/src/control-plane/workspace.ts +0 -989
  181. package/src/effect/app-runtime.ts +0 -132
  182. package/src/effect/bootstrap-runtime.ts +0 -23
  183. package/src/effect/bridge.ts +0 -84
  184. package/src/effect/config-service.ts +0 -67
  185. package/src/effect/instance-ref.ts +0 -11
  186. package/src/effect/instance-registry.ts +0 -12
  187. package/src/effect/instance-state.ts +0 -69
  188. package/src/effect/promise.ts +0 -17
  189. package/src/effect/run-service.ts +0 -47
  190. package/src/effect/runner.ts +0 -217
  191. package/src/effect/runtime-flags.ts +0 -79
  192. package/src/env/index.ts +0 -43
  193. package/src/event-v2-bridge.ts +0 -79
  194. package/src/format/formatter.ts +0 -404
  195. package/src/format/index.ts +0 -205
  196. package/src/git/index.ts +0 -350
  197. package/src/id/id.ts +0 -80
  198. package/src/ide/index.ts +0 -61
  199. package/src/image/image.ts +0 -174
  200. package/src/index.ts +0 -142
  201. package/src/installation/index.ts +0 -350
  202. package/src/lsp/client.ts +0 -650
  203. package/src/lsp/diagnostic.ts +0 -29
  204. package/src/lsp/language.ts +0 -121
  205. package/src/lsp/launch.ts +0 -21
  206. package/src/lsp/lsp.ts +0 -511
  207. package/src/lsp/server.ts +0 -1983
  208. package/src/markdown.d.ts +0 -4
  209. package/src/mcp/auth.ts +0 -174
  210. package/src/mcp/catalog.ts +0 -144
  211. package/src/mcp/index.ts +0 -953
  212. package/src/mcp/oauth-callback.ts +0 -221
  213. package/src/mcp/oauth-provider.ts +0 -206
  214. package/src/node.ts +0 -4
  215. package/src/patch/index.ts +0 -686
  216. package/src/permission/arity.ts +0 -163
  217. package/src/permission/evaluate.ts +0 -1
  218. package/src/permission/index.ts +0 -230
  219. package/src/plugin/azure.ts +0 -26
  220. package/src/plugin/cloudflare.ts +0 -76
  221. package/src/plugin/digitalocean.ts +0 -383
  222. package/src/plugin/github-copilot/copilot.ts +0 -413
  223. package/src/plugin/github-copilot/models.ts +0 -246
  224. package/src/plugin/index.ts +0 -315
  225. package/src/plugin/install.ts +0 -439
  226. package/src/plugin/loader.ts +0 -237
  227. package/src/plugin/meta.ts +0 -188
  228. package/src/plugin/openai/README.md +0 -31
  229. package/src/plugin/openai/codex.ts +0 -640
  230. package/src/plugin/openai/ws-pool.ts +0 -270
  231. package/src/plugin/openai/ws.ts +0 -381
  232. package/src/plugin/pty-environment.ts +0 -24
  233. package/src/plugin/shared.ts +0 -323
  234. package/src/plugin/snowflake-cortex.ts +0 -529
  235. package/src/plugin/tui/internal.ts +0 -10
  236. package/src/plugin/tui/runtime.ts +0 -1130
  237. package/src/plugin/xai.ts +0 -734
  238. package/src/project/bootstrap-service.ts +0 -9
  239. package/src/project/bootstrap.ts +0 -76
  240. package/src/project/instance-context.ts +0 -24
  241. package/src/project/instance-layer.ts +0 -11
  242. package/src/project/instance-runtime.ts +0 -16
  243. package/src/project/instance-store.ts +0 -209
  244. package/src/project/project.ts +0 -519
  245. package/src/project/vcs.ts +0 -431
  246. package/src/provider/auth.ts +0 -233
  247. package/src/provider/error.ts +0 -188
  248. package/src/provider/model-status.ts +0 -8
  249. package/src/provider/provider.ts +0 -1975
  250. package/src/provider/transform.ts +0 -1426
  251. package/src/question/index.ts +0 -229
  252. package/src/question/schema.ts +0 -10
  253. package/src/server/auth.ts +0 -48
  254. package/src/server/event.ts +0 -13
  255. package/src/server/global-lifecycle.ts +0 -28
  256. package/src/server/init-projectors.ts +0 -3
  257. package/src/server/mdns.ts +0 -47
  258. package/src/server/projectors.ts +0 -1
  259. package/src/server/proxy-util.ts +0 -48
  260. package/src/server/routes/instance/httpapi/AGENTS.md +0 -39
  261. package/src/server/routes/instance/httpapi/api.ts +0 -78
  262. package/src/server/routes/instance/httpapi/errors.ts +0 -193
  263. package/src/server/routes/instance/httpapi/groups/config.ts +0 -65
  264. package/src/server/routes/instance/httpapi/groups/control-plane.ts +0 -35
  265. package/src/server/routes/instance/httpapi/groups/control.ts +0 -76
  266. package/src/server/routes/instance/httpapi/groups/event.ts +0 -29
  267. package/src/server/routes/instance/httpapi/groups/experimental.ts +0 -260
  268. package/src/server/routes/instance/httpapi/groups/file.ts +0 -185
  269. package/src/server/routes/instance/httpapi/groups/global.ts +0 -138
  270. package/src/server/routes/instance/httpapi/groups/instance.ts +0 -206
  271. package/src/server/routes/instance/httpapi/groups/mcp.ts +0 -156
  272. package/src/server/routes/instance/httpapi/groups/metadata.ts +0 -18
  273. package/src/server/routes/instance/httpapi/groups/permission.ts +0 -61
  274. package/src/server/routes/instance/httpapi/groups/project-copy.ts +0 -32
  275. package/src/server/routes/instance/httpapi/groups/project.ts +0 -93
  276. package/src/server/routes/instance/httpapi/groups/provider.ts +0 -101
  277. package/src/server/routes/instance/httpapi/groups/pty.ts +0 -172
  278. package/src/server/routes/instance/httpapi/groups/query.ts +0 -12
  279. package/src/server/routes/instance/httpapi/groups/question.ts +0 -74
  280. package/src/server/routes/instance/httpapi/groups/session.ts +0 -462
  281. package/src/server/routes/instance/httpapi/groups/sync.ts +0 -113
  282. package/src/server/routes/instance/httpapi/groups/tui.ts +0 -208
  283. package/src/server/routes/instance/httpapi/groups/workspace.ts +0 -141
  284. package/src/server/routes/instance/httpapi/handlers/config.ts +0 -34
  285. package/src/server/routes/instance/httpapi/handlers/control-plane.ts +0 -37
  286. package/src/server/routes/instance/httpapi/handlers/control.ts +0 -43
  287. package/src/server/routes/instance/httpapi/handlers/event.ts +0 -99
  288. package/src/server/routes/instance/httpapi/handlers/experimental.ts +0 -187
  289. package/src/server/routes/instance/httpapi/handlers/file.ts +0 -139
  290. package/src/server/routes/instance/httpapi/handlers/global.ts +0 -156
  291. package/src/server/routes/instance/httpapi/handlers/instance.ts +0 -110
  292. package/src/server/routes/instance/httpapi/handlers/mcp.ts +0 -111
  293. package/src/server/routes/instance/httpapi/handlers/permission.ts +0 -41
  294. package/src/server/routes/instance/httpapi/handlers/project-copy.ts +0 -83
  295. package/src/server/routes/instance/httpapi/handlers/project.ts +0 -63
  296. package/src/server/routes/instance/httpapi/handlers/provider.ts +0 -113
  297. package/src/server/routes/instance/httpapi/handlers/pty.ts +0 -273
  298. package/src/server/routes/instance/httpapi/handlers/question.ts +0 -54
  299. package/src/server/routes/instance/httpapi/handlers/session-errors.ts +0 -21
  300. package/src/server/routes/instance/httpapi/handlers/session.ts +0 -440
  301. package/src/server/routes/instance/httpapi/handlers/sync.ts +0 -89
  302. package/src/server/routes/instance/httpapi/handlers/tui.ts +0 -131
  303. package/src/server/routes/instance/httpapi/handlers/workspace.ts +0 -102
  304. package/src/server/routes/instance/httpapi/lifecycle.ts +0 -54
  305. package/src/server/routes/instance/httpapi/middleware/authorization.ts +0 -150
  306. package/src/server/routes/instance/httpapi/middleware/compression.ts +0 -64
  307. package/src/server/routes/instance/httpapi/middleware/cors-vary.ts +0 -29
  308. package/src/server/routes/instance/httpapi/middleware/error.ts +0 -43
  309. package/src/server/routes/instance/httpapi/middleware/fence.ts +0 -25
  310. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +0 -43
  311. package/src/server/routes/instance/httpapi/middleware/proxy.ts +0 -108
  312. package/src/server/routes/instance/httpapi/middleware/schema-error.ts +0 -41
  313. package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +0 -250
  314. package/src/server/routes/instance/httpapi/public.ts +0 -535
  315. package/src/server/routes/instance/httpapi/server.ts +0 -298
  316. package/src/server/routes/instance/httpapi/websocket-tracker.ts +0 -57
  317. package/src/server/server.ts +0 -217
  318. package/src/server/shared/fence.ts +0 -60
  319. package/src/server/shared/pty-ticket.ts +0 -15
  320. package/src/server/shared/public-ui.ts +0 -12
  321. package/src/server/shared/tui-control.ts +0 -28
  322. package/src/server/shared/ui.ts +0 -108
  323. package/src/server/shared/workspace-routing.ts +0 -38
  324. package/src/server/tui-event.ts +0 -53
  325. package/src/session/compaction.ts +0 -620
  326. package/src/session/instruction.ts +0 -250
  327. package/src/session/llm/AGENTS.md +0 -90
  328. package/src/session/llm/ai-sdk.ts +0 -288
  329. package/src/session/llm/native-request.ts +0 -196
  330. package/src/session/llm/native-runtime.ts +0 -195
  331. package/src/session/llm/request.ts +0 -216
  332. package/src/session/llm.ts +0 -415
  333. package/src/session/message-error.ts +0 -14
  334. package/src/session/message-v2.ts +0 -744
  335. package/src/session/message.ts +0 -148
  336. package/src/session/overflow.ts +0 -34
  337. package/src/session/processor.ts +0 -1084
  338. package/src/session/prompt/anthropic.txt +0 -105
  339. package/src/session/prompt/beast.txt +0 -147
  340. package/src/session/prompt/build-switch.txt +0 -5
  341. package/src/session/prompt/codex.txt +0 -79
  342. package/src/session/prompt/copilot-gpt-5.txt +0 -143
  343. package/src/session/prompt/default.txt +0 -95
  344. package/src/session/prompt/gemini.txt +0 -155
  345. package/src/session/prompt/gpt.txt +0 -107
  346. package/src/session/prompt/kimi.txt +0 -95
  347. package/src/session/prompt/max-steps.txt +0 -16
  348. package/src/session/prompt/plan-mode.txt +0 -70
  349. package/src/session/prompt/plan-reminder-anthropic.txt +0 -67
  350. package/src/session/prompt/plan.txt +0 -26
  351. package/src/session/prompt/trinity.txt +0 -97
  352. package/src/session/prompt/ultrawork.txt +0 -289
  353. package/src/session/prompt.ts +0 -1725
  354. package/src/session/reminders.ts +0 -92
  355. package/src/session/retry.ts +0 -201
  356. package/src/session/revert.ts +0 -160
  357. package/src/session/run-state.ts +0 -156
  358. package/src/session/schema.ts +0 -26
  359. package/src/session/session.ts +0 -1119
  360. package/src/session/status.ts +0 -97
  361. package/src/session/summary.ts +0 -165
  362. package/src/session/system.ts +0 -117
  363. package/src/session/todo.ts +0 -90
  364. package/src/session/tools.ts +0 -207
  365. package/src/session/ultrawork.ts +0 -26
  366. package/src/share/session.ts +0 -61
  367. package/src/share/share-next.ts +0 -385
  368. package/src/skill/discovery.ts +0 -109
  369. package/src/skill/index.ts +0 -366
  370. package/src/snapshot/index.ts +0 -808
  371. package/src/sql.d.ts +0 -4
  372. package/src/storage/schema.ts +0 -5
  373. package/src/storage/storage.ts +0 -329
  374. package/src/sync/README.md +0 -179
  375. package/src/sync/schema.ts +0 -11
  376. package/src/temporary.ts +0 -31
  377. package/src/tool/apply_patch.ts +0 -313
  378. package/src/tool/apply_patch.txt +0 -33
  379. package/src/tool/edit.ts +0 -737
  380. package/src/tool/edit.txt +0 -10
  381. package/src/tool/external-directory.ts +0 -49
  382. package/src/tool/glob.ts +0 -76
  383. package/src/tool/glob.txt +0 -6
  384. package/src/tool/grep.ts +0 -112
  385. package/src/tool/grep.txt +0 -8
  386. package/src/tool/invalid.ts +0 -21
  387. package/src/tool/json-schema.ts +0 -164
  388. package/src/tool/lsp.ts +0 -113
  389. package/src/tool/lsp.txt +0 -24
  390. package/src/tool/mcp-websearch.ts +0 -96
  391. package/src/tool/plan-enter.txt +0 -14
  392. package/src/tool/plan-exit.txt +0 -13
  393. package/src/tool/plan.ts +0 -79
  394. package/src/tool/question.ts +0 -44
  395. package/src/tool/question.txt +0 -10
  396. package/src/tool/read.ts +0 -386
  397. package/src/tool/read.txt +0 -14
  398. package/src/tool/registry.ts +0 -440
  399. package/src/tool/schema.ts +0 -14
  400. package/src/tool/shell/id.ts +0 -19
  401. package/src/tool/shell/prompt.ts +0 -307
  402. package/src/tool/shell/shell.txt +0 -21
  403. package/src/tool/shell.ts +0 -657
  404. package/src/tool/skill.ts +0 -71
  405. package/src/tool/skill.txt +0 -5
  406. package/src/tool/task.ts +0 -346
  407. package/src/tool/task.txt +0 -19
  408. package/src/tool/todo.ts +0 -57
  409. package/src/tool/todowrite.txt +0 -44
  410. package/src/tool/tool.ts +0 -183
  411. package/src/tool/truncate.ts +0 -158
  412. package/src/tool/truncation-dir.ts +0 -4
  413. package/src/tool/webfetch.ts +0 -192
  414. package/src/tool/webfetch.txt +0 -13
  415. package/src/tool/websearch.ts +0 -143
  416. package/src/tool/websearch.txt +0 -14
  417. package/src/tool/write.ts +0 -104
  418. package/src/tool/write.txt +0 -8
  419. package/src/util/archive.ts +0 -17
  420. package/src/util/bom.ts +0 -27
  421. package/src/util/data-url.ts +0 -9
  422. package/src/util/defer.ts +0 -10
  423. package/src/util/effect-http-client.ts +0 -11
  424. package/src/util/error.ts +0 -1
  425. package/src/util/filesystem.ts +0 -251
  426. package/src/util/iife.ts +0 -3
  427. package/src/util/lazy.ts +0 -20
  428. package/src/util/local-context.ts +0 -25
  429. package/src/util/locale.ts +0 -2
  430. package/src/util/media.ts +0 -26
  431. package/src/util/process.ts +0 -177
  432. package/src/util/proxy-env.ts +0 -72
  433. package/src/util/queue.ts +0 -32
  434. package/src/util/record.ts +0 -1
  435. package/src/util/repository.ts +0 -232
  436. package/src/util/rpc.ts +0 -66
  437. package/src/util/signal.ts +0 -12
  438. package/src/util/timeout.ts +0 -13
  439. package/src/util/token.ts +0 -1
  440. package/src/util/wildcard.ts +0 -59
  441. package/src/worktree/index.ts +0 -654
  442. package/sst-env.d.ts +0 -10
  443. package/test/AGENTS.md +0 -204
  444. package/test/EFFECT_TEST_MIGRATION.md +0 -169
  445. package/test/account/repo.test.ts +0 -353
  446. package/test/account/service.test.ts +0 -453
  447. package/test/acp/config-option.test.ts +0 -229
  448. package/test/acp/content.test.ts +0 -201
  449. package/test/acp/directory.test.ts +0 -186
  450. package/test/acp/error.test.ts +0 -67
  451. package/test/acp/event.test.ts +0 -743
  452. package/test/acp/permission.test.ts +0 -273
  453. package/test/acp/service-session.test.ts +0 -1174
  454. package/test/acp/session.test.ts +0 -200
  455. package/test/acp/tool.test.ts +0 -210
  456. package/test/acp/usage.test.ts +0 -315
  457. package/test/agent/agent.test.ts +0 -760
  458. package/test/agent/plan-mode-subagent-bypass.test.ts +0 -159
  459. package/test/agent/plugin-agent-regression.test.ts +0 -64
  460. package/test/auth/auth.test.ts +0 -77
  461. package/test/background/job.test.ts +0 -243
  462. package/test/cli/account.test.ts +0 -30
  463. package/test/cli/acp/acp-test-client.ts +0 -97
  464. package/test/cli/acp/config-options.test.ts +0 -103
  465. package/test/cli/acp/helpers.ts +0 -96
  466. package/test/cli/acp/initialize-auth.test.ts +0 -61
  467. package/test/cli/acp/lifecycle.test.ts +0 -118
  468. package/test/cli/acp/prompt-content.test.ts +0 -97
  469. package/test/cli/acp/skills.test.ts +0 -38
  470. package/test/cli/cmd/tui/attention.test.ts +0 -484
  471. package/test/cli/effect-cmd-instance-als.test.ts +0 -39
  472. package/test/cli/error.test.ts +0 -95
  473. package/test/cli/github-action.test.ts +0 -199
  474. package/test/cli/github-remote.test.ts +0 -90
  475. package/test/cli/help/__snapshots__/help-snapshots.test.ts.snap +0 -631
  476. package/test/cli/help/help-snapshots.test.ts +0 -137
  477. package/test/cli/import.test.ts +0 -54
  478. package/test/cli/mcp-add.test.ts +0 -74
  479. package/test/cli/plugin-auth-picker.test.ts +0 -120
  480. package/test/cli/run/entry.body.test.ts +0 -536
  481. package/test/cli/run/footer.menu.test.ts +0 -43
  482. package/test/cli/run/footer.view.test.tsx +0 -1375
  483. package/test/cli/run/footer.width.test.ts +0 -35
  484. package/test/cli/run/permission.shared.test.ts +0 -144
  485. package/test/cli/run/prompt.editor.test.ts +0 -101
  486. package/test/cli/run/prompt.shared.test.ts +0 -101
  487. package/test/cli/run/question.shared.test.ts +0 -115
  488. package/test/cli/run/run-process.test.ts +0 -84
  489. package/test/cli/run/runtime.boot.test.ts +0 -283
  490. package/test/cli/run/runtime.queue.test.ts +0 -481
  491. package/test/cli/run/runtime.stdin.test.ts +0 -71
  492. package/test/cli/run/runtime.test.ts +0 -238
  493. package/test/cli/run/scrollback.surface.test.ts +0 -1065
  494. package/test/cli/run/session-data.test.ts +0 -595
  495. package/test/cli/run/session-replay.test.ts +0 -692
  496. package/test/cli/run/session.shared.test.ts +0 -247
  497. package/test/cli/run/stream.test.ts +0 -56
  498. package/test/cli/run/stream.transport.test.ts +0 -2363
  499. package/test/cli/run/subagent-data.test.ts +0 -547
  500. package/test/cli/run/theme.test.ts +0 -177
  501. package/test/cli/run/variant.shared.test.ts +0 -217
  502. package/test/cli/serve/serve-process.test.ts +0 -61
  503. package/test/cli/smokes/read-only.test.ts +0 -115
  504. package/test/cli/tui/attach.test.ts +0 -11
  505. package/test/cli/tui/editor-context-zed.test.ts +0 -379
  506. package/test/cli/tui/editor-context.test.tsx +0 -297
  507. package/test/cli/tui/plugin-add.test.ts +0 -110
  508. package/test/cli/tui/plugin-install.test.ts +0 -87
  509. package/test/cli/tui/plugin-lifecycle.test.ts +0 -224
  510. package/test/cli/tui/plugin-loader-entrypoint.test.ts +0 -485
  511. package/test/cli/tui/plugin-loader-pure.test.ts +0 -72
  512. package/test/cli/tui/plugin-loader.test.ts +0 -1332
  513. package/test/cli/tui/plugin-toggle.test.ts +0 -264
  514. package/test/cli/tui/thread.test.ts +0 -36
  515. package/test/config/agent-color.test.ts +0 -47
  516. package/test/config/config.test.ts +0 -2041
  517. package/test/config/entry-name.test.ts +0 -57
  518. package/test/config/fixtures/empty-frontmatter.md +0 -4
  519. package/test/config/fixtures/frontmatter.md +0 -28
  520. package/test/config/fixtures/markdown-header.md +0 -11
  521. package/test/config/fixtures/no-frontmatter.md +0 -1
  522. package/test/config/fixtures/weird-model-id.md +0 -13
  523. package/test/config/lsp.test.ts +0 -69
  524. package/test/config/markdown.test.ts +0 -228
  525. package/test/config/plugin.test.ts +0 -0
  526. package/test/config/tui.test.ts +0 -886
  527. package/test/control-plane/adapters.test.ts +0 -71
  528. package/test/control-plane/workspace.test.ts +0 -1703
  529. package/test/effect/app-graph-types.test.ts +0 -108
  530. package/test/effect/app-graph.test.ts +0 -204
  531. package/test/effect/app-runtime-logger.test.ts +0 -99
  532. package/test/effect/config-service.test.ts +0 -65
  533. package/test/effect/instance-state.test.ts +0 -391
  534. package/test/effect/run-service.test.ts +0 -89
  535. package/test/effect/runner.test.ts +0 -514
  536. package/test/effect/runtime-flags.test.ts +0 -373
  537. package/test/fake/account.ts +0 -9
  538. package/test/fake/auth.ts +0 -8
  539. package/test/fake/npm.ts +0 -8
  540. package/test/fake/provider.ts +0 -82
  541. package/test/fake/skill.ts +0 -8
  542. package/test/filesystem/filesystem.test.ts +0 -319
  543. package/test/fixture/agent-plugin.constants.ts +0 -6
  544. package/test/fixture/agent-plugin.ts +0 -12
  545. package/test/fixture/config.ts +0 -23
  546. package/test/fixture/db.ts +0 -11
  547. package/test/fixture/fixture.test.ts +0 -26
  548. package/test/fixture/fixture.ts +0 -224
  549. package/test/fixture/flag.ts +0 -20
  550. package/test/fixture/flock-worker.ts +0 -72
  551. package/test/fixture/lsp/fake-lsp-server.js +0 -249
  552. package/test/fixture/mcp-session-recovery.ts +0 -50
  553. package/test/fixture/plug-worker.ts +0 -93
  554. package/test/fixture/plugin-meta-worker.ts +0 -19
  555. package/test/fixture/plugin.ts +0 -10
  556. package/test/fixture/skills/agents-sdk/SKILL.md +0 -152
  557. package/test/fixture/skills/agents-sdk/references/callable.md +0 -92
  558. package/test/fixture/skills/cloudflare/SKILL.md +0 -211
  559. package/test/fixture/skills/index.json +0 -6
  560. package/test/fixture/tui-environment.tsx +0 -32
  561. package/test/fixture/tui-plugin.ts +0 -355
  562. package/test/fixture/tui-runtime.ts +0 -56
  563. package/test/fixture/tui-sdk.ts +0 -82
  564. package/test/fixture/workspace.ts +0 -30
  565. package/test/fixtures/recordings/session/native-anthropic-tool-loop.json +0 -49
  566. package/test/fixtures/recordings/session/native-openai-oauth-tool-loop.json +0 -45
  567. package/test/fixtures/recordings/session/native-zen-tool-loop.json +0 -49
  568. package/test/format/format.test.ts +0 -228
  569. package/test/git/git.test.ts +0 -178
  570. package/test/ide/ide.test.ts +0 -82
  571. package/test/image/fixtures/picture-5mb-base64.png +0 -0
  572. package/test/image/image.test.ts +0 -123
  573. package/test/installation/installation.test.ts +0 -230
  574. package/test/lib/cli-process.ts +0 -459
  575. package/test/lib/effect.ts +0 -177
  576. package/test/lib/filesystem.ts +0 -10
  577. package/test/lib/llm-server.ts +0 -779
  578. package/test/lib/snapshot.ts +0 -73
  579. package/test/lib/test-provider.ts +0 -37
  580. package/test/lib/websocket.ts +0 -46
  581. package/test/lsp/client.test.ts +0 -488
  582. package/test/lsp/index.test.ts +0 -232
  583. package/test/lsp/jdtls-root.test.ts +0 -459
  584. package/test/lsp/launch.test.ts +0 -22
  585. package/test/lsp/lifecycle.test.ts +0 -160
  586. package/test/mcp/auth.test.ts +0 -78
  587. package/test/mcp/headers.test.ts +0 -126
  588. package/test/mcp/lifecycle.test.ts +0 -1213
  589. package/test/mcp/oauth-auto-connect.test.ts +0 -276
  590. package/test/mcp/oauth-browser.test.ts +0 -239
  591. package/test/mcp/oauth-callback.test.ts +0 -34
  592. package/test/mcp/oauth-provider.test.ts +0 -61
  593. package/test/mcp/session-recovery.test.ts +0 -27
  594. package/test/patch/patch.test.ts +0 -383
  595. package/test/permission/arity.test.ts +0 -33
  596. package/test/permission/next.test.ts +0 -1176
  597. package/test/permission-task.test.ts +0 -318
  598. package/test/plugin/auth-override.test.ts +0 -105
  599. package/test/plugin/cloudflare.test.ts +0 -68
  600. package/test/plugin/codex.test.ts +0 -247
  601. package/test/plugin/github-copilot-models.test.ts +0 -332
  602. package/test/plugin/install-concurrency.test.ts +0 -140
  603. package/test/plugin/install.test.ts +0 -570
  604. package/test/plugin/loader-shared.test.ts +0 -1303
  605. package/test/plugin/meta.test.ts +0 -137
  606. package/test/plugin/openai-rollout.test.ts +0 -17
  607. package/test/plugin/openai-ws.test.ts +0 -877
  608. package/test/plugin/shared.test.ts +0 -88
  609. package/test/plugin/snowflake-cortex.test.ts +0 -278
  610. package/test/plugin/trigger.test.ts +0 -120
  611. package/test/plugin/workspace-adapter.test.ts +0 -140
  612. package/test/plugin/xai.test.ts +0 -634
  613. package/test/preload.ts +0 -92
  614. package/test/project/instance-bootstrap.test.ts +0 -110
  615. package/test/project/instance.test.ts +0 -245
  616. package/test/project/migrate-global.test.ts +0 -167
  617. package/test/project/project-directory.test.ts +0 -201
  618. package/test/project/project.test.ts +0 -815
  619. package/test/project/vcs.test.ts +0 -336
  620. package/test/project/worktree-remove.test.ts +0 -126
  621. package/test/project/worktree.test.ts +0 -320
  622. package/test/provider/amazon-bedrock.test.ts +0 -360
  623. package/test/provider/cf-ai-gateway-e2e.test.ts +0 -132
  624. package/test/provider/digitalocean.test.ts +0 -123
  625. package/test/provider/gitlab-duo.test.ts +0 -412
  626. package/test/provider/header-timeout.test.ts +0 -233
  627. package/test/provider/model-status.test.ts +0 -61
  628. package/test/provider/provider.test.ts +0 -1793
  629. package/test/provider/transform.test.ts +0 -4207
  630. package/test/question/question.test.ts +0 -465
  631. package/test/server/AGENTS.md +0 -15
  632. package/test/server/auth.test.ts +0 -59
  633. package/test/server/global-bus.ts +0 -31
  634. package/test/server/global-session-list.test.ts +0 -104
  635. package/test/server/httpapi-authorization.test.ts +0 -174
  636. package/test/server/httpapi-compression.test.ts +0 -151
  637. package/test/server/httpapi-config.test.ts +0 -110
  638. package/test/server/httpapi-control-plane.test.ts +0 -63
  639. package/test/server/httpapi-cors-vary.test.ts +0 -63
  640. package/test/server/httpapi-cors.test.ts +0 -122
  641. package/test/server/httpapi-error-middleware.test.ts +0 -101
  642. package/test/server/httpapi-event.test.ts +0 -94
  643. package/test/server/httpapi-exercise/assertions.ts +0 -64
  644. package/test/server/httpapi-exercise/backend.ts +0 -144
  645. package/test/server/httpapi-exercise/dsl.ts +0 -210
  646. package/test/server/httpapi-exercise/environment.ts +0 -40
  647. package/test/server/httpapi-exercise/index.ts +0 -1685
  648. package/test/server/httpapi-exercise/report.ts +0 -66
  649. package/test/server/httpapi-exercise/routing.ts +0 -96
  650. package/test/server/httpapi-exercise/runner.ts +0 -267
  651. package/test/server/httpapi-exercise/runtime.ts +0 -52
  652. package/test/server/httpapi-exercise/types.ts +0 -123
  653. package/test/server/httpapi-experimental.test.ts +0 -297
  654. package/test/server/httpapi-file.test.ts +0 -73
  655. package/test/server/httpapi-global.test.ts +0 -66
  656. package/test/server/httpapi-instance-context.test.ts +0 -348
  657. package/test/server/httpapi-instance-route-auth.test.ts +0 -81
  658. package/test/server/httpapi-instance.test.ts +0 -265
  659. package/test/server/httpapi-layer.ts +0 -33
  660. package/test/server/httpapi-listen.test.ts +0 -412
  661. package/test/server/httpapi-mcp-oauth.test.ts +0 -73
  662. package/test/server/httpapi-mcp.test.ts +0 -223
  663. package/test/server/httpapi-mdns.test.ts +0 -79
  664. package/test/server/httpapi-promptasync-context.test.ts +0 -223
  665. package/test/server/httpapi-provider.test.ts +0 -400
  666. package/test/server/httpapi-pty.test.ts +0 -299
  667. package/test/server/httpapi-public-openapi.test.ts +0 -319
  668. package/test/server/httpapi-query-schema-drift.test.ts +0 -330
  669. package/test/server/httpapi-reference.test.ts +0 -62
  670. package/test/server/httpapi-schema-error-body.test.ts +0 -165
  671. package/test/server/httpapi-sdk.test.ts +0 -909
  672. package/test/server/httpapi-session.test.ts +0 -1011
  673. package/test/server/httpapi-sync.test.ts +0 -148
  674. package/test/server/httpapi-ui.test.ts +0 -453
  675. package/test/server/httpapi-v2-location.test.ts +0 -82
  676. package/test/server/httpapi-v2-pty.test.ts +0 -250
  677. package/test/server/httpapi-workspace-routing.test.ts +0 -555
  678. package/test/server/httpapi-workspace.test.ts +0 -513
  679. package/test/server/negative-tokens-regression.test.ts +0 -83
  680. package/test/server/project-copy.test.ts +0 -121
  681. package/test/server/project-init-git.test.ts +0 -114
  682. package/test/server/proxy-util.test.ts +0 -113
  683. package/test/server/sdk-error-shape.test.ts +0 -81
  684. package/test/server/sdk-v1-smoke.test.ts +0 -57
  685. package/test/server/session-actions.test.ts +0 -109
  686. package/test/server/session-diff-missing-patch.test.ts +0 -96
  687. package/test/server/session-list.test.ts +0 -312
  688. package/test/server/session-messages.test.ts +0 -179
  689. package/test/server/session-select.test.ts +0 -66
  690. package/test/server/workspace-proxy.test.ts +0 -181
  691. package/test/server/workspace-routing.test.ts +0 -94
  692. package/test/server/worktree-endpoint-repro.test.ts +0 -307
  693. package/test/session/compaction.test.ts +0 -1834
  694. package/test/session/instruction.test.ts +0 -256
  695. package/test/session/llm-native-recorded.test.ts +0 -433
  696. package/test/session/llm-native.test.ts +0 -760
  697. package/test/session/llm.test.ts +0 -1932
  698. package/test/session/message-v2.test.ts +0 -1661
  699. package/test/session/messages-pagination.test.ts +0 -1056
  700. package/test/session/processor-effect.test.ts +0 -1076
  701. package/test/session/prompt.test.ts +0 -2326
  702. package/test/session/retry.test.ts +0 -439
  703. package/test/session/revert-compact.test.ts +0 -639
  704. package/test/session/schema-decoding.test.ts +0 -313
  705. package/test/session/session-schema.test.ts +0 -78
  706. package/test/session/session.test.ts +0 -248
  707. package/test/session/snapshot-tool-race.test.ts +0 -190
  708. package/test/session/structured-output-integration.test.ts +0 -235
  709. package/test/session/structured-output.test.ts +0 -387
  710. package/test/session/system.test.ts +0 -86
  711. package/test/session/ultrawork.test.ts +0 -25
  712. package/test/share/share-next.test.ts +0 -326
  713. package/test/skill/discovery.test.ts +0 -139
  714. package/test/skill/skill.test.ts +0 -571
  715. package/test/snapshot/snapshot.test.ts +0 -1121
  716. package/test/storage/storage.test.ts +0 -296
  717. package/test/tool/__snapshots__/parameters.test.ts.snap +0 -484
  718. package/test/tool/__snapshots__/tool.test.ts.snap +0 -9
  719. package/test/tool/apply_patch.test.ts +0 -533
  720. package/test/tool/edit.test.ts +0 -578
  721. package/test/tool/external-directory.test.ts +0 -155
  722. package/test/tool/fixtures/large-image.png +0 -0
  723. package/test/tool/fixtures/models-api.json +0 -117299
  724. package/test/tool/glob.test.ts +0 -136
  725. package/test/tool/grep.test.ts +0 -225
  726. package/test/tool/lsp.test.ts +0 -181
  727. package/test/tool/parameters.test.ts +0 -293
  728. package/test/tool/question.test.ts +0 -138
  729. package/test/tool/read.test.ts +0 -605
  730. package/test/tool/registry.test.ts +0 -497
  731. package/test/tool/shell.test.ts +0 -1238
  732. package/test/tool/skill.test.ts +0 -136
  733. package/test/tool/task.test.ts +0 -898
  734. package/test/tool/tool-define.test.ts +0 -153
  735. package/test/tool/truncation.test.ts +0 -266
  736. package/test/tool/webfetch.test.ts +0 -113
  737. package/test/tool/websearch.test.ts +0 -99
  738. package/test/tool/write.test.ts +0 -276
  739. package/test/util/data-url.test.ts +0 -14
  740. package/test/util/error.test.ts +0 -16
  741. package/test/util/filesystem.test.ts +0 -656
  742. package/test/util/glob.test.ts +0 -164
  743. package/test/util/iife.test.ts +0 -36
  744. package/test/util/lazy.test.ts +0 -50
  745. package/test/util/module.test.ts +0 -59
  746. package/test/util/process.test.ts +0 -128
  747. package/test/util/repository.test.ts +0 -93
  748. package/test/util/timeout.test.ts +0 -21
  749. package/test/util/wildcard.test.ts +0 -90
  750. package/test/v2/session-message-updater.test.ts +0 -269
  751. package/tsconfig.json +0 -16
@@ -1,247 +0,0 @@
1
- # Effect Guide
2
-
3
- How we write Effect code in `packages/miaw`. The companion roadmap is
4
- [`todo.md`](./todo.md).
5
-
6
- This guide describes the preferred shape for new work and migrations. If a
7
- legacy file differs, migrate it only when it is already in scope.
8
-
9
- ## Service Shape
10
-
11
- Use one module per service: flat top-level exports, traced Effect methods,
12
- explicit layers, and a self-reexport at the bottom.
13
-
14
- ```ts
15
- export interface Interface {
16
- readonly get: (id: FooID) => Effect.Effect<FooInfo, FooError>
17
- }
18
-
19
- export class Service extends Context.Service<Service, Interface>()("@miaw/Foo") {}
20
-
21
- export const layer = Layer.effect(
22
- Service,
23
- Effect.gen(function* () {
24
- const state = yield* InstanceState.make<State>(Effect.fn("Foo.state")(() => Effect.succeed({})))
25
-
26
- const get = Effect.fn("Foo.get")(function* (id: FooID) {
27
- const s = yield* InstanceState.get(state)
28
- return yield* loadFoo(s, id)
29
- })
30
-
31
- return Service.of({ get })
32
- }),
33
- )
34
-
35
- export const defaultLayer = layer.pipe(Layer.provide(FooDep.defaultLayer))
36
-
37
- export * as Foo from "./foo"
38
- ```
39
-
40
- Rules:
41
-
42
- - Do not use `export namespace Foo { ... }`.
43
- - Use `Effect.fn("Foo.method")` for public service methods.
44
- - Use `Effect.fnUntraced` for small internal helpers that do not need a
45
- span.
46
- - Keep helpers as non-exported top-level declarations in the same file.
47
- - Self-reexport with `export * as Foo from "."` for `index.ts`, otherwise
48
- `export * as Foo from "./foo"`.
49
- - In `src/config`, keep the existing top-of-file self-export pattern.
50
-
51
- ## Runtime Boundaries
52
-
53
- Most code should run through [`AppRuntime`](../../src/effect/app-runtime.ts).
54
- It hosts `AppLayer`, shares the global `memoMap`, and restores the current
55
- instance/workspace refs when crossing from non-Effect code.
56
-
57
- Use `AppRuntime.runPromise(effect)` at app boundaries such as CLI commands,
58
- HTTP handlers, or plain async adapters.
59
-
60
- `makeRuntime(...)` still exists for a few intentional service-local
61
- boundaries and migration leftovers. Do not add a new service-local runtime
62
- unless the service truly cannot live in `AppLayer`.
63
-
64
- ## Runtime Flags
65
-
66
- Read miaw runtime flags through
67
- [`RuntimeFlags.Service`](../../src/effect/runtime-flags.ts), not through
68
- mutable `Flag` or late `process.env` reads.
69
-
70
- Tests should vary behavior with explicit layer variants:
71
-
72
- ```ts
73
- const it = testEffect(MyService.defaultLayer.pipe(Layer.provide(RuntimeFlags.layer({ experimentalReferences: true }))))
74
- ```
75
-
76
- Do not mutate `process.env` or `Flag` after services/layers are built.
77
-
78
- ## Per-Instance State
79
-
80
- Use [`InstanceState`](../../src/effect/instance-state.ts) when two open
81
- directories should not share one copy of a service's state. It is backed by
82
- a `ScopedCache`, keyed by directory, and disposed automatically when an
83
- instance is unloaded.
84
-
85
- Put subscriptions, finalizers, and scoped background work inside the
86
- `InstanceState.make(...)` initializer:
87
-
88
- ```ts
89
- const cache =
90
- yield *
91
- InstanceState.make<State>(
92
- Effect.fn("Foo.state")(function* () {
93
- const bus = yield* Bus.Service
94
-
95
- yield* bus.subscribeAll().pipe(
96
- Stream.runForEach((event) => handleEvent(event)),
97
- Effect.forkScoped,
98
- )
99
-
100
- yield* Effect.acquireRelease(openResource, closeResource)
101
-
102
- return yield* loadInitialState()
103
- }),
104
- )
105
- ```
106
-
107
- Do not add separate `started` flags on top of `InstanceState`. Let
108
- `ScopedCache` handle run-once and deduplication.
109
-
110
- To make `init()` non-blocking, fork at the caller/bootstrap boundary. Do
111
- not fork inside `InstanceState.make(...)` just to return early with
112
- partially initialized state.
113
-
114
- ## Errors
115
-
116
- Expected domain failures belong on the Effect error channel. Defects are
117
- for bugs, impossible states, and final unknown-boundary fallbacks.
118
-
119
- ```ts
120
- export class SessionBusyError extends Schema.TaggedErrorClass<SessionBusyError>()("SessionBusyError", {
121
- sessionID: SessionID,
122
- message: Schema.String,
123
- }) {}
124
-
125
- export type Error = Storage.Error | SessionBusyError
126
-
127
- export interface Interface {
128
- readonly get: (id: SessionID) => Effect.Effect<Info, Error>
129
- }
130
- ```
131
-
132
- Rules:
133
-
134
- - Use `Schema.TaggedErrorClass` for new expected domain errors.
135
- - Export a domain-level `Error` union from service modules.
136
- - In `Effect.gen` / `Effect.fn`, prefer `yield* new MyError(...)` for
137
- direct expected failures.
138
- - Use `Schema.Defect` for unknown cause fields.
139
- - Use `Effect.try(...)`, `Effect.tryPromise(...)`, `Effect.mapError`,
140
- `Effect.catchTag`, and `Effect.catchTags` to translate external
141
- failures into domain errors.
142
- - Do not use `Effect.die(...)` for user, IO, validation, missing-resource,
143
- auth, provider, or busy-state failures.
144
-
145
- ## HTTP Error Boundaries
146
-
147
- Service modules stay HTTP-agnostic. They should not import HTTP status
148
- codes, `HttpApiError`, `HttpServerResponse`, or route-specific error
149
- schemas.
150
-
151
- HTTP handlers translate service errors into endpoint-declared public error
152
- schemas. Keep mappings inline when they are one-off; extract tiny shared
153
- helpers only when the same translation repeats.
154
-
155
- Do not turn generic middleware into a registry of domain errors. Middleware
156
- should handle cross-cutting concerns and the final unknown-defect fallback.
157
-
158
- Preserve legacy public wire shapes, such as `{ name, data }`, until a
159
- deliberate breaking API change.
160
-
161
- ## Schemas
162
-
163
- Use Effect Schema as the source of truth.
164
-
165
- - Use `Schema.Class` for exported data objects with a clear identity.
166
- - Use `Schema.Struct` for local shapes and simple nested objects.
167
- - Use `Schema.brand` for single-value IDs.
168
- - Reuse named refinements instead of re-spelling constraints.
169
- - Prefer narrow boundary helpers over generic Schema-to-Zod bridges.
170
-
171
- Intentional boundaries:
172
-
173
- - Public plugin tools still expose Zod through `tool.schema = z`.
174
- - Tool parameter JSON Schema is generated through tool-specific helpers.
175
- - Public config and TUI schemas are generated through the schema script.
176
-
177
- ## Preferred Services
178
-
179
- In effectified code, yield existing services instead of dropping to ad hoc
180
- platform APIs.
181
-
182
- - Use `FSUtil.Service` instead of raw `fs/promises` for app file IO.
183
- - Use `AppProcess.Service` instead of direct `ChildProcessSpawner.spawn` or
184
- legacy process helpers.
185
- - Use `HttpClient.HttpClient` instead of raw `fetch` inside Effect code.
186
- - Use `Path.Path`, `Config`, `Clock`, and `DateTime` when already inside
187
- Effect.
188
- - Use `Effect.callback` for callback-based APIs.
189
- - Use `Effect.void` instead of `Effect.succeed(undefined)`.
190
- - Use `Effect.cached` when concurrent callers should share one in-flight
191
- computation.
192
-
193
- For background loops, use `Effect.repeat` or `Effect.schedule` with
194
- `Effect.forkScoped` in the owning layer/state scope.
195
-
196
- ## Promise And ALS Bridges
197
-
198
- [`EffectBridge`](../../src/effect/bridge.ts) is the sanctioned helper for
199
- Promise/callback interop that needs to preserve instance/workspace context.
200
- It preserves explicit `InstanceRef` / `WorkspaceRef` context for effects run
201
- through the bridge. Plain JS callbacks that need instance data should receive
202
- that data explicitly.
203
-
204
- ## Testing
205
-
206
- Detailed test migration rules live in
207
- [`test/EFFECT_TEST_MIGRATION.md`](../../test/EFFECT_TEST_MIGRATION.md).
208
-
209
- Core pattern:
210
-
211
- ```ts
212
- const it = testEffect(Layer.mergeAll(MyService.defaultLayer))
213
-
214
- describe("my service", () => {
215
- it.instance("does the thing", () =>
216
- Effect.gen(function* () {
217
- const svc = yield* MyService.Service
218
- expect(yield* svc.run()).toEqual("ok")
219
- }),
220
- )
221
- })
222
- ```
223
-
224
- Rules:
225
-
226
- - Use `it.effect(...)` for TestClock/TestConsole tests.
227
- - Use `it.live(...)` for real timers, filesystem mtimes, child processes,
228
- git, locks, or other live integration behavior.
229
- - Use `it.instance(...)` for service tests that need a scoped instance.
230
- - Prefer Effect-aware fixtures from `test/fixture/fixture.ts`.
231
- - Avoid sleeps; wait for real events or deterministic state transitions.
232
- - Avoid mutable `process.env`, `Flag`, or module-global changes after
233
- layers are built.
234
- - Use `Layer.mock` for partial service stubs.
235
- - Avoid custom `ManagedRuntime`, `attach(...)`, or ad hoc `run(...)` test
236
- wrappers.
237
-
238
- ## Verification
239
-
240
- From `packages/miaw`:
241
-
242
- ```bash
243
- bun run typecheck
244
- bun run test -- path/to/test.ts
245
- ```
246
-
247
- Do not run tests from the repo root; the repo has a guard for that.
@@ -1,13 +0,0 @@
1
- # Instance Context
2
-
3
- Instance selection is now Effect-provided context.
4
-
5
- Use these APIs:
6
-
7
- - `InstanceRef` for the current project context.
8
- - `WorkspaceRef` for the current workspace id.
9
- - `InstanceState.context` / `InstanceState.directory` inside Effect services that require an instance.
10
- - `InstanceStore` at entry boundaries that need to load, reload, or dispose project contexts.
11
- - `EffectBridge` for native, plugin, or plain JavaScript callback boundaries that need to re-enter Effect with captured refs.
12
-
13
- Do not add new ambient instance globals. Promise and callback boundaries should either stay in Effect, use `EffectBridge`, or pass the required context explicitly.
@@ -1,30 +0,0 @@
1
- # Effect loose ends
2
-
3
- Small follow-ups that do not fit neatly into the main facade, route, tool, or schema migration checklists.
4
-
5
- ## Config / TUI
6
-
7
- - [ ] `cli/cmd/tui/config/tui.ts` - finish the internal Effect migration.
8
- Keep the current precedence and migration semantics intact while converting the remaining internal async helpers (`loadState`, `mergeFile`, `loadFile`, `load`) to `Effect.gen(...)` / `Effect.fn(...)`.
9
- - [ ] `cli/cmd/tui/config/tui.ts` callers - once the internal service is stable, migrate plain async callers to use `TuiConfig.Service` directly where that actually simplifies the code.
10
- Likely first callers: `cli/cmd/tui/attach.ts`, `cli/cmd/tui/thread.ts`, `cli/cmd/tui/plugin/runtime.ts`.
11
- - [x] `env/index.ts` - already uses `InstanceState.make(...)`.
12
-
13
- ## ConfigPaths
14
-
15
- - [ ] `config/paths.ts` - split pure helpers from effectful helpers.
16
- Keep `fileInDirectory(...)` as a plain function.
17
- - [ ] `config/paths.ts` - add a `ConfigPaths.Service` for the effectful operations so callers do not inherit `FSUtil.Service` directly.
18
- Initial service surface should cover:
19
- - `projectFiles(...)`
20
- - `directories(...)`
21
- - `readFile(...)`
22
- - `parseText(...)`
23
- - [ ] `config/config.ts` - switch internal config loading from `Effect.promise(() => ConfigPaths.*(...))` to `yield* paths.*(...)` once the service exists.
24
- - [ ] `cli/cmd/tui/config/tui.ts` - switch TUI config loading from async `ConfigPaths.*` wrappers to the `ConfigPaths.Service` once that service exists.
25
- - [ ] `cli/cmd/tui/config/tui-migrate.ts` - decide whether to leave this as a plain async module using wrapper functions or effectify it fully after `ConfigPaths.Service` lands.
26
-
27
- ## Notes
28
-
29
- - Prefer small, semantics-preserving config migrations. Config precedence, legacy key migration, and plugin origin tracking are easy to break accidentally.
30
- - When changing config loading internals, rerun the config and TUI suites first before broad package sweeps.
@@ -1,62 +0,0 @@
1
- # Effect Migration Patterns
2
-
3
- This is the compact reference for moving code toward the current Effect
4
- shape. The high-level roadmap is [`todo.md`](./todo.md); examples and
5
- rules are in [`guide.md`](./guide.md).
6
-
7
- ## Default Shape
8
-
9
- - Service methods return `Effect`.
10
- - Service methods are named with `Effect.fn("Domain.method")`.
11
- - Expected failures are typed errors on the error channel.
12
- - Dependencies are yielded once at layer construction and closed over by
13
- methods.
14
- - `defaultLayer` wires production dependencies; tests can use open layers
15
- when replacing dependencies.
16
-
17
- ## Instance State
18
-
19
- Use `InstanceState` for per-directory state, subscriptions, scoped
20
- background work, and per-instance cleanup.
21
-
22
- Do not add ad hoc `started` flags on top of `InstanceState`; the scoped
23
- cache handles run-once and concurrent deduplication.
24
-
25
- ## Runtime Boundaries
26
-
27
- Prefer `AppRuntime` for crossing from non-Effect code into the shared app
28
- layer.
29
-
30
- `makeRuntime(...)` exists for intentional service-local boundaries and
31
- legacy facades. Do not add new service-local runtimes unless the service is
32
- genuinely outside `AppLayer`.
33
-
34
- ## Platform Edges
35
-
36
- - Use `FSUtil.Service` instead of raw filesystem APIs in
37
- effectified services.
38
- - Use `AppProcess.Service` instead of raw process wrappers.
39
- - Use `HttpClient.HttpClient` instead of raw `fetch` in Effect code.
40
- - Use `Effect.cached` for shared in-flight work.
41
- - Use `Effect.callback` for callback APIs.
42
-
43
- ## Tests During Migration
44
-
45
- When migrating code, migrate touched tests toward
46
- [`test/EFFECT_TEST_MIGRATION.md`](../../test/EFFECT_TEST_MIGRATION.md):
47
-
48
- - `testEffect(...)`
49
- - `it.effect`, `it.live`, or `it.instance`
50
- - explicit layers for behavior changes
51
- - deterministic waits instead of sleeps
52
- - no mutable env/global flags after layers are built
53
-
54
- ## Migration Checklist
55
-
56
- - [ ] The code has a single Effect body instead of Promise wrappers around
57
- service calls.
58
- - [ ] Expected failures are typed errors, not thrown exceptions or defects.
59
- - [ ] Layer requirements are explicit.
60
- - [ ] Tests use Effect-aware fixtures and focused layers.
61
- - [ ] Public behavior and wire shapes are preserved unless intentionally
62
- changed.
@@ -1,61 +0,0 @@
1
- # HTTP Route Patterns
2
-
3
- Current guidance for `packages/miaw/src/server/routes/instance/httpapi`.
4
-
5
- ## Handler Shape
6
-
7
- Use `HttpApiBuilder.group(...)` for normal JSON and streaming HTTP API
8
- endpoints. Yield stable services once while building the handler layer,
9
- then close over those services in endpoint implementations.
10
-
11
- ```ts
12
- export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session", (handlers) =>
13
- Effect.gen(function* () {
14
- const session = yield* Session.Service
15
-
16
- return handlers.handle("list", () => session.list())
17
- }),
18
- )
19
- ```
20
-
21
- Use raw `HttpRouter` only for routes that do not fit the request/response
22
- HttpApi model, such as WebSocket upgrades or catch-all fallback routes.
23
-
24
- Do not rebuild stable layers inside request handlers. Provide stable
25
- services at the route/layer boundary and use request-level provisioning
26
- only for request-derived context.
27
-
28
- ## Error Boundaries
29
-
30
- Expected service errors should be mapped at the handler boundary to
31
- endpoint-declared public HTTP errors. Keep one-off mappings inline. Extract
32
- small helpers when the same mapping repeats.
33
-
34
- Generic middleware should not become a domain-error mapper. It should
35
- handle cross-cutting concerns and final unknown-defect fallback.
36
-
37
- Public JSON errors should be explicit schema contracts declared on each
38
- endpoint or group. Built-in `HttpApiError.*` is fine only when its generated
39
- body is intentionally the public wire shape.
40
-
41
- Preserve existing `{ name, data }` error bodies until a deliberate breaking
42
- API change.
43
-
44
- ## OpenAPI Compatibility
45
-
46
- `public.ts` still owns SDK/OpenAPI compatibility transforms. Shrink those
47
- transforms by tightening source schemas one workaround at a time.
48
-
49
- When an OpenAPI-visible source schema changes:
50
-
51
- - verify the generated SDK diff is intentional
52
- - preserve legacy compatibility unless the PR explicitly changes it
53
- - prefer source-schema fixes over new post-processing rules
54
-
55
- ## Checklist For Route PRs
56
-
57
- - [ ] Stable services are yielded at handler-layer construction.
58
- - [ ] Expected domain errors are translated at the route boundary.
59
- - [ ] Endpoint/group error schemas describe the public body and status.
60
- - [ ] Middleware does not gain new domain-specific name checks.
61
- - [ ] Raw routes are used only when HttpApi is the wrong abstraction.
@@ -1,88 +0,0 @@
1
- # Schema Migration
2
-
3
- Use Effect Schema as the source of truth for domain models, DTOs, IDs,
4
- inputs, outputs, and typed errors.
5
-
6
- This is guidance, not an inventory. Do not use this file to track which
7
- schema modules are complete; verify current state with `git grep` before
8
- starting a migration.
9
-
10
- ## Preferred Shapes
11
-
12
- Use `Schema.Class` for exported data objects with a clear domain identity:
13
-
14
- ```ts
15
- export class Info extends Schema.Class<Info>("Foo.Info")({
16
- id: FooID,
17
- name: Schema.String,
18
- enabled: Schema.Boolean,
19
- }) {}
20
- ```
21
-
22
- Use `Schema.Struct` for local shapes and simple nested objects:
23
-
24
- ```ts
25
- const Payload = Schema.Struct({
26
- id: FooID,
27
- value: Schema.String,
28
- })
29
- ```
30
-
31
- Use `Schema.TaggedErrorClass` for expected domain errors:
32
-
33
- ```ts
34
- export class NotFoundError extends Schema.TaggedErrorClass<NotFoundError>()("FooNotFoundError", {
35
- id: FooID,
36
- }) {}
37
- ```
38
-
39
- Use branded schema-backed IDs for single-value domain identifiers.
40
-
41
- ## Boundary Rule
42
-
43
- Effect Schema should own the type. Boundaries should consume Effect Schema
44
- directly or use narrow boundary-specific helpers. Avoid reintroducing a
45
- generic Effect Schema -> Zod bridge.
46
-
47
- Current intentional boundaries:
48
-
49
- - Public plugin tools still expose Zod through `tool.schema = z`.
50
- - Tool parameters use tool-specific JSON Schema helpers.
51
- - Public config and TUI schema generation goes through the schema script.
52
- - AI SDK object generation uses Standard Schema / JSON Schema helpers.
53
-
54
- When Zod must stay temporarily, leave a short note explaining the boundary
55
- or compatibility reason.
56
-
57
- ## Refinements
58
-
59
- Reuse named refinements instead of re-spelling constraints:
60
-
61
- ```ts
62
- const PositiveInt = Schema.Number.check(Schema.isInt()).check(Schema.isGreaterThan(0))
63
- const NonNegativeInt = Schema.Number.check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0))
64
- ```
65
-
66
- Prefer domain-named leaf schemas when the name improves callers or error
67
- messages. Avoid adding brands purely for novelty.
68
-
69
- ## Migration Order
70
-
71
- For a domain that still has mixed schemas:
72
-
73
- 1. Shared leaf models and branded IDs.
74
- 2. Exported `Info`, `Input`, `Output`, and event payload types.
75
- 3. Expected domain errors.
76
- 4. Service-local internal models.
77
- 5. HTTP/tool/AI boundary validators.
78
-
79
- Keep public wire shapes stable unless the PR is explicitly a breaking API
80
- change.
81
-
82
- ## Checklist For A PR
83
-
84
- - [ ] There is one schema source of truth for each migrated type.
85
- - [ ] Remaining Zod is an intentional boundary choice.
86
- - [ ] Public JSON/OpenAPI output is unchanged or intentionally updated.
87
- - [ ] Derived helpers are narrow and boundary-specific.
88
- - [ ] Tests assert behavior, not duplicated schema implementation details.
@@ -1,58 +0,0 @@
1
- # Server Package Extraction
2
-
3
- Practical reference for a future `packages/server` split after the miaw
4
- server moved to the Effect HttpApi backend.
5
-
6
- ## Current State
7
-
8
- - The server still lives in `packages/miaw`.
9
- - The runtime and app layer are centralized in `src/effect/app-runtime.ts` and
10
- `src/effect/run-service.ts`.
11
- - The route tree lives under `src/server/routes/instance/httpapi` and is hosted
12
- from `src/server/server.ts`.
13
- - OpenAPI generation is based on the HttpApi contract plus compatibility
14
- translation in `src/server/routes/instance/httpapi/public.ts`.
15
- - There is no standalone `packages/server` workspace yet.
16
-
17
- ## Future State
18
-
19
- Target package layout:
20
-
21
- - `packages/core` - shared domain services and schemas
22
- - `packages/server` - HTTP contracts, handlers, OpenAPI generation, and an
23
- embeddable server API
24
- - `packages/cli` - TUI and CLI entrypoints
25
- - `packages/sdk` - generated from the server OpenAPI spec
26
- - `packages/plugin` - plugin authoring surface
27
-
28
- ## Extraction Rule
29
-
30
- Do not create a package cycle.
31
-
32
- Until enough shared service code lives outside `packages/miaw`, a future
33
- `packages/server` should either:
34
-
35
- - own pure HttpApi contracts only, or
36
- - accept host-provided services/layers/callbacks from `packages/miaw`
37
-
38
- It should not import `packages/miaw` services while `packages/miaw`
39
- imports it to host routes.
40
-
41
- ## Suggested PR Sequence
42
-
43
- 1. Keep shrinking OpenAPI compatibility shims in `httpapi/public.ts`.
44
- 2. Move stable domain schemas into shared packages only when they no longer
45
- depend on miaw-local runtime modules.
46
- 3. Extract pure HttpApi contract modules into `packages/server` once the contract
47
- can compile without importing `packages/miaw` implementation details.
48
- 4. Extract handler factories after their service dependencies can be supplied by
49
- a host layer instead of imported directly.
50
- 5. Move server hosting last, after package ownership is clear.
51
-
52
- ## Non-Goals
53
-
54
- - Do not revive the old dual-backend migration shape.
55
- - Do not split server hosting before service dependencies have a clean package
56
- boundary.
57
- - Do not switch SDK generation to a new package until generated output is known
58
- to remain compatible.