trybeacon 0.1.87 → 0.1.89

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 (395) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-path-routes-manifest.json +22 -18
  4. package/.next/build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/routes-manifest.json +24 -0
  7. package/.next/server/app/@modal/(.)settings/page.js +2 -2
  8. package/.next/server/app/@modal/(.)settings/page.js.nft.json +1 -1
  9. package/.next/server/app/@modal/(.)settings/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error/page.js +3 -3
  11. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/_not-found/page.js +2 -2
  21. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/_not-found.html +1 -1
  24. package/.next/server/app/_not-found.rsc +16 -26
  25. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -26
  26. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -15
  28. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  30. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/server/app/api/ask/answer/route.js +1 -1
  32. package/.next/server/app/api/ask/deliver/route.js +1 -0
  33. package/.next/server/app/api/ask/deliver/route.js.nft.json +1 -0
  34. package/.next/server/app/api/ask/deliver/route_client-reference-manifest.js +1 -0
  35. package/.next/server/app/api/ask/route.js +1 -1
  36. package/.next/server/app/api/ask/verdict/route.js +1 -1
  37. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  38. package/.next/server/app/api/board-annotations/route.js +1 -1
  39. package/.next/server/app/api/board-layout/route.js +1 -1
  40. package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
  41. package/.next/server/app/api/bug-flags/route.js +1 -1
  42. package/.next/server/app/api/changes/comment/answer/route.js +2 -2
  43. package/.next/server/app/api/changes/comment/claim/route.js +2 -2
  44. package/.next/server/app/api/changes/comment/route.js +2 -2
  45. package/.next/server/app/api/changes/quality/route.js +1 -1
  46. package/.next/server/app/api/changes/route.js +1 -1
  47. package/.next/server/app/api/changes/viewed/route.js +1 -1
  48. package/.next/server/app/api/code-graph/position/route.js +1 -1
  49. package/.next/server/app/api/code-graph/route.js +1 -1
  50. package/.next/server/app/api/context/feature/route.js +1 -1
  51. package/.next/server/app/api/context/file/route.js +1 -1
  52. package/.next/server/app/api/context/route.js +1 -1
  53. package/.next/server/app/api/db/arrange/route.js +1 -1
  54. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  55. package/.next/server/app/api/db/position/route.js +1 -1
  56. package/.next/server/app/api/db/prune-planned/route.js +1 -1
  57. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  58. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  59. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  60. package/.next/server/app/api/deliverer/route.js +1 -0
  61. package/.next/server/app/api/deliverer/route.js.nft.json +1 -0
  62. package/.next/server/app/api/deliverer/route_client-reference-manifest.js +1 -0
  63. package/.next/server/app/api/draft/approve/route.js +1 -1
  64. package/.next/server/app/api/draft/route.js +1 -1
  65. package/.next/server/app/api/draft/status/route.js +1 -1
  66. package/.next/server/app/api/edges/[id]/route.js +1 -1
  67. package/.next/server/app/api/edges/route.js +1 -1
  68. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  69. package/.next/server/app/api/entities/route.js +1 -1
  70. package/.next/server/app/api/ingest/route.js +1 -1
  71. package/.next/server/app/api/init/route.js +1 -1
  72. package/.next/server/app/api/lesson/close/route.js +1 -1
  73. package/.next/server/app/api/lesson/presence/route.js +1 -1
  74. package/.next/server/app/api/lesson/questions/route.js +1 -1
  75. package/.next/server/app/api/lesson/route.js +1 -1
  76. package/.next/server/app/api/lesson/save/route.js +1 -1
  77. package/.next/server/app/api/lesson/verdict/route.js +1 -1
  78. package/.next/server/app/api/linear/route.js +2 -2
  79. package/.next/server/app/api/linear/scopes/route.js +1 -1
  80. package/.next/server/app/api/linear/sync/route.js +2 -2
  81. package/.next/server/app/api/map/describe/route.js +1 -1
  82. package/.next/server/app/api/map/files/route.js +1 -1
  83. package/.next/server/app/api/map/finish/route.js +1 -1
  84. package/.next/server/app/api/map/route.js +1 -1
  85. package/.next/server/app/api/map/start/route.js +1 -1
  86. package/.next/server/app/api/map/touch-active/route.js +1 -1
  87. package/.next/server/app/api/mention-search/route.js +1 -1
  88. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  89. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  90. package/.next/server/app/api/nodes/positions/route.js +1 -1
  91. package/.next/server/app/api/nodes/route.js +1 -1
  92. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  93. package/.next/server/app/api/notes/[id]/route.js +1 -1
  94. package/.next/server/app/api/notes/route.js +1 -1
  95. package/.next/server/app/api/open/route.js +1 -1
  96. package/.next/server/app/api/plan/annotations/route.js +2 -2
  97. package/.next/server/app/api/plan/approve/route.js +1 -1
  98. package/.next/server/app/api/plan/history/route.js +1 -1
  99. package/.next/server/app/api/plan/markdown/route.js +1 -1
  100. package/.next/server/app/api/plan/presence/route.js +1 -1
  101. package/.next/server/app/api/plan/route.js +1 -1
  102. package/.next/server/app/api/plan/verdict/route.js +1 -1
  103. package/.next/server/app/api/preferences/route.js +1 -1
  104. package/.next/server/app/api/project-meta/route.js +1 -1
  105. package/.next/server/app/api/reset/route.js +1 -1
  106. package/.next/server/app/api/scope-guard/check/route.js +2 -2
  107. package/.next/server/app/api/share/create/route.js +1 -1
  108. package/.next/server/app/api/share/route.js +1 -1
  109. package/.next/server/app/api/stream/route.js +2 -2
  110. package/.next/server/app/api/tab/nav/route.js +1 -1
  111. package/.next/server/app/api/tab/park/route.js +1 -0
  112. package/.next/server/app/api/tab/park/route.js.nft.json +1 -0
  113. package/.next/server/app/api/tab/park/route_client-reference-manifest.js +1 -0
  114. package/.next/server/app/api/tab/presence/route.js +1 -1
  115. package/.next/server/app/api/tab/view/route.js +1 -1
  116. package/.next/server/app/api/telemetry/route.js +1 -1
  117. package/.next/server/app/api/telemetry/stats/route.js +1 -1
  118. package/.next/server/app/api/version/route.js +1 -1
  119. package/.next/server/app/api/workspace/activate/route.js +1 -1
  120. package/.next/server/app/api/workspace/route.js +1 -1
  121. package/.next/server/app/apple-icon.png/route.js +1 -1
  122. package/.next/server/app/docs/page.js +2 -2
  123. package/.next/server/app/docs/page.js.nft.json +1 -1
  124. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  125. package/.next/server/app/docs.html +1 -1
  126. package/.next/server/app/docs.rsc +18 -29
  127. package/.next/server/app/docs.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  128. package/.next/server/app/docs.segments/_full.segment.rsc +18 -29
  129. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  130. package/.next/server/app/docs.segments/_index.segment.rsc +5 -15
  131. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  132. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  133. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  134. package/.next/server/app/help/page.js +2 -2
  135. package/.next/server/app/help/page.js.nft.json +1 -1
  136. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/help.html +1 -1
  138. package/.next/server/app/help.rsc +26 -38
  139. package/.next/server/app/help.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  140. package/.next/server/app/help.segments/_full.segment.rsc +26 -38
  141. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  142. package/.next/server/app/help.segments/_index.segment.rsc +5 -15
  143. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  144. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +3 -3
  145. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  146. package/.next/server/app/icon.svg/route.js +1 -1
  147. package/.next/server/app/index.html +1 -1
  148. package/.next/server/app/index.rsc +16 -27
  149. package/.next/server/app/index.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  150. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  151. package/.next/server/app/index.segments/_full.segment.rsc +16 -27
  152. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  153. package/.next/server/app/index.segments/_index.segment.rsc +5 -15
  154. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  155. package/.next/server/app/learn/page.js +3 -3
  156. package/.next/server/app/learn/page.js.nft.json +1 -1
  157. package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/map/page.js +2 -2
  159. package/.next/server/app/map/page.js.nft.json +1 -1
  160. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/page.js +2 -2
  162. package/.next/server/app/page.js.nft.json +1 -1
  163. package/.next/server/app/page_client-reference-manifest.js +1 -1
  164. package/.next/server/app/parked/page.js +2 -0
  165. package/.next/server/app/parked/page.js.nft.json +1 -0
  166. package/.next/server/app/parked/page_client-reference-manifest.js +1 -0
  167. package/.next/server/app/plan/page.js +3 -3
  168. package/.next/server/app/plan/page.js.nft.json +1 -1
  169. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/s/[token]/page.js +2 -2
  171. package/.next/server/app/s/[token]/page.js.nft.json +1 -1
  172. package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  173. package/.next/server/app/settings/page.js +2 -2
  174. package/.next/server/app/settings/page.js.nft.json +1 -1
  175. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app-paths-manifest.json +22 -18
  177. package/.next/server/chunks/2031.js +1 -1
  178. package/.next/server/chunks/2579.js +1 -0
  179. package/.next/server/chunks/{5704.js → 5332.js} +2 -2
  180. package/.next/server/chunks/5623.js +1 -0
  181. package/.next/server/chunks/852.js +1 -0
  182. package/.next/server/chunks/8709.js +1 -1
  183. package/.next/server/middleware-build-manifest.js +1 -1
  184. package/.next/server/pages/404.html +1 -1
  185. package/.next/server/pages/500.html +1 -1
  186. package/.next/server/server-reference-manifest.js +1 -1
  187. package/.next/server/server-reference-manifest.json +1 -1
  188. package/.next/static/CgztmUmahokH2oDzktISo/_buildManifest.js +1 -0
  189. package/.next/static/chunks/6579-1efe1d8b378c81a7.js +1 -0
  190. package/.next/static/chunks/app/@modal/default-ae4502d569ac0303.js +1 -0
  191. package/.next/static/chunks/app/_global-error/page-ae4502d569ac0303.js +1 -0
  192. package/.next/static/chunks/app/api/ask/answer/route-ae4502d569ac0303.js +1 -0
  193. package/.next/static/chunks/app/api/ask/deliver/route-ae4502d569ac0303.js +1 -0
  194. package/.next/static/chunks/app/api/ask/route-ae4502d569ac0303.js +1 -0
  195. package/.next/static/chunks/app/api/ask/verdict/route-ae4502d569ac0303.js +1 -0
  196. package/.next/static/chunks/app/api/board-annotations/[id]/route-ae4502d569ac0303.js +1 -0
  197. package/.next/static/chunks/app/api/board-annotations/route-ae4502d569ac0303.js +1 -0
  198. package/.next/static/chunks/app/api/board-layout/route-ae4502d569ac0303.js +1 -0
  199. package/.next/static/chunks/app/api/bug-flags/[id]/route-ae4502d569ac0303.js +1 -0
  200. package/.next/static/chunks/app/api/bug-flags/route-ae4502d569ac0303.js +1 -0
  201. package/.next/static/chunks/app/api/changes/comment/answer/route-ae4502d569ac0303.js +1 -0
  202. package/.next/static/chunks/app/api/changes/comment/claim/route-ae4502d569ac0303.js +1 -0
  203. package/.next/static/chunks/app/api/changes/comment/route-ae4502d569ac0303.js +1 -0
  204. package/.next/static/chunks/app/api/changes/quality/route-ae4502d569ac0303.js +1 -0
  205. package/.next/static/chunks/app/api/changes/route-ae4502d569ac0303.js +1 -0
  206. package/.next/static/chunks/app/api/changes/viewed/route-ae4502d569ac0303.js +1 -0
  207. package/.next/static/chunks/app/api/code-graph/position/route-ae4502d569ac0303.js +1 -0
  208. package/.next/static/chunks/app/api/code-graph/route-ae4502d569ac0303.js +1 -0
  209. package/.next/static/chunks/app/api/context/feature/route-ae4502d569ac0303.js +1 -0
  210. package/.next/static/chunks/app/api/context/file/route-ae4502d569ac0303.js +1 -0
  211. package/.next/static/chunks/app/api/context/route-ae4502d569ac0303.js +1 -0
  212. package/.next/static/chunks/app/api/db/arrange/route-ae4502d569ac0303.js +1 -0
  213. package/.next/static/chunks/app/api/db/backfill-access/route-ae4502d569ac0303.js +1 -0
  214. package/.next/static/chunks/app/api/db/position/route-ae4502d569ac0303.js +1 -0
  215. package/.next/static/chunks/app/api/db/prune-planned/route-ae4502d569ac0303.js +1 -0
  216. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-ae4502d569ac0303.js +1 -0
  217. package/.next/static/chunks/app/api/db/relations/[id]/route-ae4502d569ac0303.js +1 -0
  218. package/.next/static/chunks/app/api/db/tables/[id]/route-ae4502d569ac0303.js +1 -0
  219. package/.next/static/chunks/app/api/deliverer/route-ae4502d569ac0303.js +1 -0
  220. package/.next/static/chunks/app/api/draft/approve/route-ae4502d569ac0303.js +1 -0
  221. package/.next/static/chunks/app/api/draft/route-ae4502d569ac0303.js +1 -0
  222. package/.next/static/chunks/app/api/draft/status/route-ae4502d569ac0303.js +1 -0
  223. package/.next/static/chunks/app/api/edges/[id]/route-ae4502d569ac0303.js +1 -0
  224. package/.next/static/chunks/app/api/edges/route-ae4502d569ac0303.js +1 -0
  225. package/.next/static/chunks/app/api/endpoints/[id]/route-ae4502d569ac0303.js +1 -0
  226. package/.next/static/chunks/app/api/entities/route-ae4502d569ac0303.js +1 -0
  227. package/.next/static/chunks/app/api/ingest/route-ae4502d569ac0303.js +1 -0
  228. package/.next/static/chunks/app/api/init/route-ae4502d569ac0303.js +1 -0
  229. package/.next/static/chunks/app/api/lesson/close/route-ae4502d569ac0303.js +1 -0
  230. package/.next/static/chunks/app/api/lesson/presence/route-ae4502d569ac0303.js +1 -0
  231. package/.next/static/chunks/app/api/lesson/questions/route-ae4502d569ac0303.js +1 -0
  232. package/.next/static/chunks/app/api/lesson/route-ae4502d569ac0303.js +1 -0
  233. package/.next/static/chunks/app/api/lesson/save/route-ae4502d569ac0303.js +1 -0
  234. package/.next/static/chunks/app/api/lesson/verdict/route-ae4502d569ac0303.js +1 -0
  235. package/.next/static/chunks/app/api/linear/route-ae4502d569ac0303.js +1 -0
  236. package/.next/static/chunks/app/api/linear/scopes/route-ae4502d569ac0303.js +1 -0
  237. package/.next/static/chunks/app/api/linear/sync/route-ae4502d569ac0303.js +1 -0
  238. package/.next/static/chunks/app/api/map/describe/route-ae4502d569ac0303.js +1 -0
  239. package/.next/static/chunks/app/api/map/files/route-ae4502d569ac0303.js +1 -0
  240. package/.next/static/chunks/app/api/map/finish/route-ae4502d569ac0303.js +1 -0
  241. package/.next/static/chunks/app/api/map/route-ae4502d569ac0303.js +1 -0
  242. package/.next/static/chunks/app/api/map/start/route-ae4502d569ac0303.js +1 -0
  243. package/.next/static/chunks/app/api/map/touch-active/route-ae4502d569ac0303.js +1 -0
  244. package/.next/static/chunks/app/api/mention-search/route-ae4502d569ac0303.js +1 -0
  245. package/.next/static/chunks/app/api/nodes/[id]/position/route-ae4502d569ac0303.js +1 -0
  246. package/.next/static/chunks/app/api/nodes/[id]/route-ae4502d569ac0303.js +1 -0
  247. package/.next/static/chunks/app/api/nodes/positions/route-ae4502d569ac0303.js +1 -0
  248. package/.next/static/chunks/app/api/nodes/route-ae4502d569ac0303.js +1 -0
  249. package/.next/static/chunks/app/api/nodes/subtasks/route-ae4502d569ac0303.js +1 -0
  250. package/.next/static/chunks/app/api/notes/[id]/route-ae4502d569ac0303.js +1 -0
  251. package/.next/static/chunks/app/api/notes/route-ae4502d569ac0303.js +1 -0
  252. package/.next/static/chunks/app/api/open/route-ae4502d569ac0303.js +1 -0
  253. package/.next/static/chunks/app/api/plan/annotations/route-ae4502d569ac0303.js +1 -0
  254. package/.next/static/chunks/app/api/plan/approve/route-ae4502d569ac0303.js +1 -0
  255. package/.next/static/chunks/app/api/plan/history/route-ae4502d569ac0303.js +1 -0
  256. package/.next/static/chunks/app/api/plan/markdown/route-ae4502d569ac0303.js +1 -0
  257. package/.next/static/chunks/app/api/plan/presence/route-ae4502d569ac0303.js +1 -0
  258. package/.next/static/chunks/app/api/plan/route-ae4502d569ac0303.js +1 -0
  259. package/.next/static/chunks/app/api/plan/verdict/route-ae4502d569ac0303.js +1 -0
  260. package/.next/static/chunks/app/api/preferences/route-ae4502d569ac0303.js +1 -0
  261. package/.next/static/chunks/app/api/project-meta/route-ae4502d569ac0303.js +1 -0
  262. package/.next/static/chunks/app/api/reset/route-ae4502d569ac0303.js +1 -0
  263. package/.next/static/chunks/app/api/scope-guard/check/route-ae4502d569ac0303.js +1 -0
  264. package/.next/static/chunks/app/api/share/create/route-ae4502d569ac0303.js +1 -0
  265. package/.next/static/chunks/app/api/share/route-ae4502d569ac0303.js +1 -0
  266. package/.next/static/chunks/app/api/stream/route-ae4502d569ac0303.js +1 -0
  267. package/.next/static/chunks/app/api/tab/nav/route-ae4502d569ac0303.js +1 -0
  268. package/.next/static/chunks/app/api/tab/park/route-ae4502d569ac0303.js +1 -0
  269. package/.next/static/chunks/app/api/tab/presence/route-ae4502d569ac0303.js +1 -0
  270. package/.next/static/chunks/app/api/tab/view/route-ae4502d569ac0303.js +1 -0
  271. package/.next/static/chunks/app/api/telemetry/route-ae4502d569ac0303.js +1 -0
  272. package/.next/static/chunks/app/api/telemetry/stats/route-ae4502d569ac0303.js +1 -0
  273. package/.next/static/chunks/app/api/version/route-ae4502d569ac0303.js +1 -0
  274. package/.next/static/chunks/app/api/workspace/activate/route-ae4502d569ac0303.js +1 -0
  275. package/.next/static/chunks/app/api/workspace/route-ae4502d569ac0303.js +1 -0
  276. package/.next/static/chunks/app/help/page-de231e7aea45e513.js +1 -0
  277. package/.next/static/chunks/app/layout-a8bb07fb86893add.js +1 -0
  278. package/.next/static/chunks/app/learn/{page-d67bd23577449b01.js → page-e6401368ea95de46.js} +1 -1
  279. package/.next/static/chunks/app/map/{page-492185f028f4dffb.js → page-374841ad0b729ce5.js} +1 -1
  280. package/.next/static/chunks/app/parked/page-de231e7aea45e513.js +1 -0
  281. package/.next/static/chunks/app/plan/{page-363e3766ef1856eb.js → page-809509b6149dbe6a.js} +2 -2
  282. package/.next/static/chunks/app/s/[token]/{page-8f46e0f5eac2882b.js → page-57821fa904e9e018.js} +1 -1
  283. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ae4502d569ac0303.js +1 -0
  284. package/.next/static/chunks/next/dist/client/components/builtin/default-null-ae4502d569ac0303.js +1 -0
  285. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae4502d569ac0303.js +1 -0
  286. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ae4502d569ac0303.js +1 -0
  287. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae4502d569ac0303.js +1 -0
  288. package/.next/static/chunks/{webpack-6c27b0ed1ac1459c.js → webpack-62aea110c2700d74.js} +1 -1
  289. package/.next/static/css/56890131dbc6daff.css +1 -0
  290. package/.next/trace +47 -47
  291. package/.next/trace-build +1 -1
  292. package/.next/types/app/api/ask/deliver/route.ts +351 -0
  293. package/.next/types/app/api/deliverer/route.ts +351 -0
  294. package/.next/types/app/api/tab/park/route.ts +351 -0
  295. package/.next/types/app/parked/page.ts +87 -0
  296. package/.next/types/routes.d.ts +6 -2
  297. package/.next/types/validator.ts +36 -0
  298. package/dist/bin/ask.js +2 -2
  299. package/package.json +1 -1
  300. package/.next/server/chunks/5509.js +0 -1
  301. package/.next/server/chunks/8770.js +0 -1
  302. package/.next/static/-bAkcM1aZ87OxT3hzgkKl/_buildManifest.js +0 -1
  303. package/.next/static/chunks/3594-3f27abfbeba39610.js +0 -1
  304. package/.next/static/chunks/app/@modal/default-b0a80080b8e8a17d.js +0 -1
  305. package/.next/static/chunks/app/_global-error/page-b0a80080b8e8a17d.js +0 -1
  306. package/.next/static/chunks/app/api/ask/answer/route-b0a80080b8e8a17d.js +0 -1
  307. package/.next/static/chunks/app/api/ask/route-b0a80080b8e8a17d.js +0 -1
  308. package/.next/static/chunks/app/api/ask/verdict/route-b0a80080b8e8a17d.js +0 -1
  309. package/.next/static/chunks/app/api/board-annotations/[id]/route-b0a80080b8e8a17d.js +0 -1
  310. package/.next/static/chunks/app/api/board-annotations/route-b0a80080b8e8a17d.js +0 -1
  311. package/.next/static/chunks/app/api/board-layout/route-b0a80080b8e8a17d.js +0 -1
  312. package/.next/static/chunks/app/api/bug-flags/[id]/route-b0a80080b8e8a17d.js +0 -1
  313. package/.next/static/chunks/app/api/bug-flags/route-b0a80080b8e8a17d.js +0 -1
  314. package/.next/static/chunks/app/api/changes/comment/answer/route-b0a80080b8e8a17d.js +0 -1
  315. package/.next/static/chunks/app/api/changes/comment/claim/route-b0a80080b8e8a17d.js +0 -1
  316. package/.next/static/chunks/app/api/changes/comment/route-b0a80080b8e8a17d.js +0 -1
  317. package/.next/static/chunks/app/api/changes/quality/route-b0a80080b8e8a17d.js +0 -1
  318. package/.next/static/chunks/app/api/changes/route-b0a80080b8e8a17d.js +0 -1
  319. package/.next/static/chunks/app/api/changes/viewed/route-b0a80080b8e8a17d.js +0 -1
  320. package/.next/static/chunks/app/api/code-graph/position/route-b0a80080b8e8a17d.js +0 -1
  321. package/.next/static/chunks/app/api/code-graph/route-b0a80080b8e8a17d.js +0 -1
  322. package/.next/static/chunks/app/api/context/feature/route-b0a80080b8e8a17d.js +0 -1
  323. package/.next/static/chunks/app/api/context/file/route-b0a80080b8e8a17d.js +0 -1
  324. package/.next/static/chunks/app/api/context/route-b0a80080b8e8a17d.js +0 -1
  325. package/.next/static/chunks/app/api/db/arrange/route-b0a80080b8e8a17d.js +0 -1
  326. package/.next/static/chunks/app/api/db/backfill-access/route-b0a80080b8e8a17d.js +0 -1
  327. package/.next/static/chunks/app/api/db/position/route-b0a80080b8e8a17d.js +0 -1
  328. package/.next/static/chunks/app/api/db/prune-planned/route-b0a80080b8e8a17d.js +0 -1
  329. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-b0a80080b8e8a17d.js +0 -1
  330. package/.next/static/chunks/app/api/db/relations/[id]/route-b0a80080b8e8a17d.js +0 -1
  331. package/.next/static/chunks/app/api/db/tables/[id]/route-b0a80080b8e8a17d.js +0 -1
  332. package/.next/static/chunks/app/api/draft/approve/route-b0a80080b8e8a17d.js +0 -1
  333. package/.next/static/chunks/app/api/draft/route-b0a80080b8e8a17d.js +0 -1
  334. package/.next/static/chunks/app/api/draft/status/route-b0a80080b8e8a17d.js +0 -1
  335. package/.next/static/chunks/app/api/edges/[id]/route-b0a80080b8e8a17d.js +0 -1
  336. package/.next/static/chunks/app/api/edges/route-b0a80080b8e8a17d.js +0 -1
  337. package/.next/static/chunks/app/api/endpoints/[id]/route-b0a80080b8e8a17d.js +0 -1
  338. package/.next/static/chunks/app/api/entities/route-b0a80080b8e8a17d.js +0 -1
  339. package/.next/static/chunks/app/api/ingest/route-b0a80080b8e8a17d.js +0 -1
  340. package/.next/static/chunks/app/api/init/route-b0a80080b8e8a17d.js +0 -1
  341. package/.next/static/chunks/app/api/lesson/close/route-b0a80080b8e8a17d.js +0 -1
  342. package/.next/static/chunks/app/api/lesson/presence/route-b0a80080b8e8a17d.js +0 -1
  343. package/.next/static/chunks/app/api/lesson/questions/route-b0a80080b8e8a17d.js +0 -1
  344. package/.next/static/chunks/app/api/lesson/route-b0a80080b8e8a17d.js +0 -1
  345. package/.next/static/chunks/app/api/lesson/save/route-b0a80080b8e8a17d.js +0 -1
  346. package/.next/static/chunks/app/api/lesson/verdict/route-b0a80080b8e8a17d.js +0 -1
  347. package/.next/static/chunks/app/api/linear/route-b0a80080b8e8a17d.js +0 -1
  348. package/.next/static/chunks/app/api/linear/scopes/route-b0a80080b8e8a17d.js +0 -1
  349. package/.next/static/chunks/app/api/linear/sync/route-b0a80080b8e8a17d.js +0 -1
  350. package/.next/static/chunks/app/api/map/describe/route-b0a80080b8e8a17d.js +0 -1
  351. package/.next/static/chunks/app/api/map/files/route-b0a80080b8e8a17d.js +0 -1
  352. package/.next/static/chunks/app/api/map/finish/route-b0a80080b8e8a17d.js +0 -1
  353. package/.next/static/chunks/app/api/map/route-b0a80080b8e8a17d.js +0 -1
  354. package/.next/static/chunks/app/api/map/start/route-b0a80080b8e8a17d.js +0 -1
  355. package/.next/static/chunks/app/api/map/touch-active/route-b0a80080b8e8a17d.js +0 -1
  356. package/.next/static/chunks/app/api/mention-search/route-b0a80080b8e8a17d.js +0 -1
  357. package/.next/static/chunks/app/api/nodes/[id]/position/route-b0a80080b8e8a17d.js +0 -1
  358. package/.next/static/chunks/app/api/nodes/[id]/route-b0a80080b8e8a17d.js +0 -1
  359. package/.next/static/chunks/app/api/nodes/positions/route-b0a80080b8e8a17d.js +0 -1
  360. package/.next/static/chunks/app/api/nodes/route-b0a80080b8e8a17d.js +0 -1
  361. package/.next/static/chunks/app/api/nodes/subtasks/route-b0a80080b8e8a17d.js +0 -1
  362. package/.next/static/chunks/app/api/notes/[id]/route-b0a80080b8e8a17d.js +0 -1
  363. package/.next/static/chunks/app/api/notes/route-b0a80080b8e8a17d.js +0 -1
  364. package/.next/static/chunks/app/api/open/route-b0a80080b8e8a17d.js +0 -1
  365. package/.next/static/chunks/app/api/plan/annotations/route-b0a80080b8e8a17d.js +0 -1
  366. package/.next/static/chunks/app/api/plan/approve/route-b0a80080b8e8a17d.js +0 -1
  367. package/.next/static/chunks/app/api/plan/history/route-b0a80080b8e8a17d.js +0 -1
  368. package/.next/static/chunks/app/api/plan/markdown/route-b0a80080b8e8a17d.js +0 -1
  369. package/.next/static/chunks/app/api/plan/presence/route-b0a80080b8e8a17d.js +0 -1
  370. package/.next/static/chunks/app/api/plan/route-b0a80080b8e8a17d.js +0 -1
  371. package/.next/static/chunks/app/api/plan/verdict/route-b0a80080b8e8a17d.js +0 -1
  372. package/.next/static/chunks/app/api/preferences/route-b0a80080b8e8a17d.js +0 -1
  373. package/.next/static/chunks/app/api/project-meta/route-b0a80080b8e8a17d.js +0 -1
  374. package/.next/static/chunks/app/api/reset/route-b0a80080b8e8a17d.js +0 -1
  375. package/.next/static/chunks/app/api/scope-guard/check/route-b0a80080b8e8a17d.js +0 -1
  376. package/.next/static/chunks/app/api/share/create/route-b0a80080b8e8a17d.js +0 -1
  377. package/.next/static/chunks/app/api/share/route-b0a80080b8e8a17d.js +0 -1
  378. package/.next/static/chunks/app/api/stream/route-b0a80080b8e8a17d.js +0 -1
  379. package/.next/static/chunks/app/api/tab/nav/route-b0a80080b8e8a17d.js +0 -1
  380. package/.next/static/chunks/app/api/tab/presence/route-b0a80080b8e8a17d.js +0 -1
  381. package/.next/static/chunks/app/api/tab/view/route-b0a80080b8e8a17d.js +0 -1
  382. package/.next/static/chunks/app/api/telemetry/route-b0a80080b8e8a17d.js +0 -1
  383. package/.next/static/chunks/app/api/telemetry/stats/route-b0a80080b8e8a17d.js +0 -1
  384. package/.next/static/chunks/app/api/version/route-b0a80080b8e8a17d.js +0 -1
  385. package/.next/static/chunks/app/api/workspace/activate/route-b0a80080b8e8a17d.js +0 -1
  386. package/.next/static/chunks/app/api/workspace/route-b0a80080b8e8a17d.js +0 -1
  387. package/.next/static/chunks/app/help/page-d720609312abff8b.js +0 -1
  388. package/.next/static/chunks/app/layout-6af877a2d6717f9e.js +0 -1
  389. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b0a80080b8e8a17d.js +0 -1
  390. package/.next/static/chunks/next/dist/client/components/builtin/default-null-b0a80080b8e8a17d.js +0 -1
  391. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b0a80080b8e8a17d.js +0 -1
  392. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b0a80080b8e8a17d.js +0 -1
  393. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b0a80080b8e8a17d.js +0 -1
  394. package/.next/static/css/ba104bf801b96933.css +0 -1
  395. /package/.next/static/{-bAkcM1aZ87OxT3hzgkKl → CgztmUmahokH2oDzktISo}/_ssgManifest.js +0 -0
