@xhulz/nina 0.51.0 → 0.53.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 (278) hide show
  1. package/README.md +7 -2
  2. package/bin/nina.mjs +29 -5
  3. package/package.json +1 -1
  4. package/releases/0.52.0/core/GAPS.md +125 -0
  5. package/releases/0.52.0/core/answered.json +68 -0
  6. package/releases/0.52.0/core/defaults/tree/.claude/agents/architect.md +1 -0
  7. package/releases/0.52.0/core/defaults/tree/.claude/agents/dba.md +3 -0
  8. package/releases/0.52.0/core/defaults/tree/.claude/agents/devops.md +1 -0
  9. package/releases/0.52.0/core/defaults/tree/.claude/agents/implementer.md +1 -0
  10. package/releases/0.52.0/core/defaults/tree/.claude/agents/integration-tester.md +3 -0
  11. package/releases/0.52.0/core/defaults/tree/.claude/agents/qa.md +7 -0
  12. package/releases/0.52.0/core/defaults/tree/.claude/agents/reviewer.md +3 -0
  13. package/releases/0.52.0/core/defaults/tree/.claude/agents/secops.md +3 -0
  14. package/releases/0.52.0/core/defaults/tree/.claude/agents/solidity-auditor.md +3 -0
  15. package/releases/0.52.0/core/defaults/tree/.claude/agents/solidity-dev.md +3 -0
  16. package/releases/0.52.0/core/tree/.claude/agents/architect.md +129 -0
  17. package/releases/0.52.0/core/tree/.claude/agents/dba.md +117 -0
  18. package/releases/0.52.0/core/tree/.claude/agents/devops.md +118 -0
  19. package/releases/0.52.0/core/tree/.claude/agents/implementer.md +163 -0
  20. package/releases/0.52.0/core/tree/.claude/agents/integration-tester.md +168 -0
  21. package/releases/0.52.0/core/tree/.claude/agents/planner.md +132 -0
  22. package/releases/0.52.0/core/tree/.claude/agents/qa.md +150 -0
  23. package/releases/0.52.0/core/tree/.claude/agents/reviewer.md +184 -0
  24. package/releases/0.52.0/core/tree/.claude/agents/secops.md +120 -0
  25. package/releases/0.52.0/core/tree/.claude/agents/solidity-auditor.md +126 -0
  26. package/releases/0.52.0/core/tree/.claude/agents/solidity-dev.md +123 -0
  27. package/releases/0.52.0/core/tree/.claude/agents-overview.md +64 -0
  28. package/releases/0.52.0/core/tree/.claude/frontend.md +10 -0
  29. package/releases/0.52.0/core/tree/.claude/graph.md +75 -0
  30. package/releases/0.52.0/core/tree/.claude/patterns.md +251 -0
  31. package/releases/0.52.0/core/tree/.claude/pills/README.md +150 -0
  32. package/releases/0.52.0/core/tree/.claude/pipeline.md +101 -0
  33. package/releases/0.52.0/core/tree/.claude/retrieval.md +103 -0
  34. package/releases/0.52.0/core/tree/.claude/router.md +202 -0
  35. package/releases/0.52.0/core/tree/.claude/templates/integration.md +46 -0
  36. package/releases/0.52.0/core/tree/CLAUDE.md +164 -0
  37. package/releases/0.52.0/core/tree/scripts/cost-watch.mjs +25 -0
  38. package/releases/0.52.0/core/tree/scripts/edit-guard.mjs +24 -0
  39. package/releases/0.52.0/core/tree/scripts/harness-check.mjs +71 -0
  40. package/releases/0.52.0/core/tree/scripts/loop-gate.mjs +19 -0
  41. package/releases/0.52.0/core/vocabulary.json +13 -0
  42. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents/architect.md +5 -0
  43. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents/devops.md +5 -0
  44. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents/reviewer.md +5 -0
  45. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents/solidity-auditor.md +18 -0
  46. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents/solidity-dev.md +16 -0
  47. package/releases/0.52.0/surfaces/blockchain/tree/.claude/agents-overview.md +6 -0
  48. package/releases/0.52.0/surfaces/blockchain/tree/.claude/graph.md +11 -0
  49. package/releases/0.52.0/surfaces/blockchain/tree/.claude/router.md +6 -0
  50. package/releases/0.52.0/surfaces/blockchain/tree/CLAUDE.md +12 -0
  51. package/releases/0.52.0/surfaces/d1/tree/.claude/agents/dba.md +15 -0
  52. package/releases/0.52.0/surfaces/d1/tree/.claude/agents/devops.md +2 -0
  53. package/releases/0.52.0/surfaces/d1/tree/.claude/agents/implementer.md +2 -0
  54. package/releases/0.52.0/surfaces/d1/tree/.claude/patterns.md +8 -0
  55. package/releases/0.52.0/surfaces/d1/tree/CLAUDE.md +2 -0
  56. package/releases/0.52.0/surfaces/db/tree/.claude/agents/architect.md +5 -0
  57. package/releases/0.52.0/surfaces/db/tree/.claude/agents/dba.md +54 -0
  58. package/releases/0.52.0/surfaces/db/tree/.claude/agents/devops.md +5 -0
  59. package/releases/0.52.0/surfaces/db/tree/.claude/agents/implementer.md +2 -0
  60. package/releases/0.52.0/surfaces/db/tree/.claude/agents/integration-tester.md +10 -0
  61. package/releases/0.52.0/surfaces/db/tree/.claude/agents/planner.md +2 -0
  62. package/releases/0.52.0/surfaces/db/tree/.claude/agents/reviewer.md +22 -0
  63. package/releases/0.52.0/surfaces/db/tree/.claude/agents/secops.md +2 -0
  64. package/releases/0.52.0/surfaces/db/tree/.claude/agents-overview.md +5 -0
  65. package/releases/0.52.0/surfaces/db/tree/.claude/graph.md +8 -0
  66. package/releases/0.52.0/surfaces/db/tree/.claude/patterns.md +22 -0
  67. package/releases/0.52.0/surfaces/db/tree/.claude/pipeline.md +13 -0
  68. package/releases/0.52.0/surfaces/db/tree/.claude/retrieval.md +5 -0
  69. package/releases/0.52.0/surfaces/db/tree/.claude/router.md +4 -0
  70. package/releases/0.52.0/surfaces/db/tree/CLAUDE.md +17 -0
  71. package/releases/0.52.0/surfaces/drizzle/tree/.claude/agents/dba.md +9 -0
  72. package/releases/0.52.0/surfaces/drizzle/tree/.claude/agents/devops.md +5 -0
  73. package/releases/0.52.0/surfaces/drizzle/tree/.claude/agents/implementer.md +2 -0
  74. package/releases/0.52.0/surfaces/drizzle/tree/.claude/patterns.md +7 -0
  75. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/architect.md +14 -0
  76. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/dba.md +2 -0
  77. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/devops.md +29 -0
  78. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/implementer.md +14 -0
  79. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/integration-tester.md +11 -0
  80. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/qa.md +3 -0
  81. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/reviewer.md +8 -0
  82. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/agents/secops.md +8 -0
  83. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/patterns.md +17 -0
  84. package/releases/0.52.0/surfaces/edge-cf/tree/.claude/retrieval.md +8 -0
  85. package/releases/0.52.0/surfaces/edge-cf/tree/CLAUDE.md +27 -0
  86. package/releases/0.52.0/surfaces/frontend/tree/.claude/agents/architect.md +20 -0
  87. package/releases/0.52.0/surfaces/frontend/tree/.claude/agents/devops.md +28 -0
  88. package/releases/0.52.0/surfaces/frontend/tree/.claude/agents/implementer.md +25 -0
  89. package/releases/0.52.0/surfaces/frontend/tree/.claude/agents/qa.md +17 -0
  90. package/releases/0.52.0/surfaces/frontend/tree/.claude/agents/reviewer.md +56 -0
  91. package/releases/0.52.0/surfaces/frontend/tree/.claude/patterns.md +8 -0
  92. package/releases/0.52.0/surfaces/frontend/tree/.claude/retrieval.md +2 -0
  93. package/releases/0.52.0/surfaces/frontend/tree/.claude/router.md +14 -0
  94. package/releases/0.52.0/surfaces/frontend/tree/CLAUDE.md +5 -0
  95. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/architect.md +16 -0
  96. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/implementer.md +12 -0
  97. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/integration-tester.md +20 -0
  98. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/planner.md +2 -0
  99. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/reviewer.md +21 -0
  100. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents/secops.md +2 -0
  101. package/releases/0.52.0/surfaces/integrations/tree/.claude/agents-overview.md +8 -0
  102. package/releases/0.52.0/surfaces/integrations/tree/.claude/graph.md +10 -0
  103. package/releases/0.52.0/surfaces/integrations/tree/.claude/patterns.md +38 -0
  104. package/releases/0.52.0/surfaces/integrations/tree/.claude/pipeline.md +16 -0
  105. package/releases/0.52.0/surfaces/integrations/tree/.claude/retrieval.md +16 -0
  106. package/releases/0.52.0/surfaces/integrations/tree/.claude/router.md +6 -0
  107. package/releases/0.52.0/surfaces/integrations/tree/CLAUDE.md +17 -0
  108. package/releases/0.52.0/surfaces/money/tree/.claude/agents/architect.md +12 -0
  109. package/releases/0.52.0/surfaces/money/tree/.claude/agents/dba.md +14 -0
  110. package/releases/0.52.0/surfaces/money/tree/.claude/agents/implementer.md +11 -0
  111. package/releases/0.52.0/surfaces/money/tree/.claude/agents/integration-tester.md +3 -0
  112. package/releases/0.52.0/surfaces/money/tree/.claude/agents/reviewer.md +23 -0
  113. package/releases/0.52.0/surfaces/money/tree/.claude/agents/secops.md +5 -0
  114. package/releases/0.52.0/surfaces/money/tree/.claude/agents/solidity-auditor.md +4 -0
  115. package/releases/0.52.0/surfaces/money/tree/.claude/agents/solidity-dev.md +4 -0
  116. package/releases/0.52.0/surfaces/money/tree/.claude/graph.md +2 -0
  117. package/releases/0.52.0/surfaces/money/tree/.claude/patterns.md +49 -0
  118. package/releases/0.52.0/surfaces/money/tree/.claude/pipeline.md +2 -0
  119. package/releases/0.52.0/surfaces/money/tree/.claude/retrieval.md +2 -0
  120. package/releases/0.52.0/surfaces/money/tree/CLAUDE.md +11 -0
  121. package/releases/0.52.0/surfaces/pii/tree/.claude/agents/dba.md +2 -0
  122. package/releases/0.52.0/surfaces/pii/tree/.claude/agents/devops.md +8 -0
  123. package/releases/0.52.0/surfaces/pii/tree/.claude/agents/reviewer.md +8 -0
  124. package/releases/0.52.0/surfaces/pii/tree/.claude/agents/secops.md +2 -0
  125. package/releases/0.52.0/surfaces/pii/tree/.claude/agents/solidity-auditor.md +5 -0
  126. package/releases/0.52.0/surfaces/pii/tree/CLAUDE.md +5 -0
  127. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/architect.md +2 -0
  128. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/dba.md +42 -0
  129. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/devops.md +11 -0
  130. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/implementer.md +2 -0
  131. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/integration-tester.md +2 -0
  132. package/releases/0.52.0/surfaces/prisma/tree/.claude/agents/reviewer.md +2 -0
  133. package/releases/0.52.0/surfaces/prisma/tree/.claude/patterns.md +15 -0
  134. package/releases/0.52.0/surfaces/prisma/tree/CLAUDE.md +5 -0
  135. package/releases/0.53.0/core/GAPS.md +125 -0
  136. package/releases/0.53.0/core/answered.json +68 -0
  137. package/releases/0.53.0/core/defaults/tree/.claude/agents/architect.md +1 -0
  138. package/releases/0.53.0/core/defaults/tree/.claude/agents/dba.md +3 -0
  139. package/releases/0.53.0/core/defaults/tree/.claude/agents/devops.md +1 -0
  140. package/releases/0.53.0/core/defaults/tree/.claude/agents/implementer.md +1 -0
  141. package/releases/0.53.0/core/defaults/tree/.claude/agents/integration-tester.md +3 -0
  142. package/releases/0.53.0/core/defaults/tree/.claude/agents/qa.md +7 -0
  143. package/releases/0.53.0/core/defaults/tree/.claude/agents/reviewer.md +3 -0
  144. package/releases/0.53.0/core/defaults/tree/.claude/agents/secops.md +3 -0
  145. package/releases/0.53.0/core/defaults/tree/.claude/agents/solidity-auditor.md +3 -0
  146. package/releases/0.53.0/core/defaults/tree/.claude/agents/solidity-dev.md +3 -0
  147. package/releases/0.53.0/core/tree/.claude/agents/architect.md +129 -0
  148. package/releases/0.53.0/core/tree/.claude/agents/dba.md +117 -0
  149. package/releases/0.53.0/core/tree/.claude/agents/devops.md +118 -0
  150. package/releases/0.53.0/core/tree/.claude/agents/implementer.md +163 -0
  151. package/releases/0.53.0/core/tree/.claude/agents/integration-tester.md +168 -0
  152. package/releases/0.53.0/core/tree/.claude/agents/planner.md +132 -0
  153. package/releases/0.53.0/core/tree/.claude/agents/qa.md +150 -0
  154. package/releases/0.53.0/core/tree/.claude/agents/reviewer.md +184 -0
  155. package/releases/0.53.0/core/tree/.claude/agents/secops.md +120 -0
  156. package/releases/0.53.0/core/tree/.claude/agents/solidity-auditor.md +126 -0
  157. package/releases/0.53.0/core/tree/.claude/agents/solidity-dev.md +123 -0
  158. package/releases/0.53.0/core/tree/.claude/agents-overview.md +64 -0
  159. package/releases/0.53.0/core/tree/.claude/frontend.md +10 -0
  160. package/releases/0.53.0/core/tree/.claude/graph.md +75 -0
  161. package/releases/0.53.0/core/tree/.claude/patterns.md +251 -0
  162. package/releases/0.53.0/core/tree/.claude/pills/README.md +150 -0
  163. package/releases/0.53.0/core/tree/.claude/pipeline.md +101 -0
  164. package/releases/0.53.0/core/tree/.claude/retrieval.md +103 -0
  165. package/releases/0.53.0/core/tree/.claude/router.md +202 -0
  166. package/releases/0.53.0/core/tree/.claude/templates/integration.md +46 -0
  167. package/releases/0.53.0/core/tree/CLAUDE.md +164 -0
  168. package/releases/0.53.0/core/tree/scripts/cost-watch.mjs +25 -0
  169. package/releases/0.53.0/core/tree/scripts/edit-guard.mjs +24 -0
  170. package/releases/0.53.0/core/tree/scripts/harness-check.mjs +71 -0
  171. package/releases/0.53.0/core/tree/scripts/loop-gate.mjs +19 -0
  172. package/releases/0.53.0/core/vocabulary.json +13 -0
  173. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents/architect.md +5 -0
  174. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents/devops.md +5 -0
  175. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents/reviewer.md +5 -0
  176. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents/solidity-auditor.md +18 -0
  177. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents/solidity-dev.md +16 -0
  178. package/releases/0.53.0/surfaces/blockchain/tree/.claude/agents-overview.md +6 -0
  179. package/releases/0.53.0/surfaces/blockchain/tree/.claude/graph.md +11 -0
  180. package/releases/0.53.0/surfaces/blockchain/tree/.claude/router.md +6 -0
  181. package/releases/0.53.0/surfaces/blockchain/tree/CLAUDE.md +12 -0
  182. package/releases/0.53.0/surfaces/d1/tree/.claude/agents/dba.md +15 -0
  183. package/releases/0.53.0/surfaces/d1/tree/.claude/agents/devops.md +2 -0
  184. package/releases/0.53.0/surfaces/d1/tree/.claude/agents/implementer.md +2 -0
  185. package/releases/0.53.0/surfaces/d1/tree/.claude/patterns.md +8 -0
  186. package/releases/0.53.0/surfaces/d1/tree/CLAUDE.md +2 -0
  187. package/releases/0.53.0/surfaces/db/tree/.claude/agents/architect.md +5 -0
  188. package/releases/0.53.0/surfaces/db/tree/.claude/agents/dba.md +54 -0
  189. package/releases/0.53.0/surfaces/db/tree/.claude/agents/devops.md +5 -0
  190. package/releases/0.53.0/surfaces/db/tree/.claude/agents/implementer.md +2 -0
  191. package/releases/0.53.0/surfaces/db/tree/.claude/agents/integration-tester.md +10 -0
  192. package/releases/0.53.0/surfaces/db/tree/.claude/agents/planner.md +2 -0
  193. package/releases/0.53.0/surfaces/db/tree/.claude/agents/reviewer.md +22 -0
  194. package/releases/0.53.0/surfaces/db/tree/.claude/agents/secops.md +2 -0
  195. package/releases/0.53.0/surfaces/db/tree/.claude/agents-overview.md +5 -0
  196. package/releases/0.53.0/surfaces/db/tree/.claude/graph.md +8 -0
  197. package/releases/0.53.0/surfaces/db/tree/.claude/patterns.md +22 -0
  198. package/releases/0.53.0/surfaces/db/tree/.claude/pipeline.md +13 -0
  199. package/releases/0.53.0/surfaces/db/tree/.claude/retrieval.md +5 -0
  200. package/releases/0.53.0/surfaces/db/tree/.claude/router.md +4 -0
  201. package/releases/0.53.0/surfaces/db/tree/CLAUDE.md +17 -0
  202. package/releases/0.53.0/surfaces/drizzle/tree/.claude/agents/dba.md +9 -0
  203. package/releases/0.53.0/surfaces/drizzle/tree/.claude/agents/devops.md +5 -0
  204. package/releases/0.53.0/surfaces/drizzle/tree/.claude/agents/implementer.md +2 -0
  205. package/releases/0.53.0/surfaces/drizzle/tree/.claude/patterns.md +7 -0
  206. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/architect.md +14 -0
  207. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/dba.md +2 -0
  208. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/devops.md +29 -0
  209. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/implementer.md +14 -0
  210. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/integration-tester.md +11 -0
  211. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/qa.md +3 -0
  212. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/reviewer.md +8 -0
  213. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/agents/secops.md +8 -0
  214. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/patterns.md +17 -0
  215. package/releases/0.53.0/surfaces/edge-cf/tree/.claude/retrieval.md +8 -0
  216. package/releases/0.53.0/surfaces/edge-cf/tree/CLAUDE.md +27 -0
  217. package/releases/0.53.0/surfaces/frontend/tree/.claude/agents/architect.md +20 -0
  218. package/releases/0.53.0/surfaces/frontend/tree/.claude/agents/devops.md +28 -0
  219. package/releases/0.53.0/surfaces/frontend/tree/.claude/agents/implementer.md +25 -0
  220. package/releases/0.53.0/surfaces/frontend/tree/.claude/agents/qa.md +17 -0
  221. package/releases/0.53.0/surfaces/frontend/tree/.claude/agents/reviewer.md +56 -0
  222. package/releases/0.53.0/surfaces/frontend/tree/.claude/patterns.md +8 -0
  223. package/releases/0.53.0/surfaces/frontend/tree/.claude/retrieval.md +2 -0
  224. package/releases/0.53.0/surfaces/frontend/tree/.claude/router.md +14 -0
  225. package/releases/0.53.0/surfaces/frontend/tree/CLAUDE.md +5 -0
  226. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/architect.md +16 -0
  227. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/implementer.md +12 -0
  228. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/integration-tester.md +20 -0
  229. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/planner.md +2 -0
  230. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/reviewer.md +21 -0
  231. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents/secops.md +2 -0
  232. package/releases/0.53.0/surfaces/integrations/tree/.claude/agents-overview.md +8 -0
  233. package/releases/0.53.0/surfaces/integrations/tree/.claude/graph.md +10 -0
  234. package/releases/0.53.0/surfaces/integrations/tree/.claude/patterns.md +38 -0
  235. package/releases/0.53.0/surfaces/integrations/tree/.claude/pipeline.md +16 -0
  236. package/releases/0.53.0/surfaces/integrations/tree/.claude/retrieval.md +16 -0
  237. package/releases/0.53.0/surfaces/integrations/tree/.claude/router.md +6 -0
  238. package/releases/0.53.0/surfaces/integrations/tree/CLAUDE.md +17 -0
  239. package/releases/0.53.0/surfaces/money/tree/.claude/agents/architect.md +12 -0
  240. package/releases/0.53.0/surfaces/money/tree/.claude/agents/dba.md +14 -0
  241. package/releases/0.53.0/surfaces/money/tree/.claude/agents/implementer.md +11 -0
  242. package/releases/0.53.0/surfaces/money/tree/.claude/agents/integration-tester.md +3 -0
  243. package/releases/0.53.0/surfaces/money/tree/.claude/agents/reviewer.md +23 -0
  244. package/releases/0.53.0/surfaces/money/tree/.claude/agents/secops.md +5 -0
  245. package/releases/0.53.0/surfaces/money/tree/.claude/agents/solidity-auditor.md +4 -0
  246. package/releases/0.53.0/surfaces/money/tree/.claude/agents/solidity-dev.md +4 -0
  247. package/releases/0.53.0/surfaces/money/tree/.claude/graph.md +2 -0
  248. package/releases/0.53.0/surfaces/money/tree/.claude/patterns.md +49 -0
  249. package/releases/0.53.0/surfaces/money/tree/.claude/pipeline.md +2 -0
  250. package/releases/0.53.0/surfaces/money/tree/.claude/retrieval.md +2 -0
  251. package/releases/0.53.0/surfaces/money/tree/CLAUDE.md +11 -0
  252. package/releases/0.53.0/surfaces/pii/tree/.claude/agents/dba.md +2 -0
  253. package/releases/0.53.0/surfaces/pii/tree/.claude/agents/devops.md +8 -0
  254. package/releases/0.53.0/surfaces/pii/tree/.claude/agents/reviewer.md +8 -0
  255. package/releases/0.53.0/surfaces/pii/tree/.claude/agents/secops.md +2 -0
  256. package/releases/0.53.0/surfaces/pii/tree/.claude/agents/solidity-auditor.md +5 -0
  257. package/releases/0.53.0/surfaces/pii/tree/CLAUDE.md +5 -0
  258. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/architect.md +2 -0
  259. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/dba.md +42 -0
  260. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/devops.md +11 -0
  261. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/implementer.md +2 -0
  262. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/integration-tester.md +2 -0
  263. package/releases/0.53.0/surfaces/prisma/tree/.claude/agents/reviewer.md +2 -0
  264. package/releases/0.53.0/surfaces/prisma/tree/.claude/patterns.md +15 -0
  265. package/releases/0.53.0/surfaces/prisma/tree/CLAUDE.md +5 -0
  266. package/src/commands/dashboard.mjs +33 -0
  267. package/src/commands/learn.mjs +51 -19
  268. package/src/commands/pills.mjs +55 -28
  269. package/src/commands/pipeline.mjs +62 -33
  270. package/src/commands/runs.mjs +14 -3
  271. package/src/commands/stats.mjs +227 -115
  272. package/src/dashboard.html +328 -0
  273. package/src/dashboard.mjs +185 -0
  274. package/src/gate.mjs +14 -2
  275. package/src/office.html +142 -4
  276. package/src/office.mjs +192 -104
  277. package/src/serve.mjs +108 -0
  278. package/src/store.mjs +13 -1
