botmux 2.85.1 → 2.86.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 (116) hide show
  1. package/dist/core/command-handler.d.ts.map +1 -1
  2. package/dist/core/command-handler.js +209 -1
  3. package/dist/core/command-handler.js.map +1 -1
  4. package/dist/core/cost-calculator.d.ts.map +1 -1
  5. package/dist/core/cost-calculator.js +7 -106
  6. package/dist/core/cost-calculator.js.map +1 -1
  7. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  8. package/dist/core/dashboard-ipc-server.js +240 -2
  9. package/dist/core/dashboard-ipc-server.js.map +1 -1
  10. package/dist/core/passthrough-commands.d.ts.map +1 -1
  11. package/dist/core/passthrough-commands.js +1 -1
  12. package/dist/core/passthrough-commands.js.map +1 -1
  13. package/dist/core/role-resolver.d.ts +1 -0
  14. package/dist/core/role-resolver.d.ts.map +1 -1
  15. package/dist/core/role-resolver.js +14 -0
  16. package/dist/core/role-resolver.js.map +1 -1
  17. package/dist/dashboard/web/app.d.ts.map +1 -1
  18. package/dist/dashboard/web/app.js +15 -4
  19. package/dist/dashboard/web/app.js.map +1 -1
  20. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  21. package/dist/dashboard/web/bot-defaults.js +116 -0
  22. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  23. package/dist/dashboard/web/groups.d.ts +2 -0
  24. package/dist/dashboard/web/groups.d.ts.map +1 -1
  25. package/dist/dashboard/web/groups.js +419 -3
  26. package/dist/dashboard/web/groups.js.map +1 -1
  27. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  28. package/dist/dashboard/web/i18n.js +617 -3
  29. package/dist/dashboard/web/i18n.js.map +1 -1
  30. package/dist/dashboard/web/insights.d.ts +2 -0
  31. package/dist/dashboard/web/insights.d.ts.map +1 -0
  32. package/dist/dashboard/web/insights.js +1523 -0
  33. package/dist/dashboard/web/insights.js.map +1 -0
  34. package/dist/dashboard/web/role-profile-match.d.ts +31 -0
  35. package/dist/dashboard/web/role-profile-match.d.ts.map +1 -0
  36. package/dist/dashboard/web/role-profile-match.js +58 -0
  37. package/dist/dashboard/web/role-profile-match.js.map +1 -0
  38. package/dist/dashboard/web/roles.d.ts +1 -0
  39. package/dist/dashboard/web/roles.d.ts.map +1 -1
  40. package/dist/dashboard/web/roles.js +520 -27
  41. package/dist/dashboard/web/roles.js.map +1 -1
  42. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  43. package/dist/dashboard/web/sessions.js +84 -0
  44. package/dist/dashboard/web/sessions.js.map +1 -1
  45. package/dist/dashboard-web/app.js +1243 -831
  46. package/dist/dashboard-web/index.html +2 -1
  47. package/dist/dashboard-web/style.css +1085 -3
  48. package/dist/dashboard.js +215 -3
  49. package/dist/dashboard.js.map +1 -1
  50. package/dist/i18n/en.d.ts.map +1 -1
  51. package/dist/i18n/en.js +34 -1
  52. package/dist/i18n/en.js.map +1 -1
  53. package/dist/i18n/zh.d.ts.map +1 -1
  54. package/dist/i18n/zh.js +34 -1
  55. package/dist/i18n/zh.js.map +1 -1
  56. package/dist/services/group-creator.d.ts +6 -0
  57. package/dist/services/group-creator.d.ts.map +1 -1
  58. package/dist/services/group-creator.js +54 -5
  59. package/dist/services/group-creator.js.map +1 -1
  60. package/dist/services/insight/antigravity-span-reader.d.ts +3 -0
  61. package/dist/services/insight/antigravity-span-reader.d.ts.map +1 -0
  62. package/dist/services/insight/antigravity-span-reader.js +249 -0
  63. package/dist/services/insight/antigravity-span-reader.js.map +1 -0
  64. package/dist/services/insight/classify.d.ts +7 -0
  65. package/dist/services/insight/classify.d.ts.map +1 -0
  66. package/dist/services/insight/classify.js +46 -0
  67. package/dist/services/insight/classify.js.map +1 -0
  68. package/dist/services/insight/claude-span-reader.d.ts +3 -0
  69. package/dist/services/insight/claude-span-reader.d.ts.map +1 -0
  70. package/dist/services/insight/claude-span-reader.js +257 -0
  71. package/dist/services/insight/claude-span-reader.js.map +1 -0
  72. package/dist/services/insight/codex-span-reader.d.ts +3 -0
  73. package/dist/services/insight/codex-span-reader.d.ts.map +1 -0
  74. package/dist/services/insight/codex-span-reader.js +290 -0
  75. package/dist/services/insight/codex-span-reader.js.map +1 -0
  76. package/dist/services/insight/intent.d.ts +5 -0
  77. package/dist/services/insight/intent.d.ts.map +1 -0
  78. package/dist/services/insight/intent.js +145 -0
  79. package/dist/services/insight/intent.js.map +1 -0
  80. package/dist/services/insight/jsonl.d.ts +10 -0
  81. package/dist/services/insight/jsonl.d.ts.map +1 -0
  82. package/dist/services/insight/jsonl.js +36 -0
  83. package/dist/services/insight/jsonl.js.map +1 -0
  84. package/dist/services/insight/prompt.d.ts +3 -0
  85. package/dist/services/insight/prompt.d.ts.map +1 -0
  86. package/dist/services/insight/prompt.js +99 -0
  87. package/dist/services/insight/prompt.js.map +1 -0
  88. package/dist/services/insight/redact.d.ts +4 -0
  89. package/dist/services/insight/redact.d.ts.map +1 -0
  90. package/dist/services/insight/redact.js +67 -0
  91. package/dist/services/insight/redact.js.map +1 -0
  92. package/dist/services/insight/report.d.ts +29 -0
  93. package/dist/services/insight/report.d.ts.map +1 -0
  94. package/dist/services/insight/report.js +1126 -0
  95. package/dist/services/insight/report.js.map +1 -0
  96. package/dist/services/insight/safe-detail.d.ts +5 -0
  97. package/dist/services/insight/safe-detail.d.ts.map +1 -0
  98. package/dist/services/insight/safe-detail.js +59 -0
  99. package/dist/services/insight/safe-detail.js.map +1 -0
  100. package/dist/services/insight/scrub.d.ts +22 -0
  101. package/dist/services/insight/scrub.d.ts.map +1 -0
  102. package/dist/services/insight/scrub.js +70 -0
  103. package/dist/services/insight/scrub.js.map +1 -0
  104. package/dist/services/insight/types.d.ts +394 -0
  105. package/dist/services/insight/types.d.ts.map +1 -0
  106. package/dist/services/insight/types.js +2 -0
  107. package/dist/services/insight/types.js.map +1 -0
  108. package/dist/services/role-profile-store.d.ts +25 -0
  109. package/dist/services/role-profile-store.d.ts.map +1 -0
  110. package/dist/services/role-profile-store.js +171 -0
  111. package/dist/services/role-profile-store.js.map +1 -0
  112. package/dist/services/transcript-resolver.d.ts +26 -0
  113. package/dist/services/transcript-resolver.d.ts.map +1 -0
  114. package/dist/services/transcript-resolver.js +111 -0
  115. package/dist/services/transcript-resolver.js.map +1 -0
  116. package/package.json +1 -1
