devrage 0.0.4 → 0.0.5

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 (39) hide show
  1. package/dist/cli.js +2321 -173
  2. package/dist/cli.js.map +4 -4
  3. package/dist/lib/adapters/amp.d.ts.map +1 -1
  4. package/dist/lib/adapters/amp.js +171 -7
  5. package/dist/lib/adapters/amp.js.map +1 -1
  6. package/dist/lib/adapters/claude.d.ts.map +1 -1
  7. package/dist/lib/adapters/claude.js +147 -49
  8. package/dist/lib/adapters/claude.js.map +1 -1
  9. package/dist/lib/adapters/cline.d.ts.map +1 -1
  10. package/dist/lib/adapters/cline.js +17 -12
  11. package/dist/lib/adapters/cline.js.map +1 -1
  12. package/dist/lib/adapters/codex.d.ts.map +1 -1
  13. package/dist/lib/adapters/codex.js +127 -14
  14. package/dist/lib/adapters/codex.js.map +1 -1
  15. package/dist/lib/adapters/cursor.d.ts +3 -0
  16. package/dist/lib/adapters/cursor.d.ts.map +1 -0
  17. package/dist/lib/adapters/cursor.js +524 -0
  18. package/dist/lib/adapters/cursor.js.map +1 -0
  19. package/dist/lib/adapters/index.d.ts +61 -0
  20. package/dist/lib/adapters/index.d.ts.map +1 -1
  21. package/dist/lib/adapters/index.js +2 -0
  22. package/dist/lib/adapters/index.js.map +1 -1
  23. package/dist/lib/adapters/opencode.d.ts.map +1 -1
  24. package/dist/lib/adapters/opencode.js +96 -16
  25. package/dist/lib/adapters/opencode.js.map +1 -1
  26. package/dist/lib/adapters/pi.d.ts.map +1 -1
  27. package/dist/lib/adapters/pi.js +113 -11
  28. package/dist/lib/adapters/pi.js.map +1 -1
  29. package/dist/lib/adapters/zed.d.ts.map +1 -1
  30. package/dist/lib/adapters/zed.js +18 -11
  31. package/dist/lib/adapters/zed.js.map +1 -1
  32. package/dist/lib/detector/index.d.ts.map +1 -1
  33. package/dist/lib/detector/index.js +12 -6
  34. package/dist/lib/detector/index.js.map +1 -1
  35. package/dist/lib/index.d.ts +1 -1
  36. package/dist/lib/index.d.ts.map +1 -1
  37. package/dist/lib/index.js +1 -1
  38. package/dist/lib/index.js.map +1 -1
  39. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"amp.d.ts","sourceRoot":"","sources":["../../../src/adapters/amp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,SAAS,CAAC;AAoBhE,wBAAgB,UAAU,IAAI,OAAO,CAiDpC"}
