@rudderhq/agent-runtime-codex-local 0.3.5-canary.8 → 0.3.5

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 (45) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/server/codex-home.d.ts +1 -1
  6. package/dist/server/codex-home.d.ts.map +1 -1
  7. package/dist/server/codex-home.js +19 -2
  8. package/dist/server/codex-home.js.map +1 -1
  9. package/dist/server/codex-home.test.d.ts +2 -0
  10. package/dist/server/codex-home.test.d.ts.map +1 -0
  11. package/dist/server/codex-home.test.js +52 -0
  12. package/dist/server/codex-home.test.js.map +1 -0
  13. package/dist/server/cost.d.ts +9 -0
  14. package/dist/server/cost.d.ts.map +1 -0
  15. package/dist/server/cost.js +73 -0
  16. package/dist/server/cost.js.map +1 -0
  17. package/dist/server/cost.test.d.ts +2 -0
  18. package/dist/server/cost.test.d.ts.map +1 -0
  19. package/dist/server/cost.test.js +56 -0
  20. package/dist/server/cost.test.js.map +1 -0
  21. package/dist/server/execute.d.ts.map +1 -1
  22. package/dist/server/execute.js +18 -5
  23. package/dist/server/execute.js.map +1 -1
  24. package/dist/server/index.d.ts +2 -1
  25. package/dist/server/index.d.ts.map +1 -1
  26. package/dist/server/index.js +1 -0
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/server/test.d.ts.map +1 -1
  29. package/dist/server/test.js +9 -1
  30. package/dist/server/test.js.map +1 -1
  31. package/dist/server/test.test.d.ts +2 -0
  32. package/dist/server/test.test.d.ts.map +1 -0
  33. package/dist/server/test.test.js +105 -0
  34. package/dist/server/test.test.js.map +1 -0
  35. package/dist/ui/build-config.d.ts.map +1 -1
  36. package/dist/ui/build-config.js +7 -1
  37. package/dist/ui/build-config.js.map +1 -1
  38. package/package.json +2 -2
  39. package/skills/para-memory-files/SKILL.md +80 -4
  40. package/skills/para-memory-files/evals/conversation-capture.md +128 -0
  41. package/skills/para-memory-files/references/schemas.md +31 -0
  42. package/skills/rudder/SKILL.md +33 -6
  43. package/skills/rudder/references/api-reference.md +12 -2
  44. package/skills/rudder/references/cli-reference.md +15 -3
  45. package/skills/rudder/references/organization-skills.md +2 -1
package/dist/index.d.ts CHANGED
@@ -3,9 +3,10 @@ export declare const label = "Codex (local)";
3
3
  export declare const DEFAULT_CODEX_LOCAL_MODEL = "gpt-5.5";
4
4
  export declare const DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX = true;
5
5
  export declare const DEFAULT_CODEX_LOCAL_SEARCH = true;
6
+ export declare const DEFAULT_CODEX_LOCAL_COUNT_SUBSCRIPTION_USAGE_AS_COST = true;
6
7
  export declare const models: {
7
8
  id: string;
8
9
  label: string;
9
10
  }[];
