cuelo 0.5.0 → 0.5.1

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 (324) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -11
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +4 -4
  6. package/.next/required-server-files.json +4 -4
  7. package/.next/server/app/_global-error/page.js +3 -3
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +3 -3
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/api/agent/[id]/account/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/account/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/[id]/account/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  31. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  33. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  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.js.nft.json +1 -1
  37. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/agent/new/route.js +1 -1
  39. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  40. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/agent/running/route.js +1 -1
  42. package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
  43. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  45. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  47. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  49. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  51. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/auth/providers/route.js +1 -1
  53. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/cwd/browse/route.js +1 -1
  55. package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -1
  56. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/cwd/validate/route.js +1 -1
  58. package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -1
  59. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/default-cwd/route.js +1 -1
  61. package/.next/server/app/api/default-cwd/route.js.nft.json +1 -1
  62. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/display-settings/route.js +1 -1
  64. package/.next/server/app/api/display-settings/route.js.nft.json +1 -1
  65. package/.next/server/app/api/display-settings/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/document-text/route.js +1 -1
  67. package/.next/server/app/api/document-text/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/experiments/route.js +1 -1
  69. package/.next/server/app/api/experiments/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/file-index/route.js +1 -1
  71. package/.next/server/app/api/file-index/route.js.nft.json +1 -1
  72. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/files/[...path]/route.js +2 -2
  74. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/git/diff/route.js +2 -2
  77. package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
  78. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/git/status/route.js +1 -1
  80. package/.next/server/app/api/git/status/route.js.nft.json +1 -1
  81. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  83. package/.next/server/app/api/gpt6/handles/route.js.nft.json +1 -1
  84. package/.next/server/app/api/gpt6/handles/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/gpt6/mcp/route.js +1 -1
  86. package/.next/server/app/api/gpt6/mcp/route.js.nft.json +1 -1
  87. package/.next/server/app/api/gpt6/mcp/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  89. package/.next/server/app/api/gpt6/reply/route.js.nft.json +1 -1
  90. package/.next/server/app/api/gpt6/reply/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/gpt6/token/route.js +1 -1
  92. package/.next/server/app/api/gpt6/token/route.js.nft.json +1 -1
  93. package/.next/server/app/api/gpt6/token/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  95. package/.next/server/app/api/gpt6/web6-session/route.js.nft.json +1 -1
  96. package/.next/server/app/api/gpt6/web6-session/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/home/route.js +1 -1
  98. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/live/call/[callId]/route.js +1 -1
  100. package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/live/call/[callId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/live/events/route.js +2 -2
  103. package/.next/server/app/api/live/events/route.js.nft.json +1 -1
  104. package/.next/server/app/api/live/events/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/live/offer/route.js +1 -1
  106. package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
  107. package/.next/server/app/api/live/offer/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/live/voices/route.js +1 -1
  109. package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
  110. package/.next/server/app/api/live/voices/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/mcp/route.js +2 -2
  112. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  113. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/model-roles/route.js +1 -1
  115. package/.next/server/app/api/model-roles/route.js.nft.json +1 -1
  116. package/.next/server/app/api/model-roles/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/models/route.js +1 -1
  118. package/.next/server/app/api/models/route.js.nft.json +1 -1
  119. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  121. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/models-config/discover/route.js +1 -1
  123. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/models-config/route.js +2 -2
  125. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/models-config/test/route.js +1 -1
  127. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/plugins/route.js +1 -1
  129. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  130. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/project-trust/route.js +1 -1
  132. package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
  133. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/projects/route.js +1 -1
  135. package/.next/server/app/api/projects/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/route.js +1 -1
  139. package/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  141. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  142. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  144. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +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.js.nft.json +1 -1
  152. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  154. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  155. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/sessions/route.js +1 -1
  157. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  158. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/settings/route.js +1 -1
  160. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  161. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
  163. package/.next/server/app/api/sidecars/[service]/[...path]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/skills/check/route.js +1 -1
  165. package/.next/server/app/api/skills/check/route.js.nft.json +1 -1
  166. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/skills/install/route.js +1 -1
  168. package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  169. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/skills/route.js +2 -2
  171. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  172. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/skills/search/route.js +1 -1
  174. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/skills/update/route.js +1 -1
  176. package/.next/server/app/api/skills/update/route.js.nft.json +1 -1
  177. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/theme/route.js +1 -1
  179. package/.next/server/app/api/theme/route.js.nft.json +1 -1
  180. package/.next/server/app/api/theme/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/update-maintenance/route.js +2 -2
  182. package/.next/server/app/api/update-maintenance/route.js.nft.json +1 -1
  183. package/.next/server/app/api/update-maintenance/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/updates/route.js +1 -1
  185. package/.next/server/app/api/updates/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/web-access/recovery/route.js +1 -1
  187. package/.next/server/app/api/web-access/recovery/route.js.nft.json +1 -1
  188. package/.next/server/app/api/web-access/recovery/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/web-access/route.js +1 -1
  190. package/.next/server/app/api/web-access/route.js.nft.json +1 -1
  191. package/.next/server/app/api/web-access/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/web6/consults/route.js +1 -1
  193. package/.next/server/app/api/web6/consults/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/route.js +1 -1
  195. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/favicon.ico/route.js +1 -1
  198. package/.next/server/app/index.html +1 -1
  199. package/.next/server/app/index.rsc +5 -5
  200. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  201. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  202. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  203. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  204. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  205. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  206. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/page.js +9 -9
  208. package/.next/server/app/page_client-reference-manifest.js +1 -1
  209. package/.next/server/app/recover/page.js +2 -2
  210. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  211. package/.next/server/app/recover.html +1 -1
  212. package/.next/server/app/recover.rsc +4 -4
  213. package/.next/server/app/recover.segments/_full.segment.rsc +4 -4
  214. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  215. package/.next/server/app/recover.segments/_index.segment.rsc +3 -3
  216. package/.next/server/app/recover.segments/_tree.segment.rsc +2 -2
  217. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +2 -2
  218. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  219. package/.next/server/app-paths-manifest.json +11 -11
  220. package/.next/server/chunks/319.js +3 -3
  221. package/.next/server/chunks/3379.js +1 -1
  222. package/.next/server/chunks/7245.js +1 -1
  223. package/.next/server/chunks/9280.js +1 -1
  224. package/.next/server/middleware-build-manifest.js +1 -1
  225. package/.next/server/middleware.js +11 -11
  226. package/.next/server/pages/404.html +1 -1
  227. package/.next/server/pages/500.html +1 -1
  228. package/.next/server/server-reference-manifest.json +1 -1
  229. package/.next/static/chunks/app/_not-found/page-d47816c8266ad10a.js +1 -0
  230. package/.next/static/chunks/app/{layout-95725ad1abf3cb75.js → layout-85736d5559027813.js} +1 -1
  231. package/.next/static/chunks/app/{page-26a4df181c1d562c.js → page-5cde6189aa974555.js} +4 -4
  232. package/.next/static/chunks/app/recover/page-b21a217e972ce75f.js +1 -0
  233. package/.next/static/chunks/{main-app-0dc38ffe862cd588.js → main-app-0af2539744a1d9c8.js} +1 -1
  234. package/.next/static/chunks/next/dist/client/components/builtin/global-error-5bf20286772920a7.js +1 -0
  235. package/.next/static/css/e55ae9b4602a1ee6.css +1 -0
  236. package/.next/trace +7 -8
  237. package/.next/trace-build +1 -1
  238. package/.next/types/app/api/agent/[id]/account/route.ts +1 -1
  239. package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
  240. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  241. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  242. package/.next/types/app/api/agent/new/route.ts +1 -1
  243. package/.next/types/app/api/agent/running/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/cwd/browse/route.ts +1 -1
  250. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  251. package/.next/types/app/api/default-cwd/route.ts +1 -1
  252. package/.next/types/app/api/display-settings/route.ts +1 -1
  253. package/.next/types/app/api/document-text/route.ts +1 -1
  254. package/.next/types/app/api/experiments/route.ts +1 -1
  255. package/.next/types/app/api/file-index/route.ts +1 -1
  256. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  257. package/.next/types/app/api/git/diff/route.ts +1 -1
  258. package/.next/types/app/api/git/status/route.ts +1 -1
  259. package/.next/types/app/api/gpt6/handles/route.ts +1 -1
  260. package/.next/types/app/api/gpt6/mcp/route.ts +1 -1
  261. package/.next/types/app/api/gpt6/reply/route.ts +1 -1
  262. package/.next/types/app/api/gpt6/token/route.ts +1 -1
  263. package/.next/types/app/api/gpt6/web6-session/route.ts +1 -1
  264. package/.next/types/app/api/home/route.ts +1 -1
  265. package/.next/types/app/api/live/call/[callId]/route.ts +1 -1
  266. package/.next/types/app/api/live/events/route.ts +1 -1
  267. package/.next/types/app/api/live/offer/route.ts +1 -1
  268. package/.next/types/app/api/live/voices/route.ts +1 -1
  269. package/.next/types/app/api/mcp/route.ts +1 -1
  270. package/.next/types/app/api/model-roles/route.ts +1 -1
  271. package/.next/types/app/api/models/route.ts +1 -1
  272. package/.next/types/app/api/models-config/catalog/route.ts +1 -1
  273. package/.next/types/app/api/models-config/discover/route.ts +1 -1
  274. package/.next/types/app/api/models-config/route.ts +1 -1
  275. package/.next/types/app/api/models-config/test/route.ts +1 -1
  276. package/.next/types/app/api/plugins/route.ts +1 -1
  277. package/.next/types/app/api/project-trust/route.ts +1 -1
  278. package/.next/types/app/api/projects/route.ts +1 -1
  279. package/.next/types/app/api/runs/[runId]/route.ts +1 -1
  280. package/.next/types/app/api/runs/route.ts +1 -1
  281. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
  282. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  283. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
  284. package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
  285. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  286. package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
  287. package/.next/types/app/api/sessions/route.ts +1 -1
  288. package/.next/types/app/api/settings/route.ts +1 -1
  289. package/.next/types/app/api/sidecars/[service]/[...path]/route.ts +1 -1
  290. package/.next/types/app/api/skills/check/route.ts +1 -1
  291. package/.next/types/app/api/skills/install/route.ts +1 -1
  292. package/.next/types/app/api/skills/route.ts +1 -1
  293. package/.next/types/app/api/skills/search/route.ts +1 -1
  294. package/.next/types/app/api/skills/update/route.ts +1 -1
  295. package/.next/types/app/api/theme/route.ts +1 -1
  296. package/.next/types/app/api/update-maintenance/route.ts +1 -1
  297. package/.next/types/app/api/updates/route.ts +1 -1
  298. package/.next/types/app/api/web-access/recovery/route.ts +1 -1
  299. package/.next/types/app/api/web-access/route.ts +1 -1
  300. package/.next/types/app/api/web6/consults/route.ts +1 -1
  301. package/.next/types/app/api/worktrees/route.ts +1 -1
  302. package/.next/types/app/layout.ts +1 -1
  303. package/.next/types/app/page.ts +1 -1
  304. package/.next/types/app/recover/page.ts +1 -1
  305. package/README.md +174 -174
  306. package/Tools/CUELO_Setup/files/native-runtime-patch.js +349 -349
  307. package/Tools/OMP_Global_Config/agent/AGENTS.md +3 -3
  308. package/Tools/OMP_Global_Config/agent/agents/maker.md +390 -390
  309. package/Tools/OMP_Global_Config/agent/extensions/command-guard/matcher.ts +3 -1
  310. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +63 -28
  311. package/Tools/OMP_Global_Config/agent/extensions/todo-nudge.ts +56 -56
  312. package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +4 -4
  313. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +5005 -5005
  314. package/bin/prepare-runtime.js +81 -81
  315. package/install.mjs +393 -393
  316. package/package.json +1 -1
  317. package/public/audio/completion/voices.json +1195 -1195
  318. package/public/offline.html +145 -145
  319. package/.next/static/chunks/app/_not-found/page-d3f2ac234e6fd3b6.js +0 -1
  320. package/.next/static/chunks/app/recover/page-770a1de1ff4ded56.js +0 -1
  321. package/.next/static/chunks/next/dist/client/components/builtin/global-error-070571d2fa580e7d.js +0 -1
  322. package/.next/static/css/bc8f2da9192ea16d.css +0 -1
  323. /package/.next/static/{MvC-CM1U-UMEzpaGIsCuQ → RnMmpk_boPQwlwbelVcs-}/_buildManifest.js +0 -0
  324. /package/.next/static/{MvC-CM1U-UMEzpaGIsCuQ → RnMmpk_boPQwlwbelVcs-}/_ssgManifest.js +0 -0
@@ -659,8 +659,10 @@ function parseGitInvocation(tokens: ShellToken[], invocation: Invocation): GitIn
659
659
  };
