claudecode-omc 4.4.5 → 4.4.6

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 (839) hide show
  1. package/.mcp.json +2 -6
  2. package/README.es.md +64 -8
  3. package/README.ja.md +64 -8
  4. package/README.ko.md +64 -8
  5. package/README.pt.md +29 -0
  6. package/README.vi.md +29 -0
  7. package/README.zh.md +64 -8
  8. package/agents/architect.md +17 -7
  9. package/agents/code-reviewer.md +6 -7
  10. package/agents/critic.md +14 -1
  11. package/agents/deep-executor.md +6 -7
  12. package/agents/designer.md +6 -8
  13. package/agents/executor.md +6 -7
  14. package/agents/planner.md +21 -0
  15. package/agents/quality-reviewer.md +6 -7
  16. package/agents/security-reviewer.md +6 -7
  17. package/agents/test-engineer.md +6 -7
  18. package/bridge/mcp-server.cjs +517 -202
  19. package/bridge/runtime-cli.cjs +1547 -0
  20. package/bridge/team-bridge.cjs +348 -92
  21. package/bridge/{gemini-server.cjs → team-mcp.cjs} +10914 -10240
  22. package/dist/__tests__/auto-update.test.js +1 -1
  23. package/dist/__tests__/auto-update.test.js.map +1 -1
  24. package/dist/__tests__/cli-win32-warning.test.d.ts +2 -0
  25. package/dist/__tests__/cli-win32-warning.test.d.ts.map +1 -0
  26. package/dist/__tests__/cli-win32-warning.test.js +46 -0
  27. package/dist/__tests__/cli-win32-warning.test.js.map +1 -0
  28. package/dist/__tests__/codex-callsite-normalization.test.js +112 -0
  29. package/dist/__tests__/consensus-execution-handoff.test.d.ts +2 -0
  30. package/dist/__tests__/consensus-execution-handoff.test.d.ts.map +1 -1
  31. package/dist/__tests__/consensus-execution-handoff.test.js +48 -0
  32. package/dist/__tests__/consensus-execution-handoff.test.js.map +1 -1
  33. package/dist/__tests__/context-safety.test.d.ts +2 -0
  34. package/dist/__tests__/context-safety.test.d.ts.map +1 -0
  35. package/dist/__tests__/context-safety.test.js +59 -0
  36. package/dist/__tests__/context-safety.test.js.map +1 -0
  37. package/dist/__tests__/hooks.test.js +15 -0
  38. package/dist/__tests__/hooks.test.js.map +1 -1
  39. package/dist/__tests__/hud/call-counts.test.js +0 -3
  40. package/dist/__tests__/hud/call-counts.test.js.map +1 -1
  41. package/dist/__tests__/hud/defaults.test.js +3 -5
  42. package/dist/__tests__/hud/defaults.test.js.map +1 -1
  43. package/dist/__tests__/hud/prompt-time.test.d.ts +2 -0
  44. package/dist/__tests__/hud/prompt-time.test.d.ts.map +1 -0
  45. package/dist/__tests__/hud/prompt-time.test.js +24 -0
  46. package/dist/__tests__/hud/prompt-time.test.js.map +1 -0
  47. package/dist/__tests__/hud/render.test.js +0 -1
  48. package/dist/__tests__/hud/render.test.js.map +1 -1
  49. package/dist/__tests__/hud/version-display.test.js +1 -0
  50. package/dist/__tests__/hud/version-display.test.js.map +1 -1
  51. package/dist/__tests__/hud/windows-platform.test.js +0 -4
  52. package/dist/__tests__/hud/windows-platform.test.js.map +1 -1
  53. package/dist/__tests__/hud-windows.test.js +5 -3
  54. package/dist/__tests__/hud-windows.test.js.map +1 -1
  55. package/dist/__tests__/installer-hud-skip.test.js +12 -2
  56. package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
  57. package/dist/__tests__/job-management-sqlite.test.js +0 -15
  58. package/dist/__tests__/job-management-sqlite.test.js.map +1 -1
  59. package/dist/__tests__/job-management.test.js +0 -16
  60. package/dist/__tests__/job-management.test.js.map +1 -1
  61. package/dist/__tests__/load-agent-prompt.test.js +0 -23
  62. package/dist/__tests__/load-agent-prompt.test.js.map +1 -1
  63. package/dist/__tests__/model-routing.test.js +3 -2
  64. package/dist/__tests__/model-routing.test.js.map +1 -1
  65. package/dist/__tests__/omc-tools-server-interop.test.js +1 -1
  66. package/dist/__tests__/omc-tools-server-interop.test.js.map +1 -1
  67. package/dist/__tests__/pre-tool-enforcer.test.d.ts +2 -0
  68. package/dist/__tests__/pre-tool-enforcer.test.d.ts.map +1 -0
  69. package/dist/__tests__/pre-tool-enforcer.test.js +194 -0
  70. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -0
  71. package/dist/__tests__/prompt-injection.test.js +0 -26
  72. package/dist/__tests__/prompt-injection.test.js.map +1 -1
  73. package/dist/__tests__/purge-stale-cache.test.js +3 -2
  74. package/dist/__tests__/purge-stale-cache.test.js.map +1 -1
  75. package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts +2 -0
  76. package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts.map +1 -0
  77. package/dist/__tests__/run-cjs-graceful-fallback.test.js +167 -0
  78. package/dist/__tests__/run-cjs-graceful-fallback.test.js.map +1 -0
  79. package/dist/__tests__/session-start-cache-cleanup.test.d.ts +2 -0
  80. package/dist/__tests__/session-start-cache-cleanup.test.d.ts.map +1 -0
  81. package/dist/__tests__/session-start-cache-cleanup.test.js +150 -0
  82. package/dist/__tests__/session-start-cache-cleanup.test.js.map +1 -0
  83. package/dist/__tests__/skills.test.js +10 -8
  84. package/dist/__tests__/skills.test.js.map +1 -1
  85. package/dist/__tests__/team-server-validation.test.d.ts +2 -0
  86. package/dist/__tests__/team-server-validation.test.d.ts.map +1 -0
  87. package/dist/__tests__/team-server-validation.test.js +122 -0
  88. package/dist/__tests__/team-server-validation.test.js.map +1 -0
  89. package/dist/agents/index.d.ts +0 -1
  90. package/dist/agents/index.d.ts.map +1 -1
  91. package/dist/agents/index.js +0 -2
  92. package/dist/agents/index.js.map +1 -1
  93. package/dist/agents/prompt-helpers.d.ts +74 -0
  94. package/dist/agents/prompt-helpers.d.ts.map +1 -0
  95. package/dist/agents/prompt-helpers.js +187 -0
  96. package/dist/agents/prompt-helpers.js.map +1 -0
  97. package/dist/agents/utils.d.ts +1 -5
  98. package/dist/agents/utils.d.ts.map +1 -1
  99. package/dist/agents/utils.js +1 -34
  100. package/dist/agents/utils.js.map +1 -1
  101. package/dist/cli/__tests__/launch.test.d.ts +1 -2
  102. package/dist/cli/__tests__/launch.test.d.ts.map +1 -1
  103. package/dist/cli/__tests__/launch.test.js +442 -48
  104. package/dist/cli/__tests__/launch.test.js.map +1 -1
  105. package/dist/cli/__tests__/teleport-help.test.d.ts +2 -0
  106. package/dist/cli/__tests__/teleport-help.test.d.ts.map +1 -0
  107. package/dist/cli/__tests__/teleport-help.test.js +17 -0
  108. package/dist/cli/__tests__/teleport-help.test.js.map +1 -0
  109. package/dist/cli/commands/teleport.d.ts +2 -1
  110. package/dist/cli/commands/teleport.d.ts.map +1 -1
  111. package/dist/cli/commands/teleport.js +6 -3
  112. package/dist/cli/commands/teleport.js.map +1 -1
  113. package/dist/cli/index.js +40 -290
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/launch.d.ts +83 -3
  116. package/dist/cli/launch.d.ts.map +1 -1
  117. package/dist/cli/launch.js +213 -48
  118. package/dist/cli/launch.js.map +1 -1
  119. package/dist/cli/win32-warning.d.ts +6 -0
  120. package/dist/cli/win32-warning.d.ts.map +1 -0
  121. package/dist/cli/win32-warning.js +15 -0
  122. package/dist/cli/win32-warning.js.map +1 -0
  123. package/dist/config/loader.d.ts +9 -1
  124. package/dist/config/loader.d.ts.map +1 -1
  125. package/dist/config/loader.js +29 -19
  126. package/dist/config/loader.js.map +1 -1
  127. package/dist/config/models.d.ts +33 -0
  128. package/dist/config/models.d.ts.map +1 -0
  129. package/dist/config/models.js +49 -0
  130. package/dist/config/models.js.map +1 -0
  131. package/dist/constants/names.d.ts +2 -0
  132. package/dist/constants/names.d.ts.map +1 -1
  133. package/dist/constants/names.js +2 -0
  134. package/dist/constants/names.js.map +1 -1
  135. package/dist/features/auto-update.d.ts.map +1 -1
  136. package/dist/features/auto-update.js +21 -11
  137. package/dist/features/auto-update.js.map +1 -1
  138. package/dist/features/background-agent/manager.d.ts.map +1 -1
  139. package/dist/features/background-agent/manager.js +1 -2
  140. package/dist/features/background-agent/manager.js.map +1 -1
  141. package/dist/features/boulder-state/storage.d.ts.map +1 -1
  142. package/dist/features/boulder-state/storage.js +9 -5
  143. package/dist/features/boulder-state/storage.js.map +1 -1
  144. package/dist/features/boulder-state/types.d.ts +4 -0
  145. package/dist/features/boulder-state/types.d.ts.map +1 -1
  146. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  147. package/dist/features/builtin-skills/skills.js +25 -78
  148. package/dist/features/builtin-skills/skills.js.map +1 -1
  149. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  150. package/dist/features/delegation-enforcer.js +4 -1
  151. package/dist/features/delegation-enforcer.js.map +1 -1
  152. package/dist/features/delegation-routing/__tests__/resolver.test.js +47 -122
  153. package/dist/features/delegation-routing/__tests__/resolver.test.js.map +1 -1
  154. package/dist/features/delegation-routing/resolver.d.ts.map +1 -1
  155. package/dist/features/delegation-routing/resolver.js +24 -47
  156. package/dist/features/delegation-routing/resolver.js.map +1 -1
  157. package/dist/features/delegation-routing/types.d.ts.map +1 -1
  158. package/dist/features/delegation-routing/types.js +2 -0
  159. package/dist/features/delegation-routing/types.js.map +1 -1
  160. package/dist/features/model-routing/external-model-policy.d.ts.map +1 -1
  161. package/dist/features/model-routing/external-model-policy.js.map +1 -1
  162. package/dist/features/model-routing/router.d.ts.map +1 -1
  163. package/dist/features/model-routing/router.js +12 -2
  164. package/dist/features/model-routing/router.js.map +1 -1
  165. package/dist/features/model-routing/types.d.ts +5 -1
  166. package/dist/features/model-routing/types.d.ts.map +1 -1
  167. package/dist/features/model-routing/types.js +7 -6
  168. package/dist/features/model-routing/types.js.map +1 -1
  169. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  170. package/dist/features/rate-limit-wait/daemon.js +40 -4
  171. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  172. package/dist/features/task-decomposer/index.js +14 -4
  173. package/dist/features/task-decomposer/index.js.map +1 -1
  174. package/dist/hooks/__tests__/bridge-openclaw.test.d.ts +2 -0
  175. package/dist/hooks/__tests__/bridge-openclaw.test.d.ts.map +1 -0
  176. package/dist/hooks/__tests__/bridge-openclaw.test.js +124 -0
  177. package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -0
  178. package/dist/hooks/__tests__/bridge-security.test.js +1 -1
  179. package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
  180. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  181. package/dist/hooks/auto-slash-command/executor.js +38 -61
  182. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  183. package/dist/hooks/bridge.d.ts +11 -0
  184. package/dist/hooks/bridge.d.ts.map +1 -1
  185. package/dist/hooks/bridge.js +154 -82
  186. package/dist/hooks/bridge.js.map +1 -1
  187. package/dist/hooks/comment-checker/index.d.ts.map +1 -1
  188. package/dist/hooks/comment-checker/index.js +3 -1
  189. package/dist/hooks/comment-checker/index.js.map +1 -1
  190. package/dist/hooks/keyword-detector/__tests__/index.test.js +348 -1
  191. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  192. package/dist/hooks/keyword-detector/index.d.ts +29 -0
  193. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  194. package/dist/hooks/keyword-detector/index.js +123 -1
  195. package/dist/hooks/keyword-detector/index.js.map +1 -1
  196. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +40 -0
  197. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
  198. package/dist/hooks/mode-registry/index.d.ts.map +1 -1
  199. package/dist/hooks/mode-registry/index.js +135 -52
  200. package/dist/hooks/mode-registry/index.js.map +1 -1
  201. package/dist/hooks/notepad/index.d.ts.map +1 -1
  202. package/dist/hooks/notepad/index.js +5 -3
  203. package/dist/hooks/notepad/index.js.map +1 -1
  204. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts +2 -0
  205. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts.map +1 -0
  206. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js +73 -0
  207. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js.map +1 -0
  208. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +89 -13
  209. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
  210. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts +2 -0
  211. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts.map +1 -0
  212. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js +156 -0
  213. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -0
  214. package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts +2 -3
  215. package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts.map +1 -1
  216. package/dist/hooks/persistent-mode/idle-cooldown.test.js +19 -4
  217. package/dist/hooks/persistent-mode/idle-cooldown.test.js.map +1 -1
  218. package/dist/hooks/persistent-mode/index.d.ts +2 -2
  219. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  220. package/dist/hooks/persistent-mode/index.js +144 -26
  221. package/dist/hooks/persistent-mode/index.js.map +1 -1
  222. package/dist/hooks/plugin-patterns/index.d.ts.map +1 -1
  223. package/dist/hooks/plugin-patterns/index.js +22 -31
  224. package/dist/hooks/plugin-patterns/index.js.map +1 -1
  225. package/dist/hooks/pre-compact/index.js +1 -1
  226. package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -1
  227. package/dist/hooks/preemptive-compaction/index.js +3 -1
  228. package/dist/hooks/preemptive-compaction/index.js.map +1 -1
  229. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  230. package/dist/hooks/project-memory/index.js +9 -0
  231. package/dist/hooks/project-memory/index.js.map +1 -1
  232. package/dist/hooks/project-memory/learner.d.ts.map +1 -1
  233. package/dist/hooks/project-memory/learner.js +107 -85
  234. package/dist/hooks/project-memory/learner.js.map +1 -1
  235. package/dist/hooks/project-memory/storage.d.ts.map +1 -1
  236. package/dist/hooks/project-memory/storage.js +3 -2
  237. package/dist/hooks/project-memory/storage.js.map +1 -1
  238. package/dist/hooks/recovery/context-window.d.ts +4 -0
  239. package/dist/hooks/recovery/context-window.d.ts.map +1 -1
  240. package/dist/hooks/recovery/context-window.js +22 -1
  241. package/dist/hooks/recovery/context-window.js.map +1 -1
  242. package/dist/hooks/recovery/session-recovery.js +1 -1
  243. package/dist/hooks/recovery/session-recovery.js.map +1 -1
  244. package/dist/hooks/session-end/index.d.ts.map +1 -1
  245. package/dist/hooks/session-end/index.js +13 -22
  246. package/dist/hooks/session-end/index.js.map +1 -1
  247. package/dist/hooks/setup/__tests__/windows-patch.test.d.ts +2 -0
  248. package/dist/hooks/setup/__tests__/windows-patch.test.d.ts.map +1 -0
  249. package/dist/hooks/setup/__tests__/windows-patch.test.js +110 -0
  250. package/dist/hooks/setup/__tests__/windows-patch.test.js.map +1 -0
  251. package/dist/hooks/setup/index.d.ts +18 -0
  252. package/dist/hooks/setup/index.d.ts.map +1 -1
  253. package/dist/hooks/setup/index.js +59 -1
  254. package/dist/hooks/setup/index.js.map +1 -1
  255. package/dist/hooks/skill-bridge.cjs +1 -0
  256. package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts +2 -0
  257. package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts.map +1 -0
  258. package/dist/hooks/skill-state/__tests__/skill-state.test.js +301 -0
  259. package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -0
  260. package/dist/hooks/skill-state/index.d.ts +79 -0
  261. package/dist/hooks/skill-state/index.d.ts.map +1 -0
  262. package/dist/hooks/skill-state/index.js +245 -0
  263. package/dist/hooks/skill-state/index.js.map +1 -0
  264. package/dist/hooks/team-pipeline/state.d.ts.map +1 -1
  265. package/dist/hooks/team-pipeline/state.js +5 -0
  266. package/dist/hooks/team-pipeline/state.js.map +1 -1
  267. package/dist/hooks/todo-continuation/index.d.ts +17 -0
  268. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  269. package/dist/hooks/todo-continuation/index.js +44 -2
  270. package/dist/hooks/todo-continuation/index.js.map +1 -1
  271. package/dist/hud/elements/call-counts.d.ts.map +1 -1
  272. package/dist/hud/elements/call-counts.js +6 -4
  273. package/dist/hud/elements/call-counts.js.map +1 -1
  274. package/dist/hud/elements/index.d.ts +1 -0
  275. package/dist/hud/elements/index.d.ts.map +1 -1
  276. package/dist/hud/elements/index.js +1 -0
  277. package/dist/hud/elements/index.js.map +1 -1
  278. package/dist/hud/elements/prompt-time.d.ts +13 -0
  279. package/dist/hud/elements/prompt-time.d.ts.map +1 -0
  280. package/dist/hud/elements/prompt-time.js +21 -0
  281. package/dist/hud/elements/prompt-time.js.map +1 -0
  282. package/dist/hud/index.d.ts +2 -1
  283. package/dist/hud/index.d.ts.map +1 -1
  284. package/dist/hud/index.js +40 -215
  285. package/dist/hud/index.js.map +1 -1
  286. package/dist/hud/render.d.ts.map +1 -1
  287. package/dist/hud/render.js +7 -108
  288. package/dist/hud/render.js.map +1 -1
  289. package/dist/hud/state.d.ts.map +1 -1
  290. package/dist/hud/state.js +4 -3
  291. package/dist/hud/state.js.map +1 -1
  292. package/dist/hud/stdin.d.ts +10 -0
  293. package/dist/hud/stdin.d.ts.map +1 -1
  294. package/dist/hud/stdin.js +43 -0
  295. package/dist/hud/stdin.js.map +1 -1
  296. package/dist/hud/types.d.ts +6 -18
  297. package/dist/hud/types.d.ts.map +1 -1
  298. package/dist/hud/types.js +6 -46
  299. package/dist/hud/types.js.map +1 -1
  300. package/dist/index.d.ts +1 -1
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +2 -11
  303. package/dist/index.js.map +1 -1
  304. package/dist/installer/hooks.d.ts +5 -0
  305. package/dist/installer/hooks.d.ts.map +1 -1
  306. package/dist/installer/hooks.js +8 -0
  307. package/dist/installer/hooks.js.map +1 -1
  308. package/dist/installer/index.d.ts.map +1 -1
  309. package/dist/installer/index.js +26 -11
  310. package/dist/installer/index.js.map +1 -1
  311. package/dist/interop/omx-team-state.d.ts.map +1 -1
  312. package/dist/interop/omx-team-state.js +38 -6
  313. package/dist/interop/omx-team-state.js.map +1 -1
  314. package/dist/interop/shared-state.d.ts.map +1 -1
  315. package/dist/interop/shared-state.js +58 -7
  316. package/dist/interop/shared-state.js.map +1 -1
  317. package/dist/lib/__tests__/worktree-paths.test.js +250 -1
  318. package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
  319. package/dist/lib/job-state-db.d.ts +150 -0
  320. package/dist/lib/job-state-db.d.ts.map +1 -0
  321. package/dist/lib/job-state-db.js +650 -0
  322. package/dist/lib/job-state-db.js.map +1 -0
  323. package/dist/lib/mode-names.d.ts +46 -0
  324. package/dist/lib/mode-names.d.ts.map +1 -0
  325. package/dist/lib/mode-names.js +73 -0
  326. package/dist/lib/mode-names.js.map +1 -0
  327. package/dist/lib/session-isolation.d.ts +32 -0
  328. package/dist/lib/session-isolation.d.ts.map +1 -0
  329. package/dist/lib/session-isolation.js +39 -0
  330. package/dist/lib/session-isolation.js.map +1 -0
  331. package/dist/lib/worktree-paths.d.ts +38 -8
  332. package/dist/lib/worktree-paths.d.ts.map +1 -1
  333. package/dist/lib/worktree-paths.js +124 -56
  334. package/dist/lib/worktree-paths.js.map +1 -1
  335. package/dist/mcp/__tests__/team-cleanup.test.d.ts +11 -0
  336. package/dist/mcp/__tests__/team-cleanup.test.d.ts.map +1 -0
  337. package/dist/mcp/__tests__/team-cleanup.test.js +228 -0
  338. package/dist/mcp/__tests__/team-cleanup.test.js.map +1 -0
  339. package/dist/mcp/cli-detection.d.ts +4 -8
  340. package/dist/mcp/cli-detection.d.ts.map +1 -1
  341. package/dist/mcp/cli-detection.js +5 -8
  342. package/dist/mcp/cli-detection.js.map +1 -1
  343. package/dist/mcp/codex-request-normalizer.js +59 -0
  344. package/dist/mcp/codex-server.js +16 -4
  345. package/dist/mcp/codex-standalone-server.js +13 -4
  346. package/dist/mcp/index.d.ts +2 -4
  347. package/dist/mcp/index.d.ts.map +1 -1
  348. package/dist/mcp/index.js +1 -5
  349. package/dist/mcp/index.js.map +1 -1
  350. package/dist/mcp/job-management.d.ts.map +1 -1
  351. package/dist/mcp/job-management.js +11 -9
  352. package/dist/mcp/job-management.js.map +1 -1
  353. package/dist/mcp/job-state-db.d.ts +1 -149
  354. package/dist/mcp/job-state-db.d.ts.map +1 -1
  355. package/dist/mcp/job-state-db.js +2 -649
  356. package/dist/mcp/job-state-db.js.map +1 -1
  357. package/dist/mcp/mcp-config.d.ts +1 -1
  358. package/dist/mcp/mcp-config.js +1 -1
  359. package/dist/mcp/prompt-injection.d.ts +14 -76
  360. package/dist/mcp/prompt-injection.d.ts.map +1 -1
  361. package/dist/mcp/prompt-injection.js +34 -175
  362. package/dist/mcp/prompt-injection.js.map +1 -1
  363. package/dist/mcp/standalone-server.js +2 -0
  364. package/dist/mcp/standalone-server.js.map +1 -1
  365. package/dist/mcp/team-server.d.ts +16 -0
  366. package/dist/mcp/team-server.d.ts.map +1 -0
  367. package/dist/mcp/team-server.js +356 -0
  368. package/dist/mcp/team-server.js.map +1 -0
  369. package/dist/notifications/__tests__/formatter.test.js +62 -0
  370. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  371. package/dist/notifications/__tests__/hook-config.test.d.ts +14 -0
  372. package/dist/notifications/__tests__/hook-config.test.d.ts.map +1 -0
  373. package/dist/notifications/__tests__/hook-config.test.js +210 -0
  374. package/dist/notifications/__tests__/hook-config.test.js.map +1 -0
  375. package/dist/notifications/__tests__/platform-gating.test.d.ts +12 -0
  376. package/dist/notifications/__tests__/platform-gating.test.d.ts.map +1 -0
  377. package/dist/notifications/__tests__/platform-gating.test.js +140 -0
  378. package/dist/notifications/__tests__/platform-gating.test.js.map +1 -0
  379. package/dist/notifications/__tests__/template-engine.test.d.ts +13 -0
  380. package/dist/notifications/__tests__/template-engine.test.d.ts.map +1 -0
  381. package/dist/notifications/__tests__/template-engine.test.js +378 -0
  382. package/dist/notifications/__tests__/template-engine.test.js.map +1 -0
  383. package/dist/notifications/config.d.ts.map +1 -1
  384. package/dist/notifications/config.js +54 -18
  385. package/dist/notifications/config.js.map +1 -1
  386. package/dist/notifications/dispatcher.d.ts +2 -2
  387. package/dist/notifications/dispatcher.d.ts.map +1 -1
  388. package/dist/notifications/dispatcher.js +10 -6
  389. package/dist/notifications/dispatcher.js.map +1 -1
  390. package/dist/notifications/formatter.d.ts.map +1 -1
  391. package/dist/notifications/formatter.js +22 -0
  392. package/dist/notifications/formatter.js.map +1 -1
  393. package/dist/notifications/hook-config-types.d.ts +44 -0
  394. package/dist/notifications/hook-config-types.d.ts.map +1 -0
  395. package/dist/notifications/hook-config-types.js +8 -0
  396. package/dist/notifications/hook-config-types.js.map +1 -0
  397. package/dist/notifications/hook-config.d.ts +36 -0
  398. package/dist/notifications/hook-config.d.ts.map +1 -0
  399. package/dist/notifications/hook-config.js +95 -0
  400. package/dist/notifications/hook-config.js.map +1 -0
  401. package/dist/notifications/index.d.ts +3 -0
  402. package/dist/notifications/index.d.ts.map +1 -1
  403. package/dist/notifications/index.js +31 -3
  404. package/dist/notifications/index.js.map +1 -1
  405. package/dist/notifications/reply-listener.d.ts.map +1 -1
  406. package/dist/notifications/reply-listener.js +1 -0
  407. package/dist/notifications/reply-listener.js.map +1 -1
  408. package/dist/notifications/session-registry.d.ts.map +1 -1
  409. package/dist/notifications/session-registry.js +13 -5
  410. package/dist/notifications/session-registry.js.map +1 -1
  411. package/dist/notifications/template-engine.d.ts +34 -0
  412. package/dist/notifications/template-engine.d.ts.map +1 -0
  413. package/dist/notifications/template-engine.js +248 -0
  414. package/dist/notifications/template-engine.js.map +1 -0
  415. package/dist/notifications/types.d.ts +0 -2
  416. package/dist/notifications/types.d.ts.map +1 -1
  417. package/dist/openclaw/__tests__/config.test.d.ts +2 -0
  418. package/dist/openclaw/__tests__/config.test.d.ts.map +1 -0
  419. package/dist/openclaw/__tests__/config.test.js +200 -0
  420. package/dist/openclaw/__tests__/config.test.js.map +1 -0
  421. package/dist/openclaw/__tests__/dispatcher.test.d.ts +2 -0
  422. package/dist/openclaw/__tests__/dispatcher.test.d.ts.map +1 -0
  423. package/dist/openclaw/__tests__/dispatcher.test.js +348 -0
  424. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -0
  425. package/dist/openclaw/__tests__/index.test.d.ts +2 -0
  426. package/dist/openclaw/__tests__/index.test.d.ts.map +1 -0
  427. package/dist/openclaw/__tests__/index.test.js +235 -0
  428. package/dist/openclaw/__tests__/index.test.js.map +1 -0
  429. package/dist/openclaw/config.d.ts +33 -0
  430. package/dist/openclaw/config.d.ts.map +1 -0
  431. package/dist/openclaw/config.js +83 -0
  432. package/dist/openclaw/config.js.map +1 -0
  433. package/dist/openclaw/dispatcher.d.ts +47 -0
  434. package/dist/openclaw/dispatcher.d.ts.map +1 -0
  435. package/dist/openclaw/dispatcher.js +138 -0
  436. package/dist/openclaw/dispatcher.js.map +1 -0
  437. package/dist/openclaw/index.d.ts +25 -0
  438. package/dist/openclaw/index.d.ts.map +1 -0
  439. package/dist/openclaw/index.js +132 -0
  440. package/dist/openclaw/index.js.map +1 -0
  441. package/dist/openclaw/types.d.ts +102 -0
  442. package/dist/openclaw/types.d.ts.map +1 -0
  443. package/dist/openclaw/types.js +8 -0
  444. package/dist/openclaw/types.js.map +1 -0
  445. package/dist/platform/index.d.ts +5 -0
  446. package/dist/platform/index.d.ts.map +1 -1
  447. package/dist/platform/index.js +17 -0
  448. package/dist/platform/index.js.map +1 -1
  449. package/dist/platform/process-utils.d.ts.map +1 -1
  450. package/dist/platform/process-utils.js +55 -9
  451. package/dist/platform/process-utils.js.map +1 -1
  452. package/dist/shared/types.d.ts +7 -5
  453. package/dist/shared/types.d.ts.map +1 -1
  454. package/dist/team/__tests__/bridge-integration.test.js +10 -8
  455. package/dist/team/__tests__/bridge-integration.test.js.map +1 -1
  456. package/dist/team/__tests__/edge-cases.test.js +40 -29
  457. package/dist/team/__tests__/edge-cases.test.js.map +1 -1
  458. package/dist/team/__tests__/idle-nudge.test.d.ts +11 -0
  459. package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
  460. package/dist/team/__tests__/idle-nudge.test.js +282 -0
  461. package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
  462. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js +2 -2
  463. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js.map +1 -1
  464. package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts +2 -0
  465. package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts.map +1 -0
  466. package/dist/team/__tests__/mcp-team-bridge.usage.test.js +49 -0
  467. package/dist/team/__tests__/mcp-team-bridge.usage.test.js.map +1 -0
  468. package/dist/team/__tests__/model-contract.test.d.ts +2 -0
  469. package/dist/team/__tests__/model-contract.test.d.ts.map +1 -0
  470. package/dist/team/__tests__/model-contract.test.js +121 -0
  471. package/dist/team/__tests__/model-contract.test.js.map +1 -0
  472. package/dist/team/__tests__/phase-controller.test.d.ts +2 -0
  473. package/dist/team/__tests__/phase-controller.test.d.ts.map +1 -0
  474. package/dist/team/__tests__/phase-controller.test.js +45 -0
  475. package/dist/team/__tests__/phase-controller.test.js.map +1 -0
  476. package/dist/team/__tests__/runtime-assign.test.d.ts +2 -0
  477. package/dist/team/__tests__/runtime-assign.test.d.ts.map +1 -0
  478. package/dist/team/__tests__/runtime-assign.test.js +43 -0
  479. package/dist/team/__tests__/runtime-assign.test.js.map +1 -0
  480. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts +2 -0
  481. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts.map +1 -0
  482. package/dist/team/__tests__/runtime-gemini-prompt.test.js +153 -0
  483. package/dist/team/__tests__/runtime-gemini-prompt.test.js.map +1 -0
  484. package/dist/team/__tests__/runtime-prompt-mode.test.d.ts +2 -0
  485. package/dist/team/__tests__/runtime-prompt-mode.test.d.ts.map +1 -0
  486. package/dist/team/__tests__/runtime-prompt-mode.test.js +162 -0
  487. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -0
  488. package/dist/team/__tests__/runtime.test.d.ts +2 -0
  489. package/dist/team/__tests__/runtime.test.d.ts.map +1 -0
  490. package/dist/team/__tests__/runtime.test.js +37 -0
  491. package/dist/team/__tests__/runtime.test.js.map +1 -0
  492. package/dist/team/__tests__/task-file-ops.test.js +63 -59
  493. package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
  494. package/dist/team/__tests__/team-name.test.d.ts +2 -0
  495. package/dist/team/__tests__/team-name.test.d.ts.map +1 -0
  496. package/dist/team/__tests__/team-name.test.js +18 -0
  497. package/dist/team/__tests__/team-name.test.js.map +1 -0
  498. package/dist/team/__tests__/team-status.test.js +52 -6
  499. package/dist/team/__tests__/team-status.test.js.map +1 -1
  500. package/dist/team/__tests__/tmux-comm.test.d.ts +2 -0
  501. package/dist/team/__tests__/tmux-comm.test.d.ts.map +1 -0
  502. package/dist/team/__tests__/tmux-comm.test.js +26 -0
  503. package/dist/team/__tests__/tmux-comm.test.js.map +1 -0
  504. package/dist/team/__tests__/tmux-session.create-team.test.d.ts +2 -0
  505. package/dist/team/__tests__/tmux-session.create-team.test.d.ts.map +1 -0
  506. package/dist/team/__tests__/tmux-session.create-team.test.js +104 -0
  507. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -0
  508. package/dist/team/__tests__/tmux-session.spawn.test.d.ts +2 -0
  509. package/dist/team/__tests__/tmux-session.spawn.test.d.ts.map +1 -0
  510. package/dist/team/__tests__/tmux-session.spawn.test.js +61 -0
  511. package/dist/team/__tests__/tmux-session.spawn.test.js.map +1 -0
  512. package/dist/team/__tests__/tmux-session.test.js +161 -2
  513. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  514. package/dist/team/__tests__/worker-bootstrap.test.d.ts +2 -0
  515. package/dist/team/__tests__/worker-bootstrap.test.d.ts.map +1 -0
  516. package/dist/team/__tests__/worker-bootstrap.test.js +58 -0
  517. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -0
  518. package/dist/team/bridge-entry.d.ts.map +1 -1
  519. package/dist/team/bridge-entry.js +4 -0
  520. package/dist/team/bridge-entry.js.map +1 -1
  521. package/dist/team/capabilities.d.ts.map +1 -1
  522. package/dist/team/capabilities.js +3 -0
  523. package/dist/team/capabilities.js.map +1 -1
  524. package/dist/team/cli-detection.d.ts +9 -0
  525. package/dist/team/cli-detection.d.ts.map +1 -0
  526. package/dist/team/cli-detection.js +29 -0
  527. package/dist/team/cli-detection.js.map +1 -0
  528. package/dist/team/idle-nudge.d.ts +53 -0
  529. package/dist/team/idle-nudge.d.ts.map +1 -0
  530. package/dist/team/idle-nudge.js +124 -0
  531. package/dist/team/idle-nudge.js.map +1 -0
  532. package/dist/team/inbox-outbox.d.ts.map +1 -1
  533. package/dist/team/inbox-outbox.js +7 -3
  534. package/dist/team/inbox-outbox.js.map +1 -1
  535. package/dist/team/index.d.ts +14 -1
  536. package/dist/team/index.d.ts.map +1 -1
  537. package/dist/team/index.js +12 -1
  538. package/dist/team/index.js.map +1 -1
  539. package/dist/team/mcp-team-bridge.d.ts +9 -0
  540. package/dist/team/mcp-team-bridge.d.ts.map +1 -1
  541. package/dist/team/mcp-team-bridge.js +82 -3
  542. package/dist/team/mcp-team-bridge.js.map +1 -1
  543. package/dist/team/model-contract.d.ts +37 -0
  544. package/dist/team/model-contract.d.ts.map +1 -0
  545. package/dist/team/model-contract.js +139 -0
  546. package/dist/team/model-contract.js.map +1 -0
  547. package/dist/team/phase-controller.d.ts +33 -0
  548. package/dist/team/phase-controller.d.ts.map +1 -0
  549. package/dist/team/phase-controller.js +79 -0
  550. package/dist/team/phase-controller.js.map +1 -0
  551. package/dist/team/runtime-cli.d.ts +9 -0
  552. package/dist/team/runtime-cli.d.ts.map +1 -0
  553. package/dist/team/runtime-cli.js +188 -0
  554. package/dist/team/runtime-cli.js.map +1 -0
  555. package/dist/team/runtime.d.ts +95 -0
  556. package/dist/team/runtime.d.ts.map +1 -0
  557. package/dist/team/runtime.js +692 -0
  558. package/dist/team/runtime.js.map +1 -0
  559. package/dist/team/state-paths.d.ts +72 -0
  560. package/dist/team/state-paths.d.ts.map +1 -0
  561. package/dist/team/state-paths.js +87 -0
  562. package/dist/team/state-paths.js.map +1 -0
  563. package/dist/team/task-file-ops.d.ts +27 -7
  564. package/dist/team/task-file-ops.d.ts.map +1 -1
  565. package/dist/team/task-file-ops.js +116 -55
  566. package/dist/team/task-file-ops.js.map +1 -1
  567. package/dist/team/team-name.d.ts +2 -0
  568. package/dist/team/team-name.d.ts.map +1 -0
  569. package/dist/team/team-name.js +8 -0
  570. package/dist/team/team-name.js.map +1 -0
  571. package/dist/team/team-registration.d.ts +1 -1
  572. package/dist/team/team-registration.d.ts.map +1 -1
  573. package/dist/team/team-registration.js.map +1 -1
  574. package/dist/team/team-status.d.ts +11 -1
  575. package/dist/team/team-status.d.ts.map +1 -1
  576. package/dist/team/team-status.js +32 -3
  577. package/dist/team/team-status.js.map +1 -1
  578. package/dist/team/tmux-comm.d.ts +36 -0
  579. package/dist/team/tmux-comm.d.ts.map +1 -0
  580. package/dist/team/tmux-comm.js +115 -0
  581. package/dist/team/tmux-comm.js.map +1 -0
  582. package/dist/team/tmux-session.d.ts +92 -0
  583. package/dist/team/tmux-session.d.ts.map +1 -1
  584. package/dist/team/tmux-session.js +533 -2
  585. package/dist/team/tmux-session.js.map +1 -1
  586. package/dist/team/types.d.ts +10 -3
  587. package/dist/team/types.d.ts.map +1 -1
  588. package/dist/team/unified-team.d.ts.map +1 -1
  589. package/dist/team/unified-team.js +13 -3
  590. package/dist/team/unified-team.js.map +1 -1
  591. package/dist/team/worker-bootstrap.d.ts +39 -0
  592. package/dist/team/worker-bootstrap.d.ts.map +1 -0
  593. package/dist/team/worker-bootstrap.js +117 -0
  594. package/dist/team/worker-bootstrap.js.map +1 -0
  595. package/dist/team/worker-health.d.ts.map +1 -1
  596. package/dist/team/worker-health.js +15 -3
  597. package/dist/team/worker-health.js.map +1 -1
  598. package/dist/tools/ast-tools.js +1 -1
  599. package/dist/tools/ast-tools.js.map +1 -1
  600. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  601. package/dist/tools/diagnostics/lsp-aggregator.js +4 -2
  602. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  603. package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts +2 -0
  604. package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts.map +1 -0
  605. package/dist/tools/lsp/__tests__/client-handle-data.test.js +138 -0
  606. package/dist/tools/lsp/__tests__/client-handle-data.test.js.map +1 -0
  607. package/dist/tools/lsp/client.d.ts +13 -0
  608. package/dist/tools/lsp/client.d.ts.map +1 -1
  609. package/dist/tools/lsp/client.js +64 -8
  610. package/dist/tools/lsp/client.js.map +1 -1
  611. package/dist/tools/lsp/servers.d.ts.map +1 -1
  612. package/dist/tools/lsp/servers.js +4 -9
  613. package/dist/tools/lsp/servers.js.map +1 -1
  614. package/dist/tools/lsp-tools.d.ts.map +1 -1
  615. package/dist/tools/lsp-tools.js +4 -0
  616. package/dist/tools/lsp-tools.js.map +1 -1
  617. package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
  618. package/dist/tools/python-repl/bridge-manager.js +15 -1
  619. package/dist/tools/python-repl/bridge-manager.js.map +1 -1
  620. package/dist/tools/python-repl/session-lock.d.ts.map +1 -1
  621. package/dist/tools/python-repl/session-lock.js +35 -15
  622. package/dist/tools/python-repl/session-lock.js.map +1 -1
  623. package/dist/tools/state-tools.d.ts.map +1 -1
  624. package/dist/tools/state-tools.js +10 -0
  625. package/dist/tools/state-tools.js.map +1 -1
  626. package/dist/utils/__tests__/frontmatter.test.d.ts +2 -0
  627. package/dist/utils/__tests__/frontmatter.test.d.ts.map +1 -0
  628. package/dist/utils/__tests__/frontmatter.test.js +147 -0
  629. package/dist/utils/__tests__/frontmatter.test.js.map +1 -0
  630. package/dist/utils/frontmatter.d.ts +24 -0
  631. package/dist/utils/frontmatter.d.ts.map +1 -0
  632. package/dist/utils/frontmatter.js +62 -0
  633. package/dist/utils/frontmatter.js.map +1 -0
  634. package/dist/utils/paths.d.ts.map +1 -1
  635. package/dist/utils/paths.js +4 -2
  636. package/dist/utils/paths.js.map +1 -1
  637. package/dist/utils/string-width.d.ts.map +1 -1
  638. package/dist/utils/string-width.js +15 -4
  639. package/dist/utils/string-width.js.map +1 -1
  640. package/dist/verification/tier-selector.js +1 -1
  641. package/dist/verification/tier-selector.js.map +1 -1
  642. package/docs/AGENTS.md +4 -2
  643. package/docs/CLAUDE.md +8 -48
  644. package/docs/MIGRATION.md +114 -0
  645. package/docs/REFERENCE.md +35 -102
  646. package/hooks/hooks.json +23 -23
  647. package/package.json +8 -8
  648. package/scripts/build-runtime-cli.mjs +24 -0
  649. package/scripts/build-team-server.mjs +28 -0
  650. package/scripts/cleanup-orphans.mjs +22 -5
  651. package/scripts/context-safety.mjs +5 -1
  652. package/scripts/demo-team.mjs +26 -0
  653. package/scripts/keyword-detector.mjs +6 -76
  654. package/scripts/openclaw-gateway-demo.mjs +168 -0
  655. package/scripts/persistent-mode.cjs +30 -4
  656. package/scripts/persistent-mode.mjs +48 -3
  657. package/scripts/plugin-setup.mjs +66 -3
  658. package/scripts/post-tool-use-failure.mjs +20 -2
  659. package/scripts/post-tool-verifier.mjs +57 -6
  660. package/scripts/pre-tool-enforcer.mjs +125 -5
  661. package/scripts/run.cjs +114 -0
  662. package/scripts/session-start.mjs +56 -7
  663. package/scripts/status.mjs +144 -0
  664. package/scripts/test-codex-gemini-team.mjs +78 -0
  665. package/skills/AGENTS.md +5 -2
  666. package/skills/analyze/SKILL.md +5 -11
  667. package/skills/autopilot/SKILL.md +5 -6
  668. package/skills/ccg/SKILL.md +88 -99
  669. package/skills/configure-notifications/SKILL.md +177 -0
  670. package/skills/configure-openclaw/SKILL.md +320 -0
  671. package/skills/external-context/SKILL.md +7 -83
  672. package/skills/hud/SKILL.md +68 -46
  673. package/skills/omc-setup/SKILL.md +58 -19
  674. package/skills/omc-teams/SKILL.md +178 -0
  675. package/skills/pipeline/SKILL.md +4 -4
  676. package/skills/plan/SKILL.md +28 -16
  677. package/skills/ralph/SKILL.md +3 -4
  678. package/skills/ralph-init/SKILL.md +3 -1
  679. package/skills/ralplan/SKILL.md +93 -8
  680. package/skills/security-review/SKILL.md +5 -6
  681. package/skills/tdd/SKILL.md +5 -6
  682. package/skills/team/SKILL.md +35 -34
  683. package/templates/hooks/keyword-detector.mjs +11 -82
  684. package/templates/hooks/persistent-mode.mjs +120 -3
  685. package/templates/hooks/post-tool-use-failure.mjs +20 -2
  686. package/templates/hooks/session-start.mjs +2 -16
  687. package/dist/__tests__/analytics/backfill-dedup.test.d.ts +0 -2
  688. package/dist/__tests__/analytics/backfill-dedup.test.d.ts.map +0 -1
  689. package/dist/__tests__/analytics/backfill-dedup.test.js +0 -179
  690. package/dist/__tests__/analytics/backfill-dedup.test.js.map +0 -1
  691. package/dist/__tests__/analytics/backfill-engine.test.d.ts +0 -2
  692. package/dist/__tests__/analytics/backfill-engine.test.d.ts.map +0 -1
  693. package/dist/__tests__/analytics/backfill-engine.test.js +0 -362
  694. package/dist/__tests__/analytics/backfill-engine.test.js.map +0 -1
  695. package/dist/__tests__/analytics/output-estimator.test.d.ts +0 -2
  696. package/dist/__tests__/analytics/output-estimator.test.d.ts.map +0 -1
  697. package/dist/__tests__/analytics/output-estimator.test.js +0 -124
  698. package/dist/__tests__/analytics/output-estimator.test.js.map +0 -1
  699. package/dist/__tests__/analytics/token-extractor.test.d.ts +0 -2
  700. package/dist/__tests__/analytics/token-extractor.test.d.ts.map +0 -1
  701. package/dist/__tests__/analytics/token-extractor.test.js +0 -165
  702. package/dist/__tests__/analytics/token-extractor.test.js.map +0 -1
  703. package/dist/__tests__/analytics/token-tracker.test.d.ts +0 -2
  704. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +0 -1
  705. package/dist/__tests__/analytics/token-tracker.test.js +0 -189
  706. package/dist/__tests__/analytics/token-tracker.test.js.map +0 -1
  707. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts +0 -2
  708. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts.map +0 -1
  709. package/dist/__tests__/analytics/tokscale-adapter.test.js +0 -79
  710. package/dist/__tests__/analytics/tokscale-adapter.test.js.map +0 -1
  711. package/dist/__tests__/analytics/transcript-parser.test.d.ts +0 -2
  712. package/dist/__tests__/analytics/transcript-parser.test.d.ts.map +0 -1
  713. package/dist/__tests__/analytics/transcript-parser.test.js +0 -285
  714. package/dist/__tests__/analytics/transcript-parser.test.js.map +0 -1
  715. package/dist/__tests__/analytics/transcript-scanner.test.d.ts +0 -2
  716. package/dist/__tests__/analytics/transcript-scanner.test.d.ts.map +0 -1
  717. package/dist/__tests__/analytics/transcript-scanner.test.js +0 -443
  718. package/dist/__tests__/analytics/transcript-scanner.test.js.map +0 -1
  719. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts +0 -2
  720. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts.map +0 -1
  721. package/dist/__tests__/analytics/transcript-token-extractor.test.js +0 -177
  722. package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +0 -1
  723. package/dist/analytics/analytics-summary.d.ts +0 -47
  724. package/dist/analytics/analytics-summary.d.ts.map +0 -1
  725. package/dist/analytics/analytics-summary.js +0 -171
  726. package/dist/analytics/analytics-summary.js.map +0 -1
  727. package/dist/analytics/backfill-dedup.d.ts +0 -49
  728. package/dist/analytics/backfill-dedup.d.ts.map +0 -1
  729. package/dist/analytics/backfill-dedup.js +0 -115
  730. package/dist/analytics/backfill-dedup.js.map +0 -1
  731. package/dist/analytics/backfill-engine.d.ts +0 -59
  732. package/dist/analytics/backfill-engine.d.ts.map +0 -1
  733. package/dist/analytics/backfill-engine.js +0 -172
  734. package/dist/analytics/backfill-engine.js.map +0 -1
  735. package/dist/analytics/cost-estimator.d.ts +0 -29
  736. package/dist/analytics/cost-estimator.d.ts.map +0 -1
  737. package/dist/analytics/cost-estimator.js +0 -135
  738. package/dist/analytics/cost-estimator.js.map +0 -1
  739. package/dist/analytics/export.d.ts +0 -7
  740. package/dist/analytics/export.d.ts.map +0 -1
  741. package/dist/analytics/export.js +0 -93
  742. package/dist/analytics/export.js.map +0 -1
  743. package/dist/analytics/index.d.ts +0 -24
  744. package/dist/analytics/index.d.ts.map +0 -1
  745. package/dist/analytics/index.js +0 -30
  746. package/dist/analytics/index.js.map +0 -1
  747. package/dist/analytics/metrics-collector.d.ts +0 -30
  748. package/dist/analytics/metrics-collector.d.ts.map +0 -1
  749. package/dist/analytics/metrics-collector.js +0 -96
  750. package/dist/analytics/metrics-collector.js.map +0 -1
  751. package/dist/analytics/output-estimator.d.ts +0 -26
  752. package/dist/analytics/output-estimator.d.ts.map +0 -1
  753. package/dist/analytics/output-estimator.js +0 -65
  754. package/dist/analytics/output-estimator.js.map +0 -1
  755. package/dist/analytics/query-engine.d.ts +0 -35
  756. package/dist/analytics/query-engine.d.ts.map +0 -1
  757. package/dist/analytics/query-engine.js +0 -239
  758. package/dist/analytics/query-engine.js.map +0 -1
  759. package/dist/analytics/session-catalog.d.ts +0 -45
  760. package/dist/analytics/session-catalog.d.ts.map +0 -1
  761. package/dist/analytics/session-catalog.js +0 -153
  762. package/dist/analytics/session-catalog.js.map +0 -1
  763. package/dist/analytics/session-manager.d.ts +0 -58
  764. package/dist/analytics/session-manager.d.ts.map +0 -1
  765. package/dist/analytics/session-manager.js +0 -396
  766. package/dist/analytics/session-manager.js.map +0 -1
  767. package/dist/analytics/session-types.d.ts +0 -37
  768. package/dist/analytics/session-types.d.ts.map +0 -1
  769. package/dist/analytics/session-types.js +0 -2
  770. package/dist/analytics/session-types.js.map +0 -1
  771. package/dist/analytics/token-extractor.d.ts +0 -31
  772. package/dist/analytics/token-extractor.d.ts.map +0 -1
  773. package/dist/analytics/token-extractor.js +0 -57
  774. package/dist/analytics/token-extractor.js.map +0 -1
  775. package/dist/analytics/token-tracker.d.ts +0 -33
  776. package/dist/analytics/token-tracker.d.ts.map +0 -1
  777. package/dist/analytics/token-tracker.js +0 -443
  778. package/dist/analytics/token-tracker.js.map +0 -1
  779. package/dist/analytics/tokscale-adapter.d.ts +0 -71
  780. package/dist/analytics/tokscale-adapter.d.ts.map +0 -1
  781. package/dist/analytics/tokscale-adapter.js +0 -223
  782. package/dist/analytics/tokscale-adapter.js.map +0 -1
  783. package/dist/analytics/transcript-parser.d.ts +0 -42
  784. package/dist/analytics/transcript-parser.d.ts.map +0 -1
  785. package/dist/analytics/transcript-parser.js +0 -90
  786. package/dist/analytics/transcript-parser.js.map +0 -1
  787. package/dist/analytics/transcript-scanner.d.ts +0 -51
  788. package/dist/analytics/transcript-scanner.d.ts.map +0 -1
  789. package/dist/analytics/transcript-scanner.js +0 -279
  790. package/dist/analytics/transcript-scanner.js.map +0 -1
  791. package/dist/analytics/transcript-token-extractor.d.ts +0 -35
  792. package/dist/analytics/transcript-token-extractor.d.ts.map +0 -1
  793. package/dist/analytics/transcript-token-extractor.js +0 -136
  794. package/dist/analytics/transcript-token-extractor.js.map +0 -1
  795. package/dist/analytics/types.d.ts +0 -119
  796. package/dist/analytics/types.d.ts.map +0 -1
  797. package/dist/analytics/types.js +0 -32
  798. package/dist/analytics/types.js.map +0 -1
  799. package/dist/cli/analytics.d.ts +0 -3
  800. package/dist/cli/analytics.d.ts.map +0 -1
  801. package/dist/cli/analytics.js +0 -105
  802. package/dist/cli/analytics.js.map +0 -1
  803. package/dist/cli/commands/agents.d.ts +0 -5
  804. package/dist/cli/commands/agents.d.ts.map +0 -1
  805. package/dist/cli/commands/agents.js +0 -31
  806. package/dist/cli/commands/agents.js.map +0 -1
  807. package/dist/cli/commands/backfill.d.ts +0 -15
  808. package/dist/cli/commands/backfill.d.ts.map +0 -1
  809. package/dist/cli/commands/backfill.js +0 -146
  810. package/dist/cli/commands/backfill.js.map +0 -1
  811. package/dist/cli/commands/cleanup.d.ts +0 -4
  812. package/dist/cli/commands/cleanup.d.ts.map +0 -1
  813. package/dist/cli/commands/cleanup.js +0 -31
  814. package/dist/cli/commands/cleanup.js.map +0 -1
  815. package/dist/cli/commands/cost.d.ts +0 -4
  816. package/dist/cli/commands/cost.d.ts.map +0 -1
  817. package/dist/cli/commands/cost.js +0 -53
  818. package/dist/cli/commands/cost.js.map +0 -1
  819. package/dist/cli/commands/export.d.ts +0 -5
  820. package/dist/cli/commands/export.d.ts.map +0 -1
  821. package/dist/cli/commands/export.js +0 -30
  822. package/dist/cli/commands/export.js.map +0 -1
  823. package/dist/cli/commands/sessions.d.ts +0 -5
  824. package/dist/cli/commands/sessions.d.ts.map +0 -1
  825. package/dist/cli/commands/sessions.js +0 -89
  826. package/dist/cli/commands/sessions.js.map +0 -1
  827. package/dist/cli/commands/stats.d.ts +0 -5
  828. package/dist/cli/commands/stats.d.ts.map +0 -1
  829. package/dist/cli/commands/stats.js +0 -84
  830. package/dist/cli/commands/stats.js.map +0 -1
  831. package/dist/cli/utils/tokscale-launcher.d.ts +0 -25
  832. package/dist/cli/utils/tokscale-launcher.d.ts.map +0 -1
  833. package/dist/cli/utils/tokscale-launcher.js +0 -70
  834. package/dist/cli/utils/tokscale-launcher.js.map +0 -1
  835. package/dist/hud/analytics-display.d.ts +0 -63
  836. package/dist/hud/analytics-display.d.ts.map +0 -1
  837. package/dist/hud/analytics-display.js +0 -190
  838. package/dist/hud/analytics-display.js.map +0 -1
  839. package/scripts/build-codex-server.mjs +0 -95
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcript-token-extractor.test.js","sourceRoot":"","sources":["../../../src/__tests__/analytics/transcript-token-extractor.test.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Analytics Summary - Fast session analytics loading
3
- *
4
- * This module provides mtime-based caching for <10ms session load times.
5
- */
6
- export interface AnalyticsSummary {
7
- sessionId: string;
8
- lastUpdated: string;
9
- lastLogOffset: number;
10
- totals: {
11
- inputTokens: number;
12
- outputTokens: number;
13
- cacheCreationTokens: number;
14
- cacheReadTokens: number;
15
- estimatedCost: number;
16
- };
17
- topAgents: Array<{
18
- agent: string;
19
- cost: number;
20
- tokens: number;
21
- }>;
22
- cacheHitRate: number;
23
- }
24
- /**
25
- * Get summary file path for session ID.
26
- */
27
- export declare function getSummaryPath(sessionId: string): string;
28
- /**
29
- * Initialize empty summary for new session.
30
- */
31
- export declare function createEmptySummary(sessionId: string): AnalyticsSummary;
32
- /**
33
- * Load analytics summary with mtime-based caching.
34
- *
35
- * Performance target: <10ms (vs 50-100ms full JSONL rebuild)
36
- *
37
- * Strategy:
38
- * 1. Check if summary file exists and is fresh (mtime >= log mtime)
39
- * 2. If fresh → return cached summary
40
- * 3. If stale → rebuild incrementally from lastLogOffset
41
- */
42
- export declare function loadAnalyticsFast(sessionId: string): Promise<AnalyticsSummary | null>;
43
- /**
44
- * Force rebuild summary from scratch (ignore cache)
45
- */
46
- export declare function rebuildAnalyticsSummary(sessionId: string): Promise<AnalyticsSummary>;
47
- //# sourceMappingURL=analytics-summary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-summary.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics-summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAetE;AA2HD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAqB3F;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY1F"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Analytics Summary - Fast session analytics loading
3
- *
4
- * This module provides mtime-based caching for <10ms session load times.
5
- */
6
- import { homedir } from 'os';
7
- import { join } from 'path';
8
- /**
9
- * Get summary file path for session ID.
10
- */
11
- export function getSummaryPath(sessionId) {
12
- return join(homedir(), '.omc', 'state', `analytics-summary-${sessionId}.json`);
13
- }
14
- /**
15
- * Initialize empty summary for new session.
16
- */
17
- export function createEmptySummary(sessionId) {
18
- return {
19
- sessionId,
20
- lastUpdated: new Date().toISOString(),
21
- lastLogOffset: 0,
22
- totals: {
23
- inputTokens: 0,
24
- outputTokens: 0,
25
- cacheCreationTokens: 0,
26
- cacheReadTokens: 0,
27
- estimatedCost: 0
28
- },
29
- topAgents: [],
30
- cacheHitRate: 0
31
- };
32
- }
33
- import * as fs from 'fs/promises';
34
- import { calculateCost } from './cost-estimator.js';
35
- /**
36
- * Get file modification time
37
- */
38
- async function getFileMtime(filePath) {
39
- try {
40
- const stats = await fs.stat(filePath);
41
- return stats.mtime;
42
- }
43
- catch {
44
- return null;
45
- }
46
- }
47
- /**
48
- * Update top agents list
49
- */
50
- function updateTopAgents(summary, agentName, cost, tokens) {
51
- let agent = summary.topAgents.find(a => a.agent === agentName);
52
- if (!agent) {
53
- agent = { agent: agentName, cost: 0, tokens: 0 };
54
- summary.topAgents.push(agent);
55
- }
56
- agent.cost += cost;
57
- agent.tokens += tokens;
58
- // Sort by cost and keep top 10
59
- summary.topAgents.sort((a, b) => b.cost - a.cost);
60
- summary.topAgents = summary.topAgents.slice(0, 10);
61
- }
62
- /**
63
- * Calculate cache hit rate percentage
64
- */
65
- function calculateCacheHitRate(totals) {
66
- const total = totals.inputTokens + totals.cacheCreationTokens + totals.cacheReadTokens;
67
- if (total === 0)
68
- return 0;
69
- return (totals.cacheReadTokens / total) * 100;
70
- }
71
- /**
72
- * Rebuild summary incrementally from JSONL log.
73
- *
74
- * Starts from lastLogOffset to avoid re-processing entire log.
75
- */
76
- async function rebuildSummaryIncremental(sessionId, summaryPath, logPath) {
77
- let summary;
78
- let startOffset = 0;
79
- try {
80
- // Try to load existing summary
81
- const content = await fs.readFile(summaryPath, 'utf-8');
82
- summary = JSON.parse(content);
83
- startOffset = summary.lastLogOffset;
84
- }
85
- catch {
86
- // Start fresh
87
- summary = createEmptySummary(sessionId);
88
- }
89
- // Read JSONL from lastLogOffset
90
- const logContent = await fs.readFile(logPath, 'utf-8');
91
- const lines = logContent.split('\n').slice(startOffset);
92
- for (const line of lines) {
93
- if (!line.trim())
94
- continue;
95
- const record = JSON.parse(line);
96
- if (record.sessionId !== sessionId)
97
- continue;
98
- // Update totals
99
- summary.totals.inputTokens += record.inputTokens || 0;
100
- summary.totals.outputTokens += record.outputTokens || 0;
101
- summary.totals.cacheCreationTokens += record.cacheCreationTokens || 0;
102
- summary.totals.cacheReadTokens += record.cacheReadTokens || 0;
103
- // Update cost
104
- const cost = calculateCost({
105
- modelName: record.modelName,
106
- inputTokens: record.inputTokens,
107
- outputTokens: record.outputTokens,
108
- cacheCreationTokens: record.cacheCreationTokens,
109
- cacheReadTokens: record.cacheReadTokens
110
- });
111
- summary.totals.estimatedCost += cost.totalCost;
112
- // Update top agents (use "(main session)" for entries without agentName)
113
- const agentKey = record.agentName || '(main session)';
114
- updateTopAgents(summary, agentKey, cost.totalCost, record.inputTokens + record.outputTokens);
115
- }
116
- // Update metadata
117
- summary.lastUpdated = new Date().toISOString();
118
- summary.lastLogOffset = startOffset + lines.length;
119
- summary.cacheHitRate = calculateCacheHitRate(summary.totals);
120
- // Save updated summary
121
- const summaryDir = join(homedir(), '.omc', 'state');
122
- await fs.mkdir(summaryDir, { recursive: true });
123
- await fs.writeFile(summaryPath, JSON.stringify(summary, null, 2));
124
- return summary;
125
- }
126
- /**
127
- * Load analytics summary with mtime-based caching.
128
- *
129
- * Performance target: <10ms (vs 50-100ms full JSONL rebuild)
130
- *
131
- * Strategy:
132
- * 1. Check if summary file exists and is fresh (mtime >= log mtime)
133
- * 2. If fresh → return cached summary
134
- * 3. If stale → rebuild incrementally from lastLogOffset
135
- */
136
- export async function loadAnalyticsFast(sessionId) {
137
- const summaryPath = getSummaryPath(sessionId);
138
- const logPath = join(homedir(), '.omc', 'state', 'token-tracking.jsonl');
139
- try {
140
- // Check if summary exists and is fresh
141
- const summaryMtime = await getFileMtime(summaryPath);
142
- const logMtime = await getFileMtime(logPath);
143
- if (summaryMtime && logMtime && summaryMtime >= logMtime) {
144
- // Summary is up-to-date, use cached version
145
- const content = await fs.readFile(summaryPath, 'utf-8');
146
- return JSON.parse(content);
147
- }
148
- // Need to rebuild (incremental if summary exists)
149
- return await rebuildSummaryIncremental(sessionId, summaryPath, logPath);
150
- }
151
- catch (_error) {
152
- // No summary exists yet or error reading
153
- return null;
154
- }
155
- }
156
- /**
157
- * Force rebuild summary from scratch (ignore cache)
158
- */
159
- export async function rebuildAnalyticsSummary(sessionId) {
160
- const summaryPath = getSummaryPath(sessionId);
161
- const logPath = join(homedir(), '.omc', 'state', 'token-tracking.jsonl');
162
- // Delete existing summary to force full rebuild
163
- try {
164
- await fs.unlink(summaryPath);
165
- }
166
- catch {
167
- // Ignore if doesn't exist
168
- }
169
- return await rebuildSummaryIncremental(sessionId, summaryPath, logPath);
170
- }
171
- //# sourceMappingURL=analytics-summary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-summary.js","sourceRoot":"","sources":["../../src/analytics/analytics-summary.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- export interface DedupIndex {
2
- processedIds: string[];
3
- lastBackfillTime: string;
4
- totalProcessed: number;
5
- }
6
- /**
7
- * BackfillDedup provides fast deduplication for backfill operations.
8
- *
9
- * Uses in-memory Set for O(1) lookups and persists state to disk.
10
- * Loads existing entries from token-tracking.jsonl on initialization.
11
- */
12
- export declare class BackfillDedup {
13
- private processedSet;
14
- private totalProcessed;
15
- private lastBackfillTime;
16
- /**
17
- * Load existing processed IDs from backfill-index.json and scan token-tracking.jsonl
18
- */
19
- load(): Promise<void>;
20
- /**
21
- * Generate unique ID for a token usage entry
22
- * Uses SHA256 hash to match transcript-token-extractor.ts format
23
- */
24
- private generateEntryId;
25
- /**
26
- * Check if an entry ID has already been processed
27
- */
28
- isProcessed(entryId: string): boolean;
29
- /**
30
- * Mark an entry ID as processed
31
- */
32
- markProcessed(entryId: string): void;
33
- /**
34
- * Persist deduplication state to backfill-index.json
35
- */
36
- save(): Promise<void>;
37
- /**
38
- * Clear all processed entries and delete index file
39
- */
40
- reset(): Promise<void>;
41
- /**
42
- * Get current statistics
43
- */
44
- getStats(): {
45
- totalProcessed: number;
46
- lastBackfillTime: string;
47
- };
48
- }
49
- //# sourceMappingURL=backfill-dedup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill-dedup.d.ts","sourceRoot":"","sources":["../../src/analytics/backfill-dedup.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,gBAAgB,CAAoC;IAE5D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACH,QAAQ,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;CAMjE"}
@@ -1,115 +0,0 @@
1
- import { createHash } from 'crypto';
2
- import * as fs from 'fs/promises';
3
- import * as path from 'path';
4
- import { homedir } from 'os';
5
- const TOKEN_LOG_FILE = path.join(homedir(), '.omc', 'state', 'token-tracking.jsonl');
6
- const DEDUP_INDEX_FILE = path.join(homedir(), '.omc', 'state', 'backfill-index.json');
7
- /**
8
- * BackfillDedup provides fast deduplication for backfill operations.
9
- *
10
- * Uses in-memory Set for O(1) lookups and persists state to disk.
11
- * Loads existing entries from token-tracking.jsonl on initialization.
12
- */
13
- export class BackfillDedup {
14
- processedSet = new Set();
15
- totalProcessed = 0;
16
- lastBackfillTime = new Date().toISOString();
17
- /**
18
- * Load existing processed IDs from backfill-index.json and scan token-tracking.jsonl
19
- */
20
- async load() {
21
- // Load persisted index first
22
- try {
23
- const indexContent = await fs.readFile(DEDUP_INDEX_FILE, 'utf-8');
24
- const index = JSON.parse(indexContent);
25
- this.processedSet = new Set(index.processedIds);
26
- this.totalProcessed = index.totalProcessed;
27
- this.lastBackfillTime = index.lastBackfillTime;
28
- }
29
- catch (_error) {
30
- // Index doesn't exist yet, will be created on save
31
- }
32
- // Scan token-tracking.jsonl to ensure all existing entries are marked
33
- try {
34
- const logContent = await fs.readFile(TOKEN_LOG_FILE, 'utf-8');
35
- const lines = logContent.trim().split('\n').filter(line => line.length > 0);
36
- for (const line of lines) {
37
- try {
38
- const record = JSON.parse(line);
39
- const entryId = this.generateEntryId(record);
40
- if (!this.processedSet.has(entryId)) {
41
- this.processedSet.add(entryId);
42
- this.totalProcessed++;
43
- }
44
- }
45
- catch (_parseError) {
46
- // Skip malformed lines
47
- }
48
- }
49
- }
50
- catch (_error) {
51
- // Log file doesn't exist yet, which is fine
52
- }
53
- }
54
- /**
55
- * Generate unique ID for a token usage entry
56
- * Uses SHA256 hash to match transcript-token-extractor.ts format
57
- */
58
- generateEntryId(record) {
59
- const hash = createHash('sha256');
60
- hash.update(`${record.sessionId}:${record.timestamp}:${record.modelName}`);
61
- return hash.digest('hex');
62
- }
63
- /**
64
- * Check if an entry ID has already been processed
65
- */
66
- isProcessed(entryId) {
67
- return this.processedSet.has(entryId);
68
- }
69
- /**
70
- * Mark an entry ID as processed
71
- */
72
- markProcessed(entryId) {
73
- if (!this.processedSet.has(entryId)) {
74
- this.processedSet.add(entryId);
75
- this.totalProcessed++;
76
- }
77
- }
78
- /**
79
- * Persist deduplication state to backfill-index.json
80
- */
81
- async save() {
82
- const indexDir = path.dirname(DEDUP_INDEX_FILE);
83
- await fs.mkdir(indexDir, { recursive: true });
84
- const index = {
85
- processedIds: Array.from(this.processedSet),
86
- lastBackfillTime: new Date().toISOString(),
87
- totalProcessed: this.totalProcessed
88
- };
89
- await fs.writeFile(DEDUP_INDEX_FILE, JSON.stringify(index, null, 2), 'utf-8');
90
- }
91
- /**
92
- * Clear all processed entries and delete index file
93
- */
94
- async reset() {
95
- this.processedSet.clear();
96
- this.totalProcessed = 0;
97
- this.lastBackfillTime = new Date().toISOString();
98
- try {
99
- await fs.unlink(DEDUP_INDEX_FILE);
100
- }
101
- catch (_error) {
102
- // File might not exist, which is fine
103
- }
104
- }
105
- /**
106
- * Get current statistics
107
- */
108
- getStats() {
109
- return {
110
- totalProcessed: this.totalProcessed,
111
- lastBackfillTime: this.lastBackfillTime
112
- };
113
- }
114
- }
115
- //# sourceMappingURL=backfill-dedup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill-dedup.js","sourceRoot":"","sources":["../../src/analytics/backfill-dedup.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- export interface BackfillOptions {
3
- projectFilter?: string;
4
- dateFrom?: Date;
5
- dateTo?: Date;
6
- dryRun?: boolean;
7
- verbose?: boolean;
8
- }
9
- export interface BackfillResult {
10
- filesProcessed: number;
11
- entriesAdded: number;
12
- duplicatesSkipped: number;
13
- errorsEncountered: number;
14
- totalCostDiscovered: number;
15
- timeElapsed: number;
16
- }
17
- export interface BackfillProgress {
18
- currentFile: string;
19
- filesProcessed: number;
20
- totalFiles: number;
21
- entriesAdded: number;
22
- duplicatesSkipped: number;
23
- currentCost: number;
24
- }
25
- /**
26
- * BackfillEngine orchestrates the offline transcript analysis pipeline.
27
- *
28
- * Pipeline:
29
- * 1. Scan for transcripts
30
- * 2. Parse each transcript file (streaming)
31
- * 3. Extract token usage from entries
32
- * 4. Deduplicate
33
- * 5. Write to token-tracking.jsonl (batch)
34
- *
35
- * Emits 'progress' events during execution.
36
- */
37
- export declare class BackfillEngine extends EventEmitter {
38
- private aborted;
39
- private dedup;
40
- private tracker;
41
- constructor();
42
- /**
43
- * Abort the backfill operation
44
- */
45
- abort(): void;
46
- /**
47
- * Run the backfill process
48
- */
49
- run(options?: BackfillOptions): Promise<BackfillResult>;
50
- /**
51
- * Process a single transcript file
52
- */
53
- private processTranscript;
54
- /**
55
- * Write a batch of token usage entries to the tracker
56
- */
57
- private flushBatch;
58
- }
59
- //# sourceMappingURL=backfill-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill-engine.d.ts","sourceRoot":"","sources":["../../src/analytics/backfill-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAe;;IAQ9B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAwDjE;;OAEG;YACW,iBAAiB;IAoF/B;;OAEG;YACW,UAAU;CAczB"}
@@ -1,172 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import * as path from 'path';
3
- import { scanTranscripts } from './transcript-scanner.js';
4
- import { parseTranscript } from './transcript-parser.js';
5
- import { BackfillDedup } from './backfill-dedup.js';
6
- import { getTokenTracker } from './token-tracker.js';
7
- import { calculateCost } from './cost-estimator.js';
8
- import { extractTokenUsage, extractTaskSpawns } from './transcript-token-extractor.js';
9
- /**
10
- * BackfillEngine orchestrates the offline transcript analysis pipeline.
11
- *
12
- * Pipeline:
13
- * 1. Scan for transcripts
14
- * 2. Parse each transcript file (streaming)
15
- * 3. Extract token usage from entries
16
- * 4. Deduplicate
17
- * 5. Write to token-tracking.jsonl (batch)
18
- *
19
- * Emits 'progress' events during execution.
20
- */
21
- export class BackfillEngine extends EventEmitter {
22
- aborted = false;
23
- dedup;
24
- tracker;
25
- constructor() {
26
- super();
27
- this.dedup = new BackfillDedup();
28
- this.tracker = getTokenTracker();
29
- }
30
- /**
31
- * Abort the backfill operation
32
- */
33
- abort() {
34
- this.aborted = true;
35
- }
36
- /**
37
- * Run the backfill process
38
- */
39
- async run(options = {}) {
40
- const startTime = Date.now();
41
- this.aborted = false;
42
- // Load deduplication state
43
- await this.dedup.load();
44
- // Scan for transcripts
45
- const scanResult = await scanTranscripts({
46
- projectFilter: options.projectFilter,
47
- minDate: options.dateFrom,
48
- });
49
- const result = {
50
- filesProcessed: 0,
51
- entriesAdded: 0,
52
- duplicatesSkipped: 0,
53
- errorsEncountered: 0,
54
- totalCostDiscovered: 0,
55
- timeElapsed: 0,
56
- };
57
- const totalFiles = scanResult.transcripts.length;
58
- // Process each transcript file
59
- for (const transcript of scanResult.transcripts) {
60
- if (this.aborted) {
61
- break;
62
- }
63
- // Filter by date range if specified
64
- if (options.dateTo && transcript.modifiedTime > options.dateTo) {
65
- continue;
66
- }
67
- try {
68
- await this.processTranscript(transcript, options, result, totalFiles);
69
- }
70
- catch (error) {
71
- result.errorsEncountered++;
72
- if (options.verbose) {
73
- console.error(`Error processing ${transcript.filePath}:`, error);
74
- }
75
- }
76
- result.filesProcessed++;
77
- }
78
- // Save deduplication state
79
- if (!options.dryRun) {
80
- await this.dedup.save();
81
- }
82
- result.timeElapsed = Date.now() - startTime;
83
- return result;
84
- }
85
- /**
86
- * Process a single transcript file
87
- */
88
- async processTranscript(transcript, options, result, totalFiles) {
89
- const batch = [];
90
- const BATCH_SIZE = 100;
91
- // Build a lookup of toolUseId → agentType for attributing progress entries
92
- // This is populated as we encounter assistant entries with Task tool calls
93
- const agentLookup = new Map();
94
- // Emit progress
95
- this.emit('progress', {
96
- currentFile: path.basename(transcript.filePath),
97
- filesProcessed: result.filesProcessed,
98
- totalFiles,
99
- entriesAdded: result.entriesAdded,
100
- duplicatesSkipped: result.duplicatesSkipped,
101
- currentCost: result.totalCostDiscovered,
102
- });
103
- // Parse transcript (streaming)
104
- for await (const entry of parseTranscript(transcript.filePath, {
105
- onParseError: (line, error) => {
106
- result.errorsEncountered++;
107
- if (options.verbose) {
108
- console.warn(`Parse error in ${transcript.filePath}: ${error.message}`);
109
- }
110
- },
111
- })) {
112
- if (this.aborted) {
113
- break;
114
- }
115
- // Extract Task tool spawns from assistant entries to build agent lookup
116
- // This must happen BEFORE extractTokenUsage so progress entries can look up their parent
117
- const spawns = extractTaskSpawns(entry);
118
- for (const spawn of spawns) {
119
- agentLookup.set(spawn.toolUseId, spawn.agentType);
120
- }
121
- // Extract token usage (passing agentLookup for progress entry attribution)
122
- const extracted = extractTokenUsage(entry, transcript.sessionId, transcript.filePath, agentLookup);
123
- if (!extracted) {
124
- continue; // Skip entries without usage data
125
- }
126
- // Check deduplication
127
- if (this.dedup.isProcessed(extracted.entryId)) {
128
- result.duplicatesSkipped++;
129
- continue;
130
- }
131
- // Calculate cost
132
- const cost = calculateCost({
133
- modelName: extracted.usage.modelName,
134
- inputTokens: extracted.usage.inputTokens,
135
- outputTokens: extracted.usage.outputTokens,
136
- cacheCreationTokens: extracted.usage.cacheCreationTokens,
137
- cacheReadTokens: extracted.usage.cacheReadTokens,
138
- });
139
- result.totalCostDiscovered += cost.totalCost;
140
- // Add to batch
141
- batch.push(extracted.usage);
142
- this.dedup.markProcessed(extracted.entryId);
143
- result.entriesAdded++;
144
- // Flush batch if full
145
- if (batch.length >= BATCH_SIZE && !options.dryRun) {
146
- await this.flushBatch(batch);
147
- }
148
- }
149
- // Flush remaining entries
150
- if (batch.length > 0 && !options.dryRun) {
151
- await this.flushBatch(batch);
152
- }
153
- }
154
- /**
155
- * Write a batch of token usage entries to the tracker
156
- */
157
- async flushBatch(batch) {
158
- for (const usage of batch) {
159
- await this.tracker.recordTokenUsage({
160
- modelName: usage.modelName,
161
- inputTokens: usage.inputTokens,
162
- outputTokens: usage.outputTokens,
163
- cacheCreationTokens: usage.cacheCreationTokens,
164
- cacheReadTokens: usage.cacheReadTokens,
165
- agentName: usage.agentName,
166
- isEstimated: usage.isEstimated,
167
- });
168
- }
169
- batch.length = 0; // Clear batch
170
- }
171
- }
172
- //# sourceMappingURL=backfill-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill-engine.js","sourceRoot":"","sources":["../../src/analytics/backfill-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAgB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AA4BvF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,OAAO,GAAY,KAAK,CAAC;IACzB,KAAK,CAAgB;IACrB,OAAO,CAAe;IAE9B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,UAA2B,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,2BAA2B;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAExB,uBAAuB;QACvB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;YACvC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAmB;YAC7B,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,CAAC;YACtB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;QAEjD,+BAA+B;QAC/B,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM;YACR,CAAC;YAED,oCAAoC;YACpC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/D,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,UAA0B,EAC1B,OAAwB,EACxB,MAAsB,EACtB,UAAkB;QAElB,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,CAAC;QAEvB,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE9C,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,UAAU;YACV,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,WAAW,EAAE,MAAM,CAAC,mBAAmB;SACpB,CAAC,CAAC;QAEvB,+BAA+B;QAC/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;SACF,CAAC,EAAE,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM;YACR,CAAC;YAED,wEAAwE;YACxE,yFAAyF;YACzF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;YAED,2EAA2E;YAC3E,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEnG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,kCAAkC;YAC9C,CAAC;YAED,sBAAsB;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,iBAAiB;YACjB,MAAM,IAAI,GAAG,aAAa,CAAC;gBACzB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS;gBACpC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW;gBACxC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY;gBAC1C,mBAAmB,EAAE,SAAS,CAAC,KAAK,CAAC,mBAAmB;gBACxD,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,eAAe;aACjD,CAAC,CAAC;YAEH,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC;YAE7C,eAAe;YACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtB,sBAAsB;YACtB,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,KAAmB;QAC1C,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc;IAClC,CAAC;CACF"}