@codemieai/code 0.6.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.
Files changed (102) hide show
  1. package/dist/agents/plugins/claude/plugin/skills/msgraph/SKILL.md +3 -0
  2. package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +136 -20
  3. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  4. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +12 -3
  5. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  6. package/dist/agents/plugins/claude/session/strip-clear.d.ts +12 -0
  7. package/dist/agents/plugins/claude/session/strip-clear.d.ts.map +1 -0
  8. package/dist/agents/plugins/claude/session/strip-clear.js +34 -0
  9. package/dist/agents/plugins/claude/session/strip-clear.js.map +1 -0
  10. package/dist/agents/plugins/codex/codex-message-types.d.ts +24 -2
  11. package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -1
  12. package/dist/agents/plugins/codex/codex-message-types.js.map +1 -1
  13. package/dist/agents/plugins/codex/codex.paths.d.ts +11 -0
  14. package/dist/agents/plugins/codex/codex.paths.d.ts.map +1 -1
  15. package/dist/agents/plugins/codex/codex.paths.js +29 -0
  16. package/dist/agents/plugins/codex/codex.paths.js.map +1 -1
  17. package/dist/agents/plugins/codex/codex.session.d.ts +6 -0
  18. package/dist/agents/plugins/codex/codex.session.d.ts.map +1 -1
  19. package/dist/agents/plugins/codex/codex.session.js +71 -23
  20. package/dist/agents/plugins/codex/codex.session.js.map +1 -1
  21. package/dist/agents/plugins/codex/session/codex-collab-links.d.ts +22 -0
  22. package/dist/agents/plugins/codex/session/codex-collab-links.d.ts.map +1 -0
  23. package/dist/agents/plugins/codex/session/codex-collab-links.js +162 -0
  24. package/dist/agents/plugins/codex/session/codex-collab-links.js.map +1 -0
  25. package/dist/agents/plugins/codex/session/codex-dispatch-extractor.d.ts +12 -0
  26. package/dist/agents/plugins/codex/session/codex-dispatch-extractor.d.ts.map +1 -0
  27. package/dist/agents/plugins/codex/session/codex-dispatch-extractor.js +73 -0
  28. package/dist/agents/plugins/codex/session/codex-dispatch-extractor.js.map +1 -0
  29. package/dist/agents/plugins/codex/session/codex-metrics-extractor.d.ts +22 -0
  30. package/dist/agents/plugins/codex/session/codex-metrics-extractor.d.ts.map +1 -0
  31. package/dist/agents/plugins/codex/session/codex-metrics-extractor.js +133 -0
  32. package/dist/agents/plugins/codex/session/codex-metrics-extractor.js.map +1 -0
  33. package/dist/agents/plugins/codex/session/codex-named-invocations.d.ts +17 -0
  34. package/dist/agents/plugins/codex/session/codex-named-invocations.d.ts.map +1 -0
  35. package/dist/agents/plugins/codex/session/codex-named-invocations.js +112 -0
  36. package/dist/agents/plugins/codex/session/codex-named-invocations.js.map +1 -0
  37. package/dist/agents/plugins/codex/session/codex-user-prompt.d.ts +9 -0
  38. package/dist/agents/plugins/codex/session/codex-user-prompt.d.ts.map +1 -0
  39. package/dist/agents/plugins/codex/session/codex-user-prompt.js +64 -0
  40. package/dist/agents/plugins/codex/session/codex-user-prompt.js.map +1 -0
  41. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -1
  42. package/dist/cli/commands/analytics/aggregator.js +1 -0
  43. package/dist/cli/commands/analytics/aggregator.js.map +1 -1
  44. package/dist/cli/commands/analytics/cost/codex-agent.d.ts +8 -0
  45. package/dist/cli/commands/analytics/cost/codex-agent.d.ts.map +1 -0
  46. package/dist/cli/commands/analytics/cost/codex-agent.js +24 -0
  47. package/dist/cli/commands/analytics/cost/codex-agent.js.map +1 -0
  48. package/dist/cli/commands/analytics/cost/cost-enricher.d.ts.map +1 -1
  49. package/dist/cli/commands/analytics/cost/cost-enricher.js +36 -12
  50. package/dist/cli/commands/analytics/cost/cost-enricher.js.map +1 -1
  51. package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts +1 -1
  52. package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts.map +1 -1
  53. package/dist/cli/commands/analytics/cost/dispatch-extractor.js +7 -1
  54. package/dist/cli/commands/analytics/cost/dispatch-extractor.js.map +1 -1
  55. package/dist/cli/commands/analytics/cost/usage-readers.d.ts +13 -0
  56. package/dist/cli/commands/analytics/cost/usage-readers.d.ts.map +1 -1
  57. package/dist/cli/commands/analytics/cost/usage-readers.js +114 -1
  58. package/dist/cli/commands/analytics/cost/usage-readers.js.map +1 -1
  59. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  60. package/dist/cli/commands/analytics/data-loader.js +2 -1
  61. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  62. package/dist/cli/commands/analytics/index.js +1 -1
  63. package/dist/cli/commands/analytics/index.js.map +1 -1
  64. package/dist/cli/commands/analytics/native-loader.d.ts +11 -1
  65. package/dist/cli/commands/analytics/native-loader.d.ts.map +1 -1
  66. package/dist/cli/commands/analytics/native-loader.js +119 -6
  67. package/dist/cli/commands/analytics/native-loader.js.map +1 -1
  68. package/dist/cli/commands/analytics/report/client/app.js +9 -8
  69. package/dist/cli/commands/assistants/chat/conversationIdSafety.d.ts +2 -0
  70. package/dist/cli/commands/assistants/chat/conversationIdSafety.d.ts.map +1 -0
  71. package/dist/cli/commands/assistants/chat/conversationIdSafety.js +19 -0
  72. package/dist/cli/commands/assistants/chat/conversationIdSafety.js.map +1 -0
  73. package/dist/cli/commands/assistants/chat/historyLoader.d.ts.map +1 -1
  74. package/dist/cli/commands/assistants/chat/historyLoader.js +7 -0
  75. package/dist/cli/commands/assistants/chat/historyLoader.js.map +1 -1
  76. package/dist/cli/commands/assistants/chat/historyPersister.d.ts +19 -0
  77. package/dist/cli/commands/assistants/chat/historyPersister.d.ts.map +1 -0
  78. package/dist/cli/commands/assistants/chat/historyPersister.js +95 -0
  79. package/dist/cli/commands/assistants/chat/historyPersister.js.map +1 -0
  80. package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
  81. package/dist/cli/commands/assistants/chat/index.js +13 -4
  82. package/dist/cli/commands/assistants/chat/index.js.map +1 -1
  83. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
  84. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +13 -11
  85. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
  86. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
  87. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +14 -11
  88. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
  89. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts.map +1 -1
  90. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js +10 -3
  91. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js.map +1 -1
  92. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts.map +1 -1
  93. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js +10 -3
  94. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js.map +1 -1
  95. package/dist/cli/commands/proxy/connectors/desktop.d.ts +5 -3
  96. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  97. package/dist/cli/commands/proxy/connectors/desktop.js +16 -7
  98. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  99. package/dist/utils/native-installer.d.ts.map +1 -1
  100. package/dist/utils/native-installer.js +43 -2
  101. package/dist/utils/native-installer.js.map +1 -1
  102. package/package.json +1 -1