1
+ {"version":3,"file":"amp.d.ts","sourceRoot":"","sources":["../../../src/adapters/amp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAwC,MAAM,SAAS,CAAC;AAgB7E,wBAAgB,UAAU,IAAI,OAAO,CA8FpC"}
@@ -30,21 +30,27 @@ export function ampAdapter() {
30
30
  const filePath = join(threadsDir, file);
31
31
  const threadId = file.replace(".json", "");
32
32
  try {
33
- const raw = await readFile(filePath, "utf-8");
34
- const thread = JSON.parse(raw);
35
- if (!thread.messages || !Array.isArray(thread.messages))
33
+ const thread = await readAmpThread(filePath);
34
+ if (!thread) {
36
35
  continue;
36
+ }
37
+ if (!thread.messages || !Array.isArray(thread.messages)) {
38
+ continue;
39
+ }
37
40
  for (const msg of thread.messages) {
38
- if (msg.role !== "user")
41
+ if (msg.role !== "user") {
39
42
  continue;
43
+ }
40
44
  const text = extractText(msg.content);
41
- if (!text)
45
+ if (!text) {
42
46
  continue;
47
+ }
43
48
  const timestamp = msg.timestamp ?? msg.createdAt ?? undefined;
44
49
  if (options?.since && timestamp) {
45
50
  const ts = new Date(timestamp);
46
- if (ts < options.since)
51
+ if (ts < options.since) {
47
52
  continue;
53
+ }
48
54
  }
49
55
  yield {
50
56
  text,
@@ -58,11 +64,49 @@ export function ampAdapter() {
58
64
  }
59
65
  }
60
66
  },
67
+ async *usage(options) {
68
+ const threadsDir = getAmpThreadsDir();
69
+ let files;
70
+ try {
71
+ files = await readdir(threadsDir);
72
+ }
73
+ catch {
74
+ return;
75
+ }
76
+ for (const file of files.filter((f) => f.endsWith(".json"))) {
77
+ const filePath = join(threadsDir, file);
78
+ const threadId = file.replace(".json", "");
79
+ try {
80
+ const thread = await readAmpThread(filePath);
81
+ if (!thread?.usageLedger) {
82
+ continue;
83
+ }
84
+ for (const record of extractAmpUsageRecords(thread.usageLedger, threadId)) {
85
+ if (options?.since && record.timestamp) {
86
+ const ts = new Date(record.timestamp);
87
+ if (ts < options.since) {
88
+ continue;
89
+ }
90
+ }
91
+ yield record;
92
+ }
93
+ }
94
+ catch {
95
+ // Skip malformed files
96
+ }
97
+ }
98
+ },
61
99
  };
62
100
  }
101
+ async function readAmpThread(filePath) {
102
+ const raw = await readFile(filePath, "utf-8");
103
+ const parsed = JSON.parse(raw);
104
+ return asRecord(parsed) ? parsed : null;
105
+ }
63
106
  function extractText(content) {
64
- if (typeof content === "string")
107
+ if (typeof content === "string") {
65
108
  return content;
109
+ }
66
110
  if (Array.isArray(content)) {
67
111
  const parts = content
68
112
  .filter((p) => typeof p === "object" && p !== null && typeof p.text === "string")
@@ -71,4 +115,124 @@ function extractText(content) {
71
115
  }
72
116
  return null;
73
117
  }
118
+ function extractAmpUsageRecords(usageLedger, threadId) {
119
+ const records = [];
120
+ collectAmpUsage(usageLedger, threadId, records, {});
121
+ return records;
122
+ }
123
+ function collectAmpUsage(value, threadId, records, context, depth = 0) {
124
+ if (depth > 12) {
125
+ return;
126
+ }
127
+ if (Array.isArray(value)) {
128
+ for (const item of value) {
129
+ collectAmpUsage(item, threadId, records, context, depth + 1);
130
+ }
131
+ return;
132
+ }
133
+ const record = asRecord(value);
134
+ if (!record) {
135
+ return;
136
+ }
137
+ const nextContext = {
138
+ provider: stringField(record, ["provider", "providerID", "providerId"]) ?? context.provider,
139
+ model: stringField(record, ["model", "modelID", "modelId"]) ?? context.model,
140
+ timestamp: timestampField(record) ?? context.timestamp,
141
+ };
142
+ const usageSource = firstRecordField(record, ["usage", "tokens", "tokenUsage"]) ?? record;
143
+ const rawInputTokens = tokenField(usageSource, ["inputTokens", "input_tokens", "promptTokens"]);
144
+ const outputTokens = tokenField(usageSource, [
145
+ "outputTokens",
146
+ "output_tokens",
147
+ "completionTokens",
148
+ ]);
149
+ const reasoningTokens = tokenField(usageSource, ["reasoningTokens", "reasoning_output_tokens"]);
150
+ const cachedInputSubset = tokenField(usageSource, ["cachedInputTokens", "cached_input_tokens"]);
151
+ const cacheReadTokens = tokenField(usageSource, [
152
+ "cacheReadTokens",
153
+ "cache_read_tokens",
154
+ "cacheReadInputTokens",
155
+ "cache_read_input_tokens",
156
+ "cachedInputTokens",
157
+ "cached_input_tokens",
158
+ ]);
159
+ const inputTokens = Math.max(rawInputTokens - cachedInputSubset, 0);
160
+ const cacheWriteTokens = tokenField(usageSource, [
161
+ "cacheWriteTokens",
162
+ "cache_write_tokens",
163
+ "cacheCreationInputTokens",
164
+ "cache_creation_input_tokens",
165
+ "cacheWriteInputTokens",
166
+ "cache_write_input_tokens",
167
+ ]);
168
+ const billedCost = tokenField(record, [
169
+ "cost",
170
+ "totalCost",
171
+ "total_cost",
172
+ "billedCost",
173
+ "billed_cost",
174
+ ]);
175
+ if (inputTokens + outputTokens + reasoningTokens + cacheReadTokens + cacheWriteTokens + billedCost >
176
+ 0) {
177
+ records.push({
178
+ agent: "amp",
179
+ provider: nextContext.provider,
180
+ model: nextContext.model,
181
+ timestamp: nextContext.timestamp,
182
+ session: threadId,
183
+ billedCost,
184
+ inputTokens,
185
+ outputTokens,
186
+ reasoningTokens,
187
+ cacheReadTokens,
188
+ cacheWriteTokens,
189
+ });
190
+ }
191
+ for (const child of Object.values(record)) {
192
+ if (child !== usageSource && typeof child === "object" && child !== null) {
193
+ collectAmpUsage(child, threadId, records, nextContext, depth + 1);
194
+ }
195
+ }
196
+ }
197
+ function firstRecordField(record, fields) {
198
+ for (const field of fields) {
199
+ const value = asRecord(record[field]);
200
+ if (value) {
201
+ return value;
202
+ }
203
+ }
204
+ return null;
205
+ }
206
+ function stringField(record, fields) {
207
+ for (const field of fields) {
208
+ const value = record[field];
209
+ if (typeof value === "string" && value.trim()) {
210
+ return value;
211
+ }
212
+ }
213
+ return undefined;
214
+ }
215
+ function timestampField(record) {
216
+ const value = stringField(record, ["timestamp", "createdAt", "time", "date"]);
217
+ if (value) {
218
+ const date = new Date(value);
219
+ return Number.isFinite(date.getTime()) ? date.toISOString() : undefined;
220
+ }
221
+ return undefined;
222
+ }
223
+ function tokenField(record, fields) {
224
+ for (const field of fields) {
225
+ const value = record[field];
226
+ if (typeof value === "number" && Number.isFinite(value)) {
227
+ return value;
228
+ }
229
+ }
230
+ return 0;
231
+ }
232
+ function asRecord(value) {
233
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
234
+ return null;
235
+ }
236
+ return value;
237
+ }
74
238
  //# sourceMappingURL=amp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"amp.js","sourceRoot":"","sources":["../../../src/adapters/amp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amp.js","sourceRoot":"","sources":["../../../src/adapters/amp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,SAAS,CAAC;AAchE,wBAAgB,aAAa,IAAI,OAAO,CAqDvC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAwC,MAAM,SAAS,CAAC;AAc7E,wBAAgB,aAAa,IAAI,OAAO,CAcvC"}
@@ -17,52 +17,60 @@ export function claudeAdapter() {
17
17
  return {
18
18
  name: "claude",
19
19
  async *messages(options) {
20
- const projectsDir = CLAUDE_DIR;
21
- let projectDirs;
22
- try {
23
- projectDirs = await readdir(projectsDir);
20
+ for await (const file of discoverClaudeJsonlFiles()) {
21
+ yield* parseClaudeJsonl(file.filePath, { ...file, since: options?.since });
24
22
  }
25
- catch {
26
- return; // Claude Code not installed or no sessions
23
+ },
24
+ async *usage(options) {
25
+ for await (const file of discoverClaudeJsonlFiles()) {
26
+ yield* parseClaudeUsageJsonl(file.filePath, { ...file, since: options?.since });
27
27
  }
28
- for (const projectDir of projectDirs) {
29
- const projectPath = join(projectsDir, projectDir);
30
- const projectStat = await stat(projectPath);
31
- if (!projectStat.isDirectory())
32
- continue;
33
- const entries = await readdir(projectPath);
34
- const jsonlFiles = entries.filter((f) => f.endsWith(".jsonl"));
35
- for (const file of jsonlFiles) {
36
- const filePath = join(projectPath, file);
37
- const session = file.replace(".jsonl", "");
38
- yield* parseClaudeJsonl(filePath, {
39
- session,
28
+ },
29
+ };
30
+ }
31
+ async function* discoverClaudeJsonlFiles() {
32
+ let projectDirs;
33
+ try {
34
+ projectDirs = await readdir(CLAUDE_DIR);
35
+ }
36
+ catch {
37
+ return;
38
+ }
39
+ for (const projectDir of projectDirs) {
40
+ const projectPath = join(CLAUDE_DIR, projectDir);
41
+ const projectStat = await stat(projectPath);
42
+ if (!projectStat.isDirectory()) {
43
+ continue;
44
+ }
45
+ const entries = await readdir(projectPath);
46
+ const jsonlFiles = entries.filter((f) => f.endsWith(".jsonl"));
47
+ for (const file of jsonlFiles) {
48
+ yield {
49
+ filePath: join(projectPath, file),
50
+ session: file.replace(".jsonl", ""),
51
+ project: projectDir,
52
+ };
53
+ }
54
+ // Also check for subagent JSONL files in session subdirectories
55
+ const subdirs = entries.filter((f) => !f.includes("."));
56
+ for (const subdir of subdirs) {
57
+ const subagentsDir = join(projectPath, subdir, "subagents");
58
+ try {
59
+ const subFiles = await readdir(subagentsDir);
60
+ const subJsonl = subFiles.filter((f) => f.endsWith(".jsonl"));
61
+ for (const file of subJsonl) {
62
+ yield {
63
+ filePath: join(subagentsDir, file),
64
+ session: `${subdir}/${file.replace(".jsonl", "")}`,
40
65
  project: projectDir,
41
- since: options?.since,
42
- });
43
- }
44
- // Also check for subagent JSONL files in session subdirectories
45
- const subdirs = entries.filter((f) => !f.includes("."));
46
- for (const subdir of subdirs) {
47
- const subagentsDir = join(projectPath, subdir, "subagents");
48
- try {
49
- const subFiles = await readdir(subagentsDir);
50
- const subJsonl = subFiles.filter((f) => f.endsWith(".jsonl"));
51
- for (const file of subJsonl) {
52
- yield* parseClaudeJsonl(join(subagentsDir, file), {
53
- session: `${subdir}/${file.replace(".jsonl", "")}`,
54
- project: projectDir,
55
- since: options?.since,
56
- });
57
- }
58
- }
59
- catch {
60
- // No subagents directory, skip
61
- }
66
+ };
62
67
  }
63
68
  }
64
- },
65
- };
69
+ catch {
70
+ // No subagents directory, skip
71
+ }
72
+ }
73
+ }
66
74
  }
67
75
  async function* parseClaudeJsonl(filePath, context) {
68
76
  const rl = createInterface({
@@ -70,18 +78,21 @@ async function* parseClaudeJsonl(filePath, context) {
70
78
  crlfDelay: Infinity,
71
79
  });
72
80
  for await (const line of rl) {
73
- if (!line.trim())
81
+ if (!line.trim()) {
74
82
  continue;
83
+ }
75
84
  try {
76
85
  const entry = JSON.parse(line);
77
86
  const text = extractUserText(entry);
78
- if (!text)
87
+ if (!text) {
79
88
  continue;
89
+ }
80
90
  const timestamp = extractTimestamp(entry);
81
91
  if (context.since && timestamp) {
82
92
  const ts = new Date(timestamp);
83
- if (ts < context.since)
93
+ if (ts < context.since) {
84
94
  continue;
95
+ }
85
96
  }
86
97
  yield {
87
98
  text,
@@ -99,15 +110,17 @@ function extractUserText(entry) {
99
110
  // Format: { "type": "user", "message": { "role": "user", "content": "..." } }
100
111
  if (entry["type"] === "user") {
101
112
  const message = entry["message"];
102
- if (!message)
113
+ if (!message) {
103
114
  return null;
115
+ }
104
116
  return contentToString(message["content"]);
105
117
  }
106
118
  // Legacy format: { "type": "human", "message": { "content": [...] } }
107
119
  if (entry["type"] === "human") {
108
120
  const message = entry["message"];
109
- if (!message)
121
+ if (!message) {
110
122
  return null;
123
+ }
111
124
  return contentToString(message["content"]);
112
125
  }
113
126
  // Flat format: { "role": "user", "content": "..." }
@@ -117,8 +130,9 @@ function extractUserText(entry) {
117
130
  return null;
118
131
  }
119
132
  function contentToString(content) {
120
- if (typeof content === "string")
133
+ if (typeof content === "string") {
121
134
  return content;
135
+ }
122
136
  if (Array.isArray(content)) {
123
137
  const parts = content
124
138
  .filter((p) => typeof p === "object" && p !== null && p.type === "text")
@@ -128,10 +142,94 @@ function contentToString(content) {
128
142
  return null;
129
143
  }
130
144
  function extractTimestamp(entry) {
131
- if (typeof entry["timestamp"] === "string")
145
+ if (typeof entry["timestamp"] === "string") {
132
146
  return entry["timestamp"];
133
- if (typeof entry["createdAt"] === "string")
147
+ }
148
+ if (typeof entry["createdAt"] === "string") {
134
149
  return entry["createdAt"];
150
+ }
135
151
  return null;
136
152
  }
153
+ /** Claude Code repeats assistant rows while streaming, so request/message IDs are deduped. */
154
+ async function* parseClaudeUsageJsonl(filePath, context) {
155
+ const rl = createInterface({
156
+ input: createReadStream(filePath, { encoding: "utf-8" }),
157
+ crlfDelay: Infinity,
158
+ });
159
+ const seen = new Set();
160
+ for await (const line of rl) {
161
+ if (!line.trim()) {
162
+ continue;
163
+ }
164
+ try {
165
+ const entry = JSON.parse(line);
166
+ const message = asRecord(entry["message"]);
167
+ if (!message || entry["type"] !== "assistant" || message["role"] !== "assistant") {
168
+ continue;
169
+ }
170
+ const usage = asRecord(message["usage"]);
171
+ if (!usage) {
172
+ continue;
173
+ }
174
+ const model = stringValue(message["model"]);
175
+ const timestamp = extractTimestamp(entry) ?? undefined;
176
+ if (context.since && timestamp) {
177
+ const ts = new Date(timestamp);
178
+ if (ts < context.since) {
179
+ continue;
180
+ }
181
+ }
182
+ const inputTokens = numberValue(usage["input_tokens"]);
183
+ const outputTokens = numberValue(usage["output_tokens"]);
184
+ const cacheReadTokens = numberValue(usage["cache_read_input_tokens"]);
185
+ const cacheWriteTokens = cacheCreationTokens(usage);
186
+ if (inputTokens + outputTokens + cacheReadTokens + cacheWriteTokens === 0) {
187
+ continue;
188
+ }
189
+ const dedupeKey = stringValue(entry["requestId"]) ??
190
+ stringValue(message["id"]) ??
191
+ `${context.session}:${timestamp ?? ""}:${model ?? "unknown"}:${inputTokens}:${outputTokens}`;
192
+ if (seen.has(dedupeKey)) {
193
+ continue;
194
+ }
195
+ seen.add(dedupeKey);
196
+ yield {
197
+ agent: "claude",
198
+ provider: "anthropic",
199
+ model,
200
+ timestamp,
201
+ session: context.session,
202
+ inputTokens,
203
+ outputTokens,
204
+ reasoningTokens: 0,
205
+ cacheReadTokens,
206
+ cacheWriteTokens,
207
+ };
208
+ }
209
+ catch {
210
+ // Skip malformed lines
211
+ }
212
+ }
213
+ }
214
+ function cacheCreationTokens(usage) {
215
+ const explicit = numberValue(usage["cache_creation_input_tokens"]);
216
+ if (explicit > 0) {
217
+ return explicit;
218
+ }
219
+ const cacheCreation = asRecord(usage["cache_creation"]);
220
+ return (numberValue(cacheCreation?.["ephemeral_1h_input_tokens"]) +
221
+ numberValue(cacheCreation?.["ephemeral_5m_input_tokens"]));
222
+ }
223
+ function numberValue(value) {
224
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
225
+ }
226
+ function stringValue(value) {
227
+ return typeof value === "string" && value.trim() ? value : undefined;
228
+ }
229
+ function asRecord(value) {
230
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
231
+ return null;
232
+ }
233
+ return value;
234
+ }
137
235
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../../src/adapters/cline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,SAAS,CAAC;AAsEhE,wBAAgB,YAAY,IAAI,OAAO,CAqDtC"}
1
+ {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../../src/adapters/cline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,SAAS,CAAC;AA0EhE,wBAAgB,YAAY,IAAI,OAAO,CA+DtC"}
@@ -27,14 +27,16 @@ function getClineTaskDirs() {
27
27
  for (const basePath of vscodePaths) {
28
28
  for (const extId of extensionIds) {
29
29
  const tasksDir = join(basePath, extId, "tasks");
30
- if (existsSync(tasksDir))
30
+ if (existsSync(tasksDir)) {
31
31
  dirs.push(tasksDir);
32
+ }
32
33
  }
33
34
  }
34
35
  // Standalone CLI path
35
36
  const clineStandalone = join(homedir(), ".cline", "data", "tasks");
36
- if (existsSync(clineStandalone))
37
+ if (existsSync(clineStandalone)) {
37
38
  dirs.push(clineStandalone);
39
+ }
38
40
  return dirs;
39
41
  }
40
42
  function getVSCodeGlobalStoragePaths() {
@@ -69,27 +71,32 @@ export function clineAdapter() {
69
71
  for (const taskId of taskIds) {
70
72
  const taskDir = join(tasksDir, taskId);
71
73
  const taskStat = await stat(taskDir).catch(() => null);
72
- if (!taskStat?.isDirectory())
74
+ if (!taskStat?.isDirectory()) {
73
75
  continue;
76
+ }
74
77
  const historyFile = join(taskDir, "api_conversation_history.json");
75
78
  try {
76
79
  const raw = await readFile(historyFile, "utf-8");
77
80
  const messages = JSON.parse(raw);
78
- if (!Array.isArray(messages))
81
+ if (!Array.isArray(messages)) {
79
82
  continue;
83
+ }
80
84
  for (const msg of messages) {
81
- if (msg.role !== "user")
85
+ if (msg.role !== "user") {
82
86
  continue;
87
+ }
83
88
  const text = extractText(msg.content);
84
- if (!text)
89
+ if (!text) {
85
90
  continue;
91
+ }
86
92
  // Cline doesn't store per-message timestamps in the conversation file
87
93
  // Use the task metadata file for approximate timing
88
94
  const timestamp = msg.ts ?? undefined;
89
95
  if (options?.since && timestamp) {
90
96
  const ts = new Date(timestamp);
91
- if (ts < options.since)
97
+ if (ts < options.since) {
92
98
  continue;
99
+ }
93
100
  }
94
101
  yield {
95
102
  text,
@@ -106,14 +113,12 @@ export function clineAdapter() {
106
113
  };
107
114
  }
108
115
  function extractText(content) {
109
- if (typeof content === "string")
116
+ if (typeof content === "string") {
110
117
  return content;
118
+ }
111
119
  if (Array.isArray(content)) {
112
120
  const parts = content
113
- .filter((p) => typeof p === "object" &&
114
- p !== null &&
115
- p.type === "text" &&
116
- typeof p.text === "string")
121
+ .filter((p) => typeof p === "object" && p !== null && p.type === "text" && typeof p.text === "string")
117
122
  .map((p) => p.text);
118
123
  return parts.length > 0 ? parts.join(" ") : null;
119
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../../src/adapters/cline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../../src/adapters/cline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,SAAS,CAAC;AAiBhE,wBAAgB,YAAY,IAAI,OAAO,CAOtC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAwC,MAAM,SAAS,CAAC;AAiB7E,wBAAgB,YAAY,IAAI,OAAO,CAiBtC"}