cuelo 0.5.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 (967) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +72 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +138 -0
  12. package/.next/react-loadable-manifest.json +2370 -0
  13. package/.next/required-server-files.js +350 -0
  14. package/.next/required-server-files.json +350 -0
  15. package/.next/routes-manifest.json +537 -0
  16. package/.next/server/app/_global-error/page.js +32 -0
  17. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  18. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/_global-error.html +1 -0
  20. package/.next/server/app/_global-error.meta +16 -0
  21. package/.next/server/app/_global-error.rsc +14 -0
  22. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  23. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  24. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  25. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  26. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  27. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  28. package/.next/server/app/_not-found/page.js +2 -0
  29. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  30. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/_not-found.html +1 -0
  32. package/.next/server/app/_not-found.meta +16 -0
  33. package/.next/server/app/_not-found.rsc +18 -0
  34. package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -0
  35. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  36. package/.next/server/app/_not-found.segments/_index.segment.rsc +7 -0
  37. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  38. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  39. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  40. package/.next/server/app/api/agent/[id]/account/route.js +1 -0
  41. package/.next/server/app/api/agent/[id]/account/route.js.nft.json +1 -0
  42. package/.next/server/app/api/agent/[id]/account/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
  44. package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
  45. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/agent/[id]/events/route.js +3 -0
  47. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
  48. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
  49. package/.next/server/app/api/agent/[id]/route.js +1 -0
  50. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
  51. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/agent/new/route.js +1 -0
  53. package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
  54. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/agent/running/route.js +1 -0
  56. package/.next/server/app/api/agent/running/route.js.nft.json +1 -0
  57. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/auth/all-providers/route.js +1 -0
  59. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -0
  60. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
  62. package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
  63. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
  65. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
  66. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
  68. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
  69. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/auth/providers/route.js +1 -0
  71. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
  72. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/cwd/browse/route.js +1 -0
  74. package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -0
  75. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
  76. package/.next/server/app/api/cwd/validate/route.js +1 -0
  77. package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
  78. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
  79. package/.next/server/app/api/default-cwd/route.js +1 -0
  80. package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
  81. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
  82. package/.next/server/app/api/display-settings/route.js +1 -0
  83. package/.next/server/app/api/display-settings/route.js.nft.json +1 -0
  84. package/.next/server/app/api/display-settings/route_client-reference-manifest.js +1 -0
  85. package/.next/server/app/api/document-text/route.js +4 -0
  86. package/.next/server/app/api/document-text/route.js.nft.json +1 -0
  87. package/.next/server/app/api/document-text/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/experiments/route.js +1 -0
  89. package/.next/server/app/api/experiments/route.js.nft.json +1 -0
  90. package/.next/server/app/api/experiments/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/file-index/route.js +1 -0
  92. package/.next/server/app/api/file-index/route.js.nft.json +1 -0
  93. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/files/[...path]/route.js +49 -0
  95. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
  96. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
  97. package/.next/server/app/api/git/diff/route.js +6 -0
  98. package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
  99. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/git/status/route.js +6 -0
  101. package/.next/server/app/api/git/status/route.js.nft.json +1 -0
  102. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
  103. package/.next/server/app/api/gpt6/handles/route.js +1 -0
  104. package/.next/server/app/api/gpt6/handles/route.js.nft.json +1 -0
  105. package/.next/server/app/api/gpt6/handles/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/gpt6/mcp/route.js +2 -0
  107. package/.next/server/app/api/gpt6/mcp/route.js.nft.json +1 -0
  108. package/.next/server/app/api/gpt6/mcp/route_client-reference-manifest.js +1 -0
  109. package/.next/server/app/api/gpt6/reply/route.js +1 -0
  110. package/.next/server/app/api/gpt6/reply/route.js.nft.json +1 -0
  111. package/.next/server/app/api/gpt6/reply/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/gpt6/token/route.js +1 -0
  113. package/.next/server/app/api/gpt6/token/route.js.nft.json +1 -0
  114. package/.next/server/app/api/gpt6/token/route_client-reference-manifest.js +1 -0
  115. package/.next/server/app/api/gpt6/web6-session/route.js +1 -0
  116. package/.next/server/app/api/gpt6/web6-session/route.js.nft.json +1 -0
  117. package/.next/server/app/api/gpt6/web6-session/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/home/route.js +1 -0
  119. package/.next/server/app/api/home/route.js.nft.json +1 -0
  120. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
  121. package/.next/server/app/api/live/call/[callId]/route.js +1 -0
  122. package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -0
  123. package/.next/server/app/api/live/call/[callId]/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/live/events/route.js +3 -0
  125. package/.next/server/app/api/live/events/route.js.nft.json +1 -0
  126. package/.next/server/app/api/live/events/route_client-reference-manifest.js +1 -0
  127. package/.next/server/app/api/live/offer/route.js +1 -0
  128. package/.next/server/app/api/live/offer/route.js.nft.json +1 -0
  129. package/.next/server/app/api/live/offer/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/live/voices/route.js +1 -0
  131. package/.next/server/app/api/live/voices/route.js.nft.json +1 -0
  132. package/.next/server/app/api/live/voices/route_client-reference-manifest.js +1 -0
  133. package/.next/server/app/api/mcp/route.js +2 -0
  134. package/.next/server/app/api/mcp/route.js.nft.json +1 -0
  135. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/model-roles/route.js +1 -0
  137. package/.next/server/app/api/model-roles/route.js.nft.json +1 -0
  138. package/.next/server/app/api/model-roles/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/models/route.js +1 -0
  140. package/.next/server/app/api/models/route.js.nft.json +1 -0
  141. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/models-config/catalog/route.js +1 -0
  143. package/.next/server/app/api/models-config/catalog/route.js.nft.json +1 -0
  144. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
  145. package/.next/server/app/api/models-config/discover/route.js +1 -0
  146. package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -0
  147. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/models-config/route.js +25 -0
  149. package/.next/server/app/api/models-config/route.js.nft.json +1 -0
  150. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
  151. package/.next/server/app/api/models-config/test/route.js +1 -0
  152. package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
  153. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/plugins/route.js +1 -0
  155. package/.next/server/app/api/plugins/route.js.nft.json +1 -0
  156. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
  157. package/.next/server/app/api/project-trust/route.js +1 -0
  158. package/.next/server/app/api/project-trust/route.js.nft.json +1 -0
  159. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/projects/route.js +2 -0
  161. package/.next/server/app/api/projects/route.js.nft.json +1 -0
  162. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/runs/[runId]/route.js +1 -0
  164. package/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -0
  165. package/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/runs/route.js +1 -0
  167. package/.next/server/app/api/runs/route.js.nft.json +1 -0
  168. package/.next/server/app/api/runs/route_client-reference-manifest.js +1 -0
  169. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -0
  170. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
  171. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
  173. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
  174. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
  176. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
  177. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app/api/sessions/[id]/export/route.js +1 -0
  179. package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
  180. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
  181. package/.next/server/app/api/sessions/[id]/route.js +1 -0
  182. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
  183. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
  184. package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
  185. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
  186. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
  187. package/.next/server/app/api/sessions/route.js +1 -0
  188. package/.next/server/app/api/sessions/route.js.nft.json +1 -0
  189. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
  190. package/.next/server/app/api/settings/route.js +1 -0
  191. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  192. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
  193. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -0
  194. package/.next/server/app/api/sidecars/[service]/[...path]/route.js.nft.json +1 -0
  195. package/.next/server/app/api/sidecars/[service]/[...path]/route_client-reference-manifest.js +1 -0
  196. package/.next/server/app/api/skills/check/route.js +1 -0
  197. package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
  198. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
  199. package/.next/server/app/api/skills/install/route.js +2 -0
  200. package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
  201. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
  202. package/.next/server/app/api/skills/route.js +6 -0
  203. package/.next/server/app/api/skills/route.js.nft.json +1 -0
  204. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  205. package/.next/server/app/api/skills/search/route.js +1 -0
  206. package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
  207. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
  208. package/.next/server/app/api/skills/update/route.js +1 -0
  209. package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
  210. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
  211. package/.next/server/app/api/theme/route.js +1 -0
  212. package/.next/server/app/api/theme/route.js.nft.json +1 -0
  213. package/.next/server/app/api/theme/route_client-reference-manifest.js +1 -0
  214. package/.next/server/app/api/update-maintenance/route.js +556 -0
  215. package/.next/server/app/api/update-maintenance/route.js.nft.json +1 -0
  216. package/.next/server/app/api/update-maintenance/route_client-reference-manifest.js +1 -0
  217. package/.next/server/app/api/updates/route.js +1 -0
  218. package/.next/server/app/api/updates/route.js.nft.json +1 -0
  219. package/.next/server/app/api/updates/route_client-reference-manifest.js +1 -0
  220. package/.next/server/app/api/web-access/recovery/route.js +1 -0
  221. package/.next/server/app/api/web-access/recovery/route.js.nft.json +1 -0
  222. package/.next/server/app/api/web-access/recovery/route_client-reference-manifest.js +1 -0
  223. package/.next/server/app/api/web-access/route.js +1 -0
  224. package/.next/server/app/api/web-access/route.js.nft.json +1 -0
  225. package/.next/server/app/api/web-access/route_client-reference-manifest.js +1 -0
  226. package/.next/server/app/api/web6/consults/route.js +1 -0
  227. package/.next/server/app/api/web6/consults/route.js.nft.json +1 -0
  228. package/.next/server/app/api/web6/consults/route_client-reference-manifest.js +1 -0
  229. package/.next/server/app/api/worktrees/route.js +1 -0
  230. package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
  231. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
  232. package/.next/server/app/favicon.ico/route.js +1 -0
  233. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  234. package/.next/server/app/favicon.ico.body +0 -0
  235. package/.next/server/app/favicon.ico.meta +1 -0
  236. package/.next/server/app/index.html +1 -0
  237. package/.next/server/app/index.meta +14 -0
  238. package/.next/server/app/index.rsc +20 -0
  239. package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  240. package/.next/server/app/index.segments/_full.segment.rsc +20 -0
  241. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  242. package/.next/server/app/index.segments/_index.segment.rsc +7 -0
  243. package/.next/server/app/index.segments/_tree.segment.rsc +5 -0
  244. package/.next/server/app/manifest.webmanifest/route.js +16 -0
  245. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -0
  246. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
  247. package/.next/server/app/page.js +22 -0
  248. package/.next/server/app/page.js.nft.json +1 -0
  249. package/.next/server/app/page_client-reference-manifest.js +1 -0
  250. package/.next/server/app/recover/page.js +2 -0
  251. package/.next/server/app/recover/page.js.nft.json +1 -0
  252. package/.next/server/app/recover/page_client-reference-manifest.js +1 -0
  253. package/.next/server/app/recover.html +1 -0
  254. package/.next/server/app/recover.meta +15 -0
  255. package/.next/server/app/recover.rsc +23 -0
  256. package/.next/server/app/recover.segments/_full.segment.rsc +23 -0
  257. package/.next/server/app/recover.segments/_head.segment.rsc +6 -0
  258. package/.next/server/app/recover.segments/_index.segment.rsc +7 -0
  259. package/.next/server/app/recover.segments/_tree.segment.rsc +4 -0
  260. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +10 -0
  261. package/.next/server/app/recover.segments/recover.segment.rsc +5 -0
  262. package/.next/server/app-paths-manifest.json +72 -0
  263. package/.next/server/chunks/11.js +1 -0
  264. package/.next/server/chunks/1286.js +1 -0
  265. package/.next/server/chunks/1412.js +38 -0
  266. package/.next/server/chunks/1517.js +19 -0
  267. package/.next/server/chunks/1605.js +1 -0
  268. package/.next/server/chunks/169.js +1 -0
  269. package/.next/server/chunks/18.js +86 -0
  270. package/.next/server/chunks/1813.js +1 -0
  271. package/.next/server/chunks/2022.js +1 -0
  272. package/.next/server/chunks/2156.js +1 -0
  273. package/.next/server/chunks/2157.js +1 -0
  274. package/.next/server/chunks/2325.js +82 -0
  275. package/.next/server/chunks/2651.js +2 -0
  276. package/.next/server/chunks/2838.js +1 -0
  277. package/.next/server/chunks/2897.js +79 -0
  278. package/.next/server/chunks/2958.js +90 -0
  279. package/.next/server/chunks/319.js +45 -0
  280. package/.next/server/chunks/3227.js +1 -0
  281. package/.next/server/chunks/3229.js +2 -0
  282. package/.next/server/chunks/3266.js +1 -0
  283. package/.next/server/chunks/3379.js +1 -0
  284. package/.next/server/chunks/3428.js +32 -0
  285. package/.next/server/chunks/3479.js +1 -0
  286. package/.next/server/chunks/367.js +115 -0
  287. package/.next/server/chunks/3698.js +93 -0
  288. package/.next/server/chunks/3709.js +148 -0
  289. package/.next/server/chunks/3759.js +34 -0
  290. package/.next/server/chunks/4107.js +62 -0
  291. package/.next/server/chunks/4741.js +20 -0
  292. package/.next/server/chunks/4755.js +153 -0
  293. package/.next/server/chunks/5002.js +1 -0
  294. package/.next/server/chunks/5112.js +1 -0
  295. package/.next/server/chunks/5289.js +8 -0
  296. package/.next/server/chunks/5318.js +1 -0
  297. package/.next/server/chunks/5452.js +23 -0
  298. package/.next/server/chunks/5453.js +1 -0
  299. package/.next/server/chunks/5582.js +20 -0
  300. package/.next/server/chunks/5749.js +27 -0
  301. package/.next/server/chunks/5782.js +36 -0
  302. package/.next/server/chunks/6163.js +104 -0
  303. package/.next/server/chunks/6169.js +64 -0
  304. package/.next/server/chunks/6208.js +172 -0
  305. package/.next/server/chunks/6399.js +24 -0
  306. package/.next/server/chunks/6429.js +10 -0
  307. package/.next/server/chunks/6496.js +1 -0
  308. package/.next/server/chunks/6775.js +6 -0
  309. package/.next/server/chunks/6823.js +215 -0
  310. package/.next/server/chunks/6888.js +1 -0
  311. package/.next/server/chunks/7245.js +77 -0
  312. package/.next/server/chunks/7307.js +1 -0
  313. package/.next/server/chunks/7372.js +287 -0
  314. package/.next/server/chunks/7384.js +226 -0
  315. package/.next/server/chunks/7516.js +1 -0
  316. package/.next/server/chunks/7531.js +24 -0
  317. package/.next/server/chunks/7591.js +1 -0
  318. package/.next/server/chunks/7755.js +138 -0
  319. package/.next/server/chunks/7916.js +1 -0
  320. package/.next/server/chunks/8078.js +94 -0
  321. package/.next/server/chunks/8253.js +41 -0
  322. package/.next/server/chunks/8635.js +1 -0
  323. package/.next/server/chunks/8688.js +1 -0
  324. package/.next/server/chunks/877.js +1 -0
  325. package/.next/server/chunks/8872.js +1 -0
  326. package/.next/server/chunks/9006.js +1 -0
  327. package/.next/server/chunks/9018.js +1 -0
  328. package/.next/server/chunks/9047.js +1 -0
  329. package/.next/server/chunks/9108.js +1 -0
  330. package/.next/server/chunks/9280.js +256 -0
  331. package/.next/server/chunks/9419.js +1 -0
  332. package/.next/server/chunks/9430.js +1 -0
  333. package/.next/server/chunks/9586.js +1 -0
  334. package/.next/server/chunks/9775.js +1 -0
  335. package/.next/server/chunks/9910.js +1 -0
  336. package/.next/server/chunks/992.js +1 -0
  337. package/.next/server/chunks/9926.js +1 -0
  338. package/.next/server/functions-config-manifest.json +25 -0
  339. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  340. package/.next/server/middleware-build-manifest.js +1 -0
  341. package/.next/server/middleware-manifest.json +6 -0
  342. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  343. package/.next/server/middleware.js +45 -0
  344. package/.next/server/middleware.js.nft.json +1 -0
  345. package/.next/server/next-font-manifest.js +1 -0
  346. package/.next/server/next-font-manifest.json +1 -0
  347. package/.next/server/pages/404.html +1 -0
  348. package/.next/server/pages/500.html +1 -0
  349. package/.next/server/pages-manifest.json +4 -0
  350. package/.next/server/prefetch-hints.json +1 -0
  351. package/.next/server/server-reference-manifest.js +1 -0
  352. package/.next/server/server-reference-manifest.json +1 -0
  353. package/.next/server/webpack-runtime.js +1 -0
  354. package/.next/static/MvC-CM1U-UMEzpaGIsCuQ/_buildManifest.js +1 -0
  355. package/.next/static/MvC-CM1U-UMEzpaGIsCuQ/_ssgManifest.js +1 -0
  356. package/.next/static/chunks/1213.e5c6e70a79b5f7e6.js +24 -0
  357. package/.next/static/chunks/1519.2f596e5f5af9ef57.js +62 -0
  358. package/.next/static/chunks/1966.b8f83f7ba376c962.js +1 -0
  359. package/.next/static/chunks/1974.885c9a133b86d8a4.js +32 -0
  360. package/.next/static/chunks/2280.6a7f540787704698.js +1 -0
  361. package/.next/static/chunks/2521.7f745f50d30076e7.js +77 -0
  362. package/.next/static/chunks/2585.4d6aa847c780c666.js +1 -0
  363. package/.next/static/chunks/2589.1aad68c09021b1ac.js +1 -0
  364. package/.next/static/chunks/2600.45ba17a0f756fc31.js +1 -0
  365. package/.next/static/chunks/2619.9aac8983f30c7c8a.js +1 -0
  366. package/.next/static/chunks/26d302b2.b77b53a34ca944aa.js +122 -0
  367. package/.next/static/chunks/2768.305914f7900745b6.js +1 -0
  368. package/.next/static/chunks/3016.406e568aa95ff867.js +1 -0
  369. package/.next/static/chunks/3022.972047558a20553a.js +172 -0
  370. package/.next/static/chunks/3064.3a2a1e7cd4fdca5f.js +1 -0
  371. package/.next/static/chunks/3174.03fbed7b7d7a8256.js +1 -0
  372. package/.next/static/chunks/3189.b048866768087750.js +1 -0
  373. package/.next/static/chunks/3217.1a053843c58b70b5.js +24 -0
  374. package/.next/static/chunks/3308.34ea31e24088c85f.js +74 -0
  375. package/.next/static/chunks/331.fc5d78e1e91daf43.js +1 -0
  376. package/.next/static/chunks/3510.5d4d1c79533e080c.js +1 -0
  377. package/.next/static/chunks/364.ce5400a9dd70b9dc.js +1 -0
  378. package/.next/static/chunks/370.57cfa27da8567918.js +1 -0
  379. package/.next/static/chunks/3789.c418b69121761983.js +1 -0
  380. package/.next/static/chunks/3794-1b03b52e3112452e.js +32 -0
  381. package/.next/static/chunks/3831.25ae62d10dccc27a.js +1 -0
  382. package/.next/static/chunks/3899.3f761f7e3a944e8c.js +1 -0
  383. package/.next/static/chunks/3a7aa434.93dbd20997cfd24f.js +82 -0
  384. package/.next/static/chunks/4020.3cc19c463c49f969.js +23 -0
  385. package/.next/static/chunks/4035.0acc428926d5c8dd.js +1 -0
  386. package/.next/static/chunks/405.0902e4f6eb7bd9a2.js +215 -0
  387. package/.next/static/chunks/4159.49ae537ff687bdc6.js +138 -0
  388. package/.next/static/chunks/4208.384b381ca2757643.js +287 -0
  389. package/.next/static/chunks/4263.ffa8d9bd8a0faaae.js +1 -0
  390. package/.next/static/chunks/4592.d0f37bc216b9d988.js +93 -0
  391. package/.next/static/chunks/4799.0dc7aa21bff2fd2a.js +1 -0
  392. package/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
  393. package/.next/static/chunks/514.b804c51b26f5e126.js +1 -0
  394. package/.next/static/chunks/5270.28592864d38e881c.js +1 -0
  395. package/.next/static/chunks/52733464.3870f99cc446f9ff.js +1 -0
  396. package/.next/static/chunks/5312.4828d88ccc66f057.js +41 -0
  397. package/.next/static/chunks/5354.b559c717a607dc5c.js +1 -0
  398. package/.next/static/chunks/5413.1f8eeba1c502f3e9.js +34 -0
  399. package/.next/static/chunks/5448.d3972d9fb464b54f.js +38 -0
  400. package/.next/static/chunks/587.d52737d7288c11b4.js +1 -0
  401. package/.next/static/chunks/5909.9e37f7b495b11995.js +115 -0
  402. package/.next/static/chunks/5949.5504b3545fcc3d34.js +104 -0
  403. package/.next/static/chunks/6361.893d04ac34fa1b49.js +148 -0
  404. package/.next/static/chunks/6379-7da431a165ac5d41.js +7 -0
  405. package/.next/static/chunks/6774.8cd53427dbf32cac.js +86 -0
  406. package/.next/static/chunks/6968.b80277c724dbc96e.js +1 -0
  407. package/.next/static/chunks/7113.4b9e7ea870aa300a.js +8 -0
  408. package/.next/static/chunks/7236.55a9728d35f5b8a6.js +1 -0
  409. package/.next/static/chunks/7390.dde9b5bc2f6e24b8.js +1 -0
  410. package/.next/static/chunks/7806.a903780fcfa3a30e.js +1 -0
  411. package/.next/static/chunks/7997.be57e92e583fe635.js +1 -0
  412. package/.next/static/chunks/8216.64a72d4d35ea7be0.js +1 -0
  413. package/.next/static/chunks/830.5d5274d7ad1cb58e.js +1 -0
  414. package/.next/static/chunks/8378.fa91de3406f554c9.js +226 -0
  415. package/.next/static/chunks/8501.cd06aa1b0c7e1c6a.js +79 -0
  416. package/.next/static/chunks/8663.6ec5792fb4952e45.js +27 -0
  417. package/.next/static/chunks/872.96937e758ddce860.js +1 -0
  418. package/.next/static/chunks/8803.75bde095fe3613f5.js +1 -0
  419. package/.next/static/chunks/8863.72f5dbb820a0e4c3.js +1 -0
  420. package/.next/static/chunks/889.ff9934ce4324e448.js +90 -0
  421. package/.next/static/chunks/90542734.b88b1467ff8248c7.js +1 -0
  422. package/.next/static/chunks/9379.5bc9c9343ec5a16c.js +64 -0
  423. package/.next/static/chunks/9389.906fe7aa9cd6a170.js +1 -0
  424. package/.next/static/chunks/9472.8818ee52cfa931a4.js +94 -0
  425. package/.next/static/chunks/966.d6babbf8119162cc.js +1 -0
  426. package/.next/static/chunks/9884.839b23ae397c150e.js +36 -0
  427. package/.next/static/chunks/app/_global-error/page-a9c51a9353807009.js +1 -0
  428. package/.next/static/chunks/app/_not-found/page-d3f2ac234e6fd3b6.js +1 -0
  429. package/.next/static/chunks/app/api/agent/[id]/account/route-a9c51a9353807009.js +1 -0
  430. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-a9c51a9353807009.js +1 -0
  431. package/.next/static/chunks/app/api/agent/[id]/events/route-a9c51a9353807009.js +1 -0
  432. package/.next/static/chunks/app/api/agent/[id]/route-a9c51a9353807009.js +1 -0
  433. package/.next/static/chunks/app/api/agent/new/route-a9c51a9353807009.js +1 -0
  434. package/.next/static/chunks/app/api/agent/running/route-a9c51a9353807009.js +1 -0
  435. package/.next/static/chunks/app/api/auth/all-providers/route-a9c51a9353807009.js +1 -0
  436. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-a9c51a9353807009.js +1 -0
  437. package/.next/static/chunks/app/api/auth/login/[provider]/route-a9c51a9353807009.js +1 -0
  438. package/.next/static/chunks/app/api/auth/logout/[provider]/route-a9c51a9353807009.js +1 -0
  439. package/.next/static/chunks/app/api/auth/providers/route-a9c51a9353807009.js +1 -0
  440. package/.next/static/chunks/app/api/cwd/browse/route-a9c51a9353807009.js +1 -0
  441. package/.next/static/chunks/app/api/cwd/validate/route-a9c51a9353807009.js +1 -0
  442. package/.next/static/chunks/app/api/default-cwd/route-a9c51a9353807009.js +1 -0
  443. package/.next/static/chunks/app/api/display-settings/route-a9c51a9353807009.js +1 -0
  444. package/.next/static/chunks/app/api/document-text/route-a9c51a9353807009.js +1 -0
  445. package/.next/static/chunks/app/api/experiments/route-a9c51a9353807009.js +1 -0
  446. package/.next/static/chunks/app/api/file-index/route-a9c51a9353807009.js +1 -0
  447. package/.next/static/chunks/app/api/files/[...path]/route-a9c51a9353807009.js +1 -0
  448. package/.next/static/chunks/app/api/git/diff/route-a9c51a9353807009.js +1 -0
  449. package/.next/static/chunks/app/api/git/status/route-a9c51a9353807009.js +1 -0
  450. package/.next/static/chunks/app/api/gpt6/handles/route-a9c51a9353807009.js +1 -0
  451. package/.next/static/chunks/app/api/gpt6/mcp/route-a9c51a9353807009.js +1 -0
  452. package/.next/static/chunks/app/api/gpt6/reply/route-a9c51a9353807009.js +1 -0
  453. package/.next/static/chunks/app/api/gpt6/token/route-a9c51a9353807009.js +1 -0
  454. package/.next/static/chunks/app/api/gpt6/web6-session/route-a9c51a9353807009.js +1 -0
  455. package/.next/static/chunks/app/api/home/route-a9c51a9353807009.js +1 -0
  456. package/.next/static/chunks/app/api/live/call/[callId]/route-a9c51a9353807009.js +1 -0
  457. package/.next/static/chunks/app/api/live/events/route-a9c51a9353807009.js +1 -0
  458. package/.next/static/chunks/app/api/live/offer/route-a9c51a9353807009.js +1 -0
  459. package/.next/static/chunks/app/api/live/voices/route-a9c51a9353807009.js +1 -0
  460. package/.next/static/chunks/app/api/mcp/route-a9c51a9353807009.js +1 -0
  461. package/.next/static/chunks/app/api/model-roles/route-a9c51a9353807009.js +1 -0
  462. package/.next/static/chunks/app/api/models/route-a9c51a9353807009.js +1 -0
  463. package/.next/static/chunks/app/api/models-config/catalog/route-a9c51a9353807009.js +1 -0
  464. package/.next/static/chunks/app/api/models-config/discover/route-a9c51a9353807009.js +1 -0
  465. package/.next/static/chunks/app/api/models-config/route-a9c51a9353807009.js +1 -0
  466. package/.next/static/chunks/app/api/models-config/test/route-a9c51a9353807009.js +1 -0
  467. package/.next/static/chunks/app/api/plugins/route-a9c51a9353807009.js +1 -0
  468. package/.next/static/chunks/app/api/project-trust/route-a9c51a9353807009.js +1 -0
  469. package/.next/static/chunks/app/api/projects/route-a9c51a9353807009.js +1 -0
  470. package/.next/static/chunks/app/api/runs/[runId]/route-a9c51a9353807009.js +1 -0
  471. package/.next/static/chunks/app/api/runs/route-a9c51a9353807009.js +1 -0
  472. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-a9c51a9353807009.js +1 -0
  473. package/.next/static/chunks/app/api/sessions/[id]/context/route-a9c51a9353807009.js +1 -0
  474. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-a9c51a9353807009.js +1 -0
  475. package/.next/static/chunks/app/api/sessions/[id]/export/route-a9c51a9353807009.js +1 -0
  476. package/.next/static/chunks/app/api/sessions/[id]/route-a9c51a9353807009.js +1 -0
  477. package/.next/static/chunks/app/api/sessions/[id]/state/route-a9c51a9353807009.js +1 -0
  478. package/.next/static/chunks/app/api/sessions/route-a9c51a9353807009.js +1 -0
  479. package/.next/static/chunks/app/api/settings/route-a9c51a9353807009.js +1 -0
  480. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-a9c51a9353807009.js +1 -0
  481. package/.next/static/chunks/app/api/skills/check/route-a9c51a9353807009.js +1 -0
  482. package/.next/static/chunks/app/api/skills/install/route-a9c51a9353807009.js +1 -0
  483. package/.next/static/chunks/app/api/skills/route-a9c51a9353807009.js +1 -0
  484. package/.next/static/chunks/app/api/skills/search/route-a9c51a9353807009.js +1 -0
  485. package/.next/static/chunks/app/api/skills/update/route-a9c51a9353807009.js +1 -0
  486. package/.next/static/chunks/app/api/theme/route-a9c51a9353807009.js +1 -0
  487. package/.next/static/chunks/app/api/update-maintenance/route-a9c51a9353807009.js +1 -0
  488. package/.next/static/chunks/app/api/updates/route-a9c51a9353807009.js +1 -0
  489. package/.next/static/chunks/app/api/web-access/recovery/route-a9c51a9353807009.js +1 -0
  490. package/.next/static/chunks/app/api/web-access/route-a9c51a9353807009.js +1 -0
  491. package/.next/static/chunks/app/api/web6/consults/route-a9c51a9353807009.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/route-a9c51a9353807009.js +1 -0
  493. package/.next/static/chunks/app/layout-95725ad1abf3cb75.js +1 -0
  494. package/.next/static/chunks/app/manifest.webmanifest/route-a9c51a9353807009.js +1 -0
  495. package/.next/static/chunks/app/page-26a4df181c1d562c.js +15 -0
  496. package/.next/static/chunks/app/recover/page-770a1de1ff4ded56.js +1 -0
  497. package/.next/static/chunks/c16f53c3-7916593d74747bde.js +1 -0
  498. package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
  499. package/.next/static/chunks/e413bedd.3a12a8cb02e28fdf.js +153 -0
  500. package/.next/static/chunks/ea233666.f00b64a7d99b4950.js +62 -0
  501. package/.next/static/chunks/framework-32a7466d5cae4a81.js +1 -0
  502. package/.next/static/chunks/main-50999e6ee5708e08.js +5 -0
  503. package/.next/static/chunks/main-app-0dc38ffe862cd588.js +1 -0
  504. package/.next/static/chunks/next/dist/client/components/builtin/app-error-a9c51a9353807009.js +1 -0
  505. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a9c51a9353807009.js +1 -0
  506. package/.next/static/chunks/next/dist/client/components/builtin/global-error-070571d2fa580e7d.js +1 -0
  507. package/.next/static/chunks/next/dist/client/components/builtin/not-found-a9c51a9353807009.js +1 -0
  508. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a9c51a9353807009.js +1 -0
  509. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  510. package/.next/static/chunks/webpack-4094d78ef0b4c382.js +1 -0
  511. package/.next/static/css/2f46e0db0d4a3aed.css +1 -0
  512. package/.next/static/css/792a9d55c2fd2c0c.css +1 -0
  513. package/.next/static/css/92023589aa455863.css +1 -0
  514. package/.next/static/css/bb6b220f400250d8.css +1 -0
  515. package/.next/static/css/bc8f2da9192ea16d.css +1 -0
  516. package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  517. package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  518. package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  519. package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  520. package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  521. package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  522. package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  523. package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  524. package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  525. package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  526. package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  527. package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  528. package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  529. package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  530. package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  531. package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  532. package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  533. package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  534. package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  535. package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  536. package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  537. package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  538. package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  539. package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  540. package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  541. package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  542. package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  543. package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  544. package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  545. package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  546. package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  547. package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  548. package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  549. package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  550. package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  551. package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  552. package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  553. package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  554. package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  555. package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  556. package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  557. package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  558. package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  559. package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  560. package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  561. package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  562. package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  563. package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  564. package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  565. package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  566. package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  567. package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  568. package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  569. package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  570. package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  571. package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  572. package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  573. package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  574. package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  575. package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  576. package/.next/trace +8 -0
  577. package/.next/trace-build +1 -0
  578. package/.next/types/app/api/agent/[id]/account/route.ts +351 -0
  579. package/.next/types/app/api/agent/[id]/bash-output/route.ts +351 -0
  580. package/.next/types/app/api/agent/[id]/events/route.ts +351 -0
  581. package/.next/types/app/api/agent/[id]/route.ts +351 -0
  582. package/.next/types/app/api/agent/new/route.ts +351 -0
  583. package/.next/types/app/api/agent/running/route.ts +351 -0
  584. package/.next/types/app/api/auth/all-providers/route.ts +351 -0
  585. package/.next/types/app/api/auth/api-key/[provider]/route.ts +351 -0
  586. package/.next/types/app/api/auth/login/[provider]/route.ts +351 -0
  587. package/.next/types/app/api/auth/logout/[provider]/route.ts +351 -0
  588. package/.next/types/app/api/auth/providers/route.ts +351 -0
  589. package/.next/types/app/api/cwd/browse/route.ts +351 -0
  590. package/.next/types/app/api/cwd/validate/route.ts +351 -0
  591. package/.next/types/app/api/default-cwd/route.ts +351 -0
  592. package/.next/types/app/api/display-settings/route.ts +351 -0
  593. package/.next/types/app/api/document-text/route.ts +351 -0
  594. package/.next/types/app/api/experiments/route.ts +351 -0
  595. package/.next/types/app/api/file-index/route.ts +351 -0
  596. package/.next/types/app/api/files/[...path]/route.ts +351 -0
  597. package/.next/types/app/api/git/diff/route.ts +351 -0
  598. package/.next/types/app/api/git/status/route.ts +351 -0
  599. package/.next/types/app/api/gpt6/handles/route.ts +351 -0
  600. package/.next/types/app/api/gpt6/mcp/route.ts +351 -0
  601. package/.next/types/app/api/gpt6/reply/route.ts +351 -0
  602. package/.next/types/app/api/gpt6/token/route.ts +351 -0
  603. package/.next/types/app/api/gpt6/web6-session/route.ts +351 -0
  604. package/.next/types/app/api/home/route.ts +351 -0
  605. package/.next/types/app/api/live/call/[callId]/route.ts +351 -0
  606. package/.next/types/app/api/live/events/route.ts +351 -0
  607. package/.next/types/app/api/live/offer/route.ts +351 -0
  608. package/.next/types/app/api/live/voices/route.ts +351 -0
  609. package/.next/types/app/api/mcp/route.ts +351 -0
  610. package/.next/types/app/api/model-roles/route.ts +351 -0
  611. package/.next/types/app/api/models/route.ts +351 -0
  612. package/.next/types/app/api/models-config/catalog/route.ts +351 -0
  613. package/.next/types/app/api/models-config/discover/route.ts +351 -0
  614. package/.next/types/app/api/models-config/route.ts +351 -0
  615. package/.next/types/app/api/models-config/test/route.ts +351 -0
  616. package/.next/types/app/api/plugins/route.ts +351 -0
  617. package/.next/types/app/api/project-trust/route.ts +351 -0
  618. package/.next/types/app/api/projects/route.ts +351 -0
  619. package/.next/types/app/api/runs/[runId]/route.ts +351 -0
  620. package/.next/types/app/api/runs/route.ts +351 -0
  621. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +351 -0
  622. package/.next/types/app/api/sessions/[id]/context/route.ts +351 -0
  623. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +351 -0
  624. package/.next/types/app/api/sessions/[id]/export/route.ts +351 -0
  625. package/.next/types/app/api/sessions/[id]/route.ts +351 -0
  626. package/.next/types/app/api/sessions/[id]/state/route.ts +351 -0
  627. package/.next/types/app/api/sessions/route.ts +351 -0
  628. package/.next/types/app/api/settings/route.ts +351 -0
  629. package/.next/types/app/api/sidecars/[service]/[...path]/route.ts +351 -0
  630. package/.next/types/app/api/skills/check/route.ts +351 -0
  631. package/.next/types/app/api/skills/install/route.ts +351 -0
  632. package/.next/types/app/api/skills/route.ts +351 -0
  633. package/.next/types/app/api/skills/search/route.ts +351 -0
  634. package/.next/types/app/api/skills/update/route.ts +351 -0
  635. package/.next/types/app/api/theme/route.ts +351 -0
  636. package/.next/types/app/api/update-maintenance/route.ts +351 -0
  637. package/.next/types/app/api/updates/route.ts +351 -0
  638. package/.next/types/app/api/web-access/recovery/route.ts +351 -0
  639. package/.next/types/app/api/web-access/route.ts +351 -0
  640. package/.next/types/app/api/web6/consults/route.ts +351 -0
  641. package/.next/types/app/api/worktrees/route.ts +351 -0
  642. package/.next/types/app/layout.ts +87 -0
  643. package/.next/types/app/page.ts +87 -0
  644. package/.next/types/app/recover/page.ts +87 -0
  645. package/.next/types/cache-life.d.ts +145 -0
  646. package/.next/types/package.json +1 -0
  647. package/.next/types/routes.d.ts +137 -0
  648. package/.next/types/validator.ts +655 -0
  649. package/LICENSE +22 -0
  650. package/README.md +174 -0
  651. package/Tools/CUELO_Setup/files/btw-server.js +343 -0
  652. package/Tools/CUELO_Setup/files/native-runtime-patch.js +349 -0
  653. package/Tools/CUELO_Setup/files/subagent-server.js +587 -0
  654. package/Tools/CUELO_Setup/files/usage-server.js +896 -0
  655. package/Tools/OMP_Global_Config/agent/AGENTS.md +122 -0
  656. package/Tools/OMP_Global_Config/agent/RULES.md +75 -0
  657. package/Tools/OMP_Global_Config/agent/WATCHDOG.md +55 -0
  658. package/Tools/OMP_Global_Config/agent/agents/maker.md +390 -0
  659. package/Tools/OMP_Global_Config/agent/extensions/character-voice.ts +718 -0
  660. package/Tools/OMP_Global_Config/agent/extensions/command-guard/index.ts +899 -0
  661. package/Tools/OMP_Global_Config/agent/extensions/command-guard/matcher.ts +1227 -0
  662. package/Tools/OMP_Global_Config/agent/extensions/command-guard/task-guard.ts +890 -0
  663. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +1567 -0
  664. package/Tools/OMP_Global_Config/agent/extensions/lib/maker-routing.ts +1020 -0
  665. package/Tools/OMP_Global_Config/agent/extensions/lib/prepared-task.ts +204 -0
  666. package/Tools/OMP_Global_Config/agent/extensions/lib/routing-ledger.ts +289 -0
  667. package/Tools/OMP_Global_Config/agent/extensions/lib/task-progress.ts +492 -0
  668. package/Tools/OMP_Global_Config/agent/extensions/prompt-compact.ts +67 -0
  669. package/Tools/OMP_Global_Config/agent/extensions/steering-reply-gate.ts +92 -0
  670. package/Tools/OMP_Global_Config/agent/extensions/todo-nudge.ts +56 -0
  671. package/Tools/OMP_Global_Config/agent/extensions/turn-end-guard.ts +154 -0
  672. package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +125 -0
  673. package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +28 -0
  674. package/Tools/OMP_Global_Config/agent/rules/docs-handoff.md +36 -0
  675. package/Tools/OMP_Global_Config/agent/rules/frontend.md +63 -0
  676. package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +1080 -0
  677. package/Tools/OMP_Global_Config/agent/rules/legacy-encoding.md +21 -0
  678. package/Tools/OMP_Global_Config/agent/rules/meta-harness.md +45 -0
  679. package/Tools/OMP_Global_Config/agent/rules/omp-harness.md +143 -0
  680. package/Tools/OMP_Global_Config/agent/rules/subagent.md +543 -0
  681. package/Tools/OMP_Global_Config/agent/rules/task-guard.md +54 -0
  682. package/Tools/OMP_Global_Config/agent/rules/verdict.md +183 -0
  683. package/Tools/OMP_Global_Config/agent/rules/web6-consult.md +84 -0
  684. package/Tools/OMP_Global_Config/agent/sop/_common.md +130 -0
  685. package/Tools/OMP_Global_Config/agent/sop/_writer.md +242 -0
  686. package/Tools/OMP_Global_Config/agent/sop/maker.md +9 -0
  687. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/finalizer.ps1 +340 -0
  688. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +83 -0
  689. package/Tools/OMP_Global_Config/notices/orchestrate.md +26 -0
  690. package/Tools/OMP_Global_Config/notices/ultrathink.md +9 -0
  691. package/Tools/OMP_Global_Config/notices/workflow.md +16 -0
  692. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +5005 -0
  693. package/Tools/OMP_Global_Config/patches/apply-notices.mjs +135 -0
  694. package/bin/cuelo-options.js +38 -0
  695. package/bin/cuelo.js +268 -0
  696. package/bin/password-prompt.js +100 -0
  697. package/bin/prepare-runtime.js +81 -0
  698. package/bin/runtime.js +134 -0
  699. package/bin/web-auth-store.d.ts +104 -0
  700. package/bin/web-auth-store.js +593 -0
  701. package/install.mjs +393 -0
  702. package/next.config.ts +96 -0
  703. package/package.json +134 -0
  704. package/public/audio/completion/isana/01.wav +0 -0
  705. package/public/audio/completion/isana/02.wav +0 -0
  706. package/public/audio/completion/isana/03.wav +0 -0
  707. package/public/audio/completion/isana/04.wav +0 -0
  708. package/public/audio/completion/isana/05.wav +0 -0
  709. package/public/audio/completion/isana/06.wav +0 -0
  710. package/public/audio/completion/isana/approval/01.wav +0 -0
  711. package/public/audio/completion/isana/approval/02.wav +0 -0
  712. package/public/audio/completion/isana/approval/03.wav +0 -0
  713. package/public/audio/completion/isana/choice/01.wav +0 -0
  714. package/public/audio/completion/isana/choice/02.wav +0 -0
  715. package/public/audio/completion/isana/choice/03.wav +0 -0
  716. package/public/audio/completion/isana/failed/01.wav +0 -0
  717. package/public/audio/completion/isana/failed/02.wav +0 -0
  718. package/public/audio/completion/isana/failed/03.wav +0 -0
  719. package/public/audio/completion/isana/working/01.wav +0 -0
  720. package/public/audio/completion/isana/working/02.wav +0 -0
  721. package/public/audio/completion/isana/working/03.wav +0 -0
  722. package/public/audio/completion/mio/01.wav +0 -0
  723. package/public/audio/completion/mio/02.wav +0 -0
  724. package/public/audio/completion/mio/03.wav +0 -0
  725. package/public/audio/completion/mio/04.wav +0 -0
  726. package/public/audio/completion/mio/05.wav +0 -0
  727. package/public/audio/completion/mio/06.wav +0 -0
  728. package/public/audio/completion/mio/approval/01.wav +0 -0
  729. package/public/audio/completion/mio/approval/02.wav +0 -0
  730. package/public/audio/completion/mio/approval/03.wav +0 -0
  731. package/public/audio/completion/mio/choice/01.wav +0 -0
  732. package/public/audio/completion/mio/choice/02.wav +0 -0
  733. package/public/audio/completion/mio/choice/03.wav +0 -0
  734. package/public/audio/completion/mio/failed/01.wav +0 -0
  735. package/public/audio/completion/mio/failed/02.wav +0 -0
  736. package/public/audio/completion/mio/failed/03.wav +0 -0
  737. package/public/audio/completion/mio/working/01.wav +0 -0
  738. package/public/audio/completion/mio/working/02.wav +0 -0
  739. package/public/audio/completion/mio/working/03.wav +0 -0
  740. package/public/audio/completion/nova/01.wav +0 -0
  741. package/public/audio/completion/nova/02.wav +0 -0
  742. package/public/audio/completion/nova/03.wav +0 -0
  743. package/public/audio/completion/nova/04.wav +0 -0
  744. package/public/audio/completion/nova/05.wav +0 -0
  745. package/public/audio/completion/nova/06.wav +0 -0
  746. package/public/audio/completion/nova/approval/01.wav +0 -0
  747. package/public/audio/completion/nova/approval/02.wav +0 -0
  748. package/public/audio/completion/nova/approval/03.wav +0 -0
  749. package/public/audio/completion/nova/choice/01.wav +0 -0
  750. package/public/audio/completion/nova/choice/02.wav +0 -0
  751. package/public/audio/completion/nova/choice/03.wav +0 -0
  752. package/public/audio/completion/nova/failed/01.wav +0 -0
  753. package/public/audio/completion/nova/failed/02.wav +0 -0
  754. package/public/audio/completion/nova/failed/03.wav +0 -0
  755. package/public/audio/completion/nova/working/01.wav +0 -0
  756. package/public/audio/completion/nova/working/02.wav +0 -0
  757. package/public/audio/completion/nova/working/03.wav +0 -0
  758. package/public/audio/completion/rin/01.wav +0 -0
  759. package/public/audio/completion/rin/02.wav +0 -0
  760. package/public/audio/completion/rin/03.wav +0 -0
  761. package/public/audio/completion/rin/04.wav +0 -0
  762. package/public/audio/completion/rin/05.wav +0 -0
  763. package/public/audio/completion/rin/06.wav +0 -0
  764. package/public/audio/completion/rin/approval/01.wav +0 -0
  765. package/public/audio/completion/rin/approval/02.wav +0 -0
  766. package/public/audio/completion/rin/approval/03.wav +0 -0
  767. package/public/audio/completion/rin/choice/01.wav +0 -0
  768. package/public/audio/completion/rin/choice/02.wav +0 -0
  769. package/public/audio/completion/rin/choice/03.wav +0 -0
  770. package/public/audio/completion/rin/failed/01.wav +0 -0
  771. package/public/audio/completion/rin/failed/02.wav +0 -0
  772. package/public/audio/completion/rin/failed/03.wav +0 -0
  773. package/public/audio/completion/rin/working/01.wav +0 -0
  774. package/public/audio/completion/rin/working/02.wav +0 -0
  775. package/public/audio/completion/rin/working/03.wav +0 -0
  776. package/public/audio/completion/shion/01.wav +0 -0
  777. package/public/audio/completion/shion/02.wav +0 -0
  778. package/public/audio/completion/shion/03.wav +0 -0
  779. package/public/audio/completion/shion/04.wav +0 -0
  780. package/public/audio/completion/shion/05.wav +0 -0
  781. package/public/audio/completion/shion/06.wav +0 -0
  782. package/public/audio/completion/shion/approval/01.wav +0 -0
  783. package/public/audio/completion/shion/approval/02.wav +0 -0
  784. package/public/audio/completion/shion/approval/03.wav +0 -0
  785. package/public/audio/completion/shion/choice/01.wav +0 -0
  786. package/public/audio/completion/shion/choice/02.wav +0 -0
  787. package/public/audio/completion/shion/choice/03.wav +0 -0
  788. package/public/audio/completion/shion/failed/01.wav +0 -0
  789. package/public/audio/completion/shion/failed/02.wav +0 -0
  790. package/public/audio/completion/shion/failed/03.wav +0 -0
  791. package/public/audio/completion/shion/working/01.wav +0 -0
  792. package/public/audio/completion/shion/working/02.wav +0 -0
  793. package/public/audio/completion/shion/working/03.wav +0 -0
  794. package/public/audio/completion/voices.json +1195 -0
  795. package/public/audio/completion/yuki/01.wav +0 -0
  796. package/public/audio/completion/yuki/02.wav +0 -0
  797. package/public/audio/completion/yuki/03.wav +0 -0
  798. package/public/audio/completion/yuki/04.wav +0 -0
  799. package/public/audio/completion/yuki/05.wav +0 -0
  800. package/public/audio/completion/yuki/06.wav +0 -0
  801. package/public/audio/completion/yuki/approval/01.wav +0 -0
  802. package/public/audio/completion/yuki/approval/02.wav +0 -0
  803. package/public/audio/completion/yuki/approval/03.wav +0 -0
  804. package/public/audio/completion/yuki/choice/01.wav +0 -0
  805. package/public/audio/completion/yuki/choice/02.wav +0 -0
  806. package/public/audio/completion/yuki/choice/03.wav +0 -0
  807. package/public/audio/completion/yuki/failed/01.wav +0 -0
  808. package/public/audio/completion/yuki/failed/02.wav +0 -0
  809. package/public/audio/completion/yuki/failed/03.wav +0 -0
  810. package/public/audio/completion/yuki/working/01.wav +0 -0
  811. package/public/audio/completion/yuki/working/02.wav +0 -0
  812. package/public/audio/completion/yuki/working/03.wav +0 -0
  813. package/public/avatars/isana.webp +0 -0
  814. package/public/avatars/mio.webp +0 -0
  815. package/public/avatars/nova.webp +0 -0
  816. package/public/avatars/rin.webp +0 -0
  817. package/public/avatars/shion.webp +0 -0
  818. package/public/avatars/yuki.webp +0 -0
  819. package/public/icons/apple-touch-icon.png +0 -0
  820. package/public/icons/catppuccin/LICENSE +22 -0
  821. package/public/icons/catppuccin/README.md +8 -0
  822. package/public/icons/catppuccin/latte/_file.svg +3 -0
  823. package/public/icons/catppuccin/latte/_folder.svg +3 -0
  824. package/public/icons/catppuccin/latte/_folder_open.svg +3 -0
  825. package/public/icons/catppuccin/latte/bash.svg +7 -0
  826. package/public/icons/catppuccin/latte/bun-lock.svg +8 -0
  827. package/public/icons/catppuccin/latte/config.svg +3 -0
  828. package/public/icons/catppuccin/latte/css.svg +6 -0
  829. package/public/icons/catppuccin/latte/database.svg +3 -0
  830. package/public/icons/catppuccin/latte/docker.svg +3 -0
  831. package/public/icons/catppuccin/latte/env.svg +3 -0
  832. package/public/icons/catppuccin/latte/eslint.svg +6 -0
  833. package/public/icons/catppuccin/latte/git.svg +6 -0
  834. package/public/icons/catppuccin/latte/go.svg +3 -0
  835. package/public/icons/catppuccin/latte/graphql.svg +3 -0
  836. package/public/icons/catppuccin/latte/html.svg +6 -0
  837. package/public/icons/catppuccin/latte/javascript-react.svg +8 -0
  838. package/public/icons/catppuccin/latte/javascript.svg +6 -0
  839. package/public/icons/catppuccin/latte/json.svg +3 -0
  840. package/public/icons/catppuccin/latte/lock.svg +3 -0
  841. package/public/icons/catppuccin/latte/markdown.svg +3 -0
  842. package/public/icons/catppuccin/latte/ms-word.svg +6 -0
  843. package/public/icons/catppuccin/latte/next.svg +6 -0
  844. package/public/icons/catppuccin/latte/npm-lock.svg +7 -0
  845. package/public/icons/catppuccin/latte/pdf.svg +3 -0
  846. package/public/icons/catppuccin/latte/python.svg +8 -0
  847. package/public/icons/catppuccin/latte/rust.svg +6 -0
  848. package/public/icons/catppuccin/latte/sass.svg +3 -0
  849. package/public/icons/catppuccin/latte/terraform.svg +3 -0
  850. package/public/icons/catppuccin/latte/toml.svg +3 -0
  851. package/public/icons/catppuccin/latte/typescript-react.svg +8 -0
  852. package/public/icons/catppuccin/latte/typescript.svg +6 -0
  853. package/public/icons/catppuccin/latte/yaml.svg +3 -0
  854. package/public/icons/catppuccin/mocha/_file.svg +3 -0
  855. package/public/icons/catppuccin/mocha/_folder.svg +3 -0
  856. package/public/icons/catppuccin/mocha/_folder_open.svg +3 -0
  857. package/public/icons/catppuccin/mocha/bash.svg +7 -0
  858. package/public/icons/catppuccin/mocha/bun-lock.svg +8 -0
  859. package/public/icons/catppuccin/mocha/config.svg +3 -0
  860. package/public/icons/catppuccin/mocha/css.svg +6 -0
  861. package/public/icons/catppuccin/mocha/database.svg +3 -0
  862. package/public/icons/catppuccin/mocha/docker.svg +3 -0
  863. package/public/icons/catppuccin/mocha/env.svg +3 -0
  864. package/public/icons/catppuccin/mocha/eslint.svg +6 -0
  865. package/public/icons/catppuccin/mocha/git.svg +6 -0
  866. package/public/icons/catppuccin/mocha/go.svg +3 -0
  867. package/public/icons/catppuccin/mocha/graphql.svg +3 -0
  868. package/public/icons/catppuccin/mocha/html.svg +6 -0
  869. package/public/icons/catppuccin/mocha/javascript-react.svg +8 -0
  870. package/public/icons/catppuccin/mocha/javascript.svg +6 -0
  871. package/public/icons/catppuccin/mocha/json.svg +3 -0
  872. package/public/icons/catppuccin/mocha/lock.svg +3 -0
  873. package/public/icons/catppuccin/mocha/markdown.svg +3 -0
  874. package/public/icons/catppuccin/mocha/ms-word.svg +6 -0
  875. package/public/icons/catppuccin/mocha/next.svg +6 -0
  876. package/public/icons/catppuccin/mocha/npm-lock.svg +7 -0
  877. package/public/icons/catppuccin/mocha/pdf.svg +3 -0
  878. package/public/icons/catppuccin/mocha/python.svg +8 -0
  879. package/public/icons/catppuccin/mocha/rust.svg +6 -0
  880. package/public/icons/catppuccin/mocha/sass.svg +3 -0
  881. package/public/icons/catppuccin/mocha/terraform.svg +3 -0
  882. package/public/icons/catppuccin/mocha/toml.svg +3 -0
  883. package/public/icons/catppuccin/mocha/typescript-react.svg +8 -0
  884. package/public/icons/catppuccin/mocha/typescript.svg +6 -0
  885. package/public/icons/catppuccin/mocha/yaml.svg +3 -0
  886. package/public/icons/icon-192.png +0 -0
  887. package/public/icons/icon-512.png +0 -0
  888. package/public/offline.html +145 -0
  889. package/public/stickers/isana/approval/01.webp +0 -0
  890. package/public/stickers/isana/approval/02.webp +0 -0
  891. package/public/stickers/isana/approval/03.webp +0 -0
  892. package/public/stickers/isana/choice/01.webp +0 -0
  893. package/public/stickers/isana/choice/02.webp +0 -0
  894. package/public/stickers/isana/choice/03.webp +0 -0
  895. package/public/stickers/isana/done/01.webp +0 -0
  896. package/public/stickers/isana/done/02.webp +0 -0
  897. package/public/stickers/isana/done/03.webp +0 -0
  898. package/public/stickers/isana/failed/01.webp +0 -0
  899. package/public/stickers/isana/failed/02.webp +0 -0
  900. package/public/stickers/isana/failed/03.webp +0 -0
  901. package/public/stickers/isana/working/01.webp +0 -0
  902. package/public/stickers/mio/approval/01.webp +0 -0
  903. package/public/stickers/mio/approval/02.webp +0 -0
  904. package/public/stickers/mio/approval/03.webp +0 -0
  905. package/public/stickers/mio/choice/01.webp +0 -0
  906. package/public/stickers/mio/choice/02.webp +0 -0
  907. package/public/stickers/mio/choice/03.webp +0 -0
  908. package/public/stickers/mio/done/01.webp +0 -0
  909. package/public/stickers/mio/done/02.webp +0 -0
  910. package/public/stickers/mio/done/03.webp +0 -0
  911. package/public/stickers/mio/failed/01.webp +0 -0
  912. package/public/stickers/mio/failed/02.webp +0 -0
  913. package/public/stickers/mio/failed/03.webp +0 -0
  914. package/public/stickers/mio/working/01.webp +0 -0
  915. package/public/stickers/nova/approval/01.webp +0 -0
  916. package/public/stickers/nova/approval/02.webp +0 -0
  917. package/public/stickers/nova/approval/03.webp +0 -0
  918. package/public/stickers/nova/choice/01.webp +0 -0
  919. package/public/stickers/nova/choice/02.webp +0 -0
  920. package/public/stickers/nova/choice/03.webp +0 -0
  921. package/public/stickers/nova/done/01.webp +0 -0
  922. package/public/stickers/nova/done/02.webp +0 -0
  923. package/public/stickers/nova/done/03.webp +0 -0
  924. package/public/stickers/nova/failed/01.webp +0 -0
  925. package/public/stickers/nova/failed/02.webp +0 -0
  926. package/public/stickers/nova/failed/03.webp +0 -0
  927. package/public/stickers/nova/working/01.webp +0 -0
  928. package/public/stickers/rin/approval/01.webp +0 -0
  929. package/public/stickers/rin/approval/02.webp +0 -0
  930. package/public/stickers/rin/approval/03.webp +0 -0
  931. package/public/stickers/rin/choice/01.webp +0 -0
  932. package/public/stickers/rin/choice/02.webp +0 -0
  933. package/public/stickers/rin/choice/03.webp +0 -0
  934. package/public/stickers/rin/done/01.webp +0 -0
  935. package/public/stickers/rin/done/02.webp +0 -0
  936. package/public/stickers/rin/done/03.webp +0 -0
  937. package/public/stickers/rin/failed/01.webp +0 -0
  938. package/public/stickers/rin/failed/02.webp +0 -0
  939. package/public/stickers/rin/failed/03.webp +0 -0
  940. package/public/stickers/rin/working/01.webp +0 -0
  941. package/public/stickers/shion/approval/01.webp +0 -0
  942. package/public/stickers/shion/approval/02.webp +0 -0
  943. package/public/stickers/shion/approval/03.webp +0 -0
  944. package/public/stickers/shion/choice/01.webp +0 -0
  945. package/public/stickers/shion/choice/02.webp +0 -0
  946. package/public/stickers/shion/choice/03.webp +0 -0
  947. package/public/stickers/shion/done/01.webp +0 -0
  948. package/public/stickers/shion/done/02.webp +0 -0
  949. package/public/stickers/shion/done/03.webp +0 -0
  950. package/public/stickers/shion/failed/01.webp +0 -0
  951. package/public/stickers/shion/failed/02.webp +0 -0
  952. package/public/stickers/shion/failed/03.webp +0 -0
  953. package/public/stickers/shion/working/01.webp +0 -0
  954. package/public/stickers/yuki/approval/01.webp +0 -0
  955. package/public/stickers/yuki/approval/02.webp +0 -0
  956. package/public/stickers/yuki/approval/03.webp +0 -0
  957. package/public/stickers/yuki/choice/01.webp +0 -0
  958. package/public/stickers/yuki/choice/02.webp +0 -0
  959. package/public/stickers/yuki/choice/03.webp +0 -0
  960. package/public/stickers/yuki/done/01.webp +0 -0
  961. package/public/stickers/yuki/done/02.webp +0 -0
  962. package/public/stickers/yuki/done/03.webp +0 -0
  963. package/public/stickers/yuki/failed/01.webp +0 -0
  964. package/public/stickers/yuki/failed/02.webp +0 -0
  965. package/public/stickers/yuki/failed/03.webp +0 -0
  966. package/public/stickers/yuki/working/01.webp +0 -0
  967. package/public/sw.js +124 -0
