oh-my-codex 0.19.1 → 0.20.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 (212) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +3 -1
  4. package/crates/omx-api/src/lib.rs +3 -3
  5. package/crates/omx-api/tests/cli.rs +4 -4
  6. package/crates/omx-explore/src/main.rs +4 -4
  7. package/crates/omx-sparkshell/src/codex_bridge.rs +2 -2
  8. package/dist/agents/__tests__/definitions.test.js +3 -3
  9. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  10. package/dist/agents/__tests__/native-config.test.js +71 -42
  11. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  12. package/dist/agents/definitions.d.ts +1 -1
  13. package/dist/agents/definitions.d.ts.map +1 -1
  14. package/dist/agents/definitions.js +3 -3
  15. package/dist/agents/definitions.js.map +1 -1
  16. package/dist/agents/native-config.d.ts +2 -2
  17. package/dist/agents/native-config.d.ts.map +1 -1
  18. package/dist/agents/native-config.js +7 -5
  19. package/dist/agents/native-config.js.map +1 -1
  20. package/dist/autopilot/__tests__/planner-routing.test.js +19 -12
  21. package/dist/autopilot/__tests__/planner-routing.test.js.map +1 -1
  22. package/dist/autopilot/__tests__/ralplan-gate.test.js +151 -0
  23. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  24. package/dist/autopilot/planner-routing.d.ts.map +1 -1
  25. package/dist/autopilot/planner-routing.js +4 -2
  26. package/dist/autopilot/planner-routing.js.map +1 -1
  27. package/dist/autopilot/ralplan-gate.d.ts +1 -0
  28. package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
  29. package/dist/autopilot/ralplan-gate.js +38 -2
  30. package/dist/autopilot/ralplan-gate.js.map +1 -1
  31. package/dist/autoresearch/runtime.d.ts +2 -0
  32. package/dist/autoresearch/runtime.d.ts.map +1 -1
  33. package/dist/autoresearch/runtime.js +8 -0
  34. package/dist/autoresearch/runtime.js.map +1 -1
  35. package/dist/capabilities/__tests__/lockfile.test.d.ts +2 -0
  36. package/dist/capabilities/__tests__/lockfile.test.d.ts.map +1 -0
  37. package/dist/capabilities/__tests__/lockfile.test.js +115 -0
  38. package/dist/capabilities/__tests__/lockfile.test.js.map +1 -0
  39. package/dist/capabilities/lockfile.d.ts +102 -0
  40. package/dist/capabilities/lockfile.d.ts.map +1 -0
  41. package/dist/capabilities/lockfile.js +334 -0
  42. package/dist/capabilities/lockfile.js.map +1 -0
  43. package/dist/cli/__tests__/agents.test.js +5 -5
  44. package/dist/cli/__tests__/agents.test.js.map +1 -1
  45. package/dist/cli/__tests__/capabilities.test.d.ts +2 -0
  46. package/dist/cli/__tests__/capabilities.test.d.ts.map +1 -0
  47. package/dist/cli/__tests__/capabilities.test.js +135 -0
  48. package/dist/cli/__tests__/capabilities.test.js.map +1 -0
  49. package/dist/cli/__tests__/codex-plugin-layout.test.js +237 -6
  50. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  51. package/dist/cli/__tests__/doctor-context-window-warning.test.js +9 -9
  52. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -1
  53. package/dist/cli/__tests__/doctor-invalid-config.test.js +1 -1
  54. package/dist/cli/__tests__/doctor-spark-routing.test.js +22 -6
  55. package/dist/cli/__tests__/doctor-spark-routing.test.js.map +1 -1
  56. package/dist/cli/__tests__/index.test.js +53 -18
  57. package/dist/cli/__tests__/index.test.js.map +1 -1
  58. package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js +3 -3
  59. package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js.map +1 -1
  60. package/dist/cli/__tests__/resume.test.js +95 -6
  61. package/dist/cli/__tests__/resume.test.js.map +1 -1
  62. package/dist/cli/__tests__/setup-install-mode.test.js +46 -18
  63. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  64. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +3 -3
  65. package/dist/cli/__tests__/setup-refresh.test.js +29 -7
  66. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  67. package/dist/cli/__tests__/uninstall.test.js +4 -4
  68. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  69. package/dist/cli/agents.js +1 -1
  70. package/dist/cli/agents.js.map +1 -1
  71. package/dist/cli/capabilities.d.ts +3 -0
  72. package/dist/cli/capabilities.d.ts.map +1 -0
  73. package/dist/cli/capabilities.js +118 -0
  74. package/dist/cli/capabilities.js.map +1 -0
  75. package/dist/cli/doctor.d.ts +1 -1
  76. package/dist/cli/doctor.d.ts.map +1 -1
  77. package/dist/cli/doctor.js +9 -4
  78. package/dist/cli/doctor.js.map +1 -1
  79. package/dist/cli/index.d.ts +7 -4
  80. package/dist/cli/index.d.ts.map +1 -1
  81. package/dist/cli/index.js +77 -19
  82. package/dist/cli/index.js.map +1 -1
  83. package/dist/cli/plugin-marketplace.d.ts +1 -0
  84. package/dist/cli/plugin-marketplace.d.ts.map +1 -1
  85. package/dist/cli/plugin-marketplace.js +31 -0
  86. package/dist/cli/plugin-marketplace.js.map +1 -1
  87. package/dist/cli/setup.d.ts.map +1 -1
  88. package/dist/cli/setup.js +7 -4
  89. package/dist/cli/setup.js.map +1 -1
  90. package/dist/config/__tests__/generator-idempotent.test.js +23 -23
  91. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  92. package/dist/config/__tests__/generator-notify.test.js +9 -9
  93. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  94. package/dist/config/__tests__/models.test.js +51 -26
  95. package/dist/config/__tests__/models.test.js.map +1 -1
  96. package/dist/config/generator.d.ts +1 -1
  97. package/dist/config/generator.d.ts.map +1 -1
  98. package/dist/config/models.d.ts +16 -6
  99. package/dist/config/models.d.ts.map +1 -1
  100. package/dist/config/models.js +19 -8
  101. package/dist/config/models.js.map +1 -1
  102. package/dist/hooks/__tests__/keyword-detector.test.js +12 -4
  103. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  104. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +1 -1
  105. package/dist/hooks/__tests__/prometheus-strict-contract.test.js +2 -2
  106. package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -1
  107. package/dist/hooks/__tests__/tmux-hook-engine.test.js +2 -2
  108. package/dist/leader/__tests__/contract.test.js +108 -1
  109. package/dist/leader/__tests__/contract.test.js.map +1 -1
  110. package/dist/leader/contract.d.ts +26 -0
  111. package/dist/leader/contract.d.ts.map +1 -1
  112. package/dist/leader/contract.js +170 -0
  113. package/dist/leader/contract.js.map +1 -1
  114. package/dist/modes/base.d.ts +1 -1
  115. package/dist/modes/base.d.ts.map +1 -1
  116. package/dist/pipeline/__tests__/stages.test.js +27 -1
  117. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  118. package/dist/pipeline/stages/ralplan.d.ts +2 -1
  119. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  120. package/dist/pipeline/stages/ralplan.js +1 -0
  121. package/dist/pipeline/stages/ralplan.js.map +1 -1
  122. package/dist/pipeline/stages/ultragoal.d.ts +5 -1
  123. package/dist/pipeline/stages/ultragoal.d.ts.map +1 -1
  124. package/dist/pipeline/stages/ultragoal.js +14 -4
  125. package/dist/pipeline/stages/ultragoal.js.map +1 -1
  126. package/dist/ralplan/__tests__/runtime.test.js +132 -0
  127. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  128. package/dist/ralplan/runtime.d.ts +17 -0
  129. package/dist/ralplan/runtime.d.ts.map +1 -1
  130. package/dist/ralplan/runtime.js +97 -1
  131. package/dist/ralplan/runtime.js.map +1 -1
  132. package/dist/scripts/__tests__/codex-native-hook.test.js +412 -0
  133. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  134. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  135. package/dist/scripts/codex-native-hook.js +238 -12
  136. package/dist/scripts/codex-native-hook.js.map +1 -1
  137. package/dist/state/__tests__/operations.test.js +450 -0
  138. package/dist/state/__tests__/operations.test.js.map +1 -1
  139. package/dist/state/__tests__/workflow-transition.test.js +14 -0
  140. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  141. package/dist/state/operations.d.ts.map +1 -1
  142. package/dist/state/operations.js +72 -11
  143. package/dist/state/operations.js.map +1 -1
  144. package/dist/state/terminal-normalization.d.ts +8 -0
  145. package/dist/state/terminal-normalization.d.ts.map +1 -0
  146. package/dist/state/terminal-normalization.js +127 -0
  147. package/dist/state/terminal-normalization.js.map +1 -0
  148. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
  149. package/dist/state/workflow-transition-reconcile.js +3 -1
  150. package/dist/state/workflow-transition-reconcile.js.map +1 -1
  151. package/dist/team/__tests__/delegation-policy.test.js +2 -2
  152. package/dist/team/__tests__/delegation-policy.test.js.map +1 -1
  153. package/dist/team/__tests__/model-contract.test.js +25 -25
  154. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  155. package/dist/team/__tests__/runtime.test.js +28 -28
  156. package/dist/team/__tests__/runtime.test.js.map +1 -1
  157. package/dist/team/__tests__/scaling.test.js +7 -7
  158. package/dist/team/__tests__/scaling.test.js.map +1 -1
  159. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +5 -5
  160. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -1
  161. package/dist/team/__tests__/tmux-session.test.js +12 -12
  162. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  163. package/dist/team/__tests__/worker-bootstrap.test.js +57 -9
  164. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  165. package/dist/team/__tests__/worker-runtime-identity.test.js +3 -3
  166. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
  167. package/dist/team/model-contract.d.ts +1 -1
  168. package/dist/team/model-contract.d.ts.map +1 -1
  169. package/dist/team/runtime.d.ts.map +1 -1
  170. package/dist/team/runtime.js +11 -0
  171. package/dist/team/runtime.js.map +1 -1
  172. package/dist/team/worker-bootstrap.d.ts +2 -0
  173. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  174. package/dist/team/worker-bootstrap.js +6 -1
  175. package/dist/team/worker-bootstrap.js.map +1 -1
  176. package/dist/ultragoal/__tests__/artifacts.test.js +68 -1
  177. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  178. package/dist/ultragoal/artifacts.d.ts +5 -1
  179. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  180. package/dist/ultragoal/artifacts.js +41 -9
  181. package/dist/ultragoal/artifacts.js.map +1 -1
  182. package/dist/utils/__tests__/agents-model-table.test.js +7 -7
  183. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  184. package/dist/utils/__tests__/worktree-tool-context.test.d.ts +2 -0
  185. package/dist/utils/__tests__/worktree-tool-context.test.d.ts.map +1 -0
  186. package/dist/utils/__tests__/worktree-tool-context.test.js +118 -0
  187. package/dist/utils/__tests__/worktree-tool-context.test.js.map +1 -0
  188. package/dist/utils/worktree-tool-context.d.ts +25 -0
  189. package/dist/utils/worktree-tool-context.d.ts.map +1 -0
  190. package/dist/utils/worktree-tool-context.js +116 -0
  191. package/dist/utils/worktree-tool-context.js.map +1 -0
  192. package/package.json +1 -1
  193. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  194. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +96 -10
  195. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +1 -1
  196. package/plugins/oh-my-codex/skills/code-review/SKILL.md +1 -1
  197. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +5 -5
  198. package/plugins/oh-my-codex/skills/prometheus-strict/SKILL.md +3 -3
  199. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +1 -1
  200. package/plugins/oh-my-codex/skills/team/SKILL.md +1 -1
  201. package/plugins/oh-my-codex/skills/ultrawork/references/agent-tiers.md +2 -2
  202. package/prompts/prometheus-strict-metis.md +1 -1
  203. package/skills/ai-slop-cleaner/SKILL.md +1 -1
  204. package/skills/code-review/SKILL.md +1 -1
  205. package/skills/ecomode/references/agent-tiers.md +1 -1
  206. package/skills/omx-setup/SKILL.md +5 -5
  207. package/skills/prometheus-strict/SKILL.md +3 -3
  208. package/skills/ralplan/SKILL.md +1 -1
  209. package/skills/team/SKILL.md +1 -1
  210. package/skills/ultrawork/references/agent-tiers.md +2 -2
  211. package/src/scripts/__tests__/codex-native-hook.test.ts +477 -0
  212. package/src/scripts/codex-native-hook.ts +272 -11
