@right-link/paperclip-plugin-codex-remote 0.3.1 → 0.3.2

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 (60) hide show
  1. package/dist/chunk-FULSN5VN.js +5348 -0
  2. package/dist/chunk-YJYVA7CY.js +99 -0
  3. package/dist/chunk-ZLN6QQMX.js +3267 -0
  4. package/dist/cli/index.js +190 -2
  5. package/dist/index.js +28 -84
  6. package/dist/server/adapter.js +140 -135
  7. package/dist/server/index.js +41 -56
  8. package/dist/server-utils-C4H4WJOG.js +104 -0
  9. package/dist/ui/index.js +318 -3
  10. package/package.json +7 -5
  11. package/dist/cli/format-event.js +0 -213
  12. package/dist/cli/format-event.js.map +0 -1
  13. package/dist/cli/index.js.map +0 -1
  14. package/dist/cli/quota-probe.js +0 -97
  15. package/dist/cli/quota-probe.js.map +0 -1
  16. package/dist/index.js.map +0 -1
  17. package/dist/server/adapter.js.map +0 -1
  18. package/dist/server/adapter.test.js +0 -84
  19. package/dist/server/adapter.test.js.map +0 -1
  20. package/dist/server/codex-args.js +0 -60
  21. package/dist/server/codex-args.js.map +0 -1
  22. package/dist/server/codex-args.test.js +0 -94
  23. package/dist/server/codex-args.test.js.map +0 -1
  24. package/dist/server/codex-home.js +0 -378
  25. package/dist/server/codex-home.js.map +0 -1
  26. package/dist/server/codex-home.test.js +0 -244
  27. package/dist/server/codex-home.test.js.map +0 -1
  28. package/dist/server/execute.js +0 -906
  29. package/dist/server/execute.js.map +0 -1
  30. package/dist/server/execute.remote.test.js +0 -487
  31. package/dist/server/execute.remote.test.js.map +0 -1
  32. package/dist/server/index.js.map +0 -1
  33. package/dist/server/parse.js +0 -213
  34. package/dist/server/parse.js.map +0 -1
  35. package/dist/server/parse.test.js +0 -107
  36. package/dist/server/parse.test.js.map +0 -1
  37. package/dist/server/quota-spawn-error.test.js +0 -77
  38. package/dist/server/quota-spawn-error.test.js.map +0 -1
  39. package/dist/server/quota.js +0 -432
  40. package/dist/server/quota.js.map +0 -1
  41. package/dist/server/sandbox-env.js +0 -23
  42. package/dist/server/sandbox-env.js.map +0 -1
  43. package/dist/server/skills.js +0 -24
  44. package/dist/server/skills.js.map +0 -1
  45. package/dist/server/tailscale.js +0 -95
  46. package/dist/server/tailscale.js.map +0 -1
  47. package/dist/server/test.js +0 -811
  48. package/dist/server/test.js.map +0 -1
  49. package/dist/server/test.remote.test.js +0 -257
  50. package/dist/server/test.remote.test.js.map +0 -1
  51. package/dist/ui/build-config.js +0 -113
  52. package/dist/ui/build-config.js.map +0 -1
  53. package/dist/ui/build-config.test.js +0 -49
  54. package/dist/ui/build-config.test.js.map +0 -1
  55. package/dist/ui/index.js.map +0 -1
  56. package/dist/ui/parse-stdout.js +0 -261
  57. package/dist/ui/parse-stdout.js.map +0 -1
  58. package/dist/ui/parse-stdout.test.js +0 -77
  59. package/dist/ui/parse-stdout.test.js.map +0 -1
  60. package/dist/ui-parser.js.map +0 -1
