@zmeel/adapter-codex-local 0.1.0

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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +213 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/quota-probe.d.ts +3 -0
  11. package/dist/cli/quota-probe.d.ts.map +1 -0
  12. package/dist/cli/quota-probe.js +97 -0
  13. package/dist/cli/quota-probe.js.map +1 -0
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +48 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/server/codex-home.d.ts +6 -0
  19. package/dist/server/codex-home.d.ts.map +1 -0
  20. package/dist/server/codex-home.js +78 -0
  21. package/dist/server/codex-home.js.map +1 -0
  22. package/dist/server/execute.d.ts +15 -0
  23. package/dist/server/execute.d.ts.map +1 -0
  24. package/dist/server/execute.js +496 -0
  25. package/dist/server/execute.js.map +1 -0
  26. package/dist/server/index.d.ts +8 -0
  27. package/dist/server/index.d.ts.map +1 -0
  28. package/dist/server/index.js +57 -0
  29. package/dist/server/index.js.map +1 -0
  30. package/dist/server/parse.d.ts +12 -0
  31. package/dist/server/parse.d.ts.map +1 -0
  32. package/dist/server/parse.js +67 -0
  33. package/dist/server/parse.js.map +1 -0
  34. package/dist/server/quota-spawn-error.test.d.ts +2 -0
  35. package/dist/server/quota-spawn-error.test.d.ts.map +1 -0
  36. package/dist/server/quota-spawn-error.test.js +77 -0
  37. package/dist/server/quota-spawn-error.test.js.map +1 -0
  38. package/dist/server/quota.d.ts +64 -0
  39. package/dist/server/quota.d.ts.map +1 -0
  40. package/dist/server/quota.js +432 -0
  41. package/dist/server/quota.js.map +1 -0
  42. package/dist/server/skills.d.ts +8 -0
  43. package/dist/server/skills.d.ts.map +1 -0
  44. package/dist/server/skills.js +65 -0
  45. package/dist/server/skills.js.map +1 -0
  46. package/dist/server/test.d.ts +3 -0
  47. package/dist/server/test.d.ts.map +1 -0
  48. package/dist/server/test.js +207 -0
  49. package/dist/server/test.js.map +1 -0
  50. package/dist/ui/build-config.d.ts +3 -0
  51. package/dist/ui/build-config.d.ts.map +1 -0
  52. package/dist/ui/build-config.js +116 -0
  53. package/dist/ui/build-config.js.map +1 -0
  54. package/dist/ui/index.d.ts +3 -0
  55. package/dist/ui/index.d.ts.map +1 -0
  56. package/dist/ui/index.js +3 -0
  57. package/dist/ui/index.js.map +1 -0
  58. package/dist/ui/parse-stdout.d.ts +3 -0
  59. package/dist/ui/parse-stdout.d.ts.map +1 -0
  60. package/dist/ui/parse-stdout.js +232 -0
  61. package/dist/ui/parse-stdout.js.map +1 -0
  62. package/package.json +56 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Paperclip AI
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.
@@ -0,0 +1,2 @@
1
+ export declare function printCodexStreamEvent(raw: string, _debug: boolean): void;
2
+ //# sourceMappingURL=format-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.d.ts","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"AA6IA,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAuFxE"}
@@ -0,0 +1,213 @@
1
+ import pc from "picocolors";
2
+ function asRecord(value) {
3
+ if (typeof value !== "object" || value === null || Array.isArray(value))
4
+ return null;
5
+ return value;
6
+ }
7
+ function asString(value, fallback = "") {
8
+ return typeof value === "string" ? value : fallback;
9
+ }
10
+ function asNumber(value, fallback = 0) {
11
+ return typeof value === "number" && Number.isFinite(value) ? value : fallback;
12
+ }
13
+ function errorText(value) {
14
+ if (typeof value === "string")
15
+ return value;
16
+ const rec = asRecord(value);
17
+ if (!rec)
18
+ return "";
19
+ const msg = (typeof rec.message === "string" && rec.message) ||
20
+ (typeof rec.error === "string" && rec.error) ||
21
+ (typeof rec.code === "string" && rec.code) ||
22
+ "";
23
+ if (msg)
24
+ return msg;
25
+ try {
26
+ return JSON.stringify(rec);
27
+ }
28
+ catch {
29
+ return "";
30
+ }
31
+ }
32
+ function printItemStarted(item) {
33
+ const itemType = asString(item.type);
34
+ if (itemType === "command_execution") {
35
+ const command = asString(item.command);
36
+ console.log(pc.yellow("tool_call: command_execution"));
37
+ if (command)
38
+ console.log(pc.gray(command));
39
+ return true;
40
+ }
41
+ if (itemType === "tool_use") {
42
+ const name = asString(item.name, "unknown");
43
+ console.log(pc.yellow(`tool_call: ${name}`));
44
+ if (item.input !== undefined) {
45
+ try {
46
+ console.log(pc.gray(JSON.stringify(item.input, null, 2)));
47
+ }
48
+ catch {
49
+ console.log(pc.gray(String(item.input)));
50
+ }
51
+ }
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ function printItemCompleted(item) {
57
+ const itemType = asString(item.type);
58
+ if (itemType === "agent_message") {
59
+ const text = asString(item.text);
60
+ if (text)
61
+ console.log(pc.green(`assistant: ${text}`));
62
+ return true;
63
+ }
64
+ if (itemType === "reasoning") {
65
+ const text = asString(item.text);
66
+ if (text)
67
+ console.log(pc.gray(`thinking: ${text}`));
68
+ return true;
69
+ }
70
+ if (itemType === "tool_use") {
71
+ const name = asString(item.name, "unknown");
72
+ console.log(pc.yellow(`tool_call: ${name}`));
73
+ if (item.input !== undefined) {
74
+ try {
75
+ console.log(pc.gray(JSON.stringify(item.input, null, 2)));
76
+ }
77
+ catch {
78
+ console.log(pc.gray(String(item.input)));
79
+ }
80
+ }
81
+ return true;
82
+ }
83
+ if (itemType === "command_execution") {
84
+ const command = asString(item.command);
85
+ const status = asString(item.status);
86
+ const exitCode = typeof item.exit_code === "number" && Number.isFinite(item.exit_code) ? item.exit_code : null;
87
+ const output = asString(item.aggregated_output).replace(/\s+$/, "");
88
+ const isError = (exitCode !== null && exitCode !== 0) ||
89
+ status === "failed" ||
90
+ status === "errored" ||
91
+ status === "error" ||
92
+ status === "cancelled";
93
+ const summaryParts = [
94
+ "tool_result: command_execution",
95
+ command ? `command="${command}"` : "",
96
+ status ? `status=${status}` : "",
97
+ exitCode !== null ? `exit_code=${exitCode}` : "",
98
+ ].filter(Boolean);
99
+ console.log((isError ? pc.red : pc.cyan)(summaryParts.join(" ")));
100
+ if (output)
101
+ console.log((isError ? pc.red : pc.gray)(output));
102
+ return true;
103
+ }
104
+ if (itemType === "file_change") {
105
+ const changes = Array.isArray(item.changes) ? item.changes : [];
106
+ const entries = changes
107
+ .map((changeRaw) => asRecord(changeRaw))
108
+ .filter((change) => Boolean(change))
109
+ .map((change) => {
110
+ const kind = asString(change.kind, "update");
111
+ const path = asString(change.path, "unknown");
112
+ return `${kind} ${path}`;
113
+ });
114
+ const preview = entries.length > 0 ? entries.slice(0, 6).join(", ") : "none";
115
+ const more = entries.length > 6 ? ` (+${entries.length - 6} more)` : "";
116
+ console.log(pc.cyan(`file_change: ${preview}${more}`));
117
+ return true;
118
+ }
119
+ if (itemType === "error") {
120
+ const message = errorText(item.message ?? item.error ?? item);
121
+ if (message)
122
+ console.log(pc.red(`error: ${message}`));
123
+ return true;
124
+ }
125
+ if (itemType === "tool_result") {
126
+ const isError = item.is_error === true || asString(item.status) === "error";
127
+ const text = asString(item.content) || asString(item.result) || asString(item.output);
128
+ console.log((isError ? pc.red : pc.cyan)(`tool_result${isError ? " (error)" : ""}`));
129
+ if (text)
130
+ console.log((isError ? pc.red : pc.gray)(text));
131
+ return true;
132
+ }
133
+ return false;
134
+ }
135
+ export function printCodexStreamEvent(raw, _debug) {
136
+ const line = raw.trim();
137
+ if (!line)
138
+ return;
139
+ let parsed = null;
140
+ try {
141
+ parsed = JSON.parse(line);
142
+ }
143
+ catch {
144
+ console.log(line);
145
+ return;
146
+ }
147
+ const type = asString(parsed.type);
148
+ if (type === "thread.started") {
149
+ const threadId = asString(parsed.thread_id);
150
+ const model = asString(parsed.model);
151
+ const details = [threadId ? `session: ${threadId}` : "", model ? `model: ${model}` : ""].filter(Boolean).join(", ");
152
+ console.log(pc.blue(`Codex thread started${details ? ` (${details})` : ""}`));
153
+ return;
154
+ }
155
+ if (type === "turn.started") {
156
+ console.log(pc.blue("turn started"));
157
+ return;
158
+ }
159
+ if (type === "item.started" || type === "item.completed") {
160
+ const item = asRecord(parsed.item);
161
+ if (item) {
162
+ const handled = type === "item.started"
163
+ ? printItemStarted(item)
164
+ : printItemCompleted(item);
165
+ if (!handled) {
166
+ const itemType = asString(item.type, "unknown");
167
+ const id = asString(item.id);
168
+ const status = asString(item.status);
169
+ const meta = [id ? `id=${id}` : "", status ? `status=${status}` : ""].filter(Boolean).join(" ");
170
+ console.log(pc.gray(`${type}: ${itemType}${meta ? ` (${meta})` : ""}`));
171
+ }
172
+ }
173
+ else {
174
+ console.log(pc.gray(type));
175
+ }
176
+ return;
177
+ }
178
+ if (type === "turn.completed") {
179
+ const usage = asRecord(parsed.usage);
180
+ const input = asNumber(usage?.input_tokens);
181
+ const output = asNumber(usage?.output_tokens);
182
+ const cached = asNumber(usage?.cached_input_tokens, asNumber(usage?.cache_read_input_tokens));
183
+ const cost = asNumber(parsed.total_cost_usd);
184
+ const isError = parsed.is_error === true;
185
+ const subtype = asString(parsed.subtype);
186
+ const errors = Array.isArray(parsed.errors) ? parsed.errors.map(errorText).filter(Boolean) : [];
187
+ console.log(pc.blue(`tokens: in=${input} out=${output} cached=${cached} cost=$${cost.toFixed(6)}`));
188
+ if (subtype || isError || errors.length > 0) {
189
+ console.log(pc.red(`result: subtype=${subtype || "unknown"} is_error=${isError ? "true" : "false"}`));
190
+ if (errors.length > 0)
191
+ console.log(pc.red(`errors: ${errors.join(" | ")}`));
192
+ }
193
+ return;
194
+ }
195
+ if (type === "turn.failed") {
196
+ const usage = asRecord(parsed.usage);
197
+ const input = asNumber(usage?.input_tokens);
198
+ const output = asNumber(usage?.output_tokens);
199
+ const cached = asNumber(usage?.cached_input_tokens, asNumber(usage?.cache_read_input_tokens));
200
+ const message = errorText(parsed.error ?? parsed.message);
201
+ console.log(pc.red(`turn failed${message ? `: ${message}` : ""}`));
202
+ console.log(pc.blue(`tokens: in=${input} out=${output} cached=${cached}`));
203
+ return;
204
+ }
205
+ if (type === "error") {
206
+ const message = errorText(parsed.message ?? parsed.error ?? parsed);
207
+ if (message)
208
+ console.log(pc.red(`error: ${message}`));
209
+ return;
210
+ }
211
+ console.log(line);
212
+ }
213
+ //# sourceMappingURL=format-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.js","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { printCodexStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { printCodexStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=quota-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-probe.d.ts","sourceRoot":"","sources":["../../src/cli/quota-probe.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ import { fetchCodexQuota, fetchCodexRpcQuota, getQuotaWindows, readCodexAuthInfo, readCodexToken, } from "../server/quota.js";
3
+ function parseArgs(argv) {
4
+ return {
5
+ json: argv.includes("--json"),
6
+ rpcOnly: argv.includes("--rpc-only"),
7
+ whamOnly: argv.includes("--wham-only"),
8
+ };
9
+ }
10
+ function stringifyError(error) {
11
+ return error instanceof Error ? error.message : String(error);
12
+ }
13
+ async function main() {
14
+ const args = parseArgs(process.argv.slice(2));
15
+ if (args.rpcOnly && args.whamOnly) {
16
+ throw new Error("Choose either --rpc-only or --wham-only, not both.");
17
+ }
18
+ const auth = await readCodexAuthInfo();
19
+ const token = await readCodexToken();
20
+ const result = {
21
+ timestamp: new Date().toISOString(),
22
+ auth,
23
+ tokenAvailable: token != null,
24
+ };
25
+ if (!args.whamOnly) {
26
+ try {
27
+ result.rpc = {
28
+ ok: true,
29
+ ...(await fetchCodexRpcQuota()),
30
+ };
31
+ }
32
+ catch (error) {
33
+ result.rpc = {
34
+ ok: false,
35
+ error: stringifyError(error),
36
+ windows: [],
37
+ };
38
+ }
39
+ }
40
+ if (!args.rpcOnly) {
41
+ if (!token) {
42
+ result.wham = {
43
+ ok: false,
44
+ error: "No local Codex auth token found in ~/.codex/auth.json.",
45
+ windows: [],
46
+ };
47
+ }
48
+ else {
49
+ try {
50
+ result.wham = {
51
+ ok: true,
52
+ windows: await fetchCodexQuota(token.token, token.accountId),
53
+ };
54
+ }
55
+ catch (error) {
56
+ result.wham = {
57
+ ok: false,
58
+ error: stringifyError(error),
59
+ windows: [],
60
+ };
61
+ }
62
+ }
63
+ }
64
+ if (!args.rpcOnly && !args.whamOnly) {
65
+ try {
66
+ result.aggregated = await getQuotaWindows();
67
+ }
68
+ catch (error) {
69
+ result.aggregated = {
70
+ ok: false,
71
+ error: stringifyError(error),
72
+ };
73
+ }
74
+ }
75
+ const rpcOk = result.rpc?.ok === true;
76
+ const whamOk = result.wham?.ok === true;
77
+ const aggregatedOk = result.aggregated?.ok === true;
78
+ const ok = rpcOk || whamOk || aggregatedOk;
79
+ if (args.json || process.stdout.isTTY === false) {
80
+ console.log(JSON.stringify({ ok, ...result }, null, 2));
81
+ }
82
+ else {
83
+ console.log(`timestamp: ${result.timestamp}`);
84
+ console.log(`auth: ${JSON.stringify(auth)}`);
85
+ console.log(`tokenAvailable: ${token != null}`);
86
+ if (result.rpc)
87
+ console.log(`rpc: ${JSON.stringify(result.rpc, null, 2)}`);
88
+ if (result.wham)
89
+ console.log(`wham: ${JSON.stringify(result.wham, null, 2)}`);
90
+ if (result.aggregated)
91
+ console.log(`aggregated: ${JSON.stringify(result.aggregated, null, 2)}`);
92
+ }
93
+ if (!ok)
94
+ process.exitCode = 1;
95
+ }
96
+ await main();
97
+ //# sourceMappingURL=quota-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-probe.js","sourceRoot":"","sources":["../../src/cli/quota-probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const type = "codex_local";
2
+ export declare const label = "Codex (local)";
3
+ export declare const DEFAULT_CODEX_LOCAL_MODEL = "gpt-5.3-codex";
4
+ export declare const DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX = true;
5
+ export declare const models: {
6
+ id: string;
7
+ label: string;
8
+ }[];
9
+ export declare const agentConfigurationDoc = "# codex_local agent configuration\n\nAdapter: codex_local\n\nCore fields:\n- cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)\n- instructionsFilePath (string, optional): absolute path to a markdown instructions file prepended to stdin prompt at runtime\n- model (string, optional): Codex model id\n- modelReasoningEffort (string, optional): reasoning effort override (minimal|low|medium|high|xhigh) passed via -c model_reasoning_effort=...\n- promptTemplate (string, optional): run prompt template\n- search (boolean, optional): run codex with --search\n- dangerouslyBypassApprovalsAndSandbox (boolean, optional): run with bypass flag\n- command (string, optional): defaults to \"codex\"\n- extraArgs (string[], optional): additional CLI args\n- env (object, optional): KEY=VALUE environment variables\n- workspaceStrategy (object, optional): execution workspace strategy; currently supports { type: \"git_worktree\", baseRef?, branchTemplate?, worktreeParentDir? }\n- workspaceRuntime (object, optional): reserved for workspace runtime metadata; workspace runtime services are manually controlled from the workspace UI and are not auto-started by heartbeats\n\nOperational fields:\n- timeoutSec (number, optional): run timeout in seconds\n- graceSec (number, optional): SIGTERM grace period in seconds\n\nNotes:\n- Prompts are piped via stdin (Codex receives \"-\" prompt argument).\n- If instructionsFilePath is configured, zmeel prepends that file's contents to the stdin prompt on every run.\n- Codex exec automatically applies repo-scoped AGENTS.md instructions from the active workspace. zmeel cannot suppress that discovery in exec mode, so repo AGENTS.md files may still apply even when you only configured an explicit instructionsFilePath.\n- zmeel injects desired local skills into the effective CODEX_HOME/skills/ directory at execution time so Codex can discover \"$zmeel\" and related skills without polluting the project working directory. In managed-home mode (the default) this is ~/.zmeel/instances/<id>/companies/<companyId>/codex-home/skills/; when CODEX_HOME is explicitly overridden in adapter config, that override is used instead.\n- Unless explicitly overridden in adapter config, zmeel runs Codex with a per-company managed CODEX_HOME under the active zmeel instance and seeds auth/config from the shared Codex home (the CODEX_HOME env var, when set, or ~/.codex).\n- Some model/tool combinations reject certain effort levels (for example minimal with web search enabled).\n- When zmeel realizes a workspace/runtime for a run, it injects ZMEEL_WORKSPACE_* and ZMEEL_RUNTIME_* env vars for agent-side tooling.\n";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAClC,eAAO,MAAM,KAAK,kBAAkB,CAAC;AACrC,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AACzD,eAAO,MAAM,gDAAgD,OAAO,CAAC;AAErE,eAAO,MAAM,MAAM;;;GAWlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,4pFA8BjC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ export const type = "codex_local";
2
+ export const label = "Codex (local)";
3
+ export const DEFAULT_CODEX_LOCAL_MODEL = "gpt-5.3-codex";
4
+ export const DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX = true;
5
+ export const models = [
6
+ { id: "gpt-5.4", label: "gpt-5.4" },
7
+ { id: DEFAULT_CODEX_LOCAL_MODEL, label: DEFAULT_CODEX_LOCAL_MODEL },
8
+ { id: "gpt-5.3-codex-spark", label: "gpt-5.3-codex-spark" },
9
+ { id: "gpt-5", label: "gpt-5" },
10
+ { id: "o3", label: "o3" },
11
+ { id: "o4-mini", label: "o4-mini" },
12
+ { id: "gpt-5-mini", label: "gpt-5-mini" },
13
+ { id: "gpt-5-nano", label: "gpt-5-nano" },
14
+ { id: "o3-mini", label: "o3-mini" },
15
+ { id: "codex-mini-latest", label: "Codex Mini" },
16
+ ];
17
+ export const agentConfigurationDoc = `# codex_local agent configuration
18
+
19
+ Adapter: codex_local
20
+
21
+ Core fields:
22
+ - cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)
23
+ - instructionsFilePath (string, optional): absolute path to a markdown instructions file prepended to stdin prompt at runtime
24
+ - model (string, optional): Codex model id
25
+ - modelReasoningEffort (string, optional): reasoning effort override (minimal|low|medium|high|xhigh) passed via -c model_reasoning_effort=...
26
+ - promptTemplate (string, optional): run prompt template
27
+ - search (boolean, optional): run codex with --search
28
+ - dangerouslyBypassApprovalsAndSandbox (boolean, optional): run with bypass flag
29
+ - command (string, optional): defaults to "codex"
30
+ - extraArgs (string[], optional): additional CLI args
31
+ - env (object, optional): KEY=VALUE environment variables
32
+ - workspaceStrategy (object, optional): execution workspace strategy; currently supports { type: "git_worktree", baseRef?, branchTemplate?, worktreeParentDir? }
33
+ - workspaceRuntime (object, optional): reserved for workspace runtime metadata; workspace runtime services are manually controlled from the workspace UI and are not auto-started by heartbeats
34
+
35
+ Operational fields:
36
+ - timeoutSec (number, optional): run timeout in seconds
37
+ - graceSec (number, optional): SIGTERM grace period in seconds
38
+
39
+ Notes:
40
+ - Prompts are piped via stdin (Codex receives "-" prompt argument).
41
+ - If instructionsFilePath is configured, zmeel prepends that file's contents to the stdin prompt on every run.
42
+ - Codex exec automatically applies repo-scoped AGENTS.md instructions from the active workspace. zmeel cannot suppress that discovery in exec mode, so repo AGENTS.md files may still apply even when you only configured an explicit instructionsFilePath.
43
+ - zmeel injects desired local skills into the effective CODEX_HOME/skills/ directory at execution time so Codex can discover "$zmeel" and related skills without polluting the project working directory. In managed-home mode (the default) this is ~/.zmeel/instances/<id>/companies/<companyId>/codex-home/skills/; when CODEX_HOME is explicitly overridden in adapter config, that override is used instead.
44
+ - Unless explicitly overridden in adapter config, zmeel runs Codex with a per-company managed CODEX_HOME under the active zmeel instance and seeds auth/config from the shared Codex home (the CODEX_HOME env var, when set, or ~/.codex).
45
+ - Some model/tool combinations reject certain effort levels (for example minimal with web search enabled).
46
+ - When zmeel realizes a workspace/runtime for a run, it injects ZMEEL_WORKSPACE_* and ZMEEL_RUNTIME_* env vars for agent-side tooling.
47
+ `;
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AACzD,MAAM,CAAC,MAAM,gDAAgD,GAAG,IAAI,CAAC;AAErE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACnE,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC3D,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAC/B,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACzB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACzC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACzC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AdapterExecutionContext } from "@zmeel/adapter-utils";
2
+ export declare function pathExists(candidate: string): Promise<boolean>;
3
+ export declare function resolveSharedCodexHomeDir(env?: NodeJS.ProcessEnv): string;
4
+ export declare function resolveManagedCodexHomeDir(env: NodeJS.ProcessEnv, companyId?: string): string;
5
+ export declare function prepareManagedCodexHome(env: NodeJS.ProcessEnv, onLog: AdapterExecutionContext["onLog"], companyId?: string): Promise<string>;
6
+ //# sourceMappingURL=codex-home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-home.d.ts","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAWpE,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;AAED,wBAAgB,yBAAyB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAGR;AAMD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAMR;AAmCD,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACvC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
@@ -0,0 +1,78 @@
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ const TRUTHY_ENV_RE = /^(1|true|yes|on)$/i;
5
+ const COPIED_SHARED_FILES = ["config.json", "config.toml", "instructions.md"];
6
+ const SYMLINKED_SHARED_FILES = ["auth.json"];
7
+ const DEFAULT_ZMEEL_INSTANCE_ID = "default";
8
+ function nonEmpty(value) {
9
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
10
+ }
11
+ export async function pathExists(candidate) {
12
+ return fs.access(candidate).then(() => true).catch(() => false);
13
+ }
14
+ export function resolveSharedCodexHomeDir(env = process.env) {
15
+ const fromEnv = nonEmpty(env.CODEX_HOME);
16
+ return fromEnv ? path.resolve(fromEnv) : path.join(os.homedir(), ".codex");
17
+ }
18
+ function isWorktreeMode(env) {
19
+ return TRUTHY_ENV_RE.test(env.ZMEEL_IN_WORKTREE ?? "");
20
+ }
21
+ export function resolveManagedCodexHomeDir(env, companyId) {
22
+ const zmeelHome = nonEmpty(env.ZMEEL_HOME) ?? path.resolve(os.homedir(), ".zmeel");
23
+ const instanceId = nonEmpty(env.ZMEEL_INSTANCE_ID) ?? DEFAULT_ZMEEL_INSTANCE_ID;
24
+ return companyId
25
+ ? path.resolve(zmeelHome, "instances", instanceId, "companies", companyId, "codex-home")
26
+ : path.resolve(zmeelHome, "instances", instanceId, "codex-home");
27
+ }
28
+ async function ensureParentDir(target) {
29
+ await fs.mkdir(path.dirname(target), { recursive: true });
30
+ }
31
+ async function ensureSymlink(target, source) {
32
+ const existing = await fs.lstat(target).catch(() => null);
33
+ if (!existing) {
34
+ await ensureParentDir(target);
35
+ await fs.symlink(source, target);
36
+ return;
37
+ }
38
+ if (!existing.isSymbolicLink()) {
39
+ return;
40
+ }
41
+ const linkedPath = await fs.readlink(target).catch(() => null);
42
+ if (!linkedPath)
43
+ return;
44
+ const resolvedLinkedPath = path.resolve(path.dirname(target), linkedPath);
45
+ if (resolvedLinkedPath === source)
46
+ return;
47
+ await fs.unlink(target);
48
+ await fs.symlink(source, target);
49
+ }
50
+ async function ensureCopiedFile(target, source) {
51
+ const existing = await fs.lstat(target).catch(() => null);
52
+ if (existing)
53
+ return;
54
+ await ensureParentDir(target);
55
+ await fs.copyFile(source, target);
56
+ }
57
+ export async function prepareManagedCodexHome(env, onLog, companyId) {
58
+ const targetHome = resolveManagedCodexHomeDir(env, companyId);
59
+ const sourceHome = resolveSharedCodexHomeDir(env);
60
+ if (path.resolve(sourceHome) === path.resolve(targetHome))
61
+ return targetHome;
62
+ await fs.mkdir(targetHome, { recursive: true });
63
+ for (const name of SYMLINKED_SHARED_FILES) {
64
+ const source = path.join(sourceHome, name);
65
+ if (!(await pathExists(source)))
66
+ continue;
67
+ await ensureSymlink(path.join(targetHome, name), source);
68
+ }
69
+ for (const name of COPIED_SHARED_FILES) {
70
+ const source = path.join(sourceHome, name);
71
+ if (!(await pathExists(source)))
72
+ continue;
73
+ await ensureCopiedFile(path.join(targetHome, name), source);
74
+ }
75
+ await onLog("stdout", `[zmeel] Using ${isWorktreeMode(env) ? "worktree-isolated" : "zmeel-managed"} Codex home "${targetHome}" (seeded from "${sourceHome}").\n`);
76
+ return targetHome;
77
+ }
78
+ //# sourceMappingURL=codex-home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-home.js","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAU,CAAC;AACvF,MAAM,sBAAsB,GAAG,CAAC,WAAW,CAAU,CAAC;AACtD,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAE5C,SAAS,QAAQ,CAAC,KAAyB;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,GAAsB;IAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAsB,EACtB,SAAkB;IAElB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,yBAAyB,CAAC;IAChF,OAAO,SAAS;QACd,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;QACxF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAc;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,IAAI,kBAAkB,KAAK,MAAM;QAAE,OAAO;IAE1C,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc;IAC5D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,QAAQ;QAAE,OAAO;IACrB,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAsB,EACtB,KAAuC,EACvC,SAAkB;IAElB,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE7E,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAC1C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAC1C,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,CACT,QAAQ,EACR,iBAAiB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,gBAAgB,UAAU,mBAAmB,UAAU,OAAO,CAC3I,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type AdapterExecutionContext, type AdapterExecutionResult } from "@zmeel/adapter-utils";
2
+ type EnsureCodexSkillsInjectedOptions = {
3
+ skillsHome?: string;
4
+ skillsEntries?: Array<{
5
+ key: string;
6
+ runtimeName: string;
7
+ source: string;
8
+ }>;
9
+ desiredSkillNames?: string[];
10
+ linkSkill?: (source: string, target: string) => Promise<void>;
11
+ };
12
+ export declare function ensureCodexSkillsInjected(onLog: AdapterExecutionContext["onLog"], options?: EnsureCodexSkillsInjectedOptions): Promise<void>;
13
+ export declare function execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
14
+ export {};
15
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+B,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AA2I9H,KAAK,gCAAgC,GAAG;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACvC,OAAO,GAAE,gCAAqC,iBA6D/C;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgZ3F"}