@@ -0,0 +1,102 @@
1
+ export declare const CAPABILITIES_LOCKFILE_VERSION = 1;
2
+ export declare const DEFAULT_CAPABILITIES_LOCKFILE = "omx-capabilities.lock.json";
3
+ export type CapabilityFailureCode = "lockfile_missing" | "lockfile_invalid_json" | "lockfile_unsupported_version" | "configured_tool_surface_mismatch" | "skill_surface_mismatch" | "agent_surface_mismatch" | "fixture_contract_mismatch" | "external_schema_unavailable" | "observations_missing" | "observations_invalid_json" | "required_observation_missing" | "unknown_fixture" | "duplicate_observation" | "hallucinated_tool" | "unavailable_tool" | "wrong_tool_selected" | "missing_required_arg" | "arg_schema_invalid" | "unexpected_tool_call" | "structured_output_invalid";
4
+ export interface CapabilityFailure {
5
+ code: CapabilityFailureCode;
6
+ message: string;
7
+ path?: string;
8
+ fixture_id?: string;
9
+ tool?: string;
10
+ }
11
+ export interface CapabilityWarning {
12
+ code: "external_schema_unavailable";
13
+ message: string;
14
+ server?: string;
15
+ }
16
+ export interface ToolContract {
17
+ name: string;
18
+ description?: string;
19
+ inputSchema?: JsonObject;
20
+ server: string;
21
+ enabled: boolean;
22
+ }
23
+ export interface ExternalMcpServerContract {
24
+ name: string;
25
+ config_digest: string;
26
+ schema_status: "unavailable";
27
+ }
28
+ export interface CapabilitiesLockfile {
29
+ version: 1;
30
+ kind: "omx_capabilities_lock";
31
+ surfaces: {
32
+ configured_tools: {
33
+ digest: string;
34
+ tools: ToolContract[];
35
+ disabled_first_party_servers: string[];
36
+ external_servers: ExternalMcpServerContract[];
37
+ };
38
+ skills: {
39
+ digest: string;
40
+ files: DigestEntry[];
41
+ };
42
+ agents: {
43
+ digest: string;
44
+ files: DigestEntry[];
45
+ };
46
+ fixtures: {
47
+ digest: string;
48
+ fixtures: FixtureContract[];
49
+ };
50
+ };
51
+ }
52
+ export interface DigestEntry {
53
+ path: string;
54
+ digest: string;
55
+ }
56
+ export interface FixtureContract {
57
+ id: string;
58
+ prompt_id: string;
59
+ required: boolean;
60
+ allowed_tools: string[];
61
+ expected_tool?: string;
62
+ no_tool_calls?: boolean;
63
+ }
64
+ export interface CapabilityObservation {
65
+ fixture_id: string;
66
+ prompt_id?: string;
67
+ tool_calls?: Array<{
68
+ name?: unknown;
69
+ arguments?: unknown;
70
+ }>;
71
+ structured_output?: unknown;
72
+ }
73
+ export interface CapabilityObservationsFile {
74
+ version: 1;
75
+ kind: "omx_capability_observations";
76
+ observations: CapabilityObservation[];
77
+ }
78
+ export interface CapabilityCheckOptions {
79
+ cwd?: string;
80
+ codexHome?: string;
81
+ lockfilePath?: string;
82
+ observationsPath?: string;
83
+ requireObservations?: boolean;
84
+ strictExternalSchemas?: boolean;
85
+ }
86
+ export interface CapabilityCheckResult {
87
+ ok: boolean;
88
+ lockfile: string;
89
+ observations_checked: boolean;
90
+ digests: Record<string, string>;
91
+ failures: CapabilityFailure[];
92
+ warnings: CapabilityWarning[];
93
+ }
94
+ type JsonObject = Record<string, unknown>;
95
+ export declare function canonicalStringify(value: unknown): string;
96
+ export declare function sha256(value: string): string;
97
+ export declare function defaultCapabilitiesLockfilePath(cwd?: string): string;
98
+ export declare function buildCapabilitiesLockfile(options?: CapabilityCheckOptions): Promise<CapabilitiesLockfile>;
99
+ export declare function writeCapabilitiesLockfile(path: string, lockfile: CapabilitiesLockfile): Promise<void>;
100
+ export declare function checkCapabilitiesPreflight(options?: CapabilityCheckOptions): Promise<CapabilityCheckResult>;
101
+ export {};
102
+ //# sourceMappingURL=lockfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/capabilities/lockfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,334 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync } from "node:fs";
3
+ import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
4
+ import { dirname, join, relative, resolve } from "node:path";
5
+ import TOML from "@iarna/toml";
6
+ export const CAPABILITIES_LOCKFILE_VERSION = 1;
7
+ export const DEFAULT_CAPABILITIES_LOCKFILE = "omx-capabilities.lock.json";
8
+ const FIRST_PARTY_SERVERS = ["state", "memory", "code_intel", "trace", "wiki", "hermes"];
9
+ const FIRST_PARTY_DISABLE_ENV = {
10
+ state: "OMX_STATE_SERVER_DISABLE_AUTO_START",
11
+ memory: "OMX_MEMORY_SERVER_DISABLE_AUTO_START",
12
+ code_intel: "OMX_CODE_INTEL_SERVER_DISABLE_AUTO_START",
13
+ trace: "OMX_TRACE_SERVER_DISABLE_AUTO_START",
14
+ wiki: "OMX_WIKI_SERVER_DISABLE_AUTO_START",
15
+ hermes: "OMX_HERMES_SERVER_DISABLE_AUTO_START",
16
+ };
17
+ export function canonicalStringify(value) {
18
+ return `${JSON.stringify(sortJson(value), null, 2)}\n`;
19
+ }
20
+ export function sha256(value) {
21
+ return createHash("sha256").update(value).digest("hex");
22
+ }
23
+ function sortJson(value) {
24
+ if (Array.isArray(value))
25
+ return value.map(sortJson);
26
+ if (!value || typeof value !== "object")
27
+ return value;
28
+ return Object.fromEntries(Object.entries(value)
29
+ .sort(([a], [b]) => a.localeCompare(b))
30
+ .map(([key, child]) => [key, sortJson(child)]));
31
+ }
32
+ export function defaultCapabilitiesLockfilePath(cwd = process.cwd()) {
33
+ return join(cwd, DEFAULT_CAPABILITIES_LOCKFILE);
34
+ }
35
+ export async function buildCapabilitiesLockfile(options = {}) {
36
+ const cwd = options.cwd ?? process.cwd();
37
+ const [toolSurface, skills, agents] = await Promise.all([
38
+ collectConfiguredToolSurface(cwd, options.codexHome),
39
+ collectDigestEntries(cwd, ["skills"], ["SKILL.md", "catalog.json", "metadata.json"]),
40
+ collectDigestEntries(cwd, ["prompts", join("templates", "model-instructions")], [".md", ".toml", ".json"]),
41
+ ]);
42
+ const fixtures = buildFixtureContracts(toolSurface.tools.filter((tool) => tool.enabled).map((tool) => tool.name));
43
+ return {
44
+ version: CAPABILITIES_LOCKFILE_VERSION,
45
+ kind: "omx_capabilities_lock",
46
+ surfaces: {
47
+ configured_tools: toolSurface,
48
+ skills: { digest: digestEntries(skills), files: skills },
49
+ agents: { digest: digestEntries(agents), files: agents },
50
+ fixtures: { digest: sha256(canonicalStringify(fixtures)), fixtures },
51
+ },
52
+ };
53
+ }
54
+ export async function writeCapabilitiesLockfile(path, lockfile) {
55
+ await mkdir(dirname(path), { recursive: true });
56
+ await writeFile(path, canonicalStringify(lockfile), "utf8");
57
+ }
58
+ export async function checkCapabilitiesPreflight(options = {}) {
59
+ const cwd = options.cwd ?? process.cwd();
60
+ const lockfile = options.lockfilePath ? resolve(cwd, options.lockfilePath) : defaultCapabilitiesLockfilePath(cwd);
61
+ const failures = [];
62
+ const warnings = [];
63
+ let expected;
64
+ try {
65
+ expected = JSON.parse(await readFile(lockfile, "utf8"));
66
+ }
67
+ catch (error) {
68
+ const code = error.code === "ENOENT" ? "lockfile_missing" : "lockfile_invalid_json";
69
+ return emptyResult(lockfile, code, code === "lockfile_missing" ? "Capabilities lockfile is missing." : "Capabilities lockfile is invalid JSON.");
70
+ }
71
+ if (expected.version !== CAPABILITIES_LOCKFILE_VERSION || expected.kind !== "omx_capabilities_lock") {
72
+ return emptyResult(lockfile, "lockfile_unsupported_version", "Capabilities lockfile version is unsupported.");
73
+ }
74
+ const current = await buildCapabilitiesLockfile({ cwd, codexHome: options.codexHome });
75
+ compareDigest(failures, "configured_tool_surface_mismatch", "Configured tool surface changed.", expected.surfaces.configured_tools.digest, current.surfaces.configured_tools.digest);
76
+ compareDigest(failures, "skill_surface_mismatch", "Skill surface changed.", expected.surfaces.skills.digest, current.surfaces.skills.digest);
77
+ compareDigest(failures, "agent_surface_mismatch", "Agent surface changed.", expected.surfaces.agents.digest, current.surfaces.agents.digest);
78
+ compareDigest(failures, "fixture_contract_mismatch", "Fixture contracts changed.", expected.surfaces.fixtures.digest, current.surfaces.fixtures.digest);
79
+ for (const server of current.surfaces.configured_tools.external_servers) {
80
+ const warning = { code: "external_schema_unavailable", server: server.name, message: `External MCP server '${server.name}' has no schema snapshot.` };
81
+ if (options.strictExternalSchemas)
82
+ failures.push({ ...warning, code: "external_schema_unavailable" });
83
+ else
84
+ warnings.push(warning);
85
+ }
86
+ const observationsChecked = Boolean(options.observationsPath);
87
+ if (options.requireObservations && !options.observationsPath) {
88
+ failures.push({ code: "observations_missing", message: "Capability observations are required." });
89
+ }
90
+ if (options.observationsPath) {
91
+ await validateObservations(resolve(cwd, options.observationsPath), expected, failures);
92
+ }
93
+ return {
94
+ ok: failures.length === 0,
95
+ lockfile,
96
+ observations_checked: observationsChecked,
97
+ digests: {
98
+ configured_tools: current.surfaces.configured_tools.digest,
99
+ skills: current.surfaces.skills.digest,
100
+ agents: current.surfaces.agents.digest,
101
+ fixtures: current.surfaces.fixtures.digest,
102
+ },
103
+ failures,
104
+ warnings,
105
+ };
106
+ }
107
+ function emptyResult(lockfile, code, message) {
108
+ return { ok: false, lockfile, observations_checked: false, digests: {}, failures: [{ code, message }], warnings: [] };
109
+ }
110
+ function compareDigest(failures, code, message, expected, actual) {
111
+ if (expected !== actual)
112
+ failures.push({ code, message });
113
+ }
114
+ async function collectConfiguredToolSurface(cwd, codexHome) {
115
+ const priorEnv = new Map();
116
+ const disabledFirstPartyServers = FIRST_PARTY_SERVERS.filter((server) => process.env[FIRST_PARTY_DISABLE_ENV[server]] === "1");
117
+ for (const envName of Object.values(FIRST_PARTY_DISABLE_ENV)) {
118
+ priorEnv.set(envName, process.env[envName]);
119
+ process.env[envName] = "1";
120
+ }
121
+ try {
122
+ const [state, memory, codeIntel, trace, wiki, hermes] = await Promise.all([
123
+ import("../mcp/state-server.js"),
124
+ import("../mcp/memory-server.js"),
125
+ import("../mcp/code-intel-server.js"),
126
+ import("../mcp/trace-server.js"),
127
+ import("../mcp/wiki-server.js"),
128
+ import("../mcp/hermes-server.js"),
129
+ ]);
130
+ const builders = {
131
+ state: () => state.buildStateServerTools(),
132
+ memory: () => memory.buildMemoryServerTools(),
133
+ code_intel: () => codeIntel.buildCodeIntelServerTools(),
134
+ trace: () => trace.buildTraceServerTools(),
135
+ wiki: () => wiki.buildWikiServerTools(),
136
+ hermes: () => hermes.buildHermesServerTools(),
137
+ };
138
+ const disabled = disabledFirstPartyServers;
139
+ const tools = Object.entries(builders).flatMap(([server, build]) => build().map((tool) => ({ ...normalizeTool(tool), server, enabled: !disabled.includes(server) }))).sort((a, b) => `${a.server}:${a.name}`.localeCompare(`${b.server}:${b.name}`));
140
+ const externalServers = await collectExternalMcpServers(cwd, codexHome);
141
+ const digestInput = { tools, disabled_first_party_servers: disabled, external_servers: externalServers };
142
+ return { ...digestInput, digest: sha256(canonicalStringify(digestInput)) };
143
+ }
144
+ finally {
145
+ for (const [envName, value] of priorEnv) {
146
+ if (value === undefined)
147
+ delete process.env[envName];
148
+ else
149
+ process.env[envName] = value;
150
+ }
151
+ }
152
+ }
153
+ function normalizeTool(tool) {
154
+ return { name: tool.name, description: tool.description, inputSchema: tool.inputSchema, server: "", enabled: true };
155
+ }
156
+ async function collectExternalMcpServers(cwd, codexHome) {
157
+ const configPaths = [join(cwd, ".codex", "config.toml")];
158
+ if (codexHome)
159
+ configPaths.push(join(codexHome, "config.toml"));
160
+ const servers = new Map();
161
+ for (const configPath of configPaths) {
162
+ if (!existsSync(configPath))
163
+ continue;
164
+ try {
165
+ const parsed = TOML.parse(await readFile(configPath, "utf8"));
166
+ const rawServers = parsed.mcp_servers;
167
+ if (!rawServers || typeof rawServers !== "object")
168
+ continue;
169
+ for (const [name, config] of Object.entries(rawServers)) {
170
+ if (String(name).startsWith("omx-"))
171
+ continue;
172
+ servers.set(name, { name, config_digest: sha256(canonicalStringify(config)), schema_status: "unavailable" });
173
+ }
174
+ }
175
+ catch {
176
+ continue;
177
+ }
178
+ }
179
+ return [...servers.values()].sort((a, b) => a.name.localeCompare(b.name));
180
+ }
181
+ async function collectDigestEntries(cwd, roots, suffixes) {
182
+ const entries = [];
183
+ for (const root of roots) {
184
+ await walkDigest(join(cwd, root), cwd, suffixes, entries);
185
+ }
186
+ return entries.sort((a, b) => a.path.localeCompare(b.path));
187
+ }
188
+ async function walkDigest(dir, cwd, suffixes, entries) {
189
+ let children;
190
+ try {
191
+ children = await readdir(dir, { withFileTypes: true });
192
+ }
193
+ catch {
194
+ return;
195
+ }
196
+ for (const child of children) {
197
+ const path = join(dir, child.name);
198
+ if (child.isDirectory()) {
199
+ await walkDigest(path, cwd, suffixes, entries);
200
+ }
201
+ else if (suffixes.some((suffix) => child.name === suffix || child.name.endsWith(suffix))) {
202
+ entries.push({ path: relative(cwd, path).replaceAll("\\", "/"), digest: sha256(await readFile(path, "utf8")) });
203
+ }
204
+ }
205
+ }
206
+ function digestEntries(entries) {
207
+ return sha256(canonicalStringify(entries));
208
+ }
209
+ function buildFixtureContracts(allowedTools) {
210
+ const sortedAllowed = [...allowedTools].sort();
211
+ const choose = (preferred, fallback) => sortedAllowed.includes(preferred) ? preferred : fallback;
212
+ const writeTool = choose("project_memory_write", sortedAllowed[0] ?? "project_memory_write");
213
+ const readTool = choose("project_memory_read", sortedAllowed[0] ?? "project_memory_read");
214
+ return [
215
+ { id: "project-memory-write-required-arg", prompt_id: "missing-required-arg", required: true, allowed_tools: sortedAllowed, expected_tool: writeTool },
216
+ { id: "project-memory-read-known-tool", prompt_id: "known-tool-success", required: true, allowed_tools: sortedAllowed, expected_tool: readTool },
217
+ { id: "tool-restraint-no-call", prompt_id: "tool-restraint", required: true, allowed_tools: [], no_tool_calls: true },
218
+ ];
219
+ }
220
+ async function validateObservations(path, lockfile, failures) {
221
+ let parsed;
222
+ try {
223
+ parsed = JSON.parse(await readFile(path, "utf8"));
224
+ }
225
+ catch {
226
+ failures.push({ code: "observations_invalid_json", message: "Capability observations are invalid JSON.", path });
227
+ return;
228
+ }
229
+ if (parsed.version !== 1 || parsed.kind !== "omx_capability_observations" || !Array.isArray(parsed.observations)) {
230
+ failures.push({ code: "observations_invalid_json", message: "Capability observations have an unsupported shape.", path });
231
+ return;
232
+ }
233
+ const fixtures = new Map(lockfile.surfaces.fixtures.fixtures.map((fixture) => [fixture.id, fixture]));
234
+ const seen = new Set();
235
+ const availableTools = new Map(lockfile.surfaces.configured_tools.tools.filter((tool) => tool.enabled).map((tool) => [tool.name, tool]));
236
+ for (const observation of parsed.observations) {
237
+ const fixture = fixtures.get(observation.fixture_id);
238
+ if (!fixture) {
239
+ failures.push({ code: "unknown_fixture", message: `Unknown fixture '${observation.fixture_id}'.`, fixture_id: observation.fixture_id });
240
+ continue;
241
+ }
242
+ if (seen.has(observation.fixture_id)) {
243
+ failures.push({ code: "duplicate_observation", message: `Duplicate observation for fixture '${observation.fixture_id}'.`, fixture_id: observation.fixture_id });
244
+ continue;
245
+ }
246
+ seen.add(observation.fixture_id);
247
+ validateObservation(fixture, observation, availableTools, failures);
248
+ }
249
+ for (const fixture of fixtures.values()) {
250
+ if (fixture.required && !seen.has(fixture.id)) {
251
+ failures.push({ code: "required_observation_missing", message: `Required observation '${fixture.id}' is missing.`, fixture_id: fixture.id });
252
+ }
253
+ }
254
+ }
255
+ function validateObservation(fixture, observation, availableTools, failures) {
256
+ const calls = Array.isArray(observation.tool_calls) ? observation.tool_calls : [];
257
+ if (fixture.no_tool_calls && calls.length > 0) {
258
+ failures.push({ code: "unexpected_tool_call", message: `Fixture '${fixture.id}' requires tool restraint.`, fixture_id: fixture.id });
259
+ }
260
+ for (const call of calls) {
261
+ if (typeof call.name !== "string") {
262
+ failures.push({ code: "arg_schema_invalid", message: "Tool call name must be a string.", fixture_id: fixture.id });
263
+ continue;
264
+ }
265
+ const tool = availableTools.get(call.name);
266
+ if (!tool) {
267
+ failures.push({ code: "hallucinated_tool", message: `Tool '${call.name}' is not in the configured surface.`, fixture_id: fixture.id, tool: call.name });
268
+ continue;
269
+ }
270
+ if (!fixture.allowed_tools.includes(call.name)) {
271
+ failures.push({ code: "unavailable_tool", message: `Tool '${call.name}' is not allowed for fixture '${fixture.id}'.`, fixture_id: fixture.id, tool: call.name });
272
+ }
273
+ if (fixture.expected_tool && call.name !== fixture.expected_tool) {
274
+ failures.push({ code: "wrong_tool_selected", message: `Expected '${fixture.expected_tool}' but observed '${call.name}'.`, fixture_id: fixture.id, tool: call.name });
275
+ }
276
+ validateRequiredArgs(tool, call.arguments, fixture.id, failures);
277
+ }
278
+ }
279
+ function validateRequiredArgs(tool, args, fixtureId, failures) {
280
+ const schema = tool.inputSchema;
281
+ if (!schema)
282
+ return;
283
+ const required = Array.isArray(schema.required) ? schema.required.filter((value) => typeof value === "string") : [];
284
+ if (!args || typeof args !== "object" || Array.isArray(args)) {
285
+ if (required.length > 0) {
286
+ failures.push({ code: "missing_required_arg", message: `Tool '${tool.name}' is missing required arguments: ${required.join(", ")}.`, fixture_id: fixtureId, tool: tool.name });
287
+ }
288
+ else if (schema.type === "object") {
289
+ failures.push({ code: "arg_schema_invalid", message: `Tool '${tool.name}' arguments must be an object.`, fixture_id: fixtureId, tool: tool.name });
290
+ }
291
+ return;
292
+ }
293
+ for (const name of required) {
294
+ if (!Object.prototype.hasOwnProperty.call(args, name)) {
295
+ failures.push({ code: "missing_required_arg", message: `Tool '${tool.name}' is missing required argument '${name}'.`, fixture_id: fixtureId, tool: tool.name });
296
+ }
297
+ }
298
+ validatePropertyTypes(tool, args, schema, fixtureId, failures);
299
+ }
300
+ function validatePropertyTypes(tool, args, schema, fixtureId, failures) {
301
+ if (!schema.properties || typeof schema.properties !== "object" || Array.isArray(schema.properties))
302
+ return;
303
+ for (const [name, rawProperty] of Object.entries(schema.properties)) {
304
+ if (!Object.prototype.hasOwnProperty.call(args, name))
305
+ continue;
306
+ if (!rawProperty || typeof rawProperty !== "object" || Array.isArray(rawProperty))
307
+ continue;
308
+ const expectedType = rawProperty.type;
309
+ if (typeof expectedType !== "string" || isJsonSchemaType(args[name], expectedType))
310
+ continue;
311
+ failures.push({ code: "arg_schema_invalid", message: `Tool '${tool.name}' argument '${name}' must be ${expectedType}.`, fixture_id: fixtureId, tool: tool.name });
312
+ }
313
+ }
314
+ function isJsonSchemaType(value, expectedType) {
315
+ switch (expectedType) {
316
+ case "array":
317
+ return Array.isArray(value);
318
+ case "object":
319
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
320
+ case "integer":
321
+ return Number.isInteger(value);
322
+ case "number":
323
+ return typeof value === "number";
324
+ case "string":
325
+ return typeof value === "string";
326
+ case "boolean":
327
+ return typeof value === "boolean";
328
+ case "null":
329
+ return value === null;
330
+ default:
331
+ return true;
332
+ }
333
+ }
334
+ //# sourceMappingURL=lockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/capabilities/lockfile.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ describe('omx agents', () => {
34
34
  const userAgentsDir = join(home, '.codex', 'agents');
