cuelo 0.9.6 โ†’ 0.9.8

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 (346) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -10
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +2 -2
  6. package/.next/required-server-files.json +2 -2
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_global-error/page.js +3 -3
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page.js +2 -2
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_not-found.html +1 -1
  21. package/.next/server/app/_not-found.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  28. package/.next/server/app/api/agent/[id]/account/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  30. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  31. package/.next/server/app/api/agent/[id]/route.js +1 -1
  32. package/.next/server/app/api/agent/new/route.js +1 -1
  33. package/.next/server/app/api/agent/running/route.js +1 -1
  34. package/.next/server/app/api/attachment-settings/route.js +1 -1
  35. package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -2
  36. package/.next/server/app/api/attachments/draft/route.js +1 -1
  37. package/.next/server/app/api/attachments/route.js +3 -3
  38. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  39. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  40. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  41. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  42. package/.next/server/app/api/auth/providers/route.js +1 -1
  43. package/.next/server/app/api/cwd/browse/route.js +1 -1
  44. package/.next/server/app/api/cwd/validate/route.js +1 -1
  45. package/.next/server/app/api/default-cwd/route.js +1 -1
  46. package/.next/server/app/api/display-settings/route.js +1 -1
  47. package/.next/server/app/api/document-text/route.js +2 -2
  48. package/.next/server/app/api/experiments/route.js +1 -1
  49. package/.next/server/app/api/file-index/route.js +1 -1
  50. package/.next/server/app/api/files/[...path]/route.js +3 -3
  51. package/.next/server/app/api/git/diff/route.js +1 -1
  52. package/.next/server/app/api/git/status/route.js +1 -1
  53. package/.next/server/app/api/github/projects/route.js +1 -0
  54. package/.next/server/app/api/github/projects/route.js.nft.json +1 -0
  55. package/.next/server/app/api/github/projects/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  57. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  58. package/.next/server/app/api/gpt6/token/route.js +1 -1
  59. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  60. package/.next/server/app/api/home/route.js +1 -1
  61. package/.next/server/app/api/live/call/[callId]/route.js +1 -1
  62. package/.next/server/app/api/live/character-voice/route.js +1 -1
  63. package/.next/server/app/api/live/events/route.js +2 -2
  64. package/.next/server/app/api/live/offer/route.js +1 -1
  65. package/.next/server/app/api/live/voices/route.js +1 -1
  66. package/.next/server/app/api/lounge/events/route.js +2 -2
  67. package/.next/server/app/api/lounge/route.js +1 -1
  68. package/.next/server/app/api/mcp/route.js +2 -2
  69. package/.next/server/app/api/model-roles/route.js +1 -1
  70. package/.next/server/app/api/models/route.js +1 -1
  71. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  72. package/.next/server/app/api/models-config/discover/route.js +1 -1
  73. package/.next/server/app/api/models-config/route.js +3 -3
  74. package/.next/server/app/api/models-config/test/route.js +1 -1
  75. package/.next/server/app/api/office-avatars/[id]/route.js +1 -1
  76. package/.next/server/app/api/office-avatars/route.js +1 -1
  77. package/.next/server/app/api/plugins/route.js +1 -1
  78. package/.next/server/app/api/project-trust/route.js +1 -1
  79. package/.next/server/app/api/projects/route.js +1 -1
  80. package/.next/server/app/api/runs/[runId]/route.js +1 -1
  81. package/.next/server/app/api/runs/route.js +1 -1
  82. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  83. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  84. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  85. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  86. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  87. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  88. package/.next/server/app/api/sessions/route.js +1 -1
  89. package/.next/server/app/api/sessions/search/route.js +1 -1
  90. package/.next/server/app/api/settings/route.js +1 -1
  91. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
  92. package/.next/server/app/api/skills/check/route.js +1 -1
  93. package/.next/server/app/api/skills/install/route.js +2 -2
  94. package/.next/server/app/api/skills/route.js +2 -2
  95. package/.next/server/app/api/skills/search/route.js +1 -1
  96. package/.next/server/app/api/skills/update/route.js +1 -1
  97. package/.next/server/app/api/theme/route.js +1 -1
  98. package/.next/server/app/api/tool-image/route.js +1 -1
  99. package/.next/server/app/api/update-maintenance/route.js +8 -4
  100. package/.next/server/app/api/updates/route.js +1 -1
  101. package/.next/server/app/api/web-access/recovery/route.js +1 -1
  102. package/.next/server/app/api/web-access/route.js +1 -1
  103. package/.next/server/app/api/web6/consults/route.js +1 -1
  104. package/.next/server/app/api/worktrees/route.js +1 -1
  105. package/.next/server/app/favicon.ico/route.js +1 -1
  106. package/.next/server/app/index.html +1 -1
  107. package/.next/server/app/index.rsc +5 -5
  108. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  109. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  110. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  111. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  112. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  113. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  114. package/.next/server/app/office/page.js +2 -2
  115. package/.next/server/app/office/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/office-preview/page.js +2 -2
  117. package/.next/server/app/office-preview/page_client-reference-manifest.js +1 -1
  118. package/.next/server/app/office-preview.html +1 -1
  119. package/.next/server/app/office-preview.rsc +2 -2
  120. package/.next/server/app/office-preview.segments/_full.segment.rsc +2 -2
  121. package/.next/server/app/office-preview.segments/_head.segment.rsc +1 -1
  122. package/.next/server/app/office-preview.segments/_index.segment.rsc +2 -2
  123. package/.next/server/app/office-preview.segments/_tree.segment.rsc +1 -1
  124. package/.next/server/app/office-preview.segments/office-preview/__PAGE__.segment.rsc +1 -1
  125. package/.next/server/app/office-preview.segments/office-preview.segment.rsc +1 -1
  126. package/.next/server/app/office.html +1 -1
  127. package/.next/server/app/office.rsc +5 -5
  128. package/.next/server/app/office.segments/_full.segment.rsc +5 -5
  129. package/.next/server/app/office.segments/_head.segment.rsc +1 -1
  130. package/.next/server/app/office.segments/_index.segment.rsc +2 -2
  131. package/.next/server/app/office.segments/_tree.segment.rsc +2 -2
  132. package/.next/server/app/office.segments/office/__PAGE__.segment.rsc +4 -4
  133. package/.next/server/app/office.segments/office.segment.rsc +1 -1
  134. package/.next/server/app/page.js +2 -2
  135. package/.next/server/app/page_client-reference-manifest.js +1 -1
  136. package/.next/server/app/recover/page.js +2 -2
  137. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  138. package/.next/server/app/recover.html +1 -1
  139. package/.next/server/app/recover.rsc +2 -2
  140. package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
  141. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  142. package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
  143. package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
  144. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
  145. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  146. package/.next/server/app-paths-manifest.json +11 -10
  147. package/.next/server/chunks/1008.js +2 -2
  148. package/.next/server/chunks/2651.js +1 -1
  149. package/.next/server/chunks/3379.js +1 -1
  150. package/.next/server/chunks/5489.js +12 -12
  151. package/.next/server/chunks/6429.js +6 -6
  152. package/.next/server/chunks/7362.js +1 -1
  153. package/.next/server/middleware-build-manifest.js +1 -1
  154. package/.next/server/middleware.js +2 -2
  155. package/.next/server/pages/404.html +1 -1
  156. package/.next/server/pages/500.html +1 -1
  157. package/.next/server/server-reference-manifest.json +1 -1
  158. package/.next/static/chunks/6110-9f1e951aafcdd72e.js +1 -0
  159. package/.next/static/chunks/9575-a48cda671c8b915d.js +22 -0
  160. package/.next/static/chunks/app/{api/agent/[id]/bash-output/route-6b1496af498bb4fd.js โ†’ _global-error/page-318ea6a550b5034e.js} +1 -1
  161. package/.next/static/chunks/app/api/agent/[id]/{events/route-6b1496af498bb4fd.js โ†’ account/route-318ea6a550b5034e.js} +1 -1
  162. package/.next/static/chunks/app/{_global-error/page-6b1496af498bb4fd.js โ†’ api/agent/[id]/bash-output/route-318ea6a550b5034e.js} +1 -1
  163. package/.next/static/chunks/app/api/agent/[id]/{account/route-6b1496af498bb4fd.js โ†’ events/route-318ea6a550b5034e.js} +1 -1
  164. package/.next/static/chunks/app/api/agent/[id]/route-318ea6a550b5034e.js +1 -0
  165. package/.next/static/chunks/app/api/agent/new/route-318ea6a550b5034e.js +1 -0
  166. package/.next/static/chunks/app/api/agent/running/route-318ea6a550b5034e.js +1 -0
  167. package/.next/static/chunks/app/api/attachment-settings/route-318ea6a550b5034e.js +1 -0
  168. package/.next/static/chunks/app/api/attachments/[id]/transcription/route-318ea6a550b5034e.js +1 -0
  169. package/.next/static/chunks/app/api/attachments/draft/route-318ea6a550b5034e.js +1 -0
  170. package/.next/static/chunks/app/api/attachments/route-318ea6a550b5034e.js +1 -0
  171. package/.next/static/chunks/app/api/auth/all-providers/route-318ea6a550b5034e.js +1 -0
  172. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-318ea6a550b5034e.js +1 -0
  173. package/.next/static/chunks/app/api/auth/login/[provider]/route-318ea6a550b5034e.js +1 -0
  174. package/.next/static/chunks/app/api/auth/logout/[provider]/route-318ea6a550b5034e.js +1 -0
  175. package/.next/static/chunks/app/api/auth/providers/route-318ea6a550b5034e.js +1 -0
  176. package/.next/static/chunks/app/api/cwd/browse/route-318ea6a550b5034e.js +1 -0
  177. package/.next/static/chunks/app/api/cwd/validate/route-318ea6a550b5034e.js +1 -0
  178. package/.next/static/chunks/app/api/default-cwd/route-318ea6a550b5034e.js +1 -0
  179. package/.next/static/chunks/app/api/display-settings/route-318ea6a550b5034e.js +1 -0
  180. package/.next/static/chunks/app/api/document-text/route-318ea6a550b5034e.js +1 -0
  181. package/.next/static/chunks/app/api/experiments/route-318ea6a550b5034e.js +1 -0
  182. package/.next/static/chunks/app/api/file-index/route-318ea6a550b5034e.js +1 -0
  183. package/.next/static/chunks/app/api/files/[...path]/route-318ea6a550b5034e.js +1 -0
  184. package/.next/static/chunks/app/api/git/diff/route-318ea6a550b5034e.js +1 -0
  185. package/.next/static/chunks/app/api/git/status/route-318ea6a550b5034e.js +1 -0
  186. package/.next/static/chunks/app/api/github/projects/route-318ea6a550b5034e.js +1 -0
  187. package/.next/static/chunks/app/api/gpt6/handles/route-318ea6a550b5034e.js +1 -0
  188. package/.next/static/chunks/app/api/gpt6/reply/route-318ea6a550b5034e.js +1 -0
  189. package/.next/static/chunks/app/api/gpt6/token/route-318ea6a550b5034e.js +1 -0
  190. package/.next/static/chunks/app/api/gpt6/web6-session/route-318ea6a550b5034e.js +1 -0
  191. package/.next/static/chunks/app/api/home/route-318ea6a550b5034e.js +1 -0
  192. package/.next/static/chunks/app/api/live/call/[callId]/route-318ea6a550b5034e.js +1 -0
  193. package/.next/static/chunks/app/api/live/character-voice/route-318ea6a550b5034e.js +1 -0
  194. package/.next/static/chunks/app/api/live/events/route-318ea6a550b5034e.js +1 -0
  195. package/.next/static/chunks/app/api/live/offer/route-318ea6a550b5034e.js +1 -0
  196. package/.next/static/chunks/app/api/live/voices/route-318ea6a550b5034e.js +1 -0
  197. package/.next/static/chunks/app/api/lounge/events/route-318ea6a550b5034e.js +1 -0
  198. package/.next/static/chunks/app/api/lounge/route-318ea6a550b5034e.js +1 -0
  199. package/.next/static/chunks/app/api/mcp/route-318ea6a550b5034e.js +1 -0
  200. package/.next/static/chunks/app/api/model-roles/route-318ea6a550b5034e.js +1 -0
  201. package/.next/static/chunks/app/api/models/route-318ea6a550b5034e.js +1 -0
  202. package/.next/static/chunks/app/api/models-config/catalog/route-318ea6a550b5034e.js +1 -0
  203. package/.next/static/chunks/app/api/models-config/discover/route-318ea6a550b5034e.js +1 -0
  204. package/.next/static/chunks/app/api/models-config/route-318ea6a550b5034e.js +1 -0
  205. package/.next/static/chunks/app/api/models-config/test/route-318ea6a550b5034e.js +1 -0
  206. package/.next/static/chunks/app/api/office-avatars/[id]/route-318ea6a550b5034e.js +1 -0
  207. package/.next/static/chunks/app/api/office-avatars/route-318ea6a550b5034e.js +1 -0
  208. package/.next/static/chunks/app/api/plugins/route-318ea6a550b5034e.js +1 -0
  209. package/.next/static/chunks/app/api/project-trust/route-318ea6a550b5034e.js +1 -0
  210. package/.next/static/chunks/app/api/projects/route-318ea6a550b5034e.js +1 -0
  211. package/.next/static/chunks/app/api/runs/[runId]/route-318ea6a550b5034e.js +1 -0
  212. package/.next/static/chunks/app/api/runs/route-318ea6a550b5034e.js +1 -0
  213. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-318ea6a550b5034e.js +1 -0
  214. package/.next/static/chunks/app/api/sessions/[id]/context/route-318ea6a550b5034e.js +1 -0
  215. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-318ea6a550b5034e.js +1 -0
  216. package/.next/static/chunks/app/api/sessions/[id]/export/route-318ea6a550b5034e.js +1 -0
  217. package/.next/static/chunks/app/api/sessions/[id]/route-318ea6a550b5034e.js +1 -0
  218. package/.next/static/chunks/app/api/sessions/[id]/state/route-318ea6a550b5034e.js +1 -0
  219. package/.next/static/chunks/app/api/sessions/route-318ea6a550b5034e.js +1 -0
  220. package/.next/static/chunks/app/api/sessions/search/route-318ea6a550b5034e.js +1 -0
  221. package/.next/static/chunks/app/api/settings/route-318ea6a550b5034e.js +1 -0
  222. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-318ea6a550b5034e.js +1 -0
  223. package/.next/static/chunks/app/api/skills/check/route-318ea6a550b5034e.js +1 -0
  224. package/.next/static/chunks/app/api/skills/install/route-318ea6a550b5034e.js +1 -0
  225. package/.next/static/chunks/app/api/skills/route-318ea6a550b5034e.js +1 -0
  226. package/.next/static/chunks/app/api/skills/search/route-318ea6a550b5034e.js +1 -0
  227. package/.next/static/chunks/app/api/skills/update/route-318ea6a550b5034e.js +1 -0
  228. package/.next/static/chunks/app/api/theme/route-318ea6a550b5034e.js +1 -0
  229. package/.next/static/chunks/app/api/tool-image/route-318ea6a550b5034e.js +1 -0
  230. package/.next/static/chunks/app/api/update-maintenance/route-318ea6a550b5034e.js +1 -0
  231. package/.next/static/chunks/app/api/updates/route-318ea6a550b5034e.js +1 -0
  232. package/.next/static/chunks/app/api/web-access/recovery/route-318ea6a550b5034e.js +1 -0
  233. package/.next/static/chunks/app/api/web-access/route-318ea6a550b5034e.js +1 -0
  234. package/.next/static/chunks/app/api/web6/consults/route-318ea6a550b5034e.js +1 -0
  235. package/.next/static/chunks/app/api/worktrees/route-318ea6a550b5034e.js +1 -0
  236. package/.next/static/chunks/app/{layout-15c56b62f49b1c1d.js โ†’ layout-489bc5b73326436e.js} +1 -1
  237. package/.next/static/chunks/app/manifest.webmanifest/route-318ea6a550b5034e.js +1 -0
  238. package/.next/static/chunks/app/office/page-8dc604f9b5e6f220.js +1 -0
  239. package/.next/static/chunks/app/page-952b1ef4df5ac896.js +1 -0
  240. package/.next/static/chunks/next/dist/client/components/builtin/app-error-318ea6a550b5034e.js +1 -0
  241. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-318ea6a550b5034e.js +1 -0
  242. package/.next/static/chunks/next/dist/client/components/builtin/not-found-318ea6a550b5034e.js +1 -0
  243. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-318ea6a550b5034e.js +1 -0
  244. package/.next/static/chunks/{webpack-fe8f1f81562a2b61.js โ†’ webpack-68986b211ad38cf1.js} +1 -1
  245. package/.next/static/css/4fae42750604bc1a.css +1 -0
  246. package/.next/static/pzZcPiD8nl6i7i_Ne9Ko-/_buildManifest.js +1 -0
  247. package/.next/trace +108 -108
  248. package/.next/trace-build +1 -1
  249. package/.next/types/app/api/github/projects/route.ts +351 -0
  250. package/.next/types/routes.d.ts +2 -1
  251. package/.next/types/validator.ts +9 -0
  252. package/README.md +8 -3
  253. package/Tools/CUELO_Setup/files/native-runtime-patch.js +3 -3
  254. package/Tools/OMP_Global_Config/agent/RULES.md +3 -1
  255. package/Tools/OMP_Global_Config/agent/TITLE_SYSTEM.md +17 -0
  256. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +11 -4
  257. package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +4 -2
  258. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/finalizer.ps1 +68 -31
  259. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +8 -6
  260. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +1119 -129
  261. package/bin/docker-entrypoint.mjs +19 -0
  262. package/install.mjs +11 -7
  263. package/package.json +8 -7
  264. package/.next/static/chunks/6110-004be57c825af4d9.js +0 -1
  265. package/.next/static/chunks/9575-4a84cf066c2f1257.js +0 -22
  266. package/.next/static/chunks/app/api/agent/[id]/route-6b1496af498bb4fd.js +0 -1
  267. package/.next/static/chunks/app/api/agent/new/route-6b1496af498bb4fd.js +0 -1
  268. package/.next/static/chunks/app/api/agent/running/route-6b1496af498bb4fd.js +0 -1
  269. package/.next/static/chunks/app/api/attachment-settings/route-6b1496af498bb4fd.js +0 -1
  270. package/.next/static/chunks/app/api/attachments/[id]/transcription/route-6b1496af498bb4fd.js +0 -1
  271. package/.next/static/chunks/app/api/attachments/draft/route-6b1496af498bb4fd.js +0 -1
  272. package/.next/static/chunks/app/api/attachments/route-6b1496af498bb4fd.js +0 -1
  273. package/.next/static/chunks/app/api/auth/all-providers/route-6b1496af498bb4fd.js +0 -1
  274. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6b1496af498bb4fd.js +0 -1
  275. package/.next/static/chunks/app/api/auth/login/[provider]/route-6b1496af498bb4fd.js +0 -1
  276. package/.next/static/chunks/app/api/auth/logout/[provider]/route-6b1496af498bb4fd.js +0 -1
  277. package/.next/static/chunks/app/api/auth/providers/route-6b1496af498bb4fd.js +0 -1
  278. package/.next/static/chunks/app/api/cwd/browse/route-6b1496af498bb4fd.js +0 -1
  279. package/.next/static/chunks/app/api/cwd/validate/route-6b1496af498bb4fd.js +0 -1
  280. package/.next/static/chunks/app/api/default-cwd/route-6b1496af498bb4fd.js +0 -1
  281. package/.next/static/chunks/app/api/display-settings/route-6b1496af498bb4fd.js +0 -1
  282. package/.next/static/chunks/app/api/document-text/route-6b1496af498bb4fd.js +0 -1
  283. package/.next/static/chunks/app/api/experiments/route-6b1496af498bb4fd.js +0 -1
  284. package/.next/static/chunks/app/api/file-index/route-6b1496af498bb4fd.js +0 -1
  285. package/.next/static/chunks/app/api/files/[...path]/route-6b1496af498bb4fd.js +0 -1
  286. package/.next/static/chunks/app/api/git/diff/route-6b1496af498bb4fd.js +0 -1
  287. package/.next/static/chunks/app/api/git/status/route-6b1496af498bb4fd.js +0 -1
  288. package/.next/static/chunks/app/api/gpt6/handles/route-6b1496af498bb4fd.js +0 -1
  289. package/.next/static/chunks/app/api/gpt6/reply/route-6b1496af498bb4fd.js +0 -1
  290. package/.next/static/chunks/app/api/gpt6/token/route-6b1496af498bb4fd.js +0 -1
  291. package/.next/static/chunks/app/api/gpt6/web6-session/route-6b1496af498bb4fd.js +0 -1
  292. package/.next/static/chunks/app/api/home/route-6b1496af498bb4fd.js +0 -1
  293. package/.next/static/chunks/app/api/live/call/[callId]/route-6b1496af498bb4fd.js +0 -1
  294. package/.next/static/chunks/app/api/live/character-voice/route-6b1496af498bb4fd.js +0 -1
  295. package/.next/static/chunks/app/api/live/events/route-6b1496af498bb4fd.js +0 -1
  296. package/.next/static/chunks/app/api/live/offer/route-6b1496af498bb4fd.js +0 -1
  297. package/.next/static/chunks/app/api/live/voices/route-6b1496af498bb4fd.js +0 -1
  298. package/.next/static/chunks/app/api/lounge/events/route-6b1496af498bb4fd.js +0 -1
  299. package/.next/static/chunks/app/api/lounge/route-6b1496af498bb4fd.js +0 -1
  300. package/.next/static/chunks/app/api/mcp/route-6b1496af498bb4fd.js +0 -1
  301. package/.next/static/chunks/app/api/model-roles/route-6b1496af498bb4fd.js +0 -1
  302. package/.next/static/chunks/app/api/models/route-6b1496af498bb4fd.js +0 -1
  303. package/.next/static/chunks/app/api/models-config/catalog/route-6b1496af498bb4fd.js +0 -1
  304. package/.next/static/chunks/app/api/models-config/discover/route-6b1496af498bb4fd.js +0 -1
  305. package/.next/static/chunks/app/api/models-config/route-6b1496af498bb4fd.js +0 -1
  306. package/.next/static/chunks/app/api/models-config/test/route-6b1496af498bb4fd.js +0 -1
  307. package/.next/static/chunks/app/api/office-avatars/[id]/route-6b1496af498bb4fd.js +0 -1
  308. package/.next/static/chunks/app/api/office-avatars/route-6b1496af498bb4fd.js +0 -1
  309. package/.next/static/chunks/app/api/plugins/route-6b1496af498bb4fd.js +0 -1
  310. package/.next/static/chunks/app/api/project-trust/route-6b1496af498bb4fd.js +0 -1
  311. package/.next/static/chunks/app/api/projects/route-6b1496af498bb4fd.js +0 -1
  312. package/.next/static/chunks/app/api/runs/[runId]/route-6b1496af498bb4fd.js +0 -1
  313. package/.next/static/chunks/app/api/runs/route-6b1496af498bb4fd.js +0 -1
  314. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6b1496af498bb4fd.js +0 -1
  315. package/.next/static/chunks/app/api/sessions/[id]/context/route-6b1496af498bb4fd.js +0 -1
  316. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6b1496af498bb4fd.js +0 -1
  317. package/.next/static/chunks/app/api/sessions/[id]/export/route-6b1496af498bb4fd.js +0 -1
  318. package/.next/static/chunks/app/api/sessions/[id]/route-6b1496af498bb4fd.js +0 -1
  319. package/.next/static/chunks/app/api/sessions/[id]/state/route-6b1496af498bb4fd.js +0 -1
  320. package/.next/static/chunks/app/api/sessions/route-6b1496af498bb4fd.js +0 -1
  321. package/.next/static/chunks/app/api/sessions/search/route-6b1496af498bb4fd.js +0 -1
  322. package/.next/static/chunks/app/api/settings/route-6b1496af498bb4fd.js +0 -1
  323. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-6b1496af498bb4fd.js +0 -1
  324. package/.next/static/chunks/app/api/skills/check/route-6b1496af498bb4fd.js +0 -1
  325. package/.next/static/chunks/app/api/skills/install/route-6b1496af498bb4fd.js +0 -1
  326. package/.next/static/chunks/app/api/skills/route-6b1496af498bb4fd.js +0 -1
  327. package/.next/static/chunks/app/api/skills/search/route-6b1496af498bb4fd.js +0 -1
  328. package/.next/static/chunks/app/api/skills/update/route-6b1496af498bb4fd.js +0 -1
  329. package/.next/static/chunks/app/api/theme/route-6b1496af498bb4fd.js +0 -1
  330. package/.next/static/chunks/app/api/tool-image/route-6b1496af498bb4fd.js +0 -1
  331. package/.next/static/chunks/app/api/update-maintenance/route-6b1496af498bb4fd.js +0 -1
  332. package/.next/static/chunks/app/api/updates/route-6b1496af498bb4fd.js +0 -1
  333. package/.next/static/chunks/app/api/web-access/recovery/route-6b1496af498bb4fd.js +0 -1
  334. package/.next/static/chunks/app/api/web-access/route-6b1496af498bb4fd.js +0 -1
  335. package/.next/static/chunks/app/api/web6/consults/route-6b1496af498bb4fd.js +0 -1
  336. package/.next/static/chunks/app/api/worktrees/route-6b1496af498bb4fd.js +0 -1
  337. package/.next/static/chunks/app/manifest.webmanifest/route-6b1496af498bb4fd.js +0 -1
  338. package/.next/static/chunks/app/office/page-424e244f1c7fcdc6.js +0 -1
  339. package/.next/static/chunks/app/page-b43b2b8679ed66e2.js +0 -1
  340. package/.next/static/chunks/next/dist/client/components/builtin/app-error-6b1496af498bb4fd.js +0 -1
  341. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6b1496af498bb4fd.js +0 -1
  342. package/.next/static/chunks/next/dist/client/components/builtin/not-found-6b1496af498bb4fd.js +0 -1
  343. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6b1496af498bb4fd.js +0 -1
  344. package/.next/static/css/00f20b26266e86ed.css +0 -1
  345. package/.next/static/kRJ4zgHxJf680foSBrfpf/_buildManifest.js +0 -1
  346. /package/.next/static/{kRJ4zgHxJf680foSBrfpf โ†’ pzZcPiD8nl6i7i_Ne9Ko-}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":117204564,"timestamp":3666764,"id":14,"parentId":1,"tags":{},"startTime":1791206991136,"traceId":"a3ba25d1527e8fbc"},{"name":"run-typescript","duration":22577490,"timestamp":121308907,"id":11060,"parentId":1,"tags":{},"startTime":1791207108780,"traceId":"a3ba25d1527e8fbc"},{"name":"static-check","duration":4608235,"timestamp":143997002,"id":11063,"parentId":1,"tags":{},"startTime":1791207131469,"traceId":"a3ba25d1527e8fbc"},{"name":"static-generation","duration":13069934,"timestamp":148722789,"id":11233,"parentId":1,"tags":{},"startTime":1791207136195,"traceId":"a3ba25d1527e8fbc"},{"name":"collect-build-traces","duration":22219970,"timestamp":148687543,"id":11230,"parentId":1,"tags":{},"startTime":1791207136159,"traceId":"a3ba25d1527e8fbc"},{"name":"telemetry-flush","duration":77,"timestamp":170911847,"id":11242,"parentId":1,"tags":{},"startTime":1791207158384,"traceId":"a3ba25d1527e8fbc"},{"name":"next-build","duration":169697942,"timestamp":1214006,"id":1,"tags":{"buildMode":"default","version":"16.2.12","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1791206988683,"traceId":"a3ba25d1527e8fbc"}]