@@ -0,0 +1,394 @@
1
+ import type { CliId } from '../../adapters/cli/types.js';
2
+ export type InsightDetail = 'summary' | 'spans';
3
+ export type InsightStatus = 'ok' | 'unsupported_cli' | 'transcript_missing' | 'parse_error';
4
+ export type InsightPhase = 'research' | 'edit' | 'run' | 'delegate' | 'discuss';
5
+ export type InsightSpanStatus = 'ok' | 'error' | 'running';
6
+ export type InsightSeverity = 'info' | 'warn' | 'bad';
7
+ export type InsightDiagnosticKind = 'tool_failure' | 'slow_span' | 'read_write_imbalance' | 'compaction' | 'none';
8
+ export type SafeSpanIntentKind = 'run_script' | 'test' | 'typecheck' | 'lint' | 'git' | 'search' | 'read_file' | 'edit_file' | 'write_file' | 'delegate' | 'unknown';
9
+ export type SafeSpanResultCategory = 'ok' | 'tool_error' | 'test_failed' | 'typecheck_failed' | 'lint_failed' | 'command_failed' | 'timeout' | 'no_output' | 'unknown';
10
+ export type SafeSpanTag = 'failure' | 'slow' | 'retry' | 'read_write_imbalance' | 'diagnostic' | 'normal';
11
+ export type TurnTimelineEventKind = 'read' | 'edit' | 'run' | 'delegate' | 'discuss' | 'result';
12
+ export interface SafeInsightReport {
13
+ sessionId: string;
14
+ cliId: string;
15
+ status: InsightStatus;
16
+ meta: {
17
+ parsedAt: string;
18
+ asOf?: string;
19
+ partial: boolean;
20
+ detail: InsightDetail;
21
+ spansReturned?: number;
22
+ spansTotal?: number;
23
+ capped?: boolean;
24
+ };
25
+ agg: SafeInsightAggregate;
26
+ suggestions: SafeInsightSuggestion[];
27
+ diagnostics: SafeInsightDiagnostic[];
28
+ recommendations: DiagnosticRecommendation[];
29
+ turnDiagnostics: TurnEfficiencyDiagnostic[];
30
+ turnTimeline: TurnTimelineTurn[];
31
+ workSummary?: SafeInsightWorkSummary;
32
+ spans?: SafeSpan[];
33
+ error?: {
34
+ code: InsightStatus;
35
+ message: string;
36
+ };
37
+ }
38
+ export interface SafeInsightTurnDetail {
39
+ sessionId: string;
40
+ cliId: string;
41
+ status: InsightStatus;
42
+ turnIndex: number;
43
+ offset: number;
44
+ limit: number;
45
+ total: number;
46
+ nextOffset?: number;
47
+ hasMore: boolean;
48
+ prompt?: TurnPromptPreview;
49
+ messages?: InsightConversationMessage[];
50
+ error?: {
51
+ code: InsightStatus;
52
+ message: string;
53
+ };
54
+ }
55
+ export interface SafeInsightConversation {
56
+ sessionId: string;
57
+ cliId: string;
58
+ status: InsightStatus;
59
+ offset: number;
60
+ limit: number;
61
+ total: number;
62
+ nextOffset?: number;
63
+ hasMore: boolean;
64
+ messages: InsightConversationMessage[];
65
+ error?: {
66
+ code: InsightStatus;
67
+ message: string;
68
+ };
69
+ }
70
+ export interface SafeInsightOverviewSession {
71
+ sessionId: string;
72
+ cliId: string;
73
+ cliSessionId?: string;
74
+ title?: string;
75
+ botName?: string;
76
+ larkAppId?: string;
77
+ workingDir?: string;
78
+ status?: string;
79
+ lastMessageAt?: number;
80
+ report: SafeInsightReport;
81
+ }
82
+ export interface SafeInsightOverviewSuggestion {
83
+ id: string;
84
+ title: string;
85
+ severity: InsightSeverity;
86
+ count: number;
87
+ evidence: string[];
88
+ action: string;
89
+ }
90
+ export interface SafeInsightOverview {
91
+ generatedAt: string;
92
+ meta: {
93
+ totalSessions: number;
94
+ returnedSessions: number;
95
+ analyzedSessions: number;
96
+ unsupportedSessions: number;
97
+ missingTranscriptSessions: number;
98
+ parseErrorSessions: number;
99
+ capped: boolean;
100
+ limit: number;
101
+ };
102
+ agg: SafeInsightAggregate;
103
+ suggestions: SafeInsightOverviewSuggestion[];
104
+ topFailedTools: Array<{
105
+ tool: string;
106
+ count: number;
107
+ }>;
108
+ topSlowSessions: Array<{
109
+ sessionId: string;
110
+ title?: string;
111
+ cliId: string;
112
+ slowSpans: number;
113
+ totalSpans: number;
114
+ }>;
115
+ sessions: SafeInsightOverviewSession[];
116
+ }
117
+ export interface InsightOverviewSessionInput extends InsightReportQuery {
118
+ title?: string;
119
+ botName?: string;
120
+ larkAppId?: string;
121
+ workingDir?: string;
122
+ status?: string;
123
+ lastMessageAt?: number;
124
+ }
125
+ export interface SafeInsightAggregate {
126
+ totalSpans: number;
127
+ failedSpans: number;
128
+ slowSpans: number;
129
+ failByTool: Record<string, number>;
130
+ phase: Record<InsightPhase, {
131
+ count: number;
132
+ ms: number;
133
+ }>;
134
+ readWriteRatio: number | null;
135
+ compactions: number;
136
+ subagentCostShare: number | null;
137
+ }
138
+ export interface SafeInsightWorkSummary {
139
+ fileChanges: SafeInsightFileWork[];
140
+ commandsRun: SafeInsightCommandWork[];
141
+ }
142
+ export interface SafeInsightFileWork {
143
+ path: string;
144
+ reads: number;
145
+ edits: number;
146
+ added?: number;
147
+ removed?: number;
148
+ turnIndexes: number[];
149
+ spanIndexes: number[];
150
+ }
151
+ export interface SafeInsightCommandWork {
152
+ command: SafeTextPreview;
153
+ count: number;
154
+ failures: number;
155
+ totalDurationMs: number;
156
+ maxDurationMs?: number;
157
+ lastStatus: InsightSpanStatus;
158
+ turnIndexes: number[];
159
+ spanIndexes: number[];
160
+ }
161
+ export interface SafeInsightSuggestion {
162
+ id: string;
163
+ title: string;
164
+ severity: InsightSeverity;
165
+ evidence: string[];
166
+ action: string;
167
+ }
168
+ export interface SafeInsightDiagnostic {
169
+ /** Stable diagnostic key. MVP keeps this 1:1 with suggestionId. */
170
+ id: string;
171
+ suggestionId: string;
172
+ kind: InsightDiagnosticKind;
173
+ severity: InsightSeverity;
174
+ /** Fallback copy only; dashboard should prefer i18n by id. */
175
+ title: string;
176
+ /** Safe projection only: enum labels, tool names and numbers; never raw input/output/path. */
177
+ reason: string;
178
+ targets: {
179
+ /** Indexes into SafeInsightReport.spans when detail=spans. Capped and omitted in summary detail. */
180
+ spanIndexes?: number[];
181
+ /** Turn indexes corresponding to target spans. Capped and omitted when unavailable. */
182
+ turnIndexes?: number[];
183
+ tools?: string[];
184
+ };
185
+ stats?: Record<string, number | string>;
186
+ }
187
+ export interface SafeSpan {
188
+ tool: string;
189
+ phase: InsightPhase;
190
+ turnIndex: number;
191
+ /** Relative to session start. */
192
+ relStartMs: number;
193
+ /** Missing means unknown/running, not zero-duration. */
194
+ durationMs?: number;
195
+ status: InsightSpanStatus;
196
+ inputSummary?: string;
197
+ outputSummary?: string;
198
+ intent?: SafeSpanIntent;
199
+ result?: SafeSpanResult;
200
+ tags?: SafeSpanTag[];
201
+ evidence?: SafeSpanEvidenceDetail;
202
+ detail?: SafeSpanDetail;
203
+ }
204
+ export interface SafeSpanIntent {
205
+ kind: SafeSpanIntentKind;
206
+ subject?: string;
207
+ detail?: string;
208
+ }
209
+ export interface SafeSpanResult {
210
+ category: SafeSpanResultCategory;
211
+ exitCode?: number;
212
+ }
213
+ export interface SafeTextPreview {
214
+ text: string;
215
+ truncated: boolean;
216
+ }
217
+ export interface SafeSpanEvidenceDetail {
218
+ command?: SafeTextPreview;
219
+ output?: SafeTextPreview;
220
+ }
221
+ export interface SafeSpanDetail {
222
+ headline: {
223
+ id: string;
224
+ params: Record<string, string | number>;
225
+ };
226
+ phase: InsightPhase;
227
+ status: InsightSpanStatus;
228
+ durationMs?: number;
229
+ turnIndex: number;
230
+ tags: SafeSpanTag[];
231
+ intent?: SafeSpanIntent;
232
+ result?: SafeSpanResult;
233
+ evidence?: SafeSpanEvidenceDetail;
234
+ context?: {
235
+ previousIntent?: SafeSpanIntent;
236
+ nextIntent?: SafeSpanIntent;
237
+ };
238
+ }
239
+ export interface DiagnosticRecommendation {
240
+ id: string;
241
+ diagnosticId: string;
242
+ severity: InsightSeverity;
243
+ impact: {
244
+ id: string;
245
+ params: Record<string, string | number>;
246
+ };
247
+ why: {
248
+ id: string;
249
+ params: Record<string, string | number>;
250
+ };
251
+ nextActions: Array<{
252
+ id: string;
253
+ params: Record<string, string | number>;
254
+ }>;
255
+ evidence: {
256
+ spanIndexes?: number[];
257
+ turnIndexes?: number[];
258
+ counts?: Record<string, string | number>;
259
+ };
260
+ }
261
+ export interface TurnEfficiencyDiagnostic {
262
+ turnIndex: number;
263
+ severity: InsightSeverity;
264
+ headline: {
265
+ id: string;
266
+ params: Record<string, string | number>;
267
+ };
268
+ metrics: {
269
+ reads: number;
270
+ edits: number;
271
+ runs: number;
272
+ failures: number;
273
+ durationMs: number;
274
+ };
275
+ spanIndexes: number[];
276
+ tags: SafeSpanTag[];
277
+ }
278
+ export interface TurnTimelineTurn {
279
+ turnIndex: number;
280
+ severity: InsightSeverity;
281
+ prompt?: TurnPromptPreview;
282
+ context?: TurnContextPoint;
283
+ headline: {
284
+ id: string;
285
+ params: Record<string, string | number>;
286
+ };
287
+ metrics: TurnEfficiencyDiagnostic['metrics'];
288
+ tags: SafeSpanTag[];
289
+ events: TurnTimelineEvent[];
290
+ }
291
+ export interface TurnTimelineEvent {
292
+ kind: TurnTimelineEventKind;
293
+ spanIndex: number;
294
+ label: {
295
+ id: string;
296
+ params: Record<string, string | number>;
297
+ };
298
+ phase: InsightPhase;
299
+ status: InsightSpanStatus;
300
+ durationMs?: number;
301
+ intent?: SafeSpanIntent;
302
+ result?: SafeSpanResult;
303
+ tags?: SafeSpanTag[];
304
+ evidence?: SafeSpanEvidenceDetail;
305
+ }
306
+ export type InsightConversationRole = 'user' | 'a2a_agent' | 'system' | 'agent';
307
+ export interface InsightConversationMessage {
308
+ id: string;
309
+ turnIndex: number;
310
+ role: InsightConversationRole;
311
+ severity?: InsightSeverity;
312
+ tags?: SafeSpanTag[];
313
+ author?: string;
314
+ text?: string;
315
+ truncated?: boolean;
316
+ source?: TurnPromptSource;
317
+ event?: TurnTimelineEvent;
318
+ }
319
+ export interface TurnPromptPreview {
320
+ text: string;
321
+ truncated: boolean;
322
+ source?: TurnPromptSource;
323
+ }
324
+ export interface TurnPromptSource {
325
+ /** UI filter key. Product surface should expose user / A2A / system buckets. */
326
+ kind: 'user' | 'a2a_agent' | 'system';
327
+ /** Present for A2A prompts when the sending agent name is known. */
328
+ agentName?: string;
329
+ senderType?: 'user' | 'bot' | 'system' | 'unknown';
330
+ senderName?: string;
331
+ isBotSender?: boolean;
332
+ isA2A?: boolean;
333
+ mentionedNames?: string[];
334
+ }
335
+ export interface TurnContextPoint {
336
+ turnIndex: number;
337
+ inputTokens: number;
338
+ outputTokens: number;
339
+ cacheReadTokens: number;
340
+ cacheCreateTokens: number;
341
+ /** Context pressure line: input + cache read + cache creation tokens. */
342
+ contextTokens: number;
343
+ /** Total visible usage at this point: context + output. */
344
+ totalTokens: number;
345
+ model?: string;
346
+ compaction?: boolean;
347
+ }
348
+ export interface InsightReportQuery {
349
+ cliId?: CliId | 'unknown';
350
+ sessionId: string;
351
+ cliSessionId?: string;
352
+ cwd?: string;
353
+ }
354
+ export interface RawInsightSpan {
355
+ tool: string;
356
+ phase: InsightPhase;
357
+ turnIndex: number;
358
+ startMs?: number;
359
+ durationMs?: number;
360
+ status: InsightSpanStatus;
361
+ /** Internal only. Must pass through fail-closed safe projection before IPC. */
362
+ inputSummary?: string;
363
+ /** Internal only. Must pass through fail-closed safe projection before IPC. */
364
+ outputSummary?: string;
365
+ /** Reader-produced safe projection only. Never raw input/output/path. */
366
+ intent?: SafeSpanIntent;
367
+ /** Reader-produced safe projection only. Never raw output text. */
368
+ result?: SafeSpanResult;
369
+ /** Reader-produced owner-detail projection. Secrets scrubbed and length capped before IPC. */
370
+ evidence?: SafeSpanEvidenceDetail;
371
+ /** Internal only. Paths are projected relative/safely before IPC. */
372
+ filePaths?: string[];
373
+ /** Internal only. Patch-like text used only for line count estimation. */
374
+ patchText?: string;
375
+ /** Internal only. Reader-estimated edit line counts before safe projection. */
376
+ lineCounts?: {
377
+ added: number;
378
+ removed: number;
379
+ };
380
+ }
381
+ export interface InsightParseResult {
382
+ spans: RawInsightSpan[];
383
+ compactions: number;
384
+ partial: boolean;
385
+ asOf?: string;
386
+ firstEventMs?: number;
387
+ turnPrompts?: TurnPromptPreview[];
388
+ turnContext?: TurnContextPoint[];
389
+ }
390
+ export interface InsightReaderOptions {
391
+ promptMax?: number;
392
+ }
393
+ export declare const INSIGHT_PHASES: InsightPhase[];
394
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/insight/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const INSIGHT_PHASES = ['research', 'edit', 'run', 'delegate', 'discuss'];
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/insight/types.ts"],"names":[],"mappings":"AAibA,MAAM,CAAC,MAAM,cAAc,GAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare const MAX_ROLE_PROFILE_ENTRY_BYTES: number;
2
+ export declare const MAX_ROLE_PROFILE_ID_LENGTH = 64;
3
+ export interface RoleProfileSummary {
4
+ profileId: string;
5
+ entryCount: number;
6
+ updatedAt: number | null;
7
+ }
8
+ export interface RoleProfileEntry {
9
+ profileId: string;
10
+ larkAppId: string;
11
+ content: string;
12
+ byteLength: number;
13
+ updatedAt: number | null;
14
+ }
15
+ export declare function isValidRoleProfileId(profileId: string): boolean;
16
+ export declare function isValidRoleProfileEntryKey(larkAppId: string): boolean;
17
+ export declare function listRoleProfiles(dataDir: string): RoleProfileSummary[];
18
+ export declare function listRoleProfileEntries(dataDir: string, profileId: string): RoleProfileEntry[];
19
+ export declare function readRoleProfileEntry(dataDir: string, profileId: string, larkAppId: string): string | null;
20
+ export declare function writeRoleProfileEntry(dataDir: string, profileId: string, larkAppId: string, content: string, options?: {
21
+ allowEmpty?: boolean;
22
+ }): void;
23
+ export declare function deleteRoleProfileEntry(dataDir: string, profileId: string, larkAppId: string): boolean;
24
+ export declare function deleteRoleProfileIfEmpty(dataDir: string, profileId: string): boolean;
25
+ //# sourceMappingURL=role-profile-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-profile-store.d.ts","sourceRoot":"","sources":["../../src/services/role-profile-store.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,4BAA4B,QAAW,CAAC;AACrD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAK7C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErE;AAyED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAsBtE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAU7F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzG;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,IAAI,CAMN;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CASrG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAOpF"}
@@ -0,0 +1,171 @@
1
+ import { existsSync, mkdirSync, readdirSync, readFileSync, rmdirSync, statSync, unlinkSync, } from 'node:fs';
2
+ import { join, dirname, resolve, sep } from 'node:path';
3
+ import { atomicWriteFileSync } from '../utils/atomic-write.js';
4
+ export const MAX_ROLE_PROFILE_ENTRY_BYTES = 4 * 1024;
5
+ export const MAX_ROLE_PROFILE_ID_LENGTH = 64;
6
+ const PROFILE_ID_RE = /^[A-Za-z0-9._-]{1,64}$/;
7
+ const ENTRY_KEY_RE = /^[A-Za-z0-9._-]{1,128}$/;
8
+ export function isValidRoleProfileId(profileId) {
9
+ return PROFILE_ID_RE.test(profileId) && profileId !== '.' && profileId !== '..';
10
+ }
11
+ export function isValidRoleProfileEntryKey(larkAppId) {
12
+ return ENTRY_KEY_RE.test(larkAppId);
13
+ }
14
+ function assertProfileId(profileId) {
15
+ if (!isValidRoleProfileId(profileId)) {
16
+ throw new Error(`invalid profile id: ${profileId}`);
17
+ }
18
+ }
19
+ function assertEntryKey(larkAppId) {
20
+ if (!isValidRoleProfileEntryKey(larkAppId)) {
21
+ throw new Error(`invalid lark app id: ${larkAppId}`);
22
+ }
23
+ }
24
+ function profilesDir(dataDir) {
25
+ return join(dataDir, 'role-profiles');
26
+ }
27
+ function assertPathInside(baseDir, targetPath) {
28
+ const base = resolve(baseDir);
29
+ const target = resolve(targetPath);
30
+ if (target !== base && !target.startsWith(`${base}${sep}`)) {
31
+ throw new Error(`role profile path escaped profile root: ${targetPath}`);
32
+ }
33
+ }
34
+ function profileDir(dataDir, profileId) {
35
+ assertProfileId(profileId);
36
+ const base = profilesDir(dataDir);
37
+ const dir = join(base, profileId);
38
+ assertPathInside(base, dir);
39
+ return dir;
40
+ }
41
+ function entryPath(dataDir, profileId, larkAppId) {
42
+ assertProfileId(profileId);
43
+ assertEntryKey(larkAppId);
44
+ return join(profileDir(dataDir, profileId), `${larkAppId}.md`);
45
+ }
46
+ function truncateToByteLimit(content) {
47
+ let out = content;
48
+ while (Buffer.byteLength(out, 'utf-8') > MAX_ROLE_PROFILE_ENTRY_BYTES) {
49
+ out = out.slice(0, -1);
50
+ }
51
+ return out;
52
+ }
53
+ function normalizeContent(content) {
54
+ return truncateToByteLimit(content.trim());
55
+ }
56
+ function safeStatMtimeMs(filePath) {
57
+ try {
58
+ return statSync(filePath).mtimeMs;
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ function readEntryFile(dataDir, profileId, larkAppId) {
65
+ const filePath = entryPath(dataDir, profileId, larkAppId);
66
+ if (!existsSync(filePath))
67
+ return null;
68
+ try {
69
+ const content = normalizeContent(readFileSync(filePath, 'utf-8'));
70
+ return {
71
+ profileId,
72
+ larkAppId,
73
+ content,
74
+ byteLength: Buffer.byteLength(content, 'utf-8'),
75
+ updatedAt: safeStatMtimeMs(filePath),
76
+ };
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ }
82
+ export function listRoleProfiles(dataDir) {
83
+ let names;
84
+ try {
85
+ names = readdirSync(profilesDir(dataDir));
86
+ }
87
+ catch {
88
+ return [];
89
+ }
90
+ const out = [];
91
+ for (const profileId of names.sort()) {
92
+ if (!isValidRoleProfileId(profileId))
93
+ continue;
94
+ let files;
95
+ try {
96
+ files = readdirSync(profileDir(dataDir, profileId));
97
+ }
98
+ catch {
99
+ continue;
100
+ }
101
+ let entryCount = 0;
102
+ let updatedAt = null;
103
+ for (const file of files) {
104
+ if (!file.endsWith('.md'))
105
+ continue;
106
+ const larkAppId = file.slice(0, -'.md'.length);
107
+ if (!isValidRoleProfileEntryKey(larkAppId))
108
+ continue;
109
+ const mtime = safeStatMtimeMs(entryPath(dataDir, profileId, larkAppId));
110
+ entryCount += 1;
111
+ if (mtime !== null)
112
+ updatedAt = updatedAt === null ? mtime : Math.max(updatedAt, mtime);
113
+ }
114
+ out.push({ profileId, entryCount, updatedAt });
115
+ }
116
+ return out;
117
+ }
118
+ export function listRoleProfileEntries(dataDir, profileId) {
119
+ let files;
120
+ try {
121
+ files = readdirSync(profileDir(dataDir, profileId));
122
+ }
123
+ catch {
124
+ return [];
125
+ }
126
+ return files
127
+ .filter(file => file.endsWith('.md'))
128
+ .map(file => file.slice(0, -'.md'.length))
129
+ .filter(isValidRoleProfileEntryKey)
130
+ .sort()
131
+ .map(larkAppId => readEntryFile(dataDir, profileId, larkAppId))
132
+ .filter((entry) => entry !== null);
133
+ }
134
+ export function readRoleProfileEntry(dataDir, profileId, larkAppId) {
135
+ return readEntryFile(dataDir, profileId, larkAppId)?.content ?? null;
136
+ }
137
+ export function writeRoleProfileEntry(dataDir, profileId, larkAppId, content, options = {}) {
138
+ const normalized = normalizeContent(content);
139
+ if (!normalized && !options.allowEmpty)
140
+ throw new Error('content_required');
141
+ const filePath = entryPath(dataDir, profileId, larkAppId);
142
+ mkdirSync(dirname(filePath), { recursive: true });
143
+ atomicWriteFileSync(filePath, normalized);
144
+ }
145
+ export function deleteRoleProfileEntry(dataDir, profileId, larkAppId) {
146
+ const filePath = entryPath(dataDir, profileId, larkAppId);
147
+ try {
148
+ unlinkSync(filePath);
149
+ return true;
150
+ }
151
+ catch (err) {
152
+ if (err.code === 'ENOENT')
153
+ return false;
154
+ throw err;
155
+ }
156
+ }
157
+ export function deleteRoleProfileIfEmpty(dataDir, profileId) {
158
+ const dir = profileDir(dataDir, profileId);
159
+ let entries;
160
+ try {
161
+ entries = readdirSync(dir);
162
+ }
163
+ catch {
164
+ return false;
165
+ }
166
+ if (entries.length > 0)
167
+ return false;
168
+ rmdirSync(dir);
169
+ return true;
170
+ }
171
+ //# sourceMappingURL=role-profile-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-profile-store.js","sourceRoot":"","sources":["../../src/services/role-profile-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { CliId } from '../adapters/cli/types.js';
2
+ export type TranscriptKind = 'claude' | 'codex' | 'coco' | 'cursor' | 'traex' | 'antigravity';
3
+ export interface TranscriptPathQuery {
4
+ cliId?: CliId | 'unknown';
5
+ sessionId: string;
6
+ cliSessionId?: string;
7
+ cwd?: string;
8
+ /** Bypass a cached miss for lazily-created transcripts. */
9
+ fresh?: boolean;
10
+ }
11
+ export interface ResolvedTranscriptPath {
12
+ path: string;
13
+ kind: TranscriptKind;
14
+ }
15
+ export declare function __resetTranscriptResolverCacheForTest(): void;
16
+ /** Memoize a transcript-path lookup. `hitTtlMs === null` means a found path
17
+ * is trusted forever (rollout/transcript files never move); misses are
18
+ * retried after PATH_MISS_RETRY_MS — or immediately when `retryMiss` is set
19
+ * (ledger reads must see lazily created transcripts at turn boundaries). */
20
+ export declare function cachedTranscriptPathLookup(key: string, hitTtlMs: number | null, lookup: () => string | null, opts?: {
21
+ retryMiss?: boolean;
22
+ refreshHit?: boolean;
23
+ }): string | null;
24
+ export declare function getClaudeSessionJsonlPath(sessionId: string, cwd: string, dataDir: string): string | null;
25
+ export declare function resolveSessionTranscriptPath(q: TranscriptPathQuery): ResolvedTranscriptPath | null;
26
+ //# sourceMappingURL=transcript-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-resolver.d.ts","sourceRoot":"","sources":["../../src/services/transcript-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAQtD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;CACtB;AAQD,wBAAgB,qCAAqC,IAAI,IAAI,CAE5D;AAED;;;6EAG6E;AAC7E,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,EAC3B,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnD,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxG;AAaD,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,mBAAmB,GAAG,sBAAsB,GAAG,IAAI,CA+ClG"}