@codemieai/code 0.5.0 → 0.7.0
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.
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +22 -2
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +13 -2
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/reasoning-effort.d.ts +8 -0
- package/dist/agents/core/reasoning-effort.d.ts.map +1 -0
- package/dist/agents/core/reasoning-effort.js +70 -0
- package/dist/agents/core/reasoning-effort.js.map +1 -0
- package/dist/agents/core/types.d.ts +32 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +12 -1
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/claude.session.d.ts +9 -0
- package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.session.js +19 -3
- package/dist/agents/plugins/claude/claude.session.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/skills/msgraph/SKILL.md +3 -0
- package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +136 -20
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +9 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +45 -11
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +12 -3
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/strip-clear.d.ts +12 -0
- package/dist/agents/plugins/claude/session/strip-clear.d.ts.map +1 -0
- package/dist/agents/plugins/claude/session/strip-clear.js +34 -0
- package/dist/agents/plugins/claude/session/strip-clear.js.map +1 -0
- package/dist/agents/plugins/codex/codex-message-types.d.ts +24 -2
- package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex-message-types.js.map +1 -1
- package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex-models.js +7 -3
- package/dist/agents/plugins/codex/codex-models.js.map +1 -1
- package/dist/agents/plugins/codex/codex.paths.d.ts +11 -0
- package/dist/agents/plugins/codex/codex.paths.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex.paths.js +29 -0
- package/dist/agents/plugins/codex/codex.paths.js.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.js +25 -7
- package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/codex/codex.session.d.ts +6 -0
- package/dist/agents/plugins/codex/codex.session.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex.session.js +71 -23
- package/dist/agents/plugins/codex/codex.session.js.map +1 -1
- package/dist/agents/plugins/codex/session/codex-collab-links.d.ts +22 -0
- package/dist/agents/plugins/codex/session/codex-collab-links.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/codex-collab-links.js +162 -0
- package/dist/agents/plugins/codex/session/codex-collab-links.js.map +1 -0
- package/dist/agents/plugins/codex/session/codex-dispatch-extractor.d.ts +12 -0
- package/dist/agents/plugins/codex/session/codex-dispatch-extractor.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/codex-dispatch-extractor.js +73 -0
- package/dist/agents/plugins/codex/session/codex-dispatch-extractor.js.map +1 -0
- package/dist/agents/plugins/codex/session/codex-metrics-extractor.d.ts +22 -0
- package/dist/agents/plugins/codex/session/codex-metrics-extractor.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/codex-metrics-extractor.js +133 -0
- package/dist/agents/plugins/codex/session/codex-metrics-extractor.js.map +1 -0
- package/dist/agents/plugins/codex/session/codex-named-invocations.d.ts +17 -0
- package/dist/agents/plugins/codex/session/codex-named-invocations.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/codex-named-invocations.js +112 -0
- package/dist/agents/plugins/codex/session/codex-named-invocations.js.map +1 -0
- package/dist/agents/plugins/codex/session/codex-user-prompt.d.ts +9 -0
- package/dist/agents/plugins/codex/session/codex-user-prompt.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/codex-user-prompt.js +64 -0
- package/dist/agents/plugins/codex/session/codex-user-prompt.js.map +1 -0
- package/dist/agents/plugins/kimi/kimi.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/kimi/kimi.plugin.js +11 -0
- package/dist/agents/plugins/kimi/kimi.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js +8 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-model-configs.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-model-configs.js +29 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.js +13 -0
- package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -1
- package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -1
- package/dist/cli/commands/analytics/aggregator.js +1 -0
- package/dist/cli/commands/analytics/aggregator.js.map +1 -1
- package/dist/cli/commands/analytics/cost/codex-agent.d.ts +8 -0
- package/dist/cli/commands/analytics/cost/codex-agent.d.ts.map +1 -0
- package/dist/cli/commands/analytics/cost/codex-agent.js +24 -0
- package/dist/cli/commands/analytics/cost/codex-agent.js.map +1 -0
- package/dist/cli/commands/analytics/cost/cost-calculator.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/cost-calculator.js +19 -2
- package/dist/cli/commands/analytics/cost/cost-calculator.js.map +1 -1
- package/dist/cli/commands/analytics/cost/cost-enricher.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/cost-enricher.js +36 -12
- package/dist/cli/commands/analytics/cost/cost-enricher.js.map +1 -1
- package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts +1 -1
- package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/dispatch-extractor.js +7 -1
- package/dist/cli/commands/analytics/cost/dispatch-extractor.js.map +1 -1
- package/dist/cli/commands/analytics/cost/pricing.d.ts +1 -0
- package/dist/cli/commands/analytics/cost/pricing.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/pricing.js +1 -0
- package/dist/cli/commands/analytics/cost/pricing.js.map +1 -1
- package/dist/cli/commands/analytics/cost/pricing.json +70 -35
- package/dist/cli/commands/analytics/cost/types.d.ts +1 -0
- package/dist/cli/commands/analytics/cost/types.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/types.js.map +1 -1
- package/dist/cli/commands/analytics/cost/usage-readers.d.ts +13 -0
- package/dist/cli/commands/analytics/cost/usage-readers.d.ts.map +1 -1
- package/dist/cli/commands/analytics/cost/usage-readers.js +122 -3
- package/dist/cli/commands/analytics/cost/usage-readers.js.map +1 -1
- package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
- package/dist/cli/commands/analytics/data-loader.js +2 -1
- package/dist/cli/commands/analytics/data-loader.js.map +1 -1
- package/dist/cli/commands/analytics/index.js +1 -1
- package/dist/cli/commands/analytics/index.js.map +1 -1
- package/dist/cli/commands/analytics/native-loader.d.ts +11 -1
- package/dist/cli/commands/analytics/native-loader.d.ts.map +1 -1
- package/dist/cli/commands/analytics/native-loader.js +119 -6
- package/dist/cli/commands/analytics/native-loader.js.map +1 -1
- package/dist/cli/commands/analytics/report/client/app.js +9 -8
- package/dist/cli/commands/assistants/chat/conversationIdSafety.d.ts +2 -0
- package/dist/cli/commands/assistants/chat/conversationIdSafety.d.ts.map +1 -0
- package/dist/cli/commands/assistants/chat/conversationIdSafety.js +19 -0
- package/dist/cli/commands/assistants/chat/conversationIdSafety.js.map +1 -0
- package/dist/cli/commands/assistants/chat/historyLoader.d.ts.map +1 -1
- package/dist/cli/commands/assistants/chat/historyLoader.js +7 -0
- package/dist/cli/commands/assistants/chat/historyLoader.js.map +1 -1
- package/dist/cli/commands/assistants/chat/historyPersister.d.ts +19 -0
- package/dist/cli/commands/assistants/chat/historyPersister.d.ts.map +1 -0
- package/dist/cli/commands/assistants/chat/historyPersister.js +95 -0
- package/dist/cli/commands/assistants/chat/historyPersister.js.map +1 -0
- package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/chat/index.js +13 -4
- package/dist/cli/commands/assistants/chat/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +13 -11
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +14 -11
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js +10 -3
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js +10 -3
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +5 -3
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.js +16 -7
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
- package/dist/env/types.d.ts +3 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts +9 -2
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js +17 -6
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.d.ts +12 -0
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.js +48 -14
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +6 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +21 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +2 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/exec.js +1 -1
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/native-installer.d.ts.map +1 -1
- package/dist/utils/native-installer.js +43 -2
- package/dist/utils/native-installer.js.map +1 -1
- package/dist/utils/windows-path.d.ts.map +1 -1
- package/dist/utils/windows-path.js +6 -2
- package/dist/utils/windows-path.js.map +1 -1
- package/package.json +1 -1
|
@@ -34,7 +34,7 @@ export function createAnalyticsCommand() {
|
|
|
34
34
|
// Load CodeMie-tracked sessions
|
|
35
35
|
const loader = new MetricsDataLoader();
|
|
36
36
|
const rawSessions = loader.loadSessions(filter);
|
|
37
|
-
// Discover native agent logs (plain `claude` etc. — not tracked by CodeMie) and merge,
|
|
37
|
+
// Discover native agent logs (plain `claude`, `codex`, etc. — not tracked by CodeMie) and merge,
|
|
38
38
|
// so the analytics reflect ALL usage. Deduped against tracked logs inside the loader.
|
|
39
39
|
if (options.scanNative !== false) {
|
|
40
40
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzC,OAAO;SACJ,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,0DAA0D,CAAC;SACzF,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,qEAAqE,CAAC;SACpG,MAAM,CAAC,UAAU,EAAE,0CAA0C,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SACzE,MAAM,CAAC,wBAAwB,EAAE,wEAAwE,CAAC;SAC1G,MAAM,CAAC,0BAA0B,EAAE,2DAA2D,CAAC;SAC/F,MAAM,CAAC,kBAAkB,EAAE,qEAAqE,CAAC;SACjG,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE3C,gCAAgC;YAChC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEhD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzC,OAAO;SACJ,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,0DAA0D,CAAC;SACzF,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,qEAAqE,CAAC;SACpG,MAAM,CAAC,UAAU,EAAE,0CAA0C,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SACzE,MAAM,CAAC,wBAAwB,EAAE,wEAAwE,CAAC;SAC1G,MAAM,CAAC,0BAA0B,EAAE,2DAA2D,CAAC;SAC/F,MAAM,CAAC,kBAAkB,EAAE,qEAAqE,CAAC;SACjG,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE3C,gCAAgC;YAChC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEhD,iGAAiG;YACjG,sFAAsF;YACtF,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBAClE,MAAM,OAAO,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9D,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CACvC,CAAC;oBACF,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,qEAAqE,EAAE,KAAK,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;gBAClG,OAAO;YACT,CAAC;YAED,uFAAuF;YACvF,qFAAqF;YACrF,sFAAsF;YACtF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3G,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAI,UAAU,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YACD,IAAI,UAAyE,CAAC;YAC9E,IAAI,cAAuC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC1E,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACtD,kFAAkF;gBAClF,oFAAoF;gBACpF,kFAAkF;gBAClF,cAAc,GAAG,IAAI,GAAG,CACtB,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACzF,CAAC;YACJ,CAAC;YAED,iEAAiE;YACjE,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAE/F,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,kBAAkB;YAClB,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1D,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE9C,sBAAsB;YACtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;oBAC1E,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAEnG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,+EAA+E;YAC/E,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBACrE,MAAM,EACJ,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACxB,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;gBAEjD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;gBACjD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;oBAC1D,UAAU,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3E,aAAa,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;oBACvC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC,CAAC;gBAEH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC1B,IAAI,QAA4B,CAAC;gBACjC,IAAI,QAA4B,CAAC;gBACjC,+EAA+E;gBAC/E,oFAAoF;gBACpF,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,aAAa,GAAG,KAAK,CAAC;gBAE1B,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBAC5B,mFAAmF;oBACnF,sFAAsF;oBACtF,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBAClE,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;oBAC7D,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;oBACjE,aAAa,GAAG,aAAa,GAAG,CAAC,IAAI,CAAC;gBACxC,CAAC;qBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBACnC,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;oBAC7D,aAAa,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC;oBACjE,aAAa,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;gBACxC,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBACnG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,4DAA4D;oBACpF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,aAAa,uFAAuF,CAAC,CACjI,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBACvG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;oBACvB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,aAAa,uFAAuF,CAAC,CACjI,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAED,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC9E,IAAI,cAAc,GAAG,mBAAmB,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,qBAAqB,cAAc,IAAI,mBAAmB,sDAAsD,CACjH,CACF,CAAC;gBACJ,CAAC;gBAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;wBACvE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAyB;IACnD,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,OAAO,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,OAAO,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,wFAAwF;IACxF,qFAAqF;IACrF,6FAA6F;IAC7F,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Native session discovery for analytics.
|
|
3
3
|
*
|
|
4
4
|
* The metrics loader only sees sessions CodeMie tracked into ~/.codemie/sessions/.
|
|
5
|
-
* Plain `claude` usage (
|
|
5
|
+
* Plain `claude` / `codex` usage (not via `codemie-claude` / `codemie-codex`) is never
|
|
6
6
|
* tracked, so it is invisible to the report. This module discovers those native agent
|
|
7
7
|
* logs directly (via SessionAdapter.discoverSessions) and synthesizes the same
|
|
8
8
|
* {@link RawSessionData} shape the loader produces, so the whole downstream pipeline
|
|
@@ -32,11 +32,21 @@ export interface NativeLoaderDeps {
|
|
|
32
32
|
realPath(p: string): string;
|
|
33
33
|
}
|
|
34
34
|
export declare const realNativeDeps: NativeLoaderDeps;
|
|
35
|
+
/**
|
|
36
|
+
* Codex child rollout thread IDs referenced by parent collab_agent_spawn_end events.
|
|
37
|
+
* Those files are discovered separately; skip them as top-level native sessions to avoid double counting.
|
|
38
|
+
*/
|
|
39
|
+
export { collectCodexChildThreadIds } from '../../../agents/plugins/codex/session/codex-collab-links.js';
|
|
40
|
+
/** Synthesize {@link RawSessionData} from a parsed Codex rollout (non-Claude JSONL shape). */
|
|
41
|
+
export declare function synthesizeCodexRawSession(agentName: string, descriptor: SessionDescriptor, parsed: ParsedSession): RawSessionData;
|
|
35
42
|
/**
|
|
36
43
|
* Synthesize a {@link RawSessionData} from a parsed native session. Turns map to assistant
|
|
37
44
|
* messages (the aggregator derives totalTurns from deltas.length), and all per-session metrics
|
|
38
45
|
* (tools / file ops / models) are carried on a single delta — the aggregator sums across deltas,
|
|
39
46
|
* so one metrics-bearing delta plus empty placeholders is equivalent to per-turn deltas.
|
|
47
|
+
*
|
|
48
|
+
* A post-/clear file starts with the /clear sentinel as its first user message; stripClear strips
|
|
49
|
+
* it so it is never mistaken for the session's opening prompt.
|
|
40
50
|
*/
|
|
41
51
|
export declare function synthesizeRawSession(agentName: string, descriptor: SessionDescriptor, parsed: ParsedSession): RawSessionData;
|
|
42
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/native-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/native-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAYzF,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,iDAAiD;IACjD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC7F,2EAA2E;IAC3E,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAyCD,eAAO,MAAM,cAAc,EAAE,gBAiC5B,CAAC;AAwEF;;;GAGG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AAwBzG,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,aAAa,GACpB,cAAc,CAmEhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,aAAa,GACpB,cAAc,CA2EhB;AAWD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,gBAAiC,GACtC,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC3B"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Native session discovery for analytics.
|
|
3
3
|
*
|
|
4
4
|
* The metrics loader only sees sessions CodeMie tracked into ~/.codemie/sessions/.
|
|
5
|
-
* Plain `claude` usage (
|
|
5
|
+
* Plain `claude` / `codex` usage (not via `codemie-claude` / `codemie-codex`) is never
|
|
6
6
|
* tracked, so it is invisible to the report. This module discovers those native agent
|
|
7
7
|
* logs directly (via SessionAdapter.discoverSessions) and synthesizes the same
|
|
8
8
|
* {@link RawSessionData} shape the loader produces, so the whole downstream pipeline
|
|
@@ -16,8 +16,12 @@ import { join } from 'node:path';
|
|
|
16
16
|
import { AgentRegistry } from '../../../agents/registry.js';
|
|
17
17
|
import { getCodemiePath } from '../../../utils/paths.js';
|
|
18
18
|
import { logger } from '../../../utils/logger.js';
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
import { stripClear } from '../../../agents/plugins/claude/session/strip-clear.js';
|
|
20
|
+
import { isCodexFamilyAgent } from './cost/codex-agent.js';
|
|
21
|
+
import { firstCodexUserText } from '../../../agents/plugins/codex/session/codex-user-prompt.js';
|
|
22
|
+
import { collectCodexChildThreadIds } from '../../../agents/plugins/codex/session/codex-collab-links.js';
|
|
23
|
+
/** Agents whose native logs we discover + synthesize. */
|
|
24
|
+
const NATIVE_AGENTS = ['claude', 'codex'];
|
|
21
25
|
function safeRealPath(p) {
|
|
22
26
|
try {
|
|
23
27
|
return realpathSync(p);
|
|
@@ -69,7 +73,7 @@ export const realNativeDeps = {
|
|
|
69
73
|
try {
|
|
70
74
|
const descriptors = await adapter.discoverSessions({ maxAgeDays });
|
|
71
75
|
for (const descriptor of descriptors) {
|
|
72
|
-
found.push({ agentName, descriptor });
|
|
76
|
+
found.push({ agentName: descriptor.agentName ?? agentName, descriptor });
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
catch (e) {
|
|
@@ -148,14 +152,100 @@ function modal(values) {
|
|
|
148
152
|
}
|
|
149
153
|
return best;
|
|
150
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Codex child rollout thread IDs referenced by parent collab_agent_spawn_end events.
|
|
157
|
+
* Those files are discovered separately; skip them as top-level native sessions to avoid double counting.
|
|
158
|
+
*/
|
|
159
|
+
export { collectCodexChildThreadIds } from '../../../agents/plugins/codex/session/codex-collab-links.js';
|
|
160
|
+
function countCodexTurns(records) {
|
|
161
|
+
const completes = records.filter((r) => r.type === 'event_msg' && r.payload?.type === 'task_complete').length;
|
|
162
|
+
return Math.max(completes, 1);
|
|
163
|
+
}
|
|
164
|
+
function codexTimestamps(records) {
|
|
165
|
+
return records
|
|
166
|
+
.map((r) => (r.timestamp ? Date.parse(r.timestamp) : NaN))
|
|
167
|
+
.filter((n) => Number.isFinite(n));
|
|
168
|
+
}
|
|
169
|
+
/** Synthesize {@link RawSessionData} from a parsed Codex rollout (non-Claude JSONL shape). */
|
|
170
|
+
export function synthesizeCodexRawSession(agentName, descriptor, parsed) {
|
|
171
|
+
const records = (parsed.messages ?? []);
|
|
172
|
+
const timestamps = codexTimestamps(records);
|
|
173
|
+
const startTime = timestamps.length ? Math.min(...timestamps) : descriptor.createdAt;
|
|
174
|
+
const endTime = timestamps.length ? Math.max(...timestamps) : descriptor.updatedAt ?? descriptor.createdAt;
|
|
175
|
+
const meta = parsed.metadata;
|
|
176
|
+
const cwd = meta?.projectPath ?? descriptor.projectPath ?? 'Unknown';
|
|
177
|
+
const branch = meta?.branch;
|
|
178
|
+
const turns = countCodexTurns(records);
|
|
179
|
+
const openingPrompt = firstCodexUserText(records);
|
|
180
|
+
const models = meta?.model ? [meta.model] : [];
|
|
181
|
+
const metricsDelta = {
|
|
182
|
+
recordId: `${descriptor.sessionId}-native`,
|
|
183
|
+
sessionId: descriptor.sessionId,
|
|
184
|
+
agentSessionId: descriptor.sessionId,
|
|
185
|
+
timestamp: startTime,
|
|
186
|
+
gitBranch: branch,
|
|
187
|
+
tools: parsed.metrics?.tools ?? {},
|
|
188
|
+
toolStatus: parsed.metrics?.toolStatus,
|
|
189
|
+
fileOperations: parsed.metrics?.fileOperations,
|
|
190
|
+
models,
|
|
191
|
+
...(parsed.metrics?.skillInvocations && { skillInvocations: parsed.metrics.skillInvocations }),
|
|
192
|
+
...(parsed.metrics?.agentInvocations && { agentInvocations: parsed.metrics.agentInvocations }),
|
|
193
|
+
...(parsed.metrics?.commandInvocations && { commandInvocations: parsed.metrics.commandInvocations }),
|
|
194
|
+
...(openingPrompt && { userPrompts: [{ count: 1, text: openingPrompt }] }),
|
|
195
|
+
syncStatus: 'synced',
|
|
196
|
+
syncAttempts: 0,
|
|
197
|
+
};
|
|
198
|
+
const deltas = [metricsDelta];
|
|
199
|
+
for (let i = 1; i < turns; i++) {
|
|
200
|
+
deltas.push({
|
|
201
|
+
recordId: `${descriptor.sessionId}-native-${i}`,
|
|
202
|
+
sessionId: descriptor.sessionId,
|
|
203
|
+
agentSessionId: descriptor.sessionId,
|
|
204
|
+
timestamp: startTime,
|
|
205
|
+
gitBranch: branch,
|
|
206
|
+
tools: {},
|
|
207
|
+
syncStatus: 'synced',
|
|
208
|
+
syncAttempts: 0,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
sessionId: descriptor.sessionId,
|
|
213
|
+
agentSessionFile: descriptor.filePath,
|
|
214
|
+
startEvent: {
|
|
215
|
+
recordId: descriptor.sessionId,
|
|
216
|
+
type: 'session_start',
|
|
217
|
+
timestamp: startTime,
|
|
218
|
+
codeMieSessionId: descriptor.sessionId,
|
|
219
|
+
agentName,
|
|
220
|
+
syncStatus: 'synced',
|
|
221
|
+
data: { provider: 'native', workingDirectory: cwd, startTime },
|
|
222
|
+
},
|
|
223
|
+
endEvent: {
|
|
224
|
+
recordId: `${descriptor.sessionId}-end`,
|
|
225
|
+
type: 'session_end',
|
|
226
|
+
timestamp: endTime,
|
|
227
|
+
codeMieSessionId: descriptor.sessionId,
|
|
228
|
+
agentName,
|
|
229
|
+
syncStatus: 'synced',
|
|
230
|
+
data: { endTime, duration: Math.max(0, endTime - startTime), totalTurns: turns },
|
|
231
|
+
},
|
|
232
|
+
deltas,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
151
235
|
/**
|
|
152
236
|
* Synthesize a {@link RawSessionData} from a parsed native session. Turns map to assistant
|
|
153
237
|
* messages (the aggregator derives totalTurns from deltas.length), and all per-session metrics
|
|
154
238
|
* (tools / file ops / models) are carried on a single delta — the aggregator sums across deltas,
|
|
155
239
|
* so one metrics-bearing delta plus empty placeholders is equivalent to per-turn deltas.
|
|
240
|
+
*
|
|
241
|
+
* A post-/clear file starts with the /clear sentinel as its first user message; stripClear strips
|
|
242
|
+
* it so it is never mistaken for the session's opening prompt.
|
|
156
243
|
*/
|
|
157
244
|
export function synthesizeRawSession(agentName, descriptor, parsed) {
|
|
158
|
-
|
|
245
|
+
if (isCodexFamilyAgent(agentName)) {
|
|
246
|
+
return synthesizeCodexRawSession(agentName, descriptor, parsed);
|
|
247
|
+
}
|
|
248
|
+
const messages = stripClear((parsed.messages ?? []));
|
|
159
249
|
const timestamps = messages.map((m) => toMs(m.timestamp)).filter((n) => n != null);
|
|
160
250
|
const startTime = timestamps.length ? Math.min(...timestamps) : descriptor.createdAt;
|
|
161
251
|
const endTime = timestamps.length ? Math.max(...timestamps) : descriptor.updatedAt ?? descriptor.createdAt;
|
|
@@ -239,12 +329,35 @@ function windowDays(filter) {
|
|
|
239
329
|
export async function loadNativeSessions(filter, deps = realNativeDeps) {
|
|
240
330
|
const tracked = deps.trackedLogPaths();
|
|
241
331
|
const discovered = await deps.discover(windowDays(filter));
|
|
332
|
+
// Parse each Codex session ONCE (cached for reuse below) and collect the child thread IDs each
|
|
333
|
+
// parent references via spawn/wait collaboration events, so those sub-agent rollouts are not
|
|
334
|
+
// double-counted as standalone sessions (they are counted inside their parent — see
|
|
335
|
+
// readCodexSubagentUsage in the cost enricher).
|
|
336
|
+
const codexParsed = new Map();
|
|
337
|
+
const codexChildThreads = new Set();
|
|
338
|
+
for (const { agentName, descriptor } of discovered) {
|
|
339
|
+
if (!isCodexFamilyAgent(agentName)) {
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
const parsed = await deps.parse('codex', descriptor.filePath, descriptor.sessionId);
|
|
343
|
+
codexParsed.set(descriptor.filePath, parsed);
|
|
344
|
+
if (parsed?.messages) {
|
|
345
|
+
for (const id of collectCodexChildThreadIds(parsed.messages)) {
|
|
346
|
+
codexChildThreads.add(id);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
242
350
|
const out = [];
|
|
243
351
|
for (const { agentName, descriptor } of discovered) {
|
|
352
|
+
if (isCodexFamilyAgent(agentName) && codexChildThreads.has(descriptor.sessionId)) {
|
|
353
|
+
continue; // linked sub-agent rollout — already counted inside its parent
|
|
354
|
+
}
|
|
244
355
|
if (tracked.has(deps.realPath(descriptor.filePath))) {
|
|
245
356
|
continue; // already tracked by CodeMie — avoid double counting
|
|
246
357
|
}
|
|
247
|
-
const parsed =
|
|
358
|
+
const parsed = isCodexFamilyAgent(agentName)
|
|
359
|
+
? codexParsed.get(descriptor.filePath) ?? null
|
|
360
|
+
: await deps.parse(agentName, descriptor.filePath, descriptor.sessionId);
|
|
248
361
|
if (!parsed) {
|
|
249
362
|
continue;
|
|
250
363
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/native-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/native-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
// ---- palette ------------------------------------------------------------
|
|
21
21
|
var PALETTE = ['#7C5CFC', '#2297F6', '#F5A534', '#06B6D4', '#259F4C', '#F9303C', '#C084FC', '#E879A6'];
|
|
22
|
-
var AGENT_COLORS = { claude: '#7C5CFC', 'claude-acp': '#9D7BFF', 'claude-desktop': '#B79DFF', gemini: '#F5A534', codex: '#06B6D4', opencode: '#259F4C', 'codemie-code': '#2297F6' };
|
|
22
|
+
var AGENT_COLORS = { claude: '#7C5CFC', 'claude-acp': '#9D7BFF', 'claude-desktop': '#B79DFF', gemini: '#F5A534', codex: '#06B6D4', 'codemie-codex': '#06B6D4', opencode: '#259F4C', 'codemie-code': '#2297F6' };
|
|
23
23
|
var seenAgentColor = {};
|
|
24
24
|
var colorCursor = 0;
|
|
25
25
|
function colorFor(agent) {
|
|
@@ -958,12 +958,13 @@
|
|
|
958
958
|
}
|
|
959
959
|
return panel;
|
|
960
960
|
}
|
|
961
|
-
// Gantt of
|
|
962
|
-
// by wall-clock start time relative to the
|
|
963
|
-
//
|
|
964
|
-
// min-width 28px (CSS) keeps short agents visible and clickable without distorting the scale.
|
|
961
|
+
// Gantt of agent/skill/command dispatches: session span on top, each step bar positioned
|
|
962
|
+
// by wall-clock start time relative to the activity window (proportional scaling).
|
|
963
|
+
// min-width 28px (CSS) plus a floor on % width keeps short steps visible and clickable.
|
|
965
964
|
function timelineEl(s) {
|
|
966
|
-
var dispatches = (s.dispatches || []).filter(function (d) {
|
|
965
|
+
var dispatches = (s.dispatches || []).filter(function (d) {
|
|
966
|
+
return d.kind === 'agent' || d.kind === 'skill' || d.kind === 'command';
|
|
967
|
+
}).sort(function (a, b) { return a.start - b.start; });
|
|
967
968
|
// Scale bars to the agent activity window, not the full session duration.
|
|
968
969
|
// Agent bars fill the track proportionally relative to each other; absolute
|
|
969
970
|
// start offset (vs. session start) is shown in the side panel detail view.
|
|
@@ -995,7 +996,7 @@
|
|
|
995
996
|
occ[key] = (occ[key] || 0) + 1;
|
|
996
997
|
var label = d.kind + ' · ' + d.name + (total > 1 ? ' #' + occ[key] : '');
|
|
997
998
|
var leftPct = Math.max(0, (d.start - actStart) / ganttSpan * 100);
|
|
998
|
-
var wPct = (d.durationMs || 0) / ganttSpan * 100;
|
|
999
|
+
var wPct = Math.max(0.8, (d.durationMs || 0) / ganttSpan * 100);
|
|
999
1000
|
if (leftPct + wPct > 100) wPct = Math.max(0, 100 - leftPct);
|
|
1000
1001
|
var barText = d.costUSD != null && wPct >= 8 ? fmtUSD(d.costUSD) : '';
|
|
1001
1002
|
var color = PALETTE[hashStr(key) % PALETTE.length];
|
|
@@ -1100,7 +1101,7 @@
|
|
|
1100
1101
|
|
|
1101
1102
|
// Timeline — Gantt of all top-level agent, skill, and command dispatches.
|
|
1102
1103
|
var hasDispatches = (s.dispatches || []).length > 0;
|
|
1103
|
-
var hasCostData = (s.dispatches || []).some(function (d) { return d.
|
|
1104
|
+
var hasCostData = (s.dispatches || []).some(function (d) { return d.costUSD != null; });
|
|
1104
1105
|
var tlSubtitle = hasDispatches ? (hasCostData ? 'click a step for cost, token & timing details · long idle gaps compressed' : 'click a step for timing details · long idle gaps compressed') : '';
|
|
1105
1106
|
var tlCard = card('Timeline', tlSubtitle);
|
|
1106
1107
|
if (hasDispatches) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationIdSafety.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/conversationIdSafety.ts"],"names":[],"mappings":"AAgBA,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation ID safety guard.
|
|
3
|
+
*
|
|
4
|
+
* The id is interpolated into a filesystem path by
|
|
5
|
+
* `getSessionConversationPath(id)` → `~/.codemie/sessions/<id>_conversation.jsonl`.
|
|
6
|
+
* Anything containing `/`, `..`, NULs, or other path-control characters could
|
|
7
|
+
* either escape the intended sessions directory (read side) or write files
|
|
8
|
+
* outside it (write side, added by `historyPersister.ts`).
|
|
9
|
+
*
|
|
10
|
+
* Allowed: ASCII letters, digits, hyphen, underscore. Length 1..128.
|
|
11
|
+
* That covers UUIDs (which use `[0-9a-f-]`), our generator's workflow id
|
|
12
|
+
* pattern (`<slug>-YYYYMMDD-HHMMSS-PID`), and slug-style identifiers, while
|
|
13
|
+
* rejecting any path-traversal payload.
|
|
14
|
+
*/
|
|
15
|
+
const SAFE_CONVERSATION_ID = /^[a-zA-Z0-9_-]{1,128}$/;
|
|
16
|
+
export function isValidConversationId(id) {
|
|
17
|
+
return SAFE_CONVERSATION_ID.test(id);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=conversationIdSafety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationIdSafety.js","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/conversationIdSafety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAEtD,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,OAAO,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyLoader.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"historyLoader.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAoE3B"}
|
|
@@ -8,6 +8,7 @@ import { logger } from '../../../../utils/logger.js';
|
|
|
8
8
|
import { getSessionConversationPath } from '../../../../agents/core/session/session-config.js';
|
|
9
9
|
import { readJSONL } from '../../../../providers/plugins/sso/session/utils/jsonl-reader.js';
|
|
10
10
|
import { CONVERSATION_SYNC_STATUS } from '../../../../providers/plugins/sso/session/processors/conversations/types.js';
|
|
11
|
+
import { isValidConversationId } from './conversationIdSafety.js';
|
|
11
12
|
/** Default max conversation turns to load (gets doubled: 10 turns = 20 messages = 10 user + 10 AI) */
|
|
12
13
|
const DEFAULT_MAX_HISTORY_MESSAGES = 10;
|
|
13
14
|
/**
|
|
@@ -26,6 +27,12 @@ const DEFAULT_MAX_HISTORY_MESSAGES = 10;
|
|
|
26
27
|
export async function loadConversationHistory(conversationId, config) {
|
|
27
28
|
if (!conversationId)
|
|
28
29
|
return [];
|
|
30
|
+
if (!isValidConversationId(conversationId)) {
|
|
31
|
+
logger.error('Refusing to load conversation history: invalid conversation id', {
|
|
32
|
+
conversationId
|
|
33
|
+
});
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
29
36
|
try {
|
|
30
37
|
const filePath = getSessionConversationPath(conversationId);
|
|
31
38
|
// File doesn't exist yet - normal for first-time conversations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyLoader.js","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAEL,wBAAwB,EACzB,MAAM,mEAAmE,CAAC;
|
|
1
|
+
{"version":3,"file":"historyLoader.js","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation History Persister
|
|
3
|
+
*
|
|
4
|
+
* Appends user/assistant turn records to `~/.codemie/sessions/<id>_conversation.jsonl`
|
|
5
|
+
* so subsequent `codemie assistants chat --conversation-id <id> …` calls can resume
|
|
6
|
+
* the same logical conversation even when no codemie agent session backs the id.
|
|
7
|
+
*
|
|
8
|
+
* Used only when `--conversation-id` is passed EXPLICITLY by the caller — not when
|
|
9
|
+
* the value comes from the `CODEMIE_SESSION_ID` env-var fallback, where the agent
|
|
10
|
+
* session's own hook already writes the file and would race with this persister.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Append one user→assistant turn pair to the conversation JSONL file.
|
|
14
|
+
*
|
|
15
|
+
* Non-fatal on any I/O error: the caller has already received the assistant
|
|
16
|
+
* response, so we never throw out of this function.
|
|
17
|
+
*/
|
|
18
|
+
export declare function appendConversationTurn(conversationId: string, userMessage: string, assistantResponse: string, fileNames?: string[]): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=historyPersister.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyPersister.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyPersister.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAeH;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation History Persister
|
|
3
|
+
*
|
|
4
|
+
* Appends user/assistant turn records to `~/.codemie/sessions/<id>_conversation.jsonl`
|
|
5
|
+
* so subsequent `codemie assistants chat --conversation-id <id> …` calls can resume
|
|
6
|
+
* the same logical conversation even when no codemie agent session backs the id.
|
|
7
|
+
*
|
|
8
|
+
* Used only when `--conversation-id` is passed EXPLICITLY by the caller — not when
|
|
9
|
+
* the value comes from the `CODEMIE_SESSION_ID` env-var fallback, where the agent
|
|
10
|
+
* session's own hook already writes the file and would race with this persister.
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync } from 'fs';
|
|
13
|
+
import { mkdir } from 'fs/promises';
|
|
14
|
+
import { dirname } from 'path';
|
|
15
|
+
import { logger } from '../../../../utils/logger.js';
|
|
16
|
+
import { getSessionConversationPath } from '../../../../agents/core/session/session-config.js';
|
|
17
|
+
import { readJSONL } from '../../../../providers/plugins/sso/session/utils/jsonl-reader.js';
|
|
18
|
+
import { writeJSONLAtomic } from '../../../../providers/plugins/sso/session/utils/jsonl-writer.js';
|
|
19
|
+
import { CONVERSATION_SYNC_STATUS, } from '../../../../providers/plugins/sso/session/processors/conversations/types.js';
|
|
20
|
+
import { isValidConversationId } from './conversationIdSafety.js';
|
|
21
|
+
/**
|
|
22
|
+
* Append one user→assistant turn pair to the conversation JSONL file.
|
|
23
|
+
*
|
|
24
|
+
* Non-fatal on any I/O error: the caller has already received the assistant
|
|
25
|
+
* response, so we never throw out of this function.
|
|
26
|
+
*/
|
|
27
|
+
export async function appendConversationTurn(conversationId, userMessage, assistantResponse, fileNames = []) {
|
|
28
|
+
if (!isValidConversationId(conversationId)) {
|
|
29
|
+
logger.error('Refusing to persist conversation turn: invalid conversation id', {
|
|
30
|
+
conversationId,
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const filePath = getSessionConversationPath(conversationId);
|
|
36
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
37
|
+
let existing = [];
|
|
38
|
+
if (existsSync(filePath)) {
|
|
39
|
+
existing = await readJSONL(filePath);
|
|
40
|
+
}
|
|
41
|
+
// Compute the next history_index by scanning all existing turns. Indices
|
|
42
|
+
// produced by other writers (e.g. agent-session hooks) are honoured so
|
|
43
|
+
// historyLoader's `${role}:${message}:${history_index}` dedup behaves.
|
|
44
|
+
const maxIndex = existing
|
|
45
|
+
.flatMap(r => r.payload?.history ?? [])
|
|
46
|
+
.reduce((max, msg) => Math.max(max, msg.history_index ?? -1), -1);
|
|
47
|
+
const userIndex = maxIndex + 1;
|
|
48
|
+
const assistantIndex = userIndex + 1;
|
|
49
|
+
const now = new Date().toISOString();
|
|
50
|
+
const record = {
|
|
51
|
+
payloadId: `cli-${conversationId}-${userIndex}`,
|
|
52
|
+
timestamp: Date.now(),
|
|
53
|
+
isTurnContinuation: false,
|
|
54
|
+
historyIndices: [userIndex, assistantIndex],
|
|
55
|
+
messageCount: 2,
|
|
56
|
+
payload: {
|
|
57
|
+
conversationId,
|
|
58
|
+
history: [
|
|
59
|
+
{
|
|
60
|
+
role: 'User',
|
|
61
|
+
message: userMessage,
|
|
62
|
+
history_index: userIndex,
|
|
63
|
+
date: now,
|
|
64
|
+
message_raw: userMessage,
|
|
65
|
+
file_names: fileNames,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
role: 'Assistant',
|
|
69
|
+
message: assistantResponse,
|
|
70
|
+
history_index: assistantIndex,
|
|
71
|
+
date: now,
|
|
72
|
+
message_raw: assistantResponse,
|
|
73
|
+
file_names: [],
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
status: CONVERSATION_SYNC_STATUS.SUCCESS,
|
|
78
|
+
};
|
|
79
|
+
await writeJSONLAtomic(filePath, [...existing, record]);
|
|
80
|
+
logger.debug('Persisted conversation turn', {
|
|
81
|
+
conversationId,
|
|
82
|
+
filePath,
|
|
83
|
+
userIndex,
|
|
84
|
+
assistantIndex,
|
|
85
|
+
totalRecords: existing.length + 1,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
logger.error('Failed to persist conversation turn', {
|
|
90
|
+
conversationId,
|
|
91
|
+
error: error instanceof Error ? error.message : String(error),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=historyPersister.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyPersister.js","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/historyPersister.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/chat/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAiCrD"}
|