10
- 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 role/persona instructions file such as SOUL.md; Rudder's shared operating contract is prepended separately at runtime\n- model (string, optional): Codex model id\n- modelFallbacks (array, optional): ordered fallback attempts as { agentRuntimeType, model, config? }; each may use a different runtime/provider\n- modelReasoningEffort (string, optional): reasoning effort override (low|medium|high|xhigh) passed via -c model_reasoning_effort=...\n- promptTemplate (string, optional): run prompt template\n- search (boolean, optional, defaults to true on new Codex agents): 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): run workspace strategy; currently supports { type: \"git_worktree\", baseRef?, branchTemplate?, worktreeParentDir? }\n- workspaceRuntime (object, optional): workspace runtime service intents; local host-managed services are realized before Codex starts and exposed back via context/env\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- Rudder always prepends its shared operating contract to the stdin prompt. If instructionsFilePath is configured, Rudder also prepends that file plus sibling SOUL.md, TOOLS.md, and MEMORY.md when present.\n- Codex exec automatically applies repo-scoped AGENTS.md instructions from the active workspace. Rudder cannot suppress that discovery in exec mode, so repo AGENTS.md files may still apply even when you only configured an explicit instructionsFilePath.\n- Agent enabled-skill state is controlled only by Rudder's bundled skills plus the selections saved on the agent's Skills page.\n- The codex_local adapter does not materialize skills into repo-scoped \".agents/skills\"; it realizes selected skills by linking them into the Rudder-managed `CODEX_HOME/skills` directory that Codex discovers at runtime.\n- Unless explicitly overridden in adapter config, Rudder runs Codex with a per-agent managed CODEX_HOME under the active Rudder instance and seeds auth/config from the shared Codex home (the CODEX_HOME env var, when set, or ~/.codex).\n- Rudder uses a managed runtime HOME so Codex does not auto-discover unrelated global skills from ~/.agents/skills during agent runs, but bridges common local CLI credential directories (for example gh/ssh/npm/cloud CLIs) into that managed HOME.\n- Rudder prepares a managed Git config for the run, forces user.useConfigOnly=true, and points Git at it with GIT_CONFIG_GLOBAL so commits use the normal repo-local or host Git identity and never fall back to hostname .local authors.\n- When Rudder realizes a workspace/runtime for a run, it injects RUDDER_WORKSPACE_* and RUDDER_RUNTIME_* env vars for agent-side tooling.\n";
11
+ 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 role/persona instructions file such as SOUL.md; Rudder's shared operating contract is prepended separately at runtime\n- model (string, optional): Codex model id\n- modelFallbacks (array, optional): ordered fallback attempts as { agentRuntimeType, model, config? }; each may use a different runtime/provider\n- modelReasoningEffort (string, optional): reasoning effort override (low|medium|high|xhigh) passed via -c model_reasoning_effort=...\n- promptTemplate (string, optional): run prompt template\n- search (boolean, optional, defaults to true on new Codex agents): run codex with --search\n- countSubscriptionUsageAsCost (boolean, optional, defaults to true): when Codex uses local subscription auth, estimate API-equivalent spend from token usage instead of recording subscription runs as $0. Known-model estimates count toward Rudder spend and budget hard stops. Rates are stored per model from the OpenAI/Codex price table used by Vibe Usage; unknown models remain subscription usage until added.\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): run workspace strategy; currently supports { type: \"git_worktree\", baseRef?, branchTemplate?, worktreeParentDir? }\n- workspaceRuntime (object, optional): workspace runtime service intents; local host-managed services are realized before Codex starts and exposed back via context/env\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- Rudder always prepends its shared operating contract to the stdin prompt. If instructionsFilePath is configured, Rudder also prepends that file plus sibling SOUL.md, TOOLS.md, and MEMORY.md when present.\n- Codex exec automatically applies repo-scoped AGENTS.md instructions from the active workspace. Rudder cannot suppress that discovery in exec mode, so repo AGENTS.md files may still apply even when you only configured an explicit instructionsFilePath.\n- Agent enabled-skill state is controlled only by Rudder's bundled skills plus the selections saved on the agent's Skills page.\n- The codex_local adapter does not materialize skills into repo-scoped \".agents/skills\"; it realizes selected skills by linking them into the Rudder-managed `CODEX_HOME/skills` directory that Codex discovers at runtime.\n- Unless explicitly overridden in adapter config, Rudder runs Codex with a per-agent managed CODEX_HOME under the active Rudder instance and seeds auth/config from the shared Codex home (the CODEX_HOME env var, when set, or ~/.codex).\n- Rudder uses a managed runtime HOME so Codex does not auto-discover unrelated global skills from ~/.agents/skills during agent runs, but bridges common local CLI credential directories (for example gh/ssh/npm/cloud CLIs) into that managed HOME.\n- Rudder prepares a managed Git config for the run, forces user.useConfigOnly=true, and points Git at it with GIT_CONFIG_GLOBAL so commits use the normal repo-local or host Git identity and never fall back to hostname .local authors.\n- When Rudder realizes a workspace/runtime for a run, it injects RUDDER_WORKSPACE_* and RUDDER_RUNTIME_* env vars for agent-side tooling.\n";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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,YAAY,CAAC;AACnD,eAAO,MAAM,gDAAgD,OAAO,CAAC;AACrE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM;;;GAKlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,ixGAiCjC,CAAC"}
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,YAAY,CAAC;AACnD,eAAO,MAAM,gDAAgD,OAAO,CAAC;AACrE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,oDAAoD,OAAO,CAAC;AAEzE,eAAO,MAAM,MAAM;;;GAiBlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,4qHAkCjC,CAAC"}
package/dist/index.js CHANGED
@@ -3,11 +3,24 @@ export const label = "Codex (local)";
3
3
  export const DEFAULT_CODEX_LOCAL_MODEL = "gpt-5.5";
4
4
  export const DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX = true;
5
5
  export const DEFAULT_CODEX_LOCAL_SEARCH = true;