1
+ [{"name":"run-webpack","duration":112611536,"timestamp":824924,"id":14,"parentId":1,"tags":{},"startTime":1791330800160,"traceId":"27aa824042cf1edc"},{"name":"run-typescript","duration":20640951,"timestamp":113829309,"id":11084,"parentId":1,"tags":{},"startTime":1791330913165,"traceId":"27aa824042cf1edc"},{"name":"static-check","duration":5188517,"timestamp":134597595,"id":11087,"parentId":1,"tags":{},"startTime":1791330933933,"traceId":"27aa824042cf1edc"},{"name":"static-generation","duration":14788004,"timestamp":139961849,"id":11259,"parentId":1,"tags":{},"startTime":1791330939297,"traceId":"27aa824042cf1edc"},{"name":"collect-build-traces","duration":24109398,"timestamp":139862010,"id":11256,"parentId":1,"tags":{},"startTime":1791330939197,"traceId":"27aa824042cf1edc"},{"name":"telemetry-flush","duration":71,"timestamp":163976866,"id":11268,"parentId":1,"tags":{},"startTime":1791330963312,"traceId":"27aa824042cf1edc"},{"name":"next-build","duration":163267048,"timestamp":709909,"id":1,"tags":{"buildMode":"default","version":"16.2.12","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1791330800045,"traceId":"27aa824042cf1edc"}]
@@ -0,0 +1,351 @@
1
+ // File: D:\a\CUELO\CUELO\app\api\github\projects\route.ts
2
+ import * as entry from '../../../../../../app/api/github/projects/route.js'
3
+ import type { NextRequest } from 'next/server.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../../../app/api/github/projects/route.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ GET?: Function
16
+ HEAD?: Function
17
+ OPTIONS?: Function
18
+ POST?: Function
19
+ PUT?: Function
20
+ DELETE?: Function
21
+ PATCH?: Function
22
+ config?: {}
23
+ generateStaticParams?: Function
24
+ unstable_instant?: InstantConfigForTypeCheckInternal
25
+ unstable_dynamicStaleTime?: number
26
+ revalidate?: RevalidateRange<TEntry> | false
27
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
28
+ dynamicParams?: boolean
29
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
30
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
31
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
32
+ maxDuration?: number
33
+
34
+ }, TEntry, ''>>()
35
+
36
+ type RouteContext = { params: Promise<SegmentParams> }
37
+ // Check the prop type of the entry function
38
+ if ('GET' in entry) {
39
+ checkFields<
40
+ Diff<
41
+ ParamCheck<Request | NextRequest>,
42
+ {
43
+ __tag__: 'GET'
44
+ __param_position__: 'first'
45
+ __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
46
+ },
47
+ 'GET'
48
+ >
49
+ >()
50
+ checkFields<
51
+ Diff<
52
+ ParamCheck<RouteContext>,
53
+ {
54
+ __tag__: 'GET'
55
+ __param_position__: 'second'
56
+ __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
57
+ },
58
+ 'GET'
59
+ >
60
+ >()
61
+
62
+ checkFields<
63
+ Diff<
64
+ {
65
+ __tag__: 'GET',
66
+ __return_type__: Response | void | never | Promise<Response | void | never>
67
+ },
68
+ {
69
+ __tag__: 'GET',
70
+ __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
71
+ },
72
+ 'GET'
73
+ >
74
+ >()
75
+ }
76
+ // Check the prop type of the entry function
77
+ if ('HEAD' in entry) {
78
+ checkFields<
79
+ Diff<
80
+ ParamCheck<Request | NextRequest>,
81
+ {
82
+ __tag__: 'HEAD'
83
+ __param_position__: 'first'
84
+ __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
85
+ },
86
+ 'HEAD'
87
+ >
88
+ >()
89
+ checkFields<
90
+ Diff<
91
+ ParamCheck<RouteContext>,
92
+ {
93
+ __tag__: 'HEAD'
94
+ __param_position__: 'second'
95
+ __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
96
+ },
97
+ 'HEAD'
98
+ >
99
+ >()
100
+
101
+ checkFields<
102
+ Diff<
103
+ {
104
+ __tag__: 'HEAD',
105
+ __return_type__: Response | void | never | Promise<Response | void | never>
106
+ },
107
+ {
108
+ __tag__: 'HEAD',
109
+ __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
110
+ },
111
+ 'HEAD'
112
+ >
113
+ >()
114
+ }
115
+ // Check the prop type of the entry function
116
+ if ('OPTIONS' in entry) {
117
+ checkFields<
118
+ Diff<
119
+ ParamCheck<Request | NextRequest>,
120
+ {
121
+ __tag__: 'OPTIONS'
122
+ __param_position__: 'first'
123
+ __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
124
+ },
125
+ 'OPTIONS'
126
+ >
127
+ >()
128
+ checkFields<
129
+ Diff<
130
+ ParamCheck<RouteContext>,
131
+ {
132
+ __tag__: 'OPTIONS'
133
+ __param_position__: 'second'
134
+ __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
135
+ },
136
+ 'OPTIONS'
137
+ >
138
+ >()
139
+
140
+ checkFields<
141
+ Diff<
142
+ {
143
+ __tag__: 'OPTIONS',
144
+ __return_type__: Response | void | never | Promise<Response | void | never>
145
+ },
146
+ {
147
+ __tag__: 'OPTIONS',
148
+ __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
149
+ },
150
+ 'OPTIONS'
151
+ >
152
+ >()
153
+ }
154
+ // Check the prop type of the entry function
155
+ if ('POST' in entry) {
156
+ checkFields<
157
+ Diff<
158
+ ParamCheck<Request | NextRequest>,
159
+ {
160
+ __tag__: 'POST'
161
+ __param_position__: 'first'
162
+ __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
163
+ },
164
+ 'POST'
165
+ >
166
+ >()
167
+ checkFields<
168
+ Diff<
169
+ ParamCheck<RouteContext>,
170
+ {
171
+ __tag__: 'POST'
172
+ __param_position__: 'second'
173
+ __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
174
+ },
175
+ 'POST'
176
+ >
177
+ >()
178
+
179
+ checkFields<
180
+ Diff<
181
+ {
182
+ __tag__: 'POST',
183
+ __return_type__: Response | void | never | Promise<Response | void | never>
184
+ },
185
+ {
186
+ __tag__: 'POST',
187
+ __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
188
+ },
189
+ 'POST'
190
+ >
191
+ >()
192
+ }
193
+ // Check the prop type of the entry function
194
+ if ('PUT' in entry) {
195
+ checkFields<
196
+ Diff<
197
+ ParamCheck<Request | NextRequest>,
198
+ {
199
+ __tag__: 'PUT'
200
+ __param_position__: 'first'
201
+ __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
202
+ },
203
+ 'PUT'
204
+ >
205
+ >()
206
+ checkFields<
207
+ Diff<
208
+ ParamCheck<RouteContext>,
209
+ {
210
+ __tag__: 'PUT'
211
+ __param_position__: 'second'
212
+ __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
213
+ },
214
+ 'PUT'
215
+ >
216
+ >()
217
+
218
+ checkFields<
219
+ Diff<
220
+ {
221
+ __tag__: 'PUT',
222
+ __return_type__: Response | void | never | Promise<Response | void | never>
223
+ },
224
+ {
225
+ __tag__: 'PUT',
226
+ __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
227
+ },
228
+ 'PUT'
229
+ >
230
+ >()
231
+ }
232
+ // Check the prop type of the entry function
233
+ if ('DELETE' in entry) {
234
+ checkFields<
235
+ Diff<
236
+ ParamCheck<Request | NextRequest>,
237
+ {
238
+ __tag__: 'DELETE'
239
+ __param_position__: 'first'
240
+ __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
241
+ },
242
+ 'DELETE'
243
+ >
244
+ >()
245
+ checkFields<
246
+ Diff<
247
+ ParamCheck<RouteContext>,
248
+ {
249
+ __tag__: 'DELETE'
250
+ __param_position__: 'second'
251
+ __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
252
+ },
253
+ 'DELETE'
254
+ >
255
+ >()
256
+
257
+ checkFields<
258
+ Diff<
259
+ {
260
+ __tag__: 'DELETE',
261
+ __return_type__: Response | void | never | Promise<Response | void | never>
262
+ },
263
+ {
264
+ __tag__: 'DELETE',
265
+ __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
266
+ },
267
+ 'DELETE'
268
+ >
269
+ >()
270
+ }
271
+ // Check the prop type of the entry function
272
+ if ('PATCH' in entry) {
273
+ checkFields<
274
+ Diff<
275
+ ParamCheck<Request | NextRequest>,
276
+ {
277
+ __tag__: 'PATCH'
278
+ __param_position__: 'first'
279
+ __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
280
+ },
281
+ 'PATCH'
282
+ >
283
+ >()
284
+ checkFields<
285
+ Diff<
286
+ ParamCheck<RouteContext>,
287
+ {
288
+ __tag__: 'PATCH'
289
+ __param_position__: 'second'
290
+ __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
291
+ },
292
+ 'PATCH'
293
+ >
294
+ >()
295
+
296
+ checkFields<
297
+ Diff<
298
+ {
299
+ __tag__: 'PATCH',
300
+ __return_type__: Response | void | never | Promise<Response | void | never>
301
+ },
302
+ {
303
+ __tag__: 'PATCH',
304
+ __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
305
+ },
306
+ 'PATCH'
307
+ >
308
+ >()
309
+ }
310
+
311
+ // Check the arguments and return type of the generateStaticParams function
312
+ if ('generateStaticParams' in entry) {
313
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
314
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
315
+ }
316
+
317
+ export interface PageProps {
318
+ params?: Promise<SegmentParams>
319
+ searchParams?: Promise<any>
320
+ }
321
+ export interface LayoutProps {
322
+ children?: React.ReactNode
323
+
324
+ params?: Promise<SegmentParams>
325
+ }
326
+
327
+ // =============
328
+ // Utility types
329
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
330
+
331
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
332
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
333
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
334
+
335
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
336
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
337
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
338
+
339
+ type ParamCheck<T> = {
340
+ __tag__: string
341
+ __param_position__: string
342
+ __param_type__: T
343
+ }
344
+
345
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
346
+
347
+ // https://github.com/sindresorhus/type-fest
348
+ type Numeric = number | bigint
349
+ type Zero = 0 | 0n
350
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
351
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -2,7 +2,7 @@
2
2
  // Do not edit this file manually
3
3
 
4
4
  type AppRoutes = "/" | "/office" | "/office-preview" | "/recover"
5
- type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/account" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/agent/running" | "/api/attachment-settings" | "/api/attachments" | "/api/attachments/[id]/transcription" | "/api/attachments/draft" | "/api/auth/all-providers" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cwd/browse" | "/api/cwd/validate" | "/api/default-cwd" | "/api/display-settings" | "/api/document-text" | "/api/experiments" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/gpt6/handles" | "/api/gpt6/reply" | "/api/gpt6/token" | "/api/gpt6/web6-session" | "/api/home" | "/api/live/call/[callId]" | "/api/live/character-voice" | "/api/live/events" | "/api/live/offer" | "/api/live/voices" | "/api/lounge" | "/api/lounge/events" | "/api/mcp" | "/api/model-roles" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/office-avatars" | "/api/office-avatars/[id]" | "/api/plugins" | "/api/project-trust" | "/api/projects" | "/api/runs" | "/api/runs/[runId]" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/export" | "/api/sessions/[id]/state" | "/api/sessions/search" | "/api/settings" | "/api/sidecars/[service]/[...path]" | "/api/skills" | "/api/skills/check" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/theme" | "/api/tool-image" | "/api/update-maintenance" | "/api/updates" | "/api/web-access" | "/api/web-access/recovery" | "/api/web6/consults" | "/api/worktrees"
5
+ type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/account" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/agent/running" | "/api/attachment-settings" | "/api/attachments" | "/api/attachments/[id]/transcription" | "/api/attachments/draft" | "/api/auth/all-providers" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cwd/browse" | "/api/cwd/validate" | "/api/default-cwd" | "/api/display-settings" | "/api/document-text" | "/api/experiments" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/github/projects" | "/api/gpt6/handles" | "/api/gpt6/reply" | "/api/gpt6/token" | "/api/gpt6/web6-session" | "/api/home" | "/api/live/call/[callId]" | "/api/live/character-voice" | "/api/live/events" | "/api/live/offer" | "/api/live/voices" | "/api/lounge" | "/api/lounge/events" | "/api/mcp" | "/api/model-roles" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/office-avatars" | "/api/office-avatars/[id]" | "/api/plugins" | "/api/project-trust" | "/api/projects" | "/api/runs" | "/api/runs/[runId]" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/export" | "/api/sessions/[id]/state" | "/api/sessions/search" | "/api/settings" | "/api/sidecars/[service]/[...path]" | "/api/skills" | "/api/skills/check" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/theme" | "/api/tool-image" | "/api/update-maintenance" | "/api/updates" | "/api/web-access" | "/api/web-access/recovery" | "/api/web6/consults" | "/api/worktrees"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -37,6 +37,7 @@ interface ParamMap {
37
37
  "/api/files/[...path]": { "path": string[]; }
38
38
  "/api/git/diff": {}
39
39
  "/api/git/status": {}
40
+ "/api/github/projects": {}
40
41
  "/api/gpt6/handles": {}
41
42
  "/api/gpt6/reply": {}
42
43
  "/api/gpt6/token": {}
@@ -308,6 +308,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
308
308
  type __Unused = __Check
309
309
  }
310
310
 
311
+ // Validate ../../app/api/github/projects/route.ts
312
+ {
313
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/github/projects">> = Specific
314
+ const handler = {} as typeof import("../../app/api/github/projects/route.js")
315
+ type __Check = __IsExpected<typeof handler>
316
+ // @ts-ignore
317
+ type __Unused = __Check
318
+ }
319
+
311
320
  // Validate ../../app/api/gpt6/handles/route.ts
312
321
  {
313
322
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/gpt6/handles">> = Specific
package/README.md CHANGED
@@ -16,7 +16,7 @@ Use the same `~/.omp/agent` sessions, credentials and model configuration from t
16
16
 
17
17
  **ํ•œ๊ตญ์–ด:** CUELO๋Š” omp(oh-my-pi)๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์ž‘์—… ๊ณต๊ฐ„์ด์ž ํ•˜๋„ค์Šค์ž…๋‹ˆ๋‹ค. ์›น ์•ฑ์€ omp SDK๋ฅผ ์„œ๋ฒ„ ์•ˆ์—์„œ ์‹คํ–‰ํ•˜๊ณ , `omp` CLI์™€ ๊ฐ™์€ `~/.omp/agent` ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์”๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์—์„œ ํ•˜๋˜ ์„ธ์…˜์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด์–ด ๊ฐ€๊ณ , ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„๊ฐ€๋„ ๊ธฐ๋กยท๊ณ„์ •ยท๋ชจ๋ธ ์„ค์ •์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
18
18
 
19
- ๋‚ด์žฅ OMP ์ฝ”์–ด๋Š” **18.6.1**์ž…๋‹ˆ๋‹ค. ์ถ”๋ก  ๊ฐ•๋„๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์„œ๋ธŒ์—์ด์ „ํŠธ๋ฅผ ๋‹ค์‹œ ์ด์–ด๋„ ์˜ˆ๋น„ ๋ชจ๋ธ ์„ค์ •์„ ์œ ์ง€ํ•˜๋ฉฐ, ๋ณ„๋„๋กœ ์„ค์น˜ํ•œ `omp` CLI์˜ ๋ฒ„์ „์€ ์›น ์—…๋ฐ์ดํŠธ์™€ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.
19
+ ๋‚ด์žฅ OMP ์ฝ”์–ด๋Š” **18.6.3**์ž…๋‹ˆ๋‹ค. ์ถ”๋ก  ๊ฐ•๋„๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์„œ๋ธŒ์—์ด์ „ํŠธ๋ฅผ ๋‹ค์‹œ ์ด์–ด๋„ ์˜ˆ๋น„ ๋ชจ๋ธ ์„ค์ •์„ ์œ ์ง€ํ•˜๋ฉฐ, ๋ณ„๋„๋กœ ์„ค์น˜ํ•œ `omp` CLI์˜ ๋ฒ„์ „์€ ์›น ์—…๋ฐ์ดํŠธ์™€ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.
20
20
 
21
21
  CUELO์˜ ๋ชฉ์ ์€ ์ž‘์—… ์ค‘ ํ™•์ธํ•œ ์‹คํŒจ์™€ ๋ง‰ํž˜์„ ๊ธฐ์–ตยท์ž‘์—… ๊ทœ์น™ยท์‹คํ–‰ ์ ˆ์ฐจ์— ๋ฐ˜์˜ํ•ด, ์‚ฌ๋žŒ์ด ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ง€์ ํ•˜์ง€ ์•Š์•„๋„ ๋‹ค์Œ ์ž‘์—…์—์„œ ์‹ค์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›์ธ์„ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฐ”๊พธ๋ฉฐ, ๋‹ค์Œ ์ž‘์—…์—์„œ ์ ์šฉ๊ณผ ํšจ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ๊นŒ์ง€๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ก์„ ์ €์žฅํ–ˆ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ ์ž๋™ ๊ฐœ์„ ์ด ๋๋‚ฌ๋‹ค๊ณ  ๋ณด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
22
22
 
@@ -31,7 +31,7 @@ CUELO์˜ ๋ชฉ์ ์€ ์ž‘์—… ์ค‘ ํ™•์ธํ•œ ์‹คํŒจ์™€ ๋ง‰ํž˜์„ ๊ธฐ์–ตยท์ž‘์—… ๊ทœ
31
31
  | ๊ตฌ๋ถ„ | ๋‚ด์šฉ |
32
32
  | --- | --- |
33
33
  | ์•ฑยท๋Ÿฐํƒ€์ž„ ์„ค์น˜ ๋’ค ๋™์ž‘ | ์„ธ์…˜ ํƒ์ƒ‰ยท์‹ค์‹œ๊ฐ„ ๋Œ€ํ™”ยท๋ถ„๊ธฐ/fork, ๋ชจ๋ธ ์—ญํ• , providerยทํ”Œ๋Ÿฌ๊ทธ์ธยท์Šคํ‚ฌ ๊ด€๋ฆฌ, ํŒŒ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž ๊ธˆ, ์บ๋ฆญํ„ฐ ์•Œ๋ฆผ ๋“ฑ. ๋Œ€ํ™”์—๋Š” ๋ณ„๋„ ์ œ๊ณต์ž ์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค |
34
- | ์‚ฌ์šฉ์ž๊ฐ€ ์ค€๋น„ํ•  ๊ฒƒ | Node.jsยทBun๊ณผ ์ž์‹ ์˜ ๋ชจ๋ธ ์ œ๊ณต์ž ๊ณ„์ •ยท๋ชจ๋ธ ์„ ํƒ. ์†Œ์Šค checkout/์ „์ฒด Git ๊ธฐ๋Šฅ์—๋Š” Git for Windows๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์ •๋ณดยท์„ธ์…˜ยท์„ค์ •์€ ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ `~/.omp/agent`์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค |
34
+ | ์‚ฌ์šฉ์ž๊ฐ€ ์ค€๋น„ํ•  ๊ฒƒ | Node.jsยทBun๊ณผ ์ž์‹ ์˜ ๋ชจ๋ธ ์ œ๊ณต์ž ๊ณ„์ •ยท๋ชจ๋ธ ์„ ํƒ. ์†Œ์Šค checkout/์ „์ฒด Git ๊ธฐ๋Šฅ์—๋Š” Git(Windows๋Š” Git for Windows)๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์ •๋ณดยท์„ธ์…˜ยท์„ค์ •์€ ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ `~/.omp/agent`์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค |
35
35
  | ๋กœ์ปฌ ์‚ฌ์ด๋“œ์นด (๊ณต๊ฐœ) | ๊ณ„์ • ์‚ฌ์šฉ๋Ÿ‰ ์นด๋“œ, ์‚ฌ์ด๋“œ ์ฑ—(`/btw`), SubAgent ์•„์นด์ด๋ธŒ์˜ ์‹คํ–‰ ์†Œ์Šค๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. `start`๊ฐ€ ์•ฑ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. usage์˜ CLI fallbackยท`stats`์—๋Š” ๋ณ„๋„ `omp` CLI๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค |
36
36
  | OMP ํ•˜๋„ค์Šค (๊ณต๊ฐœ) | Main/Maker ์—ญํ•  ๋ถ„๋‹ด, ๋ฐœ์ฃผยท๊ฒ€์ˆ˜ ๊ณ„์•ฝ, task guard, ํŒ๋‹จ ๋ผ์šฐํŒ…(Jev), ์บ๋ฆญํ„ฐ ์Œ์„ฑ, ๋ช…๋ น ๊ฐ€๋“œ์˜ ๊ทœ์น™ยทSOPยทํ™•์žฅ๊ณผ ์•ฑ SDK core ํŒจ์น˜์ž…๋‹ˆ๋‹ค. `setup`์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. [ํ•˜๋„ค์Šค ์•ˆ๋‚ด](./docs/harness.md)์— Jev์˜ ์™ธ๋ถ€ ์ž๊ฒฉ ๊ฒฝ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค |
37
37
  | ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๊ฒƒ | ๊ฐœ๋ฐœ์ž์˜ ๋กœ๊ทธ์ธ ์ •๋ณดยทAPI ํ‚คยท๊ฐœ์ธ ๊ณ„์ • ๋ฐ ๋ชจ๋ธ ์„ค์ •ยท๊ฐœ์ธ skillยท๋Œ€ํ™”์™€ ์ž‘์—… ๊ธฐ๋กยทPC๋ณ„ ์šด์˜ ์ž๋ฃŒ. ๊ณต๊ฐœ ์„ค์น˜๋Š” ํ•„์š”ํ•œ ๋น„๊ฐœ์ธ ์šด์˜ ๊ธฐ๋ณธ๊ฐ’๋งŒ ์ œ๊ณตํ•˜๊ณ  ๋ชจ๋ธ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ฆ…๋‹ˆ๋‹ค |
@@ -53,6 +53,8 @@ CUELO์˜ ๋ชฉ์ ์€ ์ž‘์—… ์ค‘ ํ™•์ธํ•œ ์‹คํŒจ์™€ ๋ง‰ํž˜์„ ๊ธฐ์–ตยท์ž‘์—… ๊ทœ
53
53
  - ๋ชจ๋ธ ์„ ํƒ๊ธฐ ๋งจ ์œ„์— ์ž์ฃผ ๊ณ ๋ฅธ ๋ชจ๋ธ์ด ๋‚˜์˜ค๊ณ , ํŒ”๋ ˆํŠธ์—์„œ ๋„“์€ ๋Œ€ํ™” ํญ์„ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
54
54
  - ์ž…๋ ฅ์ฐฝ ์•„๋ž˜ ์ค„์€ Main ํ”„๋ฆฌ์…‹ โ†’ ๊ทธ ์ œ๊ณต์ž์˜ ๋ชจ๋ธ โ†’ ์ถ”๋ก  ๊ฐ•๋„ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. "์ž๋™, ์ตœ๋Œ€ high"์ฒ˜๋Ÿผ ์ƒํ•œ์„ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๊ณ , Auto๊ฐ€ ์‹ค์ œ๋กœ ์ ์šฉํ•œ ๊ฐ’์€ ใ€Œํ˜„์žฌ ์ถ”๋ก  ๊ฐ•๋„ใ€๋กœ ๋”ฐ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์— ์ง€์‹œ๋ฅผ ๋ง๋ถ™์ด๋ฉด Auto๊ฐ€ ๋‹ค์‹œ ํŒ๋‹จํ•ด ๊ฐ•๋„๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ณ , ๊ฐ™์€ ๋‹ต๋ณ€ ์•ˆ์—์„œ๋Š” ๋‚ด๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋Œ€ํ™”๋Š” ์„ ํƒํ•œ ์ƒํ•œ ์ ์šฉ์„ ๋งˆ์นœ ๋’ค ์ฒซ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ฉฐ, ์ ์šฉ์— ์‹คํŒจํ•˜๋ฉด ์žฌ์ „์†ก ๋•Œ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
55
55
  - ๋„๊ตฌ ์˜† ์‹œ๊ฐ„์—๋Š” ๋ชจ๋ธ ์‘๋‹ต ์ƒ์„ฑ ์‹œ๊ฐ„์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ „์— ์ทจ์†Œ๋œ ๋„๊ตฌ๋‚˜ ์™„๋ฃŒ ์‹œ๊ฐ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ์˜› ๊ธฐ๋ก์—๋Š” ์‹œ๊ฐ„์„ ์ถ”์ •ํ•ด ๋ถ™์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
56
+ - ์ž๋™ ์ œ๋ชฉ๊ณผ ์ˆ˜๋™ ใ€Œ์ด๋ฆ„ ์ง“๊ธฐใ€๋Š” ์š”์ฒญ ์–ธ์–ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ์š”์ฒญ์—๋Š” ํ•œ๊ตญ์–ด ์ œ๋ชฉ์„ ๋ถ™์ด๊ณ  ํŒŒ์ผ๋ช…ยท๋ช…๋ นยท์ œํ’ˆ๋ช…์€ ์›๋ฌธ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ถ™์€ ์ œ๋ชฉ์€ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
57
+ - ํด๋ผ์šฐ๋“œ์—์„œ๋Š” GitHub ์ €์žฅ์†Œ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ URL์„ ์ž…๋ ฅํ•ด ๊ฐ€์ ธ์˜จ ๋’ค ํ”„๋กœ์ ํŠธ๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub ์—ฐ๊ฒฐ๊ณผ ์„œ๋ฒ„ ํด๋” ์—ด๊ธฐ๋ฅผ ํ•œ ํ™”๋ฉด์—์„œ ์ œ๊ณตํ•˜๋ฉฐ, ํด๋ผ์šฐ๋“œ ๊ธฐ๋Šฅ์„ ์ผœ์ง€ ์•Š์€ ์ธ์Šคํ„ด์Šค์˜ ํ™”๋ฉด์€ ๊ทธ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค. ์„ค์ •ยท์ธ์ฆยท์ž‘์—…๋ฌผ ๋ณด์กด๊ณผ ์ด์ „ ๋ฐฉ๋ฒ•์€ [Docker ์•ˆ๋‚ด](./docs/docker.md)๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
56
58
 
57
59
  **๊ณ„์ •๊ณผ ์ž์›**
58
60
 
@@ -116,7 +118,7 @@ CUELO์˜ ๋ชฉ์ ์€ ์ž‘์—… ์ค‘ ํ™•์ธํ•œ ์‹คํŒจ์™€ ๋ง‰ํž˜์„ ๊ธฐ์–ตยท์ž‘์—… ๊ทœ
116
118
 
117
119
  CUELO๋Š” GitHub ์†Œ์Šค์™€ npm ํŒจํ‚ค์ง€ [`cuelo`](https://www.npmjs.com/package/cuelo)๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. npm์˜ `omp-web`์€ upstream ํ”„๋กœ์ ํŠธ์ด๋ฉฐ CUELO์™€ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค. **๊ธฐ์กด `omp` CLI๋งŒ ์„ค์น˜ํ•œ PC์—๋„ `omp-web` ์—†์ด CUELO๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.** ๊ธฐ์กด `config.yml`ยท๊ณ„์ •ยท์„ธ์…˜์„ ๋ณด์กดํ•˜๋Š” ์ˆœ์„œ๋Š” [๋Œ€ํ‘œ ์„ค์น˜ ๊ฒฝ๋กœ](./docs/installation.md#๋Œ€ํ‘œ-๊ฒฝ๋กœ-omp๋งŒ-์žˆ๋Š”-windows-pc-omp-web-์—†์Œ)์— ์žˆ์Šต๋‹ˆ๋‹ค.
118
120
 
119
- > **๊ฐœ๋ฐœยท๊ฒ€์ฆ ํ™˜๊ฒฝ์€ Windows์ž…๋‹ˆ๋‹ค.** macOSยทLinux๋Š” ๊ฐœ๋ฐœยทํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋™์ž‘๊ณผ ์ง€์›์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
121
+ > **๊ฐœ๋ฐœยท๊ฒ€์ฆ ํ™˜๊ฒฝ์€ Windows์™€ Linux(WSL2 Ubuntu 24.04)์ž…๋‹ˆ๋‹ค.** ๊ณต๊ฐœ CI๋Š” Windows์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. macOS๋Š” ๊ฐœ๋ฐœยทํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋™์ž‘๊ณผ ์ง€์›์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
120
122
 
121
123
  ์„œ๋ฒ„๋Š” **Bun 1.4.2 ์ด์ƒ**์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค(omp SDK๊ฐ€ TypeScript ์†Œ์Šค์™€ `bun:` ๋‚ด์žฅ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉ). Node.js 22.19.0 ์ด์ƒ๋„ `install.mjs`์™€ npm์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Git์€ ์†Œ์Šค checkout๊ณผ Git ์ž‘์—…(worktreeยทcommit ๋“ฑ)์— ํ•„์š”ํ•˜์ง€๋งŒ npm ์„ค์น˜์™€ ๊ธฐ๋ณธ ๋Œ€ํ™”์—๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
122
124
  ๋ฉ”๋ชจ๋ฆฌ ํŒจํ‚ค์ง€๊ฐ€ ์„ ์–ธํ•œ ์„ ํƒ์  ONNX peer๋Š” `onnxruntime-node:1.21.0`์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Transformers๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๋ณ„๋„ ๋ฒ„์ „์€ ์ž์ฒด ์˜์กด์„ฑ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉฐ, ์„ค์น˜ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๋ ค๊ณ  peer ๊ฒ€์ฆ์„ ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Mnemopi์˜ ๋กœ์ปฌ ์ž„๋ฒ ๋”ฉ์€ ๋ณ„๋„ `fastembed`์™€ ๋ชจ๋ธ์„ ์ฒซ ์‚ฌ์šฉ ๋•Œ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@@ -124,6 +126,7 @@ CUELO๋Š” GitHub ์†Œ์Šค์™€ npm ํŒจํ‚ค์ง€ [`cuelo`](https://www.npmjs.com/package/
124
126
  ```bash
125
127
  # Bun ์„ค์น˜
126
128
  powershell -c "irm bun.sh/install.ps1 | iex" # Windows
129
+ curl -fsSL https://bun.sh/install | bash # Linux
127
130
 
128
131
  # CUELO ๋ฐ›๊ธฐ์™€ ์‹คํ–‰
129
132
  git clone https://github.com/gim47656-ship-it/CUELO.git
@@ -168,6 +171,8 @@ bun bin/cuelo.js --reset-password # ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •
168
171
 
169
172
  ์—…๋ฐ์ดํŠธ ๋Œ€๊ธฐ ํ™”๋ฉด์—์„œ ์‹คํŒจ๊ฐ€ ํ™•์ธ๋˜๋”๋ผ๋„ ์„œ๋ฒ„๊ฐ€ ๋‹ค์‹œ ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ  ์›๋ž˜ ๋Œ€ํ™”๊ฐ€ ํ™•์ธ๋˜๋ฉด ๊ทธ ๋Œ€ํ™”๋กœ ์ž๋™ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค. ๋ณต๊ท€ํ•œ ํ™”๋ฉด์€ ์ง„ํ–‰ ์ค‘์ธ ๋‹ต๋ณ€์ด๋‚˜ ์ด๋ฏธ ๋๋‚œ ์‹คํŒจ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ผ์žก์œผ๋ฉฐ, ๋ณต๊ท€ ์ž์ฒด๊ฐ€ ๋ช…๋ น์„ ๋‹ค์‹œ ๋ณด๋‚ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
170
173
 
174
+ Windows์˜ WSL Ubuntu์—์„œ ์‹คํ–‰ ์ค‘์ธ CUELO๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋™์•ˆ์—๋Š” WSL ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ณ , ์—ด๋ ค ์žˆ๋Š” ํ™”๋ฉด์— ์„ธ์…˜ ์ •์ง€ยท์ค€๋น„ยทํŒจํ‚ค์ง€ ๊ต์ฒดยทํ™•์ธ ๋‹จ๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ž ์‹œ ๋‚ด๋ ค๊ฐ€ ์žˆ๋Š” ๊ต์ฒด ๋‹จ๊ณ„์—์„œ๋„ ํŒจํ‚ค์ง€ ๊ต์ฒด ํ‘œ์‹œ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ, ๊ฐฑ์‹ ์ด ๋๋‚˜๋ฉด ์›๋ž˜ ๋Œ€ํ™”๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค. ์ƒˆ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ด๊ณ  ์‘๋‹ตํ•˜๋ฉด ๊ฐฑ์‹  ์™„๋ฃŒ ํ™”๋ฉด์—์„œ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋งˆ์นฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ๋ฉˆ์ถ˜ ๊ฒƒ์„ ํ™•์ธํ•œ ๋’ค์—๋งŒ ํŒŒ์ผ๊ณผ ํ”„๋กœํ•„์„ ๋ฐ”๊พธ๊ณ , ์‹คํŒจํ•˜๋ฉด ์‹คํ–‰ ์ค‘์ด๋˜ ๋ฒ„์ „์„ ๊ทธ๋Œ€๋กœ ๋‘๊ฑฐ๋‚˜ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋ณต๊ตฌ๊ฐ€ ๋๋‚œ ๊ฐฑ์‹ ๋„ ์™„๋ฃŒ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
175
+
171
176
  ๊ธฐ์กด ํ”„๋กœํ•„์˜ ํ•˜๋„ค์Šคยท์—ญํ•  ์„ค์ •์€ ์•ฑ ์—…๋ฐ์ดํŠธ๋งŒ์œผ๋กœ ์ž๋™ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. `0.6.1`์˜ ์„ค์ • ์ „ํ™˜์€ [๊ธฐ์กด ํ•˜๋„ค์Šค ๊ฐฑ์‹ ](./docs/installation.md#061๋กœ-๊ธฐ์กด-ํ•˜๋„ค์Šค-๊ฐฑ์‹ )์„ ํ™•์ธํ•˜๊ณ , ๋ฐ˜์˜ ํ›„ CUELO์™€ `omp`๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.
172
177
 
173
178
  ```bash
@@ -9,9 +9,9 @@ const MEMORY_RE = /(const phase1Model = await resolveMemoryModel\(\{[^}]*?fallba
9
9
  const MEMORY_DONE = /const phase1Model = await resolveMemoryModel\(\{[^}]*?fallbackRole: "smol"/;
10
10
  const EXPECTED = {
11
11
  name: 'cuelo',
12
- version: '0.9.6',
12
+ version: '0.9.8',
13
13
  distribution: 'cuelo',
14
- coreVersion: '18.6.1',
14
+ coreVersion: '18.6.3',
15
15
  };
16
16
 
17
17
  // OMP core 18.4.12 `src/sdk.ts`: session-scoped AsyncJobManager for a process
@@ -177,7 +177,7 @@ function readNativePackage(target) {
177
177
  throw new Error(`unexpected native package ${packageJson.name}@${packageJson.version}`);
178
178
  }
179
179
  if (!build || build.distribution !== EXPECTED.distribution || build.coreVersion !== EXPECTED.coreVersion) {
180
- throw new Error('native cueloBuild metadata does not match cuelo / core 18.6.1');
180
+ throw new Error('native cueloBuild metadata does not match cuelo / core 18.6.3');
181
181
  }
182
182
  return packageJson;
183
183
  }
@@ -28,7 +28,9 @@
28
28
  ๊ทธ ์ž๋ฆฌ์—์„œ ๋ฉˆ์ถฐ ์›์ธ ๊ทผ๊ฑฐยท์‹œ๋„ํ•œ ๊ฒƒยท๋‚จ์€ ๋ง‰ํž˜์„ ๋ณด๊ณ ํ•œ๋‹ค.
29
29
  - ๋„๊ตฌยท์ €์žฅ์†Œยทํ˜„์žฌ ๋ฌธ๋งฅ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์€ ํ™•์ธ์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋‹จ, ์‚ญ์ œยท๋ฐฐํฌยท๋น„์šฉ ๋ฐœ์ƒยทํ˜ธํ™˜์„ฑ ํŒŒ๊ดด๋Š” ์‹คํ–‰ ์ „์— ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋ฐ›๋Š”๋‹ค.
30
30
  - MCP ์„ค์น˜ยท๋“ฑ๋กยท์ธ์ฆยท๊ถŒํ•œ ๋ณ€๊ฒฝ์€ ๋Œ€์ƒ๊ณผ ๋ฒ”์œ„๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๋จผ์ € ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋ฐ›๋Š”๋‹ค. ์Šน์ธ ๋’ค์—๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์„ค์น˜ยท์„ค์ •ยท์—ฐ๊ฒฐยท๊ฒ€์ฆ์„ ๋๊นŒ์ง€ ์‹คํ–‰ํ•œ๋‹ค. "์‚ฌ์šฉ์ž ์Šน์ธ ํ•„์š”"๋ฅผ "์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•ด์•ผ ํ•จ"์œผ๋กœ ๋ฐ”๊ฟ” ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์šฉ์ž ๋ณธ์ธ ๋กœ๊ทธ์ธยท์ธ์ฆ์ •๋ณด ์ž…๋ ฅยท์ œ๊ณต์ž ์•ˆ์ „ ํ™•์ธยท๋™์˜์ฒ˜๋Ÿผ ์‚ฌ๋žŒ์ด ํ•„์š”ํ•œ ๋‹จ๊ณ„๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„˜๊ธด๋‹ค. JEV ์ถ”์ฒœยทํ•„์š”์„ฑ ํŒ์ •์€ ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
31
- - ๋ฐฐํฌ ํ™•์ธ(์‚ฌ์šฉ์ž, 2026-09-26ยท2026-09-29ยท2026-09-30): ์ง‘ PC(hostname `KYS`)์™€ ์‚ฌ๋ฌด์‹ค PC(hostname์€ ๋น„๊ณต๊ฐœ ๋ฐฐํฌ ํ‘œ์— ์žˆ๋‹ค)๋Š” ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ๊ทธ PC์˜ CUELO ์„ธ์…˜์ด ์†Œ์Šค ๋ณ€๊ฒฝ์„ ๊ฒ€์ฆํ•˜๊ณ  ์ปค๋ฐ‹ยทpushํ–ˆ์œผ๋ฉด, ๊ทธ ์ปค๋ฐ‹์˜ GitHub CI๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ์ง€์ผœ๋ณธ ๋’ค ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ•˜๊ณ  ๋ฐฐํฌ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š”๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธํ•˜๋ฉด ๊ฐ™์€ revision์˜ `Tools/CUELO_Setup/deploy-live.ps1`๊ณผ `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime`์„ ์‹คํ–‰ํ•œ๋‹ค(`Tools/CUELO_Setup/setup.ps1`์€ ์•ฑ ์ „์ฒด ์„ค์น˜๊ธฐ๋ผ ์ด ๋‹จ๊ณ„๊ฐ€ ์•„๋‹ˆ๋‹ค). ๋ฐฐํฌ ํŠธ๋žœ์žญ์…˜์ด ์ƒˆ ์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ธฐ ์ „์— `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly`๋กœ ๋ฏธ๋Ÿฌ ํ”„๋กœํ•„์„ ๋ฐ˜์˜ํ•˜๊ณ , ์ƒˆ ์„œ๋ฒ„ `/api/models`์˜ ์—ญํ•  selector๊ฐ€ ๋ฏธ๋Ÿฌ `config.yml` `modelRoles`์™€ ๊ฐ™์€์ง€ ํ™•์ธํ•ด receipt `profile`์— ๋‚จ๊ธฐ๋ฏ€๋กœ ๋ฐฐํฌ ๋’ค ProfileOnlyยท`CUELO-Restart`๋ฅผ ๋”ฐ๋กœ ๋Œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์—ญํ• ์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ๊ด€์ธก๋˜์ง€ ์•Š์œผ๋ฉด deploy-live๊ฐ€ exit 3์œผ๋กœ ๋๋‚˜๋ฉฐ rollbackํ•˜์ง€ ์•Š์œผ๋‹ˆ, ์•ˆ๋‚ด๋Œ€๋กœ ์žฌ์‹œ์ž‘ํ•œ ๋’ค `/api/models`๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•œ๋‹ค. ์„ธ์…˜ ์•ˆ ๋ฐฐํฌ๋Š” deploy-live๊ฐ€ worker ์ ‘์ˆ˜ ๋’ค ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์žฌ๊ฐœ ๋’ค transaction receipt์˜ `profile.modelRoles.matched`๊ฐ€ `true`์ธ์ง€ ์ง์ ‘ ํ™•์ธํ•œ๋‹ค. ๋ฐฐํฌ ์—†์ด ํ”„๋กœํ•„๋งŒ ๋ฐ”๊ฟจ์œผ๋ฉด ProfileOnly ๋’ค ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ๊ฐ™์€ ์—ญํ•  ํ™•์ธ์„ ํ•œ๋‹ค. ๋ผ์ด๋ธŒ ์„œ๋ฒ„๋Š” Settings๋ฅผ ์‹œ์ž‘ ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์ฝ์–ด ํŒŒ์ผ ๋ณ€๊ฒฝยทtouch๋กœ๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ์‹คํ–‰ ์ „ `hostname`์œผ๋กœ PC๋ฅผ ํ™•์ธํ•œ๋‹ค. ์˜ˆ์•ฝ ์ž‘์—… ๊ฐ™์€ ์ž๋™ ๋ฐฐํฌ๋Š” ๋‘์ง€ ์•Š๋Š”๋‹ค. stageยทrollback ์‚ญ์ œ, ์ด ๋‘ PC ๋ฐ–์˜ ๋ฐฐํฌ, CLI ์—…๋ฐ์ดํŠธ, ๋น„์šฉ์ด ๋“œ๋Š” ์ž‘์—…์€ ๋”ฐ๋กœ ์Šน์ธ๋ฐ›๋Š”๋‹ค.
31
+ - ํ˜ธ์ŠคํŠธ OS ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ(์‚ฌ์šฉ์ž, 2026-10-06): ์ปค๋„ยทํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„, ๋ถ€ํŒ…ยทSystem ์‹œ์ž‘ ์„œ๋น„์Šค์˜ `Start` ๊ฐ’, ๋„คํŠธ์›Œํฌ ์Šคํƒยท๋ฐฉํ™”๋ฒฝยท๋ณด์•ˆ/๊ธˆ์œต ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ, ๋ถ€ํŒ… ์„ค์ •, ์‹œ์Šคํ…œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” "๊บผ ๋ณด๊ณ  ํ™•์ธ" ๊ฐ™์€ ์ง„๋‹จ ์ˆ˜๋‹จ์œผ๋กœ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๋ฐ”๊ฟ”์•ผ ํ•  ๊ทผ๊ฑฐ๊ฐ€ ์žˆ์œผ๋ฉด ์‹คํ–‰ ์ „์— ๋Œ€์ƒ, ํ˜„์žฌ ๊ฐ’, ๋ฐ”๊ฟ€ ๊ฐ’, ์˜ˆ์ƒ ์˜ํ–ฅ(๋„คํŠธ์›Œํฌ ๋‹จ์ ˆยท๋ถ€ํŒ… ์‹คํŒจ ๊ฐ€๋Šฅ์„ฑ), ๋˜๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ๊ทธ ์ •ํ™•ํ•œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋ฐ›๋Š”๋‹ค. "UAC ์ฐฝ์ด ๋œจ๋ฉด ํ—ˆ์šฉํ•ด ์ฃผ์„ธ์š”"๋Š” ์Šน์ธ ์š”์ฒญ์ด ์•„๋‹ˆ๋ฉฐ UAC ํ—ˆ์šฉ๋„ ์Šน์ธ์œผ๋กœ ๋ณด์ง€ ์•Š๋Š”๋‹ค. ๋น„ํ™œ์„ฑํ™”๋ณด๋‹ค ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์ •์‹ ์ œ๊ฑฐยท์„ค์ •์„ ๋จผ์ € ๊ฒ€ํ† ํ•˜๊ณ , ์ฝ๊ธฐ ์ „์šฉ ์กฐํšŒ(`reg query`ยท`sc query`)๋กœ ์›์ธ์„ ๋จผ์ € ์ขํžŒ๋‹ค.
32
+ - ๋ฐฐํฌ ํ™•์ธ(์‚ฌ์šฉ์ž, 2026-09-26ยท2026-09-29ยท2026-09-30): ์ง‘ PC(hostname `KYS`)์™€ ์‚ฌ๋ฌด์‹ค PC(hostname์€ ๋น„๊ณต๊ฐœ ๋ฐฐํฌ ํ‘œ์— ์žˆ๋‹ค)๋Š” ๊ฐ™์€ ํ™•์ธ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด๊ณ , ์‹คํ–‰ ๋‹จ๊ณ„๋งŒ ์•„๋ž˜ ใ€ŒKYS ๋ฐฐํฌใ€๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๊ทธ PC์˜ CUELO ์„ธ์…˜์ด ์†Œ์Šค ๋ณ€๊ฒฝ์„ ๊ฒ€์ฆํ•˜๊ณ  ์ปค๋ฐ‹ยทpushํ–ˆ์œผ๋ฉด, ๊ทธ ์ปค๋ฐ‹์˜ GitHub CI๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ์ง€์ผœ๋ณธ ๋’ค ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ•˜๊ณ  ๋ฐฐํฌ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š”๋‹ค. ์‚ฌ๋ฌด์‹ค์€ ์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธํ•˜๋ฉด ๊ฐ™์€ revision์˜ `Tools/CUELO_Setup/deploy-live.ps1`๊ณผ `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime`์„ ์‹คํ–‰ํ•œ๋‹ค(`Tools/CUELO_Setup/setup.ps1`์€ ์•ฑ ์ „์ฒด ์„ค์น˜๊ธฐ๋ผ ์ด ๋‹จ๊ณ„๊ฐ€ ์•„๋‹ˆ๋‹ค). ๋ฐฐํฌ ํŠธ๋žœ์žญ์…˜์ด ์ƒˆ ์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ธฐ ์ „์— `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly`๋กœ ๋ฏธ๋Ÿฌ ํ”„๋กœํ•„์„ ๋ฐ˜์˜ํ•˜๊ณ , ์ƒˆ ์„œ๋ฒ„ `/api/models`์˜ ์—ญํ•  selector๊ฐ€ ๋ฏธ๋Ÿฌ `config.yml` `modelRoles`์™€ ๊ฐ™์€์ง€ ํ™•์ธํ•ด receipt `profile`์— ๋‚จ๊ธฐ๋ฏ€๋กœ ๋ฐฐํฌ ๋’ค ProfileOnlyยท`CUELO-Restart`๋ฅผ ๋”ฐ๋กœ ๋Œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์—ญํ• ์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ๊ด€์ธก๋˜์ง€ ์•Š์œผ๋ฉด deploy-live๊ฐ€ exit 3์œผ๋กœ ๋๋‚˜๋ฉฐ rollbackํ•˜์ง€ ์•Š์œผ๋‹ˆ, ์•ˆ๋‚ด๋Œ€๋กœ ์žฌ์‹œ์ž‘ํ•œ ๋’ค `/api/models`๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•œ๋‹ค. ์„ธ์…˜ ์•ˆ ๋ฐฐํฌ๋Š” deploy-live๊ฐ€ worker ์ ‘์ˆ˜ ๋’ค ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์žฌ๊ฐœ ๋’ค transaction receipt์˜ `profile.modelRoles.matched`๊ฐ€ `true`์ธ์ง€ ์ง์ ‘ ํ™•์ธํ•œ๋‹ค. ๋ฐฐํฌ ์—†์ด ํ”„๋กœํ•„๋งŒ ๋ฐ”๊ฟจ์œผ๋ฉด ProfileOnly ๋’ค ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ๊ฐ™์€ ์—ญํ•  ํ™•์ธ์„ ํ•œ๋‹ค. ๋ผ์ด๋ธŒ ์„œ๋ฒ„๋Š” Settings๋ฅผ ์‹œ์ž‘ ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์ฝ์–ด ํŒŒ์ผ ๋ณ€๊ฒฝยทtouch๋กœ๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ์‹คํ–‰ ์ „ `hostname`์œผ๋กœ PC๋ฅผ ํ™•์ธํ•œ๋‹ค. ์˜ˆ์•ฝ ์ž‘์—… ๊ฐ™์€ ์ž๋™ ๋ฐฐํฌ๋Š” ๋‘์ง€ ์•Š๋Š”๋‹ค. stageยทrollback ์‚ญ์ œ, ์ด ๋‘ PC ๋ฐ–์˜ ๋ฐฐํฌ, CLI ์—…๋ฐ์ดํŠธ, ๋น„์šฉ์ด ๋“œ๋Š” ์ž‘์—…์€ ๋”ฐ๋กœ ์Šน์ธ๋ฐ›๋Š”๋‹ค.
33
+ - KYS ๋ฐฐํฌ(์‚ฌ์šฉ์ž, 2026-10-07): ์ง‘ PC๋Š” WSL `Ubuntu-24.04`์˜ CUELO ํ•˜๋‚˜๋กœ ๋ˆ๋‹ค. ์œ„ Windows ๋‹จ๊ณ„ ๋Œ€์‹  ์žฌ์‹œ์ž‘์„ ์•Œ๋ฆฌ๊ณ  WSL์—์„œ `systemd-run --user --unit=cuelo-update-$(date +%s) --collect --setenv=WSL_DISTRO_NAME=Ubuntu-24.04 bash ~/cuelo-run/Tools/CUELO_Setup/wsl/update.sh <revision>`์„ ์‹คํ–‰ํ•œ๋‹ค(Windows ์„ธ์…˜์ด๋ฉด `wsl.exe -d Ubuntu-24.04 --exec bash -lc 'โ€ฆ'`๋กœ). ์„ธ์…˜ ์ •์ง€ยท๋นŒ๋“œยทWSL ํ”„๋กœํ•„ ๋ฐ˜์˜ยท์žฌ์‹œ์ž‘ยท๋Œ€๊ธฐ ํ™”๋ฉด ๋ณต๊ท€๊นŒ์ง€ ์ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งก๋Š”๋‹ค. `Tools/CUELO_Setup/deploy-live.ps1`๊ณผ ์•ฑ ์ „์ฒด `setup.ps1`์€ ์ง€์šด Windows ์•ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฏ€๋กœ KYS์—์„œ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. `verify.ps1 -StrictRuntime`ยท`setup.ps1 -ProfileOnly`๋Š” Windows ์ชฝ ํ”„๋กœํ•„ยท๋Ÿฐํƒ€์ž„์„ ๋ณด๋ฏ€๋กœ KYS ๋ฐฐํฌ์˜ ์ฆ๊ฑฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์™„๋ฃŒ๋Š” ์ตœ์‹  `~/.omp/wsl-update/*.log`์˜ `READY <revision>`, `wsl\launch.ps1 -Status`์˜ `matched: true`, `node install.mjs health` 4/4, `/api/models?cwd=<์„ธ์…˜ cwd>` ์—ญํ•  selector์™€ WSL `~/.omp/agent/config.yml` `modelRoles`์˜ ์ผ์น˜๋กœ ๋ณธ๋‹ค(`cwd`๊ฐ€ ์—†์œผ๋ฉด 403). exit 2(๋˜๋Œ๋ฆผ)ยท3(๋˜๋Œ๋ฆฌ๊ธฐ ์‹คํŒจ)์€ ๋ฐฐํฌ ์‹คํŒจ๋กœ ๋ณด๊ณ ํ•œ๋‹ค. ์„ธ๋ถ€ ์ ˆ์ฐจ์™€ ํ•จ์ •์€ `Tools/CUELO_Setup/WSL-SETUP.md` ใ€Œ์šด์˜ใ€์— ์žˆ๋‹ค.
32
34
  - CI ๊ฐ์‹œ(์‚ฌ์šฉ์ž, 2026-09-28ยท2026-10-03): ์ปค๋ฐ‹์˜ CI๋ฅผ ์ง€์ผœ๋ณผ ๋•Œ๋Š” ๊ธฐ๋‹ค๋ฆด ์›Œํฌํ”Œ๋กœ๋ฅผ ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•˜๊ณ (`gh run list --workflow <์ด๋ฆ„>` ๋“ฑ), ๊ทธ run์ด ๋๋‚˜๋Š” ์ฆ‰์‹œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ•œ๋‹ค. ๊ฐ™์€ SHA์— ๊ฑธ๋ฆฐ run ์ „์ฒด์˜ ์™„๋ฃŒ๋ฅผ ์กฐ๊ฑด์œผ๋กœ ์‚ผ์ง€ ์•Š๋Š”๋‹ค. CI ์„ฑ๊ณต์ด ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฆด๋ฆฌ์Šคยท๋ฐฐํฌ run(`workflow_run`)์ด ๋ช‡ ์ดˆ ๋’ค ๊ฐ™์€ SHA๋กœ ์ƒ๊ฒจ CI ์™„๋ฃŒ ๋ณด๊ณ ๋ฅผ ๋ถ™์žก๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์–ด ๋ถ™๋Š” run์€ ๋ณด๊ณ ํ•œ ๋’ค ๋”ฐ๋กœ ์ง€์ผœ๋ณธ๋‹ค. ๊ฐ์‹œ๋Š” `bash`์˜ `gh run watch <id> --exit-status`๋‚˜ `gh run list` ์ง์ ‘ ์กฐํšŒ๋กœ ํ•˜๊ณ , `eval` ์ปค๋„ ์•ˆ์—์„œ `gh`๋ฅผ subprocess๋กœ ๋ถ€๋ฅด๋Š” ํด๋ง ๋ฃจํ”„๋กœ ์งœ์ง€ ์•Š๋Š”๋‹ค. 2026-10-03 ๊ทธ๋Ÿฐ ๋ฃจํ”„๊ฐ€ ๋นˆ ์ถœ๋ ฅ์„ "run ์—†์Œ"์œผ๋กœ ์ฝ์–ด, CI๊ฐ€ ๋๋‚œ ๋’ค์—๋„ 20๋ถ„ ๋„˜๊ฒŒ ๋ณด๊ณ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ง์ ‘ ์ง  ํด๋ง์€ ๋นˆ ์ถœ๋ ฅยท0์ด ์•„๋‹Œ exit๋ฅผ ์ฆ‰์‹œ ์˜ค๋ฅ˜๋กœ ๋๋‚ธ๋‹ค. ๊ณต๊ฐœ ๋ฏธ๋Ÿฌ CI๋Š” headSha๊ฐ€ ์›๋ณธ ์ปค๋ฐ‹๊ณผ ๋‹ค๋ฅด๋ฏ€๋กœ run ์ œ๋ชฉ์œผ๋กœ ์ฐพ๋Š”๋‹ค.
33
35
  - ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์˜ ๋ถˆํ™•์‹ค์„ฑ์€ ๋ช…์‹œ ์š”๊ตฌยท์Šน์ธ๋œ ๊ณ„์•ฝ, ์‹ค์ œ ํ˜ธ์ถœ๋ถ€์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„, ํ…Œ์ŠคํŠธยท์žฌํ˜„ ๊ฒฐ๊ณผ,
34
36
  ํ˜„์žฌ ๋™์ž‘๊ณผ ๋ฌธ์„œ๋กœ ์ขํžŒ๋‹ค. ์ฆ๊ฑฐ๋กœ ๋ฐฉํ–ฅ์ด ์ •ํ•ด์ง€๋ฉด ๊ทผ๊ฑฐ๋ฅผ ๋‚จ๊ธฐ๊ณ  ์ง„ํ–‰ํ•˜๋ฉฐ ์‚ฌ์†Œํ•œ ๊ตฌํ˜„ ์„ ํƒ๋งˆ๋‹ค
@@ -0,0 +1,17 @@
1
+ You name coding-agent sessions. Write a short title for the task in the next message.
2
+
3
+ Write the title in the language the user wrote the request in. A Korean request gets a Korean title, even when the request mixes in English words or the surrounding notes are in English. Keep code identifiers, file names, commands, product and model names in their original form.
4
+
5
+ Rules:
6
+ - Name the user's goal as a short phrase built from the user's own key words (the feature, component, or error they name). Korean titles end in a noun or a noun phrase such as "~ ์ˆ˜์ •", "~ ์ถ”๊ฐ€", "~ ์กฐ์‚ฌ"; English titles are a 3-6 word imperative. Avoid vague filler like "logic", "issues", "functionality", "๋ฌธ์ œ", "์ž‘์—…".
7
+ - Keep it short: about 4-20 Korean characters, or 3-6 English words.
8
+ - `[Image #N, WxH]` marks an image you cannot see. Never mention it or guess what it shows; title the task the surrounding words name.
9
+ - Decline greetings, acknowledgements, gibberish, or requests too vague to name without context you cannot see ("help", "fix this", "์ด๊ฑฐ ๋ด์ค˜").
10
+ - A `<chat>` block summarizes a longer session: its first `<user>` turn is the opening request, followed by recent turns (often the assistant's working notes, sometimes in English). Title the goal the session is working on, in the language of the user's turns, using the opening request unless later turns clearly moved to a new task; never title the current micro-step, and ignore file names and symbols unless they are the subject.
11
+ - No quotes, trailing punctuation, or explanations.
12
+
13
+ Examples:
14
+ - "the retry queue drops jobs when redis restarts, can u look" โ†’ Fix retry queue dropping jobs
15
+ - "npm run build ํ•  ๋•Œ peer deps ๊ฒฝ๊ณ  ์—†์• ์ค˜" โ†’ peer dependency ๋นŒ๋“œ ๊ฒฝ๊ณ  ์ œ๊ฑฐ
16
+ - "๋กœ๊ทธ์ธํ•˜๋ฉด ๊ฐ€๋” ๋นˆ ํ™”๋ฉด๋งŒ ๋œจ๋Š”๋ฐ ํ™•์ธ ์ข€" โ†’ ๋กœ๊ทธ์ธ ํ›„ ๋นˆ ํ™”๋ฉด ์ˆ˜์ •
17
+ - `<chat>` whose user turns are Korean and whose assistant notes say "adding a backoff field to RetryPolicyโ€ฆ now wiring jitter" โ†’ ์žฌ์‹œ๋„ backoffยทjitter ์ถ”๊ฐ€
@@ -81,6 +81,8 @@ export interface JevRuntimeDeps {
81
81
  ledgerPath?: string;
82
82
  /** ํšŒ์ƒ ๊ธฐ์–ต ์ ์šฉ ์ ๊ฒ€์˜ bounded advisory latency. ํ…Œ์ŠคํŠธ๋งŒ ์งง๊ฒŒ ์ค€๋‹ค. ๊ธฐ๋ณธ์€ MEMORY_APPLICATION_TIMEOUT_MS๋‹ค. */
83
83
  memoryApplicationTimeoutMs?: number;
84
+ /** ์…ธ ์˜ค๋ฅ˜ ๋ถ„๋ฅ˜ยท์•ˆ๋‚ด๋ฅผ ๊ณ ๋ฅผ ์‹คํ–‰ ํ”Œ๋žซํผ. ํ…Œ์ŠคํŠธ๋งŒ ์ฃผ์ž…ํ•œ๋‹ค. ๊ธฐ๋ณธ์€ process.platform์ด๋‹ค. */
85
+ platform?: NodeJS.Platform;
84
86
  }
85
87
 
86
88
  // ---------------------------------------------------------------------------
@@ -247,10 +249,14 @@ function textContent(content: unknown): string {
247
249
  // Windows ๊ธฐ๋ณธ curl.exe ๋Š” `-o /dev/null` ์„ ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ๋ฐ›์•„ ์“ฐ์ง€ ๋ชปํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ›์€ ๋’ค exit 23 ์œผ๋กœ ๋๋‚œ๋‹ค.
248
250
  const WINDOWS_CURL_DEVNULL = /\bcurl(?:\.exe)?\b[^\n;|&]*\s-o\s*\/dev\/null\b/u;
249
251
 
250
- function classifyError(content: unknown, input?: unknown): string {
252
+ const WINDOWS_SHELL_NEXT_ACTION = "๊ฐ™์€ ๋ช…๋ น์„ ๊ทธ๋Œ€๋กœ ์žฌ์‹œ๋„ํ•˜์ง€ ์•Š๋Š”๋‹ค. PowerShell ๋กœ์ง์€ write๋กœ .ps1 ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  -File <์Šฌ๋ž˜์‹œ ์ ˆ๋Œ€๊ฒฝ๋กœ>๋กœ ์‹คํ–‰ํ•œ๋‹ค. .\\xยท์—ญ์Šฌ๋ž˜์‹œ ๊ฒฝ๋กœ ๋Œ€์‹  ์Šฌ๋ž˜์‹œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์“ด๋‹ค. cmd /c rdยทdel ๋Œ€์‹  rm ๋˜๋Š” .ps1์˜ Remove-Item -LiteralPath๋ฅผ ์“ด๋‹ค. `$'\\r'` ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋Š” PATH ์ฒซ bash(WSL)๊ฐ€ CRLF .sh๋ฅผ ์ฝ์€ ๊ฒƒ์ด๋‹ˆ Git Bash(\"C:/Program Files/Git/bin/bash.exe\" <์Šคํฌ๋ฆฝํŠธ>)๋กœ ์‹คํ–‰ํ•œ๋‹ค. `curl -o /dev/null`์˜ exit 23์€ Windows curl.exe๊ฐ€ /dev/null์— ์“ฐ์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋ผ ์‘๋‹ต์€ ์ด๋ฏธ ๋ฐ›์•˜๋‹ค. `-o NUL`์ด๋‚˜ ์…ธ ๋ฆฌ๋””๋ ‰์…˜ `>/dev/null`๋กœ ๋ฐ”๊พผ๋‹ค.";
253
+ // Linux(WSL ํฌํ•จ) ์…ธ: Windows ๋ช…๋ นยทCRLF ์Šคํฌ๋ฆฝํŠธยทinterop PowerShell ํ˜ธ์ถœ์ด ์›์ธ์ด๋‹ค.
254
+ const POSIX_SHELL_NEXT_ACTION = "๊ฐ™์€ ๋ช…๋ น์„ ๊ทธ๋Œ€๋กœ ์žฌ์‹œ๋„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ์…ธ์€ Linux๋‹ค. delยทcopyยทfindstrยทcmd /c ๋Œ€์‹  rmยทcpยทgrep์„ ์“ด๋‹ค. Windows ์ „์šฉ ์ž‘์—…๋งŒ interop์œผ๋กœ ๋ถ€๋ฅด๊ณ , PowerShell ๋กœ์ง์€ write๋กœ .ps1 ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด powershell.exe -File \"$(wslpath -w <์Šคํฌ๋ฆฝํŠธ>)\"๋กœ ์‹คํ–‰ํ•˜๋ฉฐ ๋„˜๊ธฐ๋Š” ๊ฒฝ๋กœ๋„ wslpath -w๋กœ ๋ฐ”๊พผ๋‹ค. `$'\\r'` ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋Š” CRLF .sh๋ฅผ ์ฝ์€ ๊ฒƒ์ด๋‹ˆ bash <(tr -d '\\r' < <์Šคํฌ๋ฆฝํŠธ>)๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ LF๋กœ ์ €์žฅํ•œ๋‹ค.";
255
+
256
+ function classifyError(content: unknown, input: unknown, platform: NodeJS.Platform): string {
251
257
  const text = textContent(content);
252
258
  const command = input && typeof input === "object" && "command" in input ? input.command : undefined;
253
- if (/exited with code 23\b/u.test(text) && typeof command === "string" && WINDOWS_CURL_DEVNULL.test(command)) {
259
+ if (platform === "win32" && /exited with code 23\b/u.test(text) && typeof command === "string" && WINDOWS_CURL_DEVNULL.test(command)) {
254
260
  return "windows-shell";
255
261
  }
256
262
  for (const [pattern, category] of ERROR_CATEGORY_PATTERNS) {
@@ -889,6 +895,7 @@ function renderMemoryApplication(
889
895
 
890
896
  export function createJevRuntime(deps: JevRuntimeDeps = {}) {
891
897
  return function jevRuntime(pi: ExtensionAPI): void {
898
+ const platform = deps.platform ?? process.platform;
892
899
  /** toolCallId โ†’ spawn๋œ task ๋ฉ”ํƒ€. pre-dispatch ์ค‘๋ณต ํŒ์ •์˜ ๊ธฐ์กด maker ๋ชฉ๋ก. */
893
900
  const liveMakers = new Map<string, SpawnedTaskMeta[]>();
894
901
  /** jobId โ†’ {callId, taskIndex}. settle ์‹œ ํ•ด๋‹น child๋งŒ liveMakers์—์„œ ๋‹ซ๋Š”๋‹ค. */
@@ -1903,7 +1910,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1903
1910
  const inputChanged = serializeInput(event.input) !== failure.inputSerialized;
1904
1911
  const observation = failure.observation;
1905
1912
  const nextAction = failure.category === "windows-shell"
1906
- ? "๊ฐ™์€ ๋ช…๋ น์„ ๊ทธ๋Œ€๋กœ ์žฌ์‹œ๋„ํ•˜์ง€ ์•Š๋Š”๋‹ค. PowerShell ๋กœ์ง์€ write๋กœ .ps1 ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  -File <์Šฌ๋ž˜์‹œ ์ ˆ๋Œ€๊ฒฝ๋กœ>๋กœ ์‹คํ–‰ํ•œ๋‹ค. .\\xยท์—ญ์Šฌ๋ž˜์‹œ ๊ฒฝ๋กœ ๋Œ€์‹  ์Šฌ๋ž˜์‹œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์“ด๋‹ค. cmd /c rdยทdel ๋Œ€์‹  rm ๋˜๋Š” .ps1์˜ Remove-Item -LiteralPath๋ฅผ ์“ด๋‹ค. `$'\\r'` ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋Š” PATH ์ฒซ bash(WSL)๊ฐ€ CRLF .sh๋ฅผ ์ฝ์€ ๊ฒƒ์ด๋‹ˆ Git Bash(\"C:/Program Files/Git/bin/bash.exe\" <์Šคํฌ๋ฆฝํŠธ>)๋กœ ์‹คํ–‰ํ•œ๋‹ค. `curl -o /dev/null`์˜ exit 23์€ Windows curl.exe๊ฐ€ /dev/null์— ์“ฐ์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋ผ ์‘๋‹ต์€ ์ด๋ฏธ ๋ฐ›์•˜๋‹ค. `-o NUL`์ด๋‚˜ ์…ธ ๋ฆฌ๋””๋ ‰์…˜ `>/dev/null`๋กœ ๋ฐ”๊พผ๋‹ค."
1913
+ ? (platform === "win32" ? WINDOWS_SHELL_NEXT_ACTION : POSIX_SHELL_NEXT_ACTION)
1907
1914
  : observation.cancelled && !observation.deterministicExitObserved
1908
1915
  ? "์ทจ์†Œ ๊ทผ๊ฑฐ ์—†์Œ: ์‹คํ–‰ ๊ฒฐ๊ณผ ํšŒ์ˆ˜ ๋˜๋Š” ๋‹ค์Œ ํ•œ ๋ณ€์ˆ˜ ํ™•์ธ. ์‚ฐ์ถœ๋ฌผยท๋กœ๊ทธยทํ”„๋กœ์„ธ์Šค ์ƒ์กด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ƒˆ๋กœ ํ™•์ธํ•œ ๋’ค ๊ฒฐ์ •ํ•œ๋‹ค. stdout ์นจ๋ฌตยท๋‚ฎ์€ CPUยทelapsed๋งŒ์œผ๋กœ stall์„ ํ™•์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค."
1909
1916
  : RETRY_CATEGORY_NEXT_ACTION[failure.category]
@@ -2166,7 +2173,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
2166
2173
  if (!EXPLORATION_TOOLS[event.toolName]) {
2167
2174
  pendingFailures.set(event.toolName, {
2168
2175
  inputSerialized: serializeInput(event.input),
2169
- category: classifyError(event.content, event.input),
2176
+ category: classifyError(event.content, event.input, platform),
2170
2177
  interveningTools: [],
2171
2178
  observation: readFailureObservation(event.details, event.content),
2172
2179
  });
@@ -1,4 +1,4 @@
1
- <!-- source-fingerprint: 304defdf324e541a -->
1
+ <!-- source-fingerprint: 8d31e15589e1b276 -->
2
2
  # Global Rules
3
3
 
4
4
  (Model-facing English copy of the Korean source `RULES.md`.)
@@ -13,7 +13,9 @@
13
13
  - Do not repeat the same action under the same conditions. Diagnosis that narrows the cause from observation and changes the next action accordingly is not blind retrying; the same error string alone does not make it the same attempt. If after the first failure there is neither an action to change nor a safe path forward, do not confirm the same failure a second time โ€” stop there and report the cause evidence, what was tried, and the remaining blocker.
14
14
  - Work solvable with tools, the repository, and the current context is carried to completion without asking for confirmation or stopping midway. Exception: get user approval before deletion, deployment, incurring cost, or breaking compatibility.
15
15
  - Before installing/registering MCP servers or changing their authentication/permissions, explain the target and scope and get user approval. After approval, the agent carries out the supported installation, configuration, connection, and verification. Do not reinterpret "user approval required" as "the user must execute it manually." Hand over only steps requiring the person, such as personal login, credential entry, or interactive provider safety checks/consent. JEV recommendations or relevance judgments never substitute for user approval.
16
- - Deploy confirmation (user, 2026-09-26, 2026-09-29 and 2026-09-30): the home PC (hostname `KYS`) and the office PC (its hostname is in the private deploy table) follow the same procedure. Once that PC's CUELO session has verified a source change and committed and pushed it, watch that commit's GitHub CI until it finishes, report the result, and ask whether to deploy. After the user approves, run `Tools/CUELO_Setup/deploy-live.ps1` and `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime` for that same revision (`Tools/CUELO_Setup/setup.ps1` is the full app installer, not this step). The deploy transaction applies the mirror profile with `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly` before starting the new server, then checks that the new server's `/api/models` role selectors match the mirror `config.yml` `modelRoles` and records it in the receipt `profile`, so do not run ProfileOnly or `CUELO-Restart` separately after a deploy. If the roles differ or could not be observed, deploy-live exits 3 without rolling back; restart as its guidance says and check `/api/models` again. An in-session deploy returns once the worker accepts, so after resuming check yourself that the transaction receipt's `profile.modelRoles.matched` is `true`. If only the profile changed without a deploy, restart the server after ProfileOnly and do the same role check. The live server reads Settings once at startup; file changes or a touch do not reload it. Check the PC with `hostname` first. Do not add automatic deployment such as a scheduled task. Deleting stages or rollbacks, deploying to any PC other than these two, updating the CLI, and anything that incurs cost still need separate approval.
16
+ - Host OS system changes (user, 2026-10-06): never touch kernel or filter drivers, the `Start` value of boot/System-start services, the network stack, firewall or security/banking-security software, boot configuration, or system registry keys as a diagnostic "disable it and see". When evidence says one must change, first explain the target, current value, new value, expected impact (possible network loss or boot failure), and how to revert, and get user approval for that exact change. "Please allow the UAC prompt" is not an approval request, and allowing UAC is not approval. Consider the program's supported uninstall or settings before disabling anything, and narrow the cause with read-only queries (`reg query`, `sc query`) first.
17
+ - Deploy confirmation (user, 2026-09-26, 2026-09-29 and 2026-09-30): the home PC (hostname `KYS`) and the office PC (its hostname is in the private deploy table) follow the same confirmation procedure; only the execution step differs for KYS (see "KYS deploy" below). Once that PC's CUELO session has verified a source change and committed and pushed it, watch that commit's GitHub CI until it finishes, report the result, and ask whether to deploy. On the office PC, after the user approves, run `Tools/CUELO_Setup/deploy-live.ps1` and `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime` for that same revision (`Tools/CUELO_Setup/setup.ps1` is the full app installer, not this step). The deploy transaction applies the mirror profile with `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly` before starting the new server, then checks that the new server's `/api/models` role selectors match the mirror `config.yml` `modelRoles` and records it in the receipt `profile`, so do not run ProfileOnly or `CUELO-Restart` separately after a deploy. If the roles differ or could not be observed, deploy-live exits 3 without rolling back; restart as its guidance says and check `/api/models` again. An in-session deploy returns once the worker accepts, so after resuming check yourself that the transaction receipt's `profile.modelRoles.matched` is `true`. If only the profile changed without a deploy, restart the server after ProfileOnly and do the same role check. The live server reads Settings once at startup; file changes or a touch do not reload it. Check the PC with `hostname` first. Do not add automatic deployment such as a scheduled task. Deleting stages or rollbacks, deploying to any PC other than these two, updating the CLI, and anything that incurs cost still need separate approval.
18
+ - KYS deploy (user, 2026-10-07): the home PC runs a single WSL CUELO in `Ubuntu-24.04`. Instead of the Windows steps above, announce the restart and run, inside WSL, `systemd-run --user --unit=cuelo-update-$(date +%s) --collect --setenv=WSL_DISTRO_NAME=Ubuntu-24.04 bash ~/cuelo-run/Tools/CUELO_Setup/wsl/update.sh <revision>` (from a Windows session, through `wsl.exe -d Ubuntu-24.04 --exec bash -lc 'โ€ฆ'`). The script owns the session drain, the build, the WSL profile update, the restart and the wait-screen return. Never run `Tools/CUELO_Setup/deploy-live.ps1` or the full app `setup.ps1` on KYS: they reinstall the removed Windows app. `verify.ps1 -StrictRuntime` and `setup.ps1 -ProfileOnly` look at the Windows profile and runtime, so they are not evidence for a KYS deploy. It is done when the newest `~/.omp/wsl-update/*.log` ends with `READY <revision>`, `wsl\launch.ps1 -Status` reports `matched: true`, `node install.mjs health` is 4/4, and the `/api/models?cwd=<a session cwd>` role selectors match `modelRoles` in the WSL `~/.omp/agent/config.yml` (without `cwd` the route answers 403). Exit 2 (rolled back) or 3 (rollback failed) is a failed deploy: report it. The full procedure and its traps are in `Tools/CUELO_Setup/WSL-SETUP.md`, section ใ€Œ์šด์˜ใ€.
17
19
  - CI watching (user, 2026-09-28 and 2026-10-03): when watching a commit's CI, name the workflow you wait on (`gh run list --workflow <name>` or similar) and report the moment that run finishes. Never use "every run for this SHA is completed" as the condition: a release/deploy run triggered by CI success (`workflow_run`) appears seconds later on the same SHA and holds back the CI report. Watch such follow-on runs separately after reporting. Watch with `gh run watch <id> --exit-status` or a direct `gh run list` in `bash`; never write a polling loop that calls `gh` as a subprocess inside the `eval` kernel. On 2026-10-03 such a loop read empty output as "no run yet" and missed a finished CI for over 20 minutes. Any hand-written poll must fail at once on empty output or a nonzero exit. Public-mirror CI runs carry a different headSha than the source commit, so find them by run title.
18
20
  - Narrow implementation uncertainty using explicit requirements and approved contracts, actual callers and data flow, test/reproduction results, and current behavior and docs. Once evidence settles the direction, proceed and record the basis; do not ask for confirmation on every minor implementation choice. Tests, docs, and current behavior are not automatically right; when they conflict with the requirements, check the actual behavior. Escalate to the user only items that change product meaning and cannot be settled by evidence, or that lack authority or external approval; keep doing independently allowed work even if that part is blocked.
19
21
  - When a normal implementation choice still needs the user and you ask it with `ask`, give it a valid `recommended` and `autoSelectRecommended: true` so it proceeds with the recommendation after 2 minutes without an answer. Never enable auto-selection for deletion, deployment, cost, account, permission, provider safety, or other high-impact confirmations; wait for the answer. A timed-out auto-selection is not user approval, so never use it as the basis for an action that needs approval.