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
@@ -20,27 +20,36 @@ export function codexAdapter() {
20
20
  return {
21
21
  name: "codex",
22
22
  async *messages(options) {
23
- yield* walkCodexSessions(CODEX_SESSIONS_DIR, options);
23
+ for await (const file of discoverCodexSessionFiles(CODEX_SESSIONS_DIR)) {
24
+ yield* parseCodexJsonl(file.filePath, { session: file.session, since: options?.since });
25
+ }
26
+ },
27
+ async *usage(options) {
28
+ for await (const file of discoverCodexSessionFiles(CODEX_SESSIONS_DIR)) {
29
+ yield* parseCodexUsageJsonl(file.filePath, {
30
+ session: file.session,
31
+ since: options?.since,
32
+ });
33
+ }
24
34
  },
25
35
  };
26
36
  }
27
- async function* walkCodexSessions(dir, options) {
37
+ async function* discoverCodexSessionFiles(dir) {
28
38
  let entries;
29
39
  try {
30
40
  entries = await readdir(dir);
31
41
  }
32
42
  catch {
33
- return; // Codex not installed or no sessions
43
+ return;
34
44
  }
35
45
  for (const entry of entries) {
36
46
  const fullPath = join(dir, entry);
37
47
  const entryStat = await stat(fullPath);
38
48
  if (entryStat.isDirectory()) {
39
- yield* walkCodexSessions(fullPath, options);
49
+ yield* discoverCodexSessionFiles(fullPath);
40
50
  }
41
51
  else if (entry.endsWith(".jsonl")) {
42
- const session = entry.replace(".jsonl", "");
43
- yield* parseCodexJsonl(fullPath, { session, since: options?.since });
52
+ yield { filePath: fullPath, session: entry.replace(".jsonl", "") };
44
53
  }
45
54
  }
46
55
  }
@@ -50,29 +59,36 @@ async function* parseCodexJsonl(filePath, context) {
50
59
  crlfDelay: Infinity,
51
60
  });
