@codemieai/code 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/README.md +9 -11
  2. package/bin/agent-executor.js +1 -1
  3. package/dist/agents/codemie-code/agent.js +1 -1
  4. package/dist/agents/codemie-code/config.d.ts +1 -1
  5. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/config.js +3 -4
  7. package/dist/agents/codemie-code/config.js.map +1 -1
  8. package/dist/agents/codemie-code/index.js +1 -1
  9. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/storage/todoStorage.js +2 -2
  11. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
  12. package/dist/agents/codemie-code/tools/index.js +1 -1
  13. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  14. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  15. package/dist/agents/core/AgentCLI.js +6 -10
  16. package/dist/agents/core/AgentCLI.js.map +1 -1
  17. package/dist/agents/core/BaseAgentAdapter.d.ts +17 -9
  18. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  19. package/dist/agents/core/BaseAgentAdapter.js +80 -72
  20. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  21. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +258 -0
  22. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -0
  23. package/dist/agents/core/extension/BaseExtensionInstaller.js +522 -0
  24. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -0
  25. package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
  26. package/dist/agents/core/lifecycle-helpers.js +16 -2
  27. package/dist/agents/core/lifecycle-helpers.js.map +1 -1
  28. package/dist/agents/core/metrics/index.d.ts +0 -2
  29. package/dist/agents/core/metrics/index.d.ts.map +1 -1
  30. package/dist/agents/core/metrics/index.js +0 -3
  31. package/dist/agents/core/metrics/index.js.map +1 -1
  32. package/dist/agents/core/metrics/types.d.ts +4 -232
  33. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  34. package/dist/agents/core/metrics/types.js +2 -2
  35. package/dist/agents/core/session/BaseProcessor.d.ts +72 -0
  36. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -0
  37. package/dist/agents/core/session/BaseProcessor.js +9 -0
  38. package/dist/agents/core/session/BaseProcessor.js.map +1 -0
  39. package/dist/agents/core/session/BaseSessionAdapter.d.ts +99 -0
  40. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -0
  41. package/dist/agents/core/session/BaseSessionAdapter.js +9 -0
  42. package/dist/agents/core/session/BaseSessionAdapter.js.map +1 -0
  43. package/dist/agents/core/session/SessionStore.d.ts +23 -0
  44. package/dist/agents/core/session/SessionStore.d.ts.map +1 -0
  45. package/dist/agents/core/session/SessionStore.js +75 -0
  46. package/dist/agents/core/session/SessionStore.js.map +1 -0
  47. package/dist/agents/core/session/session-config.d.ts +27 -0
  48. package/dist/agents/core/session/session-config.d.ts.map +1 -0
  49. package/dist/agents/core/session/session-config.js +61 -0
  50. package/dist/agents/core/session/session-config.js.map +1 -0
  51. package/dist/agents/core/session/types.d.ts +87 -0
  52. package/dist/agents/core/session/types.d.ts.map +1 -0
  53. package/dist/agents/core/session/types.js +8 -0
  54. package/dist/agents/core/session/types.js.map +1 -0
  55. package/dist/agents/core/session/utils/jsonl-reader.d.ts +15 -0
  56. package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -0
  57. package/dist/agents/core/session/utils/jsonl-reader.js +33 -0
  58. package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -0
  59. package/dist/agents/core/session/utils/jsonl-writer.d.ts +26 -0
  60. package/dist/agents/core/session/utils/jsonl-writer.d.ts.map +1 -0
  61. package/dist/agents/core/session/utils/jsonl-writer.js +56 -0
  62. package/dist/agents/core/session/utils/jsonl-writer.js.map +1 -0
  63. package/dist/agents/core/types.d.ts +78 -11
  64. package/dist/agents/core/types.d.ts.map +1 -1
  65. package/dist/agents/plugins/claude/claude-message-types.d.ts +74 -0
  66. package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -0
  67. package/dist/agents/plugins/claude/claude-message-types.js +8 -0
  68. package/dist/agents/plugins/claude/claude-message-types.js.map +1 -0
  69. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +53 -0
  70. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -0
  71. package/dist/agents/plugins/claude/claude.plugin-installer.js +63 -0
  72. package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -0
  73. package/dist/agents/plugins/claude/claude.plugin.d.ts +26 -0
  74. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -0
  75. package/dist/agents/plugins/{claude.plugin.js → claude/claude.plugin.js} +20 -11
  76. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -0
  77. package/dist/agents/plugins/claude/claude.session.d.ts +60 -0
  78. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -0
  79. package/dist/agents/plugins/claude/claude.session.js +339 -0
  80. package/dist/agents/plugins/claude/claude.session.js.map +1 -0
  81. package/dist/agents/plugins/claude/plugin/.claude-plugin/local-install.json +15 -0
  82. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +9 -0
  83. package/dist/agents/plugins/claude/plugin/README.md +299 -0
  84. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +539 -0
  85. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +511 -0
  86. package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +205 -0
  87. package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +74 -0
  88. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +207 -0
  89. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +143 -0
  90. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +127 -0
  91. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +168 -0
  92. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +210 -0
  93. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +160 -0
  94. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +170 -0
  95. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +150 -0
  96. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +177 -0
  97. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +143 -0
  98. package/dist/agents/plugins/claude/plugin/commands/README.md +0 -0
  99. package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +10 -0
  100. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +731 -0
  101. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +44 -0
  102. package/dist/agents/plugins/claude/plugin/commands/memory-init.md +18 -0
  103. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +54 -0
  104. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +71 -0
  105. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +51 -0
  106. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -0
  107. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +840 -0
  108. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -0
  109. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +37 -0
  110. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -0
  111. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +275 -0
  112. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -0
  113. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  114. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  115. package/dist/agents/plugins/gemini/extension/README.md +88 -0
  116. package/dist/agents/plugins/gemini/extension/gemini-extension.json +11 -0
  117. package/dist/agents/plugins/gemini/extension/hooks/hooks.json +65 -0
  118. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts +49 -0
  119. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts.map +1 -0
  120. package/dist/agents/plugins/gemini/gemini.extension-installer.js +63 -0
  121. package/dist/agents/plugins/gemini/gemini.extension-installer.js.map +1 -0
  122. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts +43 -0
  123. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts.map +1 -0
  124. package/dist/agents/plugins/gemini/gemini.hook-transformer.js +57 -0
  125. package/dist/agents/plugins/gemini/gemini.hook-transformer.js.map +1 -0
  126. package/dist/agents/plugins/gemini/gemini.plugin.d.ts +32 -0
  127. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -0
  128. package/dist/agents/plugins/gemini/gemini.plugin.js +136 -0
  129. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -0
  130. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +68 -0
  131. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -0
  132. package/dist/agents/plugins/gemini/gemini.session-adapter.js +268 -0
  133. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -0
  134. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts +36 -0
  135. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -0
  136. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +186 -0
  137. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -0
  138. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts +32 -0
  139. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -0
  140. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +193 -0
  141. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -0
  142. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +26 -0
  143. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +1 -0
  144. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +38 -0
  145. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +1 -0
  146. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts +33 -0
  147. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts.map +1 -0
  148. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js +58 -0
  149. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js.map +1 -0
  150. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +70 -0
  151. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -0
  152. package/dist/agents/plugins/gemini/session/utils/turn-detector.js +86 -0
  153. package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -0
  154. package/dist/agents/registry.d.ts +7 -2
  155. package/dist/agents/registry.d.ts.map +1 -1
  156. package/dist/agents/registry.js +17 -8
  157. package/dist/agents/registry.js.map +1 -1
  158. package/dist/cli/commands/analytics/data-loader.d.ts +1 -1
  159. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  160. package/dist/cli/commands/analytics/data-loader.js +3 -3
  161. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  162. package/dist/cli/commands/analytics/index.js +1 -1
  163. package/dist/cli/commands/analytics/index.js.map +1 -1
  164. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +1 -1
  165. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  166. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +1 -1
  167. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -1
  168. package/dist/cli/commands/doctor/checks/NpmCheck.js +1 -1
  169. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -1
  170. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts +13 -0
  171. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  172. package/dist/cli/commands/doctor/checks/PythonCheck.js +91 -32
  173. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  174. package/dist/cli/commands/doctor/checks/UvCheck.js +1 -1
  175. package/dist/cli/commands/doctor/checks/UvCheck.js.map +1 -1
  176. package/dist/cli/commands/doctor/types.d.ts +1 -1
  177. package/dist/cli/commands/doctor/types.d.ts.map +1 -1
  178. package/dist/cli/commands/hook.d.ts +7 -0
  179. package/dist/cli/commands/hook.d.ts.map +1 -0
  180. package/dist/cli/commands/hook.js +788 -0
  181. package/dist/cli/commands/hook.js.map +1 -0
  182. package/dist/cli/commands/profile/auth.js +1 -1
  183. package/dist/cli/commands/profile/auth.js.map +1 -1
  184. package/dist/{utils/profile-display.d.ts → cli/commands/profile/display.d.ts} +3 -3
  185. package/dist/cli/commands/profile/display.d.ts.map +1 -0
  186. package/dist/{utils/profile-display.js → cli/commands/profile/display.js} +2 -2
  187. package/dist/cli/commands/profile/display.js.map +1 -0
  188. package/dist/cli/commands/profile/index.js +2 -2
  189. package/dist/cli/commands/profile/index.js.map +1 -1
  190. package/dist/cli/commands/setup.d.ts.map +1 -1
  191. package/dist/cli/commands/setup.js +4 -5
  192. package/dist/cli/commands/setup.js.map +1 -1
  193. package/dist/cli/commands/update.d.ts +3 -0
  194. package/dist/cli/commands/update.d.ts.map +1 -0
  195. package/dist/cli/commands/update.js +291 -0
  196. package/dist/cli/commands/update.js.map +1 -0
  197. package/dist/cli/commands/version.js +1 -1
  198. package/dist/cli/commands/version.js.map +1 -1
  199. package/dist/{utils → cli}/first-time.d.ts +4 -0
  200. package/dist/cli/first-time.d.ts.map +1 -0
  201. package/dist/{utils → cli}/first-time.js +27 -14
  202. package/dist/cli/first-time.js.map +1 -0
  203. package/dist/cli/index.js +6 -2
  204. package/dist/cli/index.js.map +1 -1
  205. package/dist/env/manager.d.ts.map +1 -1
  206. package/dist/env/manager.js +3 -4
  207. package/dist/env/manager.js.map +1 -1
  208. package/dist/frameworks/core/BaseFrameworkAdapter.js +1 -1
  209. package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -1
  210. package/dist/frameworks/core/types.d.ts +1 -1
  211. package/dist/frameworks/plugins/bmad.plugin.js +2 -2
  212. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
  213. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
  214. package/dist/frameworks/plugins/speckit.plugin.js +2 -3
  215. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  216. package/dist/index.d.ts +1 -1
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +1 -1
  219. package/dist/index.js.map +1 -1
  220. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
  221. package/dist/migrations/001-config-rename.migration.js +2 -2
  222. package/dist/migrations/001-config-rename.migration.js.map +1 -1
  223. package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
  224. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
  225. package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
  226. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
  227. package/dist/migrations/index.d.ts +1 -0
  228. package/dist/migrations/index.d.ts.map +1 -1
  229. package/dist/migrations/index.js +3 -2
  230. package/dist/migrations/index.js.map +1 -1
  231. package/dist/migrations/tracker.d.ts.map +1 -1
  232. package/dist/migrations/tracker.js +2 -2
  233. package/dist/migrations/tracker.js.map +1 -1
  234. package/dist/providers/core/base/http-client.js +1 -1
  235. package/dist/providers/core/types.d.ts +1 -1
  236. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  237. package/dist/providers/plugins/ollama/ollama.template.js +3 -1
  238. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  239. package/dist/providers/plugins/sso/index.d.ts +1 -1
  240. package/dist/providers/plugins/sso/index.d.ts.map +1 -1
  241. package/dist/providers/plugins/sso/index.js +1 -1
  242. package/dist/providers/plugins/sso/index.js.map +1 -1
  243. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
  244. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  245. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
  246. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  247. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
  248. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
  249. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
  250. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
  251. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
  252. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  253. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
  254. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  255. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
  256. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
  257. package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
  258. package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
  259. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
  260. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
  261. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
  262. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
  263. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
  264. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
  265. package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
  266. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
  267. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
  268. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
  269. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
  270. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
  271. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
  272. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
  273. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
  274. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
  275. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
  276. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
  277. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
  278. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
  279. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
  280. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
  281. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
  282. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
  283. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
  284. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
  285. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
  286. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
  287. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
  288. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
  289. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
  290. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
  291. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
  292. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
  293. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
  294. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
  295. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
  296. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
  297. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
  298. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
  299. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
  300. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
  301. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
  302. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
  303. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
  304. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
  305. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
  306. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
  307. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
  308. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
  309. package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
  310. package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
  311. package/dist/providers/plugins/sso/sso.auth.js +1 -1
  312. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  313. package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
  314. package/dist/providers/plugins/sso/sso.http-client.js +1 -1
  315. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  316. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  317. package/dist/providers/plugins/sso/sso.template.js +71 -43
  318. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  319. package/dist/utils/{config-loader.d.ts → config.d.ts} +6 -1
  320. package/dist/utils/config.d.ts.map +1 -0
  321. package/dist/utils/{config-loader.js → config.js} +30 -4
  322. package/dist/utils/config.js.map +1 -0
  323. package/dist/utils/errors.d.ts +89 -0
  324. package/dist/utils/errors.d.ts.map +1 -1
  325. package/dist/utils/errors.js +340 -0
  326. package/dist/utils/errors.js.map +1 -1
  327. package/dist/utils/exec.d.ts +6 -0
  328. package/dist/utils/exec.d.ts.map +1 -1
  329. package/dist/utils/exec.js +6 -0
  330. package/dist/utils/exec.js.map +1 -1
  331. package/dist/utils/file-operations.d.ts +20 -0
  332. package/dist/utils/file-operations.d.ts.map +1 -0
  333. package/dist/utils/file-operations.js +48 -0
  334. package/dist/utils/file-operations.js.map +1 -0
  335. package/dist/utils/logger.d.ts +2 -1
  336. package/dist/utils/logger.d.ts.map +1 -1
  337. package/dist/utils/logger.js +15 -7
  338. package/dist/utils/logger.js.map +1 -1
  339. package/dist/utils/{json-parser.d.ts → parsers.d.ts} +1 -1
  340. package/dist/utils/parsers.d.ts.map +1 -0
  341. package/dist/utils/{json-parser.js → parsers.js} +1 -1
  342. package/dist/utils/parsers.js.map +1 -0
  343. package/dist/utils/{path-utils.d.ts → paths.d.ts} +77 -12
  344. package/dist/utils/paths.d.ts.map +1 -0
  345. package/dist/utils/{path-utils.js → paths.js} +103 -12
  346. package/dist/utils/paths.js.map +1 -0
  347. package/dist/utils/{npm.d.ts → processes.d.ts} +44 -7
  348. package/dist/utils/processes.d.ts.map +1 -0
  349. package/dist/utils/{npm.js → processes.js} +129 -10
  350. package/dist/utils/processes.js.map +1 -0
  351. package/dist/utils/profile.d.ts +1 -16
  352. package/dist/utils/profile.d.ts.map +1 -1
  353. package/dist/utils/profile.js +1 -27
  354. package/dist/utils/profile.js.map +1 -1
  355. package/dist/utils/security.d.ts +62 -0
  356. package/dist/utils/security.d.ts.map +1 -0
  357. package/dist/utils/security.js +396 -0
  358. package/dist/utils/security.js.map +1 -0
  359. package/package.json +11 -11
  360. package/scripts/copy-plugins.js +57 -0
  361. package/scripts/license-check.js +23 -0
  362. package/bin/codemie-codex.js +0 -18
  363. package/bin/codemie-deepagents.js +0 -18
  364. package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
  365. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
  366. package/dist/agents/core/BaseMetricsAdapter.js +0 -308
  367. package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
  368. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
  369. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
  370. package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
  371. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
  372. package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
  373. package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
  374. package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
  375. package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
  376. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
  377. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
  378. package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
  379. package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
  380. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
  381. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
  382. package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
  383. package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
  384. package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
  385. package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
  386. package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
  387. package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
  388. package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
  389. package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
  390. package/dist/agents/core/metrics/session/SessionStore.js +0 -146
  391. package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
  392. package/dist/agents/core/metrics-config.d.ts +0 -38
  393. package/dist/agents/core/metrics-config.d.ts.map +0 -1
  394. package/dist/agents/core/metrics-config.js +0 -95
  395. package/dist/agents/core/metrics-config.js.map +0 -1
  396. package/dist/agents/plugins/claude.metrics.d.ts +0 -102
  397. package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
  398. package/dist/agents/plugins/claude.metrics.js +0 -656
  399. package/dist/agents/plugins/claude.metrics.js.map +0 -1
  400. package/dist/agents/plugins/claude.plugin.d.ts +0 -19
  401. package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
  402. package/dist/agents/plugins/claude.plugin.js.map +0 -1
  403. package/dist/agents/plugins/codex.plugin.d.ts +0 -17
  404. package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
  405. package/dist/agents/plugins/codex.plugin.js +0 -386
  406. package/dist/agents/plugins/codex.plugin.js.map +0 -1
  407. package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
  408. package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
  409. package/dist/agents/plugins/deepagents.plugin.js +0 -104
  410. package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
  411. package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
  412. package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
  413. package/dist/agents/plugins/gemini.metrics.js +0 -475
  414. package/dist/agents/plugins/gemini.metrics.js.map +0 -1
  415. package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
  416. package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
  417. package/dist/agents/plugins/gemini.plugin.js +0 -80
  418. package/dist/agents/plugins/gemini.plugin.js.map +0 -1
  419. package/dist/agents/plugins/history-parser.d.ts +0 -52
  420. package/dist/agents/plugins/history-parser.d.ts.map +0 -1
  421. package/dist/agents/plugins/history-parser.js +0 -155
  422. package/dist/agents/plugins/history-parser.js.map +0 -1
  423. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
  424. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
  425. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
  426. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
  427. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
  428. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
  429. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
  430. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
  431. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
  432. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
  433. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
  434. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
  435. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
  436. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
  437. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
  438. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
  439. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
  440. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
  441. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
  442. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
  443. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
  444. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
  445. package/dist/utils/config-loader.d.ts.map +0 -1
  446. package/dist/utils/config-loader.js.map +0 -1
  447. package/dist/utils/credential-store.d.ts +0 -22
  448. package/dist/utils/credential-store.d.ts.map +0 -1
  449. package/dist/utils/credential-store.js +0 -165
  450. package/dist/utils/credential-store.js.map +0 -1
  451. package/dist/utils/dirname.d.ts +0 -7
  452. package/dist/utils/dirname.d.ts.map +0 -1
  453. package/dist/utils/dirname.js +0 -11
  454. package/dist/utils/dirname.js.map +0 -1
  455. package/dist/utils/error-context.d.ts +0 -90
  456. package/dist/utils/error-context.d.ts.map +0 -1
  457. package/dist/utils/error-context.js +0 -338
  458. package/dist/utils/error-context.js.map +0 -1
  459. package/dist/utils/first-time.d.ts.map +0 -1
  460. package/dist/utils/first-time.js.map +0 -1
  461. package/dist/utils/git.d.ts +0 -13
  462. package/dist/utils/git.d.ts.map +0 -1
  463. package/dist/utils/git.js +0 -37
  464. package/dist/utils/git.js.map +0 -1
  465. package/dist/utils/installation-id.d.ts +0 -10
  466. package/dist/utils/installation-id.d.ts.map +0 -1
  467. package/dist/utils/installation-id.js +0 -30
  468. package/dist/utils/installation-id.js.map +0 -1
  469. package/dist/utils/json-parser.d.ts.map +0 -1
  470. package/dist/utils/json-parser.js.map +0 -1
  471. package/dist/utils/npm.d.ts.map +0 -1
  472. package/dist/utils/npm.js.map +0 -1
  473. package/dist/utils/path-utils.d.ts.map +0 -1
  474. package/dist/utils/path-utils.js.map +0 -1
  475. package/dist/utils/profile-display.d.ts.map +0 -1
  476. package/dist/utils/profile-display.js.map +0 -1
  477. package/dist/utils/sanitize.d.ts +0 -28
  478. package/dist/utils/sanitize.d.ts.map +0 -1
  479. package/dist/utils/sanitize.js +0 -212
  480. package/dist/utils/sanitize.js.map +0 -1
  481. package/dist/utils/which.d.ts +0 -20
  482. package/dist/utils/which.d.ts.map +0 -1
  483. package/dist/utils/which.js +0 -54
  484. package/dist/utils/which.js.map +0 -1