660
660
  }
661
661
 
662
+ // `~`는 단어 맨 앞이나 assignment 꼴의 `=`·`:` 뒤에서만 셸이 확장한다. 경로 중간의 literal
663
+ // `~`(8.3 짧은 이름 `RUNNER~1` 등)는 확장이 아니므로 저장소 판정으로 넘긴다.
662
664
  function hasShellExpansion(value: string): boolean {
663
- return /[$%`~*?]/.test(value);
665
+ return /[$%`*?]|(?:^|[=:])~/.test(value);
664
666
  }
665
667
 
666
668
  function finalizerTargetDirectory(
@@ -800,12 +800,14 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
800
800
  const settledAttempts = new Set<string>();
801
801
  /** settle로 이미 소비한 async jobId. 채널(via)과 무관하게 중복 소비하지 않는다. */
802
802
  const consumedJobs = new Set<string>();
803
- /** 명시 REWORK 전송이 성공해 열린 재개 attempt. agentId → 그 전송 직후 관측한 정확한 새 jobId. */
804
- const resumeByAgent = new Map<string, { attemptId: string; jobId: string }>();
803
+ /** 명시 REWORK 전송이 성공해 열린 재개 attempt. agentId → 그 전송 직후 관측한 정확한 새 jobId와 전송 시각. */
804
+ const resumeByAgent = new Map<string, { attemptId: string; jobId: string; sentAt: number }>();
805
805
  /** 전송별 snapshot을 보존해 같은 actor로 겹친 DM도 서로의 기준선을 덮지 않는다. */
806
- const preWriteJobs = new Map<string, Set<string>>();
806
+ const preWriteJobs = new Map<string, { known: Set<string>; sentAt: number }>();
807
807
  /** 성공한 REWORK receipt. 새 job이 실제 snapshot에 나타나기 전에는 attempt를 만들지 않는다. */
808
- const pendingResume = new Map<string, { priorJobs: ReadonlySet<string>; sourceAttemptId: string }>();
808
+ const pendingResume = new Map<string, { priorJobs: ReadonlySet<string>; sourceAttemptId: string; sentAt: number }>();
809
+ /** 재사용 jobId로 온 재개 실행 중 이미 검수한 실행(`jobId@startTime`). 같은 실행은 채널과 무관하게 한 번만 본다. */
810
+ const judgedResumeRuns = new Set<string>();
809
811
  const VERDICTS = ["accepted", "rework", "held"] as const;
810
812
  type VerdictInput = {
811
813
  sessionId: string; assignmentId: string; attemptId: string; verdict: string;
@@ -953,6 +955,36 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
953
955
  else liveMakers.delete(ref.callId);
954
956
  }
955
957
  }
