oh-my-claude-sisyphus 3.6.0 → 3.6.2
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/commands/omc-setup.md +3 -3
- package/commands/psm.md +180 -0
- package/commands/release.md +1 -1
- package/dist/__tests__/analytics/transcript-scanner.test.js +69 -27
- package/dist/__tests__/analytics/transcript-scanner.test.js.map +1 -1
- package/dist/__tests__/installer.test.js +2 -1
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/analytics/session-manager.d.ts +24 -0
- package/dist/analytics/session-manager.d.ts.map +1 -1
- package/dist/analytics/session-manager.js +98 -9
- package/dist/analytics/session-manager.js.map +1 -1
- package/dist/analytics/transcript-scanner.d.ts +9 -8
- package/dist/analytics/transcript-scanner.d.ts.map +1 -1
- package/dist/analytics/transcript-scanner.js +146 -16
- package/dist/analytics/transcript-scanner.js.map +1 -1
- package/dist/hooks/empty-message-sanitizer/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/empty-message-sanitizer/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js +416 -0
- package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js.map +1 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.js +427 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -0
- package/dist/hooks/subagent-tracker/index.d.ts +83 -0
- package/dist/hooks/subagent-tracker/index.d.ts.map +1 -0
- package/dist/hooks/subagent-tracker/index.js +207 -0
- package/dist/hooks/subagent-tracker/index.js.map +1 -0
- package/dist/hooks/think-mode/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/think-mode/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/think-mode/__tests__/index.test.js +556 -0
- package/dist/hooks/think-mode/__tests__/index.test.js.map +1 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +8 -0
- package/dist/installer/index.js.map +1 -1
- package/docs/design/project-session-manager.md +1033 -0
- package/package.json +1 -1
- package/skills/omc-setup/SKILL.md +27 -3
- package/skills/project-session-manager/SKILL.md +410 -0
- package/skills/project-session-manager/lib/config.sh +86 -0
- package/skills/project-session-manager/lib/parse.sh +121 -0
- package/skills/project-session-manager/lib/session.sh +132 -0
- package/skills/project-session-manager/lib/tmux.sh +103 -0
- package/skills/project-session-manager/lib/worktree.sh +171 -0
- package/skills/project-session-manager/psm.sh +629 -0
- package/skills/project-session-manager/templates/feature.md +56 -0
- package/skills/project-session-manager/templates/issue-fix.md +57 -0
- package/skills/project-session-manager/templates/pr-review.md +65 -0
- package/skills/project-session-manager/templates/projects.json +19 -0
- package/skills/release/SKILL.md +1 -1
|
@@ -1,6 +1,85 @@
|
|
|
1
1
|
import { readState, writeState, StateLocation } from '../features/state-manager/index.js';
|
|
2
2
|
import { getTokenTracker } from './token-tracker.js';
|
|
3
|
+
import { getGitDiffStats } from '../hooks/omc-orchestrator/index.js';
|
|
4
|
+
import * as path from 'path';
|
|
3
5
|
const SESSION_HISTORY_FILE = 'session-history';
|
|
6
|
+
/**
|
|
7
|
+
* Source file extensions to track for filesModified
|
|
8
|
+
*/
|
|
9
|
+
const SOURCE_FILE_EXTENSIONS = new Set([
|
|
10
|
+
'.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
|
|
11
|
+
'.py', '.rb', '.go', '.rs', '.java', '.kt', '.scala',
|
|
12
|
+
'.c', '.cpp', '.cc', '.h', '.hpp',
|
|
13
|
+
'.cs', '.fs', '.vb',
|
|
14
|
+
'.swift', '.m', '.mm',
|
|
15
|
+
'.php', '.lua', '.pl', '.pm',
|
|
16
|
+
'.sh', '.bash', '.zsh', '.fish',
|
|
17
|
+
'.sql', '.graphql', '.gql',
|
|
18
|
+
'.html', '.css', '.scss', '.sass', '.less',
|
|
19
|
+
'.json', '.yaml', '.yml', '.toml', '.xml',
|
|
20
|
+
'.md', '.mdx', '.txt',
|
|
21
|
+
'.vue', '.svelte', '.astro',
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* Internal storage for session activity tracking
|
|
25
|
+
*/
|
|
26
|
+
const sessionActivity = new Map();
|
|
27
|
+
/**
|
|
28
|
+
* Record a completed task for a session
|
|
29
|
+
*/
|
|
30
|
+
export function recordTaskCompleted(sessionId) {
|
|
31
|
+
const activity = sessionActivity.get(sessionId) || { tasksCompleted: 0, errorCount: 0 };
|
|
32
|
+
activity.tasksCompleted++;
|
|
33
|
+
sessionActivity.set(sessionId, activity);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Record an error for a session
|
|
37
|
+
*/
|
|
38
|
+
export function recordError(sessionId) {
|
|
39
|
+
const activity = sessionActivity.get(sessionId) || { tasksCompleted: 0, errorCount: 0 };
|
|
40
|
+
activity.errorCount++;
|
|
41
|
+
sessionActivity.set(sessionId, activity);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get session activity metrics
|
|
45
|
+
*/
|
|
46
|
+
export function getSessionActivity(sessionId) {
|
|
47
|
+
return sessionActivity.get(sessionId) || { tasksCompleted: 0, errorCount: 0 };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Clear session activity (called when session ends)
|
|
51
|
+
*/
|
|
52
|
+
export function clearSessionActivity(sessionId) {
|
|
53
|
+
sessionActivity.delete(sessionId);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get modified files from git diff, filtered to source files
|
|
57
|
+
*/
|
|
58
|
+
function getModifiedSourceFiles(projectPath) {
|
|
59
|
+
try {
|
|
60
|
+
const gitStats = getGitDiffStats(projectPath);
|
|
61
|
+
return gitStats
|
|
62
|
+
.map(stat => stat.path)
|
|
63
|
+
.filter(filePath => {
|
|
64
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
65
|
+
return SOURCE_FILE_EXTENSIONS.has(ext);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Git might not be available or not a git repo
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate success rate from tasks and errors
|
|
75
|
+
*/
|
|
76
|
+
function calculateSuccessRate(tasksCompleted, errorCount) {
|
|
77
|
+
const total = tasksCompleted + errorCount;
|
|
78
|
+
if (total === 0) {
|
|
79
|
+
return 1.0; // Default to 100% when no tasks tracked
|
|
80
|
+
}
|
|
81
|
+
return tasksCompleted / total;
|
|
82
|
+
}
|
|
4
83
|
export class SessionManager {
|
|
5
84
|
currentSession = null;
|
|
6
85
|
history = null;
|
|
@@ -65,18 +144,28 @@ export class SessionManager {
|
|
|
65
144
|
async getSessionAnalytics(sessionId) {
|
|
66
145
|
const tracker = getTokenTracker();
|
|
67
146
|
const stats = await tracker.loadSessionStats(sessionId);
|
|
147
|
+
// Get session activity metrics
|
|
148
|
+
const activity = getSessionActivity(sessionId);
|
|
149
|
+
// Get session metadata to find project path
|
|
150
|
+
const history = await this.loadHistory();
|
|
151
|
+
const sessionMeta = history.sessions.find(s => s.id === sessionId);
|
|
152
|
+
const projectPath = sessionMeta?.projectPath || this.currentSession?.projectPath || process.cwd();
|
|
153
|
+
// Get modified files from git
|
|
154
|
+
const filesModified = getModifiedSourceFiles(projectPath);
|
|
155
|
+
// Calculate success rate
|
|
156
|
+
const successRate = calculateSuccessRate(activity.tasksCompleted, activity.errorCount);
|
|
68
157
|
if (!stats) {
|
|
69
|
-
// Return
|
|
158
|
+
// Return analytics with activity tracking but no token stats
|
|
70
159
|
return {
|
|
71
160
|
sessionId,
|
|
72
161
|
totalTokens: 0,
|
|
73
162
|
totalCost: 0,
|
|
74
163
|
agentUsage: {},
|
|
75
164
|
modelUsage: {},
|
|
76
|
-
filesModified
|
|
77
|
-
tasksCompleted:
|
|
78
|
-
errorCount:
|
|
79
|
-
successRate
|
|
165
|
+
filesModified,
|
|
166
|
+
tasksCompleted: activity.tasksCompleted,
|
|
167
|
+
errorCount: activity.errorCount,
|
|
168
|
+
successRate
|
|
80
169
|
};
|
|
81
170
|
}
|
|
82
171
|
// Aggregate agent usage
|
|
@@ -96,10 +185,10 @@ export class SessionManager {
|
|
|
96
185
|
totalCost: stats.totalCost,
|
|
97
186
|
agentUsage,
|
|
98
187
|
modelUsage,
|
|
99
|
-
filesModified
|
|
100
|
-
tasksCompleted:
|
|
101
|
-
errorCount:
|
|
102
|
-
successRate
|
|
188
|
+
filesModified,
|
|
189
|
+
tasksCompleted: activity.tasksCompleted,
|
|
190
|
+
errorCount: activity.errorCount,
|
|
191
|
+
successRate
|
|
103
192
|
};
|
|
104
193
|
}
|
|
105
194
|
async getSessionSummary(sessionId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/analytics/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAE1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/analytics/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAE1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C;;GAEG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC5C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;IACpD,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;IACjC,KAAK,EAAE,KAAK,EAAE,KAAK;IACnB,QAAQ,EAAE,IAAI,EAAE,KAAK;IACrB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAC5B,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC/B,MAAM,EAAE,UAAU,EAAE,MAAM;IAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACzC,KAAK,EAAE,MAAM,EAAE,MAAM;IACrB,MAAM,EAAE,SAAS,EAAE,QAAQ;CAC5B,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACxF,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC1B,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACxF,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtB,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,WAAmB;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,QAAQ;aACZ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACtB,MAAM,CAAC,QAAQ,CAAC,EAAE;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,cAAsB,EAAE,UAAkB;IACtE,MAAM,KAAK,GAAG,cAAc,GAAG,UAAU,CAAC;IAC1C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,CAAC,wCAAwC;IACtD,CAAC;IACD,OAAO,cAAc,GAAG,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,cAAc,GAA2B,IAAI,CAAC;IAC9C,OAAO,GAA0B,IAAI,CAAC;IAE9C,KAAK,CAAC,YAAY,CAAC,KAAe,EAAE,OAAqB,CAAC,OAAO,CAAC,EAAE,QAAgB,EAAE;QACpF,MAAM,OAAO,GAAoB;YAC/B,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC5B,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;YAC1B,KAAK;YACL,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,EAAE;YACZ,KAAK;SACN,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAkB,EAAE,SAAoC,WAAW;QAClF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAEnE,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAExC,iBAAiB;QACjB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7C,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,yBAAyB;YACzB,MAAM,MAAM,GAAG,SAAS,CAAkB,iBAAiB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,uBAAuB,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,qBAAqB;YACrB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC;YACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAExD,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/C,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAElG,8BAA8B;QAC9B,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE1D,yBAAyB;QACzB,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,6DAA6D;YAC7D,OAAO;gBACL,SAAS;gBACT,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE;gBACd,aAAa;gBACb,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,WAAW;aACZ,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAErE,OAAO;YACL,SAAS;YACT,WAAW;YACX,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,UAAU;YACV,aAAa;YACb,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAE5D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAMpB;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzC,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACvC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACtE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAiB,oBAAoB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpF,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAwB;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE/C,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAEjF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,eAAe,GAAG,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;YACnE,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;QACzE,CAAC;QAED,6DAA6D;QAC7D,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAE9B,UAAU,CAAC,oBAAoB,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,iBAAiB;QACvB,OAAO,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;CACF;AAED,qBAAqB;AACrB,IAAI,aAAa,GAA0B,IAAI,CAAC;AAEhD,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,aAAa,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -28,17 +28,18 @@ export interface ScanOptions {
|
|
|
28
28
|
* Decode project directory name back to original path.
|
|
29
29
|
*
|
|
30
30
|
* The encoding scheme used by Claude Code is lossy - it converts all path
|
|
31
|
-
* separators (/) to dashes (-), but legitimate dashes in directory names
|
|
31
|
+
* separators (/ or \) to dashes (-), but legitimate dashes in directory names
|
|
32
32
|
* also become dashes, making them indistinguishable.
|
|
33
33
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* 3. Fall back to simple decode if nothing else works
|
|
34
|
+
* Encoding patterns:
|
|
35
|
+
* - Unix: "/home/user/project" → "-home-user-project"
|
|
36
|
+
* - Windows: "C:\Users\user\project" → "C--Users-user-project"
|
|
38
37
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
38
|
+
* Strategy:
|
|
39
|
+
* 1. Detect if it's a Windows or Unix encoded path
|
|
40
|
+
* 2. Try simple decode (all dashes -> slashes) and check if path exists
|
|
41
|
+
* 3. If not, try to reconstruct by checking filesystem for partial matches
|
|
42
|
+
* 4. Fall back to simple decode if nothing else works
|
|
42
43
|
*
|
|
43
44
|
* @internal Exported for testing
|
|
44
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-scanner.d.ts","sourceRoot":"","sources":["../../src/analytics/transcript-scanner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcript-scanner.d.ts","sourceRoot":"","sources":["../../src/analytics/transcript-scanner.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAazD;AA4LD;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8EpF"}
|
|
@@ -2,6 +2,21 @@ import { readdir, stat } from 'fs/promises';
|
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import { homedir } from 'os';
|
|
5
|
+
/**
|
|
6
|
+
* Check if the encoded path looks like a Windows path (starts with drive letter)
|
|
7
|
+
* Examples: "C--Users-user-project" or "D--work-project"
|
|
8
|
+
*/
|
|
9
|
+
function isWindowsEncodedPath(dirName) {
|
|
10
|
+
return /^[A-Za-z]-/.test(dirName);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Normalize decoded path to use OS-native separators consistently
|
|
14
|
+
*/
|
|
15
|
+
function normalizePathForOS(decodedPath) {
|
|
16
|
+
// On Windows, convert forward slashes to backslashes for consistency
|
|
17
|
+
// But existsSync works with both, so we normalize to forward slashes for cross-platform
|
|
18
|
+
return decodedPath.replace(/\\/g, '/');
|
|
19
|
+
}
|
|
5
20
|
/**
|
|
6
21
|
* UUID regex pattern for session IDs
|
|
7
22
|
*/
|
|
@@ -10,32 +25,138 @@ const UUID_REGEX = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12
|
|
|
10
25
|
* Decode project directory name back to original path.
|
|
11
26
|
*
|
|
12
27
|
* The encoding scheme used by Claude Code is lossy - it converts all path
|
|
13
|
-
* separators (/) to dashes (-), but legitimate dashes in directory names
|
|
28
|
+
* separators (/ or \) to dashes (-), but legitimate dashes in directory names
|
|
14
29
|
* also become dashes, making them indistinguishable.
|
|
15
30
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* 3. Fall back to simple decode if nothing else works
|
|
31
|
+
* Encoding patterns:
|
|
32
|
+
* - Unix: "/home/user/project" → "-home-user-project"
|
|
33
|
+
* - Windows: "C:\Users\user\project" → "C--Users-user-project"
|
|
20
34
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
35
|
+
* Strategy:
|
|
36
|
+
* 1. Detect if it's a Windows or Unix encoded path
|
|
37
|
+
* 2. Try simple decode (all dashes -> slashes) and check if path exists
|
|
38
|
+
* 3. If not, try to reconstruct by checking filesystem for partial matches
|
|
39
|
+
* 4. Fall back to simple decode if nothing else works
|
|
24
40
|
*
|
|
25
41
|
* @internal Exported for testing
|
|
26
42
|
*/
|
|
27
43
|
export function decodeProjectPath(dirName) {
|
|
28
|
-
|
|
29
|
-
|
|
44
|
+
// Handle Windows encoded paths (e.g., "C--Users-user-project")
|
|
45
|
+
if (isWindowsEncodedPath(dirName)) {
|
|
46
|
+
return decodeWindowsPath(dirName);
|
|
47
|
+
}
|
|
48
|
+
// Handle Unix encoded paths (e.g., "-home-user-project")
|
|
49
|
+
if (dirName.startsWith('-')) {
|
|
50
|
+
return decodeUnixPath(dirName);
|
|
51
|
+
}
|
|
52
|
+
// Not an encoded path, return as-is
|
|
53
|
+
return dirName;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Split path string preserving consecutive hyphens as single segments.
|
|
57
|
+
* e.g., "a--b-c" → ["a", "-", "b", "c"] (the "-" represents a hyphen in original name)
|
|
58
|
+
*/
|
|
59
|
+
function splitPreservingConsecutiveHyphens(str) {
|
|
60
|
+
const result = [];
|
|
61
|
+
let current = '';
|
|
62
|
+
let i = 0;
|
|
63
|
+
while (i < str.length) {
|
|
64
|
+
if (str[i] === '-') {
|
|
65
|
+
if (current) {
|
|
66
|
+
result.push(current);
|
|
67
|
+
current = '';
|
|
68
|
+
}
|
|
69
|
+
// Check for consecutive hyphens
|
|
70
|
+
if (i + 1 < str.length && str[i + 1] === '-') {
|
|
71
|
+
// Consecutive hyphens - this means the original had a hyphen
|
|
72
|
+
// Push empty string as marker, will be joined with hyphen later
|
|
73
|
+
result.push('');
|
|
74
|
+
i++; // Skip the second hyphen
|
|
75
|
+
}
|
|
76
|
+
i++;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
current += str[i];
|
|
80
|
+
i++;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (current) {
|
|
84
|
+
result.push(current);
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Decode Windows encoded path (e.g., "C--Users-user-project" → "C:/Users/user/project")
|
|
90
|
+
*/
|
|
91
|
+
function decodeWindowsPath(dirName) {
|
|
92
|
+
const driveLetter = dirName[0];
|
|
93
|
+
const rest = dirName.slice(2); // Skip "X-"
|
|
94
|
+
// Simple decode: drive letter + colon + rest with dashes as slashes
|
|
95
|
+
const simplePath = `${driveLetter}:/${rest.replace(/-/g, '/')}`;
|
|
96
|
+
// Normalize double slashes that might occur from empty segments
|
|
97
|
+
const normalizedSimple = simplePath.replace(/\/+/g, '/');
|
|
98
|
+
// If simple decode exists, we're done
|
|
99
|
+
if (existsSync(normalizedSimple)) {
|
|
100
|
+
return normalizedSimple;
|
|
101
|
+
}
|
|
102
|
+
// Try to reconstruct by checking filesystem for partial matches
|
|
103
|
+
// Use special splitting to handle consecutive hyphens
|
|
104
|
+
const segments = splitPreservingConsecutiveHyphens(rest);
|
|
105
|
+
if (segments.length === 0) {
|
|
106
|
+
return `${driveLetter}:/`;
|
|
107
|
+
}
|
|
108
|
+
const possiblePaths = [];
|
|
109
|
+
// Generate all possible interpretations by trying different hyphen positions
|
|
110
|
+
function generatePaths(parts, index, currentPath) {
|
|
111
|
+
if (index >= parts.length) {
|
|
112
|
+
possiblePaths.push(currentPath);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const part = parts[index];
|
|
116
|
+
// Empty string means this was a consecutive hyphen - must join with previous
|
|
117
|
+
if (part === '' && currentPath) {
|
|
118
|
+
const pathParts = currentPath.split('/');
|
|
119
|
+
const lastPart = pathParts.pop() || '';
|
|
120
|
+
const newPath = pathParts.join('/') + '/' + lastPart + '-';
|
|
121
|
+
generatePaths(parts, index + 1, newPath);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Try adding next segment as a new directory
|
|
125
|
+
const newDir = currentPath + '/' + part;
|
|
126
|
+
generatePaths(parts, index + 1, newDir);
|
|
127
|
+
// Try combining with previous segment using hyphen (if not first segment)
|
|
128
|
+
if (index > 0 && currentPath) {
|
|
129
|
+
const pathParts = currentPath.split('/');
|
|
130
|
+
const lastPart = pathParts.pop() || '';
|
|
131
|
+
const newPath = pathParts.join('/') + '/' + lastPart + '-' + part;
|
|
132
|
+
generatePaths(parts, index + 1, newPath);
|
|
133
|
+
}
|
|
30
134
|
}
|
|
135
|
+
generatePaths(segments, 0, `${driveLetter}:`);
|
|
136
|
+
// Find the first path that exists on filesystem
|
|
137
|
+
for (const path of possiblePaths) {
|
|
138
|
+
if (existsSync(path)) {
|
|
139
|
+
return path;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Fall back to simple decode
|
|
143
|
+
return normalizedSimple;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Decode Unix encoded path (e.g., "-home-user-project" → "/home/user/project")
|
|
147
|
+
*/
|
|
148
|
+
function decodeUnixPath(dirName) {
|
|
31
149
|
// Simple decode: replace all dashes with slashes
|
|
32
150
|
const simplePath = '/' + dirName.slice(1).replace(/-/g, '/');
|
|
151
|
+
// Normalize double slashes
|
|
152
|
+
const normalizedSimple = simplePath.replace(/\/+/g, '/');
|
|
33
153
|
// If simple decode exists, we're done
|
|
34
|
-
if (existsSync(
|
|
35
|
-
return
|
|
154
|
+
if (existsSync(normalizedSimple)) {
|
|
155
|
+
return normalizedSimple;
|
|
36
156
|
}
|
|
37
157
|
// Try to reconstruct by checking filesystem for partial matches
|
|
38
|
-
|
|
158
|
+
// Use special splitting to handle consecutive hyphens
|
|
159
|
+
const segments = splitPreservingConsecutiveHyphens(dirName.slice(1));
|
|
39
160
|
const possiblePaths = [];
|
|
40
161
|
// Generate all possible interpretations by trying different hyphen positions
|
|
41
162
|
function generatePaths(parts, index, currentPath) {
|
|
@@ -43,13 +164,22 @@ export function decodeProjectPath(dirName) {
|
|
|
43
164
|
possiblePaths.push(currentPath);
|
|
44
165
|
return;
|
|
45
166
|
}
|
|
167
|
+
const part = parts[index];
|
|
168
|
+
// Empty string means this was a consecutive hyphen - must join with previous
|
|
169
|
+
if (part === '' && currentPath) {
|
|
170
|
+
const pathParts = currentPath.split('/');
|
|
171
|
+
const lastPart = pathParts.pop() || '';
|
|
172
|
+
const newPath = pathParts.join('/') + '/' + lastPart + '-';
|
|
173
|
+
generatePaths(parts, index + 1, newPath);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
46
176
|
// Try adding next segment as a new directory
|
|
47
|
-
generatePaths(parts, index + 1, currentPath + '/' +
|
|
177
|
+
generatePaths(parts, index + 1, currentPath + '/' + part);
|
|
48
178
|
// Try combining with previous segment using hyphen (if not first segment)
|
|
49
179
|
if (index > 0 && currentPath) {
|
|
50
180
|
const pathParts = currentPath.split('/');
|
|
51
181
|
const lastPart = pathParts.pop() || '';
|
|
52
|
-
const newPath = pathParts.join('/') + '/' + lastPart + '-' +
|
|
182
|
+
const newPath = pathParts.join('/') + '/' + lastPart + '-' + part;
|
|
53
183
|
generatePaths(parts, index + 1, newPath);
|
|
54
184
|
}
|
|
55
185
|
}
|
|
@@ -61,7 +191,7 @@ export function decodeProjectPath(dirName) {
|
|
|
61
191
|
}
|
|
62
192
|
}
|
|
63
193
|
// Fall back to simple decode
|
|
64
|
-
return
|
|
194
|
+
return normalizedSimple;
|
|
65
195
|
}
|
|
66
196
|
/**
|
|
67
197
|
* Check if a path matches a glob pattern (simple implementation)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-scanner.js","sourceRoot":"","sources":["../../src/analytics/transcript-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"transcript-scanner.js","sourceRoot":"","sources":["../../src/analytics/transcript-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/empty-message-sanitizer/__tests__/index.test.ts"],"names":[],"mappings":""}
|