@@ -0,0 +1,351 @@
1
+ // File: /home/runner/work/beacon/beacon/app/api/tab/park/route.ts
2
+ import * as entry from '../../../../../../app/api/tab/park/route.js'
3
+ import type { NextRequest } from 'next/server.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../../../app/api/tab/park/route.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ GET?: Function
16
+ HEAD?: Function
17
+ OPTIONS?: Function
18
+ POST?: Function
19
+ PUT?: Function
20
+ DELETE?: Function
21
+ PATCH?: Function
22
+ config?: {}
23
+ generateStaticParams?: Function
24
+ unstable_instant?: InstantConfigForTypeCheckInternal
25
+ unstable_dynamicStaleTime?: number
26
+ revalidate?: RevalidateRange<TEntry> | false
27
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
28
+ dynamicParams?: boolean
29
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
30
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
31
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
32
+ maxDuration?: number
33
+
34
+ }, TEntry, ''>>()
35
+
36
+ type RouteContext = { params: Promise<SegmentParams> }
37
+ // Check the prop type of the entry function
38
+ if ('GET' in entry) {
39
+ checkFields<
40
+ Diff<
41
+ ParamCheck<Request | NextRequest>,
42
+ {
43
+ __tag__: 'GET'
44
+ __param_position__: 'first'
45
+ __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
46
+ },
47
+ 'GET'
48
+ >
49
+ >()
50
+ checkFields<
51
+ Diff<
52
+ ParamCheck<RouteContext>,
53
+ {
54
+ __tag__: 'GET'
55
+ __param_position__: 'second'
56
+ __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
57
+ },
58
+ 'GET'
59
+ >
60
+ >()
61
+
62
+ checkFields<
63
+ Diff<
64
+ {
65
+ __tag__: 'GET',
66
+ __return_type__: Response | void | never | Promise<Response | void | never>
67
+ },
68
+ {
69
+ __tag__: 'GET',
70
+ __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
71
+ },
72
+ 'GET'
73
+ >
74
+ >()
75
+ }
76
+ // Check the prop type of the entry function
77
+ if ('HEAD' in entry) {
78
+ checkFields<
79
+ Diff<
80
+ ParamCheck<Request | NextRequest>,
81
+ {
82
+ __tag__: 'HEAD'
83
+ __param_position__: 'first'
84
+ __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
85
+ },
86
+ 'HEAD'
87
+ >
88
+ >()
89
+ checkFields<
90
+ Diff<
91
+ ParamCheck<RouteContext>,
92
+ {
93
+ __tag__: 'HEAD'
94
+ __param_position__: 'second'
95
+ __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
96
+ },
97
+ 'HEAD'
98
+ >
99
+ >()
100
+
101
+ checkFields<
102
+ Diff<
103
+ {
104
+ __tag__: 'HEAD',
105
+ __return_type__: Response | void | never | Promise<Response | void | never>
106
+ },
107
+ {
108
+ __tag__: 'HEAD',
109
+ __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
110
+ },
111
+ 'HEAD'
112
+ >
113
+ >()
114
+ }
115
+ // Check the prop type of the entry function
116
+ if ('OPTIONS' in entry) {
117
+ checkFields<
118
+ Diff<
119
+ ParamCheck<Request | NextRequest>,
120
+ {
121
+ __tag__: 'OPTIONS'
122
+ __param_position__: 'first'
123
+ __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
124
+ },
125
+ 'OPTIONS'
126
+ >
127
+ >()
128
+ checkFields<
129
+ Diff<
130
+ ParamCheck<RouteContext>,
131
+ {
132
+ __tag__: 'OPTIONS'
133
+ __param_position__: 'second'
134
+ __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
135
+ },
136
+ 'OPTIONS'
137
+ >
138
+ >()
139
+
140
+ checkFields<
141
+ Diff<
142
+ {
143
+ __tag__: 'OPTIONS',
144
+ __return_type__: Response | void | never | Promise<Response | void | never>
145
+ },
146
+ {
147
+ __tag__: 'OPTIONS',
148
+ __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
149
+ },
150
+ 'OPTIONS'
151
+ >
152
+ >()
153
+ }
154
+ // Check the prop type of the entry function
155
+ if ('POST' in entry) {
156
+ checkFields<
157
+ Diff<
158
+ ParamCheck<Request | NextRequest>,
159
+ {
160
+ __tag__: 'POST'
161
+ __param_position__: 'first'
162
+ __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
163
+ },
164
+ 'POST'
165
+ >
166
+ >()
167
+ checkFields<
168
+ Diff<
169
+ ParamCheck<RouteContext>,
170
+ {
171
+ __tag__: 'POST'
172
+ __param_position__: 'second'
173
+ __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
174
+ },
175
+ 'POST'
176
+ >
177
+ >()
178
+
179
+ checkFields<
180
+ Diff<
181
+ {
182
+ __tag__: 'POST',
183
+ __return_type__: Response | void | never | Promise<Response | void | never>
184
+ },
185
+ {
186
+ __tag__: 'POST',
187
+ __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
188
+ },
189
+ 'POST'
190
+ >
191
+ >()
192
+ }
193
+ // Check the prop type of the entry function
194
+ if ('PUT' in entry) {
195
+ checkFields<
196
+ Diff<
197
+ ParamCheck<Request | NextRequest>,
198
+ {
199
+ __tag__: 'PUT'
200
+ __param_position__: 'first'
201
+ __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
202
+ },
203
+ 'PUT'
204
+ >
205
+ >()
206
+ checkFields<
207
+ Diff<
208
+ ParamCheck<RouteContext>,
209
+ {
210
+ __tag__: 'PUT'
211
+ __param_position__: 'second'
212
+ __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
213
+ },
214
+ 'PUT'
215
+ >
216
+ >()
217
+
218
+ checkFields<
219
+ Diff<
220
+ {
221
+ __tag__: 'PUT',
222
+ __return_type__: Response | void | never | Promise<Response | void | never>
223
+ },
224
+ {
225
+ __tag__: 'PUT',
226
+ __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
227
+ },
228
+ 'PUT'
229
+ >
230
+ >()
231
+ }
232
+ // Check the prop type of the entry function
233
+ if ('DELETE' in entry) {
234
+ checkFields<
235
+ Diff<
236
+ ParamCheck<Request | NextRequest>,
237
+ {
238
+ __tag__: 'DELETE'
239
+ __param_position__: 'first'
240
+ __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
241
+ },
242
+ 'DELETE'
243
+ >
244
+ >()
245
+ checkFields<
246
+ Diff<
247
+ ParamCheck<RouteContext>,
248
+ {
249
+ __tag__: 'DELETE'
250
+ __param_position__: 'second'
251
+ __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
252
+ },
253
+ 'DELETE'
254
+ >
255
+ >()
256
+
257
+ checkFields<
258
+ Diff<
259
+ {
260
+ __tag__: 'DELETE',
261
+ __return_type__: Response | void | never | Promise<Response | void | never>
262
+ },
263
+ {
264
+ __tag__: 'DELETE',
265
+ __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
266
+ },
267
+ 'DELETE'
268
+ >
269
+ >()
270
+ }
271
+ // Check the prop type of the entry function
272
+ if ('PATCH' in entry) {
273
+ checkFields<
274
+ Diff<
275
+ ParamCheck<Request | NextRequest>,
276
+ {
277
+ __tag__: 'PATCH'
278
+ __param_position__: 'first'
279
+ __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
280
+ },
281
+ 'PATCH'
282
+ >
283
+ >()
284
+ checkFields<
285
+ Diff<
286
+ ParamCheck<RouteContext>,
287
+ {
288
+ __tag__: 'PATCH'
289
+ __param_position__: 'second'
290
+ __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
291
+ },
292
+ 'PATCH'
293
+ >
294
+ >()
295
+
296
+ checkFields<
297
+ Diff<
298
+ {
299
+ __tag__: 'PATCH',
300
+ __return_type__: Response | void | never | Promise<Response | void | never>
301
+ },
302
+ {
303
+ __tag__: 'PATCH',
304
+ __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
305
+ },
306
+ 'PATCH'
307
+ >
308
+ >()
309
+ }
310
+
311
+ // Check the arguments and return type of the generateStaticParams function
312
+ if ('generateStaticParams' in entry) {
313
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
314
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
315
+ }
316
+
317
+ export interface PageProps {
318
+ params?: Promise<SegmentParams>
319
+ searchParams?: Promise<any>
320
+ }
321
+ export interface LayoutProps {
322
+ children?: React.ReactNode
323
+
324
+ params?: Promise<SegmentParams>
325
+ }
326
+
327
+ // =============
328
+ // Utility types
329
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
330
+
331
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
332
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
333
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
334
+
335
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
336
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
337
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
338
+
339
+ type ParamCheck<T> = {
340
+ __tag__: string
341
+ __param_position__: string
342
+ __param_type__: T
343
+ }
344
+
345
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
346
+
347
+ // https://github.com/sindresorhus/type-fest
348
+ type Numeric = number | bigint
349
+ type Zero = 0 | 0n
350
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
351
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -0,0 +1,87 @@
1
+ // File: /home/runner/work/beacon/beacon/app/parked/page.tsx
2
+ import * as entry from '../../../../app/parked/page.js'
3
+ import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../app/parked/page.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ default: Function
16
+ config?: {}
17
+ generateStaticParams?: Function
18
+ unstable_instant?: InstantConfigForTypeCheckInternal
19
+ unstable_dynamicStaleTime?: number
20
+ revalidate?: RevalidateRange<TEntry> | false
21
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
22
+ dynamicParams?: boolean
23
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
24
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
25
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
26
+ maxDuration?: number
27
+
28
+ metadata?: any
29
+ generateMetadata?: Function
30
+ viewport?: any
31
+ generateViewport?: Function
32
+
33
+ }, TEntry, ''>>()
34
+
35
+
36
+ // Check the prop type of the entry function
37
+ checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
38
+
39
+ // Check the arguments and return type of the generateMetadata function
40
+ if ('generateMetadata' in entry) {
41
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
42
+ checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
43
+ }
44
+
45
+ // Check the arguments and return type of the generateViewport function
46
+ if ('generateViewport' in entry) {
47
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
48
+ checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
49
+ }
50
+
51
+ // Check the arguments and return type of the generateStaticParams function
52
+ if ('generateStaticParams' in entry) {
53
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
54
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
55
+ }
56
+
57
+ export interface PageProps {
58
+ params?: Promise<SegmentParams>
59
+ searchParams?: Promise<any>
60
+ }
61
+ export interface LayoutProps {
62
+ children?: React.ReactNode
63
+
64
+ params?: Promise<SegmentParams>
65
+ }
66
+
67
+ // =============
68
+ // Utility types
69
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
70
+
71
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
72
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
73
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
74
+
75
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
76
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
77
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
78
+
79
+
80
+
81
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
82
+
83
+ // https://github.com/sindresorhus/type-fest
84
+ type Numeric = number | bigint
85
+ type Zero = 0 | 0n
86
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
87
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -1,8 +1,8 @@
1
1
  // This file is generated automatically by Next.js
