@nio-cli/cli 0.1.0 → 0.3.0

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 (425) hide show
  1. package/README.md +374 -139
  2. package/dist/adapters/docker/docker-gateway.js +100 -0
  3. package/dist/adapters/docker/docker-gateway.js.map +1 -0
  4. package/dist/adapters/ide/ide-gateway.js +50 -0
  5. package/dist/adapters/ide/ide-gateway.js.map +1 -0
  6. package/dist/adapters/lang/knowledge-store.js +97 -0
  7. package/dist/adapters/lang/knowledge-store.js.map +1 -0
  8. package/dist/adapters/lang/language-catalog.js +86 -0
  9. package/dist/adapters/lang/language-catalog.js.map +1 -0
  10. package/dist/adapters/lang/package-map.js +98 -0
  11. package/dist/adapters/lang/package-map.js.map +1 -0
  12. package/dist/adapters/lang/project-detector.js +40 -0
  13. package/dist/adapters/lang/project-detector.js.map +1 -0
  14. package/dist/adapters/lang/repos.js +8 -0
  15. package/dist/adapters/lang/repos.js.map +1 -0
  16. package/dist/adapters/lang/scaffold-gateway.js +135 -0
  17. package/dist/adapters/lang/scaffold-gateway.js.map +1 -0
  18. package/dist/adapters/lang/vendor.js +52 -0
  19. package/dist/adapters/lang/vendor.js.map +1 -0
  20. package/dist/adapters/pg/auth-session-repository.js +41 -0
  21. package/dist/adapters/pg/auth-session-repository.js.map +1 -0
  22. package/dist/adapters/pg/client.js +74 -0
  23. package/dist/adapters/pg/client.js.map +1 -0
  24. package/dist/adapters/pg/dependency-event-repository.js +40 -0
  25. package/dist/adapters/pg/dependency-event-repository.js.map +1 -0
  26. package/dist/adapters/pg/login-challenge-repository.js +54 -0
  27. package/dist/adapters/pg/login-challenge-repository.js.map +1 -0
  28. package/dist/adapters/pg/session-repository.js +70 -0
  29. package/dist/adapters/pg/session-repository.js.map +1 -0
  30. package/dist/adapters/pg/user-repository.js +71 -0
  31. package/dist/adapters/pg/user-repository.js.map +1 -0
  32. package/dist/adapters/pkg/toolchain-gateway.js +35 -0
  33. package/dist/adapters/pkg/toolchain-gateway.js.map +1 -0
  34. package/dist/adapters/skills/recipe-catalog.js +84 -0
  35. package/dist/adapters/skills/recipe-catalog.js.map +1 -0
  36. package/dist/adapters/sms/http-generic.js +50 -0
  37. package/dist/adapters/sms/http-generic.js.map +1 -0
  38. package/dist/app/ai-client.js +44 -0
  39. package/dist/app/ai-client.js.map +1 -0
  40. package/dist/app/dependency-watcher.js +87 -0
  41. package/dist/app/dependency-watcher.js.map +1 -0
  42. package/dist/app/docker-manager.js +113 -0
  43. package/dist/app/docker-manager.js.map +1 -0
  44. package/dist/app/environment-builder.js +73 -0
  45. package/dist/app/environment-builder.js.map +1 -0
  46. package/dist/app/language-configurator.js +30 -0
  47. package/dist/app/language-configurator.js.map +1 -0
  48. package/dist/app/session-manager.js +124 -0
  49. package/dist/app/session-manager.js.map +1 -0
  50. package/dist/brand.js +3 -61
  51. package/dist/brand.js.map +1 -1
  52. package/dist/cli/commands/agents.js +30 -0
  53. package/dist/cli/commands/agents.js.map +1 -0
  54. package/dist/cli/commands/ai.js +61 -0
  55. package/dist/cli/commands/ai.js.map +1 -0
  56. package/dist/cli/commands/auth.js +149 -96
  57. package/dist/cli/commands/auth.js.map +1 -1
  58. package/dist/cli/commands/clean.js +1 -13
  59. package/dist/cli/commands/clean.js.map +1 -1
  60. package/dist/cli/commands/command.js +58 -0
  61. package/dist/cli/commands/command.js.map +1 -0
  62. package/dist/cli/commands/completion.js +0 -3
  63. package/dist/cli/commands/completion.js.map +1 -1
  64. package/dist/cli/commands/config.js +43 -0
  65. package/dist/cli/commands/config.js.map +1 -0
  66. package/dist/cli/commands/debug.js +102 -0
  67. package/dist/cli/commands/debug.js.map +1 -0
  68. package/dist/cli/commands/deps.js +94 -0
  69. package/dist/cli/commands/deps.js.map +1 -0
  70. package/dist/cli/commands/docker.js +385 -0
  71. package/dist/cli/commands/docker.js.map +1 -0
  72. package/dist/cli/commands/docs/content.js +219 -0
  73. package/dist/cli/commands/docs/content.js.map +1 -0
  74. package/dist/cli/commands/docs/dynamic.js +42 -0
  75. package/dist/cli/commands/docs/dynamic.js.map +1 -0
  76. package/dist/cli/commands/docs/html.js +108 -0
  77. package/dist/cli/commands/docs/html.js.map +1 -0
  78. package/dist/cli/commands/docs/terminal.js +42 -0
  79. package/dist/cli/commands/docs/terminal.js.map +1 -0
  80. package/dist/cli/commands/docs.js +34 -0
  81. package/dist/cli/commands/docs.js.map +1 -0
  82. package/dist/cli/commands/exec.js +2 -7
  83. package/dist/cli/commands/exec.js.map +1 -1
  84. package/dist/cli/commands/init/auth-step.js +10 -45
  85. package/dist/cli/commands/init/auth-step.js.map +1 -1
  86. package/dist/cli/commands/init/clients-step.js +12 -39
  87. package/dist/cli/commands/init/clients-step.js.map +1 -1
  88. package/dist/cli/commands/init/context-step.js +7 -33
  89. package/dist/cli/commands/init/context-step.js.map +1 -1
  90. package/dist/cli/commands/init/handoff.js +20 -0
  91. package/dist/cli/commands/init/handoff.js.map +1 -0
  92. package/dist/cli/commands/init/index.js +164 -34
  93. package/dist/cli/commands/init/index.js.map +1 -1
  94. package/dist/cli/commands/init/lang-step.js +40 -0
  95. package/dist/cli/commands/init/lang-step.js.map +1 -0
  96. package/dist/cli/commands/init/profile-step.js +43 -0
  97. package/dist/cli/commands/init/profile-step.js.map +1 -0
  98. package/dist/cli/commands/init/provision-step.js +8 -23
  99. package/dist/cli/commands/init/provision-step.js.map +1 -1
  100. package/dist/cli/commands/init/recipe-step.js +18 -0
  101. package/dist/cli/commands/init/recipe-step.js.map +1 -0
  102. package/dist/cli/commands/lang.js +27 -0
  103. package/dist/cli/commands/lang.js.map +1 -0
  104. package/dist/cli/commands/open.js +59 -0
  105. package/dist/cli/commands/open.js.map +1 -0
  106. package/dist/cli/commands/plan.js +2 -6
  107. package/dist/cli/commands/plan.js.map +1 -1
  108. package/dist/cli/commands/security.js +143 -0
  109. package/dist/cli/commands/security.js.map +1 -0
  110. package/dist/cli/commands/sessions.js +92 -0
  111. package/dist/cli/commands/sessions.js.map +1 -0
  112. package/dist/cli/commands/skills.js +1 -1
  113. package/dist/cli/commands/skills.js.map +1 -1
  114. package/dist/cli/commands/start.js +8 -0
  115. package/dist/cli/commands/start.js.map +1 -0
  116. package/dist/cli/commands/sync.js +52 -58
  117. package/dist/cli/commands/sync.js.map +1 -1
  118. package/dist/cli/commands/validate-plan.js +2 -6
  119. package/dist/cli/commands/validate-plan.js.map +1 -1
  120. package/dist/cli/copy/auth.json +9 -2
  121. package/dist/cli/copy/init.json +2 -6
  122. package/dist/cli/copy.js +0 -8
  123. package/dist/cli/copy.js.map +1 -1
  124. package/dist/cli/flows/clients.js +3 -94
  125. package/dist/cli/flows/clients.js.map +1 -1
  126. package/dist/cli/flows/completion.js +1 -6
  127. package/dist/cli/flows/completion.js.map +1 -1
  128. package/dist/cli/flows/dependencies.js +1 -18
  129. package/dist/cli/flows/dependencies.js.map +1 -1
  130. package/dist/cli/flows/onboarding.js +116 -0
  131. package/dist/cli/flows/onboarding.js.map +1 -0
  132. package/dist/cli/flows/sections.js +2 -10
  133. package/dist/cli/flows/sections.js.map +1 -1
  134. package/dist/cli/flows/user-config.js +5 -10
  135. package/dist/cli/flows/user-config.js.map +1 -1
  136. package/dist/cli/program.js +58 -0
  137. package/dist/cli/program.js.map +1 -0
  138. package/dist/cli/ui/render.js +2 -53
  139. package/dist/cli/ui/render.js.map +1 -1
  140. package/dist/cli/ui/report.js +0 -13
  141. package/dist/cli/ui/report.js.map +1 -1
  142. package/dist/cli.js +27 -31
  143. package/dist/cli.js.map +1 -1
  144. package/dist/config.js +27 -56
  145. package/dist/config.js.map +1 -1
  146. package/dist/core/docker.js +2 -0
  147. package/dist/core/docker.js.map +1 -0
  148. package/dist/core/environment.js +2 -0
  149. package/dist/core/environment.js.map +1 -0
  150. package/dist/core/lang.js +11 -0
  151. package/dist/core/lang.js.map +1 -0
  152. package/dist/core/messaging.js +2 -0
  153. package/dist/core/messaging.js.map +1 -0
  154. package/dist/core/repositories.js +2 -0
  155. package/dist/core/repositories.js.map +1 -0
  156. package/dist/core/types.js +0 -5
  157. package/dist/core/types.js.map +1 -1
  158. package/dist/gateway/config.js +13 -0
  159. package/dist/gateway/config.js.map +1 -0
  160. package/dist/gateway/edge-filter.js +55 -0
  161. package/dist/gateway/edge-filter.js.map +1 -0
  162. package/dist/gateway/index.js +176 -0
  163. package/dist/gateway/index.js.map +1 -0
  164. package/dist/gateway/middleware/auth.js +34 -0
  165. package/dist/gateway/middleware/auth.js.map +1 -0
  166. package/dist/gateway/services/login.js +112 -0
  167. package/dist/gateway/services/login.js.map +1 -0
  168. package/dist/gateway/services/security.js +99 -0
  169. package/dist/gateway/services/security.js.map +1 -0
  170. package/dist/lib/auth/backup-codes.js +46 -0
  171. package/dist/lib/auth/backup-codes.js.map +1 -0
  172. package/dist/lib/auth/gateway-client.js +86 -0
  173. package/dist/lib/auth/gateway-client.js.map +1 -0
  174. package/dist/lib/auth/gateway-process.js +54 -0
  175. package/dist/lib/auth/gateway-process.js.map +1 -0
  176. package/dist/lib/auth/gateway-token.js +26 -0
  177. package/dist/lib/auth/gateway-token.js.map +1 -0
  178. package/dist/lib/auth/nio-config.js +147 -0
  179. package/dist/lib/auth/nio-config.js.map +1 -0
  180. package/dist/lib/auth/otp.js +23 -0
  181. package/dist/lib/auth/otp.js.map +1 -0
  182. package/dist/lib/auth/password.js +23 -0
  183. package/dist/lib/auth/password.js.map +1 -0
  184. package/dist/lib/auth/session-store.js +49 -0
  185. package/dist/lib/auth/session-store.js.map +1 -0
  186. package/dist/lib/clients/autopull.js +8 -0
  187. package/dist/lib/clients/autopull.js.map +1 -0
  188. package/dist/lib/{client-configs.js → clients/client-configs.js} +113 -34
  189. package/dist/lib/clients/client-configs.js.map +1 -0
  190. package/dist/lib/clients/client-install.js +20 -0
  191. package/dist/lib/clients/client-install.js.map +1 -0
  192. package/dist/lib/{harness.js → clients/harness.js} +1 -16
  193. package/dist/lib/clients/harness.js.map +1 -0
  194. package/dist/lib/{hooks.js → clients/hooks.js} +5 -31
  195. package/dist/lib/clients/hooks.js.map +1 -0
  196. package/dist/lib/{targets.js → clients/targets.js} +17 -53
  197. package/dist/lib/clients/targets.js.map +1 -0
  198. package/dist/lib/colors.js +0 -24
  199. package/dist/lib/colors.js.map +1 -1
  200. package/dist/lib/cowork-extension.js +2 -25
  201. package/dist/lib/cowork-extension.js.map +1 -1
  202. package/dist/lib/debug.js +6 -0
  203. package/dist/lib/debug.js.map +1 -0
  204. package/dist/lib/{dependencies.js → deps/dependencies.js} +1 -26
  205. package/dist/lib/deps/dependencies.js.map +1 -0
  206. package/dist/lib/deps/dependency-install-project.js +27 -0
  207. package/dist/lib/deps/dependency-install-project.js.map +1 -0
  208. package/dist/lib/{dependency-install.js → deps/dependency-install.js} +10 -35
  209. package/dist/lib/deps/dependency-install.js.map +1 -0
  210. package/dist/lib/deps/dependency-installed.js +64 -0
  211. package/dist/lib/deps/dependency-installed.js.map +1 -0
  212. package/dist/lib/deps/dependency-scan.js +100 -0
  213. package/dist/lib/deps/dependency-scan.js.map +1 -0
  214. package/dist/lib/docker.js +50 -0
  215. package/dist/lib/docker.js.map +1 -0
  216. package/dist/lib/dotfiles.js +57 -0
  217. package/dist/lib/dotfiles.js.map +1 -0
  218. package/dist/lib/{exec-delegate.js → exec/exec-delegate.js} +4 -13
  219. package/dist/lib/exec/exec-delegate.js.map +1 -0
  220. package/dist/lib/{exec-engines.js → exec/exec-engines.js} +1 -10
  221. package/dist/lib/exec/exec-engines.js.map +1 -0
  222. package/dist/lib/{plan-delegate.js → exec/plan-delegate.js} +1 -7
  223. package/dist/lib/exec/plan-delegate.js.map +1 -0
  224. package/dist/lib/{validate-plan-delegate.js → exec/validate-plan-delegate.js} +2 -7
  225. package/dist/lib/exec/validate-plan-delegate.js.map +1 -0
  226. package/dist/lib/headroom.js +44 -0
  227. package/dist/lib/headroom.js.map +1 -0
  228. package/dist/lib/ide-tasks.js +54 -0
  229. package/dist/lib/ide-tasks.js.map +1 -0
  230. package/dist/lib/load-env.js +44 -0
  231. package/dist/lib/load-env.js.map +1 -0
  232. package/dist/lib/open-url.js +9 -0
  233. package/dist/lib/open-url.js.map +1 -0
  234. package/dist/lib/prompts.js +0 -13
  235. package/dist/lib/prompts.js.map +1 -1
  236. package/dist/lib/{provision-apply.js → provision/provision-apply.js} +4 -30
  237. package/dist/lib/provision/provision-apply.js.map +1 -0
  238. package/dist/lib/{provision-collect.js → provision/provision-collect.js} +0 -9
  239. package/dist/lib/provision/provision-collect.js.map +1 -0
  240. package/dist/lib/{provision.js → provision/provision.js} +4 -17
  241. package/dist/lib/provision/provision.js.map +1 -0
  242. package/dist/lib/{patterns.js → skills/patterns.js} +0 -13
  243. package/dist/lib/skills/patterns.js.map +1 -0
  244. package/dist/lib/{rules.js → skills/rules.js} +0 -22
  245. package/dist/lib/skills/rules.js.map +1 -0
  246. package/dist/lib/skills/sections.js +58 -0
  247. package/dist/lib/skills/sections.js.map +1 -0
  248. package/dist/lib/{skill-serve.js → skills/skill-serve.js} +1 -26
  249. package/dist/lib/skills/skill-serve.js.map +1 -0
  250. package/dist/lib/{skills-cache.js → skills/skills-cache.js} +15 -21
  251. package/dist/lib/skills/skills-cache.js.map +1 -0
  252. package/dist/lib/{skills.js → skills/skills.js} +3 -49
  253. package/dist/lib/skills/skills.js.map +1 -0
  254. package/dist/lib/spinner.js.map +1 -0
  255. package/dist/lib/telemetry.js +3 -20
  256. package/dist/lib/telemetry.js.map +1 -1
  257. package/dist/lib/version-check.js +0 -20
  258. package/dist/lib/version-check.js.map +1 -1
  259. package/dist/matrix-logo.js +43 -21
  260. package/dist/matrix-logo.js.map +1 -1
  261. package/dist/mcp-server-lang.js +39 -0
  262. package/dist/mcp-server-lang.js.map +1 -0
  263. package/dist/mcp-server.js +37 -41
  264. package/dist/mcp-server.js.map +1 -1
  265. package/dist/profiles/analyst.js +10 -0
  266. package/dist/profiles/analyst.js.map +1 -0
  267. package/dist/profiles/bi.js +9 -0
  268. package/dist/profiles/bi.js.map +1 -0
  269. package/dist/profiles/dba.js +21 -0
  270. package/dist/profiles/dba.js.map +1 -0
  271. package/dist/profiles/fullstack.js +9 -0
  272. package/dist/profiles/fullstack.js.map +1 -0
  273. package/dist/profiles/index.js +39 -0
  274. package/dist/profiles/index.js.map +1 -0
  275. package/dist/profiles/mcps.js +23 -0
  276. package/dist/profiles/mcps.js.map +1 -0
  277. package/dist/profiles/qa.js +10 -0
  278. package/dist/profiles/qa.js.map +1 -0
  279. package/dist/profiles/scientist.js +9 -0
  280. package/dist/profiles/scientist.js.map +1 -0
  281. package/dist/profiles/toolchains.js +9 -0
  282. package/dist/profiles/toolchains.js.map +1 -0
  283. package/dist/tools/delegate-exec.js +2 -2
  284. package/dist/tools/delegate-exec.js.map +1 -1
  285. package/dist/tools/env-detect-deps.js +54 -0
  286. package/dist/tools/env-detect-deps.js.map +1 -0
  287. package/dist/tools/env-materialize.js +43 -0
  288. package/dist/tools/env-materialize.js.map +1 -0
  289. package/dist/tools/exec-status.js +1 -1
  290. package/dist/tools/exec-status.js.map +1 -1
  291. package/dist/tools/index.js +12 -32
  292. package/dist/tools/index.js.map +1 -1
  293. package/dist/tools/lang-recipe.js +31 -0
  294. package/dist/tools/lang-recipe.js.map +1 -0
  295. package/dist/tools/lang-reference.js +34 -0
  296. package/dist/tools/lang-reference.js.map +1 -0
  297. package/dist/tools/plan.js +2 -2
  298. package/dist/tools/plan.js.map +1 -1
  299. package/dist/tools/profile-get.js +57 -0
  300. package/dist/tools/profile-get.js.map +1 -0
  301. package/dist/tools/session-activate.js +35 -0
  302. package/dist/tools/session-activate.js.map +1 -0
  303. package/dist/tools/session-create.js +83 -0
  304. package/dist/tools/session-create.js.map +1 -0
  305. package/dist/tools/session-list.js +29 -0
  306. package/dist/tools/session-list.js.map +1 -0
  307. package/dist/tools/session-shared.js +25 -0
  308. package/dist/tools/session-shared.js.map +1 -0
  309. package/dist/tools/validate-plan.js +2 -2
  310. package/dist/tools/validate-plan.js.map +1 -1
  311. package/dist/tui/app.js +116 -0
  312. package/dist/tui/app.js.map +1 -0
  313. package/dist/tui/components.js +0 -0
  314. package/dist/tui/components.js.map +1 -0
  315. package/dist/tui/debug.js +17 -0
  316. package/dist/tui/debug.js.map +1 -0
  317. package/dist/tui/index.js +2 -0
  318. package/dist/tui/index.js.map +1 -0
  319. package/dist/tui/launch.js +64 -0
  320. package/dist/tui/launch.js.map +1 -0
  321. package/dist/tui/markdown.js +40 -0
  322. package/dist/tui/markdown.js.map +1 -0
  323. package/dist/tui/opencode.js +28 -0
  324. package/dist/tui/opencode.js.map +1 -0
  325. package/dist/tui/palette-source.js +71 -0
  326. package/dist/tui/palette-source.js.map +1 -0
  327. package/dist/tui/palette.js +100 -0
  328. package/dist/tui/palette.js.map +1 -0
  329. package/dist/tui/state.js +105 -0
  330. package/dist/tui/state.js.map +1 -0
  331. package/dist/tui/theme.js +14 -0
  332. package/dist/tui/theme.js.map +1 -0
  333. package/docker/docker-compose.yml +44 -0
  334. package/headroom/docker-compose.yml +27 -0
  335. package/package.json +40 -16
  336. package/dist/adapters/supabase/allocation-gateway.js +0 -236
  337. package/dist/adapters/supabase/allocation-gateway.js.map +0 -1
  338. package/dist/adapters/supabase/analytics-gateway.js +0 -18
  339. package/dist/adapters/supabase/analytics-gateway.js.map +0 -1
  340. package/dist/adapters/supabase/client.js +0 -96
  341. package/dist/adapters/supabase/client.js.map +0 -1
  342. package/dist/adapters/supabase/context-gateway.js +0 -23
  343. package/dist/adapters/supabase/context-gateway.js.map +0 -1
  344. package/dist/adapters/supabase/gateway.js +0 -18
  345. package/dist/adapters/supabase/gateway.js.map +0 -1
  346. package/dist/adapters/supabase/task-gateway.js +0 -450
  347. package/dist/adapters/supabase/task-gateway.js.map +0 -1
  348. package/dist/auth.js +0 -118
  349. package/dist/auth.js.map +0 -1
  350. package/dist/cli/commands/init/project-step.js +0 -105
  351. package/dist/cli/commands/init/project-step.js.map +0 -1
  352. package/dist/constants.js +0 -9
  353. package/dist/constants.js.map +0 -1
  354. package/dist/core/ports.js +0 -2
  355. package/dist/core/ports.js.map +0 -1
  356. package/dist/database.types.js +0 -11
  357. package/dist/database.types.js.map +0 -1
  358. package/dist/lib/active-project.js +0 -28
  359. package/dist/lib/active-project.js.map +0 -1
  360. package/dist/lib/autopull.js +0 -13
  361. package/dist/lib/autopull.js.map +0 -1
  362. package/dist/lib/client-configs.js.map +0 -1
  363. package/dist/lib/client-install.js +0 -40
  364. package/dist/lib/client-install.js.map +0 -1
  365. package/dist/lib/dependencies.js.map +0 -1
  366. package/dist/lib/dependency-install.js.map +0 -1
  367. package/dist/lib/exec-delegate.js.map +0 -1
  368. package/dist/lib/exec-engines.js.map +0 -1
  369. package/dist/lib/harness.js.map +0 -1
  370. package/dist/lib/hooks.js.map +0 -1
  371. package/dist/lib/patterns.js.map +0 -1
  372. package/dist/lib/plan-delegate.js.map +0 -1
  373. package/dist/lib/project-context.js +0 -151
  374. package/dist/lib/project-context.js.map +0 -1
  375. package/dist/lib/provision-apply.js.map +0 -1
  376. package/dist/lib/provision-collect.js.map +0 -1
  377. package/dist/lib/provision.js.map +0 -1
  378. package/dist/lib/require-config.js +0 -32
  379. package/dist/lib/require-config.js.map +0 -1
  380. package/dist/lib/rules.js.map +0 -1
  381. package/dist/lib/sections.js +0 -89
  382. package/dist/lib/sections.js.map +0 -1
  383. package/dist/lib/skill-serve.js.map +0 -1
  384. package/dist/lib/skills-cache.js.map +0 -1
  385. package/dist/lib/skills.js.map +0 -1
  386. package/dist/lib/targets.js.map +0 -1
  387. package/dist/lib/task-history.js +0 -15
  388. package/dist/lib/task-history.js.map +0 -1
  389. package/dist/lib/validate-plan-delegate.js.map +0 -1
  390. package/dist/session-factory.js +0 -19
  391. package/dist/session-factory.js.map +0 -1
  392. package/dist/spinner.js.map +0 -1
  393. package/dist/tools/comment-task.js +0 -72
  394. package/dist/tools/comment-task.js.map +0 -1
  395. package/dist/tools/create-task.js +0 -129
  396. package/dist/tools/create-task.js.map +0 -1
  397. package/dist/tools/end-allocation.js +0 -38
  398. package/dist/tools/end-allocation.js.map +0 -1
  399. package/dist/tools/end-task-allocation.js +0 -37
  400. package/dist/tools/end-task-allocation.js.map +0 -1
  401. package/dist/tools/get-active-allocation.js +0 -69
  402. package/dist/tools/get-active-allocation.js.map +0 -1
  403. package/dist/tools/get-context.js +0 -48
  404. package/dist/tools/get-context.js.map +0 -1
  405. package/dist/tools/get-task.js +0 -137
  406. package/dist/tools/get-task.js.map +0 -1
  407. package/dist/tools/list-my-allocations.js +0 -71
  408. package/dist/tools/list-my-allocations.js.map +0 -1
  409. package/dist/tools/list-projects.js +0 -38
  410. package/dist/tools/list-projects.js.map +0 -1
  411. package/dist/tools/list-tasks.js +0 -93
  412. package/dist/tools/list-tasks.js.map +0 -1
  413. package/dist/tools/move-task.js +0 -82
  414. package/dist/tools/move-task.js.map +0 -1
  415. package/dist/tools/record-delivery.js +0 -71
  416. package/dist/tools/record-delivery.js.map +0 -1
  417. package/dist/tools/set-project.js +0 -52
  418. package/dist/tools/set-project.js.map +0 -1
  419. package/dist/tools/start-allocation.js +0 -32
  420. package/dist/tools/start-allocation.js.map +0 -1
  421. package/dist/tools/start-task-allocation.js +0 -75
  422. package/dist/tools/start-task-allocation.js.map +0 -1
  423. package/dist/tools/update-task.js +0 -139
  424. package/dist/tools/update-task.js.map +0 -1
  425. /package/dist/{spinner.js → lib/spinner.js} +0 -0