6
+ export const DEFAULT_CODEX_LOCAL_COUNT_SUBSCRIPTION_USAGE_AS_COST = true;
6
7
  export const models = [
7
8
  { id: DEFAULT_CODEX_LOCAL_MODEL, label: "GPT-5.5" },
9
+ { id: "gpt-5.5-codex", label: "GPT-5.5-Codex" },
10
+ { id: "gpt-5.5-fast", label: "GPT-5.5-Fast" },
11
+ { id: "gpt-5.5-flex", label: "GPT-5.5-Flex" },
8
12
  { id: "gpt-5.4", label: "GPT-5.4" },
13
+ { id: "gpt-5.4-codex", label: "GPT-5.4-Codex" },
9
14
  { id: "gpt-5.4-mini", label: "GPT-5.4-Mini" },
15
+ { id: "gpt-5.4-nano", label: "GPT-5.4-Nano" },
16
+ { id: "gpt-5.3-codex", label: "GPT-5.3-Codex" },
10
17
  { id: "gpt-5.3-codex-spark", label: "GPT-5.3-Codex-Spark" },
18
+ { id: "gpt-5.2-codex", label: "GPT-5.2-Codex" },
19
+ { id: "gpt-5.1-codex", label: "GPT-5.1-Codex" },
20
+ { id: "gpt-5.1-codex-max", label: "GPT-5.1-Codex-Max" },
21
+ { id: "gpt-5.1-codex-mini", label: "GPT-5.1-Codex-Mini" },
22
+ { id: "gpt-5-codex", label: "GPT-5-Codex" },
23
+ { id: "codex-mini-latest", label: "Codex Mini Latest" },
11
24
  ];