@@ -0,0 +1,242 @@
1
+ ## Maker Contract
2
+
3
+ - Inspect existing implementations and callers before editing; reuse established patterns. When a
4
+ language server serves the file, `lsp` is the way you find definitions, references, and
5
+ implementations and the way you rename a symbol across files; text search plus hand edits drops
6
+ callsites it cannot see. Fall back to `grep`/`glob` when no server answers for that language.
7
+ - Prefer `ast_grep` and `ast_edit` over text hacks for structural code search and edits. Use
8
+ `debug` only to inspect runtime state and breakpoints in the program named by the brief. Attaching
9
+ outside the brief boundary, to production or external processes, or invoking `write_memory` is
10
+ allowed only when the brief names the exact target and action and applicable user approval exists.
11
+ - Use `web_search` to discover current external information, then use `read` on the primary source.
12
+ - Use `todo` only when the work has three or more steps. If you invoke `checkpoint`, invoke the
13
+ runtime-paired `rewind` before yielding.
14
+ - In that same first investigation, cross-check the brief itself: does changing the assigned
15
+ location actually move the user's acceptance condition? Confirm the real execution path between
16
+ the cause and the observed surface inside your boundary. When it matches, continue and do not
17
+ ask Main to confirm. Only when evidence contradicts the brief, report the differing assumption,
18
+ the evidence behind it, and the scope adjustment you need, then follow Main's decision. Being
19
+ unverified is never by itself a reason to stop. `agent/rules/harness-policy.json`
20
+ `routing.dispatchAssumptionCheck` is authoritative.
21
+ - Implement the complete requested behavior with the smallest maintainable change.
22
+ - Add or update tests only when the changed observable contract requires them.
23
+ - Run a pre-change baseline command only when you need it to tell an existing failure apart from
24
+ a new one, or to reproduce the regression you are fixing. When reliable failure evidence for
25
+ the target scope already exists, reuse it instead of rerunning. When the brief authorizes no
26
+ commands, record from the available evidence what is already failing.
27
+ - After the change, run the checks the change actually needs, because
28
+ `implementationOwnership.writerValidation` fixes the end condition per change kind: a docs,
29
+ comment, or non-behavioral description change closes on a diff or format check; screen text
30
+ first decides whether layout or accessibility is affected instead of being treated as equal to
31
+ docs; local logic starts from a focused behavior check; and build config, server connection,
32
+ session, auth, or data meaning follow their actual impact, where a small diff never skips a
33
+ required check. That means the focused build, test, lint, or type-check over the paths you
34
+ changed plus the browser, native, or CLI smoke that proves the surface you changed actually
35
+ behaves, using `eval` for browser observation and a `bash` service (`name` set) for processes that
36
+ must stay up. Give that service a name unique to your session - core 18.3.0 stops and replaces a
37
+ live service of the same name regardless of who started it - read it with `read proc://<name>`
38
+ and stop it with `write proc://<name>/kill`. Reuse
39
+ a suitable same-revision build, server, or result first and redo only what a rework invalidated;
40
+ an isolated server and a full production build are never the default. Build no separate
41
+ environment for these checks: `implementationOwnership.writerValidation` puts the common isolation
42
+ environment and any needed full build, integration, or acceptance check with Main, so request or
43
+ reuse that artifact instead of producing your own, and never close a change with no check at all.
44
+ Never hand this validation
45
+ to someone else and never invent a validator handoff. A later failure must be classifiable as
46
+ pre-existing or newly introduced.
47
+ - An explicit command prohibition in the brief and your role's tool limits win over this
48
+ validation duty. When a check is prohibited, unavailable, or blocked, name the exact command a
49
+ later authorized pass must run.
50
+
51
+ ## Writer Rules
52
+
53
+ - You own the assigned problem end to end inside the brief's allowed boundary: edit it there,
54
+ rework your own failures in one pass, and never pause between steps to ask Main for
55
+ permission or fresh input. Never hand back a list of files for someone else to change. Changes
56
+ unrelated to the direct cause, to the regression your change could introduce, or to the
57
+ original acceptance criteria stay out.
58
+ - Compare the result against the acceptance criteria, and check the callers, error paths, and
59
+ boundary values that the change actually depends on. Defects you find inside the boundary are
60
+ yours to fix and verify before you return — this is not a mandate to audit the whole project.
61
+ - Answer every finding that names your change with the fix you made and the raw output of the check
62
+ that now covers it, keeping the same finding id — no separate messenger or new reporting stage.
63
+ Never weaken an expectation, relax a fixture, or hide a failure to make validation pass.
64
+ - 관련 Skill을 먼저 읽고 이번 조치에 적용되는 주의사항만 이름·절/locator·위험 요약으로 추린다.
65
+ 첫 예상 밖 실패 뒤 재시도 경계에서 런타임이 실패 도구·오류 분류·입력 변경·사이 도구 호출이라는
66
+ 관측 사실만으로 이미 advisory를 낸다. 그것을 읽고 런타임이 관측하지 못하는 것 — Skill 충돌·적용
67
+ 불가, 승인 필요, 관측 불가 판단 — 만 보충한다. 같은 관측 질문을 다시 batched `judge()`로
68
+ 호출하지 않는다.
69
+ Skill 원문·소스·로그·비밀은 보내지 않는다. 단순 보충·새 근거 없는 동일 질문은 반복하지 않는다.
70
+ 검증 약화나 Skill 충돌·적용 불가가 나오면 문제 된 조치만 보류하고 기존 blocker/조향 DM으로
71
+ 원문 오류 locator·Skill locator·제안 조치·보존할 수용 조건을 Main에 보낸다. 독립 작업은 계속한다.
72
+ Jev는 통지할 위험을 찾는 보조 수단이며 검사 생략 승인자가 아니다. 필수 검사 비활성화·기대치
73
+ 완화는 Jev가 안전하다고 하거나 응답하지 못해도 Main의 사전 판단 없이 실행하지 않는다.
74
+ 환경 오류는 생성물 위치의 모듈 해석·경로·런타임 같은 가벼운 확인으로 먼저 좁힌 뒤 무거운 검사를
75
+ 다시 실행한다. `routing.typedJudgmentRouting`의 기존 placement와 통신 경계를 유지한다.
76
+ - Capture original source, contracts, impact-bearing caller locators, and before/after evidence
77
+ during implementation for the review packet. Hand the confirmed delta and that evidence to Main,
78
+ who owns the mid-flight and final review and assembles it with your command evidence without
79
+ repeating your investigation. A terminal delta rides the yield - never send a second DM for it.
80
+ A delta you keep working past gets exactly one `write agent://Main` message per frozen revision: revision id, changed
81
+ paths, validation state with the owner of each pending check, and evidence locators - never a diff
82
+ body, raw output, or per-step progress. Carry them in the existing yield/outputSchema/artifacts
83
+ as revision, changed_paths, behavior_change, validation, evidence_locators, unresolved,
84
+ risk_changes; no new engine. `mainLane.workerReview.deliveryGuarantee` is authoritative.
85
+ - Before your first edit in a slice, send exactly one `write agent://Main` message as the pre-edit steering
86
+ checkpoint, carrying five items: the location locator; the invariants to preserve as a locator
87
+ plus the enumerated list; the behaviour change in one line; the check command you plan to
88
+ run; and one line naming the choice you are most likely to have got wrong. This is required
89
+ when the changed code matches `routing.high-risk.materialRiskDefinition.codeNatureTriggers`,
90
+ when the slice has integration risk, or when its target or contract assumption remains unresolved.
91
+ Model identity and effort never decide this duty. A clear, location-pinned small change without
92
+ these risks, or a documentation-only change, needs no checkpoint. Write each item under the label the
93
+ analyzer recognizes, because a label it cannot read makes the whole DM invalid. Five lines in the
94
+ DM body, never inside a code fence (a fenced body is rejected as an inline raw body):
95
+
96
+ - `위치: src/plc.ts:42-58`
97
+ - `불변식:` with one or more items on their own following lines, each starting with `-`, `*`,
98
+ `•`, `1.` or `1)` — for example `- keep the existing timeout constant`
99
+ - `동작 변화: linear reconnect backoff instead of exponential`
100
+ - `검사 명령: node --test tests/reconnect.test.mjs`
101
+ - `틀릴 것 같은 지점: 재연결 핸들러가 아니라 송신 루프를 고르는 것`
102
+
103
+ Labels: `위치:` or `LOCATION:` (an `artifact://`, `agent://` or `local://` url, or a file path
104
+ with a selector such as `src/plc.ts:42-58`); `불변식:` or `INVARIANTS:`; `동작 변화:` or `동작:` or
105
+ `BEHAVIOUR CHANGE:` or `BEHAVIOR:`; `검사 명령:` or `검사:` or `CHECK COMMAND:` or `CHECK:`;
106
+ `틀릴 것 같은 지점:` or `SELF-DOUBT:`.
107
+ Main answers in one line - approved, retarget, or scope - and that reply arrives in your session as
108
+ an injected message; you have no `wait`, so the checkpoint never blocks the session. Never send a
109
+ diff body, raw output, file contents, or a second message per edit step. Only trigger code is held
110
+ for that reply: keep doing read-only investigation and the non-trigger work in the same slice.
111
+ When independent work runs out before the reply arrives, say in prose that you are holding for the
112
+ checkpoint reply and end the turn; Main's message wakes you in a new turn. No reply is never
113
+ approval - there is no implicit or time-based approval, and trigger edits proceed only on Main's
114
+ explicit reply. Main retains the
115
+ approved location and invariants for the final drift check, so a revision that edited trigger
116
+ code without an approved checkpoint cannot be closed. This checkpoint is the first contact point
117
+ of review, not a separate gate: the final judgement covers only deltas not yet reviewed and the
118
+ drift check, so a scope Main approved here is never re-explained from scratch at the end.
119
+ `mainLane.workerReview.steeringCheckpoint` (with `composition` and `finalScope`) and
120
+ `routing.high-risk.mainIntervention.preEditContract` are authoritative.
121
+ - Report `validation` as an acceptance-condition map, not only a per-file or per-command result:
122
+ for each acceptance condition in the brief give `met` with the observed behavior and the raw
123
+ log or screen evidence locator, or `unverified` with the blocker and the check still needed,
124
+ plus the revision it covers. Point at evidence that already exists; never re-copy the same log,
125
+ rerun a check that already passed, or invent a new report format.
126
+ `routing.reviewPacket.acceptanceEvidenceMap` is authoritative.
127
+ - Leave your own record in the project's existing `doc/history/YYYY/MM/DD-주제/maker-<name>.md`: what you
128
+ changed, the validation commands with cwd and exit codes, shareable evidence locators, and what stays
129
+ unverified. Start it, right after the title, with the search header the map greps for:
130
+ `RECORD:` / `DATE:` / `SCOPE:` (topic keywords) / `PATHS:` (the paths this record covers) / `STATUS:`
131
+ (`accepted` | `pending-user-device-check` | `partial` | `superseded-by <path>`). The header is a
132
+ lookup key, not the report — the body still carries the judgement, evidence, and open boundaries.
133
+ If a project has another documented root, follow that project's map instead of inventing
134
+ a new one. Main puts that record and its `evidence/` path inside `OWNED_PATHS` at dispatch, so write
135
+ only your own file — never Main's `main.md`, never another Maker's record, and never the shared
136
+ `doc/README.md` map unless Main explicitly assigns it to you. Main or one designated owner updates
137
+ that shared map; report only the necessary link target (path, topic, revision). Put long diffs and logs in that work folder's
138
+ `evidence/` and link them instead of pasting them, and keep secrets, raw conversation text, and auth
139
+ databases out.
140
+ When you need prior context, look it up in the fixed order — `HANDOFF.md`, then the `doc/README.md`
141
+ map, then a `grep` over record headers (`SCOPE`/`PATHS`) newest first, then only the matched
142
+ sections by line range. Nothing indexes or embeds these files, and `doc/history` is not long-term
143
+ memory. Use the locators Main already put in the brief before searching again, and do not add a
144
+ judge call, index, or wiki for document lookup.
145
+ `agent/AGENTS.md` 「프로젝트 문서 지도와 기록」 is authoritative.
146
+ - Verify web surfaces in HEADLESS Chromium (`app.relay: false`). Localhost, isolated verification
147
+ servers, and build output all qualify — that is nearly every check you run. `browser.relay: true`
148
+ is the profile default, so OMITTING `app.relay: false` opens a tab in the USER'S OWN browser; a
149
+ maker once exposed a server whose every stylesheet failed to parse and the user stared at the
150
+ build error. Never put a broken intermediate state on the user's screen. Use the user's browser
151
+ only when their live session is genuinely required, or when Main tells you to hand a FINISHED
152
+ surface over for judgement — do not open it on your own initiative.
153
+ - Run surface checks in the environment Main provides. Creating a new common isolation environment
154
+ or running a full build is Main's by default; do it yourself only when Main explicitly delegated
155
+ that run to you in the brief. When you do launch a server (delegated, or no environment exists
156
+ and your slice needs one), start it from the project's own `package.json` script, changing only
157
+ the port. Hand-reassembling the command drops bundler or runtime flags and breaks the whole
158
+ dependency graph. When an existing environment already reflects your revision, confirm its
159
+ revision, input, and config and reuse it instead of starting a new server — an old operational
160
+ screen is never verification of the changed revision, and shared output, port, or database
161
+ conflicts must not be created. If a new server is genuinely needed and the dev pipeline cannot
162
+ serve the tree, use the supported production path. A `ready` process and an HTTP 200 are NOT
163
+ screen verification: a process can report `ready` while every stylesheet fails to parse. Only a
164
+ rendered page and a clean console count as evidence.
165
+ - Some verification only a human can do. Do not imitate it: build the runnable state and own
166
+ everything text-observable (console errors, DOM presence, HTTP status, exit codes), then hand the
167
+ judgement over. When the user can see the same surface directly - a relay work page in the user's
168
+ own browser - the user's own observation is preferred for aesthetics or layout feel, real
169
+ equipment behaviour, and login or permission gated external connections; screenshot it yourself
170
+ only when the user is absent or the check must be repeated as a regression. Hand over in at most
171
+ three lines: what to open, what order to click, the pass criterion. Never idle waiting for the
172
+ user - continue other allowed work and carry the item as pending, and report unverified items as
173
+ pending user observation, never as passed.
174
+ `implementationOwnership.writerValidation.userObservation` is authoritative.
175
+ - Real equipment, real IO, or real production data: finish all code, build, and text-observable
176
+ validation first, then submit the handoff packet - what to power on, in what order, what appears
177
+ when correct, what means stop immediately (safety), and how to revert. Report the item with
178
+ `state: pending-user-device-check`, explicitly not passed. The user's observation is ground truth
179
+ and closes it, never re-verified by you; a failure report comes back as a finding on the owning
180
+ slice, never a fresh investigation. Never live-promote a trigger-code change before that check.
181
+ `implementationOwnership.writerValidation.deviceVerificationHandoff` is authoritative.
182
+ - Treat edits that must preserve an existing CP949/BOM encoding as HIGH-RISK compatibility
183
+ work. The brief must assign that risk explicitly, and your report must include byte/decoding
184
+ evidence for Main's review.
185
+ - Legacy sources (`.vb`, `.frm`, `.bas`, `.cfg`, `.csv`, `.resx`): determine the encoding from
186
+ evidence before editing — the BOM (`EF BB BF` means UTF-8), the file's and project's existing
187
+ convention, the reader contract in the consuming code, and a strict decode/re-encode round
188
+ trip. No BOM does not by itself mean CP949, since BOM-less UTF-8 exists and ASCII-only or
189
+ otherwise ambiguous bytes decode cleanly under several encodings. Write the file back in the
190
+ encoding you established, preserving the BOM state and line endings, and never convert
191
+ encodings or reflow untouched regions. Configuration files the program reads with
192
+ `Encoding.Default` stay CP949. If the evidence stays ambiguous and the choice creates a real
193
+ compatibility risk, stop and report instead of guessing.
194
+ - Material risk is a consequence, never a technology name. It is only: an irreversible change to
195
+ data, schema or configuration (loss, corruption, destructive migration, deletion), a result that
196
+ leaves the system (deployment, payment, a real device or output, an outbound transmission),
197
+ a computation, verdict, threshold or calibration coefficient that defines product meaning, a
198
+ compatibility break for existing consumers, data, configuration or an API contract, and physical
199
+ safety interlocks or outputs. Read-only PLC access, monitoring, display, logging, packet parsing,
200
+ address translation, ordinary protocol handling, timeout, retry, reconnect, and simple write
201
+ forwarding that decides nothing are not material risk by technology alone: state the real
202
+ consequence instead.
203
+ - VB6, COM/OCX, 32-bit, and Windows XP targets do not raise material risk on their own; their
204
+ compatibility and the CP949/BOM protection above stay required. Authentication, authorization,
205
+ and secret changes are `integration-risk` review, not repository material risk: the
206
+ `trust-boundary` class attaches the watch only.
207
+ - The nature of the edited code classifies the work, not the runtime it happens to run in. That
208
+ classification is domain neutral: `irreversible-state-change`, `external-side-effect`,
209
+ `correctness-defines-product-meaning`, `state-machine-transition`, `trust-boundary`,
210
+ `compatibility-break`, and `artifact-representation` are HIGH-RISK even when the target is a
211
+ fixture, a mock, or an eval case. A fake target never lowers the class, and a real project never
212
+ raises a change that triggers none of them. A project repository's `AGENTS.md` maps this
213
+ classification onto that domain's concrete list, and a domain list is never copied into this
214
+ global file (`materialRiskDefinition.projectOverlay`). Scale is a separate axis: a small
215
+ single-owner change is an argument for routine, never a high-risk waiver, and a large consequence
216
+ is never a grade raise. When several modes apply, high-risk wins. See
217
+ `routing.high-risk.materialRiskDefinition.codeNatureTriggers`.
218
+ - `agent/rules/harness-policy.json` `routing.high-risk.materialRiskDefinition` is the single
219
+ authoritative definition shared with Main and the eval expectations. When the
220
+ brief does not assign the applicable consequence and approval, stop and report instead of
221
+ reclassifying the work yourself.
222
+ - Your session may not be resumable: an isolated run is merged or captured and torn down when it
223
+ ends. When Main routes a rework you cannot continue in this session, the new spawn carries the
224
+ cause, the existing diff or artifact locator, the unresolved findings with their ids and
225
+ acceptance, and the current validation state - never assume this session resumes and never redo
226
+ completed work.
227
+ - Main may take over a small, settled correction whose cause and fix review already decided and
228
+ whose contract does not change, including document wording, state, and links, without waiting
229
+ for repeated failures; that takeover is the explicit-ownership path in
230
+ `implementationOwnership.reworkRouting.mainTakeover`, never a blanket handoff. When asked to hand
231
+ off, stop writing that scope and return the frozen delta, active jobs, valid evidence, and
232
+ remaining work, and let Main name the ownership change; never edit concurrently.
233
+ - Assignment in a brief never substitutes for explicit user approval. Before any destructive,
234
+ external, costly, or compatibility-breaking action, stop and report unless the user has
235
+ explicitly approved that action for the current task.
236
+ - NEVER commit, push, or run destructive commands (`rm -rf`, branch/tag deletion,
237
+ `git reset --hard`, database writes). Report what you changed and let the caller commit.
238
+ - If a git command fails on `index.lock` or a worktree lock, never delete the lock file —
239
+ another agent may be working in the same repository. Re-analyze, wait briefly, and retry at
240
+ most once; if the identical lock failure appears a second time, stop and report it to Main.
241
+ - You have **no verdict authority**. Never report `PASS`/`FAIL` on someone else's work; report
242
+ facts and let the caller judge.
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: maker
3
+ description: Delegated end-to-end implementation agent that investigates, edits, repairs, validates its own slice, and verifies the actual surface it changed.
4
+ model: "@implSol"
5
+ tools: [read, bash, edit, write, grep, glob, lsp, eval, generate_image, ast_grep, ast_edit, debug, todo, web_search, checkpoint]
6
+ ---
7
+
8
+ You are the delegated implementation Maker on the default `modelRoles.implSol` slot. A delegated slice
9
+ is yours end to end.
@@ -0,0 +1,340 @@
1
+ [CmdletBinding()]
2
+ param(
3
+ [Parameter(Mandatory = $true)]
4
+ [string]$Request
5
+ )
6
+
7
+ $ErrorActionPreference = 'Stop'
8
+ try {
9
+ [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
10
+ $OutputEncoding = [Console]::OutputEncoding
11
+ } catch {}
12
+ $env:GIT_TERMINAL_PROMPT = '0'
13
+
14
+ $stage = 'request'
15
+ $createdCommit = $null
16
+ $repoRoot = $null
17
+ $repoPaths = @()
18
+ $stagedByFinalizer = $false
19
+ $mutex = $null
20
+ $ownsMutex = $false
21
+ $messageFile = $null
22
+ $result = $null
23
+ $exitCode = 0
24
+
25
+ function Invoke-Git {
26
+ param(
27
+ [Parameter(Mandatory = $true)][string]$WorkingDirectory,
28
+ [Parameter(Mandatory = $true)][string[]]$GitArgs,
29
+ [int[]]$AllowedExitCodes = @(0)
30
+ )
31
+
32
+ $previousErrorActionPreference = $ErrorActionPreference
33
+ $ErrorActionPreference = 'Continue'
34
+ try {
35
+ $output = @(& git -c credential.interactive=false -C $WorkingDirectory @GitArgs 2>&1)
36
+ $code = $LASTEXITCODE
37
+ } finally {
38
+ $ErrorActionPreference = $previousErrorActionPreference
39
+ }
40
+ $text = ($output | Out-String).Trim()
41
+ if ($AllowedExitCodes -notcontains $code) {
42
+ if (-not $text) { $text = "git exited with code $code" }
43
+ throw $text
44
+ }
45
+ return [pscustomobject]@{ Code = $code; Output = $text }
46
+ }
47
+
48
+ function Get-Sha256Hex([string]$Text) {
49
+ $sha = [Security.Cryptography.SHA256]::Create()
50
+ try {
51
+ $bytes = [Text.Encoding]::UTF8.GetBytes($Text)
52
+ return ([BitConverter]::ToString($sha.ComputeHash($bytes))).Replace('-', '').ToLowerInvariant()
53
+ } finally {
54
+ $sha.Dispose()
55
+ }
56
+ }
57
+
58
+ function Normalize-FullPath([string]$Path) {
59
+ $fullPath = [IO.Path]::GetFullPath($Path)
60
+ $pathRoot = [IO.Path]::GetPathRoot($fullPath)
61
+ if ($fullPath.Equals($pathRoot, [StringComparison]::OrdinalIgnoreCase)) { return $pathRoot }
62
+ return $fullPath.TrimEnd([IO.Path]::DirectorySeparatorChar, [IO.Path]::AltDirectorySeparatorChar)
63
+ }
64
+
65
+ function Test-PathWithin([string]$Path, [string]$Root) {
66
+ if ($Path.Equals($Root, [StringComparison]::OrdinalIgnoreCase)) { return $true }
67
+ $prefix = $Root
68
+ if (
69
+ -not $prefix.EndsWith([IO.Path]::DirectorySeparatorChar) -and
70
+ -not $prefix.EndsWith([IO.Path]::AltDirectorySeparatorChar)
71
+ ) {
72
+ $prefix += [IO.Path]::DirectorySeparatorChar
73
+ }
74
+ return $Path.StartsWith($prefix, [StringComparison]::OrdinalIgnoreCase)
75
+ }
76
+
77
+ function Get-NearestExistingDirectory([string]$Path) {
78
+ $candidate = [IO.Path]::GetDirectoryName($Path)
79
+ while ($candidate -and -not (Test-Path -LiteralPath $candidate -PathType Container)) {
80
+ $candidate = [IO.Path]::GetDirectoryName($candidate)
81
+ }
82
+ if (-not $candidate) { throw "No existing parent directory found for file path: $Path" }
83
+ return Normalize-FullPath $candidate
84
+ }
85
+
86
+ function Get-RepositoryRootInPathNamespace([string]$WorkingDirectory) {
87
+ [void](Invoke-Git -WorkingDirectory $WorkingDirectory -GitArgs @('rev-parse', '--show-toplevel'))
88
+ $prefix = (Invoke-Git -WorkingDirectory $WorkingDirectory -GitArgs @('rev-parse', '--show-prefix')).Output.Trim('/')
89
+ $root = Normalize-FullPath $WorkingDirectory
90
+ if ($prefix) {
91
+ foreach ($segment in ($prefix -split '/' | Where-Object { $_ })) {
92
+ $root = [IO.Path]::GetDirectoryName($root)
93
+ if (-not $root) { throw "Could not reconstruct repository root from prefix: $prefix" }
94
+ }
95
+ }
96
+ return Normalize-FullPath $root
97
+ }
98
+
99
+ function Convert-ToRepoPath([string]$FullPath, [string]$Root) {
100
+ if ($FullPath.Equals($Root, [StringComparison]::OrdinalIgnoreCase)) { return '' }
101
+ return $FullPath.Substring($Root.Length).TrimStart('\', '/').Replace('\', '/')
102
+ }
103
+
104
+ function Get-GitPaths([string]$WorkingDirectory, [string[]]$GitArgs) {
105
+ $response = Invoke-Git -WorkingDirectory $WorkingDirectory -GitArgs $GitArgs
106
+ if (-not $response.Output) { return @() }
107
+ return @($response.Output -split "`r?`n" | ForEach-Object { $_.Trim().Replace('\', '/') } | Where-Object { $_ })
108
+ }
109
+
110
+ function Assert-ExactPathSet([string[]]$Actual, [string[]]$Expected, [string]$Label) {
111
+ $actualSet = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase)
112
+ $expectedSet = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase)
113
+ foreach ($path in $Actual) { [void]$actualSet.Add($path) }
114
+ foreach ($path in $Expected) { [void]$expectedSet.Add($path) }
115
+ if (-not $actualSet.SetEquals($expectedSet)) {
116
+ throw "$Label mismatch. expected=[$($Expected -join ', ')] actual=[$($Actual -join ', ')]"
117
+ }
118
+ }
119
+
120
+ try {
121
+ if (-not (Test-Path -LiteralPath $Request -PathType Leaf)) { throw "Request file not found: $Request" }
122
+ $payload = Get-Content -LiteralPath $Request -Raw -Encoding UTF8 | ConvertFrom-Json
123
+ $cwd = Normalize-FullPath ([string]$payload.cwd)
124
+ $message = ([string]$payload.message).Trim()
125
+ $inputFiles = @($payload.files | ForEach-Object { ([string]$_).Trim() } | Where-Object { $_ })
126
+ if (-not (Test-Path -LiteralPath $cwd -PathType Container)) { throw "Session cwd does not exist: $cwd" }
127
+ if (-not $message) { throw 'Commit message is empty.' }
128
+ if ($inputFiles.Count -eq 0) { throw 'At least one exact file path is required.' }
129
+
130
+ $stage = 'repository'
131
+ $resolvedFiles = @()
132
+ $seenFullPaths = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase)
133
+ foreach ($inputFile in $inputFiles) {
134
+ if ($inputFile.IndexOfAny(@([char]0, [char]10, [char]13)) -ge 0) { throw 'File paths cannot contain NUL or newlines.' }
135
+ if ([IO.Path]::IsPathRooted($inputFile)) { throw "Absolute file path is not allowed: $inputFile" }
136
+ $fullPath = Normalize-FullPath (Join-Path $cwd $inputFile)
137
+ if (Test-Path -LiteralPath $fullPath -PathType Container) { throw "Directories are not allowed; list exact files: $inputFile" }
138
+ if (-not $seenFullPaths.Add($fullPath)) { throw "Duplicate file path: $inputFile" }
139
+ $resolvedFiles += [pscustomobject]@{ Input = $inputFile; FullPath = $fullPath }
140
+ }
141
+
142
+ $cwdRepoRoot = $null
143
+ $cwdCommonDir = $null
144
+ try {
145
+ $cwdRepoRoot = Get-RepositoryRootInPathNamespace $cwd
146
+ $cwdCommonDir = Normalize-FullPath (Invoke-Git -WorkingDirectory $cwdRepoRoot -GitArgs @('rev-parse', '--path-format=absolute', '--git-common-dir')).Output
147
+ } catch {
148
+ $cwdRepoRoot = $null
149
+ $cwdCommonDir = $null
150
+ }
151
+
152
+ $selectedRepoRoot = $null
153
+ $selectedCommonDir = $null
154
+ foreach ($file in $resolvedFiles) {
155
+
156
+ $probeDirectory = Get-NearestExistingDirectory $file.FullPath
157
+ $targetRepoRoot = Get-RepositoryRootInPathNamespace $probeDirectory
158
+ $targetCommonDir = Normalize-FullPath (Invoke-Git -WorkingDirectory $targetRepoRoot -GitArgs @('rev-parse', '--path-format=absolute', '--git-common-dir')).Output
159
+ if (-not (Test-PathWithin -Path $file.FullPath -Root $targetRepoRoot)) {
160
+ throw "File path escapes the repository: $($file.Input)"
161
+ }
162
+
163
+ if (-not $selectedRepoRoot) {
164
+ $selectedRepoRoot = $targetRepoRoot
165
+ $selectedCommonDir = $targetCommonDir
166
+ } elseif (
167
+ -not $selectedRepoRoot.Equals($targetRepoRoot, [StringComparison]::OrdinalIgnoreCase) -or
168
+ -not $selectedCommonDir.Equals($targetCommonDir, [StringComparison]::OrdinalIgnoreCase)
169
+ ) {
170
+ throw "Files belong to different repositories: $($file.Input)"
171
+ }
172
+ }
173
+
174
+ $repoRoot = $selectedRepoRoot
175
+ $commonDir = $selectedCommonDir
176
+ if ($cwdRepoRoot) {
177
+ $targetsBelongToCwdRepository = $commonDir.Equals($cwdCommonDir, [StringComparison]::OrdinalIgnoreCase)
178
+ if ($targetsBelongToCwdRepository) {
179
+ foreach ($file in $resolvedFiles) {
180
+ $parentPath = [IO.Path]::GetDirectoryName($file.FullPath)
181
+ $isDirectRepoRootChild = $parentPath -and $parentPath.Equals($cwdRepoRoot, [StringComparison]::OrdinalIgnoreCase)
182
+ if (-not (Test-PathWithin -Path $file.FullPath -Root $cwd) -and -not $isDirectRepoRootChild) {
183
+ throw "File path escapes the session cwd: $($file.Input)"
184
+ }
185
+ }
186
+ }
187
+ } else {
188
+ foreach ($file in $resolvedFiles) {
189
+ if (-not (Test-PathWithin -Path $file.FullPath -Root $cwd)) {
190
+ throw "File path escapes the session cwd: $($file.Input)"
191
+ }
192
+ }
193
+ if (-not (Test-PathWithin -Path $repoRoot -Root $cwd)) {
194
+ throw "Discovered repository escapes the session cwd: $repoRoot"
195
+ }
196
+ }
197
+
198
+ $seen = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase)
199
+ foreach ($file in $resolvedFiles) {
200
+ $repoPath = Convert-ToRepoPath -FullPath $file.FullPath -Root $repoRoot
201
+ if (-not $repoPath -or $repoPath -eq '.git' -or $repoPath.StartsWith('.git/', [StringComparison]::OrdinalIgnoreCase)) {
202
+ throw "Repository metadata or broad paths are not allowed: $($file.Input)"
203
+ }
204
+ if (-not $seen.Add($repoPath)) { throw "Duplicate file path: $($file.Input)" }
205
+ $repoPaths += $repoPath
206
+ }
207
+
208
+ $stage = 'remote'
209
+ $branch = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', '--abbrev-ref', 'HEAD')).Output
210
+ if (-not $branch -or $branch -eq 'HEAD') { throw 'Detached HEAD is not supported.' }
211
+ $configuredRemote = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('config', '--get', "branch.$branch.remote") -AllowedExitCodes @(0, 1)).Output
212
+ $configuredUpstreamRef = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('config', '--get', "branch.$branch.merge") -AllowedExitCodes @(0, 1)).Output
213
+ $configuredRemotes = @((Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('remote')).Output -split "`r?`n" | ForEach-Object { $_.Trim() } | Where-Object { $_ })
214
+ if ($configuredRemote) {
215
+ if ($configuredRemote -eq '.') { throw "Branch '$branch' tracks the local repository and has no pushable remote." }
216
+ if ($configuredRemotes -cnotcontains $configuredRemote) {
217
+ throw "Branch '$branch' is configured to push to '$configuredRemote', which is not a configured remote."
218
+ }
219
+ $remote = $configuredRemote
220
+ } elseif ($configuredRemotes.Count -eq 0) {
221
+ throw "Branch '$branch' has no configured remote to push to."
222
+ } elseif ($configuredRemotes -ccontains 'origin') {
223
+ $remote = 'origin'
224
+ } elseif ($configuredRemotes.Count -eq 1) {
225
+ $remote = $configuredRemotes[0]
226
+ } else {
227
+ throw "Branch '$branch' has no tracked remote and the repository has multiple remotes: $($configuredRemotes -join ', ')"
228
+ }
229
+ if ($configuredUpstreamRef) {
230
+ if ($configuredUpstreamRef -notmatch '^refs/heads/.+') { throw "Unsupported upstream ref: $configuredUpstreamRef" }
231
+ $upstreamRef = $configuredUpstreamRef
232
+ } else {
233
+ $upstreamRef = "refs/heads/$branch"
234
+ }
235
+ $trackingConfigured = [bool]$configuredRemote -and [bool]$configuredUpstreamRef
236
+
237
+ $stage = 'lock'
238
+ $lockKey = Get-Sha256Hex ($commonDir.ToLowerInvariant() + [char]0 + $remote + [char]0 + $upstreamRef)
239
+ $mutexName = "Global\OMP-GitFinalize-$lockKey"
240
+ $mutex = [Threading.Mutex]::new($false, $mutexName)
241
+ try {
242
+ $ownsMutex = $mutex.WaitOne([TimeSpan]::FromSeconds(120))
243
+ } catch [Threading.AbandonedMutexException] {
244
+ $ownsMutex = $true
245
+ }
246
+ if (-not $ownsMutex) { throw "Timed out waiting for repository finalizer lock: $mutexName" }
247
+
248
+ $stage = 'locked-preflight'
249
+ $lockedCommonDir = Normalize-FullPath (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', '--path-format=absolute', '--git-common-dir')).Output
250
+ $lockedBranch = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', '--abbrev-ref', 'HEAD')).Output
251
+ if (-not $lockedCommonDir.Equals($commonDir, [StringComparison]::OrdinalIgnoreCase) -or $lockedBranch -ne $branch) {
252
+ throw 'Repository or branch changed while acquiring the finalizer lock.'
253
+ }
254
+
255
+ $stage = 'remote-probe'
256
+ $probe = Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('ls-remote', '--exit-code', '--refs', $remote, $upstreamRef) -AllowedExitCodes @(0, 2)
257
+ $upstreamExists = $probe.Code -eq 0
258
+
259
+ $stage = 'fetch'
260
+ $headSha = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', 'HEAD')).Output
261
+ $upstreamSha = $null
262
+ if ($upstreamExists) {
263
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('fetch', '--no-tags', $remote, $upstreamRef))
264
+ $upstreamSha = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', 'FETCH_HEAD')).Output
265
+ $ancestry = Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('merge-base', '--is-ancestor', $upstreamSha, $headSha) -AllowedExitCodes @(0, 1)
266
+ if ($ancestry.Code -ne 0) {
267
+ throw "HEAD is behind or diverged from the fetched upstream. HEAD=$headSha upstream=$upstreamSha"
268
+ }
269
+ }
270
+
271
+ $stage = 'index-preflight'
272
+ $indexState = Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('diff', '--cached', '--quiet', '--exit-code') -AllowedExitCodes @(0, 1)
273
+ if ($indexState.Code -ne 0) { throw 'The shared Git index already contains staged changes.' }
274
+
275
+ $stage = 'stage'
276
+ $stagedByFinalizer = $true
277
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs (@('--literal-pathspecs', 'add', '-A', '--') + $repoPaths))
278
+ $cachedPaths = Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff', '--cached', '--no-renames', '--name-only')
279
+ Assert-ExactPathSet -Actual $cachedPaths -Expected $repoPaths -Label 'Staged path set'
280
+
281
+ $stage = 'commit'
282
+ $messageFile = [IO.Path]::GetTempFileName()
283
+ [IO.File]::WriteAllText($messageFile, $message + [Environment]::NewLine, [Text.UTF8Encoding]::new($false))
284
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('commit', '--file', $messageFile))
285
+ $createdCommit = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', 'HEAD')).Output
286
+ $stagedByFinalizer = $false
287
+
288
+ $stage = 'commit-verify'
289
+ $parentSha = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', "$createdCommit^" )).Output
290
+ if ($parentSha -ne $headSha) {
291
+ throw "Created commit parent does not match the captured HEAD. parent=$parentSha head=$headSha"
292
+ }
293
+ $committedPaths = Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff-tree', '--no-commit-id', '--no-renames', '--name-only', '-r', $createdCommit)
294
+ Assert-ExactPathSet -Actual $committedPaths -Expected $repoPaths -Label 'Committed path set'
295
+
296
+ $stage = 'push'
297
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('push', $remote, "${createdCommit}:${upstreamRef}"))
298
+
299
+ $stage = 'remote-verify'
300
+ $remoteLine = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('ls-remote', '--refs', $remote, $upstreamRef)).Output
301
+ $remoteSha = (($remoteLine -split '\s+')[0]).Trim()
302
+ if ($remoteSha -ne $createdCommit) {
303
+ throw "Remote ref verification failed. expected=$createdCommit actual=$remoteSha"
304
+ }
305
+
306
+ if (-not $trackingConfigured) {
307
+ $stage = 'tracking'
308
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('config', "branch.$branch.remote", $remote))
309
+ [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('config', "branch.$branch.merge", $upstreamRef))
310
+ }
311
+
312
+ $stage = 'complete'
313
+ $result = [ordered]@{
314
+ ok = $true
315
+ stage = $stage
316
+ commitSha = $createdCommit
317
+ remote = $remote
318
+ upstreamRef = $upstreamRef
319
+ }
320
+ } catch {
321
+ $exitCode = 1
322
+ $result = [ordered]@{
323
+ ok = $false
324
+ stage = $stage
325
+ error = $_.Exception.Message
326
+ commitSha = $createdCommit
327
+ }
328
+ } finally {
329
+ if ($stagedByFinalizer -and $repoRoot -and $repoPaths.Count -gt 0) {
330
+ try { [void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs (@('--literal-pathspecs', 'restore', '--staged', '--') + $repoPaths)) } catch {}
331
+ }
332
+ if ($messageFile) { Remove-Item -LiteralPath $messageFile -Force -ErrorAction SilentlyContinue }
333
+ if ($ownsMutex -and $mutex) {
334
+ try { $mutex.ReleaseMutex() } catch {}
335
+ }
336
+ if ($mutex) { $mutex.Dispose() }
337
+ }
338
+
339
+ [Console]::Out.WriteLine(($result | ConvertTo-Json -Compress))
340
+ exit $exitCode