oh-my-codex 0.21.7 → 0.21.9

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 (99) hide show
  1. package/Cargo.lock +8 -8
  2. package/Cargo.toml +1 -1
  3. package/README.md +28 -0
  4. package/dist/cli/__tests__/doctor-state-root-binding.test.js +17 -2
  5. package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -1
  6. package/dist/cli/__tests__/native-assets.test.js +1 -1
  7. package/dist/cli/__tests__/native-assets.test.js.map +1 -1
  8. package/dist/cli/__tests__/session-export.test.d.ts +2 -0
  9. package/dist/cli/__tests__/session-export.test.d.ts.map +1 -0
  10. package/dist/cli/__tests__/session-export.test.js +166 -0
  11. package/dist/cli/__tests__/session-export.test.js.map +1 -0
  12. package/dist/cli/__tests__/session-usage.test.d.ts +2 -0
  13. package/dist/cli/__tests__/session-usage.test.d.ts.map +1 -0
  14. package/dist/cli/__tests__/session-usage.test.js +88 -0
  15. package/dist/cli/__tests__/session-usage.test.js.map +1 -0
  16. package/dist/cli/doctor.js +1 -1
  17. package/dist/cli/doctor.js.map +1 -1
  18. package/dist/cli/index.d.ts +1 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +1 -0
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/session-export.d.ts +9 -0
  23. package/dist/cli/session-export.d.ts.map +1 -0
  24. package/dist/cli/session-export.js +76 -0
  25. package/dist/cli/session-export.js.map +1 -0
  26. package/dist/cli/session-search.d.ts.map +1 -1
  27. package/dist/cli/session-search.js +14 -0
  28. package/dist/cli/session-search.js.map +1 -1
  29. package/dist/cli/session-usage.d.ts +8 -0
  30. package/dist/cli/session-usage.d.ts.map +1 -0
  31. package/dist/cli/session-usage.js +100 -0
  32. package/dist/cli/session-usage.js.map +1 -0
  33. package/dist/evals/astra-defaults/__tests__/collector.test.d.ts +2 -0
  34. package/dist/evals/astra-defaults/__tests__/collector.test.d.ts.map +1 -0
  35. package/dist/evals/astra-defaults/__tests__/collector.test.js +139 -0
  36. package/dist/evals/astra-defaults/__tests__/collector.test.js.map +1 -0
  37. package/dist/evals/astra-defaults/collector.d.ts +31 -0
  38. package/dist/evals/astra-defaults/collector.d.ts.map +1 -0
  39. package/dist/evals/astra-defaults/collector.js +215 -0
  40. package/dist/evals/astra-defaults/collector.js.map +1 -0
  41. package/dist/native-assets/archive.js +2 -2
  42. package/dist/native-assets/archive.js.map +1 -1
  43. package/dist/runtime/__tests__/bridge.test.js +79 -0
  44. package/dist/runtime/__tests__/bridge.test.js.map +1 -1
  45. package/dist/runtime/bridge.d.ts +1 -0
  46. package/dist/runtime/bridge.d.ts.map +1 -1
  47. package/dist/runtime/bridge.js +17 -4
  48. package/dist/runtime/bridge.js.map +1 -1
  49. package/dist/scripts/__tests__/codex-native-hook.test.js +129 -0
  50. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  51. package/dist/scripts/__tests__/ralplan-advisory-hook.test.js +39 -0
  52. package/dist/scripts/__tests__/ralplan-advisory-hook.test.js.map +1 -1
  53. package/dist/scripts/__tests__/verify-native-release-assets.test.js +1 -1
  54. package/dist/scripts/__tests__/verify-native-release-assets.test.js.map +1 -1
  55. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  56. package/dist/scripts/codex-native-hook.js +37 -4
  57. package/dist/scripts/codex-native-hook.js.map +1 -1
  58. package/dist/scripts/eval/collect-astra-defaults.d.ts +2 -0
  59. package/dist/scripts/eval/collect-astra-defaults.d.ts.map +1 -0
  60. package/dist/scripts/eval/collect-astra-defaults.js +89 -0
  61. package/dist/scripts/eval/collect-astra-defaults.js.map +1 -0
  62. package/dist/session-history/__tests__/export.test.d.ts +2 -0
  63. package/dist/session-history/__tests__/export.test.d.ts.map +1 -0
  64. package/dist/session-history/__tests__/export.test.js +225 -0
  65. package/dist/session-history/__tests__/export.test.js.map +1 -0
  66. package/dist/session-history/__tests__/usage.test.d.ts +2 -0
  67. package/dist/session-history/__tests__/usage.test.d.ts.map +1 -0
  68. package/dist/session-history/__tests__/usage.test.js +216 -0
  69. package/dist/session-history/__tests__/usage.test.js.map +1 -0
  70. package/dist/session-history/export.d.ts +31 -0
  71. package/dist/session-history/export.d.ts.map +1 -0
  72. package/dist/session-history/export.js +225 -0
  73. package/dist/session-history/export.js.map +1 -0
  74. package/dist/session-history/search.d.ts +1 -0
  75. package/dist/session-history/search.d.ts.map +1 -1
  76. package/dist/session-history/search.js +6 -2
  77. package/dist/session-history/search.js.map +1 -1
  78. package/dist/session-history/usage.d.ts +44 -0
  79. package/dist/session-history/usage.d.ts.map +1 -0
  80. package/dist/session-history/usage.js +211 -0
  81. package/dist/session-history/usage.js.map +1 -0
  82. package/dist/team/__tests__/state.test.js +33 -0
  83. package/dist/team/__tests__/state.test.js.map +1 -1
  84. package/dist/team/__tests__/worker-bootstrap.test.js +100 -1
  85. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  86. package/dist/team/state.d.ts.map +1 -1
  87. package/dist/team/state.js +3 -2
  88. package/dist/team/state.js.map +1 -1
  89. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  90. package/dist/team/worker-bootstrap.js +74 -18
  91. package/dist/team/worker-bootstrap.js.map +1 -1
  92. package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -1
  93. package/package.json +3 -3
  94. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  95. package/src/scripts/__tests__/codex-native-hook.test.ts +182 -0
  96. package/src/scripts/__tests__/ralplan-advisory-hook.test.ts +40 -0
  97. package/src/scripts/__tests__/verify-native-release-assets.test.ts +3 -3
  98. package/src/scripts/codex-native-hook.ts +37 -3
  99. package/src/scripts/eval/collect-astra-defaults.ts +140 -0