@@ -1,22 +0,0 @@
1
- /**
2
- * File Snapshotter
3
- *
4
- * Takes snapshots of directory state and computes diffs.
5
- * Used to detect new files created by agent processes.
6
- */
7
- import type { FileSnapshot, FileInfo } from '../types.js';
8
- export declare class FileSnapshotter {
9
- /**
10
- * Take snapshot of directory
11
- */
12
- snapshot(dirPath: string): Promise<FileSnapshot>;
13
- /**
14
- * Compute diff between snapshots (new files only)
15
- */
16
- diff(before: FileSnapshot, after: FileSnapshot): FileInfo[];
17
- /**
18
- * Scan directory recursively and collect file information
19
- */
20
- private scanDirectory;
21
- }
22
- //# sourceMappingURL=FileSnapshotter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileSnapshotter.d.ts","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/FileSnapshotter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG1D,qBAAa,eAAe;IAC1B;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAStD;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,QAAQ,EAAE;IAQ3D;;OAEG;YACW,aAAa;CAyC5B"}
@@ -1,74 +0,0 @@
1
- /**
2
- * File Snapshotter
3
- *
4
- * Takes snapshots of directory state and computes diffs.
5
- * Used to detect new files created by agent processes.
6
- */
7
- import { readdir, stat } from 'fs/promises';
8
- import { join } from 'path';
9
- import { existsSync } from 'fs';
10
- import { logger } from '../../../../utils/logger.js';
11
- export class FileSnapshotter {
12
- /**
13
- * Take snapshot of directory
14
- */
15
- async snapshot(dirPath) {
16
- const files = await this.scanDirectory(dirPath);
17
- return {
18
- timestamp: Date.now(),
19
- files
20
- };
21
- }
22
- /**
23
- * Compute diff between snapshots (new files only)
24
- */
25
- diff(before, after) {
26
- const beforePaths = new Set(before.files.map(f => f.path));
27
- const newFiles = after.files.filter(f => !beforePaths.has(f.path));
28
- logger.debug(`[FileSnapshotter] Diff: ${newFiles.length} new files detected`);
29
- return newFiles;
30
- }
31
- /**
32
- * Scan directory recursively and collect file information
33
- */
34
- async scanDirectory(dirPath) {
35
- // Check if directory exists
36
- if (!existsSync(dirPath)) {
37
- logger.debug(`[FileSnapshotter] Directory does not exist: ${dirPath}`);
38
- return [];
39
- }
40
- const files = [];
41
- try {
42
- const entries = await readdir(dirPath, { withFileTypes: true });
43
- for (const entry of entries) {
44
- const fullPath = join(dirPath, entry.name);
45
- if (entry.isFile()) {
46
- try {
47
- const stats = await stat(fullPath);
48
- files.push({
49
- path: fullPath,
50
- size: stats.size,
51
- createdAt: stats.birthtimeMs,
52
- modifiedAt: stats.mtimeMs
53
- });
54
- }
55
- catch (error) {
56
- // Skip files that can't be stat'd (permissions, etc.)
57
- logger.debug(`[FileSnapshotter] Failed to stat file: ${fullPath}`, error);
58
- }
59
- }
60
- else if (entry.isDirectory()) {
61
- // Recursively scan subdirectories
62
- const subFiles = await this.scanDirectory(fullPath);
63
- files.push(...subFiles);
64
- }
65
- }
66
- }
67
- catch (error) {
68
- logger.error(`[FileSnapshotter] Failed to scan directory: ${dirPath}`, error);
69
- throw error;
70
- }
71
- return files;
72
- }
73
- }
74
- //# sourceMappingURL=FileSnapshotter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileSnapshotter.js","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/FileSnapshotter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,MAAoB,EAAE,KAAmB;QAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAAe;QACzC,4BAA4B;QAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE3C,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACnC,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,SAAS,EAAE,KAAK,CAAC,WAAW;4BAC5B,UAAU,EAAE,KAAK,CAAC,OAAO;yBAC1B,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,sDAAsD;wBACtD,MAAM,CAAC,KAAK,CAAC,0CAA0C,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC/B,kCAAkC;oBAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACpD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+CAA+C,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Session Correlator
3
- *
4
- * Correlates CodeMie sessions with agent session files.
5
- * Uses before/after snapshot diff + working directory filtering.
6
- */
7
- import type { FileInfo, CorrelationResult, AgentMetricsSupport } from '../types.js';
8
- export interface CorrelationInput {
9
- sessionId: string;
10
- agentName: string;
11
- workingDirectory: string;
12
- newFiles: FileInfo[];
13
- agentPlugin: AgentMetricsSupport;
14
- }
15
- export declare class SessionCorrelator {
16
- /**
17
- * Correlate CodeMie session to agent session file
18
- * Picks first match after filtering by working directory
19
- */
20
- correlate(input: CorrelationInput): Promise<CorrelationResult>;
21
- /**
22
- * Retry correlation with exponential backoff
23
- */
24
- correlateWithRetry(input: CorrelationInput, snapshotFn: () => Promise<FileInfo[]>): Promise<CorrelationResult>;
25
- /**
26
- * Filter files by working directory content
27
- */
28
- private filterByWorkingDirectory;
29
- /**
30
- * Sleep utility
31
- */
32
- private sleep;
33
- }
34
- //# sourceMappingURL=SessionCorrelator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionCorrelator.d.ts","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/SessionCorrelator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIpF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED,qBAAa,iBAAiB;IAC5B;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqGpE;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,GACpC,OAAO,CAAC,iBAAiB,CAAC;IAyC7B;;OAEG;YACW,wBAAwB;IAuBtC;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
@@ -1,157 +0,0 @@
1
- /**
2
- * Session Correlator
3
- *
4
- * Correlates CodeMie sessions with agent session files.
5
- * Uses before/after snapshot diff + working directory filtering.
6
- */
7
- import { readFile } from 'fs/promises';
8
- import { logger } from '../../../../utils/logger.js';
9
- import { METRICS_CONFIG } from '../../metrics-config.js';
10
- export class SessionCorrelator {
11
- /**
12
- * Correlate CodeMie session to agent session file
13
- * Picks first match after filtering by working directory
14
- */
15
- async correlate(input) {
16
- const { newFiles, agentPlugin, workingDirectory } = input;
17
- logger.info(`[SessionCorrelator] Analyzing ${newFiles.length} candidate file${newFiles.length !== 1 ? 's' : ''}...`);
18
- // Show candidate files at INFO level for debugging
19
- if (newFiles.length > 0) {
20
- logger.info(`[SessionCorrelator] Candidate files:`);
21
- const sampleSize = Math.min(5, newFiles.length);
22
- for (let i = 0; i < sampleSize; i++) {
23
- logger.info(`[SessionCorrelator] ${i + 1}. ${newFiles[i].path}`);
24
- }
25
- if (newFiles.length > sampleSize) {
26
- logger.info(`[SessionCorrelator] ... and ${newFiles.length - sampleSize} more`);
27
- }
28
- }
29
- // Case 1: No new files
30
- if (newFiles.length === 0) {
31
- logger.warn('[SessionCorrelator] No session files detected - will retry');
32
- return {
33
- status: 'pending',
34
- retryCount: 0
35
- };
36
- }
37
- // Case 2: Filter files by agent pattern
38
- logger.info(`[SessionCorrelator] Step 1: Filtering by agent session pattern...`);
39
- const matchingFiles = newFiles.filter(f => agentPlugin.matchesSessionPattern(f.path));
40
- if (matchingFiles.length > 0) {
41
- logger.info(`[SessionCorrelator] ${matchingFiles.length} file${matchingFiles.length !== 1 ? 's' : ''} match${matchingFiles.length === 1 ? 'es' : ''} pattern`);
42
- // Use path.basename for cross-platform display
43
- const { basename } = await import('path');
44
- logger.info(`[SessionCorrelator] ${matchingFiles.map(f => `→ ${basename(f.path)}`).join(', ')}`);
45
- }
46
- logger.debug(`[SessionCorrelator] Pattern matching: ${matchingFiles.length}/${newFiles.length} files passed`);
47
- // Show which files were filtered out and why
48
- if (matchingFiles.length < newFiles.length) {
49
- const filtered = newFiles.filter(f => !matchingFiles.includes(f));
50
- logger.debug(`[SessionCorrelator] Filtered out ${filtered.length} files (pattern mismatch): ${filtered.map(f => f.path).join(', ')}`);
51
- }
52
- if (matchingFiles.length === 0) {
53
- logger.warn('[SessionCorrelator] No session files match expected pattern - correlation failed');
54
- logger.info(`[SessionCorrelator] Agent: ${input.agentName}`);
55
- logger.info(`[SessionCorrelator] Working directory: ${workingDirectory}`);
56
- // Show why files were rejected
57
- if (newFiles.length > 0) {
58
- logger.info(`[SessionCorrelator] None of the ${newFiles.length} candidate files matched the pattern`);
59
- // Test first file and explain why it failed
60
- const testFile = newFiles[0].path;
61
- logger.debug(`[SessionCorrelator] Testing pattern on: ${testFile}`);
62
- logger.debug(`[SessionCorrelator] matchesSessionPattern() returned: ${agentPlugin.matchesSessionPattern(testFile)}`);
63
- }
64
- return {
65
- status: 'failed',
66
- retryCount: 0
67
- };
68
- }
69
- // Case 3: Filter by working directory (parse file content)
70
- logger.info(`[SessionCorrelator] Step 2: Checking working directory match...`);
71
- logger.debug(`[SessionCorrelator] Working directory: ${workingDirectory}`);
72
- const filesWithWorkingDir = await this.filterByWorkingDirectory(matchingFiles, workingDirectory);
73
- if (filesWithWorkingDir.length > 0) {
74
- logger.info(`[SessionCorrelator] ${filesWithWorkingDir.length} file${filesWithWorkingDir.length !== 1 ? 's' : ''} contain${filesWithWorkingDir.length === 1 ? 's' : ''} working directory`);
75
- }
76
- else {
77
- logger.info(`[SessionCorrelator] No files contain working directory - using first pattern match`);
78
- }
79
- logger.debug(`[SessionCorrelator] Working directory matches: ${filesWithWorkingDir.length}/${matchingFiles.length} files`);
80
- // Pick first match (simple strategy)
81
- const matchedFile = filesWithWorkingDir.length > 0
82
- ? filesWithWorkingDir[0]
83
- : matchingFiles[0]; // Fallback to first pattern match if no working dir match
84
- // Extract session ID
85
- const agentSessionId = agentPlugin.extractSessionId(matchedFile.path);
86
- logger.info(`[SessionCorrelator] Session matched: ${agentSessionId}`);
87
- logger.info(`[SessionCorrelator] Session file: ${matchedFile.path}`);
88
- return {
89
- status: 'matched',
90
- agentSessionFile: matchedFile.path,
91
- agentSessionId,
92
- detectedAt: Date.now(),
93
- retryCount: 0
94
- };
95
- }
96
- /**
97
- * Retry correlation with exponential backoff
98
- */
99
- async correlateWithRetry(input, snapshotFn) {
100
- let result = await this.correlate(input);
101
- // If matched on first try, return immediately
102
- if (result.status === 'matched') {
103
- return result;
104
- }
105
- // Retry with exponential backoff
106
- for (let attempt = 0; attempt < METRICS_CONFIG.retry.attempts; attempt++) {
107
- const delay = METRICS_CONFIG.retry.delays[attempt];
108
- logger.info(`[SessionCorrelator] Retry ${attempt + 1}/${METRICS_CONFIG.retry.attempts} after ${delay}ms...`);
109
- logger.debug(`[SessionCorrelator] Waiting ${delay}ms before retry ${attempt + 1}`);
110
- await this.sleep(delay);
111
- // Take new snapshot
112
- logger.debug(`[SessionCorrelator] Taking new snapshot for retry ${attempt + 1}`);
113
- const newFiles = await snapshotFn();
114
- // Retry correlation
115
- result = await this.correlate({
116
- ...input,
117
- newFiles
118
- });
119
- result.retryCount = attempt + 1;
120
- if (result.status === 'matched') {
121
- logger.info(`[SessionCorrelator] Session matched on retry ${attempt + 1}`);
122
- return result;
123
- }
124
- }
125
- // All retries exhausted
126
- logger.warn(`[SessionCorrelator] ❌ Session matching failed after ${METRICS_CONFIG.retry.attempts} attempts - metrics collection disabled`);
127
- result.status = 'failed';
128
- return result;
129
- }
130
- /**
131
- * Filter files by working directory content
132
- */
133
- async filterByWorkingDirectory(files, workingDirectory) {
134
- const filtered = [];
135
- for (const file of files) {
136
- try {
137
- const content = await readFile(file.path, 'utf-8');
138
- // Check if file content contains working directory path
139
- if (content.includes(workingDirectory)) {
140
- filtered.push(file);
141
- }
142
- }
143
- catch (error) {
144
- // Skip files that can't be read
145
- logger.debug(`[SessionCorrelator] Failed to read file: ${file.path}`, error);
146
- }
147
- }
148
- return filtered;
149
- }
150
- /**
151
- * Sleep utility
152
- */
153
- sleep(ms) {
154
- return new Promise(resolve => setTimeout(resolve, ms));
155
- }
156
- }
157
- //# sourceMappingURL=SessionCorrelator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionCorrelator.js","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/SessionCorrelator.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Sync State Manager
3
- *
4
- * Manages sync state embedded in session metadata file.
5
- * Tracks which records have been synced to prevent duplicates.
6
- * Sync state is stored in: ~/.codemie/metrics/sessions/{sessionId}.json
7
- */
8
- import type { SyncState } from '../types.js';
9
- export declare class SyncStateManager {
10
- private readonly sessionId;
11
- private readonly filePath;
12
- constructor(sessionId: string);
13
- /**
14
- * Initialize new sync state (embedded in session file)
15
- */
16
- initialize(sessionId: string, agentSessionId: string, sessionStartTime: number): Promise<SyncState>;
17
- /**
18
- * Load session file
19
- */
20
- private loadSession;
21
- /**
22
- * Load sync state from session file
23
- * Returns null if file doesn't exist (graceful handling for deleted files)
24
- */
25
- load(): Promise<SyncState | null>;
26
- /**
27
- * Save sync state to session file (atomic write)
28
- */
29
- save(state: SyncState): Promise<void>;
30
- /**
31
- * Update last processed line
32
- */
33
- updateLastProcessed(line: number, timestamp: number): Promise<void>;
34
- /**
35
- * Add processed record IDs to tracking
36
- */
37
- addProcessedRecords(recordIds: string[]): Promise<void>;
38
- /**
39
- * Mark records as synced
40
- * Note: Sync status is tracked in metrics JSONL (syncStatus field)
41
- * This only updates aggregate statistics and last sync info
42
- */
43
- markSynced(recordIds: string[]): Promise<void>;
44
- /**
45
- * Add attached user prompt texts to tracking (prevents duplication)
46
- */
47
- addAttachedUserPrompts(promptTexts: string[]): Promise<void>;
48
- /**
49
- * Increment delta count
50
- */
51
- incrementDeltas(count: number): Promise<void>;
52
- /**
53
- * Increment failed count
54
- */
55
- incrementFailed(count: number): Promise<void>;
56
- /**
57
- * Update session status
58
- */
59
- updateStatus(status: 'active' | 'completed' | 'failed', endTime?: number): Promise<void>;
60
- /**
61
- * Get file path
62
- */
63
- getFilePath(): string;
64
- /**
65
- * Check if file exists
66
- */
67
- exists(): boolean;
68
- }
69
- //# sourceMappingURL=SyncStateManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncStateManager.d.ts","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/SyncStateManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAI7D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,SAAS,EAAE,MAAM;IAK7B;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAsCzG;;OAEG;YACW,WAAW;IASzB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAyBvC;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3C;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzE;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7D;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpD;;OAEG;IACG,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlE;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9F;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,MAAM,IAAI,OAAO;CAGlB"}
@@ -1,283 +0,0 @@
1
- /**
2
- * Sync State Manager
3
- *
4
- * Manages sync state embedded in session metadata file.
5
- * Tracks which records have been synced to prevent duplicates.
6
- * Sync state is stored in: ~/.codemie/metrics/sessions/{sessionId}.json
7
- */
8
- import { readFile, writeFile, mkdir, rename } from 'fs/promises';
9
- import { existsSync } from 'fs';
10
- import { dirname, join } from 'path';
11
- import { randomUUID } from 'crypto';
12
- import { logger } from '../../../../utils/logger.js';
13
- import { getSessionPath } from '../../metrics-config.js';
14
- export class SyncStateManager {
15
- sessionId;
16
- filePath;
17
- constructor(sessionId) {
18
- this.sessionId = sessionId;
19
- this.filePath = getSessionPath(sessionId);
20
- }
21
- /**
22
- * Initialize new sync state (embedded in session file)
23
- */
24
- async initialize(sessionId, agentSessionId, sessionStartTime) {
25
- try {
26
- // Check if session exists and already has sync state
27
- if (existsSync(this.filePath)) {
28
- const session = await this.loadSession();
29
- if (session.syncState) {
30
- logger.debug('[SyncStateManager] Sync state already exists, loading...');
31
- return session.syncState;
32
- }
33
- }
34
- // Create new sync state
35
- const syncState = {
36
- sessionId,
37
- agentSessionId,
38
- sessionStartTime,
39
- status: 'active',
40
- lastProcessedLine: 0,
41
- lastProcessedTimestamp: Date.now(),
42
- processedRecordIds: [],
43
- attachedUserPromptTexts: [],
44
- totalDeltas: 0,
45
- totalSynced: 0,
46
- totalFailed: 0
47
- };
48
- // Save to session file
49
- await this.save(syncState);
50
- logger.info('[SyncStateManager] Initialized new sync state');
51
- return syncState;
52
- }
53
- catch (error) {
54
- logger.error('[SyncStateManager] Failed to initialize sync state:', error);
55
- throw error;
56
- }
57
- }
58
- /**
59
- * Load session file
60
- */
61
- async loadSession() {
62
- if (!existsSync(this.filePath)) {
63
- throw new Error(`Session file does not exist: ${this.filePath}`);
64
- }
65
- const content = await readFile(this.filePath, 'utf-8');
66
- return JSON.parse(content);
67
- }
68
- /**
69
- * Load sync state from session file
70
- * Returns null if file doesn't exist (graceful handling for deleted files)
71
- */
72
- async load() {
73
- try {
74
- // Check if session file exists
75
- if (!existsSync(this.filePath)) {
76
- logger.debug('[SyncStateManager] Session file does not exist, returning null');
77
- return null;
78
- }
79
- const session = await this.loadSession();
80
- if (!session.syncState) {
81
- logger.debug('[SyncStateManager] Sync state not initialized yet, returning null');
82
- return null;
83
- }
84
- logger.debug(`[SyncStateManager] Loaded sync state: ${session.syncState.totalDeltas} deltas, ${session.syncState.totalSynced} synced`);
85
- return session.syncState;
86
- }
87
- catch (error) {
88
- logger.error('[SyncStateManager] Failed to load sync state:', error);
89
- // Return null instead of throwing to allow graceful degradation
90
- return null;
91
- }
92
- }
93
- /**
94
- * Save sync state to session file (atomic write)
95
- */
96
- async save(state) {
97
- try {
98
- // Load current session
99
- const session = await this.loadSession();
100
- // Update sync state
101
- session.syncState = state;
102
- // Ensure directory exists
103
- const dir = dirname(this.filePath);
104
- if (!existsSync(dir)) {
105
- await mkdir(dir, { recursive: true });
106
- }
107
- // Write to temp file first (atomic write) - use same directory to avoid cross-device rename
108
- const tempFile = join(dir, `.session_${randomUUID()}.json.tmp`);
109
- await writeFile(tempFile, JSON.stringify(session, null, 2), 'utf-8');
110
- // Rename to final location (atomic operation)
111
- await rename(tempFile, this.filePath);
112
- logger.debug('[SyncStateManager] Saved sync state');
113
- }
114
- catch (error) {
115
- logger.error('[SyncStateManager] Failed to save sync state:', error);
116
- throw error;
117
- }
118
- }
119
- /**
120
- * Update last processed line
121
- */
122
- async updateLastProcessed(line, timestamp) {
123
- try {
124
- const state = await this.load();
125
- if (!state) {
126
- logger.debug('[SyncStateManager] Cannot update - sync state does not exist');
127
- return;
128
- }
129
- state.lastProcessedLine = line;
130
- state.lastProcessedTimestamp = timestamp;
131
- await this.save(state);
132
- logger.debug(`[SyncStateManager] Updated last processed line: ${line}`);
133
- }
134
- catch (error) {
135
- logger.error('[SyncStateManager] Failed to update last processed line:', error);
136
- // Don't throw - allow graceful degradation
137
- }
138
- }
139
- /**
140
- * Add processed record IDs to tracking
141
- */
142
- async addProcessedRecords(recordIds) {
143
- try {
144
- const state = await this.load();
145
- if (!state) {
146
- logger.debug('[SyncStateManager] Cannot add records - sync state does not exist');
147
- return;
148
- }
149
- // Add to processed records list
150
- state.processedRecordIds.push(...recordIds);
151
- await this.save(state);
152
- logger.debug(`[SyncStateManager] Added ${recordIds.length} processed record IDs`);
153
- }
154
- catch (error) {
155
- logger.error('[SyncStateManager] Failed to add processed records:', error);
156
- // Don't throw - allow graceful degradation
157
- }
158
- }
159
- /**
160
- * Mark records as synced
161
- * Note: Sync status is tracked in metrics JSONL (syncStatus field)
162
- * This only updates aggregate statistics and last sync info
163
- */
164
- async markSynced(recordIds) {
165
- try {
166
- const state = await this.load();
167
- if (!state) {
168
- logger.debug('[SyncStateManager] Cannot mark synced - sync state does not exist');
169
- return;
170
- }
171
- // Update last synced record (for resume capability)
172
- if (recordIds.length > 0) {
173
- state.lastSyncedRecordId = recordIds[recordIds.length - 1];
174
- state.lastSyncAt = Date.now();
175
- }
176
- // Update statistics
177
- state.totalSynced += recordIds.length;
178
- await this.save(state);
179
- logger.debug(`[SyncStateManager] Marked ${recordIds.length} records as synced`);
180
- }
181
- catch (error) {
182
- logger.error('[SyncStateManager] Failed to mark records as synced:', error);
183
- // Don't throw - allow graceful degradation
184
- }
185
- }
186
- /**
187
- * Add attached user prompt texts to tracking (prevents duplication)
188
- */
189
- async addAttachedUserPrompts(promptTexts) {
190
- try {
191
- const state = await this.load();
192
- if (!state) {
193
- logger.debug('[SyncStateManager] Cannot add attached prompts - sync state does not exist');
194
- return;
195
- }
196
- // Initialize array if not present
197
- if (!state.attachedUserPromptTexts) {
198
- state.attachedUserPromptTexts = [];
199
- }
200
- // Add to attached prompts list
201
- state.attachedUserPromptTexts.push(...promptTexts);
202
- await this.save(state);
203
- logger.debug(`[SyncStateManager] Added ${promptTexts.length} attached user prompt texts`);
204
- }
205
- catch (error) {
206
- logger.error('[SyncStateManager] Failed to add attached prompts:', error);
207
- // Don't throw - allow graceful degradation
208
- }
209
- }
210
- /**
211
- * Increment delta count
212
- */
213
- async incrementDeltas(count) {
214
- try {
215
- const state = await this.load();
216
- if (!state) {
217
- logger.debug('[SyncStateManager] Cannot increment deltas - sync state does not exist');
218
- return;
219
- }
220
- state.totalDeltas += count;
221
- await this.save(state);
222
- logger.debug(`[SyncStateManager] Incremented delta count by ${count}`);
223
- }
224
- catch (error) {
225
- logger.error('[SyncStateManager] Failed to increment deltas:', error);
226
- // Don't throw - allow graceful degradation
227
- }
228
- }
229
- /**
230
- * Increment failed count
231
- */
232
- async incrementFailed(count) {
233
- try {
234
- const state = await this.load();
235
- if (!state) {
236
- logger.debug('[SyncStateManager] Cannot increment failed - sync state does not exist');
237
- return;
238
- }
239
- state.totalFailed += count;
240
- await this.save(state);
241
- logger.debug(`[SyncStateManager] Incremented failed count by ${count}`);
242
- }
243
- catch (error) {
244
- logger.error('[SyncStateManager] Failed to increment failed count:', error);
245
- // Don't throw - allow graceful degradation
246
- }
247
- }
248
- /**
249
- * Update session status
250
- */
251
- async updateStatus(status, endTime) {
252
- try {
253
- const state = await this.load();
254
- if (!state) {
255
- logger.debug('[SyncStateManager] Cannot update status - sync state does not exist');
256
- return;
257
- }
258
- state.status = status;
259
- if (endTime && (status === 'completed' || status === 'failed')) {
260
- state.sessionEndTime = endTime;
261
- }
262
- await this.save(state);
263
- logger.debug(`[SyncStateManager] Updated status to: ${status}`);
264
- }
265
- catch (error) {
266
- logger.error('[SyncStateManager] Failed to update status:', error);
267
- // Don't throw - allow graceful degradation
268
- }
269
- }
270
- /**
271
- * Get file path
272
- */
273
- getFilePath() {
274
- return this.filePath;
275
- }
276
- /**
277
- * Check if file exists
278
- */
279
- exists() {
280
- return existsSync(this.filePath);
281
- }
282
- }
283
- //# sourceMappingURL=SyncStateManager.js.map