codex-task 0.2.2 → 0.2.4

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 (49) hide show
  1. package/.codex-plugin/plugin.json +4 -4
  2. package/README.md +201 -160
  3. package/README_EN.md +196 -0
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +36 -18
  6. package/dist/api.js.map +1 -1
  7. package/dist/backends/direct/index.d.ts +6 -2
  8. package/dist/backends/direct/index.d.ts.map +1 -1
  9. package/dist/backends/direct/index.js +2 -1
  10. package/dist/backends/direct/index.js.map +1 -1
  11. package/dist/backends/direct/protocol.d.ts +1 -0
  12. package/dist/backends/direct/protocol.d.ts.map +1 -1
  13. package/dist/backends/direct/protocol.js +1 -1
  14. package/dist/backends/direct/protocol.js.map +1 -1
  15. package/dist/cli.js +98 -35
  16. package/dist/cli.js.map +1 -1
  17. package/dist/images.d.ts +4 -2
  18. package/dist/images.d.ts.map +1 -1
  19. package/dist/images.js +35 -26
  20. package/dist/images.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/inputs.d.ts +14 -0
  26. package/dist/inputs.d.ts.map +1 -0
  27. package/dist/inputs.js +40 -0
  28. package/dist/inputs.js.map +1 -0
  29. package/dist/server.d.ts +19 -0
  30. package/dist/server.d.ts.map +1 -0
  31. package/dist/server.js +503 -0
  32. package/dist/server.js.map +1 -0
  33. package/dist/types.d.ts +8 -6
  34. package/dist/types.d.ts.map +1 -1
  35. package/examples/mobile/README.md +69 -0
  36. package/examples/mobile/android/CodexTaskClient.kt +126 -0
  37. package/examples/mobile/android/MealWorkflow.kt +51 -0
  38. package/examples/mobile/ios/CodexTaskClient.swift +163 -0
  39. package/examples/mobile/ios/MealWorkflow.swift +55 -0
  40. package/package.json +4 -2
  41. package/scripts/service/Install-Windows.ps1 +47 -0
  42. package/scripts/service/Uninstall-Windows.ps1 +9 -0
  43. package/scripts/service/install-macos.sh +66 -0
  44. package/scripts/service/install-ubuntu.sh +63 -0
  45. package/scripts/service/uninstall-macos.sh +12 -0
  46. package/scripts/service/uninstall-ubuntu.sh +12 -0
  47. package/skills/codex-task/SKILL.md +74 -38
  48. package/skills/codex-task/agents/openai.yaml +1 -1
  49. package/README.zh-CN.md +0 -209
package/dist/cli.js CHANGED
@@ -4,6 +4,8 @@ import { Command, Option } from "commander";
4
4
  import { dispatch, streamTaskEvents } from "./api.js";
5
5
  import { runDoctor } from "./doctor.js";
6
6
  import { asCodexTaskError, usageError } from "./errors.js";
7
+ import { resolveTaskInput } from "./inputs.js";
8
+ import { startCodexTaskServer } from "./server.js";
7
9
  import { companionSkillPath } from "./skill.js";
8
10
  import { runGarbageCollection } from "./state.js";