12
25
  export const agentConfigurationDoc = `# codex_local agent configuration
13
26
 
@@ -21,6 +34,7 @@ Core fields:
21
34
  - modelReasoningEffort (string, optional): reasoning effort override (low|medium|high|xhigh) passed via -c model_reasoning_effort=...
22
35
  - promptTemplate (string, optional): run prompt template
23
36
  - search (boolean, optional, defaults to true on new Codex agents): run codex with --search
37
+ - countSubscriptionUsageAsCost (boolean, optional, defaults to true): when Codex uses local subscription auth, estimate API-equivalent spend from token usage instead of recording subscription runs as $0. Known-model estimates count toward Rudder spend and budget hard stops. Rates are stored per model from the OpenAI/Codex price table used by Vibe Usage; unknown models remain subscription usage until added.
24
38
  - dangerouslyBypassApprovalsAndSandbox (boolean, optional): run with bypass flag
25
39
  - command (string, optional): defaults to "codex"
26
40
  - extraArgs (string[], optional): additional CLI args
package/dist/index.js.map CHANGED
@@ -1 +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,SAAS,CAAC;AACnD,MAAM,CAAC,MAAM,gDAAgD,GAAG,IAAI,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE;IACnD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;CAC5D,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpC,CAAC"}
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,SAAS,CAAC;AACnD,MAAM,CAAC,MAAM,gDAAgD,GAAG,IAAI,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,oDAAoD,GAAG,IAAI,CAAC;AAEzE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE;IACnD,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC3D,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACvD,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACzD,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCpC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AgentRuntimeExecutionContext } from "@rudderhq/agent-runtime-utils";
1
+ import { type AgentRuntimeExecutionContext } from "@rudderhq/agent-runtime-utils";
2
2
  export declare function pathExists(candidate: string): Promise<boolean>;
3
3
  export declare function resolveSharedCodexHomeDir(env?: NodeJS.ProcessEnv): string;
4
4
  export declare function resolveManagedCodexHomeDir(env: NodeJS.ProcessEnv, orgId?: string, agentId?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-home.d.ts","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AA6ClF,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,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAkBR;AAmZD,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAC5C,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAiED,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"codex-home.d.ts","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AA6CjH,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,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAkBR;AAwaD,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAC5C,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAiED,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,3 +1,4 @@
1
+ import { resolveOrganizationStorageKey } from "@rudderhq/agent-runtime-utils";
1
2
  import fs from "node:fs/promises";
2
3
  import os from "node:os";
3
4
  import path from "node:path";
@@ -53,10 +54,10 @@ export function resolveManagedCodexHomeDir(env, orgId, agentId) {
53
54
  const rudderHome = nonEmpty(env.RUDDER_HOME) ?? path.resolve(os.homedir(), ".rudder");
54
55
  const instanceId = nonEmpty(env.RUDDER_INSTANCE_ID) ?? DEFAULT_RUDDER_INSTANCE_ID;
55
56
  if (orgId && agentId) {
56
- return path.resolve(rudderHome, "instances", instanceId, "organizations", orgId, "codex-home", "agents", agentId);
57
+ return path.resolve(rudderHome, "instances", instanceId, "organizations", resolveOrganizationStorageKey(orgId), "codex-home", "agents", agentId);
57
58
  }
58
59
  return orgId
59
- ? path.resolve(rudderHome, "instances", instanceId, "organizations", orgId, "codex-home")
60
+ ? path.resolve(rudderHome, "instances", instanceId, "organizations", resolveOrganizationStorageKey(orgId), "codex-home")
60
61
  : path.resolve(rudderHome, "instances", instanceId, "codex-home");
61
62
  }
62
63
  async function ensureParentDir(target) {
@@ -98,6 +99,13 @@ function isManagedCodexConfigTableToStrip(trimmedLine) {
98
99
  return true;
99
100
  return false;
100
101
  }
102
+ function unsupportedCodexServiceTierLine(trimmedLine) {
103
+ const match = trimmedLine.match(/^service_tier\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s#]+))/i);
104
+ if (!match)
105
+ return false;
106
+ const value = (match[1] ?? match[2] ?? match[3] ?? "").trim().toLowerCase();
107
+ return value !== "fast" && value !== "flex";
108
+ }
101
109
  function sanitizeCodexConfigToml(content) {
102
110
  const newline = content.includes("\r\n") ? "\r\n" : "\n";
103
111
  const lines = content.split(/\r?\n/);
@@ -108,6 +116,7 @@ function sanitizeCodexConfigToml(content) {
108
116
  let removedSkillEntries = 0;
109
117
  let removedManagedTables = 0;
110
118
  let removedNotifyHooks = 0;
119
+ let removedUnsupportedServiceTiers = 0;
111
120
  const flushBlock = () => {
112
121
  if (!blockLines)
113
122
  return;
@@ -138,6 +147,10 @@ function sanitizeCodexConfigToml(content) {
138
147
  removedNotifyHooks += 1;
139
148
  continue;
140
149
  }
150
+ if (unsupportedCodexServiceTierLine(trimmedLine)) {
151
+ removedUnsupportedServiceTiers += 1;
152
+ continue;
153
+ }
141
154
  output.push(line);
142
155
  continue;
143
156
  }
@@ -149,6 +162,7 @@ function sanitizeCodexConfigToml(content) {
149
162
  removedSkillEntries,
150
163
  removedManagedTables,
151
164
  removedNotifyHooks,
165
+ removedUnsupportedServiceTiers,
152
166
  };
153
167
  }
154
168
  function normalizeCodexFeaturesBlock(blockLines) {
@@ -357,6 +371,9 @@ async function syncManagedCodexConfigToml(target, source, onLog) {
357
371
  if (sanitized.removedNotifyHooks > 0) {
358
372
  await onLog("stdout", `[rudder] Removed ${sanitized.removedNotifyHooks} inherited Codex notify hook${sanitized.removedNotifyHooks === 1 ? "" : "s"} from ${target}\n`);
359
373
  }
374
+ if (sanitized.removedUnsupportedServiceTiers > 0) {
375
+ await onLog("stdout", `[rudder] Removed ${sanitized.removedUnsupportedServiceTiers} unsupported inherited Codex service_tier entr${sanitized.removedUnsupportedServiceTiers === 1 ? "y" : "ies"} from ${target}\n`);
376
+ }
360
377
  if (pluginsDisabled.changed) {
361
378
  await onLog("stdout", `[rudder] Forced Codex plugins feature off in ${target} to prevent adapter plugin leakage.\n`);
362
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex-home.js","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-home.js","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codex-home.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-home.test.d.ts","sourceRoot":"","sources":["../../src/server/codex-home.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { prepareManagedCodexHome } from "./codex-home.js";
6
+ describe("managed Codex home config sync", () => {
7
+ const tempRoots = [];
8
+ afterEach(async () => {
9
+ await Promise.all(tempRoots.splice(0).map((dir) => rm(dir, { recursive: true, force: true })));
10
+ });
11
+ async function prepareWithSharedConfig(configToml) {
12
+ const root = await mkdtemp(path.join(os.tmpdir(), "rudder-codex-home-"));
13
+ tempRoots.push(root);
14
+ const sharedCodexHome = path.join(root, "shared-codex-home");
15
+ await mkdir(sharedCodexHome, { recursive: true });
16
+ await writeFile(path.join(sharedCodexHome, "config.toml"), configToml, "utf8");
17
+ const logs = [];
18
+ const codexHome = await prepareManagedCodexHome({
19
+ CODEX_HOME: sharedCodexHome,
20
+ RUDDER_HOME: path.join(root, "rudder-home"),
21
+ RUDDER_INSTANCE_ID: "prod-local-test",
22
+ }, async (_stream, chunk) => {
23
+ logs.push(chunk);
24
+ }, "org-1", "agent-1");
25
+ return {
26
+ codexHome,
27
+ config: await readFile(path.join(codexHome, "config.toml"), "utf8"),
28
+ logs,
29
+ };
30
+ }
31
+ it("strips inherited Codex service_tier default values unsupported by current Codex", async () => {
32
+ const { config, logs } = await prepareWithSharedConfig([
33
+ 'model = "gpt-5.5"',
34
+ 'service_tier = "default"',
35
+ 'model_reasoning_effort = "high"',
36
+ "",
37
+ ].join("\n"));
38
+ expect(config).toContain('model = "gpt-5.5"');
39
+ expect(config).toContain('model_reasoning_effort = "high"');
40
+ expect(config).not.toContain("service_tier");
41
+ expect(logs.join("\n")).toContain("Removed 1 unsupported inherited Codex service_tier entry");
42
+ });
43
+ it("preserves Codex service_tier values accepted by current Codex", async () => {
44
+ const { config } = await prepareWithSharedConfig([
45
+ 'model = "gpt-5.5"',
46
+ 'service_tier = "fast"',
47
+ "",
48
+ ].join("\n"));
49
+ expect(config).toContain('service_tier = "fast"');
50
+ });
51
+ });
52
+ //# sourceMappingURL=codex-home.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-home.test.js","sourceRoot":"","sources":["../../src/server/codex-home.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { UsageSummary } from "@rudderhq/agent-runtime-utils";
2
+ export type CodexTokenPrice = {
3
+ inputUsdPerMillion: number;
4
+ cachedInputUsdPerMillion: number;
5
+ outputUsdPerMillion: number;
6
+ };
7
+ export declare function resolveCodexTokenPrice(model: string): CodexTokenPrice | null;
8
+ export declare function estimateCodexCostUsd(model: string, usage: UsageSummary | null | undefined): number | null;
9
+ //# sourceMappingURL=cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/server/cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAyDF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAI5E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAezG"}
@@ -0,0 +1,73 @@
1
+ // Static API-equivalent pricing used only when a subscription-authenticated
2
+ // Codex run opts into cost estimation. Source: Vibe Usage model prices,
3
+ // checked 2026-06-18. When cache-read pricing is unpublished, use input price.
4
+ const OPENAI_CODEX_MODEL_PRICES = {
5
+ "codex-mini-latest": { inputUsdPerMillion: 1.5, cachedInputUsdPerMillion: 0.375, outputUsdPerMillion: 6 },
6
+ "gpt-3.5-turbo": { inputUsdPerMillion: 0.5, cachedInputUsdPerMillion: 0.5, outputUsdPerMillion: 1.5 },
7
+ "gpt-4": { inputUsdPerMillion: 30, cachedInputUsdPerMillion: 30, outputUsdPerMillion: 60 },
8
+ "gpt-4-turbo": { inputUsdPerMillion: 10, cachedInputUsdPerMillion: 10, outputUsdPerMillion: 30 },
9
+ "gpt-4.1": { inputUsdPerMillion: 2, cachedInputUsdPerMillion: 0.5, outputUsdPerMillion: 8 },
10
+ "gpt-4.1-mini": { inputUsdPerMillion: 0.4, cachedInputUsdPerMillion: 0.1, outputUsdPerMillion: 1.6 },
11
+ "gpt-4.1-nano": { inputUsdPerMillion: 0.1, cachedInputUsdPerMillion: 0.025, outputUsdPerMillion: 0.4 },
12
+ "gpt-4o": { inputUsdPerMillion: 2.5, cachedInputUsdPerMillion: 1.25, outputUsdPerMillion: 10 },
13
+ "gpt-4o-mini": { inputUsdPerMillion: 0.15, cachedInputUsdPerMillion: 0.075, outputUsdPerMillion: 0.6 },
14
+ "gpt-5": { inputUsdPerMillion: 1.25, cachedInputUsdPerMillion: 0.125, outputUsdPerMillion: 10 },
15
+ "gpt-5-codex": { inputUsdPerMillion: 1.25, cachedInputUsdPerMillion: 0.125, outputUsdPerMillion: 10 },
16
+ "gpt-5-mini": { inputUsdPerMillion: 0.25, cachedInputUsdPerMillion: 0.025, outputUsdPerMillion: 2 },
17
+ "gpt-5-nano": { inputUsdPerMillion: 0.05, cachedInputUsdPerMillion: 0.005, outputUsdPerMillion: 0.4 },
18
+ "gpt-5.1": { inputUsdPerMillion: 1.25, cachedInputUsdPerMillion: 0.125, outputUsdPerMillion: 10 },
19
+ "gpt-5.1-codex": { inputUsdPerMillion: 1.25, cachedInputUsdPerMillion: 0.125, outputUsdPerMillion: 10 },
20
+ "gpt-5.1-codex-max": { inputUsdPerMillion: 1.25, cachedInputUsdPerMillion: 0.125, outputUsdPerMillion: 10 },
21
+ "gpt-5.1-codex-mini": { inputUsdPerMillion: 0.25, cachedInputUsdPerMillion: 0.025, outputUsdPerMillion: 2 },
22
+ "gpt-5.2": { inputUsdPerMillion: 1.75, cachedInputUsdPerMillion: 0.175, outputUsdPerMillion: 14 },
23
+ "gpt-5.2-codex": { inputUsdPerMillion: 1.75, cachedInputUsdPerMillion: 0.175, outputUsdPerMillion: 14 },
24
+ "gpt-5.3-codex": { inputUsdPerMillion: 1.75, cachedInputUsdPerMillion: 0.175, outputUsdPerMillion: 14 },
25
+ "gpt-5.3-codex-spark": { inputUsdPerMillion: 1.75, cachedInputUsdPerMillion: 0.175, outputUsdPerMillion: 14 },
26
+ "gpt-5.4": { inputUsdPerMillion: 2.5, cachedInputUsdPerMillion: 0.25, outputUsdPerMillion: 15 },
27
+ "gpt-5.4-codex": { inputUsdPerMillion: 2.5, cachedInputUsdPerMillion: 0.25, outputUsdPerMillion: 15 },
28
+ "gpt-5.4-mini": { inputUsdPerMillion: 0.75, cachedInputUsdPerMillion: 0.075, outputUsdPerMillion: 4.5 },
29
+ "gpt-5.4-nano": { inputUsdPerMillion: 0.2, cachedInputUsdPerMillion: 0.02, outputUsdPerMillion: 1.25 },
30
+ "gpt-5.4-pro": { inputUsdPerMillion: 30, cachedInputUsdPerMillion: 30, outputUsdPerMillion: 180 },
31
+ "gpt-5.5": { inputUsdPerMillion: 5, cachedInputUsdPerMillion: 0.5, outputUsdPerMillion: 30 },
32
+ "gpt-5.5-codex": { inputUsdPerMillion: 2.5, cachedInputUsdPerMillion: 0.25, outputUsdPerMillion: 15 },
33
+ "gpt-5.5-fast": { inputUsdPerMillion: 12.5, cachedInputUsdPerMillion: 1.25, outputUsdPerMillion: 75 },
34
+ "gpt-5.5-flex": { inputUsdPerMillion: 2.5, cachedInputUsdPerMillion: 0.25, outputUsdPerMillion: 15 },
35
+ "gpt-5.5-pro": { inputUsdPerMillion: 30, cachedInputUsdPerMillion: 30, outputUsdPerMillion: 180 },
36
+ o1: { inputUsdPerMillion: 15, cachedInputUsdPerMillion: 7.5, outputUsdPerMillion: 60 },
37
+ "o1-mini": { inputUsdPerMillion: 1.1, cachedInputUsdPerMillion: 0.55, outputUsdPerMillion: 4.4 },
38
+ "o1-preview": { inputUsdPerMillion: 15, cachedInputUsdPerMillion: 7.5, outputUsdPerMillion: 60 },
39
+ o3: { inputUsdPerMillion: 2, cachedInputUsdPerMillion: 0.5, outputUsdPerMillion: 8 },
40
+ "o3-mini": { inputUsdPerMillion: 1.1, cachedInputUsdPerMillion: 0.55, outputUsdPerMillion: 4.4 },
41
+ "o3-pro": { inputUsdPerMillion: 20, cachedInputUsdPerMillion: 20, outputUsdPerMillion: 80 },
42
+ "o4-mini": { inputUsdPerMillion: 1.1, cachedInputUsdPerMillion: 0.275, outputUsdPerMillion: 4.4 },
43
+ };
44
+ function normalizeModelId(model) {
45
+ return model
46
+ .trim()
47
+ .toLowerCase()
48
+ .replace(/^openai\//, "");
49
+ }
50
+ function tokenCount(value) {
51
+ return Math.max(0, Math.floor(typeof value === "number" && Number.isFinite(value) ? value : 0));
52
+ }
53
+ export function resolveCodexTokenPrice(model) {
54
+ const normalized = normalizeModelId(model);
55
+ if (!normalized)
56
+ return null;
57
+ return OPENAI_CODEX_MODEL_PRICES[normalized] ?? null;
58
+ }
59
+ export function estimateCodexCostUsd(model, usage) {
60
+ const price = resolveCodexTokenPrice(model);
61
+ if (!price || !usage)
62
+ return null;
63
+ const inputTokens = tokenCount(usage.inputTokens);
64
+ const cachedInputTokens = Math.min(inputTokens, tokenCount(usage.cachedInputTokens));
65
+ const outputTokens = tokenCount(usage.outputTokens);
66
+ const uncachedInputTokens = Math.max(0, inputTokens - cachedInputTokens);
67
+ const costUsd = (uncachedInputTokens * price.inputUsdPerMillion
68
+ + cachedInputTokens * price.cachedInputUsdPerMillion
69
+ + outputTokens * price.outputUsdPerMillion)
70
+ / 1_000_000;
71
+ return costUsd > 0 ? costUsd : null;
72
+ }
73
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/server/cost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cost.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.test.d.ts","sourceRoot":"","sources":["../../src/server/cost.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { estimateCodexCostUsd, resolveCodexTokenPrice } from "./cost.js";
3
+ describe("Codex subscription cost estimator", () => {
4
+ it("uses the GPT-5.5 API-equivalent rate for subscription usage", () => {
5
+ expect(estimateCodexCostUsd("gpt-5.5", {
6
+ inputTokens: 1_000_000,
7
+ cachedInputTokens: 200_000,
8
+ outputTokens: 100_000,
9
+ })).toBeCloseTo(7.1, 6);
10
+ });
11
+ it("keeps Codex-specific model rates distinct from base model rates", () => {
12
+ expect(resolveCodexTokenPrice("gpt-5.5")).toMatchObject({
13
+ inputUsdPerMillion: 5,
14
+ outputUsdPerMillion: 30,
15
+ });
16
+ expect(resolveCodexTokenPrice("gpt-5.5-codex")).toMatchObject({
17
+ inputUsdPerMillion: 2.5,
18
+ outputUsdPerMillion: 15,
19
+ });
20
+ });
21
+ it("supports provider-prefixed OpenAI model ids", () => {
22
+ expect(estimateCodexCostUsd("openai/gpt-5.1-codex-mini", {
23
+ inputTokens: 1_000_000,
24
+ cachedInputTokens: 100_000,
25
+ outputTokens: 1_000_000,
26
+ })).toBeCloseTo(2.2275, 6);
27
+ });
28
+ it("covers non-Codex OpenAI models that can be selected for Codex runs", () => {
29
+ expect(estimateCodexCostUsd("gpt-4.1", {
30
+ inputTokens: 1_000_000,
31
+ cachedInputTokens: 500_000,
32
+ outputTokens: 1_000_000,
33
+ })).toBeCloseTo(9.25, 6);
34
+ expect(resolveCodexTokenPrice("o3")).toMatchObject({
35
+ inputUsdPerMillion: 2,
36
+ cachedInputUsdPerMillion: 0.5,
37
+ outputUsdPerMillion: 8,
38
+ });
39
+ });
40
+ it("keeps legacy Codex model aliases priced for existing agent configs", () => {
41
+ expect(estimateCodexCostUsd("gpt-5.3-codex-spark", {
42
+ inputTokens: 1_000_000,
43
+ cachedInputTokens: 0,
44
+ outputTokens: 100_000,
45
+ })).toBeCloseTo(3.15, 6);
46
+ });
47
+ it("does not estimate unknown models", () => {
48
+ expect(resolveCodexTokenPrice("gpt-future")).toBeNull();
49
+ expect(estimateCodexCostUsd("gpt-future", {
50
+ inputTokens: 1_000_000,
51
+ cachedInputTokens: 0,
52
+ outputTokens: 1_000_000,
53
+ })).toBeNull();
54
+ });
55
+ });
56
+ //# sourceMappingURL=cost.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.test.js","sourceRoot":"","sources":["../../src/server/cost.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEzE,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACrC,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,OAAO;YAC1B,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YACtD,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5D,kBAAkB,EAAE,GAAG;YACvB,mBAAmB,EAAE,EAAE;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,oBAAoB,CAAC,2BAA2B,EAAE;YACvD,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,OAAO;YAC1B,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACrC,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,OAAO;YAC1B,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEzB,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;YACjD,kBAAkB,EAAE,CAAC;YACrB,wBAAwB,EAAE,GAAG;YAC7B,mBAAmB,EAAE,CAAC;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE;YACjD,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE;YACxC,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AA8JjJ,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAwgBrG"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AA0KjJ,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAqhBrG"}
@@ -1,11 +1,12 @@
1
1
  import { inferOpenAiCompatibleBiller } from "@rudderhq/agent-runtime-utils";
2
2
  import { applyGitCredentialHelperPolicyEnv, applyGitIdentityPreparationEnv, ensureGitIdentityFileConfig } from "@rudderhq/agent-runtime-utils/git-identity";
3
- import { asBoolean, asNumber, asString, asStringArray, buildRudderEnv, ensureAbsoluteDirectory, ensureCommandResolvable, ensureLocalCliCredentialShimsInPath, ensurePathInEnv, ensureRudderCliInPath, joinPromptSections, loadAgentInstructionsPrefix, parseObject, readRudderRuntimeSkillEntries, redactEnvForLogs, renderTemplate, resolveLocalOperatorHome, resolveRudderDesiredSkillNames, runChildProcess, selectPromptTemplate, syncLocalCliCredentialHomeEntries, } from "@rudderhq/agent-runtime-utils/server-utils";
3
+ import { asBoolean, asNumber, asString, asStringArray, buildRudderEnv, ensureAbsoluteDirectory, ensureCommandResolvable, ensureLocalCliCredentialShimsInPath, ensurePathInEnv, ensureRudderCliInPath, joinPromptSections, loadAgentInstructionsPrefix, parseObject, prepareAgentInstructionRuntimeContext, readRudderRuntimeSkillEntries, redactEnvForLogs, renderTemplate, resolveLocalOperatorHome, resolveRudderDesiredSkillNames, runChildProcess, selectPromptTemplate, shouldIncludeRuntimeHeartbeatInstructions, syncLocalCliCredentialHomeEntries, } from "@rudderhq/agent-runtime-utils/server-utils";
4
4
  import fs from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { isCodexClosedStdinToolSessionError } from "../shared/tool-errors.js";
8
8
  import { prepareManagedCodexHome, realizeManagedCodexSkillEntries, resolveManagedCodexHomeDir, } from "./codex-home.js";
9
+ import { estimateCodexCostUsd } from "./cost.js";
9
10
  import { isCodexUnknownSessionError, parseCodexJsonl } from "./parse.js";
10
11
  const __moduleDir = path.dirname(fileURLToPath(import.meta.url));
11
12
  const CODEX_BENIGN_STDERR_RES = [
@@ -115,11 +116,17 @@ function resolveCodexBiller(env, billingType) {
115
116
  return "openrouter";
116
117
  return billingType === "subscription" ? "chatgpt" : openAiCompatibleBiller ?? "openai";
117
118
  }
119
+ function resolveCodexResultBillingType(billingType, countSubscriptionUsageAsCost, hasEstimatedCost) {
120
+ if (billingType === "subscription" && countSubscriptionUsageAsCost && hasEstimatedCost)
121
+ return "metered_api";
122
+ return billingType;
123
+ }
118
124
  export async function execute(ctx) {
119
125
  const { runId, agent, runtime, config, context, onLog, onMeta, onSpawn, authToken } = ctx;
120
126
  const promptTemplate = selectPromptTemplate(asString(config.promptTemplate, ""), context);
121
127
  const command = asString(config.command, "codex");
122
128
  const model = asString(config.model, "");
129
+ const countSubscriptionUsageAsCost = asBoolean(config.countSubscriptionUsageAsCost, true);
123
130
  const modelReasoningEffort = asString(config.modelReasoningEffort, asString(config.reasoningEffort, ""));
124
131
  const search = asBoolean(config.search, false);
125
132
  const bypass = asBoolean(config.dangerouslyBypassApprovalsAndSandbox, asBoolean(config.dangerouslyBypassSandbox, false));
@@ -343,9 +350,11 @@ export async function execute(ctx) {
343
350
  await onLog("stdout", `[rudder] Codex session "${runtimeSessionId}" was saved for cwd "${runtimeSessionCwd}" and will not be resumed in "${cwd}".\n`);
344
351
  }
345
352
  const instructionsFilePath = asString(config.instructionsFilePath, "").trim();
353
+ const instructionRuntimeContext = prepareAgentInstructionRuntimeContext(context);
346
354
  const loadedInstructions = await loadAgentInstructionsPrefix({
347
355
  instructionsFilePath,
348
- includeHeartbeatInstructions: runtimeScene === "heartbeat",
356
+ includeHeartbeatInstructions: shouldIncludeRuntimeHeartbeatInstructions(context),
357
+ contextSectionsBeforeCurrentTime: instructionRuntimeContext.contextSectionsBeforeCurrentTime,
349
358
  onLog,
350
359
  });
351
360
  const instructionsPrefix = loadedInstructions.prefix;
@@ -412,7 +421,7 @@ export async function execute(ctx) {
412
421
  source: context.wakeSource ?? "on_demand",
413
422
  wakeReason: context.wakeReason ?? null,
414
423
  },
415
- context,
424
+ context: instructionRuntimeContext.promptContext,
416
425
  // Issue and comment context for enriched prompts
417
426
  issue: context.issue ?? null,
418
427
  comment: context.comment ?? null,
@@ -549,6 +558,10 @@ export async function execute(ctx) {
549
558
  const fallbackErrorMessage = parsedError ||
550
559
  stderrLine ||
551
560
  `Codex exited with code ${attempt.proc.exitCode ?? -1}`;
561
+ const estimatedCostUsd = billingType === "subscription" && countSubscriptionUsageAsCost
562
+ ? estimateCodexCostUsd(model, attempt.parsed.usage)
563
+ : null;
564
+ const resultBillingType = resolveCodexResultBillingType(billingType, countSubscriptionUsageAsCost, estimatedCostUsd !== null);
552
565
  return {
553
566
  exitCode: attempt.proc.exitCode,
554
567
  signal: attempt.proc.signal,
@@ -563,8 +576,8 @@ export async function execute(ctx) {
563
576
  provider: "openai",
564
577
  biller: resolveCodexBiller(effectiveEnv, billingType),
565
578
  model,
566
- billingType,
567
- costUsd: null,
579
+ billingType: resultBillingType,
580
+ costUsd: estimatedCostUsd,
568
581
  resultJson: {
569
582
  stdout: attempt.proc.stdout,
570
583
  stderr: attempt.proc.stderr,