35
35
  await mkdir(projectAgentsDir, { recursive: true });
36
36
  await mkdir(userAgentsDir, { recursive: true });
37
- await writeFile(join(projectAgentsDir, 'planner.toml'), 'name = "planner"\ndescription = "Project planner"\nmodel = "gpt-5.5"\ndeveloper_instructions = """plan"""\n');
37
+ await writeFile(join(projectAgentsDir, 'planner.toml'), 'name = "planner"\ndescription = "Project planner"\nmodel = "gpt-5.6-sol"\ndeveloper_instructions = """plan"""\n');
38
38
  await writeFile(join(userAgentsDir, 'reviewer.toml'), 'name = "reviewer"\ndescription = "User reviewer"\ndeveloper_instructions = """review"""\n');
39
39
  const result = runOmx(wd, ['agents', 'list'], {
40
40
  HOME: home,
@@ -44,7 +44,7 @@ describe('omx agents', () => {
44
44
  return;
45
45
  assert.equal(result.status, 0, result.stderr || result.stdout);
46
46
  assert.match(result.stdout, /scope\s+name\s+model\s+description/i);
47
- assert.match(result.stdout, /project\s+planner\s+gpt-5\.5\s+Project planner/);
47
+ assert.match(result.stdout, /project\s+planner\s+gpt-5\.6-sol\s+Project planner/);
48
48
  assert.match(result.stdout, /user\s+reviewer\s+-\s+User reviewer/);
49
49
  }
50
50
  finally {
@@ -69,7 +69,7 @@ describe('omx agents', () => {
69
69
  assert.match(content, /^name = "my-helper"$/m);
70
70
  assert.match(content, /^description = "TODO: describe this agent's purpose"$/m);
71
71
  assert.match(content, /^developer_instructions = """$/m);
72
- assert.match(content, /^# model = "gpt-5\.5"$/m);
72
+ assert.match(content, /^# model = "gpt-5\.6-sol"$/m);
73
73
  assert.match(content, /^# model_reasoning_effort = "medium"$/m);
74
74
  }
75
75
  finally {
@@ -86,7 +86,7 @@ describe('omx agents', () => {
86
86
  const agentPath = join(projectAgentsDir, 'editor-test.toml');
87
87
  await writeFile(agentPath, 'name = "editor-test"\ndescription = "Before edit"\ndeveloper_instructions = """before"""\n');
88
88
  const editorScript = join(wd, 'editor.sh');
89
- await writeFile(editorScript, '#!/usr/bin/env bash\nprintf \'\\nmodel = "gpt-5.5"\\n\' >> "$1"\n');
89
+ await writeFile(editorScript, '#!/usr/bin/env bash\nprintf \'\\nmodel = "gpt-5.6-sol"\\n\' >> "$1"\n');
90
90
  await chmod(editorScript, 0o755);
91
91
  const editResult = runOmx(wd, ['agents', 'edit', 'editor-test', '--scope', 'project'], {
92
92
  HOME: home,
@@ -96,7 +96,7 @@ describe('omx agents', () => {
96
96
  if (shouldSkipForSpawnPermissions(editResult.error))
97
97
  return;
98
98
  assert.equal(editResult.status, 0, editResult.stderr || editResult.stdout);
99
- assert.match(await readFile(agentPath, 'utf-8'), /^model = "gpt-5\.5"$/m);
99
+ assert.match(await readFile(agentPath, 'utf-8'), /^model = "gpt-5\.6-sol"$/m);
100
100
  const removeResult = runOmx(wd, ['agents', 'remove', 'editor-test', '--scope', 'project', '--force'], {
101
101
  HOME: home,
102
102
  CODEX_HOME: join(home, '.codex'),
@@ -1 +1 @@
1
- {"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/agents.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/agents.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=capabilities.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/capabilities.test.ts"],"names":[],"mappings":""}