958
+ /**
959
+ * core는 task job을 `id: agentId`로 등록하고 소비된 row를 곧 evict하므로 재개(IRC wake) 실행이 같은 jobId를 다시 받는다.
960
+ * async-result에는 agentId도 없다. 그래서 agentId는 현재 snapshot row(id 정확 일치)에서만 읽고, 열린 REWORK receipt의
961
+ * 전송 시각 이후 시작된 row만 재개 실행(resumeKey)으로 본다. row가 없거나(evict) 전송 전 row면 재개가 아니다.
962
+ */
963
+ function settledRun(job: SettledJobMeta, ctx: ExtensionContext): { agentId?: string; resumeKey?: string } {
964
+ const snapshot = ctx.getAsyncJobSnapshot?.();
965
+ const row = [...(snapshot?.running ?? []), ...(snapshot?.recent ?? [])].find((entry) => entry.id === job.jobId);
966
+ const agentId = job.agentId ?? row?.agentId;
967
+ if (!row || !agentId || row.agentId !== agentId || typeof row.startTime !== "number") return { agentId };
968
+ const sentAt = pendingResume.get(agentId)?.sentAt ?? resumeByAgent.get(agentId)?.sentAt;
969
+ return sentAt !== undefined && row.startTime >= sentAt
970
+ ? { agentId, resumeKey: `${job.jobId}@${row.startTime}` }
971
+ : { agentId };
972
+ }
973
+ /** 처음 보는 jobId이거나, 재사용 jobId라도 아직 검수하지 않은 재개 실행이면 검수 대상이다. */
974
+ function takeUnjudged(jobs: SettledJobMeta[], ctx: ExtensionContext): SettledJobMeta[] {
975
+ return jobs.filter((job) => {
976
+ if (!judgedReviews.has(job.jobId)) {
977
+ judgedReviews.add(job.jobId);
978
+ const { resumeKey } = settledRun(job, ctx);
979
+ if (resumeKey) judgedResumeRuns.add(resumeKey);
980
+ return true;
981
+ }
982
+ const { resumeKey } = settledRun(job, ctx);
983
+ if (!resumeKey || judgedResumeRuns.has(resumeKey)) return false;
984
+ judgedResumeRuns.add(resumeKey);
985
+ return true;
986
+ });
987
+ }
956
988
  async function runPreReview(
957
989
  ctx: ExtensionContext,
958
990
  via: "async-result" | "wait" | "read proc://",
@@ -968,15 +1000,21 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
968
1000
  : undefined;
969
1001
  const todoMetadata = spawned?.guard.progress;
970
1002
  // 재개 바인딩은 그 전송 직후 관측한 정확한 새 jobId에만 소비된다. 다른 job(늦은 원 실행·stale)은 소비하지 않는다.
971
- const binding = job.agentId ? resumeByAgent.get(job.agentId) : undefined;
972
- let resumeAttemptId = binding && binding.jobId === job.jobId ? binding.attemptId : undefined;
1003
+ // 이미 소비한 jobId의 재사용은 전송 뒤 시작된 snapshot row(resumeKey)일 때만 새 실행으로 본다.
1004
+ const run = settledRun(job, ctx);
1005
+ const agentId = run.agentId;
1006
+ const newRun = !consumedJobs.has(job.jobId) || run.resumeKey !== undefined;
1007
+ const binding = agentId ? resumeByAgent.get(agentId) : undefined;
1008
+ let resumeAttemptId = binding && binding.jobId === job.jobId && newRun ? binding.attemptId : undefined;
973
1009
  // 늦은 이벤트 자체를 새 실행으로 간주하지 않는다. 현재 snapshot에서 확인한 유일한 새 job만 잇는다.
974
- if (!resumeAttemptId && job.agentId && !spawned?.identity && !consumedJobs.has(job.jobId)) {
975
- const pending = pendingResume.get(job.agentId);
1010
+ if (!resumeAttemptId && agentId && !spawned?.identity && newRun) {
1011
+ const pending = pendingResume.get(agentId);
976
1012
  const source = pending ? observedAttempts.get(pending.sourceAttemptId) : undefined;
977
1013
  const snapshot = pending ? ctx.getAsyncJobSnapshot?.() : undefined;
978
1014
  const candidates = new Set([...(snapshot?.running ?? []), ...(snapshot?.recent ?? [])]
979
- .filter((entry) => entry.agentId === job.agentId && !pending!.priorJobs.has(entry.id) && !consumedJobs.has(entry.id))
1015
+ .filter((entry) => entry.agentId === agentId && (
1016
+ (typeof entry.startTime === "number" && entry.startTime >= pending!.sentAt)
1017
+ || (!pending!.priorJobs.has(entry.id) && !consumedJobs.has(entry.id))))
980
1018
  .map((entry) => entry.id));
981
1019
  if (pending && source && candidates.size === 1 && candidates.has(job.jobId)) {
982
1020
  const attempt = source.attempt + 1;
@@ -985,7 +1023,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
985
1023
  assignmentId: source.assignmentId,
986
1024
  attempt,
987
1025
  attemptId: `${source.assignmentId}#a${attempt}`,
988
- agentId: job.agentId,
1026
+ agentId,
989
1027
  jobId: job.jobId,
990
1028
  };
991
1029
  const sourceDispatch = baseLedger.read()
@@ -1007,20 +1045,20 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1007
1045
  purpose: sourceDispatch?.purpose ?? null,
1008
1046
  });
1009
1047
  observedAttempts.set(identity.attemptId, { ...identity, name: source.name, status: "running" });
1010
- pendingResume.delete(job.agentId);
1048
+ pendingResume.delete(agentId);
1011
1049
  resumeAttemptId = identity.attemptId;
1012
1050
  }
