cuelo 0.10.52 → 0.10.53

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 (484) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +35 -35
  3. package/.next/build-manifest.json +4 -4
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +549 -561
  7. package/.next/required-server-files.js +25 -25
  8. package/.next/required-server-files.json +25 -25
  9. package/.next/server/app/_global-error/page.js +3 -3
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/_not-found/page.js +2 -2
  20. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/_not-found.html +1 -1
  22. package/.next/server/app/_not-found.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  26. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/.next/server/app/api/agent/[id]/account/route.js +1 -1
  30. package/.next/server/app/api/agent/[id]/account/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  32. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  34. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/agent/[id]/route.js +1 -1
  36. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/agent/new/route.js +1 -1
  38. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/agent/running/route.js +1 -1
  40. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/attachment-settings/route.js +1 -1
  42. package/.next/server/app/api/attachment-settings/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -2
  44. package/.next/server/app/api/attachments/[id]/transcription/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/attachments/draft/route.js +1 -1
  46. package/.next/server/app/api/attachments/draft/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/attachments/route.js +2 -2
  48. package/.next/server/app/api/attachments/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  50. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  52. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  54. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  56. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/auth/providers/route.js +1 -1
  58. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/character-mode/route.js +1 -2
  60. package/.next/server/app/api/character-mode/route.js.nft.json +1 -1
  61. package/.next/server/app/api/character-mode/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/cwd/browse/route.js +1 -1
  63. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/cwd/validate/route.js +1 -1
  65. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/default-cwd/route.js +1 -1
  67. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/display-settings/route.js +1 -1
  69. package/.next/server/app/api/display-settings/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/document-text/route.js +2 -2
  71. package/.next/server/app/api/document-text/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/experiments/route.js +1 -1
  73. package/.next/server/app/api/experiments/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/file-index/route.js +1 -1
  75. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/files/[...path]/route.js +1 -1
  77. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/git/diff/route.js +1 -1
  79. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/git/status/route.js +2 -2
  81. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/github/projects/route.js +1 -1
  83. package/.next/server/app/api/github/projects/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  85. package/.next/server/app/api/gpt6/handles/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  87. package/.next/server/app/api/gpt6/reply/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/gpt6/token/route.js +1 -1
  89. package/.next/server/app/api/gpt6/token/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  91. package/.next/server/app/api/gpt6/web6-session/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/home/route.js +1 -1
  93. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/live/call/[callId]/route.js +2 -2
  95. package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/live/call/[callId]/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/live/events/route.js +2 -2
  98. package/.next/server/app/api/live/events/route.js.nft.json +1 -1
  99. package/.next/server/app/api/live/events/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/live/interpret/route.js +2 -2
  101. package/.next/server/app/api/live/interpret/route.js.nft.json +1 -1
  102. package/.next/server/app/api/live/interpret/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/live/offer/route.js +1 -1
  104. package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
  105. package/.next/server/app/api/live/offer/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/live/voices/route.js +1 -1
  107. package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
  108. package/.next/server/app/api/live/voices/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/mcp/route.js +2 -2
  110. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/model-roles/route.js +1 -1
  112. package/.next/server/app/api/model-roles/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/models/route.js +1 -1
  114. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  116. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/models-config/discover/route.js +1 -1
  118. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/models-config/route.js +3 -3
  120. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/models-config/test/route.js +1 -1
  122. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/office-characters/[...path]/route.js +1 -2
  124. package/.next/server/app/api/office-characters/[...path]/route.js.nft.json +1 -1
  125. package/.next/server/app/api/office-characters/[...path]/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/plugins/route.js +1 -1
  127. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/project-docs/route.js +1 -1
  129. package/.next/server/app/api/project-docs/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/project-trust/route.js +1 -1
  131. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/projects/route.js +2 -2
  133. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/runs/[runId]/prelude/route.js +1 -1
  135. package/.next/server/app/api/runs/[runId]/prelude/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/runs/[runId]/route.js +1 -1
  137. package/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/runs/[runId]/turns/route.js +1 -1
  139. package/.next/server/app/api/runs/[runId]/turns/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/runs/route.js +1 -1
  141. package/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  143. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  145. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  147. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  149. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  151. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  153. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/sessions/route.js +1 -1
  155. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/sessions/search/route.js +1 -1
  157. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/settings/route.js +1 -1
  159. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
  161. package/.next/server/app/api/sidecars/[service]/[...path]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/skills/check/route.js +1 -1
  163. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/skills/install/route.js +2 -2
  165. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/skills/route.js +1 -1
  167. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/skills/search/route.js +1 -1
  169. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/skills/update/route.js +1 -1
  171. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/subagents/eta/route.js +1 -1
  173. package/.next/server/app/api/subagents/eta/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/theme/route.js +1 -1
  175. package/.next/server/app/api/theme/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/tool-image/route.js +1 -1
  177. package/.next/server/app/api/tool-image/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/update-maintenance/route.js +2 -2
  179. package/.next/server/app/api/update-maintenance/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/updates/route.js +1 -1
  181. package/.next/server/app/api/updates/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/web-access/recovery/route.js +1 -1
  183. package/.next/server/app/api/web-access/recovery/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/web-access/route.js +1 -1
  185. package/.next/server/app/api/web-access/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/web6/consults/route.js +1 -1
  187. package/.next/server/app/api/web6/consults/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/route.js +1 -1
  189. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/favicon.ico/route.js +1 -1
  191. package/.next/server/app/index.html +1 -1
  192. package/.next/server/app/index.rsc +4 -4
  193. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  194. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  195. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  196. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  197. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  198. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  199. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/page.js +5 -5
  201. package/.next/server/app/page_client-reference-manifest.js +1 -1
  202. package/.next/server/app/recover/page.js +2 -2
  203. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  204. package/.next/server/app/recover.html +1 -1
  205. package/.next/server/app/recover.rsc +3 -3
  206. package/.next/server/app/recover.segments/_full.segment.rsc +3 -3
  207. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  208. package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
  209. package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
  210. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +2 -2
  211. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  212. package/.next/server/app-paths-manifest.json +35 -35
  213. package/.next/server/chunks/1008.js +2 -2
  214. package/.next/server/chunks/1966.js +2 -0
  215. package/.next/server/chunks/319.js +3 -3
  216. package/.next/server/chunks/6429.js +2 -2
  217. package/.next/server/chunks/6775.js +7 -0
  218. package/.next/server/middleware-build-manifest.js +1 -1
  219. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  220. package/.next/server/middleware.js +9 -9
  221. package/.next/server/pages/404.html +1 -1
  222. package/.next/server/pages/500.html +1 -1
  223. package/.next/server/server-reference-manifest.json +1 -1
  224. package/.next/static/chunks/app/_not-found/page-041b64675adcdf82.js +1 -0
  225. package/.next/static/chunks/app/layout-3b1f8b74c7fc5e77.js +1 -0
  226. package/.next/static/chunks/app/{page-3640086c732eb87d.js → page-efae4fdcf84b7a14.js} +4 -4
  227. package/.next/static/chunks/app/recover/{page-c0c40b3c215078a4.js → page-2bcd6a351f3eda3d.js} +1 -1
  228. package/.next/static/chunks/{main-app-fbc4aa3c15d48613.js → main-app-ca46ab75db2b4e4b.js} +1 -1
  229. package/.next/static/chunks/main-dd4c9daba44bef88.js +5 -0
  230. package/.next/static/chunks/next/dist/client/components/builtin/global-error-dac2a58a3b9eb28e.js +1 -0
  231. package/.next/static/chunks/webpack-546c8221d1906945.js +1 -0
  232. package/.next/trace +107 -107
  233. package/.next/trace-build +1 -1
  234. package/.next/types/app/api/agent/[id]/account/route.ts +1 -1
  235. package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
  236. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  237. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  238. package/.next/types/app/api/agent/new/route.ts +1 -1
  239. package/.next/types/app/api/agent/running/route.ts +1 -1
  240. package/.next/types/app/api/attachment-settings/route.ts +1 -1
  241. package/.next/types/app/api/attachments/[id]/transcription/route.ts +1 -1
  242. package/.next/types/app/api/attachments/draft/route.ts +1 -1
  243. package/.next/types/app/api/attachments/route.ts +1 -1
  244. package/.next/types/app/api/auth/all-providers/route.ts +1 -1
  245. package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
  246. package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
  247. package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
  248. package/.next/types/app/api/auth/providers/route.ts +1 -1
  249. package/.next/types/app/api/character-mode/route.ts +1 -1
  250. package/.next/types/app/api/cwd/browse/route.ts +1 -1
  251. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  252. package/.next/types/app/api/default-cwd/route.ts +1 -1
  253. package/.next/types/app/api/display-settings/route.ts +1 -1
  254. package/.next/types/app/api/document-text/route.ts +1 -1
  255. package/.next/types/app/api/experiments/route.ts +1 -1
  256. package/.next/types/app/api/file-index/route.ts +1 -1
  257. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  258. package/.next/types/app/api/git/diff/route.ts +1 -1
  259. package/.next/types/app/api/git/status/route.ts +1 -1
  260. package/.next/types/app/api/github/projects/route.ts +1 -1
  261. package/.next/types/app/api/gpt6/handles/route.ts +1 -1
  262. package/.next/types/app/api/gpt6/reply/route.ts +1 -1
  263. package/.next/types/app/api/gpt6/token/route.ts +1 -1
  264. package/.next/types/app/api/gpt6/web6-session/route.ts +1 -1
  265. package/.next/types/app/api/home/route.ts +1 -1
  266. package/.next/types/app/api/live/call/[callId]/route.ts +1 -1
  267. package/.next/types/app/api/live/events/route.ts +1 -1
  268. package/.next/types/app/api/live/interpret/route.ts +1 -1
  269. package/.next/types/app/api/live/offer/route.ts +1 -1
  270. package/.next/types/app/api/live/voices/route.ts +1 -1
  271. package/.next/types/app/api/mcp/route.ts +1 -1
  272. package/.next/types/app/api/model-roles/route.ts +1 -1
  273. package/.next/types/app/api/models/route.ts +1 -1
  274. package/.next/types/app/api/models-config/catalog/route.ts +1 -1
  275. package/.next/types/app/api/models-config/discover/route.ts +1 -1
  276. package/.next/types/app/api/models-config/route.ts +1 -1
  277. package/.next/types/app/api/models-config/test/route.ts +1 -1
  278. package/.next/types/app/api/office-characters/[...path]/route.ts +1 -1
  279. package/.next/types/app/api/plugins/route.ts +1 -1
  280. package/.next/types/app/api/project-docs/route.ts +1 -1
  281. package/.next/types/app/api/project-trust/route.ts +1 -1
  282. package/.next/types/app/api/projects/route.ts +1 -1
  283. package/.next/types/app/api/runs/[runId]/prelude/route.ts +1 -1
  284. package/.next/types/app/api/runs/[runId]/route.ts +1 -1
  285. package/.next/types/app/api/runs/[runId]/turns/route.ts +1 -1
  286. package/.next/types/app/api/runs/route.ts +1 -1
  287. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
  288. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  289. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
  290. package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
  291. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  292. package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
  293. package/.next/types/app/api/sessions/route.ts +1 -1
  294. package/.next/types/app/api/sessions/search/route.ts +1 -1
  295. package/.next/types/app/api/settings/route.ts +1 -1
  296. package/.next/types/app/api/sidecars/[service]/[...path]/route.ts +1 -1
  297. package/.next/types/app/api/skills/check/route.ts +1 -1
  298. package/.next/types/app/api/skills/install/route.ts +1 -1
  299. package/.next/types/app/api/skills/route.ts +1 -1
  300. package/.next/types/app/api/skills/search/route.ts +1 -1
  301. package/.next/types/app/api/skills/update/route.ts +1 -1
  302. package/.next/types/app/api/subagents/eta/route.ts +1 -1
  303. package/.next/types/app/api/theme/route.ts +1 -1
  304. package/.next/types/app/api/tool-image/route.ts +1 -1
  305. package/.next/types/app/api/update-maintenance/route.ts +1 -1
  306. package/.next/types/app/api/updates/route.ts +1 -1
  307. package/.next/types/app/api/web-access/recovery/route.ts +1 -1
  308. package/.next/types/app/api/web-access/route.ts +1 -1
  309. package/.next/types/app/api/web6/consults/route.ts +1 -1
  310. package/.next/types/app/api/worktrees/route.ts +1 -1
  311. package/.next/types/app/layout.ts +1 -1
  312. package/.next/types/app/page.ts +1 -1
  313. package/.next/types/app/recover/page.ts +1 -1
  314. package/LICENSE +22 -22
  315. package/README.md +273 -271
  316. package/Tools/CUELO_Setup/files/btw-server.js +346 -346
  317. package/Tools/CUELO_Setup/files/native-runtime-patch.js +238 -238
  318. package/Tools/CUELO_Setup/files/subagent-server.js +587 -587
  319. package/Tools/CUELO_Setup/files/usage-server.js +1057 -1057
  320. package/Tools/OMP_Global_Config/agent/AGENTS.md +144 -144
  321. package/Tools/OMP_Global_Config/agent/RULES.md +140 -140
  322. package/Tools/OMP_Global_Config/agent/TITLE_SYSTEM.md +17 -17
  323. package/Tools/OMP_Global_Config/agent/WATCHDOG.md +55 -55
  324. package/Tools/OMP_Global_Config/agent/agents/maker.md +413 -413
  325. package/Tools/OMP_Global_Config/agent/extensions/character-voice.ts +1035 -1035
  326. package/Tools/OMP_Global_Config/agent/extensions/command-guard/index.ts +1110 -1110
  327. package/Tools/OMP_Global_Config/agent/extensions/command-guard/interop-hint.ts +133 -133
  328. package/Tools/OMP_Global_Config/agent/extensions/command-guard/matcher.ts +2258 -2258
  329. package/Tools/OMP_Global_Config/agent/extensions/command-guard/powershell-syntax.ts +210 -210
  330. package/Tools/OMP_Global_Config/agent/extensions/command-guard/task-guard.ts +1137 -1121
  331. package/Tools/OMP_Global_Config/agent/extensions/cross-review.ts +132 -132
  332. package/Tools/OMP_Global_Config/agent/extensions/docmap-route.ts +133 -133
  333. package/Tools/OMP_Global_Config/agent/extensions/draft/markdown.ts +226 -226
  334. package/Tools/OMP_Global_Config/agent/extensions/draft/ooxml.ts +222 -222
  335. package/Tools/OMP_Global_Config/agent/extensions/draft/pdf.ts +63 -63
  336. package/Tools/OMP_Global_Config/agent/extensions/draft/zip.ts +73 -73
  337. package/Tools/OMP_Global_Config/agent/extensions/draft.ts +204 -204
  338. package/Tools/OMP_Global_Config/agent/extensions/edit-lessons.ts +159 -159
  339. package/Tools/OMP_Global_Config/agent/extensions/external-advice-check.ts +36 -36
  340. package/Tools/OMP_Global_Config/agent/extensions/gitnexus-autosync.ts +406 -406
  341. package/Tools/OMP_Global_Config/agent/extensions/image-question-router.ts +55 -55
  342. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +2700 -2700
  343. package/Tools/OMP_Global_Config/agent/extensions/korean-reply-guard.ts +190 -190
  344. package/Tools/OMP_Global_Config/agent/extensions/lib/cross-review.ts +1208 -1208
  345. package/Tools/OMP_Global_Config/agent/extensions/lib/docmap-search.ts +612 -612
  346. package/Tools/OMP_Global_Config/agent/extensions/lib/job-observation.ts +182 -182
  347. package/Tools/OMP_Global_Config/agent/extensions/lib/maker-routing.ts +1332 -1332
  348. package/Tools/OMP_Global_Config/agent/extensions/lib/mcp-selection.ts +361 -361
  349. package/Tools/OMP_Global_Config/agent/extensions/lib/memory-excerpt.ts +5 -5
  350. package/Tools/OMP_Global_Config/agent/extensions/lib/native-judge.ts +113 -113
  351. package/Tools/OMP_Global_Config/agent/extensions/lib/prepared-task.ts +211 -211
  352. package/Tools/OMP_Global_Config/agent/extensions/lib/routing-ledger.ts +538 -538
  353. package/Tools/OMP_Global_Config/agent/extensions/lib/session-identity.ts +34 -34
  354. package/Tools/OMP_Global_Config/agent/extensions/lib/task-progress.ts +492 -492
  355. package/Tools/OMP_Global_Config/agent/extensions/mcp-selection.ts +301 -301
  356. package/Tools/OMP_Global_Config/agent/extensions/prompt-compact.ts +67 -67
  357. package/Tools/OMP_Global_Config/agent/extensions/report-chart-guard.ts +102 -102
  358. package/Tools/OMP_Global_Config/agent/extensions/skim.ts +332 -332
  359. package/Tools/OMP_Global_Config/agent/extensions/steering-reply-gate.ts +207 -207
  360. package/Tools/OMP_Global_Config/agent/extensions/todo-nudge.ts +80 -80
  361. package/Tools/OMP_Global_Config/agent/extensions/turn-end-guard.ts +421 -421
  362. package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +147 -147
  363. package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +49 -49
  364. package/Tools/OMP_Global_Config/agent/rules/docs-handoff.md +39 -39
  365. package/Tools/OMP_Global_Config/agent/rules/frontend.md +74 -74
  366. package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +1224 -1224
  367. package/Tools/OMP_Global_Config/agent/rules/legacy-encoding.md +21 -21
  368. package/Tools/OMP_Global_Config/agent/rules/meta-harness.md +45 -45
  369. package/Tools/OMP_Global_Config/agent/rules/omp-harness.md +151 -151
  370. package/Tools/OMP_Global_Config/agent/rules/subagent.md +750 -750
  371. package/Tools/OMP_Global_Config/agent/rules/task-guard.md +62 -62
  372. package/Tools/OMP_Global_Config/agent/rules/verdict.md +210 -210
  373. package/Tools/OMP_Global_Config/agent/rules/web6-consult.md +83 -83
  374. package/Tools/OMP_Global_Config/agent/sop/_common.md +136 -136
  375. package/Tools/OMP_Global_Config/agent/sop/_writer.md +259 -259
  376. package/Tools/OMP_Global_Config/agent/sop/maker.md +9 -9
  377. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/finalizer.ps1 +409 -409
  378. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +303 -303
  379. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/sync-checkout.ts +184 -184
  380. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/wsl-git.ts +96 -96
  381. package/Tools/OMP_Global_Config/agent/tools/windows-build/index.ts +387 -387
  382. package/Tools/OMP_Global_Config/agent/tools/windows-control/control.ps1 +200 -200
  383. package/Tools/OMP_Global_Config/agent/tools/windows-control/index.ts +255 -255
  384. package/Tools/OMP_Global_Config/notices/orchestrate.md +26 -26
  385. package/Tools/OMP_Global_Config/notices/ultrathink.md +9 -9
  386. package/Tools/OMP_Global_Config/notices/workflow.md +16 -16
  387. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +18339 -18304
  388. package/Tools/OMP_Global_Config/patches/apply-notices.mjs +135 -135
  389. package/bin/cuelo-options.js +38 -38
  390. package/bin/cuelo.js +273 -273
  391. package/bin/docker-entrypoint.mjs +19 -19
  392. package/bin/password-prompt.js +100 -100
  393. package/bin/prepare-runtime.js +112 -112
  394. package/bin/runtime.js +134 -134
  395. package/bin/web-auth-store.d.ts +104 -104
  396. package/bin/web-auth-store.js +593 -593
  397. package/install.mjs +427 -427
  398. package/next.config.ts +104 -104
  399. package/package.json +141 -141
  400. package/public/audio/completion/voices.json +1393 -1393
  401. package/public/fonts/cuelo-display/NOTICE.txt +15 -15
  402. package/public/fonts/fonts.css +288 -288
  403. package/public/fonts/jetbrains-mono/OFL.txt +93 -93
  404. package/public/fonts/wanted-sans/OFL.txt +93 -93
  405. package/public/icons/catppuccin/LICENSE +22 -22
  406. package/public/icons/catppuccin/README.md +8 -8
  407. package/public/icons/catppuccin/latte/_file.svg +3 -3
  408. package/public/icons/catppuccin/latte/_folder.svg +3 -3
  409. package/public/icons/catppuccin/latte/_folder_open.svg +3 -3
  410. package/public/icons/catppuccin/latte/bash.svg +7 -7
  411. package/public/icons/catppuccin/latte/bun-lock.svg +8 -8
  412. package/public/icons/catppuccin/latte/config.svg +3 -3
  413. package/public/icons/catppuccin/latte/css.svg +6 -6
  414. package/public/icons/catppuccin/latte/database.svg +3 -3
  415. package/public/icons/catppuccin/latte/docker.svg +3 -3
  416. package/public/icons/catppuccin/latte/env.svg +3 -3
  417. package/public/icons/catppuccin/latte/eslint.svg +6 -6
  418. package/public/icons/catppuccin/latte/git.svg +6 -6
  419. package/public/icons/catppuccin/latte/go.svg +3 -3
  420. package/public/icons/catppuccin/latte/graphql.svg +3 -3
  421. package/public/icons/catppuccin/latte/html.svg +6 -6
  422. package/public/icons/catppuccin/latte/javascript-react.svg +8 -8
  423. package/public/icons/catppuccin/latte/javascript.svg +6 -6
  424. package/public/icons/catppuccin/latte/json.svg +3 -3
  425. package/public/icons/catppuccin/latte/lock.svg +3 -3
  426. package/public/icons/catppuccin/latte/markdown.svg +3 -3
  427. package/public/icons/catppuccin/latte/ms-word.svg +6 -6
  428. package/public/icons/catppuccin/latte/next.svg +6 -6
  429. package/public/icons/catppuccin/latte/npm-lock.svg +7 -7
  430. package/public/icons/catppuccin/latte/pdf.svg +3 -3
  431. package/public/icons/catppuccin/latte/python.svg +8 -8
  432. package/public/icons/catppuccin/latte/rust.svg +6 -6
  433. package/public/icons/catppuccin/latte/sass.svg +3 -3
  434. package/public/icons/catppuccin/latte/terraform.svg +3 -3
  435. package/public/icons/catppuccin/latte/toml.svg +3 -3
  436. package/public/icons/catppuccin/latte/typescript-react.svg +8 -8
  437. package/public/icons/catppuccin/latte/typescript.svg +6 -6
  438. package/public/icons/catppuccin/latte/yaml.svg +3 -3
  439. package/public/icons/catppuccin/mocha/_file.svg +3 -3
  440. package/public/icons/catppuccin/mocha/_folder.svg +3 -3
  441. package/public/icons/catppuccin/mocha/_folder_open.svg +3 -3
  442. package/public/icons/catppuccin/mocha/bash.svg +7 -7
  443. package/public/icons/catppuccin/mocha/bun-lock.svg +8 -8
  444. package/public/icons/catppuccin/mocha/config.svg +3 -3
  445. package/public/icons/catppuccin/mocha/css.svg +6 -6
  446. package/public/icons/catppuccin/mocha/database.svg +3 -3
  447. package/public/icons/catppuccin/mocha/docker.svg +3 -3
  448. package/public/icons/catppuccin/mocha/env.svg +3 -3
  449. package/public/icons/catppuccin/mocha/eslint.svg +6 -6
  450. package/public/icons/catppuccin/mocha/git.svg +6 -6
  451. package/public/icons/catppuccin/mocha/go.svg +3 -3
  452. package/public/icons/catppuccin/mocha/graphql.svg +3 -3
  453. package/public/icons/catppuccin/mocha/html.svg +6 -6
  454. package/public/icons/catppuccin/mocha/javascript-react.svg +8 -8
  455. package/public/icons/catppuccin/mocha/javascript.svg +6 -6
  456. package/public/icons/catppuccin/mocha/json.svg +3 -3
  457. package/public/icons/catppuccin/mocha/lock.svg +3 -3
  458. package/public/icons/catppuccin/mocha/markdown.svg +3 -3
  459. package/public/icons/catppuccin/mocha/ms-word.svg +6 -6
  460. package/public/icons/catppuccin/mocha/next.svg +6 -6
  461. package/public/icons/catppuccin/mocha/npm-lock.svg +7 -7
  462. package/public/icons/catppuccin/mocha/pdf.svg +3 -3
  463. package/public/icons/catppuccin/mocha/python.svg +8 -8
  464. package/public/icons/catppuccin/mocha/rust.svg +6 -6
  465. package/public/icons/catppuccin/mocha/sass.svg +3 -3
  466. package/public/icons/catppuccin/mocha/terraform.svg +3 -3
  467. package/public/icons/catppuccin/mocha/toml.svg +3 -3
  468. package/public/icons/catppuccin/mocha/typescript-react.svg +8 -8
  469. package/public/icons/catppuccin/mocha/typescript.svg +6 -6
  470. package/public/icons/catppuccin/mocha/yaml.svg +3 -3
  471. package/public/icons/cuelo-icon.svg +8 -8
  472. package/public/offline.html +145 -145
  473. package/public/sw.js +135 -135
  474. package/.next/server/chunks/205.js +0 -7
  475. package/.next/server/chunks/7738.js +0 -1
  476. package/.next/static/chunks/1966.b8f83f7ba376c962.js +0 -1
  477. package/.next/static/chunks/3899.3f761f7e3a944e8c.js +0 -1
  478. package/.next/static/chunks/app/_not-found/page-9e5295df095e2e41.js +0 -1
  479. package/.next/static/chunks/app/layout-8b29ba206a96135e.js +0 -1
  480. package/.next/static/chunks/main-1ddb405481ce21f6.js +0 -5
  481. package/.next/static/chunks/next/dist/client/components/builtin/global-error-50782c8c9c06c8b5.js +0 -1
  482. package/.next/static/chunks/webpack-7b514b9855bd748c.js +0 -1
  483. /package/.next/static/{dQA--5NX6NZt_A6pLZUde → -mDQEyWQ8VQsAfLpiACIP}/_buildManifest.js +0 -0
  484. /package/.next/static/{dQA--5NX6NZt_A6pLZUde → -mDQEyWQ8VQsAfLpiACIP}/_ssgManifest.js +0 -0