@@ -0,0 +1,88 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { mkdir, mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
4
+ import { dirname, join } from 'node:path';
5
+ import { tmpdir } from 'node:os';
6
+ import { spawnSync } from 'node:child_process';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { parseSessionUsageArgs } from '../session-usage.js';
9
+ const omx = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'cli', 'omx.js');
10
+ async function fixture(t) {
11
+ const root = await mkdtemp(join(tmpdir(), 'omx-usage-cli-'));
12
+ t.after(() => rm(root, { recursive: true, force: true }));
13
+ const home = join(root, 'codex');
14
+ await mkdir(join(home, 'sessions'), { recursive: true });
15
+ const transcript = join(home, 'sessions', 'rollout-test.jsonl');
16
+ await writeFile(transcript, [
17
+ { type: 'session_meta', payload: { id: 'session-cli', cwd: root, timestamp: '2026-10-01T00:00:00Z' } },
18
+ { type: 'event_msg', timestamp: '2026-10-08T00:00:00Z', payload: { type: 'token_count', info: { total_token_usage: { input_tokens: 100, output_tokens: 25, total_tokens: 125, cached_input_tokens: 50, reasoning_output_tokens: 10 } } } },
19
+ ].map((row) => JSON.stringify(row)).join('\n'));
20
+ return { root, home, transcript };
21
+ }
22
+ function run(root, home, args) {
23
+ return spawnSync(process.execPath, [omx, 'session', 'usage', ...args], {
24
+ cwd: root, encoding: 'utf-8',
25
+ env: { ...process.env, CODEX_HOME: home, OMX_AUTO_UPDATE: '0', OMX_ROOT: '', OMX_STATE_ROOT: '' },
26
+ });
27
+ }
28
+ describe('session usage CLI', () => {
29
+ it('parses both value forms and all report options', () => {
30
+ assert.deepEqual(parseSessionUsageArgs(['--since=7d', '--project', 'current', '--session=abc', '--limit', '4', '--sort=tokens', '--codex-home', '/tmp/codex', '--json']), {
31
+ options: { since: '7d', project: 'current', session: 'abc', limit: 4, sort: 'tokens', codexHomeDir: '/tmp/codex' }, json: true,
32
+ });
33
+ assert.deepEqual(parseSessionUsageArgs([]), { options: {}, json: false });
34
+ });
35
+ for (const args of [['--limit', '3oops'], ['--limit=1.2'], ['--limit=0'], ['--limit=501'], ['--sort=money'], ['--since'], ['--session='], ['--project', '--json'], ['--nope'], ['unexpected']]) {
36
+ it(`rejects ${args.join(' ')}`, () => assert.throws(() => parseSessionUsageArgs(args)));
37
+ }
38
+ it('emits JSON through the top-level CLI without modifying source files or setting up OMX', async (t) => {
39
+ const { root, home, transcript } = await fixture(t);
40
+ const original = await readFile(transcript, 'utf-8');
41
+ const result = run(root, home, ['--codex-home', home, '--json']);
42
+ assert.equal(result.status, 0, result.stderr);
43
+ const report = JSON.parse(result.stdout);
44
+ assert.equal(report.schema_version, 1);
45
+ assert.equal(report.sessions[0].session_id, 'session-cli');
46
+ assert.equal(report.totals.total_tokens.known, 125);
47
+ assert.equal(report.totals.cached_input_tokens.known, 50);
48
+ assert.equal(await readFile(transcript, 'utf-8'), original);
49
+ assert.deepEqual(await readdir(root), ['codex']);
50
+ });
51
+ it('renders cumulative counters, coverage, subset semantics and project labels', async (t) => {
52
+ const { root, home } = await fixture(t);
53
+ const result = run(root, home, []);
54
+ assert.equal(result.status, 0, result.stderr);
55
+ assert.match(result.stdout, /cumulative counters/);
56
+ assert.match(result.stdout, /subsets of input and output/);
57
+ assert.match(result.stdout, /total_tokens: 125 \(1 known, 0 unknown sessions\)/);
58
+ assert.match(result.stdout, /session: session-cli/);
59
+ assert.equal(result.stdout.includes(root), false);
60
+ });
61
+ it('discovers a generated runtime home and honors the explicit home override', async (t) => {
62
+ const { root, home, transcript } = await fixture(t);
63
+ const runtime = join(root, '.omx', 'runtime', 'codex-home', 'omx-test', 'sessions');
64
+ await mkdir(runtime, { recursive: true });
65
+ await writeFile(join(runtime, 'rollout-runtime.jsonl'), (await readFile(transcript, 'utf-8')).replace('session-cli', 'session-runtime'));
66
+ const discovered = run(root, home, ['--json']);
67
+ assert.equal(discovered.status, 0, discovered.stderr);
68
+ assert.equal(JSON.parse(discovered.stdout).matched_sessions, 2);
69
+ const explicit = run(root, home, ['--codex-home', home, '--json']);
70
+ assert.equal(explicit.status, 0, explicit.stderr);
71
+ assert.equal(JSON.parse(explicit.stdout).matched_sessions, 1);
72
+ });
73
+ it('shows help without opening the requested home', async (t) => {
74
+ const { root, home } = await fixture(t);
75
+ const result = run(root, home, ['--codex-home', '/does/not/exist', '--help']);
76
+ assert.equal(result.status, 0, result.stderr);
77
+ assert.match(result.stdout, /Usage: omx session usage/);
78
+ assert.match(result.stdout, /not token consumption within a billing period/);
79
+ });
80
+ it('returns a CLI error for an invalid date without emitting a report', async (t) => {
81
+ const { root, home } = await fixture(t);
82
+ const result = run(root, home, ['--since=invalid', '--json']);
83
+ assert.notEqual(result.status, 0);
84
+ assert.match(result.stderr, /Invalid --since/);
85
+ assert.equal(result.stdout, '');
86
+ });
87
+ });
88
+ //# sourceMappingURL=session-usage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-usage.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/session-usage.test.ts"],"names":[],"mappings":"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"}
@@ -384,7 +384,7 @@ export function checkStateRootSessionBinding(snapshot, env = process.env) {
384
384
  return {
385
385
  name: "State root/session binding",
386
386
  status: "warn",
387
- message: "src=cwd-default ptr=absent; runtime binding unavailable: inherited CODEX_SESSION_ID has no OMX session pointer; no runtime authority verified",
387
+ message: "src=cwd-default ptr=absent; Codex session detected but may not be OMX-managed — non-OMX workflows do not require OMX binding. No OMX runtime authority verified; this condition alone does not indicate installation damage. For OMX features: run 'omx' to start an OMX-managed session.",
388
388
  };
389
389
  }
390
390
  let status = "fail";