package/package.json CHANGED
@@ -1,14 +1,19 @@
1
1
  {
2
2
  "name": "@nio-cli/cli",
3
- "version": "0.1.0",
4
- "description": "MCP server e CLI pra controlar o NOS a partir de assistentes de IA como Claude Code, Codex CLI e GitHub Copilot.",
3
+ "version": "0.3.0",
4
+ "description": "Orquestrador de ambientes de desenvolvimento: escolhe um perfil, responde um wizard e a CLI (com auxílio de IA via MCP) materializa toolchains, linguagens, frameworks, dotfiles e IDE.",
5
5
  "type": "module",
6
+ "license": "UNLICENSED",
6
7
  "bin": {
7
8
  "nio": "dist/cli.js",
8
- "nio-cli": "dist/mcp-server.js"
9
+ "nio-cli": "dist/mcp-server.js",
10
+ "nio-gateway": "dist/gateway/index.js",
11
+ "nio-lang": "dist/mcp-server-lang.js"
9
12
  },
10
13
  "files": [
11
14
  "dist",
15
+ "docker/docker-compose.yml",
16
+ "headroom/docker-compose.yml",
12
17
  "README.md"
13
18
  ],
14
19
  "engines": {
@@ -19,46 +24,65 @@
19
24
  },
20
25
  "repository": {
21
26
  "type": "git",
22
- "url": "git+https://github.com/hugoreiis12-png/NIO-CLI.git"
27
+ "url": "git+https://github.com/hugoreiis12-png/NIO-CLI-.git"
23
28
  },
24
- "homepage": "https://github.com/hugoreiis12-png/NIO-CLI#readme",
29
+ "homepage": "https://github.com/hugoreiis12-png/NIO-CLI-#readme",
25
30
  "bugs": {
26
- "url": "https://github.com/hugoreiis12-png/NIO-CLI/issues"
31
+ "url": "https://github.com/hugoreiis12-png/NIO-CLI-/issues"
27
32
  },
28
33
  "keywords": [
29
34
  "mcp",
30
35
  "model-context-protocol",
31
- "claude-code",
32
- "codex",
33
- "copilot",
34
- "nio",
35
- "nos"
36
+ "cli",
37
+ "developer-environment",
38
+ "dev-environment",
39
+ "environment-orchestration",
40
+ "opencode",
41
+ "ai-agent",
42
+ "tui",
43
+ "ink",
44
+ "postgres",
45
+ "nio"
36
46
  ],
37
47
  "scripts": {
38
- "build": "rm -rf dist && tsc && node --input-type=commonjs -e \"require('fs').cpSync('src/cli/copy','dist/cli/copy',{recursive:true})\" && chmod +x dist/cli.js dist/mcp-server.js",
48
+ "build": "rm -rf dist && tsc && node --input-type=commonjs -e \"require('fs').cpSync('src/cli/copy','dist/cli/copy',{recursive:true})\" && chmod +x dist/cli.js dist/mcp-server.js dist/gateway/index.js dist/mcp-server-lang.js",
39
49
  "gen:docs": "bun run scripts/gen-reference.ts",
50
+ "db:ping": "bun run scripts/db-ping.ts",
51
+ "dev:sms-echo": "bun run scripts/sms-echo.ts",
40
52
  "dev:cli": "bun run src/cli.ts",
41
53
  "dev:mcp": "bun run src/mcp-server.ts",
42
- "dev:gateway": "bun run src/gateway/server.ts",
43
- "gen:types": "supabase gen types typescript --project-id wdshvtlsjoegjvmpqobx > src/database.types.ts",
44
- "prepublishOnly": "bun run build"
54
+ "dev:gateway": "bun run src/gateway/index.ts",
55
+ "dev:lang": "bun run src/mcp-server-lang.ts",
56
+ "dev:kong": "docker compose -f kong/docker-compose.yml --env-file .env up",
57
+ "dev:docker": "docker compose -f docker/docker-compose.yml up",
58
+ "dev:headroom": "docker compose -f headroom/docker-compose.yml up",
59
+ "prepublishOnly": "npm run build"
45
60
  },
46
61
  "dependencies": {
47
62
  "@clack/prompts": "^1.6.0",
48
63
  "@modelcontextprotocol/sdk": "^1.0.4",
49
- "@supabase/supabase-js": "^2.49.1",
64
+ "@node-rs/argon2": "^2.1.0",
65
+ "@opencode-ai/sdk": "1.18.25",
50
66
  "adm-zip": "^0.5.17",
51
67
  "boxen": "^7.1.1",
52
68
  "chalk": "^5.6.2",
53
69
  "commander": "^12.1.0",
70
+ "ink": "^5.2.1",
71
+ "jsonwebtoken": "^9.0.3",
72
+ "pg": "^8.23.0",
73
+ "react": "^18.3.1",
54
74
  "smol-toml": "^1.6.1",
55
75
  "update-notifier": "^7.3.1",
56
76
  "zod": "^4.4.3"
57
77
  },
58
78
  "devDependencies": {
59
79
  "@types/adm-zip": "^0.5.8",
80
+ "@types/jsonwebtoken": "^9.0.10",
60
81
  "@types/node": "^22.10.5",
82
+ "@types/pg": "^8.23.1",
83
+ "@types/react": "^18.3",
61
84
  "@types/update-notifier": "^6.0.8",
85
+ "ink-testing-library": "^4",
62
86
  "typescript": "^5.4.5"
63
87
  }
64
88
  }