2
2
  // Do not edit this file manually
3
3
 
4
- type AppRoutes = "/" | "/docs" | "/help" | "/learn" | "/map" | "/plan" | "/s/[token]" | "/settings"
5
- type AppRouteHandlerRoutes = "/api/ask" | "/api/ask/answer" | "/api/ask/verdict" | "/api/board-annotations" | "/api/board-annotations/[id]" | "/api/board-layout" | "/api/bug-flags" | "/api/bug-flags/[id]" | "/api/changes" | "/api/changes/comment" | "/api/changes/comment/answer" | "/api/changes/comment/claim" | "/api/changes/quality" | "/api/changes/viewed" | "/api/code-graph" | "/api/code-graph/position" | "/api/context" | "/api/context/feature" | "/api/context/file" | "/api/db/arrange" | "/api/db/backfill-access" | "/api/db/position" | "/api/db/prune-planned" | "/api/db/reconcile-endpoints" | "/api/db/relations/[id]" | "/api/db/tables/[id]" | "/api/draft" | "/api/draft/approve" | "/api/draft/status" | "/api/edges" | "/api/edges/[id]" | "/api/endpoints/[id]" | "/api/entities" | "/api/ingest" | "/api/init" | "/api/lesson" | "/api/lesson/close" | "/api/lesson/presence" | "/api/lesson/questions" | "/api/lesson/save" | "/api/lesson/verdict" | "/api/linear" | "/api/linear/scopes" | "/api/linear/sync" | "/api/map" | "/api/map/describe" | "/api/map/files" | "/api/map/finish" | "/api/map/start" | "/api/map/touch-active" | "/api/mention-search" | "/api/nodes" | "/api/nodes/[id]" | "/api/nodes/[id]/position" | "/api/nodes/positions" | "/api/nodes/subtasks" | "/api/notes" | "/api/notes/[id]" | "/api/open" | "/api/plan" | "/api/plan/annotations" | "/api/plan/approve" | "/api/plan/history" | "/api/plan/markdown" | "/api/plan/presence" | "/api/plan/verdict" | "/api/preferences" | "/api/project-meta" | "/api/reset" | "/api/scope-guard/check" | "/api/share" | "/api/share/create" | "/api/stream" | "/api/tab/nav" | "/api/tab/presence" | "/api/tab/view" | "/api/telemetry" | "/api/telemetry/stats" | "/api/version" | "/api/workspace" | "/api/workspace/activate"
4
+ type AppRoutes = "/" | "/docs" | "/help" | "/learn" | "/map" | "/parked" | "/plan" | "/s/[token]" | "/settings"
5
+ type AppRouteHandlerRoutes = "/api/ask" | "/api/ask/answer" | "/api/ask/deliver" | "/api/ask/verdict" | "/api/board-annotations" | "/api/board-annotations/[id]" | "/api/board-layout" | "/api/bug-flags" | "/api/bug-flags/[id]" | "/api/changes" | "/api/changes/comment" | "/api/changes/comment/answer" | "/api/changes/comment/claim" | "/api/changes/quality" | "/api/changes/viewed" | "/api/code-graph" | "/api/code-graph/position" | "/api/context" | "/api/context/feature" | "/api/context/file" | "/api/db/arrange" | "/api/db/backfill-access" | "/api/db/position" | "/api/db/prune-planned" | "/api/db/reconcile-endpoints" | "/api/db/relations/[id]" | "/api/db/tables/[id]" | "/api/deliverer" | "/api/draft" | "/api/draft/approve" | "/api/draft/status" | "/api/edges" | "/api/edges/[id]" | "/api/endpoints/[id]" | "/api/entities" | "/api/ingest" | "/api/init" | "/api/lesson" | "/api/lesson/close" | "/api/lesson/presence" | "/api/lesson/questions" | "/api/lesson/save" | "/api/lesson/verdict" | "/api/linear" | "/api/linear/scopes" | "/api/linear/sync" | "/api/map" | "/api/map/describe" | "/api/map/files" | "/api/map/finish" | "/api/map/start" | "/api/map/touch-active" | "/api/mention-search" | "/api/nodes" | "/api/nodes/[id]" | "/api/nodes/[id]/position" | "/api/nodes/positions" | "/api/nodes/subtasks" | "/api/notes" | "/api/notes/[id]" | "/api/open" | "/api/plan" | "/api/plan/annotations" | "/api/plan/approve" | "/api/plan/history" | "/api/plan/markdown" | "/api/plan/presence" | "/api/plan/verdict" | "/api/preferences" | "/api/project-meta" | "/api/reset" | "/api/scope-guard/check" | "/api/share" | "/api/share/create" | "/api/stream" | "/api/tab/nav" | "/api/tab/park" | "/api/tab/presence" | "/api/tab/view" | "/api/telemetry" | "/api/telemetry/stats" | "/api/version" | "/api/workspace" | "/api/workspace/activate"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -14,6 +14,7 @@ interface ParamMap {
14
14
  "/": {}
15
15
  "/api/ask": {}
16
16
  "/api/ask/answer": {}
17
+ "/api/ask/deliver": {}
17
18
  "/api/ask/verdict": {}
18
19
  "/api/board-annotations": {}
19
20
  "/api/board-annotations/[id]": { "id": string; }
@@ -38,6 +39,7 @@ interface ParamMap {
38
39
  "/api/db/reconcile-endpoints": {}
39
40
  "/api/db/relations/[id]": { "id": string; }
40
41
  "/api/db/tables/[id]": { "id": string; }
42
+ "/api/deliverer": {}
41
43
  "/api/draft": {}
42
44
  "/api/draft/approve": {}
43
45
  "/api/draft/status": {}
@@ -86,6 +88,7 @@ interface ParamMap {
86
88
  "/api/share/create": {}
87
89
  "/api/stream": {}
88
90
  "/api/tab/nav": {}
91
+ "/api/tab/park": {}
89
92
  "/api/tab/presence": {}
90
93
  "/api/tab/view": {}
91
94
  "/api/telemetry": {}
@@ -97,6 +100,7 @@ interface ParamMap {
97
100
  "/help": {}
98
101
  "/learn": {}
99
102
  "/map": {}
103
+ "/parked": {}
100
104
  "/plan": {}
101
105
  "/s/[token]": { "token": string; }
102
106
  "/settings": {}
@@ -101,6 +101,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
101
101
  type __Unused = __Check
102
102
  }
103
103
 
104
+ // Validate ../../app/parked/page.tsx
105
+ {
106
+ type __IsExpected<Specific extends AppPageConfig<"/parked">> = Specific
107
+ const handler = {} as typeof import("../../app/parked/page.js")
108
+ type __Check = __IsExpected<typeof handler>
109
+ // @ts-ignore
110
+ type __Unused = __Check
111
+ }
112
+
104
113
  // Validate ../../app/plan/page.tsx
105
114
  {
106
115
  type __IsExpected<Specific extends AppPageConfig<"/plan">> = Specific
@@ -137,6 +146,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
137
146
  type __Unused = __Check
138
147
  }
139
148
 
149
+ // Validate ../../app/api/ask/deliver/route.ts
150
+ {
151
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/ask/deliver">> = Specific
152
+ const handler = {} as typeof import("../../app/api/ask/deliver/route.js")
153
+ type __Check = __IsExpected<typeof handler>
154
+ // @ts-ignore
155
+ type __Unused = __Check
156
+ }
157
+
140
158
  // Validate ../../app/api/ask/route.ts
141
159
  {
142
160
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/ask">> = Specific
@@ -362,6 +380,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
362
380
  type __Unused = __Check
363
381
  }
364
382
 
383
+ // Validate ../../app/api/deliverer/route.ts
384
+ {
385
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/deliverer">> = Specific
386
+ const handler = {} as typeof import("../../app/api/deliverer/route.js")
387
+ type __Check = __IsExpected<typeof handler>
388
+ // @ts-ignore
389
+ type __Unused = __Check
390
+ }
391
+
365
392
  // Validate ../../app/api/draft/approve/route.ts
366
393
  {
367
394
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/draft/approve">> = Specific
@@ -794,6 +821,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
794
821
  type __Unused = __Check
795
822
  }
796
823
 
824
+ // Validate ../../app/api/tab/park/route.ts
825
+ {
826
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/tab/park">> = Specific
827
+ const handler = {} as typeof import("../../app/api/tab/park/route.js")
828
+ type __Check = __IsExpected<typeof handler>
829
+ // @ts-ignore
830
+ type __Unused = __Check
831
+ }
832
+
797
833
  // Validate ../../app/api/tab/presence/route.ts
798
834
  {
799
835
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/tab/presence">> = Specific
package/dist/bin/ask.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var $Q=Object.defineProperty;var YQ=(Q)=>Q;function GQ(Q,X){this[Q]=YQ.bind(null,X)}var VQ=(Q,X)=>{for(var Z in X)$Q(Q,Z,{get:X[Z],enumerable:!0,configurable:!0,set:GQ.bind(X,Z)})};var E=(Q,X)=>()=>(Q&&(X=Q(Q=0)),X);var S={};VQ(S,{provisionDb:()=>TQ});import{createClient as BQ}from"@libsql/client";import{drizzle as KQ}from"drizzle-orm/libsql";import{migrate as JQ}from"drizzle-orm/libsql/migrator";import{readMigrationFiles as UQ}from"drizzle-orm/migrator";import{dirname as _,join as zQ}from"path";import{fileURLToPath as NQ}from"url";async function T(Q,X){return(await Q.execute({sql:"SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?",args:[X]})).rows.length>0}async function HQ(Q,X){let Z=await Q.execute(`PRAGMA table_info("${X}")`);return new Set(Z.rows.map(($)=>String($.name)))}async function f(Q){if(!await T(Q,"__drizzle_migrations"))return 0;let X=await Q.execute('SELECT count(*) AS n FROM "__drizzle_migrations"');return Number(X.rows[0]?.n??0)}async function CQ(Q){for(let[X,Z]of Object.entries(LQ)){if(!await T(Q,X))continue;let $=await HQ(Q,X);for(let Y of Z){if(!$.has(Y))continue;await Q.execute(`UPDATE "${X}" SET "${Y}" = CAST((julianday("${Y}") - 2440587.5) * 86400000 AS INTEGER) WHERE typeof("${Y}") = 'text'`)}}}async function TQ(Q,X=MQ){let Z=BQ({url:Q});try{await Z.execute("PRAGMA journal_mode = WAL;"),await Z.execute("PRAGMA foreign_keys = ON;"),await Z.execute("PRAGMA busy_timeout = 5000;");let $=await T(Z,"__drizzle_migrations"),Y=await T(Z,"Node"),G=!1;if(Y&&!$){let K=UQ({migrationsFolder:X})[0];if(K)await Z.execute('CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (id SERIAL PRIMARY KEY, hash text NOT NULL, created_at numeric)'),await Z.execute({sql:'INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES (?, ?)',args:[K.hash,K.folderMillis]}),G=!0}let V=await f(Z);if(await JQ(KQ(Z),{migrationsFolder:X}),await f(Z)>V)G=!0;return await CQ(Z),{migrated:G}}finally{Z.close()}}var jQ,MQ,LQ;var P=E(async()=>{jQ=_(_(_(NQ(import.meta.url)))),MQ=process.env.BEACON_MIGRATIONS_DIR||zQ(jQ,"drizzle"),LQ={Node:["createdAt","updatedAt"],Note:["createdAt","updatedAt"],DbTable:["createdAt","updatedAt"],Endpoint:["createdAt","updatedAt"],DraftTable:["createdAt"],SyncState:["codeGraphSyncedAt","updatedAt"],AppSetting:["updatedAt"],ProjectMeta:["updatedAt"],CodeFile:["updatedAt"]}});import{mkdirSync as vQ,renameSync as bQ,rmSync as kQ,writeFileSync as uQ}from"fs";import{dirname as wQ}from"path";function gQ(Q,X){vQ(wQ(Q),{recursive:!0});let Z=`${Q}.tmp`;try{uQ(Z,X),bQ(Z,Q)}catch($){throw kQ(Z,{force:!0}),$}}function mQ(Q,X,Z=!1){gQ(Q,JSON.stringify(X,null,Z?2:void 0))}var a=()=>{};var r=1500,i=480000,PX=1800000,yX=3600000,vX=3000;var I=()=>{};import{AsyncLocalStorage as xQ}from"async_hooks";import{spawnSync as EQ}from"child_process";import{createHash as _Q}from"crypto";import{existsSync as v,mkdirSync as M,readFileSync as D,writeFileSync as W}from"fs";import{homedir as b}from"os";import{basename as OQ,join as z,parse as DQ,resolve as y}from"path";function J(){return process.env.BEACON_HOME||z(b(),".beacon")}function F(){return z(J(),"workspaces.json")}function j(Q){return _Q("sha256").update(Q).digest("hex").slice(0,12)}function WQ(Q=process.cwd()){let X=EQ("git",["rev-parse","--show-toplevel"],{cwd:Q,stdio:["ignore","pipe","ignore"]});if(X.status===0){let Z=X.stdout?.toString().trim();if(Z)return Z}return Q}function k(Q){let X=y(Q);return X!==y(b())&&X!==DQ(X).root}function u(){return z(J(),"deleted.json")}function R(){try{let Q=JSON.parse(D(u(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function w(Q){M(J(),{recursive:!0}),W(u(),JSON.stringify(Q,null,2))}function g(Q){return R().includes(Q)}function jX(Q){let X=R();if(!X.includes(Q))w([...X,Q])}function FQ(Q){let X=R();if(X.includes(Q))w(X.filter((Z)=>Z!==Q))}function L(Q){return z(J(),Q)}function RQ(Q){return`file:${z(L(Q),"db.sqlite")}`}function H(){try{let Q=JSON.parse(D(F(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function q(Q){M(J(),{recursive:!0}),W(F(),JSON.stringify(Q,null,2))}function m(){return H().sort((Q,X)=>X.lastOpenedAt.localeCompare(Q.lastOpenedAt))}function U(Q){return H().find((X)=>X.id===Q)??null}function h(Q,X,Z=new Date().toISOString()){if(!k(Q))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${Q}`);let $=j(Q);if(g($))throw Error(`beacon: workspace ${$} (${Q}) was deleted \u2014 run \`beacon\` or /beacon-init to re-add it`);let Y=H(),G=Y.find((N)=>N.id===$),V={id:$,path:Q,name:X||G?.name||OQ(Q),lastOpenedAt:Z},K=[V,...Y.filter((N)=>N.id!==$)];return M(L($),{recursive:!0}),q(K),V}function MX(Q,X){return FQ(j(Q)),h(Q,X)}function LX(Q,X=new Date().toISOString()){let Z=H(),$=Z.find((Y)=>Y.id===Q);if(!$)return;$.lastOpenedAt=X,q(Z)}function HX(Q){if(q(H().filter((X)=>X.id!==Q)),A()===Q)qQ(m()[0]?.id??null)}function c(){return z(J(),"active")}function A(){try{return D(c(),"utf8").trim()||null}catch{return null}}function qQ(Q){M(J(),{recursive:!0}),W(c(),Q??"")}function AQ(){let Q=A();return Q?U(Q):null}function CX(){let Q=s()??A();return Q?U(Q):null}function TX(Q){return U(Q)?.path??null}function xX(){return v(F())}var l="beacon_ws";function p(Q,X){let Z=Q.headers.get("cookie");if(!Z)return null;for(let $ of Z.split(";")){let Y=$.indexOf("=");if(Y===-1)continue;if($.slice(0,Y).trim()===X)return decodeURIComponent($.slice(Y+1).trim())}return null}function EX(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=p(Q,l);if(Z&&U(Z))return Z;return IQ()}function IQ(){let Q=m();return Q.length===1?Q[0].id:null}var d="x-beacon-workspace-path";function _X(Q=process.cwd()){let X=WQ(Q);return{"x-beacon-workspace":j(X),[d]:X}}async function OX(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=Q.headers.get(d);if(Z&&k(Z)&&!g(j(Z))&&(!X||j(Z)===X)){let Y=h(Z);return await fQ(Y.id),Y.id}let $=p(Q,l);if($&&U($))return $;return null}var n=new xQ;function DX(Q,X){return Q?n.run(Q,X):X()}function s(){return n.getStore()??null}var O=new Set;function WX(Q){O.delete(z(L(Q),"db.sqlite"))}async function fQ(Q){let X=L(Q),Z=z(X,"db.sqlite"),$=v(Z);if($&&O.has(Z))return{ok:!0,created:!1,migrated:!1};try{M(X,{recursive:!0});let{provisionDb:Y}=await P().then(() => S),G=await Y(RQ(Q));return O.add(Z),{ok:!0,created:!$,migrated:$&&G.migrated}}catch(Y){return{ok:!1,created:!1,migrated:!1,error:Y instanceof Error?Y.message:String(Y)}}}import{connect as SQ}from"net";var o=4319;function PQ(Q,X,Z=400){return new Promise(($)=>{let Y=SQ({host:Q,port:X}),G=!1,V=(K)=>{if(G)return;G=!0,Y.destroy(),$(K)};Y.once("connect",()=>V(!0)),Y.once("error",()=>V(!1)),Y.setTimeout(Z,()=>V(!1))})}async function yQ(Q){for(let X of["127.0.0.1","::1"])if(await PQ(X,Q))return!1;return!0}async function qX(Q,X=20){for(let Z=Q;Z<Q+X;Z++)if(await yQ(Z))return Z;return Q}import{execSync as nQ}from"child_process";import{createHash as sQ}from"crypto";a();I();function t(Q,X){let Z=X.length?X.map((Y)=>`"${Y}"`).join(", "):"(no selection)",$=X.length>1?"these options":"that option";return"ANSWERED_IN_BEACON \u2014 the user answered this in Beacon (not the terminal). "+`For the question "${Q.question}" they selected: ${Z}. `+`This IS their answer \u2014 treat AskUserQuestion as answered with ${$} and continue. Do NOT call AskUserQuestion again for this question.`}function hQ(Q,X={}){let Z=typeof X.file_path==="string"?X.file_path:"",$=(Y)=>Y.length>4000?`${Y.slice(0,4000)}
3
+ var $Q=Object.defineProperty;var YQ=(Q)=>Q;function GQ(Q,X){this[Q]=YQ.bind(null,X)}var VQ=(Q,X)=>{for(var Z in X)$Q(Q,Z,{get:X[Z],enumerable:!0,configurable:!0,set:GQ.bind(X,Z)})};var x=(Q,X)=>()=>(Q&&(X=Q(Q=0)),X);var S={};VQ(S,{provisionDb:()=>TQ});import{createClient as KQ}from"@libsql/client";import{drizzle as BQ}from"drizzle-orm/libsql";import{migrate as JQ}from"drizzle-orm/libsql/migrator";import{readMigrationFiles as UQ}from"drizzle-orm/migrator";import{dirname as E,join as zQ}from"path";import{fileURLToPath as NQ}from"url";async function T(Q,X){return(await Q.execute({sql:"SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?",args:[X]})).rows.length>0}async function MQ(Q,X){let Z=await Q.execute(`PRAGMA table_info("${X}")`);return new Set(Z.rows.map(($)=>String($.name)))}async function f(Q){if(!await T(Q,"__drizzle_migrations"))return 0;let X=await Q.execute('SELECT count(*) AS n FROM "__drizzle_migrations"');return Number(X.rows[0]?.n??0)}async function HQ(Q){for(let[X,Z]of Object.entries(LQ)){if(!await T(Q,X))continue;let $=await MQ(Q,X);for(let Y of Z){if(!$.has(Y))continue;await Q.execute(`UPDATE "${X}" SET "${Y}" = CAST((julianday("${Y}") - 2440587.5) * 86400000 AS INTEGER) WHERE typeof("${Y}") = 'text'`)}}}async function TQ(Q,X=CQ){let Z=KQ({url:Q});try{await Z.execute("PRAGMA journal_mode = WAL;"),await Z.execute("PRAGMA foreign_keys = ON;"),await Z.execute("PRAGMA busy_timeout = 5000;");let $=await T(Z,"__drizzle_migrations"),Y=await T(Z,"Node"),G=!1;if(Y&&!$){let B=UQ({migrationsFolder:X})[0];if(B)await Z.execute('CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (id SERIAL PRIMARY KEY, hash text NOT NULL, created_at numeric)'),await Z.execute({sql:'INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES (?, ?)',args:[B.hash,B.folderMillis]}),G=!0}let V=await f(Z);if(await JQ(BQ(Z),{migrationsFolder:X}),await f(Z)>V)G=!0;return await HQ(Z),{migrated:G}}finally{Z.close()}}var jQ,CQ,LQ;var y=x(async()=>{jQ=E(E(E(NQ(import.meta.url)))),CQ=process.env.BEACON_MIGRATIONS_DIR||zQ(jQ,"drizzle"),LQ={Node:["createdAt","updatedAt"],Note:["createdAt","updatedAt"],DbTable:["createdAt","updatedAt"],Endpoint:["createdAt","updatedAt"],DraftTable:["createdAt"],SyncState:["codeGraphSyncedAt","updatedAt"],AppSetting:["updatedAt"],ProjectMeta:["updatedAt"],CodeFile:["updatedAt"]}});import{mkdirSync as vQ,renameSync as bQ,rmSync as kQ,writeFileSync as uQ}from"fs";import{dirname as wQ}from"path";function mQ(Q,X){vQ(wQ(Q),{recursive:!0});let Z=`${Q}.tmp`;try{uQ(Z,X),bQ(Z,Q)}catch($){throw kQ(Z,{force:!0}),$}}function gQ(Q,X,Z=!1){mQ(Q,JSON.stringify(X,null,Z?2:void 0))}var a=()=>{};var r=1500,i=480000,SX=1800000,yX=3600000,PX=3000;var A=()=>{};import{AsyncLocalStorage as xQ}from"async_hooks";import{spawnSync as EQ}from"child_process";import{createHash as _Q}from"crypto";import{existsSync as v,mkdirSync as L,readFileSync as D,writeFileSync as O}from"fs";import{homedir as b}from"os";import{basename as DQ,join as z,parse as OQ,resolve as P}from"path";function J(){return process.env.BEACON_HOME||z(b(),".beacon")}function W(){return z(J(),"workspaces.json")}function C(Q){return _Q("sha256").update(Q).digest("hex").slice(0,12)}function WQ(Q=process.cwd()){let X=EQ("git",["rev-parse","--show-toplevel"],{cwd:Q,stdio:["ignore","pipe","ignore"]});if(X.status===0){let Z=X.stdout?.toString().trim();if(Z)return Z}return Q}function k(Q){let X=P(Q);return X!==P(b())&&X!==OQ(X).root}function u(){return z(J(),"deleted.json")}function F(){try{let Q=JSON.parse(D(u(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function w(Q){L(J(),{recursive:!0}),O(u(),JSON.stringify(Q,null,2))}function m(Q){return F().includes(Q)}function NX(Q){let X=F();if(!X.includes(Q))w([...X,Q])}function FQ(Q){let X=F();if(X.includes(Q))w(X.filter((Z)=>Z!==Q))}function M(Q){return z(J(),Q)}function RQ(Q){return`file:${z(M(Q),"db.sqlite")}`}function H(){try{let Q=JSON.parse(D(W(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function R(Q){L(J(),{recursive:!0}),O(W(),JSON.stringify(Q,null,2))}function g(){return H().sort((Q,X)=>X.lastOpenedAt.localeCompare(Q.lastOpenedAt))}function U(Q){return H().find((X)=>X.id===Q)??null}function h(Q,X,Z=new Date().toISOString()){if(!k(Q))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${Q}`);let $=C(Q);if(m($))throw Error(`beacon: workspace ${$} (${Q}) was deleted \u2014 run \`beacon\` or /beacon-init to re-add it`);let Y=H(),G=Y.find((j)=>j.id===$),V={id:$,path:Q,name:X||G?.name||DQ(Q),lastOpenedAt:Z},B=[V,...Y.filter((j)=>j.id!==$)];return L(M($),{recursive:!0}),R(B),V}function jX(Q,X){return FQ(C(Q)),h(Q,X)}function CX(Q,X=new Date().toISOString()){let Z=H(),$=Z.find((Y)=>Y.id===Q);if(!$)return;$.lastOpenedAt=X,R(Z)}function LX(Q){if(R(H().filter((X)=>X.id!==Q)),q()===Q)qQ(g()[0]?.id??null)}function c(){return z(J(),"active")}function q(){try{return D(c(),"utf8").trim()||null}catch{return null}}function qQ(Q){L(J(),{recursive:!0}),O(c(),Q??"")}function AQ(){let Q=q();return Q?U(Q):null}function MX(){let Q=n()??q();return Q?U(Q):null}function HX(Q){return U(Q)?.path??null}function TX(){return v(W())}var l="beacon_ws";function p(Q,X){let Z=Q.headers.get("cookie");if(!Z)return null;for(let $ of Z.split(";")){let Y=$.indexOf("=");if(Y===-1)continue;if($.slice(0,Y).trim()===X)return decodeURIComponent($.slice(Y+1).trim())}return null}function xX(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=p(Q,l);if(Z&&U(Z))return Z;return IQ()}function IQ(){let Q=g();return Q.length===1?Q[0].id:null}var d="x-beacon-workspace-path";function EX(Q=process.cwd()){let X=WQ(Q);return{"x-beacon-workspace":C(X),[d]:X}}async function _X(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=Q.headers.get(d);if(Z&&k(Z)&&!m(C(Z))&&(!X||C(Z)===X)){let Y=h(Z);return await fQ(Y.id),Y.id}let $=p(Q,l);if($&&U($))return $;return null}var s=new xQ;function DX(Q,X){return Q?s.run(Q,X):X()}function n(){return s.getStore()??null}var _=new Set;function OX(Q){_.delete(z(M(Q),"db.sqlite"))}async function fQ(Q){let X=M(Q),Z=z(X,"db.sqlite"),$=v(Z);if($&&_.has(Z))return{ok:!0,created:!1,migrated:!1};try{L(X,{recursive:!0});let{provisionDb:Y}=await y().then(() => S),G=await Y(RQ(Q));return _.add(Z),{ok:!0,created:!$,migrated:$&&G.migrated}}catch(Y){return{ok:!1,created:!1,migrated:!1,error:Y instanceof Error?Y.message:String(Y)}}}import{connect as SQ}from"net";var o=4319;function yQ(Q,X,Z=400){return new Promise(($)=>{let Y=SQ({host:Q,port:X}),G=!1,V=(B)=>{if(G)return;G=!0,Y.destroy(),$(B)};Y.once("connect",()=>V(!0)),Y.once("error",()=>V(!1)),Y.setTimeout(Z,()=>V(!1))})}async function PQ(Q){for(let X of["127.0.0.1","::1"])if(await yQ(X,Q))return!1;return!0}async function RX(Q,X=20){for(let Z=Q;Z<Q+X;Z++)if(await PQ(Z))return Z;return Q}import{execSync as sQ}from"child_process";import{createHash as nQ}from"crypto";a();A();function t(Q,X){return{kind:"question",question:Q,mode:"mirror",transcriptPath:X}}function hQ(Q,X={}){let Z=typeof X.file_path==="string"?X.file_path:"",$=(Y)=>Y.length>4000?`${Y.slice(0,4000)}
4
4
  \u2026 (truncated)`:Y;switch(Q){case"Bash":return{tool:Q,title:"Run command",preview:$(String(X.command??""))};case"Write":return{tool:Q,title:`Write ${Z}`.trim(),preview:$(String(X.content??""))};case"Edit":return{tool:Q,title:`Edit ${Z}`.trim(),preview:$(`- ${String(X.old_string??"")}
5
- + ${String(X.new_string??"")}`)};case"MultiEdit":{let Y=Array.isArray(X.edits)?X.edits.length:0;return{tool:Q,title:`Edit ${Z}`.trim(),preview:`${Y} edit(s) to ${Z}`}}case"NotebookEdit":{let Y=typeof X.notebook_path==="string"?X.notebook_path:"";return{tool:Q,title:`Edit ${Y}`.trim(),preview:$(String(X.new_source??""))}}default:return{tool:Q,title:Q,preview:$(JSON.stringify(X))}}}function e(Q){let X=Q.tool_name??"";if(Q.hook_event_name==="PreToolUse"&&X==="AskUserQuestion"){let $=Q.tool_input?.questions?.[0];if(!$)return null;return{kind:"question",question:{header:String($.header??""),question:String($.question??""),multiSelect:!!$.multiSelect,options:Array.isArray($.options)?$.options.map((Y)=>{let G=Y;return{label:String(G.label??""),description:G.description?String(G.description):void 0}}):[]}}}if(Q.hook_event_name==="PermissionRequest"&&X&&X!=="ExitPlanMode")return{kind:"approval",approval:hQ(X,Q.tool_input??{})};return null}I();import{readFileSync as cQ}from"fs";import{join as lQ}from"path";function pQ(){try{return JSON.parse(cQ(lQ(J(),"server.json"),"utf8"))}catch{return null}}function QQ(){if(process.env.BEACON_URL)return process.env.BEACON_URL;return`http://localhost:${pQ()?.port||process.env.PORT||o}`}var dQ=["default","acceptEdits","bypassPermissions","auto"];function aX(Q){return typeof Q==="string"&&dQ.includes(Q)}function XQ(Q,X,Z){let $={behavior:"allow"};if(Z&&Object.keys(Z).length>0)$.updatedInput=Z;if(Q)$.updatedPermissions=[{type:"setMode",mode:Q,destination:"session"}];let Y={hookEventName:"PermissionRequest",decision:$};if(X?.trim())Y.additionalContext=X;return{hookSpecificOutput:Y}}var oQ=(Q)=>new Promise((X)=>setTimeout(X,Q));function x(Q){if(Q!==void 0)process.stdout.write(JSON.stringify(Q));process.exit(0)}function C(){x(void 0)}function aQ(Q){return{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:Q}}}function rQ(Q){return{hookSpecificOutput:{hookEventName:"PermissionRequest",decision:{behavior:"deny",message:Q}}}}async function iQ(){if(process.stdin.isTTY)return null;let Q="";for await(let X of process.stdin)Q+=X;if(Q=Q.trim(),!Q)return null;try{return JSON.parse(Q)}catch{return null}}function tQ(Q){try{return nQ("git rev-parse --show-toplevel",{cwd:Q||process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return Q||process.cwd()}}var eQ=(Q)=>sQ("sha256").update(Q).digest("hex").slice(0,12);(async()=>{let Q=await iQ();if(!Q)C();let X=e(Q);if(!X)C();let Z=QQ(),$=eQ(tQ(Q.cwd)),Y={"content-type":"application/json","x-beacon-workspace":$};if(!await fetch(`${Z}/api/tab/view`,{headers:Y}).then((B)=>B.ok?B.json():null).then((B)=>!!B?.live).catch(()=>!1)){if(X.kind==="question"&&Q.transcript_path)await fetch(`${Z}/api/ask`,{method:"POST",headers:Y,body:JSON.stringify({...X,mode:"mirror",transcriptPath:Q.transcript_path}),signal:AbortSignal.timeout(1500)}).catch(()=>{});C()}await fetch(`${Z}/api/workspace/activate?id=${$}`).catch(()=>{});let V=await fetch(`${Z}/api/ask`,{method:"POST",headers:Y,body:JSON.stringify(X)}).then((B)=>B.ok?B.json():null).catch(()=>null);if(!V||V.loop||!V.id)C();let K=V.id,N=Date.now()+i;while(Date.now()<N){await oQ(r);let B=await fetch(`${Z}/api/ask/verdict?id=${encodeURIComponent(K)}`,{headers:Y}).then((ZQ)=>ZQ.json()).catch(()=>null);if(!B||B.status!=="resolved")continue;if(X.kind==="question")x(aQ(t(X.question,B.resolution.selected??[])));if(B.resolution.decision==="deny")x(rQ("The user denied this action in Beacon."));x(XQ())}C()})();
5
+ + ${String(X.new_string??"")}`)};case"MultiEdit":{let Y=Array.isArray(X.edits)?X.edits.length:0;return{tool:Q,title:`Edit ${Z}`.trim(),preview:`${Y} edit(s) to ${Z}`}}case"NotebookEdit":{let Y=typeof X.notebook_path==="string"?X.notebook_path:"";return{tool:Q,title:`Edit ${Y}`.trim(),preview:$(String(X.new_source??""))}}default:return{tool:Q,title:Q,preview:$(JSON.stringify(X))}}}function e(Q){let X=Q.tool_name??"";if(Q.hook_event_name==="PreToolUse"&&X==="AskUserQuestion"){let $=Q.tool_input?.questions?.[0];if(!$)return null;return{kind:"question",question:{header:String($.header??""),question:String($.question??""),multiSelect:!!$.multiSelect,options:Array.isArray($.options)?$.options.map((Y)=>{let G=Y;return{label:String(G.label??""),description:G.description?String(G.description):void 0}}):[]}}}if(Q.hook_event_name==="PermissionRequest"&&X&&X!=="ExitPlanMode")return{kind:"approval",approval:hQ(X,Q.tool_input??{})};return null}A();import{readFileSync as cQ}from"fs";import{join as lQ}from"path";function pQ(){try{return JSON.parse(cQ(lQ(J(),"server.json"),"utf8"))}catch{return null}}function QQ(){if(process.env.BEACON_URL)return process.env.BEACON_URL;return`http://localhost:${pQ()?.port||process.env.PORT||o}`}var dQ=["default","acceptEdits","bypassPermissions","auto"];function oX(Q){return typeof Q==="string"&&dQ.includes(Q)}function XQ(Q,X,Z){let $={behavior:"allow"};if(Z&&Object.keys(Z).length>0)$.updatedInput=Z;if(Q)$.updatedPermissions=[{type:"setMode",mode:Q,destination:"session"}];let Y={hookEventName:"PermissionRequest",decision:$};if(X?.trim())Y.additionalContext=X;return{hookSpecificOutput:Y}}var oQ=(Q)=>new Promise((X)=>setTimeout(X,Q));function I(Q){if(Q!==void 0)process.stdout.write(JSON.stringify(Q));process.exit(0)}function N(){I(void 0)}function aQ(Q){return{hookSpecificOutput:{hookEventName:"PermissionRequest",decision:{behavior:"deny",message:Q}}}}async function rQ(){if(process.stdin.isTTY)return null;let Q="";for await(let X of process.stdin)Q+=X;if(Q=Q.trim(),!Q)return null;try{return JSON.parse(Q)}catch{return null}}function iQ(Q){try{return sQ("git rev-parse --show-toplevel",{cwd:Q||process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return Q||process.cwd()}}var tQ=(Q)=>nQ("sha256").update(Q).digest("hex").slice(0,12);(async()=>{let Q=await rQ();if(!Q)N();let X=e(Q);if(!X)N();let Z=QQ(),$=tQ(iQ(Q.cwd)),Y={"content-type":"application/json","x-beacon-workspace":$};if(X.kind==="question"){if(Q.transcript_path)await fetch(`${Z}/api/ask`,{method:"POST",headers:Y,body:JSON.stringify(t(X.question,Q.transcript_path)),signal:AbortSignal.timeout(1500)}).catch(()=>{});N()}if(!await fetch(`${Z}/api/tab/view`,{headers:Y}).then((K)=>K.ok?K.json():null).then((K)=>!!K?.live).catch(()=>!1))N();await fetch(`${Z}/api/workspace/activate?id=${$}`).catch(()=>{});let V=await fetch(`${Z}/api/ask`,{method:"POST",headers:Y,body:JSON.stringify(X)}).then((K)=>K.ok?K.json():null).catch(()=>null);if(!V||V.loop||!V.id)N();let B=V.id,j=Date.now()+i;while(Date.now()<j){await oQ(r);let K=await fetch(`${Z}/api/ask/verdict?id=${encodeURIComponent(B)}`,{headers:Y}).then((ZQ)=>ZQ.json()).catch(()=>null);if(!K||K.status!=="resolved")continue;if(K.resolution.decision==="deny")I(aQ("The user denied this action in Beacon."));I(XQ())}N()})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trybeacon",
3
- "version": "0.1.87",
3
+ "version": "0.1.89",
4
4
  "description": "The visual planning surface for the coding agent in your terminal.",
5
5
  "homepage": "https://trybeacon.sh",
6
6
  "license": "Apache-2.0",