1013
1051
  }
1014
1052
  // session_start에서 복원한 in-flight dispatch도 실제 jobId·agentId로 정산한다.
1015
1053
  const identity = resumeAttemptId ? observedAttempts.get(resumeAttemptId)
1016
1054
  : spawned?.identity ?? [...observedAttempts.values()].find((entry) =>
1017
- entry.status === "running" && entry.jobId === job.jobId && entry.agentId === job.agentId);
1055
+ entry.status === "running" && entry.jobId === job.jobId && entry.agentId === agentId);
1018
1056
  // 채널과 무관하게 이미 소비한 jobId는 다시 처리하지 않고, 같은 attempt도 한 번만 소비한다.
1019
- if (identity && !consumedJobs.has(job.jobId) && !settledAttempts.has(identity.attemptId)
1057
+ if (identity && (!consumedJobs.has(job.jobId) || resumeAttemptId !== undefined) && !settledAttempts.has(identity.attemptId)
1020
1058
  && (spawned?.agent === undefined || spawned.agent === "maker")) {
1021
1059
  consumedJobs.add(job.jobId);
1022
1060
  settledAttempts.add(identity.attemptId);
1023
- if (resumeAttemptId && job.agentId) resumeByAgent.delete(job.agentId);
1061
+ if (resumeAttemptId && agentId) resumeByAgent.delete(agentId);
1024
1062
  const status: OutcomeRecord["status"] = job.status === "cancelled" ? "cancelled" : job.hasError ? "failed" : "completed";
1025
1063
  baseLedger.append({
1026
1064
  type: "outcome",
@@ -1160,6 +1198,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1160
1198
  knownMakers.clear();
1161
1199
  routing.reset();
1162
1200
  judgedReviews.clear();
1201
+ judgedResumeRuns.clear();
1163
1202
  advisedOwnerMessages.clear();
1164
1203
  advisedMissingVerdicts.clear();
1165
1204
  pendingCheckpoints.clear();
@@ -1211,11 +1250,8 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1211
1250
  // pre-review: async-result 자동 전달이 Main에 도착하는 가장 이른 경계.
1212
1251
  // async-result는 attribution:"agent"로 오므로 attribution 필터보다 먼저 본다.
1213
1252
  if (message.role !== "custom" || message.customType !== "async-result") return;
1214
- const settled = readSettledTaskJobs(message.details, message.content).filter(
1215
- (job) => !judgedReviews.has(job.jobId),
1216
- );
1253
+ const settled = takeUnjudged(readSettledTaskJobs(message.details, message.content), ctx);
1217
1254
  if (settled.length === 0) return;
1218
- for (const job of settled) judgedReviews.add(job.jobId);
1219
1255
  await runPreReview(
1220
1256
  ctx,
1221
1257
  "async-result",
@@ -1275,7 +1311,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1275
1311
  for (const entry of observedAttempts.values()) {
1276
1312
  if (entry.agentId === target && entry.jobId) known.add(entry.jobId);
1277
1313
  }
1278
- preWriteJobs.set(event.toolCallId, known);
1314
+ preWriteJobs.set(event.toolCallId, { known, sentAt: Date.now() });
1279
1315
  }
1280
1316
  // canonical child id가 agent:// 대상이다. 표시용 task name으로 판정 대상을 추측하지 않는다.
1281
1317
  const owner = target ? knownMakerForTarget(target) : undefined;
@@ -1373,12 +1409,14 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1373
1409
  if (targetAgentId && previous && /(?:^|\n)\s*REWORK\s+task_id=\S+/i.test(message)
1374
1410
  && previous.status !== "running" && !resumeByAgent.has(targetAgentId) && !pendingResume.has(targetAgentId) && beforeWrite) {
1375
1411
  // 성공 receipt와 전송 전 snapshot이 있는 경우에만 실제 새 job을 바인딩한다.
1376
- const prior = beforeWrite;
1412
+ const { known: prior, sentAt } = beforeWrite;
1377
1413
  const snapshot = ctx.getAsyncJobSnapshot?.();
1378
1414
  const fresh = [...new Set([...(snapshot?.running ?? []), ...(snapshot?.recent ?? [])]
1379
1415
  .flatMap((job) => {
1380
- const record = job as { id?: unknown; agentId?: unknown };
1381
- if (typeof record.id !== "string" || !record.id || prior.has(record.id)) return [];
1416
+ const record = job as { id?: unknown; agentId?: unknown; startTime?: unknown };
1417
+ if (typeof record.id !== "string" || !record.id) return [];
1418
+ // 전송 전 집합의 id라도 전송 뒤 시작된 row면 같은 id를 재사용한 새 실행이다.
1419
+ if (prior.has(record.id) && !(typeof record.startTime === "number" && record.startTime >= sentAt)) return [];
1382
1420
  // 관측된 canonical agentId가 정확히 같은 job만 후보다. agentId 없는 낯선 job은 승격하지 않는다.
1383
1421
  if (record.agentId !== targetAgentId) return [];
1384
1422
  return [record.id];
@@ -1414,7 +1452,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1414
1452
  });
1415
1453
  observedAttempts.set(identity.attemptId, { ...identity, name: previous.name, status: "running" });
1416
1454
  // 바인딩에 전송 직후 관측한 정확한 새 jobId를 둔다. 다른 job이 먼저 정산돼도 이 attempt를 소비하지 않는다.
1417
- resumeByAgent.set(targetAgentId, { attemptId: identity.attemptId, jobId: fresh[0]! });
1455
+ resumeByAgent.set(targetAgentId, { attemptId: identity.attemptId, jobId: fresh[0]!, sentAt });
1418
1456
  sendAdvisory(
1419
1457
  "rework-attempt",
1420
1458
  renderAdvisory(
@@ -1426,7 +1464,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1426
1464
  );
1427
1465
  } else if (fresh.length === 0) {
1428
1466
  // 새 job이 아직 스냅샷에 없다. 성공 receipt를 보관하고 다음 기존 관측(settle)에서 실제 새 job을 묶는다.
1429
- pendingResume.set(targetAgentId, { priorJobs: prior, sourceAttemptId: previous.attemptId });
1467
+ pendingResume.set(targetAgentId, { priorJobs: prior, sourceAttemptId: previous.attemptId, sentAt });
1430
1468
  }
1431
1469
  }
1432
1470
  }
@@ -1549,11 +1587,8 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
1549
1587
  } else {
1550
1588
  return;
1551
1589
  }
1552
- const settled = readSettledTaskJobs(jobDetails, event.content).filter(
1553
- (job) => !judgedReviews.has(job.jobId),
1554
- );
1590
+ const settled = takeUnjudged(readSettledTaskJobs(jobDetails, event.content), ctx);
1555
1591
  if (settled.length === 0) return;
1556
- for (const job of settled) judgedReviews.add(job.jobId);
1557
1592
  await runPreReview(
1558
1593
  ctx,
1559
1594
  via,
@@ -1,56 +1,56 @@
1
- import type { ExtensionAPI } from "@oh-my-pi/pi-coding-agent";
2
- import { readPersistedTodoProgress, readTodoSnapshot, type TodoSnapshotItem } from "./lib/task-progress";
3
-
4
- // 여러 단계 요청에서 Main 이 todo 없이 도구만 이어 부르면 한 번 안내한다(2026-09-26: GPT 계열은 todo 를
5
- // 잘 쓰는데 Claude Main 은 생략하는 일이 잦아, 사용자가 화면에서 Main 이 무엇을 하는지 알 수 없었다).
6
- // 도구는 막지 않고, 사용자 직접 입력이 있을 때만 켜지므로 그런 입력을 받지 않는 child 세션에는 개입하지 않는다.
7
-
8
- /** todo 없이 이만큼 도구를 부르면 3단계 이상 작업으로 본다(AGENTS 「3단계 이상이면 todo」와 같은 기준). */
9
- const TOOL_CALLS_BEFORE_NUDGE = 3;
10
-
11
- const REMINDER =
12
- "이번 사용자 요청에서 todo 목록 없이 도구를 여러 번 이어 부르고 있다. 사용자는 todo 목록으로 지금 무엇을 하는지 본다. 3단계 이상이거나 사용자가 여러 항목을 요청한 작업이면 지금 todo 를 init 해서 요청 항목을 빠짐없이 나누고, 진행에 맞춰 상태를 갱신하며 이어 가라. 조회 한두 번으로 끝나는 일이면 이 안내는 무시한다.";
13
-
14
- const isActive = (items: readonly TodoSnapshotItem[]) =>
15
- items.some((item) => item.status === "pending" || item.status === "in_progress");
16
-
17
- export default function todoNudge(pi: ExtensionAPI): void {
18
- let armed = false;
19
- let usedTodo = false;
20
- let nudged = false;
21
- let calls = 0;
22
- let todos: readonly TodoSnapshotItem[] = [];
23
-
24
- pi.on("session_start", (_event, ctx) => {
25
- armed = false;
26
- todos = readPersistedTodoProgress(ctx.sessionManager.getBranch()).currentTodos;
27
- });
28
- pi.on("input", (event) => {
29
- if (event.source !== "interactive" && event.source !== "rpc") return;
30
- armed = true;
31
- usedTodo = false;
32
- nudged = false;
33
- calls = 0;
34
- });
35
- pi.on("tool_result", (event) => {
36
- if (event.toolName !== "todo" || event.isError) return;
37
- const snapshot = readTodoSnapshot(event.details);
38
- if (snapshot) todos = snapshot;
39
- });
40
- pi.on("tool_call", (event) => {
41
- if (!armed || nudged || usedTodo) return;
42
- if (event.toolName === "todo") {
43
- usedTodo = true;
44
- return;
45
- }
46
- // 이전 요청의 진행 중 목록이 있으면 이미 추적 중이다. 끼어든 짧은 지시마다 새 목록을 강요하지 않는다.
47
- if (isActive(todos)) return;
48
- calls += 1;
49
- if (calls < TOOL_CALLS_BEFORE_NUDGE) return;
50
- nudged = true;
51
- pi.sendMessage(
52
- { customType: "todo-nudge", content: REMINDER, display: false, attribution: "agent" },
53
- { deliverAs: "aside" },
54
- );
55
- });
56
- }
1
+ import type { ExtensionAPI } from "@oh-my-pi/pi-coding-agent";
2
+ import { readPersistedTodoProgress, readTodoSnapshot, type TodoSnapshotItem } from "./lib/task-progress";
3
+
4
+ // 여러 단계 요청에서 Main 이 todo 없이 도구만 이어 부르면 한 번 안내한다(2026-09-26: GPT 계열은 todo 를
5
+ // 잘 쓰는데 Claude Main 은 생략하는 일이 잦아, 사용자가 화면에서 Main 이 무엇을 하는지 알 수 없었다).
6
+ // 도구는 막지 않고, 사용자 직접 입력이 있을 때만 켜지므로 그런 입력을 받지 않는 child 세션에는 개입하지 않는다.
7
+
8
+ /** todo 없이 이만큼 도구를 부르면 3단계 이상 작업으로 본다(AGENTS 「3단계 이상이면 todo」와 같은 기준). */
9
+ const TOOL_CALLS_BEFORE_NUDGE = 3;
10
+
11
+ const REMINDER =
12
+ "이번 사용자 요청에서 todo 목록 없이 도구를 여러 번 이어 부르고 있다. 사용자는 todo 목록으로 지금 무엇을 하는지 본다. 3단계 이상이거나 사용자가 여러 항목을 요청한 작업이면 지금 todo 를 init 해서 요청 항목을 빠짐없이 나누고, 진행에 맞춰 상태를 갱신하며 이어 가라. 조회 한두 번으로 끝나는 일이면 이 안내는 무시한다.";
13
+
14
+ const isActive = (items: readonly TodoSnapshotItem[]) =>
15
+ items.some((item) => item.status === "pending" || item.status === "in_progress");
16
+
17
+ export default function todoNudge(pi: ExtensionAPI): void {
18
+ let armed = false;
19
+ let usedTodo = false;
20
+ let nudged = false;
21
+ let calls = 0;
22
+ let todos: readonly TodoSnapshotItem[] = [];
23
+
24
+ pi.on("session_start", (_event, ctx) => {
25
+ armed = false;
26
+ todos = readPersistedTodoProgress(ctx.sessionManager.getBranch()).currentTodos;
27
+ });
28
+ pi.on("input", (event) => {
29
+ if (event.source !== "interactive" && event.source !== "rpc") return;
30
+ armed = true;
31
+ usedTodo = false;
32
+ nudged = false;
33
+ calls = 0;
34
+ });
35
+ pi.on("tool_result", (event) => {
36
+ if (event.toolName !== "todo" || event.isError) return;
37
+ const snapshot = readTodoSnapshot(event.details);
38
+ if (snapshot) todos = snapshot;
39
+ });
40
+ pi.on("tool_call", (event) => {
41
+ if (!armed || nudged || usedTodo) return;
42
+ if (event.toolName === "todo") {
43
+ usedTodo = true;
44
+ return;
45
+ }
46
+ // 이전 요청의 진행 중 목록이 있으면 이미 추적 중이다. 끼어든 짧은 지시마다 새 목록을 강요하지 않는다.
47
+ if (isActive(todos)) return;
48
+ calls += 1;
49
+ if (calls < TOOL_CALLS_BEFORE_NUDGE) return;
50
+ nudged = true;
51
+ pi.sendMessage(
52
+ { customType: "todo-nudge", content: REMINDER, display: false, attribution: "agent" },
53
+ { deliverAs: "aside" },
54
+ );
55
+ });
56
+ }
@@ -1,4 +1,4 @@
1
- <!-- source-fingerprint: a40686cf83c6d49d -->
1
+ <!-- source-fingerprint: 13a662daf067abc8 -->
2
2
  # Global Agent Instructions
3
3
 
4
4
  (Model-facing English copy of the Korean source `AGENTS.md`. All user-facing prose stays Korean.)
@@ -7,7 +7,7 @@
7
7
 
8
8
  This section overrides every rule and Skill. For any user message or interjection, **reply briefly in that same turn first**, then continue with investigation, tools, delegation, or verification. Never delay the answer to wait for complete results; on a change of direction, state progress in one line and follow the new instruction. Keep the selected character voice not only in the first reply but in tool narration, failures, risks, unverified items, progress, and the final answer. Unless the user asked about procedure, do not list roles, providers, or investigation order as a kickoff report, and do not turn verification/evidence/status contracts into a routine answer format. State facts, risks, and uncertainty precisely; preserve code, commands, paths, APIs, and raw errors.
9
9
 
10
- Keep the user oriented during long turns where you chain tools alone. **When you find a cause, when a check passes or fails, and when you move to the next step**, first write that fact and the next action in one or two sentences, then call the next tool. Never chain tool calls with no prose in between. When relaying a child report you did not verify, say it is unverified.
10
+ Keep the user oriented during long turns where you chain tools alone. **When you find a cause, when a check passes or fails, and when you move to the next step**, first write that fact and the next action in one or two sentences, then call the next tool. Never chain tool calls with no prose in between. When relaying a child report you did not verify, say it is unverified. Write everything addressed to the user (immediate replies, progress, results) as visible response text, never inside reasoning/thinking: sentences inside thinking never reach the user's screen or the session record.
11
11
 
12
12
  **Observe only at the four moments below, and then completely. With no live child, background job, or `bash` `name` service, this does not apply.**
13
13
 
@@ -90,8 +90,8 @@ Alias + `교체` switches the current Main session; alias + `호출`·`불러`·
90
90
  |---|---|---|---|
91
91
  |**YUKI(유키)**|`openai-codex/gpt-6-astra`|task child on this model|switch current session only|
92
92
  |**ISANA(이사나)**|`b-ai/deepseek-v4.1-flash`|task child on this model|switch current session only|
93
- |**RIN(린)**|`anthropic/claude-opus-5-5`, 지정 계정|task child pinned to its account|pin its account, then switch current session|
94
- |**MIO(미오)**|`anthropic/claude-opus-5-5`, 지정 계정|task child pinned to its account|pin its account, then switch current session|
93
+ |**RIN(린)**|`anthropic/claude-opus-5-5`, OAuth position `0`|task child pinned to position 0|pin position 0, then switch current session|
94
+ |**MIO(미오)**|`anthropic/claude-opus-5-5`, OAuth position `1`|task child pinned to position 1|pin position 1, then switch current session|
95
95
  |**NOVA(노바)**|`opencode-go/muse-spark-1.3-contributor`|task child on this model|switch current session only|
96
96
  |**SHION(시온)**|`web6/gpt-6-pro`|`rule://web6-consult` consult (not a child)|forbidden|
97
97