@@ -1,100 +1,100 @@
1
- "use strict";
2
-
3
- /**
4
- * Terminal password entry for `cuelo --authenticated` and `--reset-password`.
5
- *
6
- * Reads in raw mode and echoes nothing rather than going through readline's
7
- * private output hook, so the same code works under Node and under Bun.
8
- */
9
-
10
- // eslint-disable-next-line @typescript-eslint/no-require-imports
11
- const { validatePassword } = require("./web-auth-store");
12
-
13
- const ETX = "\u0003"; // Ctrl+C
14
- const EOT = "\u0004"; // Ctrl+D
15
- const BACKSPACE = "\u007f";
16
- const ESCAPE = "\u001b";
17
-
18
- /** Thrown when the operator interrupts the prompt (Ctrl+C / Ctrl+D). */
19
- class PromptAbortedError extends Error {
20
- constructor() {
21
- super("Password entry cancelled");
22
- this.name = "PromptAbortedError";
23
- }
24
- }
25
-
26
- /** Whether a person is actually there to answer. Services and pipes are not. */
27
- function isInteractive(stdin = process.stdin, stdout = process.stdout) {
28
- return Boolean(stdin.isTTY && stdout.isTTY);
29
- }
30
-
31
- function promptHidden(query) {
32
- return new Promise((resolvePrompt, rejectPrompt) => {
33
- const { stdin, stdout } = process;
34
- if (!isInteractive()) {
35
- rejectPrompt(new Error("A terminal is required to enter a password."));
36
- return;
37
- }
38
-
39
- stdout.write(query);
40
- const wasRaw = Boolean(stdin.isRaw);
41
- stdin.setRawMode(true);
42
- stdin.resume();
43
- stdin.setEncoding("utf8");
44
-
45
- let value = "";
46
- const finish = (result, error) => {
47
- stdin.removeListener("data", onData);
48
- stdin.setRawMode(wasRaw);
49
- stdin.pause();
50
- stdout.write("\n");
51
- if (error) rejectPrompt(error);
52
- else resolvePrompt(result);
53
- };
54
-
55
- const onData = (chunk) => {
56
- for (const char of chunk) {
57
- if (char === "\r" || char === "\n") return finish(value);
58
- // Ctrl+C always cancels; Ctrl+D cancels an empty entry, the usual EOF.
59
- if (char === ETX || (char === EOT && value.length === 0)) {
60
- return finish(undefined, new PromptAbortedError());
61
- }
62
- if (char === BACKSPACE || char === "\b") {
63
- value = value.slice(0, -1);
64
- continue;
65
- }
66
- // An escape introduces a key sequence (arrows, function keys). Nothing
67
- // in one belongs in a password, and the rest of the chunk is its body.
68
- if (char === ESCAPE) return;
69
- if (char >= " ") value += char;
70
- }
71
- };
72
-
73
- stdin.on("data", onData);
74
- });
75
- }
76
-
77
- /**
78
- * Ask for a new password twice, re-asking until the two entries agree and the
79
- * result is acceptable to the credential store.
80
- */
81
- async function readNewPassword(options = {}) {
82
- const prompt = options.prompt ?? "New password: ";
83
- for (;;) {
84
- const password = await promptHidden(prompt);
85
- const invalid = validatePassword(password);
86
- if (invalid) {
87
- process.stdout.write(`${invalid}\n`);
88
- continue;
89
- }
90
-
91
- const confirmation = await promptHidden("Confirm password: ");
92
- if (confirmation !== password) {
93
- process.stdout.write("The passwords do not match. Try again.\n");
94
- continue;
95
- }
96
- return password;
97
- }
98
- }
99
-
100
- module.exports = { PromptAbortedError, isInteractive, promptHidden, readNewPassword };
1
+ "use strict";
2
+
3
+ /**
4
+ * Terminal password entry for `cuelo --authenticated` and `--reset-password`.
5
+ *
6
+ * Reads in raw mode and echoes nothing rather than going through readline's
7
+ * private output hook, so the same code works under Node and under Bun.
8
+ */
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
11
+ const { validatePassword } = require("./web-auth-store");
12
+
13
+ const ETX = "\u0003"; // Ctrl+C
14
+ const EOT = "\u0004"; // Ctrl+D
15
+ const BACKSPACE = "\u007f";
16
+ const ESCAPE = "\u001b";
17
+
18
+ /** Thrown when the operator interrupts the prompt (Ctrl+C / Ctrl+D). */
19
+ class PromptAbortedError extends Error {
20
+ constructor() {
21
+ super("Password entry cancelled");
22
+ this.name = "PromptAbortedError";
23
+ }
24
+ }
25
+
26
+ /** Whether a person is actually there to answer. Services and pipes are not. */
27
+ function isInteractive(stdin = process.stdin, stdout = process.stdout) {
28
+ return Boolean(stdin.isTTY && stdout.isTTY);
29
+ }
30
+
31
+ function promptHidden(query) {
32
+ return new Promise((resolvePrompt, rejectPrompt) => {
33
+ const { stdin, stdout } = process;
34
+ if (!isInteractive()) {
35
+ rejectPrompt(new Error("A terminal is required to enter a password."));
36
+ return;
37
+ }
38
+
39
+ stdout.write(query);
40
+ const wasRaw = Boolean(stdin.isRaw);
41
+ stdin.setRawMode(true);
42
+ stdin.resume();
43
+ stdin.setEncoding("utf8");
44
+
45
+ let value = "";
46
+ const finish = (result, error) => {
47
+ stdin.removeListener("data", onData);
48
+ stdin.setRawMode(wasRaw);
49
+ stdin.pause();
50
+ stdout.write("\n");
51
+ if (error) rejectPrompt(error);
52
+ else resolvePrompt(result);
53
+ };
54
+
55
+ const onData = (chunk) => {
56
+ for (const char of chunk) {
57
+ if (char === "\r" || char === "\n") return finish(value);
58
+ // Ctrl+C always cancels; Ctrl+D cancels an empty entry, the usual EOF.
59
+ if (char === ETX || (char === EOT && value.length === 0)) {
60
+ return finish(undefined, new PromptAbortedError());
61
+ }
62
+ if (char === BACKSPACE || char === "\b") {
63
+ value = value.slice(0, -1);
64
+ continue;
65
+ }
66
+ // An escape introduces a key sequence (arrows, function keys). Nothing
67
+ // in one belongs in a password, and the rest of the chunk is its body.
68
+ if (char === ESCAPE) return;
69
+ if (char >= " ") value += char;
70
+ }
71
+ };
72
+
73
+ stdin.on("data", onData);
74
+ });
75
+ }
76
+
77
+ /**
78
+ * Ask for a new password twice, re-asking until the two entries agree and the
79
+ * result is acceptable to the credential store.
80
+ */
81
+ async function readNewPassword(options = {}) {
82
+ const prompt = options.prompt ?? "New password: ";
83
+ for (;;) {
84
+ const password = await promptHidden(prompt);
85
+ const invalid = validatePassword(password);
86
+ if (invalid) {
87
+ process.stdout.write(`${invalid}\n`);
88
+ continue;
89
+ }
90
+
91
+ const confirmation = await promptHidden("Confirm password: ");
92
+ if (confirmation !== password) {
93
+ process.stdout.write("The passwords do not match. Try again.\n");
94
+ continue;
95
+ }
96
+ return password;
97
+ }
98
+ }
99
+
100
+ module.exports = { PromptAbortedError, isInteractive, promptHidden, readNewPassword };
@@ -1,112 +1,112 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- // eslint-disable-next-line @typescript-eslint/no-require-imports
5
- const fs = require("node:fs");
6
- // eslint-disable-next-line @typescript-eslint/no-require-imports
7
- const path = require("node:path");
8
- // eslint-disable-next-line @typescript-eslint/no-require-imports
9
- const { spawnSync } = require("node:child_process");
10
-
11
- const pkgDir = path.resolve(__dirname, "..");
12
- const isCheck = process.argv.length === 3 && process.argv[2] === "--check";
13
- // --source: a source checkout's own node_modules, prepared before typecheck/test/build.
14
- const isSource = process.argv.length === 3 && process.argv[2] === "--source";
15
- if (process.argv.length > (isCheck || isSource ? 3 : 2)) {
16
- console.error("Usage: node bin/prepare-runtime.js [--check|--source]");
17
- process.exit(1);
18
- }
19
-
20
- // 소스 체크아웃의 npm postinstall은 작업 중인 node_modules를 수정하지 않는다.
21
- // 서버 준비 검사는 bun.lock을 추가해도 이 소스 분기를 사용하지 않는다.
22
- if (!isCheck && !isSource &&
23
- fs.existsSync(path.join(pkgDir, "bun.lock")) &&
24
- fs.existsSync(path.join(pkgDir, "app", "layout.tsx"))) {
25
- console.log("CUELO source install: runtime patch preparation is handled by the source release path.");
26
- process.exit(0);
27
- }
28
-
29
- const buildId = path.join(pkgDir, ".next", "BUILD_ID");
30
- if (!isSource && !fs.existsSync(buildId)) {
31
- console.error("CUELO npm package has no production build (.next/BUILD_ID). Install a prepared tarball.");
32
- process.exit(1);
33
- }
34
-
35
- const coreRoot = path.join(pkgDir, "node_modules", "@oh-my-pi");
36
- const corePackages = ["pi-coding-agent", "pi-agent-core", "pi-ai", "pi-tui"];
37
- const actualRoot = fs.realpathSync(pkgDir);
38
- for (const name of corePackages) {
39
- const expected = path.join(coreRoot, name);
40
- let actual;
41
- try {
42
- actual = fs.realpathSync(expected);
43
- } catch {
44
- console.error(`CUELO requires a package-owned SDK at ${expected}. Install globally into an isolated prefix, not a hoisted/shared dependency tree.`);
45
- process.exit(1);
46
- }
47
- const expectedRelative = path.join("node_modules", "@oh-my-pi", name);
48
- const actualRelative = path.relative(actualRoot, actual);
49
- if ((process.platform === "win32" ? actualRelative.toLowerCase() : actualRelative) !==
50
- (process.platform === "win32" ? expectedRelative.toLowerCase() : expectedRelative)) {
51
- console.error(`CUELO refuses to patch an SDK outside its own package: ${actual}`);
52
- process.exit(1);
53
- }
54
- }
55
-
56
- // Bun's default install links package files to its shared cache (nlink > 1), and the patches
57
- // rewrite files in place, which would change the cached copy for every project. Give the
58
- // package-owned @oh-my-pi files their own bytes first. Symlinks are never followed.
59
- function detachLinkedFiles(dir) {
60
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
61
- const file = path.join(dir, entry.name);
62
- if (entry.isDirectory()) {
63
- detachLinkedFiles(file);
64
- } else if (entry.isFile() && fs.lstatSync(file).nlink > 1) {
65
- const copy = `${file}.detach-${process.pid}`;
66
- try {
67
- fs.copyFileSync(file, copy);
68
- fs.renameSync(copy, file);
69
- } catch (error) {
70
- fs.rmSync(copy, { force: true });
71
- throw error;
72
- }
73
- }
74
- }
75
- }
76
- if (isSource) {
77
- for (const entry of fs.readdirSync(coreRoot, { withFileTypes: true })) {
78
- if (entry.isDirectory()) detachLinkedFiles(path.join(coreRoot, entry.name));
79
- }
80
- }
81
-
82
- const sdk = path.join(coreRoot, "pi-coding-agent");
83
- const home = path.join(pkgDir, ".runtime-patch-home");
84
- if (!isCheck) fs.mkdirSync(home, { recursive: true });
85
- const env = { ...process.env, OMP_CORE_PATCH_TARGET: sdk, HOME: home, USERPROFILE: home };
86
- const mode = isCheck ? ["--check"] : [];
87
- const commands = [
88
- // The native patch edits the production build, which a source preparation does not have yet.
89
- ...(isSource ? [] : [[path.join(pkgDir, "Tools", "CUELO_Setup", "files", "native-runtime-patch.js"), ["--target", pkgDir, ...mode]]]),
90
- [path.join(pkgDir, "Tools", "OMP_Global_Config", "patches", "apply-core-patch.mjs"), mode],
91
- [path.join(pkgDir, "Tools", "OMP_Global_Config", "patches", "apply-notices.mjs"), mode],
92
- ];
93
- for (const [script, args] of commands) {
94
- const result = spawnSync(process.execPath, [script, ...args], {
95
- cwd: pkgDir,
96
- env,
97
- encoding: "utf8",
98
- stdio: isCheck ? "pipe" : "inherit",
99
- });
100
- if (result.error || result.status !== 0) {
101
- if (isCheck) {
102
- if (result.stdout) process.stderr.write(result.stdout);
103
- if (result.stderr) process.stderr.write(result.stderr);
104
- }
105
- console.error(`CUELO runtime preparation ${isCheck ? "check" : "apply"} failed at ${path.basename(script)}: ${result.error?.message ?? `exit ${result.status}`}`);
106
- if (isCheck) console.error("If installation scripts did not run, use npm run prepare:runtime inside the installed cuelo package.");
107
- process.exit(1);
108
- }
109
- }
110
- if (!isCheck) console.log(isSource
111
- ? "CUELO source SDK core patches applied inside this checkout."
112
- : "CUELO npm runtime patches applied and verified inside this package.");
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
5
+ const fs = require("node:fs");
6
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
7
+ const path = require("node:path");
8
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
9
+ const { spawnSync } = require("node:child_process");
10
+
11
+ const pkgDir = path.resolve(__dirname, "..");
12
+ const isCheck = process.argv.length === 3 && process.argv[2] === "--check";
13
+ // --source: a source checkout's own node_modules, prepared before typecheck/test/build.
14
+ const isSource = process.argv.length === 3 && process.argv[2] === "--source";
15
+ if (process.argv.length > (isCheck || isSource ? 3 : 2)) {
16
+ console.error("Usage: node bin/prepare-runtime.js [--check|--source]");
17
+ process.exit(1);
18
+ }
19
+
20
+ // 소스 체크아웃의 npm postinstall은 작업 중인 node_modules를 수정하지 않는다.
21
+ // 서버 준비 검사는 bun.lock을 추가해도 이 소스 분기를 사용하지 않는다.
22
+ if (!isCheck && !isSource &&
23
+ fs.existsSync(path.join(pkgDir, "bun.lock")) &&
24
+ fs.existsSync(path.join(pkgDir, "app", "layout.tsx"))) {
25
+ console.log("CUELO source install: runtime patch preparation is handled by the source release path.");
26
+ process.exit(0);
27
+ }
28
+
29
+ const buildId = path.join(pkgDir, ".next", "BUILD_ID");
30
+ if (!isSource && !fs.existsSync(buildId)) {
31
+ console.error("CUELO npm package has no production build (.next/BUILD_ID). Install a prepared tarball.");
32
+ process.exit(1);
33
+ }
34
+
35
+ const coreRoot = path.join(pkgDir, "node_modules", "@oh-my-pi");
36
+ const corePackages = ["pi-coding-agent", "pi-agent-core", "pi-ai", "pi-tui"];
37
+ const actualRoot = fs.realpathSync(pkgDir);
38
+ for (const name of corePackages) {
39
+ const expected = path.join(coreRoot, name);
40
+ let actual;
41
+ try {
42
+ actual = fs.realpathSync(expected);
43
+ } catch {
44
+ console.error(`CUELO requires a package-owned SDK at ${expected}. Install globally into an isolated prefix, not a hoisted/shared dependency tree.`);
45
+ process.exit(1);
46
+ }
47
+ const expectedRelative = path.join("node_modules", "@oh-my-pi", name);
48
+ const actualRelative = path.relative(actualRoot, actual);
49
+ if ((process.platform === "win32" ? actualRelative.toLowerCase() : actualRelative) !==
50
+ (process.platform === "win32" ? expectedRelative.toLowerCase() : expectedRelative)) {
51
+ console.error(`CUELO refuses to patch an SDK outside its own package: ${actual}`);
52
+ process.exit(1);
53
+ }
54
+ }
55
+
56
+ // Bun's default install links package files to its shared cache (nlink > 1), and the patches
57
+ // rewrite files in place, which would change the cached copy for every project. Give the
58
+ // package-owned @oh-my-pi files their own bytes first. Symlinks are never followed.
59
+ function detachLinkedFiles(dir) {
60
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
61
+ const file = path.join(dir, entry.name);
62
+ if (entry.isDirectory()) {
63
+ detachLinkedFiles(file);
64
+ } else if (entry.isFile() && fs.lstatSync(file).nlink > 1) {
65
+ const copy = `${file}.detach-${process.pid}`;
66
+ try {
67
+ fs.copyFileSync(file, copy);
68
+ fs.renameSync(copy, file);
69
+ } catch (error) {
70
+ fs.rmSync(copy, { force: true });
71
+ throw error;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ if (isSource) {
77
+ for (const entry of fs.readdirSync(coreRoot, { withFileTypes: true })) {
78
+ if (entry.isDirectory()) detachLinkedFiles(path.join(coreRoot, entry.name));
79
+ }
80
+ }
81
+
82
+ const sdk = path.join(coreRoot, "pi-coding-agent");
83
+ const home = path.join(pkgDir, ".runtime-patch-home");
84
+ if (!isCheck) fs.mkdirSync(home, { recursive: true });
85
+ const env = { ...process.env, OMP_CORE_PATCH_TARGET: sdk, HOME: home, USERPROFILE: home };
86
+ const mode = isCheck ? ["--check"] : [];
87
+ const commands = [
88
+ // The native patch edits the production build, which a source preparation does not have yet.
89
+ ...(isSource ? [] : [[path.join(pkgDir, "Tools", "CUELO_Setup", "files", "native-runtime-patch.js"), ["--target", pkgDir, ...mode]]]),
90
+ [path.join(pkgDir, "Tools", "OMP_Global_Config", "patches", "apply-core-patch.mjs"), mode],
91
+ [path.join(pkgDir, "Tools", "OMP_Global_Config", "patches", "apply-notices.mjs"), mode],
92
+ ];
93
+ for (const [script, args] of commands) {
94
+ const result = spawnSync(process.execPath, [script, ...args], {
95
+ cwd: pkgDir,
96
+ env,
97
+ encoding: "utf8",
98
+ stdio: isCheck ? "pipe" : "inherit",
99
+ });
100
+ if (result.error || result.status !== 0) {
101
+ if (isCheck) {
102
+ if (result.stdout) process.stderr.write(result.stdout);
103
+ if (result.stderr) process.stderr.write(result.stderr);
104
+ }
105
+ console.error(`CUELO runtime preparation ${isCheck ? "check" : "apply"} failed at ${path.basename(script)}: ${result.error?.message ?? `exit ${result.status}`}`);
106
+ if (isCheck) console.error("If installation scripts did not run, use npm run prepare:runtime inside the installed cuelo package.");
107
+ process.exit(1);
108
+ }
109
+ }
110
+ if (!isCheck) console.log(isSource
111
+ ? "CUELO source SDK core patches applied inside this checkout."
112
+ : "CUELO npm runtime patches applied and verified inside this package.");