@@ -264,6 +264,9 @@ node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id
264
264
  # Read recent messages in a channel
265
265
  node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --messages
266
266
 
267
+ # Read messages with their reply threads (needed to detect unanswered/clarification-only threads)
268
+ node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --messages --expand-replies --json
269
+
267
270
  # Post a message to a channel
268
271
  node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --send "Hello channel!"
269
272
  ```
@@ -71,6 +71,7 @@ function httpsRequest(urlStr, options = {}, body = null) {
71
71
  err.statusCode = res.statusCode;
72
72
  err.responseBody = text;
73
73
  err.responseUrl = urlStr;
74
+ err.headers = res.headers;
74
75
  return reject(err);
75
76
  }
76
77
  resolve({ status: res.statusCode, body: text, headers: res.headers });
@@ -97,8 +98,20 @@ async function oauthPost(urlStr, params) {
97
98
  async function graphGet(endpoint, token, params = {}) {
98
99
  const qs = new URLSearchParams(params).toString();
99
100
  const url = `${GRAPH_BASE}${endpoint}${qs ? '?' + qs : ''}`;
100
- const res = await httpsRequest(url, { headers: { Authorization: `Bearer ${token}` } });
101
- return JSON.parse(res.body);
101
+ for (let attempt = 0; attempt < 3; attempt++) {
102
+ try {
103
+ const res = await httpsRequest(url, { headers: { Authorization: `Bearer ${token}` } });
104
+ return JSON.parse(res.body);
105
+ } catch (e) {
106
+ if (e.statusCode === 429 && attempt < 2) {
107
+ const ra = parseInt(e.headers?.['retry-after'] || '', 10);
108
+ const waitS = Number.isFinite(ra) && ra > 0 ? Math.min(60, ra) : Math.min(30, 2 ** attempt * 2);
109
+ await new Promise(r => setTimeout(r, waitS * 1000));
110
+ continue;
111
+ }
112
+ throw e;
113
+ }
114
+ }
102
115
  }
103
116
 
104
117
  async function graphPost(endpoint, token, body) {
@@ -486,9 +499,32 @@ async function cmdEmails(args) {
486
499
  }
487
500
 
488
501
  const limit = parseInt(args.limit) || 10;
502
+
503
+ if (args.conversation) {
504
+ // Graph rejects $orderby with $filter on conversationId ("InefficientFilter").
505
+ // Pull more rows than asked and sort client-side.
506
+ const cv = await graphGet('/me/messages', token, {
507
+ $filter: `conversationId eq '${args.conversation}'`,
508
+ $top: Math.max(limit, 25),
509
+ $select: 'id,subject,from,sentDateTime,receivedDateTime,isRead,bodyPreview,conversationId',
510
+ });
511
+ let msgs = cv.value || [];
512
+ msgs.sort((a, b) => (b.sentDateTime || b.receivedDateTime || '').localeCompare(a.sentDateTime || a.receivedDateTime || ''));
513
+ msgs = msgs.slice(0, limit);
514
+ if (args.json) { console.log(JSON.stringify(msgs, null, 2)); return; }
515
+ if (!msgs.length) { console.log('No messages in this conversation.'); return; }
516
+ console.log(`\n${'Sent'.padEnd(16)} ${'From'.padEnd(28)} Subject`);
517
+ console.log('─'.repeat(80));
518
+ for (const m of msgs) {
519
+ const from = (m.from?.emailAddress?.name || '').slice(0, 28).padEnd(28);
520
+ console.log(`${fmtDt(m.sentDateTime || m.receivedDateTime).padEnd(16)} ${from} ${(m.subject || '(no subject)').slice(0, 40)}`);
521
+ }
522
+ return;
523
+ }
524
+
489
525
  const params = {
490
526
  $top: limit,
491
- $select: 'id,subject,from,receivedDateTime,isRead,hasAttachments,importance',
527
+ $select: 'id,subject,from,receivedDateTime,isRead,hasAttachments,importance,bodyPreview,conversationId',
492
528
  $orderby: 'receivedDateTime desc',
493
529
  };
494
530
  if (args.search) { params.$search = `"${args.search}"`; delete params.$orderby; }
@@ -643,13 +679,18 @@ async function cmdTeams(args) {
643
679
  const limit = parseInt(args.limit) || 20;
644
680
 
645
681
  if (args.chats) {
646
- const data = await graphGet('/me/chats', token, { $top: limit, $select: 'id,topic,chatType,lastUpdatedDateTime' });
682
+ // $expand=lastMessagePreview returns the true last-message timestamp + body.
683
+ // Graph's `lastUpdatedDateTime` on the chat is frequently stale (months/years
684
+ // behind), so callers that need recency MUST read lastMessagePreview.
685
+ const data = await graphGet('/me/chats', token, { $top: limit, $expand: 'lastMessagePreview' });
647
686
  const chats = data.value || [];
648
687
  if (args.json) { console.log(JSON.stringify(chats, null, 2)); return; }
649
- console.log(`\n${'Chat ID'.padEnd(50)} ${'Type'.padEnd(10)} Topic`);
688
+ console.log(`\n${'Chat ID'.padEnd(50)} ${'Type'.padEnd(10)} Last msg Topic`);
650
689
  console.log('─'.repeat(80));
651
- for (const c of chats)
652
- console.log(`${(c.id || '').padEnd(50)} ${(c.chatType || '').padEnd(10)} ${c.topic || '(direct message)'}`);
690
+ for (const c of chats) {
691
+ const last = c.lastMessagePreview?.createdDateTime || c.lastUpdatedDateTime || '';
692
+ console.log(`${(c.id || '').padEnd(50)} ${(c.chatType || '').padEnd(10)} ${fmtDt(last).padEnd(18)} ${c.topic || '(direct message)'}`);
693
+ }
653
694
  return;
654
695
  }
655
696
 
@@ -690,10 +731,24 @@ async function cmdTeams(args) {
690
731
 
691
732
  if (args.messages) {
692
733
  // Graph returns HTTP 400 if $select is used on the Teams messages endpoint — pass $top only.
693
- const data = await graphGet(`/me/chats/${args.messages}/messages`, token, { $top: limit });
694
- const msgs = data.value || [];
734
+ // `--max N` paginates via @odata.nextLink up to N messages total (capped per page at 50 by Graph).
735
+ const max = args.max ? parseInt(args.max, 10) : null;
736
+ const perPage = max ? Math.min(50, max) : limit;
737
+ let next = `/me/chats/${args.messages}/messages?$top=${perPage}`;
738
+ const msgs = [];
739
+ while (next) {
740
+ const data = await graphGet(next.replace(GRAPH_BASE, '').replace('https://graph.microsoft.com/v1.0', ''), token, {});
741
+ for (const m of (data.value || [])) {
742
+ msgs.push(m);
743
+ if (max && msgs.length >= max) break;
744
+ }
745
+ if (max && msgs.length >= max) break;
746
+ const nl = data['@odata.nextLink'];
747
+ if (!nl || !max) break; // no pagination unless --max set
748
+ next = nl;
749
+ }
695
750
  if (args.json) { console.log(JSON.stringify(msgs, null, 2)); return; }
696
- console.log(`\nMessages in chat ${args.messages.slice(0, 20)}...:`);
751
+ console.log(`\nMessages in chat ${args.messages.slice(0, 20)}... (${msgs.length}):`);
697
752
  console.log('─'.repeat(60));
698
753
  for (const m of [...msgs].reverse()) {
699
754
  const sender = m.from?.user?.displayName || 'System';
@@ -710,10 +765,20 @@ async function cmdTeams(args) {
710
765
  }
711
766
 
712
767
  if (args.teamsList) {
713
- const data = await graphGet('/me/joinedTeams', token, { $select: 'id,displayName,description' });
714
- const teams = data.value || [];
768
+ // Prefer /me/joinedTeams (needs Team.ReadBasic.All). Fall back to /me/memberOf
769
+ // filtered client-side to groups that are also teams (uses Group.Read.All,
770
+ // which the default scope set already includes).
771
+ let teams;
772
+ try {
773
+ const data = await graphGet('/me/joinedTeams', token, { $select: 'id,displayName,description' });
774
+ teams = data.value || [];
775
+ } catch (e) {
776
+ if (!/403|Forbidden/.test(e.message)) throw e;
777
+ const data = await graphGet('/me/memberOf', token, { $select: 'id,displayName,description,resourceProvisioningOptions', $top: 200 });
778
+ teams = (data.value || []).filter(g => Array.isArray(g.resourceProvisioningOptions) && g.resourceProvisioningOptions.includes('Team'));
779
+ }
715
780
  if (args.json) { console.log(JSON.stringify(teams, null, 2)); return; }
716
- for (const t of teams) console.log(`${t.id.slice(0, 36)} ${t.displayName}`);
781
+ for (const t of teams) console.log(`${(t.id || '').slice(0, 36)} ${t.displayName}`);
717
782
  return;
718
783
  }
719
784
 
@@ -728,13 +793,13 @@ async function cmdChannels(args) {
728
793
  if (!args.teamId) {
729
794
  console.error('Error: --team-id TEAM_ID is required');
730
795
  console.log('channels --team-id ID --list');
731
- console.log(' --team-id ID --channel-id ID --messages [--limit N]');
796
+ console.log(' --team-id ID --channel-id ID --messages [--limit N] [--expand-replies]');
732
797
  console.log(' --team-id ID --channel-id ID --send MSG');
733
798
  process.exit(1);
734
799
  }
735
800
 
736
801
  if (args.list) {
737
- const data = await graphGet(`/teams/${args.teamId}/channels`, token, { $select: 'id,displayName,description' });
802
+ const data = await graphGet(`/teams/${args.teamId}/channels`, token, { $select: 'id,displayName,description,membershipType' });
738
803
  const channels = data.value || [];
739
804
  if (args.json) { console.log(JSON.stringify(channels, null, 2)); return; }
740
805
  console.log(`\n${'ID'.padEnd(50)} Name`);
@@ -744,13 +809,53 @@ async function cmdChannels(args) {
744
809
  return;
745
810
  }
746
811
 
812
+ if (args.members) {
813
+ // Use the groups endpoint (teamId == groupId) so we don't need Team.ReadBasic.All;
814
+ // pages through every member of the underlying M365 group.
815
+ const members = [];
816
+ let next = `/groups/${args.teamId}/members/microsoft.graph.user`;
817
+ let params = { $select: 'id,displayName,userPrincipalName,mail', $top: 100 };
818
+ while (next) {
819
+ const page = await graphGet(next, token, params);
820
+ for (const m of page.value || []) members.push(m);
821
+ const nl = page['@odata.nextLink'];
822
+ if (!nl) break;
823
+ // Strip the base + use as endpoint; reuse no extra params (link contains them).
824
+ next = nl.replace('https://graph.microsoft.com/v1.0', '');
825
+ params = {};
826
+ }
827
+ if (args.json) { console.log(JSON.stringify(members, null, 2)); return; }
828
+ console.log(`\nTeam members (${members.length}):`);
829
+ console.log('─'.repeat(60));
830
+ for (const m of members)
831
+ console.log(`${(m.displayName || 'N/A').padEnd(34)} ${m.userPrincipalName || m.mail || ''}`);
832
+ return;
833
+ }
834
+
747
835
  if (!args.channelId) {
748
836
  console.error('Error: --channel-id CHANNEL_ID is required');
749
837
  process.exit(1);
750
838
  }
751
839
 
840
+ if (args.replies) {
841
+ // --replies MSG_ID → replies to a specific channel message
842
+ const data = await graphGet(`/teams/${args.teamId}/channels/${args.channelId}/messages/${args.replies}/replies`, token, { $top: limit });
843
+ const reps = data.value || [];
844
+ if (args.json) { console.log(JSON.stringify(reps, null, 2)); return; }
845
+ console.log(`\nReplies to message ${args.replies.slice(0, 20)}...:`);
846
+ console.log('─'.repeat(60));
847
+ for (const r of [...reps].sort((a, b) => (a.createdDateTime || '').localeCompare(b.createdDateTime || ''))) {
848
+ const rs = r.from?.user?.displayName || 'System';
849
+ const rb = stripHtml(r.body?.content || '').slice(0, 200);
850
+ console.log(`[${fmtDt(r.createdDateTime)}] ${rs}: ${rb}`);
851
+ }
852
+ return;
853
+ }
854
+
752
855
  if (args.messages) {
753
- const data = await graphGet(`/teams/${args.teamId}/channels/${args.channelId}/messages`, token, { $top: limit });
856
+ const params = { $top: limit };
857
+ if (args.expandReplies) params.$expand = 'replies';
858
+ const data = await graphGet(`/teams/${args.teamId}/channels/${args.channelId}/messages`, token, params);
754
859
  const msgs = data.value || [];
755
860
  if (args.json) { console.log(JSON.stringify(msgs, null, 2)); return; }
756
861
  console.log(`\nMessages in channel ${args.channelId.slice(0, 30)}...:`);
@@ -759,6 +864,14 @@ async function cmdChannels(args) {
759
864
  const sender = m.from?.user?.displayName || 'System';
760
865
  const body = stripHtml(m.body?.content || '').slice(0, 200);
761
866
  console.log(`[${fmtDt(m.createdDateTime)}] ${sender}: ${body}`);
867
+ if (args.expandReplies && Array.isArray(m.replies) && m.replies.length) {
868
+ const replies = [...m.replies].sort((a, b) => (a.createdDateTime || '').localeCompare(b.createdDateTime || ''));
869
+ for (const r of replies) {
870
+ const rs = r.from?.user?.displayName || 'System';
871
+ const rb = stripHtml(r.body?.content || '').slice(0, 160);
872
+ console.log(` └─ [${fmtDt(r.createdDateTime)}] ${rs}: ${rb}`);
873
+ }
874
+ }
762
875
  }
763
876
  return;
764
877
  }
@@ -773,6 +886,7 @@ async function cmdChannels(args) {
773
886
 
774
887
  console.log('channels --team-id ID --list');
775
888
  console.log(' --team-id ID --channel-id ID --messages [--limit N]');
889
+ console.log(' --team-id ID --channel-id ID --replies MSG_ID [--limit N]');
776
890
  console.log(' --team-id ID --channel-id ID --send MSG');
777
891
  }
778
892
 
@@ -1484,8 +1598,8 @@ async function cmdTodo(args) {
1484
1598
  // ── CLI Parser ────────────────────────────────────────────────────────────────
1485
1599
  function parseArgs(argv) {
1486
1600
  const BOOL = new Set(['json','unread','sites','chats','teamsList','contacts',
1487
- 'manager','reports','availability','notebooks','list','messages','vtt','help','force',
1488
- 'plans','buckets','tasks','myTasks','lists','insights']);
1601
+ 'manager','reports','availability','notebooks','list','vtt','help','force',
1602
+ 'plans','buckets','tasks','myTasks','lists','insights','expandReplies','members']);
1489
1603
  const args = { _: [] };
1490
1604
  let i = 0;
1491
1605
  while (i < argv.length) {
@@ -1520,7 +1634,7 @@ Auth:
1520
1634
  Data:
1521
1635
  me [--json] Your profile
1522
1636
  emails [--limit N] [--unread] [--search Q] [--folder NAME]
1523
- [--read ID] [--send TO --subject S --body B] [--json]
1637
+ [--read ID] [--conversation CONV_ID] [--send TO --subject S --body B] [--json]
1524
1638
  calendar [--limit N] [--json]
1525
1639
  [--create TITLE --start DT --end DT [--location L] [--timezone TZ]]
1526
1640
  [--availability --start DT --end DT]
@@ -1528,7 +1642,9 @@ Data:
1528
1642
  teams [--chats] [--messages CHAT_ID] [--send MSG --chat-id ID] [--teams-list]
1529
1643
  [--lookup-user EMAIL] [--dm EMAIL --send MSG] [--json]
1530
1644
  channels --team-id ID --list
1531
- --team-id ID --channel-id ID --messages [--limit N]
1645
+ --team-id ID --members
1646
+ --team-id ID --channel-id ID --messages [--limit N] [--expand-replies]
1647
+ --team-id ID --channel-id ID --replies MSG_ID [--limit N]
1532
1648
  --team-id ID --channel-id ID --send MSG [--json]
1533
1649
  onedrive [--path P] [--upload FILE [--dest PATH]] [--download ID [--output FILE]]
1534
1650
  [--info ID] [--json]
@@ -1 +1 @@
1
- {"version":3,"file":"claude.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAMpF,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,KAAK;IAEtB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIxC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5F;;OAEG;YACW,eAAe;IAqE7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgNjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;CAS9B"}
1
+ {"version":3,"file":"claude.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAOpF,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,KAAK;IAEtB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIxC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5F;;OAEG;YACW,eAAe;IAqE7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA0NjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -13,6 +13,7 @@
13
13
  import { logger } from '../../../../../utils/logger.js';
14
14
  import { extractClaudeFileOperation } from '../claude-file-operation.js';
15
15
  import { extractNamedInvocations } from '../claude-named-invocations.js';
16
+ import { stripClear } from '../strip-clear.js';
16
17
  export class MetricsProcessor {
17
18
  name = 'metrics';
18
19
  priority = 1; // Run first
@@ -107,7 +108,8 @@ export class MetricsProcessor {
107
108
  /**
108
109
  * Extract deltas from Claude messages
109
110
  */
110
- extractDeltasFromMessages(messages, sessionId, agentName, processedIds, attachedUserPrompts) {
111
+ extractDeltasFromMessages(rawMessages, sessionId, agentName, processedIds, attachedUserPrompts) {
112
+ const messages = stripClear(rawMessages);
111
113
  const deltas = [];
112
114
  const messagesByUuid = new Map();
113
115
  for (const msg of messages) {
@@ -143,9 +145,16 @@ export class MetricsProcessor {
143
145
  }
144
146
  }
145
147
  }
146
- // Build user prompts map: uuid → text content
148
+ let lastProcessedMsgIndex = -1;
149
+ for (let i = 0; i < messages.length; i++) {
150
+ const msg = messages[i];
151
+ if (msg.message?.role === 'assistant' && msg.message?.id && processedIds.has(msg.message.id)) {
152
+ lastProcessedMsgIndex = i;
153
+ }
154
+ }
147
155
  const userPromptsMap = new Map();
148
- for (const msg of messages) {
156
+ for (let i = lastProcessedMsgIndex + 1; i < messages.length; i++) {
157
+ const msg = messages[i];
149
158
  if (msg.message?.role === 'user' &&
150
159
  msg.uuid &&
151
160
  !this.isSyntheticUserPrompt(msg, messagesByUuid)) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.metrics-processor.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.metrics-processor.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Returns `messages` with everything up to and including the last /clear sentinel removed.
3
+ *
4
+ * Claude Code writes the /clear sentinel into the NEW session file it creates on /clear — not the
5
+ * old one. So the sentinel is always the first meaningful entry in a post-/clear transcript. This
6
+ * function strips it (and any metadata before it) so it is never mistaken for a real user prompt.
7
+ *
8
+ * - No /clear → returns the original array unchanged.
9
+ * - /clear present → returns only messages that follow the last sentinel.
10
+ */
11
+ export declare function stripClear(messages: unknown[]): unknown[];
12
+ //# sourceMappingURL=strip-clear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-clear.d.ts","sourceRoot":"","sources":["../../../../../src/agents/plugins/claude/session/strip-clear.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAsBzD"}
@@ -0,0 +1,34 @@
1
+ const CLEAR_MARKER = '<command-name>/clear</command-name>';
2
+ /**
3
+ * Returns `messages` with everything up to and including the last /clear sentinel removed.
4
+ *
5
+ * Claude Code writes the /clear sentinel into the NEW session file it creates on /clear — not the
6
+ * old one. So the sentinel is always the first meaningful entry in a post-/clear transcript. This
7
+ * function strips it (and any metadata before it) so it is never mistaken for a real user prompt.
8
+ *
9
+ * - No /clear → returns the original array unchanged.
10
+ * - /clear present → returns only messages that follow the last sentinel.
11
+ */
12
+ export function stripClear(messages) {
13
+ let start = 0;
14
+ for (let i = 0; i < messages.length; i++) {
15
+ const m = messages[i];
16
+ if (!m || typeof m !== 'object')
17
+ continue;
18
+ const r = m;
19
+ if (r.type !== 'user')
20
+ continue;
21
+ const content = r.message?.content;
22
+ const isClear = (typeof content === 'string' && content.includes(CLEAR_MARKER)) ||
23
+ (Array.isArray(content) &&
24
+ content.some((b) => b &&
25
+ typeof b === 'object' &&
26
+ b.type === 'text' &&
27
+ typeof b.text === 'string' &&
28
+ b.text.includes(CLEAR_MARKER)));
29
+ if (isClear)
30
+ start = i + 1;
31
+ }
32
+ return start === 0 ? messages : messages.slice(start);
33
+ }
34
+ //# sourceMappingURL=strip-clear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-clear.js","sourceRoot":"","sources":["../../../../../src/agents/plugins/claude/session/strip-clear.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,QAAmB;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAChC,MAAM,OAAO,GAAI,CAAC,CAAC,OAA+C,EAAE,OAAO,CAAC;QAC5E,MAAM,OAAO,GACX,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/D,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrB,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;oBACD,OAAO,CAAC,KAAK,QAAQ;oBACpB,CAA6B,CAAC,IAAI,KAAK,MAAM;oBAC9C,OAAQ,CAA6B,CAAC,IAAI,KAAK,QAAQ;oBACrD,CAA6B,CAAC,IAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CACzE,CAAC,CAAC;QACP,IAAI,OAAO;YAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC"}
@@ -34,6 +34,7 @@ export interface CodexSessionMeta {
34
34
  /** turn_context record — may appear multiple times; last value wins for model extraction */
35
35
  export interface CodexTurnContext {
36
36
  cwd: string;
37
+ turn_id?: string;
37
38
  approval_policy?: string;
38
39
  sandbox_policy?: string;
39
40
  model?: string;
@@ -50,10 +51,31 @@ export interface CodexResponseItem {
50
51
  call_id?: string;
51
52
  output?: string;
52
53
  }
53
- /** event_msg record — user messages and other session events */
54
+ /** event_msg record — user messages, token metering, task lifecycle, collaboration */
54
55
  export interface CodexEventMsg {
55
- type: 'user_message' | string;
56
+ type: 'user_message' | 'token_count' | 'task_started' | 'task_complete' | 'agent_message' | 'collab_agent_spawn_end' | 'collab_waiting_end' | string;
56
57
  message?: string;
58
+ turn_id?: string;
59
+ call_id?: string;
60
+ new_thread_id?: string;
61
+ new_agent_role?: string;
62
+ new_agent_nickname?: string;
63
+ info?: {
64
+ total_token_usage?: CodexTokenUsageBlock;
65
+ last_token_usage?: CodexTokenUsageBlock;
66
+ model_context_window?: number;
67
+ } | null;
68
+ agent_statuses?: Array<{
69
+ thread_id?: string;
70
+ agent_role?: string;
71
+ }>;
72
+ }
73
+ export interface CodexTokenUsageBlock {
74
+ input_tokens?: number;
75
+ cached_input_tokens?: number;
76
+ output_tokens?: number;
77
+ reasoning_output_tokens?: number;
78
+ total_tokens?: number;
57
79
  }
58
80
  /**
59
81
  * Extended ParsedSession metadata specific to the Codex plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-message-types.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex-message-types.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAIH,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,CAAC;IACtE,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,CAAC;CAClF;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,CAQjG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,oBAAoB,CAMpF"}
1
+ {"version":3,"file":"codex-message-types.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex-message-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-message-types.js","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex-message-types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAgE9D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAAiC,CAAC,cAAc,KAAK,QAAQ,EACrE,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,4DAA4D,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAAiC,CAAC,cAAc,KAAK,QAAQ,CACtE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"codex-message-types.js","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex-message-types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA4F9D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAAiC,CAAC,cAAc,KAAK,QAAQ,EACrE,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,4DAA4D,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAAiC,CAAC,cAAc,KAAK,QAAQ,CACtE,CAAC;AACJ,CAAC"}
@@ -10,10 +10,21 @@
10
10
  * References:
11
11
  * - https://developers.openai.com/codex/config-advanced
12
12
  */
13
+ /** Label used when discovering rollouts under the native Codex home. */
14
+ export type CodexDiscoveryAgentName = 'codex' | 'codemie-codex';
15
+ export interface CodexDiscoveryRoot {
16
+ sessionsPath: string;
17
+ agentName: CodexDiscoveryAgentName;
18
+ }
13
19
  /**
14
20
  * Returns the Codex home directory.
15
21
  */
16
22
  export declare function getCodexHomePath(): string;
23
+ /**
24
+ * Session roots scanned for analytics native discovery.
25
+ * Native `codex` uses ~/.codex/sessions; `codemie-codex` isolates state under ~/.codex/codemie/home.
26
+ */
27
+ export declare function getCodexDiscoverySessionRoots(): CodexDiscoveryRoot[];
17
28
  /**
18
29
  * Returns the Codex sessions base directory.
19
30
  * Returns null if the directory does not exist (Codex not run yet).
@@ -1 +1 @@
1
- {"version":3,"file":"codex.paths.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.paths.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAMH;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKzD"}
1
+ {"version":3,"file":"codex.paths.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.paths.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAMH,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,kBAAkB,EAAE,CA2BpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKzD"}
@@ -20,6 +20,35 @@ import { existsSync } from 'fs';
20
20
  export function getCodexHomePath() {
21
21
  return process.env.CODEX_HOME || join(homedir(), '.codex');
22
22
  }
23
+ /**
24
+ * Session roots scanned for analytics native discovery.
25
+ * Native `codex` uses ~/.codex/sessions; `codemie-codex` isolates state under ~/.codex/codemie/home.
26
+ */
27
+ export function getCodexDiscoverySessionRoots() {
28
+ const nativeHome = join(homedir(), '.codex');
29
+ const candidates = [
30
+ { sessionsPath: join(nativeHome, 'sessions'), agentName: 'codex' },
31
+ { sessionsPath: join(nativeHome, 'codemie', 'home', 'sessions'), agentName: 'codemie-codex' },
32
+ ];
33
+ const codexHome = process.env.CODEX_HOME;
34
+ if (codexHome) {
35
+ const envSessions = join(codexHome, 'sessions');
36
+ if (!candidates.some((c) => c.sessionsPath === envSessions)) {
37
+ const agentName = codexHome.includes(`${join('.codex', 'codemie', 'home')}`) ? 'codemie-codex' : 'codex';
38
+ candidates.push({ sessionsPath: envSessions, agentName });
39
+ }
40
+ }
41
+ const seen = new Set();
42
+ const out = [];
43
+ for (const root of candidates) {
44
+ if (seen.has(root.sessionsPath) || !existsSync(root.sessionsPath)) {
45
+ continue;
46
+ }
47
+ seen.add(root.sessionsPath);
48
+ out.push(root);
49
+ }
50
+ return out;
51
+ }
23
52
  /**
24
53
  * Returns the Codex sessions base directory.
25
54
  * Returns null if the directory does not exist (Codex not run yet).
@@ -1 +1 @@
1
- {"version":3,"file":"codex.paths.js","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.paths.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"codex.paths.js","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.paths.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ export declare class CodexSessionAdapter implements SessionAdapter {
40
40
  * 5. Return sorted by mtime descending (newest first)
41
41
  */
42
42
  discoverSessions(options?: SessionDiscoveryOptions): Promise<SessionDescriptor[]>;
43
+ private scanSessionsDirectory;
43
44
  /**
44
45
  * Parse a Codex rollout JSONL file into ParsedSession format.
45
46
  *
@@ -50,6 +51,11 @@ export declare class CodexSessionAdapter implements SessionAdapter {
50
51
  * - event_msg (user_message) → preserved in messages
51
52
  */
52
53
  parseSessionFile(filePath: string, sessionId: string): Promise<ParsedSession>;
54
+ /**
55
+ * Load child rollout files referenced by spawn/wait collaboration so analytics
56
+ * can price sub-agent dispatches and include child token usage in the session total.
57
+ */
58
+ private loadLinkedSubagentRollouts;
53
59
  /**
54
60
  * Process a Codex session file with all registered processors.
55
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"codex.session.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.session.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,qCAAqC,CAAC;AACjH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiBzD,qBAAa,mBAAoB,YAAW,cAAc;IAI5C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,QAAQ,CAAC,SAAS,WAAW;IAC7B,OAAO,CAAC,UAAU,CAA0B;gBAEf,QAAQ,EAAE,aAAa;IAOpD,OAAO,CAAC,oBAAoB;IAM5B,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;YAMtC,gBAAgB;IA2B9B;;;;;;;;;OASG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAwHvF;;;;;;;;OAQG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAsEnF;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CAiE7B"}
1
+ {"version":3,"file":"codex.session.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/codex/codex.session.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,qCAAqC,CAAC;AACjH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBzD,qBAAa,mBAAoB,YAAW,cAAc;IAI5C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,QAAQ,CAAC,SAAS,WAAW;IAC7B,OAAO,CAAC,UAAU,CAA0B;gBAEf,QAAQ,EAAE,aAAa;IAOpD,OAAO,CAAC,oBAAoB;IAM5B,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;YAMtC,gBAAgB;IA2B9B;;;;;;;;;OASG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YA8BzE,qBAAqB;IAwGnC;;;;;;;;OAQG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAsEnF;;;OAGG;YACW,0BAA0B;IAwCxC;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CAiE7B"}