@@ -1,261 +0,0 @@
1
- function safeJsonParse(text) {
2
- try {
3
- return JSON.parse(text);
4
- }
5
- catch {
6
- return null;
7
- }
8
- }
9
- function asRecord(value) {
10
- if (typeof value !== "object" || value === null || Array.isArray(value))
11
- return null;
12
- return value;
13
- }
14
- function asString(value, fallback = "") {
15
- return typeof value === "string" ? value : fallback;
16
- }
17
- function asNumber(value, fallback = 0) {
18
- return typeof value === "number" && Number.isFinite(value) ? value : fallback;
19
- }
20
- function errorText(value) {
21
- if (typeof value === "string")
22
- return value;
23
- const rec = asRecord(value);
24
- if (!rec)
25
- return "";
26
- const msg = (typeof rec.message === "string" && rec.message) ||
27
- (typeof rec.error === "string" && rec.error) ||
28
- (typeof rec.code === "string" && rec.code) ||
29
- "";
30
- if (msg)
31
- return msg;
32
- try {
33
- return JSON.stringify(rec);
34
- }
35
- catch {
36
- return "";
37
- }
38
- }
39
- function stringifyUnknown(value) {
40
- if (typeof value === "string")
41
- return value;
42
- if (value === null || value === undefined)
43
- return "";
44
- try {
45
- return JSON.stringify(value, null, 2);
46
- }
47
- catch {
48
- return String(value);
49
- }
50
- }
51
- function parseCommandExecutionItem(item, ts, phase) {
52
- const id = asString(item.id);
53
- const command = asString(item.command);
54
- const status = asString(item.status);
55
- const exitCode = typeof item.exit_code === "number" && Number.isFinite(item.exit_code) ? item.exit_code : null;
56
- const safeCommand = command;
57
- const output = asString(item.aggregated_output).replace(/\s+$/, "");
58
- if (phase === "started") {
59
- return [{
60
- kind: "tool_call",
61
- ts,
62
- name: "command_execution",
63
- toolUseId: id || command || "command_execution",
64
- input: {
65
- id,
66
- command: safeCommand,
67
- },
68
- }];
69
- }
70
- const lines = [];
71
- if (safeCommand)
72
- lines.push(`command: ${safeCommand}`);
73
- if (status)
74
- lines.push(`status: ${status}`);
75
- if (exitCode !== null)
76
- lines.push(`exit_code: ${exitCode}`);
77
- if (output) {
78
- if (lines.length > 0)
79
- lines.push("");
80
- lines.push(output);
81
- }
82
- const isError = (exitCode !== null && exitCode !== 0) ||
83
- status === "failed" ||
84
- status === "errored" ||
85
- status === "error" ||
86
- status === "cancelled";
87
- return [{
88
- kind: "tool_result",
89
- ts,
90
- toolUseId: id || command || "command_execution",
91
- content: lines.join("\n").trim() || "command completed",
92
- isError,
93
- }];
94
- }
95
- function parseFileChangeItem(item, ts) {
96
- const changes = Array.isArray(item.changes) ? item.changes : [];
97
- const entries = changes
98
- .map((changeRaw) => asRecord(changeRaw))
99
- .filter((change) => Boolean(change))
100
- .map((change) => {
101
- const kind = asString(change.kind, "update");
102
- const path = asString(change.path, "unknown");
103
- return `${kind} ${path}`;
104
- });
105
- if (entries.length === 0) {
106
- return [{ kind: "system", ts, text: "file changes applied" }];
107
- }
108
- const preview = entries.slice(0, 6).join(", ");
109
- const more = entries.length > 6 ? ` (+${entries.length - 6} more)` : "";
110
- return [{ kind: "system", ts, text: `file changes: ${preview}${more}` }];
111
- }
112
- function parseToolUseItem(item, ts, phase) {
113
- const name = asString(item.name, "unknown");
114
- const toolUseId = asString(item.id, name || "tool_use");
115
- if (phase === "started") {
116
- return [{
117
- kind: "tool_call",
118
- ts,
119
- name,
120
- toolUseId,
121
- input: item.input ?? {},
122
- }];
123
- }
124
- const status = asString(item.status);
125
- const isError = item.is_error === true ||
126
- status === "failed" ||
127
- status === "errored" ||
128
- status === "error" ||
129
- status === "cancelled";
130
- const rawContent = item.content ??
131
- item.output ??
132
- item.result ??
133
- item.error ??
134
- item.message;
135
- const content = asString(rawContent) ||
136
- errorText(rawContent) ||
137
- stringifyUnknown(rawContent) ||
138
- `${name} ${isError ? "failed" : "completed"}`;
139
- return [{
140
- kind: "tool_result",
141
- ts,
142
- toolUseId,
143
- content,
144
- isError,
145
- }];
146
- }
147
- function parseCodexItem(item, ts, phase) {
148
- const itemType = asString(item.type);
149
- if (itemType === "agent_message") {
150
- const text = asString(item.text);
151
- if (text)
152
- return [{ kind: "assistant", ts, text }];
153
- return [];
154
- }
155
- if (itemType === "reasoning") {
156
- const text = asString(item.text);
157
- if (text)
158
- return [{ kind: "thinking", ts, text }];
159
- return [{ kind: "system", ts, text: phase === "started" ? "reasoning started" : "reasoning completed" }];
160
- }
161
- if (itemType === "command_execution") {
162
- return parseCommandExecutionItem(item, ts, phase);
163
- }
164
- if (itemType === "file_change" && phase === "completed") {
165
- return parseFileChangeItem(item, ts);
166
- }
167
- if (itemType === "tool_use") {
168
- return parseToolUseItem(item, ts, phase);
169
- }
170
- if (itemType === "tool_result" && phase === "completed") {
171
- const toolUseId = asString(item.tool_use_id, asString(item.id));
172
- const content = asString(item.content) ||
173
- asString(item.output) ||
174
- asString(item.result) ||
175
- stringifyUnknown(item.content ?? item.output ?? item.result);
176
- const isError = item.is_error === true || asString(item.status) === "error";
177
- return [{ kind: "tool_result", ts, toolUseId, content, isError }];
178
- }
179
- if (itemType === "error" && phase === "completed") {
180
- const text = errorText(item.message ?? item.error ?? item);
181
- return [{ kind: "stderr", ts, text: text || "error" }];
182
- }
183
- const id = asString(item.id);
184
- const status = asString(item.status);
185
- const meta = [id ? `id=${id}` : "", status ? `status=${status}` : ""].filter(Boolean).join(" ");
186
- return [{
187
- kind: "system",
188
- ts,
189
- text: `item ${phase}: ${itemType || "unknown"}${meta ? ` (${meta})` : ""}`,
190
- }];
191
- }
192
- export function parseCodexStdoutLine(line, ts) {
193
- const parsed = asRecord(safeJsonParse(line));
194
- if (!parsed) {
195
- return [{ kind: "stdout", ts, text: line }];
196
- }
197
- const type = asString(parsed.type);
198
- if (type === "thread.started") {
199
- const threadId = asString(parsed.thread_id);
200
- return [{
201
- kind: "init",
202
- ts,
203
- model: asString(parsed.model, "codex"),
204
- sessionId: threadId,
205
- }];
206
- }
207
- if (type === "turn.started") {
208
- return [{ kind: "system", ts, text: "turn started" }];
209
- }
210
- if (type === "item.started" || type === "item.completed") {
211
- const item = asRecord(parsed.item);
212
- if (!item)
213
- return [{ kind: "system", ts, text: type.replace(".", " ") }];
214
- return parseCodexItem(item, ts, type === "item.started" ? "started" : "completed");
215
- }
216
- if (type === "turn.completed") {
217
- const usage = asRecord(parsed.usage);
218
- const inputTokens = asNumber(usage?.input_tokens);
219
- const outputTokens = asNumber(usage?.output_tokens);
220
- const cachedTokens = asNumber(usage?.cached_input_tokens, asNumber(usage?.cache_read_input_tokens));
221
- return [{
222
- kind: "result",
223
- ts,
224
- text: asString(parsed.result),
225
- inputTokens,
226
- outputTokens,
227
- cachedTokens,
228
- costUsd: asNumber(parsed.total_cost_usd),
229
- subtype: asString(parsed.subtype),
230
- isError: parsed.is_error === true,
231
- errors: Array.isArray(parsed.errors)
232
- ? parsed.errors.map(errorText).filter(Boolean)
233
- : [],
234
- }];
235
- }
236
- if (type === "turn.failed") {
237
- const usage = asRecord(parsed.usage);
238
- const inputTokens = asNumber(usage?.input_tokens);
239
- const outputTokens = asNumber(usage?.output_tokens);
240
- const cachedTokens = asNumber(usage?.cached_input_tokens, asNumber(usage?.cache_read_input_tokens));
241
- const message = errorText(parsed.error ?? parsed.message);
242
- return [{
243
- kind: "result",
244
- ts,
245
- text: asString(parsed.result),
246
- inputTokens,
247
- outputTokens,
248
- cachedTokens,
249
- costUsd: asNumber(parsed.total_cost_usd),
250
- subtype: asString(parsed.subtype, "turn.failed"),
251
- isError: true,
252
- errors: message ? [message] : [],
253
- }];
254
- }
255
- if (type === "error") {
256
- const message = errorText(parsed.message ?? parsed.error ?? parsed);
257
- return [{ kind: "stderr", ts, text: message || line }];
258
- }
259
- return [{ kind: "stdout", ts, text: line }];
260
- }
261
- //# sourceMappingURL=parse-stdout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-stdout.js","sourceRoot":"","sources":["../../src/ui/parse-stdout.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { parseCodexStdoutLine } from "./parse-stdout.js";
3
- describe("parseCodexStdoutLine", () => {
4
- it("marks completed tool_use items as resolved tool results", () => {
5
- const started = parseCodexStdoutLine(JSON.stringify({
6
- type: "item.started",
7
- item: {
8
- id: "tool-1",
9
- type: "tool_use",
10
- name: "search",
11
- input: { query: "paperclip" },
12
- },
13
- }), "2026-04-08T12:00:00.000Z");
14
- const completed = parseCodexStdoutLine(JSON.stringify({
15
- type: "item.completed",
16
- item: {
17
- id: "tool-1",
18
- type: "tool_use",
19
- name: "search",
20
- status: "completed",
21
- },
22
- }), "2026-04-08T12:00:01.000Z");
23
- expect(started).toEqual([{
24
- kind: "tool_call",
25
- ts: "2026-04-08T12:00:00.000Z",
26
- name: "search",
27
- toolUseId: "tool-1",
28
- input: { query: "paperclip" },
29
- }]);
30
- expect(completed).toEqual([{
31
- kind: "tool_result",
32
- ts: "2026-04-08T12:00:01.000Z",
33
- toolUseId: "tool-1",
34
- content: "search completed",
35
- isError: false,
36
- }]);
37
- });
38
- it("keeps explicit tool_result payloads authoritative after tool_use completion", () => {
39
- const completed = parseCodexStdoutLine(JSON.stringify({
40
- type: "item.completed",
41
- item: {
42
- id: "tool-2",
43
- type: "tool_result",
44
- tool_use_id: "tool-1",
45
- content: "final payload",
46
- status: "completed",
47
- },
48
- }), "2026-04-08T12:00:02.000Z");
49
- expect(completed).toEqual([{
50
- kind: "tool_result",
51
- ts: "2026-04-08T12:00:02.000Z",
52
- toolUseId: "tool-1",
53
- content: "final payload",
54
- isError: false,
55
- }]);
56
- });
57
- it("marks failed completed tool_use items as error results", () => {
58
- const completed = parseCodexStdoutLine(JSON.stringify({
59
- type: "item.completed",
60
- item: {
61
- id: "tool-3",
62
- type: "tool_use",
63
- name: "write_file",
64
- status: "error",
65
- error: { message: "permission denied" },
66
- },
67
- }), "2026-04-08T12:00:03.000Z");
68
- expect(completed).toEqual([{
69
- kind: "tool_result",
70
- ts: "2026-04-08T12:00:03.000Z",
71
- toolUseId: "tool-3",
72
- content: "permission denied",
73
- isError: true,
74
- }]);
75
- });
76
- });
77
- //# sourceMappingURL=parse-stdout.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-stdout.test.js","sourceRoot":"","sources":["../../src/ui/parse-stdout.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-parser.js","sourceRoot":"","sources":["../src/ui-parser.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,OAAO,EAAE,oBAAoB,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC"}