package/src/serve.mjs ADDED
@@ -0,0 +1,108 @@
1
+ /**
2
+ * What every page NINA serves on this machine shares: the loopback address, the check that refuses a request named
3
+ * for another host, a port asked for and any free one when it is taken, and the system's opener for `--open`.
4
+ *
5
+ * The office (`nina pipeline --view`) came first and held all of it; the dashboard (`nina dashboard`) serves the
6
+ * office too, and a second copy of the host check is the kind of fact this repository has shipped drifting before.
7
+ */
8
+
9
+ import { spawn } from 'node:child_process';
10
+
11
+ /**
12
+ * Whether a request names this machine for itself: a page elsewhere that rebinds its domain to the loopback address
13
+ * reaches the port, and is refused. Any port, since a forwarded one — an editor's port forwarding, a container's —
14
+ * reaches this one under another number.
15
+ *
16
+ * @param {import('node:http').IncomingMessage} req
17
+ * @returns {boolean}
18
+ */
19
+ export const fromHere = (req) => /^(127\.0\.0\.1|localhost|\[::1\])(:\d+)?$/i.test(String(req.headers.host ?? ''));
20
+
21
+ /**
22
+ * Answers a request for another host with 403, and says whether it did.
23
+ *
24
+ * @param {import('node:http').IncomingMessage} req
25
+ * @param {import('node:http').ServerResponse} res
26
+ * @returns {boolean} True when the request was refused.
27
+ */
28
+ export function refuseElsewhere(req, res) {
29
+ if (fromHere(req)) return false;
30
+ res.writeHead(403, { 'content-type': 'text/plain' });
31
+ res.end('not from here\n');
32
+ return true;
33
+ }
34
+
35
+ /**
36
+ * Listens on the loopback address: on `port`, or on any free one when it is taken. Port 0 asks for any from the start.
37
+ *
38
+ * @param {import('node:http').Server} server
39
+ * @param {number} port
40
+ * @returns {Promise<string>} The address served.
41
+ */
42
+ export async function listenHere(server, port) {
43
+ const listen = (p) =>
44
+ new Promise((resolveListen, reject) => {
45
+ const onError = (error) => {
46
+ server.off('listening', onListening);
47
+ reject(error);
48
+ };
49
+ const onListening = () => {
50
+ server.off('error', onError);
51
+ resolveListen();
52
+ };
53
+ server.once('error', onError);
54
+ server.once('listening', onListening);
55
+ server.listen(p, '127.0.0.1');
56
+ });
57
+ try {
58
+ await listen(port);
59
+ } catch (error) {
60
+ if (error?.code !== 'EADDRINUSE' || port === 0) throw error;
61
+ await listen(0);
62
+ }
63
+ return `http://127.0.0.1:${server.address().port}`;
64
+ }
65
+
66
+ /**
67
+ * Hands an address to the system's opener. One that is not there fails at once, and one with no display to open on
68
+ * exits with an error soon after; one still running after two seconds is taken to have opened it. Windows' explorer
69
+ * answers 1 even when it opened the page.
70
+ *
71
+ * @param {string} url
72
+ * @returns {Promise<boolean>} Whether the browser was opened.
73
+ */
74
+ export function openInBrowser(url) {
75
+ const opener = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'explorer' : 'xdg-open';
76
+ return new Promise((resolveOpen) => {
77
+ let child;
78
+ try {
79
+ child = spawn(opener, [url], { stdio: 'ignore', detached: true });
80
+ } catch {
81
+ resolveOpen(false);
82
+ return;
83
+ }
84
+ const timer = setTimeout(() => resolveOpen(true), 2000);
85
+ child.once('error', () => {
86
+ clearTimeout(timer);
87
+ resolveOpen(false);
88
+ });
89
+ child.once('exit', (code) => {
90
+ clearTimeout(timer);
91
+ resolveOpen(code === 0 || process.platform === 'win32');
92
+ });
93
+ child.unref();
94
+ });
95
+ }
96
+
97
+ /**
98
+ * A promise kept at Ctrl+C or a termination signal. Listening before the address is printed matters: pressed in
99
+ * between, with no listener yet, Ctrl+C would kill the process outright instead of closing what it serves.
100
+ *
101
+ * @returns {Promise<void>}
102
+ */
103
+ export function untilStopped() {
104
+ return new Promise((resolveStop) => {
105
+ process.once('SIGINT', resolveStop);
106
+ process.once('SIGTERM', resolveStop);
107
+ });
108
+ }
package/src/store.mjs CHANGED
@@ -92,9 +92,21 @@ function storeNamesOf(dir) {
92
92
  * @returns {object[]|null} Null when the store has nothing for it.
93
93
  */
94
94
  export function projectRecords(dir, store = snapshotsDir()) {
95
+ const file = projectStoreFile(dir, store);
96
+ return file === null ? null : readStoreFile(file);
97
+ }
98
+
99
+ /**
100
+ * The file a project's records are kept in, or null when the store has none for it.
101
+ *
102
+ * @param {string} dir - The project.
103
+ * @param {string} [store] - The store directory.
104
+ * @returns {string|null}
105
+ */
106
+ export function projectStoreFile(dir, store = snapshotsDir()) {
95
107
  for (const name of storeNamesOf(dir)) {
96
108
  const file = join(store, `${name}.jsonl`);
97
- if (existsSync(file)) return readStoreFile(file);
109
+ if (existsSync(file)) return file;
98
110
  }
99
111
  return null;
100
112
  }