9
11
  function collect(value, previous) {
@@ -22,16 +24,14 @@ async function readStdin() {
22
24
  chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
23
25
  return Buffer.concat(chunks).toString("utf8");
24
26
  }
25
- async function resolvePrompt(positional, flags) {
26
- const sources = Number(positional !== undefined) + Number(flags.promptFile !== undefined) + Number(!process.stdin.isTTY);
27
- if (sources === 0)
28
- throw usageError("provide a prompt argument, --prompt-file, or stdin");
29
- if (sources > 1)
30
- throw usageError("prompt argument, --prompt-file, and stdin are mutually exclusive");
31
- const prompt = positional ?? (flags.promptFile ? readFileSync(flags.promptFile, "utf8") : await readStdin());
32
- if (!prompt.trim())
33
- throw usageError("prompt must not be empty");
34
- return prompt;
27
+ async function resolveCliInput(positional, flags) {
28
+ const stdin = process.stdin.isTTY ? undefined : await readStdin();
29
+ return resolveTaskInput({
30
+ prompt: positional,
31
+ promptFiles: flags.promptFile,
32
+ stdin,
33
+ imagePaths: flags.image,
34
+ });
35
35
  }
36
36
  function durationMs(value) {
37
37
  if (!value)
@@ -61,15 +61,28 @@ function jsonFile(path) {
61
61
  throw usageError(`could not parse JSON file ${path}: ${error instanceof Error ? error.message : String(error)}`);
62
62
  }
63
63
  }
64
+ function serviceToken(path) {
65
+ if (!path)
66
+ return process.env["CODEX_TASK_SERVER_TOKEN"]?.trim() || undefined;
67
+ try {
68
+ const token = readFileSync(path, "utf8").trim();
69
+ if (!token)
70
+ throw new Error("token file is empty");
71
+ return token;
72
+ }
73
+ catch (error) {
74
+ throw usageError(`could not read service token file ${path}: ${error instanceof Error ? error.message : String(error)}`);
75
+ }
76
+ }
64
77
  function instructions(flags) {
65
78
  if (flags.instructions && flags.instructionsFile) {
66
79
  throw usageError("--instructions and --instructions-file are mutually exclusive");
67
80
  }
68
81
  return flags.instructions ?? (flags.instructionsFile ? readFileSync(flags.instructionsFile, "utf8") : undefined);
69
82
  }
70
- function common(flags) {
83
+ function common(flags, backend) {
71
84
  return {
72
- backend: flags.backend,
85
+ backend: flags.backend ?? backend,
73
86
  model: flags.model,
74
87
  reasoning: flags.reasoning,
75
88
  instructions: instructions(flags),
@@ -79,10 +92,13 @@ function common(flags) {
79
92
  codexHome: flags.codexHome,
80
93
  };
81
94
  }
82
- function addCommonOptions(command, defaultBackend) {
83
- return command
84
- .addOption(new Option("--backend <backend>", "execution backend").choices(["direct", "sdk"]).default(defaultBackend))
85
- .option("--prompt-file <path>", "read prompt from a UTF-8 file")
95
+ function addCommonOptions(command, defaultBackend, features = {}) {
96
+ let configured = defaultBackend
97
+ ? command.addOption(new Option("--backend <backend>", "execution backend").choices(["direct", "sdk"]).default(defaultBackend))
98
+ : command.addOption(new Option("--backend <backend>").choices(["sdk"]).hideHelp());
99
+ configured = configured
100
+ .option("-f, --prompt-file <path>", "append a UTF-8 prompt file; repeatable", collect, [])
101
+ .option("-i, --image <path>", "attach a local image; repeat up to five times", collect, [])
86
102
  .option("--model <model>", "model override")
87
103
  .addOption(new Option("--reasoning <effort>", "reasoning effort").choices([
88
104
  "none",
@@ -94,10 +110,13 @@ function addCommonOptions(command, defaultBackend) {
94
110
  "ultra",
95
111
  ]))
96
112
  .option("--instructions <text>", "additional worker instructions")
97
- .option("--instructions-file <path>", "read additional instructions from a file")
98
- .option("--schema <path>", "JSON Schema for the final text response")
99
- .option("--timeout <duration>", "timeout, for example 30s, 10m, or 1h")
100
- .option("--retries <count>", "Direct transient retries")
113
+ .option("--instructions-file <path>", "read additional instructions from a file");
114
+ if (features.schema)
115
+ configured = configured.option("--schema <path>", "JSON Schema for the final text response");
116
+ configured = configured.option("--timeout <duration>", "timeout, for example 30s, 10m, or 1h");
117
+ if (features.retries)
118
+ configured = configured.option("--retries <count>", "Direct transient retries");
119
+ return configured
101
120
  .option("--codex-home <path>", "Codex home directory")
102
121
  .option("--stream", "emit JSONL progress events");
103
122
  }
@@ -131,12 +150,16 @@ program
131
150
  .name("codex-task")
132
151
  .description("Unofficial agent-to-agent text, image, and workspace task runner for Codex")
133
152
  .version(packageVersion());
134
- addCommonOptions(program.command("text [prompt]").description("generate a focused text result"), "direct").action(async (prompt, flags) => {
135
- await execute({ kind: "text", options: { ...common(flags), prompt: await resolvePrompt(prompt, flags) } }, flags.stream ?? false);
153
+ addCommonOptions(program.command("text [prompt]").description("generate a focused text result"), "direct", {
154
+ schema: true,
155
+ retries: true,
156
+ }).action(async (prompt, flags) => {
157
+ const input = await resolveCliInput(prompt, flags);
158
+ await execute({ kind: "text", options: { ...common(flags, "direct"), prompt: input.text, imagePaths: input.imagePaths } }, flags.stream ?? false);
136
159
  });
137
- addCommonOptions(program.command("image [prompt]").description("generate or edit images"), "direct")
138
- .option("-i, --image <path>", "reference image; repeat up to five times", collect, [])
160
+ addCommonOptions(program.command("image [prompt]").description("generate or edit images"), "direct", { retries: true })
139
161
  .option("-o, --output <path>", "PNG file or output directory")
162
+ .option("--temp", "store output under the managed temporary directory")
140
163
  .option("-n, --count <count>", "number of images", "1")
141
164
  .option("--concurrency <count>", "parallel image requests", "1")
142
165
  .option("--size <size>", "auto or WIDTHxHEIGHT", "auto")
@@ -145,11 +168,13 @@ addCommonOptions(program.command("image [prompt]").description("generate or edit
145
168
  .option("--overwrite", "replace existing output files")
146
169
  .option("--cwd <path>", "working directory for SDK image generation")
147
170
  .action(async (prompt, flags) => {
171
+ const input = await resolveCliInput(prompt, flags);
148
172
  const options = {
149
- ...common(flags),
150
- prompt: await resolvePrompt(prompt, flags),
151
- imagePaths: flags["image"],
173
+ ...common(flags, "direct"),
174
+ prompt: input.text,
175
+ imagePaths: input.imagePaths,
152
176
  output: flags["output"],
177
+ temporary: flags["temp"] ?? false,
153
178
  count: integer(flags["count"], "count"),
154
179
  concurrency: integer(flags["concurrency"], "concurrency"),
155
180
  size: flags["size"],
@@ -160,7 +185,7 @@ addCommonOptions(program.command("image [prompt]").description("generate or edit
160
185
  };
161
186
  await execute({ kind: "image", options }, flags.stream ?? false);
162
187
  });
163
- addCommonOptions(program.command("task [prompt]").description("run a Codex workspace task"), "direct")
188
+ addCommonOptions(program.command("task [prompt]").description("run a Codex workspace task"))
164
189
  .option("--cwd <path>", "working directory", process.cwd())
165
190
  .addOption(new Option("--sandbox <mode>", "sandbox mode")
166
191
  .choices(["read-only", "workspace-write", "danger-full-access"])
@@ -168,14 +193,14 @@ addCommonOptions(program.command("task [prompt]").description("run a Codex works
168
193
  .option("--no-network", "disable network access")
169
194
  .option("--no-followup", "forbid needs_input; complete or fail in one caller turn")
170
195
  .action(async (prompt, flags) => {
171
- if (flags.backend !== "sdk")
172
- throw usageError("task requires explicit --backend sdk");
196
+ const input = await resolveCliInput(prompt, flags);
173
197
  await execute({
174
198
  kind: "task",
175
199
  options: {
176
- ...common(flags),
200
+ ...common(flags, "sdk"),
177
201
  backend: "sdk",
178
- prompt: await resolvePrompt(prompt, flags),
202
+ prompt: input.text,
203
+ imagePaths: input.imagePaths,
179
204
  workingDirectory: flags["cwd"],
180
205
  sandboxMode: flags["sandbox"],
181
206
  networkAccess: flags["network"] ?? true,
@@ -183,15 +208,17 @@ addCommonOptions(program.command("task [prompt]").description("run a Codex works
183
208
  },
184
209
  }, flags.stream ?? false);
185
210
  });
186
- addCommonOptions(program.command("resume <task-id> [answer]").description("resume a task awaiting input"), "sdk")
211
+ addCommonOptions(program.command("resume <task-id> [answer]").description("resume a task awaiting input"))
187
212
  .option("--no-followup", "forbid another needs_input result")
188
213
  .action(async (taskId, answer, flags) => {
214
+ const input = await resolveCliInput(answer, flags);
189
215
  await execute({
190
216
  kind: "resume",
191
217
  options: {
192
- ...common(flags),
218
+ ...common(flags, "sdk"),
193
219
  taskId,
194
- answer: await resolvePrompt(answer, flags),
220
+ answer: input.text,
221
+ imagePaths: input.imagePaths,
195
222
  noFollowup: flags["followup"] === false,
196
223
  },
197
224
  }, flags.stream ?? false);
@@ -202,6 +229,42 @@ program.command("doctor").description("inspect local Direct and SDK readiness wi
202
229
  program.command("gc").description("remove expired CodexTask state and temporary artifacts").action(() => {
203
230
  writeJson(runGarbageCollection());
204
231
  });
232
+ program
233
+ .command("serve")
234
+ .description("run the authenticated CodexTask HTTP service")
235
+ .option("--host <host>", "listener address", "127.0.0.1")
236
+ .option("--port <port>", "listener port", "7777")
237
+ .option("--token-file <path>", "read the Bearer token from a protected file")
238
+ .option("--max-concurrency <count>", "maximum simultaneously running jobs", "2")
239
+ .action(async (flags) => {
240
+ const port = integer(flags["port"], "port");
241
+ const maxConcurrency = integer(flags["maxConcurrency"], "max-concurrency");
242
+ if (!port || port > 65_535)
243
+ throw usageError("port must be an integer from 1 to 65535");
244
+ const token = serviceToken(flags["tokenFile"]);
245
+ const server = await startCodexTaskServer({
246
+ host: flags["host"],
247
+ port,
248
+ token,
249
+ maxConcurrency,
250
+ });
251
+ writeJson({
252
+ status: "listening",
253
+ url: server.url,
254
+ host: server.host,
255
+ port: server.port,
256
+ authentication: token ? "bearer" : "none-loopback-only",
257
+ });
258
+ await new Promise((resolve) => {
259
+ const stop = () => {
260
+ process.off("SIGINT", stop);
261
+ process.off("SIGTERM", stop);
262
+ void server.close().finally(resolve);
263
+ };
264
+ process.once("SIGINT", stop);
265
+ process.once("SIGTERM", stop);
266
+ });
267
+ });
205
268
  program
206
269
  .command("skill")
207
270
  .description("inspect the packaged companion skill")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/images.d.ts CHANGED
@@ -7,12 +7,14 @@ export interface ValidatedImageOptions {
7
7
  background: "auto" | "opaque" | "transparent";
8
8
  imagePaths: string[];
9
9
  overwrite: boolean;
10
+ temporary: boolean;
10
11
  }
12
+ export declare function validateInputImages(paths: string[] | undefined): string[];
11
13
  export declare function validateImageOptions(options: ImageOptions): ValidatedImageOptions;
12
14
  export declare function imageMimeType(path: string): string;
13
- export declare function outputPathForImage(taskId: string, output: string | undefined, index: number, count: number): {
15
+ export declare function outputPathForImage(taskId: string, output: string | undefined, index: number, count: number, temporary?: boolean): {
14
16
  path: string;
15
17
  temporary: boolean;
16
18
  };
17
- export declare function writePngArtifact(taskId: string, buffer: Buffer, output: string | undefined, index: number, count: number, overwrite: boolean): Artifact;
19
+ export declare function writePngArtifact(taskId: string, buffer: Buffer, output: string | undefined, index: number, count: number, overwrite: boolean, temporary?: boolean): Artifact;
18
20
  //# sourceMappingURL=images.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAazD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,CAiDjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CActC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,QAAQ,CAcV"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAazD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAgBzE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,CAqCjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,UAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgBtC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,EAClB,SAAS,UAAQ,GAChB,QAAQ,CAcV"}
package/dist/images.js CHANGED
@@ -12,21 +12,43 @@ const MIME_BY_EXTENSION = {
12
12
  };
13
13
  const MAX_IMAGE_BYTES = 20 * 1024 * 1024;
14
14
  const MAX_TOTAL_IMAGE_BYTES = 50 * 1024 * 1024;
15
+ export function validateInputImages(paths) {
16
+ const imagePaths = (paths ?? []).map((path) => resolve(path));
17
+ if (imagePaths.length > 5)
18
+ throw usageError("at most 5 input images are supported");
19
+ let totalBytes = 0;
20
+ for (const path of imagePaths) {
21
+ if (!existsSync(path))
22
+ throw usageError(`input image does not exist: ${path}`);
23
+ const extension = extname(path).toLowerCase();
24
+ if (!MIME_BY_EXTENSION[extension]) {
25
+ throw usageError(`unsupported image type for ${path}; use png, jpg, jpeg, webp, or gif`);
26
+ }
27
+ const bytes = statSync(path).size;
28
+ if (bytes > MAX_IMAGE_BYTES)
29
+ throw usageError(`input image exceeds 20 MiB: ${path}`);
30
+ totalBytes += bytes;
31
+ }
32
+ if (totalBytes > MAX_TOTAL_IMAGE_BYTES)
33
+ throw usageError("input images exceed the 50 MiB total limit");
34
+ return imagePaths;
35
+ }
15
36
  export function validateImageOptions(options) {
16
37
  const count = options.count ?? 1;
17
38
  const concurrency = options.concurrency ?? 1;
18
39
  const size = options.size ?? "auto";
19
40
  const quality = options.quality ?? "auto";
20
41
  const background = options.background ?? "auto";
21
- const imagePaths = options.imagePaths ?? [];
42
+ const imagePaths = validateInputImages(options.imagePaths);
43
+ const temporary = options.temporary ?? false;
44
+ if (temporary && options.output)
45
+ throw usageError("--temp cannot be combined with --output");
22
46
  if (!Number.isInteger(count) || count < 1 || count > 10) {
23
47
  throw usageError("count must be an integer from 1 to 10");
24
48
  }
25
49
  if (!Number.isInteger(concurrency) || concurrency < 1 || concurrency > 3) {
26
50
  throw usageError("concurrency must be an integer from 1 to 3");
27
51
  }
28
- if (imagePaths.length > 5)
29
- throw usageError("at most 5 reference images are supported");
30
52
  if (!/^(auto|[1-9]\d{0,3}x[1-9]\d{0,3})$/.test(size)) {
31
53
  throw usageError("size must be auto or WIDTHxHEIGHT");
32
54
  }
@@ -36,30 +58,15 @@ export function validateImageOptions(options) {
36
58
  throw usageError("image width and height must be at most 3840");
37
59
  }
38
60
  }
39
- let totalBytes = 0;
40
- for (const path of imagePaths) {
41
- if (!existsSync(path))
42
- throw usageError(`reference image does not exist: ${path}`);
43
- const extension = extname(path).toLowerCase();
44
- if (!MIME_BY_EXTENSION[extension]) {
45
- throw usageError(`unsupported image type for ${path}; use png, jpg, jpeg, webp, or gif`);
46
- }
47
- const bytes = statSync(path).size;
48
- if (bytes > MAX_IMAGE_BYTES)
49
- throw usageError(`reference image exceeds 20 MiB: ${path}`);
50
- totalBytes += bytes;
51
- }
52
- if (totalBytes > MAX_TOTAL_IMAGE_BYTES) {
53
- throw usageError("reference images exceed the 50 MiB total limit");
54
- }
55
61
  return {
56
62
  count,
57
63
  concurrency,
58
64
  size,
59
65
  quality,
60
66
  background,
61
- imagePaths: imagePaths.map((path) => resolve(path)),
67
+ imagePaths,
62
68
  overwrite: options.overwrite ?? false,
69
+ temporary,
63
70
  };
64
71
  }
65
72
  export function imageMimeType(path) {
@@ -68,11 +75,12 @@ export function imageMimeType(path) {
68
75
  throw usageError(`unsupported image type: ${path}`);
69
76
  return mime;
70
77
  }
71
- export function outputPathForImage(taskId, output, index, count) {
72
- if (!output) {
78
+ export function outputPathForImage(taskId, output, index, count, temporary = false) {
79
+ if (temporary) {
73
80
  return { path: join(appPaths().tempDir, taskId, `image-${index + 1}.png`), temporary: true };
74
81
  }
75
- const absolute = resolve(output);
82
+ const shortTaskId = taskId.slice(0, 8);
83
+ const absolute = resolve(output ?? ".");
76
84
  const extension = extname(absolute).toLowerCase();
77
85
  if (extension === ".png") {
78
86
  if (count === 1)
@@ -82,10 +90,11 @@ export function outputPathForImage(taskId, output, index, count) {
82
90
  temporary: false,
83
91
  };
84
92
  }
85
- return { path: join(absolute, `image-${index + 1}.png`), temporary: false };
93
+ const suffix = count === 1 ? "" : `-${index + 1}`;
94
+ return { path: join(absolute, `image-${shortTaskId}${suffix}.png`), temporary: false };
86
95
  }
87
- export function writePngArtifact(taskId, buffer, output, index, count, overwrite) {
88
- const target = outputPathForImage(taskId, output, index, count);
96
+ export function writePngArtifact(taskId, buffer, output, index, count, overwrite, temporary = false) {
97
+ const target = outputPathForImage(taskId, output, index, count, temporary);
89
98
  if (existsSync(target.path) && !overwrite) {
90
99
  throw usageError(`output already exists: ${target.path}; pass --overwrite to replace it`);
91
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,iBAAiB,GAA2B;IAChD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAY/C,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAE5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACxD,MAAM,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACxF,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,UAAU,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACxD,MAAM,UAAU,CAAC,6CAA6C,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,UAAU,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,CAAC,8BAA8B,IAAI,oCAAoC,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAClC,IAAI,KAAK,GAAG,eAAe;YAAE,MAAM,UAAU,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACzF,UAAU,IAAI,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,UAAU,GAAG,qBAAqB,EAAE,CAAC;QACvC,MAAM,UAAU,CAAC,gDAAgD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI;QACJ,OAAO;QACP,UAAU;QACV,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI;QAAE,MAAM,UAAU,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,MAA0B,EAC1B,KAAa,EACb,KAAa;IAEb,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC;YAClF,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAAc,EACd,MAA0B,EAC1B,KAAa,EACb,KAAa,EACb,SAAkB;IAElB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,UAAU,CAAC,0BAA0B,MAAM,CAAC,IAAI,kCAAkC,CAAC,CAAC;IAC5F,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;KACnG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { dispatch, generateImage, generateText, resumeTask, runTask, streamTaskE
2
2
  export { loadConfig, type ResolvedConfig, type UserConfig } from "./config.js";
3
3
  export { runDoctor } from "./doctor.js";
4
4
  export { runGarbageCollection } from "./state.js";
5
+ export { startCodexTaskServer, type CodexTaskServerOptions, type RunningCodexTaskServer } from "./server.js";
5
6
  export { CodexTaskError } from "./errors.js";
6
7
  export type * from "./types.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,mBAAmB,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -2,5 +2,6 @@ export { dispatch, generateImage, generateText, resumeTask, runTask, streamTaskE
2
2
  export { loadConfig } from "./config.js";
3
3
  export { runDoctor } from "./doctor.js";
4
4
  export { runGarbageCollection } from "./state.js";
5
+ export { startCodexTaskServer } from "./server.js";
5
6
  export { CodexTaskError } from "./errors.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAA4D,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Input } from "@openai/codex-sdk";
2
+ export interface TaskInputSources {
3
+ prompt?: string | undefined;
4
+ promptFiles?: string[] | undefined;
5
+ stdin?: string | undefined;
6
+ imagePaths?: string[] | undefined;
7
+ }
8
+ export interface ResolvedTaskInput {
9
+ text: string;
10
+ imagePaths: string[];
11
+ }
12
+ export declare function resolveTaskInput(sources: TaskInputSources): ResolvedTaskInput;
13
+ export declare function toSdkInput(input: ResolvedTaskInput): Input;
14
+ //# sourceMappingURL=inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CAY7E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,KAAK,CAK1D"}
package/dist/inputs.js ADDED
@@ -0,0 +1,40 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { usageError } from "./errors.js";
4
+ import { validateInputImages } from "./images.js";
5
+ function promptFilePart(path) {
6
+ const absolute = resolve(path);
7
+ let content;
8
+ try {
9
+ content = readFileSync(absolute, "utf8");
10
+ }
11
+ catch (error) {
12
+ throw usageError(`could not read prompt file ${path}: ${error instanceof Error ? error.message : String(error)}`);
13
+ }
14
+ if (!content.trim())
15
+ throw usageError(`prompt file must not be empty: ${path}`);
16
+ return `--- BEGIN PROMPT FILE: ${absolute} ---\n${content.trimEnd()}\n--- END PROMPT FILE ---`;
17
+ }
18
+ export function resolveTaskInput(sources) {
19
+ const parts = [];
20
+ if (sources.prompt?.trim())
21
+ parts.push(sources.prompt.trim());
22
+ for (const path of sources.promptFiles ?? [])
23
+ parts.push(promptFilePart(path));
24
+ if (sources.stdin?.trim()) {
25
+ parts.push(`--- BEGIN STDIN ---\n${sources.stdin.trim()}\n--- END STDIN ---`);
26
+ }
27
+ if (parts.length === 0)
28
+ throw usageError("provide a prompt argument, --prompt-file, or non-empty stdin");
29
+ return {
30
+ text: parts.join("\n\n"),
31
+ imagePaths: validateInputImages(sources.imagePaths),
32
+ };
33
+ }
34
+ export function toSdkInput(input) {
35
+ return [
36
+ { type: "text", text: input.text },
37
+ ...input.imagePaths.map((path) => ({ type: "local_image", path })),
38
+ ];
39
+ }
40
+ //# sourceMappingURL=inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAclD,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,8BAA8B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,UAAU,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAChF,OAAO,0BAA0B,QAAQ,SAAS,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,UAAU,CAAC,8DAA8D,CAAC,CAAC;IACzG,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACxB,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAwB;IACjD,OAAO;QACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;QAClC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { TaskRequest, TaskResult } from "./types.js";
2
+ export type RemoteTaskRunner = (request: TaskRequest) => Promise<TaskResult>;
3
+ export interface CodexTaskServerOptions {
4
+ host?: string | undefined;
5
+ port?: number | undefined;
6
+ token?: string | undefined;
7
+ maxConcurrency?: number | undefined;
8
+ maxBodyBytes?: number | undefined;
9
+ jobTtlMs?: number | undefined;
10
+ run?: RemoteTaskRunner | undefined;
11
+ }
12
+ export interface RunningCodexTaskServer {
13
+ host: string;
14
+ port: number;
15
+ url: string;
16
+ close(): Promise<void>;
17
+ }
18
+ export declare function startCodexTaskServer(options?: CodexTaskServerOptions): Promise<RunningCodexTaskServer>;
19
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAkC,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1F,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqLD,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CA2TjC"}