@logsesh/core 0.1.1

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 (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/adapters/claude-code.d.ts +3 -0
  4. package/dist/adapters/claude-code.d.ts.map +1 -0
  5. package/dist/adapters/claude-code.js +307 -0
  6. package/dist/adapters/claude-code.js.map +1 -0
  7. package/dist/adapters/codex-schemas.d.ts +59 -0
  8. package/dist/adapters/codex-schemas.d.ts.map +1 -0
  9. package/dist/adapters/codex-schemas.js +70 -0
  10. package/dist/adapters/codex-schemas.js.map +1 -0
  11. package/dist/adapters/codex.d.ts +3 -0
  12. package/dist/adapters/codex.d.ts.map +1 -0
  13. package/dist/adapters/codex.js +293 -0
  14. package/dist/adapters/codex.js.map +1 -0
  15. package/dist/adapters/gemini.d.ts +3 -0
  16. package/dist/adapters/gemini.d.ts.map +1 -0
  17. package/dist/adapters/gemini.js +193 -0
  18. package/dist/adapters/gemini.js.map +1 -0
  19. package/dist/adapters/index.d.ts +14 -0
  20. package/dist/adapters/index.d.ts.map +1 -0
  21. package/dist/adapters/index.js +64 -0
  22. package/dist/adapters/index.js.map +1 -0
  23. package/dist/discovery.d.ts +20 -0
  24. package/dist/discovery.d.ts.map +1 -0
  25. package/dist/discovery.js +115 -0
  26. package/dist/discovery.js.map +1 -0
  27. package/dist/doctor.d.ts +32 -0
  28. package/dist/doctor.d.ts.map +1 -0
  29. package/dist/doctor.js +68 -0
  30. package/dist/doctor.js.map +1 -0
  31. package/dist/export-safety.d.ts +6 -0
  32. package/dist/export-safety.d.ts.map +1 -0
  33. package/dist/export-safety.js +36 -0
  34. package/dist/export-safety.js.map +1 -0
  35. package/dist/exporters/csv.d.ts +4 -0
  36. package/dist/exporters/csv.d.ts.map +1 -0
  37. package/dist/exporters/csv.js +38 -0
  38. package/dist/exporters/csv.js.map +1 -0
  39. package/dist/exporters/json.d.ts +4 -0
  40. package/dist/exporters/json.d.ts.map +1 -0
  41. package/dist/exporters/json.js +14 -0
  42. package/dist/exporters/json.js.map +1 -0
  43. package/dist/exporters/jsonl.d.ts +4 -0
  44. package/dist/exporters/jsonl.d.ts.map +1 -0
  45. package/dist/exporters/jsonl.js +13 -0
  46. package/dist/exporters/jsonl.js.map +1 -0
  47. package/dist/exporters/markdown.d.ts +4 -0
  48. package/dist/exporters/markdown.d.ts.map +1 -0
  49. package/dist/exporters/markdown.js +29 -0
  50. package/dist/exporters/markdown.js.map +1 -0
  51. package/dist/exporters/stream.d.ts +13 -0
  52. package/dist/exporters/stream.d.ts.map +1 -0
  53. package/dist/exporters/stream.js +33 -0
  54. package/dist/exporters/stream.js.map +1 -0
  55. package/dist/filters.d.ts +3 -0
  56. package/dist/filters.d.ts.map +1 -0
  57. package/dist/filters.js +38 -0
  58. package/dist/filters.js.map +1 -0
  59. package/dist/fs-walk.d.ts +7 -0
  60. package/dist/fs-walk.d.ts.map +1 -0
  61. package/dist/fs-walk.js +64 -0
  62. package/dist/fs-walk.js.map +1 -0
  63. package/dist/index.d.ts +27 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +23 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/infer-tool.d.ts +8 -0
  68. package/dist/infer-tool.d.ts.map +1 -0
  69. package/dist/infer-tool.js +85 -0
  70. package/dist/infer-tool.js.map +1 -0
  71. package/dist/model-resolution.d.ts +13 -0
  72. package/dist/model-resolution.d.ts.map +1 -0
  73. package/dist/model-resolution.js +57 -0
  74. package/dist/model-resolution.js.map +1 -0
  75. package/dist/pipeline.d.ts +9 -0
  76. package/dist/pipeline.d.ts.map +1 -0
  77. package/dist/pipeline.js +152 -0
  78. package/dist/pipeline.js.map +1 -0
  79. package/dist/pricing.d.ts +8 -0
  80. package/dist/pricing.d.ts.map +1 -0
  81. package/dist/pricing.js +139 -0
  82. package/dist/pricing.js.map +1 -0
  83. package/dist/query.d.ts +15 -0
  84. package/dist/query.d.ts.map +1 -0
  85. package/dist/query.js +63 -0
  86. package/dist/query.js.map +1 -0
  87. package/dist/redact.d.ts +9 -0
  88. package/dist/redact.d.ts.map +1 -0
  89. package/dist/redact.js +57 -0
  90. package/dist/redact.js.map +1 -0
  91. package/dist/sanitize.d.ts +15 -0
  92. package/dist/sanitize.d.ts.map +1 -0
  93. package/dist/sanitize.js +72 -0
  94. package/dist/sanitize.js.map +1 -0
  95. package/dist/schemas.d.ts +701 -0
  96. package/dist/schemas.d.ts.map +1 -0
  97. package/dist/schemas.js +266 -0
  98. package/dist/schemas.js.map +1 -0
  99. package/dist/search.d.ts +11 -0
  100. package/dist/search.d.ts.map +1 -0
  101. package/dist/search.js +87 -0
  102. package/dist/search.js.map +1 -0
  103. package/dist/session-builder.d.ts +23 -0
  104. package/dist/session-builder.d.ts.map +1 -0
  105. package/dist/session-builder.js +296 -0
  106. package/dist/session-builder.js.map +1 -0
  107. package/dist/stats.d.ts +22 -0
  108. package/dist/stats.d.ts.map +1 -0
  109. package/dist/stats.js +82 -0
  110. package/dist/stats.js.map +1 -0
  111. package/dist/types.d.ts +292 -0
  112. package/dist/types.d.ts.map +1 -0
  113. package/dist/types.js +2 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/util.d.ts +26 -0
  116. package/dist/util.d.ts.map +1 -0
  117. package/dist/util.js +70 -0
  118. package/dist/util.js.map +1 -0
  119. package/dist/warnings.d.ts +13 -0
  120. package/dist/warnings.d.ts.map +1 -0
  121. package/dist/warnings.js +38 -0
  122. package/dist/warnings.js.map +1 -0
  123. package/package.json +62 -0
  124. package/pricing/models.json +600 -0
  125. package/schemas/debug-envelope.json +494 -0
  126. package/schemas/doctor-envelope.json +234 -0
  127. package/schemas/json-export-envelope.json +79 -0
  128. package/schemas/jsonl-record.json +68 -0
  129. package/schemas/list-envelope.json +217 -0
  130. package/schemas/public-session.json +404 -0
  131. package/schemas/search-envelope.json +108 -0
  132. package/schemas/session.json +428 -0
  133. package/schemas/stats-envelope.json +203 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Achal
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # @logsesh/core
2
+
3
+ Parser, normalization, search, export-safety, and cost-estimation library behind `logsesh`.
4
+
5
+ Use it when you want to build your own local workflows on top of Claude Code, Codex, or Gemini CLI session logs.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @logsesh/core
11
+ ```
12
+
13
+ Requires Node.js `>=22`.
14
+
15
+ ## Use
16
+
17
+ ```ts
18
+ import { runPipeline, sanitizeForExport } from "@logsesh/core";
19
+
20
+ for await (const { session, warnings } of runPipeline({ toolFilter: ["codex"] })) {
21
+ for (const warning of warnings) console.warn(warning.message);
22
+ if (!session) continue;
23
+
24
+ const safeSession = sanitizeForExport(session);
25
+ console.log(safeSession);
26
+ }
27
+ ```
28
+
29
+ ## Main Exports
30
+
31
+ | export | purpose |
32
+ | --- | --- |
33
+ | `runPipeline` | discover and parse sessions |
34
+ | `parseFile` | parse one known log file |
35
+ | `sanitizeForExport` | remove raw paths and reasoning by default |
36
+ | `searchSession` | search a normalized session |
37
+ | `StatsAggregator` | aggregate session stats |
38
+ | `estimateSessionCost` | add labeled pricing estimates with confidence |
39
+ | `runDoctor` | inspect adapter, discovery, export defaults, and pricing data |
40
+
41
+ ## Published Data
42
+
43
+ ```ts
44
+ import sessionSchema from "@logsesh/core/schemas/session.json" with { type: "json" };
45
+ import models from "@logsesh/core/pricing/models.json" with { type: "json" };
46
+ ```
47
+
48
+ Schemas are available under `@logsesh/core/schemas/*`.
49
+ Pricing data is available under `@logsesh/core/pricing/*`.
50
+
51
+ Cost estimates are exact only when a parsed session includes a known priced model. Historical and uncertain model rows are preserved with confidence metadata so callers can explain where estimates came from.
52
+
53
+ ## Safety Defaults
54
+
55
+ `sanitizeForExport` removes reasoning blocks and raw source paths unless you explicitly request them.
56
+
57
+ ```ts
58
+ const safe = sanitizeForExport(session);
59
+ const withReasoning = sanitizeForExport(session, { includeReasoning: true });
60
+ const withRawPaths = sanitizeForExport(session, { rawPaths: true });
61
+ ```
62
+
63
+ ## Compatibility
64
+
65
+ Normalized sessions use the `logsesh.session.v1` schema version.
66
+
67
+ ## License
68
+
69
+ MIT
@@ -0,0 +1,3 @@
1
+ import type { Adapter } from "../types.js";
2
+ export declare const claudeCodeAdapter: Adapter;
3
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,aAAa,CAAC;AAkFrB,eAAO,MAAM,iBAAiB,EAAE,OAkM/B,CAAC"}
@@ -0,0 +1,307 @@
1
+ import { ClaudeModelTracker } from "../model-resolution.js";
2
+ import { SessionBuilder } from "../session-builder.js";
3
+ import { detectRootAccess } from "../fs-walk.js";
4
+ import { decodeClaudeProjectSlug, parseJsonLine, readJsonlLines, sessionFileNameId, } from "../util.js";
5
+ import { readdir, stat } from "node:fs/promises";
6
+ import { homedir } from "node:os";
7
+ import { join } from "node:path";
8
+ import { z } from "zod";
9
+ const ADAPTER_VERSION = "0.1.1";
10
+ const IGNORED_TYPES = new Set([
11
+ "queue-operation",
12
+ "file-history-snapshot",
13
+ "ai-title",
14
+ "last-prompt",
15
+ "attachment",
16
+ ]);
17
+ const claudeLineSchema = z.object({
18
+ type: z.string().optional(),
19
+ timestamp: z.string().optional(),
20
+ cwd: z.string().optional(),
21
+ sessionId: z.string().optional(),
22
+ model: z.string().optional(),
23
+ message: z
24
+ .object({
25
+ id: z.string().optional(),
26
+ role: z.string().optional(),
27
+ model: z.string().optional(),
28
+ content: z.union([z.string(), z.array(z.unknown())]).optional(),
29
+ usage: z
30
+ .object({
31
+ input_tokens: z.number().optional(),
32
+ output_tokens: z.number().optional(),
33
+ cache_read_input_tokens: z.number().optional(),
34
+ cache_creation_input_tokens: z.number().optional(),
35
+ })
36
+ .optional(),
37
+ })
38
+ .optional(),
39
+ });
40
+ const claudeContentBlockSchema = z.discriminatedUnion("type", [
41
+ z.object({ type: z.literal("text"), text: z.string() }),
42
+ z.object({ type: z.literal("thinking"), thinking: z.string() }),
43
+ z.object({
44
+ type: z.literal("tool_use"),
45
+ id: z.string(),
46
+ name: z.string(),
47
+ input: z.unknown().optional(),
48
+ }),
49
+ z.object({
50
+ type: z.literal("tool_result"),
51
+ tool_use_id: z.string(),
52
+ content: z.unknown().optional(),
53
+ is_error: z.boolean().optional(),
54
+ }),
55
+ z.object({
56
+ type: z.literal("image"),
57
+ source: z
58
+ .object({
59
+ media_type: z.string().optional(),
60
+ data: z.string().optional(),
61
+ })
62
+ .optional(),
63
+ }),
64
+ ]);
65
+ function parseClaudeContentBlock(raw) {
66
+ const parsed = claudeContentBlockSchema.safeParse(raw);
67
+ return parsed.success ? parsed.data : null;
68
+ }
69
+ function claudeRoot(opts) {
70
+ return opts.roots?.["claude-code"] ?? join(homedir(), ".claude", "projects");
71
+ }
72
+ export const claudeCodeAdapter = {
73
+ tool: "claude-code",
74
+ adapterVersion: ADAPTER_VERSION,
75
+ capabilities: {
76
+ discovery: "full",
77
+ transcript: "full",
78
+ toolCalls: "full",
79
+ usage: "full",
80
+ model: "partial",
81
+ reasoning: "full",
82
+ notes: [
83
+ "Model is resolved from billable assistant usage; placeholder values like <synthetic> are ignored.",
84
+ ],
85
+ },
86
+ async detect() {
87
+ const { accessible } = await detectRootAccess(claudeRoot({}), "claude-code");
88
+ return accessible;
89
+ },
90
+ async *discover(opts) {
91
+ const root = claudeRoot(opts);
92
+ let projects;
93
+ try {
94
+ projects = await readdir(root);
95
+ }
96
+ catch {
97
+ return;
98
+ }
99
+ for (const slug of projects) {
100
+ const projectDir = join(root, slug);
101
+ let entryStat;
102
+ try {
103
+ entryStat = await stat(projectDir);
104
+ }
105
+ catch {
106
+ continue;
107
+ }
108
+ if (!entryStat.isDirectory()) {
109
+ if (slug.endsWith(".jsonl")) {
110
+ yield { path: projectDir, tool: "claude-code" };
111
+ }
112
+ continue;
113
+ }
114
+ let files;
115
+ try {
116
+ files = await readdir(projectDir);
117
+ }
118
+ catch {
119
+ continue;
120
+ }
121
+ for (const file of files) {
122
+ if (!file.endsWith(".jsonl"))
123
+ continue;
124
+ yield { path: join(projectDir, file), tool: "claude-code" };
125
+ }
126
+ }
127
+ },
128
+ async *parse(file, opts) {
129
+ const sessionId = sessionFileNameId(file.path);
130
+ const slug = file.path.split("/").slice(-2, -1)[0] ?? "";
131
+ const projectPath = decodeClaudeProjectSlug(slug);
132
+ const builder = new SessionBuilder({
133
+ tool: "claude-code",
134
+ adapterVersion: ADAPTER_VERSION,
135
+ sourcePath: file.path,
136
+ sessionId,
137
+ projectPath,
138
+ maxTurnChars: opts.maxTurnChars,
139
+ maxToolOutputChars: opts.maxToolOutputChars,
140
+ });
141
+ let resolvedProjectPath = projectPath;
142
+ const modelTracker = new ClaudeModelTracker();
143
+ const readResult = await readJsonlLines(file.path, (line, lineNumber) => {
144
+ const parsed = parseJsonLine(line, lineNumber, file.path);
145
+ if (!parsed.ok) {
146
+ builder.addWarning({
147
+ code: "malformed_line",
148
+ message: parsed.error,
149
+ severity: "warn",
150
+ scope: "parse",
151
+ sourcePath: file.path,
152
+ sessionId,
153
+ line: lineNumber,
154
+ });
155
+ return;
156
+ }
157
+ const lineParsed = claudeLineSchema.safeParse(parsed.value);
158
+ if (!lineParsed.success) {
159
+ builder.addWarning({
160
+ code: "invalid_line_shape",
161
+ message: `Line ${lineNumber}: invalid Claude record shape`,
162
+ severity: "warn",
163
+ scope: "parse",
164
+ sourcePath: file.path,
165
+ sessionId,
166
+ line: lineNumber,
167
+ });
168
+ return;
169
+ }
170
+ const record = lineParsed.data;
171
+ if (!record.type || IGNORED_TYPES.has(record.type))
172
+ return;
173
+ if (record.cwd)
174
+ resolvedProjectPath = record.cwd;
175
+ if (record.type === "user" && record.message) {
176
+ const blocks = mapClaudeUserContent(record.message.content);
177
+ const toolResults = blocks.filter((b) => b.kind === "tool_result");
178
+ const otherBlocks = blocks.filter((b) => b.kind !== "tool_result");
179
+ if (otherBlocks.length > 0) {
180
+ builder.addRecord({
181
+ role: "user",
182
+ sourceLine: lineNumber,
183
+ blocks: otherBlocks,
184
+ timestamp: record.timestamp,
185
+ });
186
+ }
187
+ for (const tr of toolResults) {
188
+ if (tr.kind !== "tool_result")
189
+ continue;
190
+ builder.addToolResult({
191
+ toolUseId: tr.toolUseId,
192
+ sourceLine: lineNumber,
193
+ output: tr.output,
194
+ status: tr.status,
195
+ });
196
+ }
197
+ return;
198
+ }
199
+ if (record.type === "assistant" && record.message) {
200
+ const usage = record.message.usage;
201
+ const usageWeight = usage
202
+ ? (usage.input_tokens ?? 0) +
203
+ (usage.output_tokens ?? 0) +
204
+ (usage.cache_read_input_tokens ?? 0) +
205
+ (usage.cache_creation_input_tokens ?? 0)
206
+ : 0;
207
+ modelTracker.observe(record.model ?? record.message.model, usageWeight);
208
+ const msgId = record.message.id ?? `line-${lineNumber}`;
209
+ const blocks = mapClaudeAssistantContent(record.message.content);
210
+ const usageBlock = record.message.usage
211
+ ? {
212
+ inputTokens: record.message.usage.input_tokens,
213
+ outputTokens: record.message.usage.output_tokens,
214
+ cacheReadTokens: record.message.usage.cache_read_input_tokens,
215
+ cacheWriteTokens: record.message.usage.cache_creation_input_tokens,
216
+ totalTokens: (record.message.usage.input_tokens ?? 0) +
217
+ (record.message.usage.output_tokens ?? 0) +
218
+ (record.message.usage.cache_read_input_tokens ?? 0) +
219
+ (record.message.usage.cache_creation_input_tokens ?? 0),
220
+ }
221
+ : undefined;
222
+ builder.addRecord({
223
+ role: "assistant",
224
+ fragmentGroupId: msgId,
225
+ sourceLine: lineNumber,
226
+ blocks,
227
+ usage: usageBlock,
228
+ timestamp: record.timestamp,
229
+ });
230
+ }
231
+ }, { maxFileBytes: opts.maxFileBytes });
232
+ if (readResult.skipped) {
233
+ builder.addWarning({
234
+ code: "file_too_large",
235
+ message: `File exceeds max size (${readResult.size} bytes), skipped`,
236
+ severity: "warn",
237
+ scope: "parse",
238
+ sourcePath: file.path,
239
+ sessionId,
240
+ });
241
+ }
242
+ const session = builder.finalize();
243
+ session.projectPath = resolvedProjectPath;
244
+ session.model = modelTracker.resolve();
245
+ yield session;
246
+ },
247
+ };
248
+ function mapClaudeUserContent(content) {
249
+ if (!content)
250
+ return [];
251
+ if (typeof content === "string")
252
+ return [{ kind: "text", text: content }];
253
+ if (!Array.isArray(content))
254
+ return [];
255
+ const result = [];
256
+ for (const raw of content) {
257
+ const block = parseClaudeContentBlock(raw);
258
+ if (!block)
259
+ continue;
260
+ if (block.type === "text") {
261
+ result.push({ kind: "text", text: block.text });
262
+ }
263
+ else if (block.type === "image") {
264
+ const data = block.source?.data;
265
+ result.push({
266
+ kind: "image",
267
+ mediaType: block.source?.media_type,
268
+ bytes: data ? data.length : undefined,
269
+ note: "[image omitted]",
270
+ });
271
+ }
272
+ else if (block.type === "tool_result") {
273
+ result.push({
274
+ kind: "tool_result",
275
+ toolUseId: block.tool_use_id,
276
+ output: block.content,
277
+ status: block.is_error ? "error" : "success",
278
+ });
279
+ }
280
+ }
281
+ return result;
282
+ }
283
+ function mapClaudeAssistantContent(content) {
284
+ if (!content)
285
+ return [];
286
+ if (typeof content === "string")
287
+ return [{ kind: "text", text: content }];
288
+ if (!Array.isArray(content))
289
+ return [];
290
+ const blocks = [];
291
+ for (const raw of content) {
292
+ const block = parseClaudeContentBlock(raw);
293
+ if (!block)
294
+ continue;
295
+ if (block.type === "text") {
296
+ blocks.push({ kind: "text", text: block.text });
297
+ }
298
+ else if (block.type === "thinking") {
299
+ blocks.push({ kind: "thinking", text: block.thinking });
300
+ }
301
+ else if (block.type === "tool_use") {
302
+ blocks.push({ kind: "tool_use", id: block.id, name: block.name, input: block.input });
303
+ }
304
+ }
305
+ return blocks;
306
+ }
307
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { z } from "zod";
2
+ export declare const codexLineSchema: z.ZodObject<{
3
+ type: z.ZodString;
4
+ timestamp: z.ZodOptional<z.ZodString>;
5
+ payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6
+ }, z.core.$strip>;
7
+ export declare const codexSessionMetaPayloadSchema: z.ZodObject<{
8
+ id: z.ZodOptional<z.ZodString>;
9
+ cwd: z.ZodOptional<z.ZodString>;
10
+ model: z.ZodOptional<z.ZodString>;
11
+ model_provider: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export declare const codexTurnContextPayloadSchema: z.ZodObject<{
14
+ model: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ export declare const codexTokenCountPayloadSchema: z.ZodObject<{
17
+ type: z.ZodLiteral<"token_count">;
18
+ info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
19
+ total_token_usage: z.ZodOptional<z.ZodObject<{
20
+ input_tokens: z.ZodOptional<z.ZodNumber>;
21
+ output_tokens: z.ZodOptional<z.ZodNumber>;
22
+ cached_input_tokens: z.ZodOptional<z.ZodNumber>;
23
+ reasoning_output_tokens: z.ZodOptional<z.ZodNumber>;
24
+ total_tokens: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strip>>;
26
+ }, z.core.$strip>>>;
27
+ }, z.core.$strip>;
28
+ export declare const codexMessagePayloadSchema: z.ZodObject<{
29
+ type: z.ZodLiteral<"message">;
30
+ role: z.ZodString;
31
+ content: z.ZodOptional<z.ZodUnknown>;
32
+ }, z.core.$strip>;
33
+ export declare const codexFunctionCallPayloadSchema: z.ZodObject<{
34
+ type: z.ZodEnum<{
35
+ custom_tool_call: "custom_tool_call";
36
+ function_call: "function_call";
37
+ }>;
38
+ call_id: z.ZodOptional<z.ZodString>;
39
+ id: z.ZodOptional<z.ZodString>;
40
+ name: z.ZodOptional<z.ZodUnknown>;
41
+ arguments: z.ZodOptional<z.ZodUnknown>;
42
+ input: z.ZodOptional<z.ZodUnknown>;
43
+ }, z.core.$strip>;
44
+ export declare const codexFunctionCallOutputPayloadSchema: z.ZodObject<{
45
+ type: z.ZodEnum<{
46
+ custom_tool_call_output: "custom_tool_call_output";
47
+ function_call_output: "function_call_output";
48
+ }>;
49
+ call_id: z.ZodString;
50
+ output: z.ZodOptional<z.ZodUnknown>;
51
+ is_error: z.ZodOptional<z.ZodBoolean>;
52
+ }, z.core.$strip>;
53
+ export declare const codexWebSearchPayloadSchema: z.ZodObject<{
54
+ type: z.ZodLiteral<"web_search_call">;
55
+ call_id: z.ZodOptional<z.ZodString>;
56
+ }, z.core.$strip>;
57
+ export declare function parseCodexPayload<T extends z.ZodTypeAny>(schema: T, payload: Record<string, unknown> | undefined): z.infer<T> | undefined;
58
+ export declare function requireCallId(callId: string | undefined, fallback?: string): string | undefined;
59
+ //# sourceMappingURL=codex-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-schemas.d.ts","sourceRoot":"","sources":["../../src/adapters/codex-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;iBAKxC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;iBAExC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;iBAQvC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;iBAWvC,CAAC;AAEL,eAAO,MAAM,oCAAoC;;;;;;;;iBAK/C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACtD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAIxB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/F"}
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+ const tokenUsageSchema = z.object({
3
+ input_tokens: z.number().optional(),
4
+ output_tokens: z.number().optional(),
5
+ cached_input_tokens: z.number().optional(),
6
+ reasoning_output_tokens: z.number().optional(),
7
+ total_tokens: z.number().optional(),
8
+ });
9
+ export const codexLineSchema = z.object({
10
+ type: z.string(),
11
+ timestamp: z.string().optional(),
12
+ payload: z.record(z.string(), z.unknown()).optional(),
13
+ });
14
+ export const codexSessionMetaPayloadSchema = z.object({
15
+ id: z.string().optional(),
16
+ cwd: z.string().optional(),
17
+ model: z.string().optional(),
18
+ model_provider: z.string().optional(),
19
+ });
20
+ export const codexTurnContextPayloadSchema = z.object({
21
+ model: z.string().optional(),
22
+ });
23
+ export const codexTokenCountPayloadSchema = z.object({
24
+ type: z.literal("token_count"),
25
+ info: z
26
+ .object({
27
+ total_token_usage: tokenUsageSchema.optional(),
28
+ })
29
+ .nullable()
30
+ .optional(),
31
+ });
32
+ export const codexMessagePayloadSchema = z.object({
33
+ type: z.literal("message"),
34
+ role: z.string(),
35
+ content: z.unknown().optional(),
36
+ });
37
+ export const codexFunctionCallPayloadSchema = z
38
+ .object({
39
+ type: z.enum(["function_call", "custom_tool_call"]),
40
+ call_id: z.string().optional(),
41
+ id: z.string().optional(),
42
+ name: z.unknown().optional(),
43
+ arguments: z.unknown().optional(),
44
+ input: z.unknown().optional(),
45
+ })
46
+ .refine((data) => typeof (data.call_id ?? data.id) === "string", {
47
+ message: "function_call missing string call_id",
48
+ });
49
+ export const codexFunctionCallOutputPayloadSchema = z.object({
50
+ type: z.enum(["function_call_output", "custom_tool_call_output"]),
51
+ call_id: z.string(),
52
+ output: z.unknown().optional(),
53
+ is_error: z.boolean().optional(),
54
+ });
55
+ export const codexWebSearchPayloadSchema = z.object({
56
+ type: z.literal("web_search_call"),
57
+ call_id: z.string().optional(),
58
+ });
59
+ export function parseCodexPayload(schema, payload) {
60
+ if (!payload)
61
+ return undefined;
62
+ const parsed = schema.safeParse(payload);
63
+ return parsed.success ? parsed.data : undefined;
64
+ }
65
+ export function requireCallId(callId, fallback) {
66
+ if (typeof callId === "string" && callId.length > 0)
67
+ return callId;
68
+ return fallback;
69
+ }
70
+ //# sourceMappingURL=codex-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-schemas.js","sourceRoot":"","sources":["../../src/adapters/codex-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Adapter } from "../types.js";
2
+ export declare const codexAdapter: Adapter;
3
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAOR,MAAM,aAAa,CAAC;AA2DrB,eAAO,MAAM,YAAY,EAAE,OAyQ1B,CAAC"}