crewly 1.20.191 → 1.20.192

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 (132) hide show
  1. package/config/skills/agent/core/send-message/SKILL.md +6 -0
  2. package/config/skills/agent/core/send-message/execute.sh +17 -1
  3. package/config/skills/agent/core/send-message/execute.test.sh +81 -0
  4. package/dist/backend/backend/src/constants.d.ts +46 -0
  5. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  6. package/dist/backend/backend/src/constants.js +47 -1
  7. package/dist/backend/backend/src/constants.js.map +1 -1
  8. package/dist/backend/backend/src/controllers/canva/canva.controller.js +2 -2
  9. package/dist/backend/backend/src/controllers/canva/canva.controller.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.d.ts +1 -1
  11. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js +1 -1
  12. package/dist/backend/backend/src/controllers/google/google.controller.js +2 -2
  13. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js +2 -2
  15. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +45 -2
  18. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/security/approvals.controller.d.ts +26 -0
  20. package/dist/backend/backend/src/controllers/security/approvals.controller.d.ts.map +1 -0
  21. package/dist/backend/backend/src/controllers/security/approvals.controller.js +73 -0
  22. package/dist/backend/backend/src/controllers/security/approvals.controller.js.map +1 -0
  23. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  24. package/dist/backend/backend/src/controllers/session/session.controller.js +9 -0
  25. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  26. package/dist/backend/backend/src/controllers/slack/slack.controller.js +1 -1
  27. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/system/usage.controller.d.ts +3 -3
  29. package/dist/backend/backend/src/controllers/system/usage.controller.js +3 -3
  30. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  31. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  32. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  33. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts +8 -0
  34. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/browser/browser-approval.service.js +10 -0
  36. package/dist/backend/backend/src/services/browser/browser-approval.service.js.map +1 -1
  37. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +31 -0
  38. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  39. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -0
  40. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  41. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.client.d.ts +1 -1
  42. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.client.js +1 -1
  43. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.service.d.ts +1 -1
  44. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.service.js +1 -1
  45. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +9 -0
  46. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  47. package/dist/backend/backend/src/services/decisions/decision.service.js +11 -0
  48. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  49. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.d.ts +54 -0
  50. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.d.ts.map +1 -0
  51. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.js +65 -0
  52. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.js.map +1 -0
  53. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +71 -1
  54. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +149 -44
  56. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -1
  57. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +9 -33
  59. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts +2 -1
  61. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/monitoring/model-pricing.js +13 -0
  63. package/dist/backend/backend/src/services/monitoring/model-pricing.js.map +1 -1
  64. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +9 -0
  65. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +32 -3
  67. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  68. package/dist/backend/backend/src/services/security/approval-activity.service.d.ts +203 -0
  69. package/dist/backend/backend/src/services/security/approval-activity.service.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/security/approval-activity.service.js +279 -0
  71. package/dist/backend/backend/src/services/security/approval-activity.service.js.map +1 -0
  72. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/skill/skill.service.js +14 -3
  74. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  75. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts +22 -0
  76. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js +50 -0
  78. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js.map +1 -1
  79. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +45 -1
  80. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +214 -20
  82. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/spend/spend-cap-command.js +1 -1
  84. package/dist/backend/backend/src/services/spend/spend-cap-command.js.map +1 -1
  85. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts +48 -1
  86. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/spend/spend-cap.service.js +85 -2
  88. package/dist/backend/backend/src/services/spend/spend-cap.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts +73 -13
  90. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/usage/usage-stats.service.js +137 -56
  92. package/dist/backend/backend/src/services/usage/usage-stats.service.js.map +1 -1
  93. package/dist/backend/build-info.json +2 -2
  94. package/dist/cli/backend/src/constants.d.ts +46 -0
  95. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  96. package/dist/cli/backend/src/constants.js +47 -1
  97. package/dist/cli/backend/src/constants.js.map +1 -1
  98. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +31 -0
  99. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  100. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -0
  101. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  102. package/dist/cli/backend/src/services/cloud/cloud-device-pairing.client.d.ts +1 -1
  103. package/dist/cli/backend/src/services/cloud/cloud-device-pairing.client.js +1 -1
  104. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +9 -0
  105. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  106. package/dist/cli/backend/src/services/decisions/decision.service.js +11 -0
  107. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  108. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts +2 -1
  109. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts.map +1 -1
  110. package/dist/cli/backend/src/services/monitoring/model-pricing.js +13 -0
  111. package/dist/cli/backend/src/services/monitoring/model-pricing.js.map +1 -1
  112. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +9 -0
  113. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  114. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +32 -3
  115. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  116. package/dist/cli/backend/src/services/skill/skill.service.d.ts.map +1 -1
  117. package/dist/cli/backend/src/services/skill/skill.service.js +14 -3
  118. package/dist/cli/backend/src/services/skill/skill.service.js.map +1 -1
  119. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts +22 -0
  120. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -1
  121. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js +50 -0
  122. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js.map +1 -1
  123. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +45 -1
  124. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  125. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +214 -20
  126. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  127. package/frontend/dist/assets/index-5b7af029.js +4955 -0
  128. package/frontend/dist/assets/index-fc715ec3.css +42 -0
  129. package/frontend/dist/index.html +2 -2
  130. package/package.json +1 -1
  131. package/frontend/dist/assets/index-20a67829.css +0 -42
  132. package/frontend/dist/assets/index-49f50b45.js +0 -4952
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Daily token cap gate for the direct write paths (issue #937).
3
+ *
4
+ * `AgentRegistrationService.sendMessageToAgent` gates `/terminal/:s/deliver`
5
+ * (specs/2026-10-02-spend-cap.md). Several HTTP paths write a message into a
6
+ * session without going through it:
7
+ *
8
+ * - `POST /terminal/:s/write` with `mode: "message"` (the agent
9
+ * `send-message` skill, the WorkItem dispatcher, TL auto-verify, the
10
+ * worktree notifier) and any `/write` to an in-process runtime;
11
+ * - `POST /terminal/:s/deliver` with `force: true`;
12
+ * - `POST /sessions/:name/write` with `mode: "message"`.
13
+ *
14
+ * A capped agent that received a message on one of them started a new turn
15
+ * and spent past its cap. {@link queueIfSpendCapped} puts such a message on
16
+ * the same persistent `SubAgentMessageQueue` that `sendMessageToAgent` uses,
17
+ * so the spend-cap service releases it (boost, raised cap, midnight) exactly
18
+ * like a message queued by `/deliver`.
19
+ *
20
+ * Raw keystroke writes (`/write` without `mode: "message"`, `/key`, `/input`,
21
+ * the UI terminal socket) are deliberately NOT gated: they carry the control
22
+ * keys (Enter, Ctrl-C, Escape) the owner needs to manage a stopped session.
23
+ *
24
+ * @module services/messaging/spend-capped-delivery
25
+ */
26
+ import { SPEND_CAP_CONSTANTS } from '../../constants.js';
27
+ import { LoggerService } from '../core/logger.service.js';
28
+ import { spendCapReason, spendCapStopOf } from '../spend/spend-cap.gate.js';
29
+ import { SubAgentMessageQueue } from './sub-agent-message-queue.service.js';
30
+ const logger = LoggerService.getInstance().createComponentLogger('SpendCappedDelivery');
31
+ /**
32
+ * Queue a message instead of writing it when the target is over its daily
33
+ * token cap.
34
+ *
35
+ * @param sessionName - Target session
36
+ * @param message - Message text that would start a turn
37
+ * @param enqueue - Queue to hold it on (default: the persistent `SubAgentMessageQueue`)
38
+ * @returns The 202 body when the message was queued; null when the agent may
39
+ * take a new turn (no cap in force, or the gate is not wired)
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const capped = queueIfSpendCapped(sessionName, text);
44
+ * if (capped) { res.status(202).json(capped); return; }
45
+ * ```
46
+ */
47
+ export function queueIfSpendCapped(sessionName, message, enqueue = (s, m) => SubAgentMessageQueue.getInstance().enqueue(s, m)) {
48
+ const stop = spendCapStopOf(sessionName);
49
+ if (!stop)
50
+ return null;
51
+ enqueue(sessionName, message);
52
+ logger.info('Daily token cap reached — message queued, no new turn', {
53
+ sessionName,
54
+ capTokens: stop.capTokens,
55
+ scope: stop.scope,
56
+ messageLength: message.length,
57
+ });
58
+ return {
59
+ success: true,
60
+ queued: true,
61
+ spendCapped: true,
62
+ message: `${SPEND_CAP_CONSTANTS.QUEUED_MARKER} ${spendCapReason(stop)}; message queued`,
63
+ };
64
+ }
65
+ //# sourceMappingURL=spend-capped-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-capped-delivery.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/spend-capped-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAe5E,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CACjC,WAAmB,EACnB,OAAe,EACf,UAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAErF,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;QACpE,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa,EAAE,OAAO,CAAC,MAAM;KAC7B,CAAC,CAAC;IACH,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,GAAG,mBAAmB,CAAC,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,kBAAkB;KACvF,CAAC;AACH,CAAC"}
@@ -32,7 +32,76 @@ export interface SessionTokenSummary {
32
32
  */
33
33
  export declare function encodeProjectSlug(projectPath: string): string;
34
34
  /**
35
- * Returns the path to a Claude Code session JSONL file.
35
+ * Builds the ordered, de-duplicated list of Claude Code project slugs that may
36
+ * hold transcripts for a working directory.
37
+ *
38
+ * Claude Code names its project directory after the *resolved* cwd (it sees
39
+ * `process.cwd()`, which the OS has already run through any symlinks). On
40
+ * macOS `/tmp` and `/var` are symlinks into `/private`, so an agent launched
41
+ * in `/tmp/proj` writes to `-private-tmp-proj`, not `-tmp-proj` (#938).
42
+ *
43
+ * The realpath slug comes first because that is where Claude Code writes. The
44
+ * raw slug is kept as a fallback for a cwd that cannot be resolved (deleted,
45
+ * permission denied) and for transcripts written before a directory was moved
46
+ * behind a symlink. Resolution failures never throw.
47
+ *
48
+ * @param projectPath - The agent's working directory, as Crewly recorded it
49
+ * @returns Slugs to try, most likely first; never empty
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * await resolveProjectSlugCandidates('/tmp/proj');
54
+ * // macOS: ['-private-tmp-proj', '-tmp-proj']; Linux: ['-tmp-proj']
55
+ * ```
56
+ */
57
+ export declare function resolveProjectSlugCandidates(projectPath: string): Promise<string[]>;
58
+ /**
59
+ * Lists the Claude Code project directories that may hold transcripts for a
60
+ * working directory, in the order of {@link resolveProjectSlugCandidates}.
61
+ * The directories are not required to exist.
62
+ *
63
+ * @param projectPath - The agent's working directory
64
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
65
+ * @returns Absolute candidate directory paths, most likely first
66
+ */
67
+ export declare function resolveProjectDirCandidates(projectPath: string, homeDir?: string): Promise<string[]>;
68
+ /**
69
+ * Locates a known conversation's transcript across all candidate project
70
+ * directories, returning the first one that exists.
71
+ *
72
+ * @param projectPath - The agent's working directory
73
+ * @param sessionId - Claude Code conversation UUID
74
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
75
+ * @returns Absolute path to the existing .jsonl file, or null if none exists
76
+ */
77
+ export declare function findSessionJsonlPath(projectPath: string, sessionId: string, homeDir?: string): Promise<string | null>;
78
+ /**
79
+ * Lists every transcript file across all candidate project directories.
80
+ *
81
+ * Merges rather than stopping at the first existing directory: if both the
82
+ * resolved and the raw slug directories exist, the live conversation may be in
83
+ * either, and picking a directory by existence alone could lock onto a stale
84
+ * one. A file name seen in an earlier (more likely) directory shadows the same
85
+ * name in a later one, so a conversation is never listed twice.
86
+ *
87
+ * @param projectPath - The agent's working directory
88
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
89
+ * @returns Absolute paths of all .jsonl files found, grouped by candidate directory order
90
+ */
91
+ export declare function listProjectTranscripts(projectPath: string, homeDir?: string): Promise<string[]>;
92
+ /**
93
+ * Finds the most recently modified transcript across all candidate project
94
+ * directories for a working directory.
95
+ *
96
+ * @param projectPath - The agent's working directory
97
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
98
+ * @returns Absolute path of the newest .jsonl file, or null if there is none
99
+ */
100
+ export declare function findLatestSessionFile(projectPath: string, homeDir?: string): Promise<string | null>;
101
+ /**
102
+ * Returns the path to a Claude Code session JSONL file under the *raw* cwd
103
+ * slug. Does not resolve symlinks — prefer {@link findSessionJsonlPath},
104
+ * which also checks the realpath slug Claude Code actually writes to.
36
105
  *
37
106
  * @param projectPath - The agent's working directory
38
107
  * @param sessionId - Claude Code conversation UUID
@@ -43,6 +112,7 @@ export declare function getSessionJsonlPath(projectPath: string, sessionId: stri
43
112
  * Finds the most recently modified .jsonl session file in a Claude Code
44
113
  * project directory. Used as a fallback when the session ID is not known
45
114
  * (e.g. the orchestrator session, which may not have been persisted yet).
115
+ * Checks both the realpath and the raw cwd slug directories.
46
116
  *
47
117
  * @param projectPath - The agent's working directory
48
118
  * @returns The session UUID, or null if no JSONL files found
@@ -1 +1 @@
1
- {"version":3,"file":"claude-session-tokens.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-session-tokens.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsCH,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,IAAI,EACX,KAAK,CAAC,EAAE,IAAI,GACX,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAgFrC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,MAAM,EACnB,UAAU,SAAI,GACb,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
1
+ {"version":3,"file":"claude-session-tokens.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-session-tokens.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsCH,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASzF;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAqB,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAqB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAqB,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAqB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,IAAI,EACX,KAAK,CAAC,EAAE,IAAI,GACX,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiFrC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,MAAM,EACnB,UAAU,SAAI,GACb,OAAO,CAAC,MAAM,CAAC,CAsFjB"}
@@ -39,6 +39,12 @@ function calculateClaudeCost(inputTokens, outputTokens, cacheReadTokens, cacheCr
39
39
  cacheReadTokens * rates.cacheRead +
40
40
  cacheCreateTokens * rates.cacheWrite);
41
41
  }
42
+ /** Claude Code's per-user state directory, under the home directory. */
43
+ const CLAUDE_DIR_NAME = '.claude';
44
+ /** Subdirectory of {@link CLAUDE_DIR_NAME} holding one directory per project slug. */
45
+ const CLAUDE_PROJECTS_DIR_NAME = 'projects';
46
+ /** File extension of Claude Code conversation transcripts. */
47
+ const JSONL_EXTENSION = '.jsonl';
42
48
  const logger = LoggerService.getInstance().createComponentLogger('ClaudeSessionTokens');
43
49
  /**
44
50
  * Encodes an absolute path into the slug format used by Claude Code
@@ -52,44 +58,123 @@ export function encodeProjectSlug(projectPath) {
52
58
  return projectPath.replace(/[/.]/g, '-');
53
59
  }
54
60
  /**
55
- * Returns the path to a Claude Code session JSONL file.
61
+ * Builds the ordered, de-duplicated list of Claude Code project slugs that may
62
+ * hold transcripts for a working directory.
63
+ *
64
+ * Claude Code names its project directory after the *resolved* cwd (it sees
65
+ * `process.cwd()`, which the OS has already run through any symlinks). On
66
+ * macOS `/tmp` and `/var` are symlinks into `/private`, so an agent launched
67
+ * in `/tmp/proj` writes to `-private-tmp-proj`, not `-tmp-proj` (#938).
68
+ *
69
+ * The realpath slug comes first because that is where Claude Code writes. The
70
+ * raw slug is kept as a fallback for a cwd that cannot be resolved (deleted,
71
+ * permission denied) and for transcripts written before a directory was moved
72
+ * behind a symlink. Resolution failures never throw.
73
+ *
74
+ * @param projectPath - The agent's working directory, as Crewly recorded it
75
+ * @returns Slugs to try, most likely first; never empty
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * await resolveProjectSlugCandidates('/tmp/proj');
80
+ * // macOS: ['-private-tmp-proj', '-tmp-proj']; Linux: ['-tmp-proj']
81
+ * ```
82
+ */
83
+ export async function resolveProjectSlugCandidates(projectPath) {
84
+ const rawSlug = encodeProjectSlug(projectPath);
85
+ let resolvedSlug = null;
86
+ try {
87
+ resolvedSlug = encodeProjectSlug(await fs.realpath(projectPath));
88
+ }
89
+ catch {
90
+ // Nonexistent or unreadable cwd — the raw slug is the only guess left.
91
+ }
92
+ return resolvedSlug && resolvedSlug !== rawSlug ? [resolvedSlug, rawSlug] : [rawSlug];
93
+ }
94
+ /**
95
+ * Lists the Claude Code project directories that may hold transcripts for a
96
+ * working directory, in the order of {@link resolveProjectSlugCandidates}.
97
+ * The directories are not required to exist.
56
98
  *
57
99
  * @param projectPath - The agent's working directory
58
- * @param sessionId - Claude Code conversation UUID
59
- * @returns Absolute path to the .jsonl file
100
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
101
+ * @returns Absolute candidate directory paths, most likely first
60
102
  */
61
- export function getSessionJsonlPath(projectPath, sessionId) {
62
- const slug = encodeProjectSlug(projectPath);
63
- return path.join(os.homedir(), '.claude', 'projects', slug, `${sessionId}.jsonl`);
103
+ export async function resolveProjectDirCandidates(projectPath, homeDir = os.homedir()) {
104
+ const slugs = await resolveProjectSlugCandidates(projectPath);
105
+ return slugs.map((slug) => path.join(homeDir, CLAUDE_DIR_NAME, CLAUDE_PROJECTS_DIR_NAME, slug));
64
106
  }
65
107
  /**
66
- * Finds the most recently modified .jsonl session file in a Claude Code
67
- * project directory. Used as a fallback when the session ID is not known
68
- * (e.g. the orchestrator session, which may not have been persisted yet).
108
+ * Locates a known conversation's transcript across all candidate project
109
+ * directories, returning the first one that exists.
69
110
  *
70
111
  * @param projectPath - The agent's working directory
71
- * @returns The session UUID, or null if no JSONL files found
112
+ * @param sessionId - Claude Code conversation UUID
113
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
114
+ * @returns Absolute path to the existing .jsonl file, or null if none exists
72
115
  */
73
- export async function findLatestSessionId(projectPath) {
74
- const slug = encodeProjectSlug(projectPath);
75
- const dir = path.join(os.homedir(), '.claude', 'projects', slug);
76
- let files;
77
- try {
78
- files = await fs.readdir(dir);
116
+ export async function findSessionJsonlPath(projectPath, sessionId, homeDir = os.homedir()) {
117
+ for (const dir of await resolveProjectDirCandidates(projectPath, homeDir)) {
118
+ const candidate = path.join(dir, `${sessionId}${JSONL_EXTENSION}`);
119
+ try {
120
+ await fs.access(candidate);
121
+ return candidate;
122
+ }
123
+ catch {
124
+ continue;
125
+ }
79
126
  }
80
- catch {
81
- return null;
127
+ return null;
128
+ }
129
+ /**
130
+ * Lists every transcript file across all candidate project directories.
131
+ *
132
+ * Merges rather than stopping at the first existing directory: if both the
133
+ * resolved and the raw slug directories exist, the live conversation may be in
134
+ * either, and picking a directory by existence alone could lock onto a stale
135
+ * one. A file name seen in an earlier (more likely) directory shadows the same
136
+ * name in a later one, so a conversation is never listed twice.
137
+ *
138
+ * @param projectPath - The agent's working directory
139
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
140
+ * @returns Absolute paths of all .jsonl files found, grouped by candidate directory order
141
+ */
142
+ export async function listProjectTranscripts(projectPath, homeDir = os.homedir()) {
143
+ const seen = new Set();
144
+ const result = [];
145
+ for (const dir of await resolveProjectDirCandidates(projectPath, homeDir)) {
146
+ let files;
147
+ try {
148
+ files = await fs.readdir(dir);
149
+ }
150
+ catch {
151
+ continue;
152
+ }
153
+ for (const file of files) {
154
+ if (!file.endsWith(JSONL_EXTENSION) || seen.has(file))
155
+ continue;
156
+ seen.add(file);
157
+ result.push(path.join(dir, file));
158
+ }
82
159
  }
83
- const jsonlFiles = files.filter(f => f.endsWith('.jsonl'));
84
- if (jsonlFiles.length === 0)
85
- return null;
86
- let latestFile = '';
87
- let latestMtime = 0;
88
- for (const file of jsonlFiles) {
160
+ return result;
161
+ }
162
+ /**
163
+ * Finds the most recently modified transcript across all candidate project
164
+ * directories for a working directory.
165
+ *
166
+ * @param projectPath - The agent's working directory
167
+ * @param homeDir - Home directory that contains `.claude/` (defaults to the OS home)
168
+ * @returns Absolute path of the newest .jsonl file, or null if there is none
169
+ */
170
+ export async function findLatestSessionFile(projectPath, homeDir = os.homedir()) {
171
+ let latestFile = null;
172
+ let latestMtime = -1;
173
+ for (const file of await listProjectTranscripts(projectPath, homeDir)) {
89
174
  try {
90
- const stat = await fs.stat(path.join(dir, file));
91
- if (stat.mtimeMs > latestMtime) {
92
- latestMtime = stat.mtimeMs;
175
+ const { mtimeMs } = await fs.stat(file);
176
+ if (mtimeMs > latestMtime) {
177
+ latestMtime = mtimeMs;
93
178
  latestFile = file;
94
179
  }
95
180
  }
@@ -97,7 +182,33 @@ export async function findLatestSessionId(projectPath) {
97
182
  continue;
98
183
  }
99
184
  }
100
- return latestFile ? latestFile.replace('.jsonl', '') : null;
185
+ return latestFile;
186
+ }
187
+ /**
188
+ * Returns the path to a Claude Code session JSONL file under the *raw* cwd
189
+ * slug. Does not resolve symlinks — prefer {@link findSessionJsonlPath},
190
+ * which also checks the realpath slug Claude Code actually writes to.
191
+ *
192
+ * @param projectPath - The agent's working directory
193
+ * @param sessionId - Claude Code conversation UUID
194
+ * @returns Absolute path to the .jsonl file
195
+ */
196
+ export function getSessionJsonlPath(projectPath, sessionId) {
197
+ const slug = encodeProjectSlug(projectPath);
198
+ return path.join(os.homedir(), CLAUDE_DIR_NAME, CLAUDE_PROJECTS_DIR_NAME, slug, `${sessionId}${JSONL_EXTENSION}`);
199
+ }
200
+ /**
201
+ * Finds the most recently modified .jsonl session file in a Claude Code
202
+ * project directory. Used as a fallback when the session ID is not known
203
+ * (e.g. the orchestrator session, which may not have been persisted yet).
204
+ * Checks both the realpath and the raw cwd slug directories.
205
+ *
206
+ * @param projectPath - The agent's working directory
207
+ * @returns The session UUID, or null if no JSONL files found
208
+ */
209
+ export async function findLatestSessionId(projectPath) {
210
+ const latest = await findLatestSessionFile(projectPath);
211
+ return latest ? path.basename(latest, JSONL_EXTENSION) : null;
101
212
  }
102
213
  /**
103
214
  * Reads token usage from a Claude Code session JSONL, summing all
@@ -114,12 +225,13 @@ export async function findLatestSessionId(projectPath) {
114
225
  */
115
226
  export async function getTokensSince(projectPath, sessionId, since, until) {
116
227
  // Auto-detect session if not provided
117
- const resolvedId = sessionId || await findLatestSessionId(projectPath);
118
- if (!resolvedId) {
119
- logger.debug('No Claude session ID found', { projectPath });
228
+ const filePath = sessionId
229
+ ? await findSessionJsonlPath(projectPath, sessionId)
230
+ : await findLatestSessionFile(projectPath);
231
+ if (!filePath) {
232
+ logger.debug('No Claude session JSONL found', { projectPath, sessionId });
120
233
  return null;
121
234
  }
122
- const filePath = getSessionJsonlPath(projectPath, resolvedId);
123
235
  let content;
124
236
  try {
125
237
  content = await fs.readFile(filePath, 'utf-8');
@@ -208,21 +320,14 @@ export async function getTokensSince(projectPath, sessionId, since, until) {
208
320
  export async function syncSessionsToTokenUsageService(projectPath, maxAgeDays = 7) {
209
321
  const { TokenUsageService } = await import('./token-usage.service.js');
210
322
  const tokenSvc = TokenUsageService.getInstance();
211
- const slug = encodeProjectSlug(projectPath);
212
- const dir = path.join(os.homedir(), '.claude', 'projects', slug);
213
- let files;
214
- try {
215
- files = await fs.readdir(dir);
216
- }
217
- catch {
218
- logger.debug('No Claude projects directory found', { dir });
323
+ const jsonlFiles = await listProjectTranscripts(projectPath);
324
+ if (jsonlFiles.length === 0) {
325
+ logger.debug('No Claude transcripts found for project', { projectPath });
219
326
  return 0;
220
327
  }
221
- const jsonlFiles = files.filter(f => f.endsWith('.jsonl'));
222
328
  const cutoffMs = Date.now() - maxAgeDays * 24 * 60 * 60 * 1000;
223
329
  let loaded = 0;
224
- for (const file of jsonlFiles) {
225
- const filePath = path.join(dir, file);
330
+ for (const filePath of jsonlFiles) {
226
331
  try {
227
332
  const stat = await fs.stat(filePath);
228
333
  if (stat.mtimeMs < cutoffMs)
@@ -259,7 +364,7 @@ export async function syncSessionsToTokenUsageService(projectPath, maxAgeDays =
259
364
  }
260
365
  }
261
366
  if (turnCount > 0) {
262
- const sessionId = file.replace('.jsonl', '');
367
+ const sessionId = path.basename(filePath, JSONL_EXTENSION);
263
368
  const resolvedModel = model || 'claude-sonnet-4-6';
264
369
  // Calculate cost with proper cache-aware pricing
265
370
  const cost = calculateClaudeCost(sessionInput, sessionOutput, sessionCacheRead, sessionCacheCreate, resolvedModel);
@@ -1 +1 @@
1
- {"version":3,"file":"claude-session-tokens.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-session-tokens.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-session-tokens.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-session-tokens.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-transcript-sync.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-transcript-sync.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAYH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC9B,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhE,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IAC1B,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,yBAAyB,EAAE,MAAM,CAAC;CAClC;AAaD;;;;;;;;;GASG;AACH,qBAAa,2BAA2B;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IAEnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,4DAA4D;IAC5D,OAAO,CAAC,OAAO,CAAS;IAExB;;;OAGG;gBACS,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOjD;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,2BAA2B;IAOjD,uDAAuD;IACvD,MAAM,CAAC,aAAa,IAAI,IAAI;IAK5B;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIjD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,6DAA6D;IAC7D,IAAI,IAAI,IAAI;IAOZ;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAkFjC;;;;;;;;;;;;OAYG;YACW,iBAAiB;IAuD/B;;;;;;OAMG;YACW,OAAO;IAgFrB;;;;;;;;;;;OAWG;YACW,QAAQ;IAYtB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAiDlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAanB,uEAAuE;YACzD,WAAW;IAazB;;;;;;;;OAQG;YACW,kBAAkB;IA+BhC,0EAA0E;YAC5D,WAAW;IAezB;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;CAG5D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,2BAA2B,CAErE"}
1
+ {"version":3,"file":"claude-transcript-sync.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-transcript-sync.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAYH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC9B,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhE,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IAC1B,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,yBAAyB,EAAE,MAAM,CAAC;CAClC;AAaD;;;;;;;;;GASG;AACH,qBAAa,2BAA2B;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IAEnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,4DAA4D;IAC5D,OAAO,CAAC,OAAO,CAAS;IAExB;;;OAGG;gBACS,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOjD;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,2BAA2B;IAOjD,uDAAuD;IACvD,MAAM,CAAC,aAAa,IAAI,IAAI;IAK5B;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIjD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,6DAA6D;IAC7D,IAAI,IAAI,IAAI;IAOZ;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAkFjC;;;;;;;;;;;;OAYG;YACW,iBAAiB;IA+B/B;;;;;;OAMG;YACW,OAAO;IAgFrB;;;;;;;;;;;OAWG;YACW,QAAQ;IAYtB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAiDlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAanB,uEAAuE;YACzD,WAAW;IAazB;;;;;;;;OAQG;YACW,kBAAkB;IA+BhC,0EAA0E;YAC5D,WAAW;IAezB;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;CAG5D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,2BAA2B,CAErE"}
@@ -39,7 +39,7 @@ import { getSessionStatePersistence } from '../session/session-state-persistence
39
39
  import { TokenUsageService } from './token-usage.service.js';
40
40
  import { calculateCost } from './model-pricing.js';
41
41
  import { CLAUDE_TRANSCRIPT_SYNC_CONSTANTS } from '../../constants.js';
42
- import { encodeProjectSlug } from './claude-session-tokens.service.js';
42
+ import { findLatestSessionFile, findSessionJsonlPath } from './claude-session-tokens.service.js';
43
43
  /**
44
44
  * Reads Claude Code transcripts on an interval and records exact token usage.
45
45
  *
@@ -227,16 +227,15 @@ export class ClaudeTranscriptSyncService {
227
227
  * @returns Absolute path, or null when nothing readable exists
228
228
  */
229
229
  async resolveTranscript(cwd, claudeSessionId, cwdIsShared) {
230
- const dir = path.join(this.homeDir, '.claude', 'projects', encodeProjectSlug(cwd));
230
+ // Claude Code files transcripts under the *resolved* cwd, so a cwd that
231
+ // goes through a symlink (/tmp on macOS) lands in a different slug
232
+ // directory than the raw path suggests (#938). Both lookups below check
233
+ // the realpath slug first, then the raw slug.
231
234
  if (claudeSessionId) {
232
- const direct = path.join(dir, `${claudeSessionId}.jsonl`);
233
- try {
234
- await fs.access(direct);
235
+ const direct = await findSessionJsonlPath(cwd, claudeSessionId, this.homeDir);
236
+ if (direct)
235
237
  return direct;
236
- }
237
- catch {
238
- // Recorded id has no file — fall through to newest-wins.
239
- }
238
+ // Recorded id has no file — fall through to newest-wins.
240
239
  }
241
240
  // Newest transcript in the project directory. Covers an agent whose
242
241
  // conversation id Crewly has not captured yet.
@@ -251,30 +250,7 @@ export class ClaudeTranscriptSyncService {
251
250
  // dashboard its meaning.
252
251
  if (cwdIsShared)
253
252
  return null;
254
- let files;
255
- try {
256
- files = await fs.readdir(dir);
257
- }
258
- catch {
259
- return null;
260
- }
261
- let newest = '';
262
- let newestMtime = -1;
263
- for (const file of files) {
264
- if (!file.endsWith('.jsonl'))
265
- continue;
266
- try {
267
- const { mtimeMs } = await fs.stat(path.join(dir, file));
268
- if (mtimeMs > newestMtime) {
269
- newestMtime = mtimeMs;
270
- newest = file;
271
- }
272
- }
273
- catch {
274
- continue;
275
- }
276
- }
277
- return newest ? path.join(dir, newest) : null;
253
+ return findLatestSessionFile(cwd, this.homeDir);
278
254
  }
279
255
  /**
280
256
  * Consume the unread tail of one transcript and record what it holds.
@@ -1 +1 @@
1
- {"version":3,"file":"claude-transcript-sync.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-transcript-sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-transcript-sync.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/claude-transcript-sync.service.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,8 @@ export interface ModelRate {
37
37
  export interface ResolvedModelRate extends ModelRate {
38
38
  /**
39
39
  * `exact` — the model id is listed by name.
40
- * `family` — matched on an `opus`/`sonnet`/`haiku`/`fable` substring.
40
+ * `family` — matched on a family substring (`opus`/`sonnet`/`haiku`/
41
+ * `fable`, `deepseek`, `gpt-5`, `gemini-2.5-pro|flash`).
41
42
  * `default` — nothing matched; the sonnet tier was assumed.
42
43
  *
43
44
  * Anything other than `exact` means the cost is an estimate.
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IACnD;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CACvC;AAYD,iDAAiD;AACjD,eAAO,MAAM,SAAS,WAAiC,CAAC;AACxD,mDAAmD;AACnD,eAAO,MAAM,WAAW,WAA+B,CAAC;AACxD,kEAAkE;AAClE,eAAO,MAAM,UAAU,WAA8B,CAAC;AAsCtD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAW5D;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IAC1B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAAE,CAQ/E"}
1
+ {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IACnD;;;;;;;OAOG;IACH,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CACvC;AAYD,iDAAiD;AACjD,eAAO,MAAM,SAAS,WAAiC,CAAC;AACxD,mDAAmD;AACnD,eAAO,MAAM,WAAW,WAA+B,CAAC;AACxD,kEAAkE;AAClE,eAAO,MAAM,UAAU,WAA8B,CAAC;AAmDtD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAW5D;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IAC1B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAAE,CAQ/E"}