52
61
  for await (const line of rl) {
53
- if (!line.trim())
62
+ if (!line.trim()) {
54
63
  continue;
64
+ }
55
65
  try {
56
66
  const entry = JSON.parse(line);
57
67
  // Only care about response_item entries with user messages
58
- if (entry.type !== "response_item")
68
+ if (entry.type !== "response_item") {
59
69
  continue;
70
+ }
60
71
  const payload = entry.payload;
61
- if (!payload || payload.role !== "user")
72
+ if (!payload || payload.role !== "user") {
62
73
  continue;
74
+ }
63
75
  const text = extractText(payload.content);
64
- if (!text)
76
+ if (!text) {
65
77
  continue;
78
+ }
66
79
  // Skip environment context injections (they start with <environment_context>)
67
- if (text.startsWith("<environment_context>"))
80
+ if (text.startsWith("<environment_context>")) {
68
81
  continue;
82
+ }
69
83
  // Skip permission/sandbox instructions
70
- if (text.startsWith("<permissions instructions>"))
84
+ if (text.startsWith("<permissions instructions>")) {
71
85
  continue;
86
+ }
72
87
  if (context.since && entry.timestamp) {
73
88
  const ts = new Date(entry.timestamp);
74
- if (ts < context.since)
89
+ if (ts < context.since) {
75
90
  continue;
91
+ }
76
92
  }
77
93
  yield {
78
94
  text,
@@ -86,8 +102,9 @@ async function* parseCodexJsonl(filePath, context) {
86
102
  }
87
103
  }
88
104
  function extractText(content) {
89
- if (!Array.isArray(content))
105
+ if (!Array.isArray(content)) {
90
106
  return null;
107
+ }
91
108
  const parts = content
92
109
  .filter((p) => typeof p === "object" &&
93
110
  p !== null &&
@@ -96,4 +113,100 @@ function extractText(content) {
96
113
  .map((p) => p.text);
97
114
  return parts.length > 0 ? parts.join(" ") : null;
98
115
  }
116
+ /** Codex token_count events are cumulative; per-request records come from positive deltas. */
117
+ async function* parseCodexUsageJsonl(filePath, context) {
118
+ const rl = createInterface({
119
+ input: createReadStream(filePath, { encoding: "utf-8" }),
120
+ crlfDelay: Infinity,
121
+ });
122
+ let model;
123
+ let previousTotal = null;
124
+ for await (const line of rl) {
125
+ if (!line.trim()) {
126
+ continue;
127
+ }
128
+ try {
129
+ const entry = JSON.parse(line);
130
+ const payload = asRecord(entry["payload"]);
131
+ if (entry["type"] === "turn_context") {
132
+ model = stringValue(payload?.["model"]) ?? model;
133
+ continue;
134
+ }
135
+ if (entry["type"] !== "event_msg" || payload?.["type"] !== "token_count") {
136
+ continue;
137
+ }
138
+ const info = asRecord(payload["info"]);
139
+ const total = parseCodexTokenUsage(info?.["total_token_usage"]);
140
+ if (!total) {
141
+ continue;
142
+ }
143
+ const delta = previousTotal ? subtractCodexUsage(total, previousTotal) : total;
144
+ previousTotal = total;
145
+ if (!hasPositiveUsage(delta)) {
146
+ continue;
147
+ }
148
+ const timestamp = stringValue(entry["timestamp"]);
149
+ if (context.since && timestamp) {
150
+ const ts = new Date(timestamp);
151
+ if (ts < context.since) {
152
+ continue;
153
+ }
154
+ }
155
+ const reasoningTokens = Math.min(delta.reasoningOutputTokens, delta.outputTokens);
156
+ yield {
157
+ agent: "codex",
158
+ provider: "openai",
159
+ model,
160
+ timestamp,
161
+ session: context.session,
162
+ inputTokens: Math.max(delta.inputTokens - delta.cachedInputTokens, 0),
163
+ outputTokens: Math.max(delta.outputTokens - reasoningTokens, 0),
164
+ reasoningTokens,
165
+ cacheReadTokens: delta.cachedInputTokens,
166
+ cacheWriteTokens: 0,
167
+ };
168
+ }
169
+ catch {
170
+ // Skip malformed lines
171
+ }
172
+ }
173
+ }
174
+ function parseCodexTokenUsage(value) {
175
+ const usage = asRecord(value);
176
+ if (!usage) {
177
+ return null;
178
+ }
179
+ const parsed = {
180
+ inputTokens: numberValue(usage["input_tokens"]),
181
+ cachedInputTokens: numberValue(usage["cached_input_tokens"]),
182
+ outputTokens: numberValue(usage["output_tokens"]),
183
+ reasoningOutputTokens: numberValue(usage["reasoning_output_tokens"]),
184
+ totalTokens: numberValue(usage["total_tokens"]),
185
+ };
186
+ return hasPositiveUsage(parsed) ? parsed : null;
187
+ }
188
+ function subtractCodexUsage(current, previous) {
189
+ return {
190
+ inputTokens: Math.max(current.inputTokens - previous.inputTokens, 0),
191
+ cachedInputTokens: Math.max(current.cachedInputTokens - previous.cachedInputTokens, 0),
192
+ outputTokens: Math.max(current.outputTokens - previous.outputTokens, 0),
193
+ reasoningOutputTokens: Math.max(current.reasoningOutputTokens - previous.reasoningOutputTokens, 0),
194
+ totalTokens: Math.max(current.totalTokens - previous.totalTokens, 0),
195
+ };
196
+ }
197
+ function hasPositiveUsage(usage) {
198
+ return usage.inputTokens + usage.cachedInputTokens + usage.outputTokens + usage.totalTokens > 0;
199
+ }
200
+ function numberValue(value) {
201
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
202
+ }
203
+ function stringValue(value) {
204
+ return typeof value === "string" && value.trim() ? value : undefined;
205
+ }
206
+ function asRecord(value) {
207
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
208
+ return null;
209
+ }
210
+ return value;
211
+ }
99
212
  //# sourceMappingURL=codex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Adapter } from "./index";
2
+ export declare function cursorAdapter(): Adapter;
3
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/adapters/cursor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAwC,MAAM,SAAS,CAAC;AAmC7E,wBAAgB,aAAa,IAAI,OAAO,CAkBvC"}