@@ -1,236 +0,0 @@
1
- /** Adaptador Supabase do `AllocationGateway` (ponto do dia + timers de task). */
2
- export function allocationGateway(db) {
3
- return {
4
- async startAllocation(userId) {
5
- const activeRes = await db
6
- .from('allocations')
7
- .select('id, start_time')
8
- .eq('user_id', userId)
9
- .is('end_time', null)
10
- .maybeSingle();
11
- if (activeRes.error)
12
- throw new Error(`Erro ao buscar alocação ativa: ${activeRes.error.message}`);
13
- if (activeRes.data)
14
- return { allocation: activeRes.data, alreadyActive: true };
15
- const insertRes = await db
16
- .from('allocations')
17
- .insert({ user_id: userId })
18
- .select('id, start_time')
19
- .single();
20
- if (insertRes.error)
21
- throw new Error(`Erro ao iniciar alocação: ${insertRes.error.message}`);
22
- return { allocation: insertRes.data, alreadyActive: false };
23
- },
24
- async endAllocation(userId) {
25
- const activeRes = await db
26
- .from('allocations')
27
- .select('id, start_time')
28
- .eq('user_id', userId)
29
- .is('end_time', null)
30
- .maybeSingle();
31
- if (activeRes.error)
32
- throw new Error(`Erro ao buscar alocação ativa: ${activeRes.error.message}`);
33
- if (!activeRes.data)
34
- return null;
35
- const allocationId = activeRes.data.id;
36
- const now = new Date().toISOString();
37
- // Fecha task_allocations abertas dessa allocation em paralelo com o close da allocation.
38
- const [taskCloseRes, allocCloseRes] = await Promise.all([
39
- db
40
- .from('task_allocations')
41
- .update({ end_time: now })
42
- .eq('allocation_id', allocationId)
43
- .is('end_time', null)
44
- .select('id'),
45
- db
46
- .from('allocations')
47
- .update({ end_time: now })
48
- .eq('id', allocationId)
49
- .select('id, start_time, end_time')
50
- .single(),
51
- ]);
52
- if (taskCloseRes.error)
53
- throw new Error(`Erro ao fechar task_allocations: ${taskCloseRes.error.message}`);
54
- if (allocCloseRes.error)
55
- throw new Error(`Erro ao encerrar alocação: ${allocCloseRes.error.message}`);
56
- return { closed: allocCloseRes.data, closedTaskAllocations: (taskCloseRes.data ?? []).length };
57
- },
58
- async endTaskAllocation(userId) {
59
- const activeRes = await db
60
- .from('task_allocations')
61
- .select('id, task_id, start_time')
62
- .eq('user_id', userId)
63
- .is('end_time', null)
64
- .maybeSingle();
65
- if (activeRes.error)
66
- throw new Error(`Erro ao buscar task_allocation ativa: ${activeRes.error.message}`);
67
- if (!activeRes.data)
68
- return null;
69
- const active = activeRes.data;
70
- const now = new Date().toISOString();
71
- const closeRes = await db
72
- .from('task_allocations')
73
- .update({ end_time: now })
74
- .eq('id', active.id)
75
- .select('id, start_time, end_time')
76
- .single();
77
- if (closeRes.error)
78
- throw new Error(`Erro ao parar task_allocation: ${closeRes.error.message}`);
79
- // Info da task é best-effort (não falha o close se a task sumiu).
80
- const taskRes = await db
81
- .from('tasks')
82
- .select('id, key, title')
83
- .eq('id', active.task_id)
84
- .maybeSingle();
85
- const task = taskRes.data ?? { id: active.task_id, key: null, title: null };
86
- return { closed: closeRes.data, task };
87
- },
88
- async listMyAllocations(userId, opts) {
89
- let query = db
90
- .from('allocations')
91
- .select('id, start_time, end_time, auto_closed')
92
- .eq('user_id', userId)
93
- .not('end_time', 'is', null);
94
- if (opts.from)
95
- query = query.gte('start_time', `${opts.from.slice(0, 10)}T00:00:00Z`);
96
- if (opts.to)
97
- query = query.lte('start_time', `${opts.to.slice(0, 10)}T23:59:59Z`);
98
- query = query
99
- .order('start_time', { ascending: false })
100
- .range(opts.offset, opts.offset + opts.limit - 1);
101
- const { data, error } = await query;
102
- if (error)
103
- throw new Error(`Erro ao listar alocações: ${error.message}`);
104
- const allocations = data ?? [];
105
- if (allocations.length === 0)
106
- return { allocations: [], segments: [] };
107
- const segRes = await db
108
- .from('task_allocations')
109
- .select('allocation_id, start_time, end_time')
110
- .in('allocation_id', allocations.map((a) => a.id));
111
- if (segRes.error)
112
- throw new Error(`Erro ao buscar segmentos: ${segRes.error.message}`);
113
- return { allocations, segments: segRes.data ?? [] };
114
- },
115
- async getActiveAllocation(userId) {
116
- const allocRes = await db
117
- .from('allocations')
118
- .select('id, start_time')
119
- .eq('user_id', userId)
120
- .is('end_time', null)
121
- .maybeSingle();
122
- if (allocRes.error)
123
- throw new Error(`Erro ao buscar alocação ativa: ${allocRes.error.message}`);
124
- if (!allocRes.data)
125
- return null;
126
- const allocation = allocRes.data;
127
- const segmentsRes = await db
128
- .from('task_allocations')
129
- .select('id, task_id, start_time, end_time, is_overtime')
130
- .eq('allocation_id', allocation.id)
131
- .order('start_time', { ascending: true });
132
- if (segmentsRes.error)
133
- throw new Error(`Erro ao buscar segmentos: ${segmentsRes.error.message}`);
134
- const segments = segmentsRes.data ?? [];
135
- const { tasksById, projectsById } = await loadTaskAndProjectRefs(db, Array.from(new Set(segments.map((s) => s.task_id))));
136
- return { allocation, segments, tasksById, projectsById };
137
- },
138
- async startTaskAllocation(taskId, projectId, userId, isOvertime) {
139
- const taskRes = await db
140
- .from('tasks')
141
- .select('id, key, title, project_id')
142
- .eq('id', taskId)
143
- .eq('project_id', projectId)
144
- .maybeSingle();
145
- if (taskRes.error)
146
- throw new Error(`Erro ao buscar tarefa: ${taskRes.error.message}`);
147
- if (!taskRes.data)
148
- return null;
149
- const task = taskRes.data;
150
- const now = new Date().toISOString();
151
- const alloc = await ensureActiveAllocation(db, userId);
152
- const previousClosed = await closePreviousTaskAllocation(db, userId, now);
153
- const insertRes = await db
154
- .from('task_allocations')
155
- .insert({ allocation_id: alloc.allocationId, task_id: taskId, user_id: userId, start_time: now, is_overtime: isOvertime })
156
- .select('id, start_time, is_overtime')
157
- .single();
158
- if (insertRes.error)
159
- throw new Error(`Erro ao iniciar task_allocation: ${insertRes.error.message}`);
160
- return {
161
- taskAllocation: insertRes.data,
162
- task: { id: task.id, key: task.key, title: task.title },
163
- previousClosed,
164
- allocationWasCreated: alloc.wasCreated,
165
- };
166
- },
167
- };
168
- }
169
- async function loadTaskAndProjectRefs(db, taskIds) {
170
- const tasksById = new Map();
171
- const projectsById = new Map();
172
- if (taskIds.length === 0)
173
- return { tasksById, projectsById };
174
- const tasksRes = await db.from('tasks').select('id, key, title, project_id').in('id', taskIds);
175
- if (tasksRes.error)
176
- throw new Error(`Erro ao buscar tarefas: ${tasksRes.error.message}`);
177
- for (const t of tasksRes.data ?? []) {
178
- tasksById.set(t.id, { key: t.key, title: t.title, project_id: t.project_id });
179
- }
180
- const projectIds = Array.from(new Set((tasksRes.data ?? []).map((t) => t.project_id)));
181
- if (projectIds.length > 0) {
182
- const projectsRes = await db.from('projects').select('id, name').in('id', projectIds);
183
- if (projectsRes.error)
184
- throw new Error(`Erro ao buscar projetos: ${projectsRes.error.message}`);
185
- for (const p of projectsRes.data ?? [])
186
- projectsById.set(p.id, p.name);
187
- }
188
- return { tasksById, projectsById };
189
- }
190
- /** Reaproveita a allocation (ponto) ativa do usuário ou cria uma. */
191
- async function ensureActiveAllocation(db, userId) {
192
- const activeAllocRes = await db
193
- .from('allocations')
194
- .select('id')
195
- .eq('user_id', userId)
196
- .is('end_time', null)
197
- .maybeSingle();
198
- if (activeAllocRes.error)
199
- throw new Error(`Erro ao buscar alocação ativa: ${activeAllocRes.error.message}`);
200
- if (activeAllocRes.data)
201
- return { allocationId: activeAllocRes.data.id, wasCreated: false };
202
- const newAlloc = await db.from('allocations').insert({ user_id: userId }).select('id').single();
203
- if (newAlloc.error)
204
- throw new Error(`Erro ao iniciar alocação: ${newAlloc.error.message}`);
205
- return { allocationId: newAlloc.data.id, wasCreated: true };
206
- }
207
- /** Fecha a task_allocation ativa anterior do usuário, se houver. */
208
- async function closePreviousTaskAllocation(db, userId, now) {
209
- const activeRes = await db
210
- .from('task_allocations')
211
- .select('id, task_id, start_time')
212
- .eq('user_id', userId)
213
- .is('end_time', null)
214
- .maybeSingle();
215
- if (activeRes.error)
216
- throw new Error(`Erro ao buscar task_allocation ativa: ${activeRes.error.message}`);
217
- if (!activeRes.data)
218
- return null;
219
- const prev = activeRes.data;
220
- const closeRes = await db
221
- .from('task_allocations')
222
- .update({ end_time: now })
223
- .eq('id', prev.id)
224
- .select('id, start_time, end_time')
225
- .single();
226
- if (closeRes.error)
227
- throw new Error(`Erro ao fechar task_allocation anterior: ${closeRes.error.message}`);
228
- // Key da task anterior é best-effort (retorno informativo).
229
- const prevTask = await db.from('tasks').select('id, key').eq('id', prev.task_id).maybeSingle();
230
- return {
231
- prev: { id: prev.id, task_id: prev.task_id },
232
- closed: { start_time: closeRes.data.start_time, end_time: closeRes.data.end_time },
233
- prevTaskKey: prevTask.data?.key ?? null,
234
- };
235
- }
236
- //# sourceMappingURL=allocation-gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"allocation-gateway.js","sourceRoot":"","sources":["../../../src/adapters/supabase/allocation-gateway.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { track as trackUsage } from '../../lib/telemetry.js';
2
- /** Adaptador Supabase do `AnalyticsGateway` (entregas + telemetria de uso). */
3
- export function analyticsGateway(db) {
4
- return {
5
- async recordDelivery(row) {
6
- // `deliveries` ainda não está nos types gerados (rode `gen:types` após a migration)
7
- // — usamos o client destipado só pra este insert.
8
- const raw = db;
9
- const { error } = await raw.from('deliveries').insert(row);
10
- if (error)
11
- throw new Error(`Erro ao registrar entrega: ${error.message}`);
12
- },
13
- track(event) {
14
- trackUsage(db, event);
15
- },
16
- };
17
- }
18
- //# sourceMappingURL=analytics-gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-gateway.js","sourceRoot":"","sources":["../../../src/adapters/supabase/analytics-gateway.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AAE9E,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,GAAkB;YACrC,oFAAoF;YACpF,kDAAkD;YAClD,MAAM,GAAG,GAAG,EAA+B,CAAC;YAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,KAAiB;YACrB,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,96 +0,0 @@
1
- import { createClient } from '@supabase/supabase-js';
2
- import { SUPABASE_URL, SUPABASE_ANON_KEY } from '../../constants.js';
3
- import { loadCredentials, exchangePatForJwt } from '../../auth.js';
4
- import { brand } from '../../brand.js';
5
- /**
6
- * Lê o `exp` (epoch em segundos) do payload de um JWT. Retorna 0 se não der pra
7
- * parsear — o chamador trata 0 como "sem validade conhecida" e cai no fallback.
8
- */
9
- function jwtExp(token) {
10
- try {
11
- const payload = token.split('.')[1];
12
- if (!payload)
13
- return 0;
14
- const json = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
15
- return typeof json.exp === 'number' ? json.exp : 0;
16
- }
17
- catch {
18
- return 0;
19
- }
20
- }
21
- /** Validade absoluta (epoch em s) da troca: usa o `exp` do JWT; se ilegível, deriva do `expires_in`. */
22
- function computeExp(exchange) {
23
- const fromJwt = jwtExp(exchange.access_token);
24
- if (fromJwt > 0)
25
- return fromJwt;
26
- return Math.floor(Date.now() / 1000) + (exchange.expires_in ?? 0);
27
- }
28
- /**
29
- * Carrega PAT, troca por JWT e retorna client Supabase autenticado.
30
- *
31
- * O JWT do mcp-token-exchange tem `exp` fixo e o client não tem refresh
32
- * (autoRefreshToken:false). Chumbar o token num header estático fazia toda chamada
33
- * falhar com "JWT expired" depois do exp, até reconectar o MCP (que reinicia o
34
- * processo → nova troca). Em vez disso injetamos um JWT fresco por request via fetch
35
- * custom, re-trocando o PAT (durável e re-trocável) de duas formas:
36
- * - **proativa**: quando falta <300s pro exp (margem larga que absorve skew de relógio);
37
- * - **reativa (one-shot)**: se o servidor devolver 401 (ex.: skew mandou um JWT já
38
- * expirado), força uma troca fresca e repete a MESMA request UMA vez.
39
- * Assim a sessão dura indefinidamente sem reconnect, mesmo com relógio dessincronizado.
40
- *
41
- * Throw se não há PAT salvo, ou se a troca inicial falhar.
42
- */
43
- export async function createAuthenticatedClient() {
44
- const creds = await loadCredentials();
45
- if (!creds) {
46
- throw new Error(`Nenhum token encontrado. Rode \`${brand.name} login <PAT>\` antes.`);
47
- }
48
- const { pat } = creds;
49
- const first = await exchangePatForJwt(pat);
50
- let token = first.access_token;
51
- let exp = computeExp(first);
52
- // Re-troca o PAT por um JWT novo, deduplicando trocas concorrentes numa única
53
- // promise pra não disparar N requests ao token-exchange quando várias tools
54
- // chamam junto. Usado tanto pela checagem proativa quanto pelo retry reativo.
55
- let refreshing = null;
56
- function refreshOnce() {
57
- if (!refreshing) {
58
- refreshing = (async () => {
59
- const fresh = await exchangePatForJwt(pat);
60
- token = fresh.access_token;
61
- exp = computeExp(fresh);
62
- })().finally(() => {
63
- refreshing = null;
64
- });
65
- }
66
- return refreshing;
67
- }
68
- // Proativo: refresca quando falta <300s pro exp (margem larga pra absorver skew).
69
- async function validToken() {
70
- const now = Math.floor(Date.now() / 1000);
71
- if (exp - 300 > now)
72
- return token;
73
- await refreshOnce();
74
- return token;
75
- }
76
- const authFetch = async (input, init, retried = false) => {
77
- const headers = new Headers(init?.headers);
78
- headers.set('Authorization', `Bearer ${await validToken()}`);
79
- const res = await fetch(input, { ...init, headers });
80
- // Reativo (one-shot): se o servidor rejeita o token (401) — ex.: skew mandou um
81
- // JWT já expirado — força uma troca fresca e repete a MESMA request uma vez.
82
- if (res.status === 401 && !retried) {
83
- await refreshOnce();
84
- return authFetch(input, init, true);
85
- }
86
- return res;
87
- };
88
- const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
89
- auth: { persistSession: false, autoRefreshToken: false },
90
- // Cast: nosso wrapper não implementa `fetch.preconnect` (que o supabase-js
91
- // nunca chama), mas o tipo `Fetch` é `typeof fetch` e exige a propriedade.
92
- global: { fetch: authFetch },
93
- });
94
- return { supabase, user: first.user };
95
- }
96
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/supabase/client.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { fetchProjectContext, listMemberProjects } from '../../lib/project-context.js';
2
- /** Adaptador Supabase do `ContextGateway` (projeto/contexto/membros). */
3
- export function contextGateway(db) {
4
- return {
5
- getContext(config, user) {
6
- return fetchProjectContext(db, config, user);
7
- },
8
- listProjects(userId) {
9
- return listMemberProjects(db, userId);
10
- },
11
- async findProjectById(projectId) {
12
- const { data, error } = await db
13
- .from('projects')
14
- .select('id, name')
15
- .eq('id', projectId)
16
- .maybeSingle();
17
- if (error)
18
- throw new Error(`Erro ao validar projeto: ${error.message}`);
19
- return data ?? null;
20
- },
21
- };
22
- }
23
- //# sourceMappingURL=context-gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-gateway.js","sourceRoot":"","sources":["../../../src/adapters/supabase/context-gateway.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,EAAY;IACzC,OAAO;QACL,UAAU,CAAC,MAAqB,EAAE,IAAU;YAC1C,OAAO,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,YAAY,CAAC,MAAc;YACzB,OAAO,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,SAAiB;YACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;iBAC7B,IAAI,CAAC,UAAU,CAAC;iBAChB,MAAM,CAAC,UAAU,CAAC;iBAClB,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;iBACnB,WAAW,EAAE,CAAC;YACjB,IAAI,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,18 +0,0 @@
1
- import { contextGateway } from './context-gateway.js';
2
- import { taskGateway } from './task-gateway.js';
3
- import { allocationGateway } from './allocation-gateway.js';
4
- import { analyticsGateway } from './analytics-gateway.js';
5
- /**
6
- * Adaptador Supabase da `Gateway`, composto pelos gateways de domínio. Toda query
7
- * PostgREST vive nos módulos `*-gateway.ts` — este arquivo só junta as peças.
8
- * Cada método lança `Error` em falha de backend; a tool traduz para `errorResult`.
9
- */
10
- export function createSupabaseGateway(db) {
11
- return {
12
- ...contextGateway(db),
13
- ...taskGateway(db),
14
- ...allocationGateway(db),
15
- ...analyticsGateway(db),
16
- };
17
- }
18
- //# sourceMappingURL=gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/adapters/supabase/gateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAY;IAChD,OAAO;QACL,GAAG,cAAc,CAAC,EAAE,CAAC;QACrB,GAAG,WAAW,CAAC,EAAE,CAAC;QAClB,GAAG,iBAAiB,CAAC,EAAE,CAAC;QACxB,GAAG,gBAAgB,CAAC,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC"}