@optimuslabs/runtime 0.3.4 → 0.3.10

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.
@@ -0,0 +1,162 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert";
3
+ import fs from "fs";
4
+ import os from "os";
5
+ import path from "path";
6
+ import { copilotSessionEventsPath, readAgentProduct, readCopilotProduct, readLastUserPrompt, } from "../lib/transcript.js";
7
+ function transcript(lines) {
8
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "transcript-"));
9
+ const file = path.join(dir, "t.jsonl");
10
+ fs.writeFileSync(file, lines.map((l) => JSON.stringify(l)).join("\n") + "\n");
11
+ return file;
12
+ }
13
+ const codexUser = (text) => ({
14
+ type: "response_item",
15
+ payload: { type: "message", role: "user", content: [{ type: "input_text", text }] },
16
+ });
17
+ test("readLastUserPrompt - Codex: the last prompt the person typed", () => {
18
+ const file = transcript([
19
+ codexUser("# AGENTS.md instructions for /repo"),
20
+ codexUser("<environment_context>\n <cwd>/repo</cwd>"),
21
+ codexUser("first question"),
22
+ { type: "response_item", payload: { type: "function_call", name: "shell" } },
23
+ codexUser("Run ls -la /tmp"),
24
+ ]);
25
+ assert.strictEqual(readLastUserPrompt(file), "Run ls -la /tmp");
26
+ });
27
+ test("readLastUserPrompt - Codex: injected context is never taken for the prompt", () => {
28
+ const file = transcript([codexUser("real prompt"), codexUser("<environment_context>x")]);
29
+ assert.strictEqual(readLastUserPrompt(file), "real prompt");
30
+ });
31
+ test("readLastUserPrompt - Claude transcripts still read as before", () => {
32
+ const file = transcript([{ type: "user", message: { role: "user", content: "claude prompt" } }]);
33
+ assert.strictEqual(readLastUserPrompt(file), "claude prompt");
34
+ });
35
+ test("readLastUserPrompt - missing file is null", () => {
36
+ assert.strictEqual(readLastUserPrompt("/nonexistent/t.jsonl"), null);
37
+ });
38
+ const claudeUser = (text) => ({ type: "user", message: { role: "user", content: text } });
39
+ const toolResult = (output) => ({
40
+ type: "user",
41
+ message: { role: "user", content: [{ type: "tool_result", content: output }] },
42
+ });
43
+ test("readLastUserPrompt - the prompt is found behind more than one read of later tool output", () => {
44
+ const output = "x".repeat(64 * 1024);
45
+ const file = transcript([
46
+ claudeUser("older prompt"),
47
+ claudeUser("latest prompt"),
48
+ ...Array.from({ length: 80 }, () => toolResult(output)), // about 5 MB
49
+ ]);
50
+ assert.strictEqual(readLastUserPrompt(file), "latest prompt");
51
+ });
52
+ test("readLastUserPrompt - a prompt across a read boundary keeps its multi-byte characters", () => {
53
+ const text = "é🙂".repeat(200 * 1024); // about 1.2 MB of multi-byte characters
54
+ const file = transcript([claudeUser("earlier"), claudeUser(text), toolResult("y".repeat(1536 * 1024))]);
55
+ assert.strictEqual(readLastUserPrompt(file), text);
56
+ });
57
+ test("readLastUserPrompt - the last line needs no trailing newline", () => {
58
+ const file = transcript([]);
59
+ fs.writeFileSync(file, JSON.stringify(claudeUser("no newline after me")));
60
+ assert.strictEqual(readLastUserPrompt(file), "no newline after me");
61
+ });
62
+ test("readLastUserPrompt - an empty transcript has no prompt", () => {
63
+ assert.strictEqual(readLastUserPrompt(transcript([])), null);
64
+ });
65
+ test("readLastUserPrompt - a transcript past Node's string limit still gives its prompt", () => {
66
+ // Days in one session grew a transcript past 1 GB; reading it whole threw, and every tool call
67
+ // went out without its prompt. A sparse 600 MB of old history stands in for it.
68
+ const file = transcript([]);
69
+ fs.truncateSync(file, 600 * 1024 * 1024);
70
+ const recent = [claudeUser("still found"), toolResult("ls output")];
71
+ fs.appendFileSync(file, "\n" + recent.map((l) => JSON.stringify(l)).join("\n") + "\n");
72
+ try {
73
+ assert.strictEqual(readLastUserPrompt(file), "still found");
74
+ }
75
+ finally {
76
+ fs.rmSync(path.dirname(file), { recursive: true });
77
+ }
78
+ });
79
+ const sessionMeta = (originator, extra = {}) => ({
80
+ timestamp: "2026-11-03T11:51:30.567Z",
81
+ type: "session_meta",
82
+ payload: {
83
+ id: "01a1a13f",
84
+ cwd: "/Users/alan/Documents/Codex/2026-11-03/work",
85
+ originator,
86
+ cli_version: "0.166.0-alpha.5.1",
87
+ // Codex puts its whole instruction set on this line, so it is long.
88
+ base_instructions: { text: "x".repeat(20000) },
89
+ ...extra,
90
+ },
91
+ });
92
+ test("readAgentProduct - the product and engine version that wrote a Codex session", () => {
93
+ const file = transcript([sessionMeta("codex_work_desktop"), codexUser("hi")]);
94
+ assert.deepStrictEqual(readAgentProduct(file), {
95
+ originator: "codex_work_desktop",
96
+ version: "0.166.0-alpha.5.1",
97
+ });
98
+ });
99
+ test("readAgentProduct - a product name with a space, as the Codex app writes it", () => {
100
+ const file = transcript([sessionMeta("Codex Desktop")]);
101
+ assert.strictEqual(readAgentProduct(file)?.originator, "Codex Desktop");
102
+ });
103
+ test("readAgentProduct - null for a transcript that is not a Codex session", () => {
104
+ const file = transcript([{ type: "user", message: { role: "user", content: "originator" } }]);
105
+ assert.strictEqual(readAgentProduct(file), null);
106
+ });
107
+ test("readAgentProduct - null for a missing file", () => {
108
+ assert.strictEqual(readAgentProduct("/nonexistent/session.jsonl"), null);
109
+ });
110
+ function copilotHome(sessionId, clientName, copilotVersion) {
111
+ const home = fs.mkdtempSync(path.join(os.tmpdir(), "copilot-home-"));
112
+ const dir = path.join(home, ".copilot", "session-state", sessionId);
113
+ fs.mkdirSync(dir, { recursive: true });
114
+ fs.writeFileSync(path.join(dir, "workspace.yaml"), `id: ${sessionId}\nclient_name: ${clientName}\nname: x\n`);
115
+ const start = { type: "session.start", data: { sessionId, producer: "copilot-agent", copilotVersion } };
116
+ fs.writeFileSync(path.join(dir, "events.jsonl"), JSON.stringify(start) + "\n");
117
+ return home;
118
+ }
119
+ test("readCopilotProduct - the CLI and the Copilot app, from the session's workspace.yaml", () => {
120
+ const cli = copilotHome("a4825a9b-e723-47a9", "github/cli", "1.0.105");
121
+ assert.deepStrictEqual(readCopilotProduct("a4825a9b-e723-47a9", null, cli), {
122
+ originator: "github/cli",
123
+ version: "1.0.105",
124
+ });
125
+ const app = copilotHome("4cb827b2-e1e8-4a09", "github/autopilot", "1.0.94-3");
126
+ assert.strictEqual(readCopilotProduct("4cb827b2-e1e8-4a09", null, app)?.originator, "github/autopilot");
127
+ });
128
+ test("readCopilotProduct - VS Code's Copilot Chat, from its transcript path", () => {
129
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "vscode-"));
130
+ const transcripts = path.join(dir, "workspaceStorage", "ws", "GitHub.copilot-chat", "transcripts");
131
+ fs.mkdirSync(transcripts, { recursive: true });
132
+ const file = path.join(transcripts, "7716c62e.jsonl");
133
+ fs.writeFileSync(file, JSON.stringify({ type: "session.start", data: { copilotVersion: "0.64.0" } }) + "\n");
134
+ assert.deepStrictEqual(readCopilotProduct("7716c62e", file), { originator: "vscode", version: "0.64.0" });
135
+ });
136
+ test("readCopilotProduct - null for an unknown session or an id that is not one", () => {
137
+ const home = copilotHome("known-session-1", "github/cli", "1.0.105");
138
+ assert.strictEqual(readCopilotProduct("unknown-session-1", null, home), null);
139
+ assert.strictEqual(readCopilotProduct("../../etc/passwd", null, home), null);
140
+ });
141
+ const copilotUser = (content) => ({ type: "user.message", data: { content, transformedContent: `<x>${content}</x>` } });
142
+ test("readLastUserPrompt - Copilot CLI: the last prompt the person typed, from the session's events", () => {
143
+ const file = transcript([
144
+ { type: "session.start", data: { copilotVersion: "1.0.105" } },
145
+ copilotUser("first question"),
146
+ { type: "assistant.message", data: { content: "answer" } },
147
+ copilotUser('can you echo "copilot probe"'),
148
+ { type: "tool.execution_start", data: { toolName: "bash" } },
149
+ ]);
150
+ assert.strictEqual(readLastUserPrompt(file), 'can you echo "copilot probe"');
151
+ });
152
+ test("readLastUserPrompt - Copilot CLI: an empty user message is not taken for the prompt", () => {
153
+ const file = transcript([copilotUser("real prompt"), copilotUser(" ")]);
154
+ assert.strictEqual(readLastUserPrompt(file), "real prompt");
155
+ });
156
+ test("copilotSessionEventsPath - the session's events file, or null for an id that is not one", () => {
157
+ assert.strictEqual(copilotSessionEventsPath("869f6bad-3d83-436f", "/Users/x"), "/Users/x/.copilot/session-state/869f6bad-3d83-436f/events.jsonl");
158
+ assert.strictEqual(copilotSessionEventsPath("../../etc/passwd", "/Users/x"), null);
159
+ assert.strictEqual(copilotSessionEventsPath(null, "/Users/x"), null);
160
+ assert.strictEqual(copilotSessionEventsPath("869f6bad-3d83-436f", ""), null);
161
+ });
162
+ //# sourceMappingURL=transcript.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript.test.js","sourceRoot":"","sources":["../../src/test/transcript.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimuslabs/runtime",
3
- "version": "0.3.4",
3
+ "version": "0.3.10",
4
4
  "description": "Agentic audit sensor — streams raw tool call metadata; the Optimus backend classifies on ingest",
5
5
  "type": "module",
6
6
  "bin": {