oh-my-codex 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +17 -27
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-codex-version.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-codex-version.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-codex-version.test.js +99 -0
- package/dist/cli/__tests__/setup-codex-version.test.js.map +1 -0
- package/dist/cli/__tests__/setup-refresh.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-refresh.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-refresh.test.js +166 -0
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -0
- package/dist/cli/__tests__/setup-scope.test.js +7 -4
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +5 -2
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/uninstall.test.js +53 -0
- package/dist/cli/__tests__/uninstall.test.js.map +1 -1
- package/dist/cli/setup.d.ts +2 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +335 -175
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +199 -128
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +55 -0
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/generator.d.ts +4 -1
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +154 -111
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +26 -4
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +76 -0
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js +4 -3
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +10 -3
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +92 -62
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/tmux-session.d.ts +4 -3
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +15 -9
- package/dist/team/tmux-session.js.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/__tests__/emulator.test.d.ts +0 -2
- package/dist/hooks/__tests__/emulator.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/emulator.test.js +0 -53
- package/dist/hooks/__tests__/emulator.test.js.map +0 -1
- package/dist/hooks/emulator.d.ts +0 -44
- package/dist/hooks/emulator.d.ts.map +0 -1
- package/dist/hooks/emulator.js +0 -105
- package/dist/hooks/emulator.js.map +0 -1
|
@@ -15,14 +15,23 @@ describe('config generator', () => {
|
|
|
15
15
|
const notifyIdx = toml.indexOf('notify =');
|
|
16
16
|
const reasoningIdx = toml.indexOf('model_reasoning_effort =');
|
|
17
17
|
const devInstrIdx = toml.indexOf('developer_instructions =');
|
|
18
|
+
const modelIdx = toml.indexOf('model = "gpt-5.4"');
|
|
19
|
+
const contextIdx = toml.indexOf('model_context_window = 1000000');
|
|
20
|
+
const compactIdx = toml.indexOf('model_auto_compact_token_limit = 900000');
|
|
18
21
|
const featuresIdx = toml.indexOf('[features]');
|
|
19
22
|
assert.ok(notifyIdx >= 0, 'notify not found');
|
|
20
23
|
assert.ok(reasoningIdx >= 0, 'model_reasoning_effort not found');
|
|
21
24
|
assert.ok(devInstrIdx >= 0, 'developer_instructions not found');
|
|
25
|
+
assert.ok(modelIdx >= 0, 'model not found');
|
|
26
|
+
assert.ok(contextIdx >= 0, 'model_context_window not found');
|
|
27
|
+
assert.ok(compactIdx >= 0, 'model_auto_compact_token_limit not found');
|
|
22
28
|
assert.ok(featuresIdx >= 0, '[features] not found');
|
|
23
29
|
assert.ok(notifyIdx < featuresIdx, 'notify must come before [features]');
|
|
24
30
|
assert.ok(reasoningIdx < featuresIdx, 'model_reasoning_effort must come before [features]');
|
|
25
31
|
assert.ok(devInstrIdx < featuresIdx, 'developer_instructions must come before [features]');
|
|
32
|
+
assert.ok(modelIdx < featuresIdx, 'model must come before [features]');
|
|
33
|
+
assert.ok(contextIdx < featuresIdx, 'model_context_window must come before [features]');
|
|
34
|
+
assert.ok(compactIdx < featuresIdx, 'model_auto_compact_token_limit must come before [features]');
|
|
26
35
|
}
|
|
27
36
|
finally {
|
|
28
37
|
await rm(wd, { recursive: true, force: true });
|
|
@@ -40,6 +49,37 @@ describe('config generator', () => {
|
|
|
40
49
|
await rm(wd, { recursive: true, force: true });
|
|
41
50
|
}
|
|
42
51
|
});
|
|
52
|
+
it('seeds gpt-5.4 model and context defaults for fresh configs', async () => {
|
|
53
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-config-gen-'));
|
|
54
|
+
try {
|
|
55
|
+
const configPath = join(wd, 'config.toml');
|
|
56
|
+
await mergeConfig(configPath, wd);
|
|
57
|
+
const toml = await readFile(configPath, 'utf-8');
|
|
58
|
+
assert.match(toml, /^model = "gpt-5\.4"$/m);
|
|
59
|
+
assert.match(toml, /^model_context_window = 1000000$/m);
|
|
60
|
+
assert.match(toml, /^model_auto_compact_token_limit = 900000$/m);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
await rm(wd, { recursive: true, force: true });
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
it('seeds default model and context settings on fresh config', async () => {
|
|
67
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-config-gen-'));
|
|
68
|
+
try {
|
|
69
|
+
const configPath = join(wd, 'config.toml');
|
|
70
|
+
await mergeConfig(configPath, wd);
|
|
71
|
+
const toml = await readFile(configPath, 'utf-8');
|
|
72
|
+
assert.match(toml, /^model = "gpt-5\.4"$/m);
|
|
73
|
+
assert.match(toml, /^model_context_window = 1000000$/m);
|
|
74
|
+
assert.match(toml, /^model_auto_compact_token_limit = 900000$/m);
|
|
75
|
+
const modelIdx = toml.indexOf('model = "gpt-5.4"');
|
|
76
|
+
const featuresIdx = toml.indexOf('[features]');
|
|
77
|
+
assert.ok(modelIdx >= 0 && modelIdx < featuresIdx, 'seeded model must come before [features]');
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
await rm(wd, { recursive: true, force: true });
|
|
81
|
+
}
|
|
82
|
+
});
|
|
43
83
|
it('writes model_reasoning_effort and developer_instructions', async () => {
|
|
44
84
|
const wd = await mkdtemp(join(tmpdir(), 'omx-config-gen-'));
|
|
45
85
|
try {
|
|
@@ -103,6 +143,21 @@ describe('config generator', () => {
|
|
|
103
143
|
await rm(wd, { recursive: true, force: true });
|
|
104
144
|
}
|
|
105
145
|
});
|
|
146
|
+
it('does not seed 1M context keys for non-gpt-5.4 models', async () => {
|
|
147
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-config-gen-'));
|
|
148
|
+
try {
|
|
149
|
+
const configPath = join(wd, 'config.toml');
|
|
150
|
+
await writeFile(configPath, 'model = \"o3\"\n');
|
|
151
|
+
await mergeConfig(configPath, wd);
|
|
152
|
+
const toml = await readFile(configPath, 'utf-8');
|
|
153
|
+
assert.match(toml, /^model = "o3"$/m);
|
|
154
|
+
assert.doesNotMatch(toml, /^model_context_window = 1000000$/m);
|
|
155
|
+
assert.doesNotMatch(toml, /^model_auto_compact_token_limit = 900000$/m);
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
await rm(wd, { recursive: true, force: true });
|
|
159
|
+
}
|
|
160
|
+
});
|
|
106
161
|
it('preserves existing user top-level config', async () => {
|
|
107
162
|
const wd = await mkdtemp(join(tmpdir(), 'omx-config-gen-'));
|
|
108
163
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-notify.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/generator-notify.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator-notify.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/generator-notify.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,11 +11,13 @@
|
|
|
11
11
|
*/
|
|
12
12
|
interface MergeOptions {
|
|
13
13
|
agentsConfigDir?: string;
|
|
14
|
+
modelOverride?: string;
|
|
14
15
|
verbose?: boolean;
|
|
15
16
|
}
|
|
17
|
+
export declare function getRootModelName(config: string): string | undefined;
|
|
16
18
|
/**
|
|
17
19
|
* Remove any existing OMX-owned top-level keys so we can re-insert them
|
|
18
|
-
* cleanly.
|
|
20
|
+
* cleanly. Also removes the comment line that precedes them.
|
|
19
21
|
*/
|
|
20
22
|
export declare function stripOmxTopLevelKeys(config: string): string;
|
|
21
23
|
/**
|
|
@@ -37,6 +39,7 @@ export declare function stripExistingOmxBlocks(config: string): {
|
|
|
37
39
|
* 3. … user sections …
|
|
38
40
|
* 4. OMX [table] sections (mcp_servers, tui)
|
|
39
41
|
*/
|
|
42
|
+
export declare function buildMergedConfig(existingConfig: string, pkgRoot: string, options?: MergeOptions): string;
|
|
40
43
|
export declare function mergeConfig(configPath: string, pkgRoot: string, options?: MergeOptions): Promise<void>;
|
|
41
44
|
export {};
|
|
42
45
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/config/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,UAAU,YAAY;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/config/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,UAAU,YAAY;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAyBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AAsFD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAoED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA+C3D;AA4ED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAuCA;AAwGD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,MAAM,CA0BR;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
package/dist/config/generator.js
CHANGED
|
@@ -9,55 +9,95 @@
|
|
|
9
9
|
* 2. [features] flags
|
|
10
10
|
* 3. [table] sections (mcp_servers, tui)
|
|
11
11
|
*/
|
|
12
|
-
import { readFile, writeFile } from
|
|
13
|
-
import { existsSync } from
|
|
14
|
-
import { join } from
|
|
15
|
-
import { AGENT_DEFINITIONS } from
|
|
16
|
-
import { omxAgentsConfigDir } from
|
|
12
|
+
import { readFile, writeFile } from "fs/promises";
|
|
13
|
+
import { existsSync } from "fs";
|
|
14
|
+
import { join } from "path";
|
|
15
|
+
import { AGENT_DEFINITIONS } from "../agents/definitions.js";
|
|
16
|
+
import { omxAgentsConfigDir } from "../utils/paths.js";
|
|
17
17
|
function escapeTomlString(value) {
|
|
18
|
-
return value.replace(/\\/g,
|
|
18
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
19
19
|
}
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
21
21
|
// Top-level OMX keys (must live before any [table] header)
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
23
|
/** Keys we own at the TOML root level. Used for upsert + strip. */
|
|
24
24
|
const OMX_TOP_LEVEL_KEYS = [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
"notify",
|
|
26
|
+
"model_reasoning_effort",
|
|
27
|
+
"developer_instructions",
|
|
28
28
|
];
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const DEFAULT_SETUP_MODEL = "gpt-5.4";
|
|
30
|
+
const DEFAULT_SETUP_MODEL_CONTEXT_WINDOW = 1000000;
|
|
31
|
+
const DEFAULT_SETUP_MODEL_AUTO_COMPACT_TOKEN_LIMIT = 900000;
|
|
32
|
+
function unwrapTomlString(value) {
|
|
33
|
+
return value?.match(/^"(.*)"$/)?.[1];
|
|
34
|
+
}
|
|
35
|
+
export function getRootModelName(config) {
|
|
36
|
+
return unwrapTomlString(parseRootKeyValues(config).get("model"));
|
|
37
|
+
}
|
|
38
|
+
function parseRootKeyValues(config) {
|
|
39
|
+
const values = new Map();
|
|
40
|
+
const lines = config.split(/\r?\n/);
|
|
41
|
+
for (const line of lines) {
|
|
42
|
+
if (/^\s*\[/.test(line))
|
|
43
|
+
break;
|
|
44
|
+
const match = line.match(/^\s*([A-Za-z0-9_-]+)\s*=\s*(.+?)\s*$/);
|
|
45
|
+
if (!match)
|
|
46
|
+
continue;
|
|
47
|
+
values.set(match[1], match[2]);
|
|
48
|
+
}
|
|
49
|
+
return values;
|
|
50
|
+
}
|
|
51
|
+
function getOmxTopLevelLines(pkgRoot, existingConfig = "", modelOverride) {
|
|
52
|
+
const notifyHookPath = join(pkgRoot, "scripts", "notify-hook.js");
|
|
31
53
|
const escapedPath = escapeTomlString(notifyHookPath);
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
const rootValues = parseRootKeyValues(existingConfig);
|
|
55
|
+
const lines = [
|
|
56
|
+
"# oh-my-codex top-level settings (must be before any [table])",
|
|
34
57
|
`notify = ["node", "${escapedPath}"]`,
|
|
35
58
|
'model_reasoning_effort = "high"',
|
|
36
59
|
`developer_instructions = "You have oh-my-codex installed. Use /prompts:architect, /prompts:executor, /prompts:planner for specialized agent roles. Workflow skills via $name: $ralph, $autopilot, $plan. AGENTS.md is your orchestration brain."`,
|
|
37
60
|
];
|
|
61
|
+
const existingModel = rootValues.get("model");
|
|
62
|
+
const existingContextWindow = rootValues.get("model_context_window");
|
|
63
|
+
const existingAutoCompact = rootValues.get("model_auto_compact_token_limit");
|
|
64
|
+
const selectedModel = modelOverride ?? unwrapTomlString(existingModel) ?? DEFAULT_SETUP_MODEL;
|
|
65
|
+
if (modelOverride || !existingModel) {
|
|
66
|
+
lines.push(`model = "${selectedModel}"`);
|
|
67
|
+
}
|
|
68
|
+
if (selectedModel === DEFAULT_SETUP_MODEL &&
|
|
69
|
+
!existingContextWindow &&
|
|
70
|
+
!existingAutoCompact) {
|
|
71
|
+
lines.push(`model_context_window = ${DEFAULT_SETUP_MODEL_CONTEXT_WINDOW}`);
|
|
72
|
+
lines.push(`model_auto_compact_token_limit = ${DEFAULT_SETUP_MODEL_AUTO_COMPACT_TOKEN_LIMIT}`);
|
|
73
|
+
}
|
|
74
|
+
return lines;
|
|
38
75
|
}
|
|
39
|
-
|
|
40
|
-
* Remove any existing OMX-owned top-level keys so we can re-insert them
|
|
41
|
-
* cleanly. Also removes the comment line that precedes them.
|
|
42
|
-
*/
|
|
43
|
-
export function stripOmxTopLevelKeys(config) {
|
|
76
|
+
function stripRootLevelKeys(config, keys) {
|
|
44
77
|
let lines = config.split(/\r?\n/);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
78
|
+
if (keys.some((key) => OMX_TOP_LEVEL_KEYS.includes(key))) {
|
|
79
|
+
lines = lines.filter((l) => l.trim() !==
|
|
80
|
+
"# oh-my-codex top-level settings (must be before any [table])");
|
|
81
|
+
}
|
|
49
82
|
const firstTable = lines.findIndex((l) => /^\s*\[/.test(l));
|
|
50
83
|
const boundary = firstTable >= 0 ? firstTable : lines.length;
|
|
51
84
|
const result = [];
|
|
52
85
|
for (let i = 0; i < lines.length; i++) {
|
|
53
86
|
if (i < boundary) {
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
87
|
+
const isManagedKey = keys.some((key) => new RegExp(`^\\s*${key}\\s*=`).test(lines[i]));
|
|
88
|
+
if (isManagedKey)
|
|
56
89
|
continue;
|
|
57
90
|
}
|
|
58
91
|
result.push(lines[i]);
|
|
59
92
|
}
|
|
60
|
-
return result.join(
|
|
93
|
+
return result.join("\n");
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Remove any existing OMX-owned top-level keys so we can re-insert them
|
|
97
|
+
* cleanly. Also removes the comment line that precedes them.
|
|
98
|
+
*/
|
|
99
|
+
export function stripOmxTopLevelKeys(config) {
|
|
100
|
+
return stripRootLevelKeys(config, OMX_TOP_LEVEL_KEYS);
|
|
61
101
|
}
|
|
62
102
|
// ---------------------------------------------------------------------------
|
|
63
103
|
// [features] upsert
|
|
@@ -68,11 +108,11 @@ function upsertFeatureFlags(config) {
|
|
|
68
108
|
if (featuresStart < 0) {
|
|
69
109
|
const base = config.trimEnd();
|
|
70
110
|
const featureBlock = [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
].join(
|
|
111
|
+
"[features]",
|
|
112
|
+
"multi_agent = true",
|
|
113
|
+
"child_agents_md = true",
|
|
114
|
+
"",
|
|
115
|
+
].join("\n");
|
|
76
116
|
if (base.length === 0) {
|
|
77
117
|
return featureBlock;
|
|
78
118
|
}
|
|
@@ -103,19 +143,19 @@ function upsertFeatureFlags(config) {
|
|
|
103
143
|
}
|
|
104
144
|
}
|
|
105
145
|
if (multiAgentIdx >= 0) {
|
|
106
|
-
lines[multiAgentIdx] =
|
|
146
|
+
lines[multiAgentIdx] = "multi_agent = true";
|
|
107
147
|
}
|
|
108
148
|
else {
|
|
109
|
-
lines.splice(sectionEnd, 0,
|
|
149
|
+
lines.splice(sectionEnd, 0, "multi_agent = true");
|
|
110
150
|
sectionEnd += 1;
|
|
111
151
|
}
|
|
112
152
|
if (childAgentsIdx >= 0) {
|
|
113
|
-
lines[childAgentsIdx] =
|
|
153
|
+
lines[childAgentsIdx] = "child_agents_md = true";
|
|
114
154
|
}
|
|
115
155
|
else {
|
|
116
|
-
lines.splice(sectionEnd, 0,
|
|
156
|
+
lines.splice(sectionEnd, 0, "child_agents_md = true");
|
|
117
157
|
}
|
|
118
|
-
return lines.join(
|
|
158
|
+
return lines.join("\n");
|
|
119
159
|
}
|
|
120
160
|
/**
|
|
121
161
|
* Remove OMX-owned feature flags from the [features] section.
|
|
@@ -133,7 +173,7 @@ export function stripOmxFeatureFlags(config) {
|
|
|
133
173
|
break;
|
|
134
174
|
}
|
|
135
175
|
}
|
|
136
|
-
const omxFlags = [
|
|
176
|
+
const omxFlags = ["multi_agent", "child_agents_md", "collab"];
|
|
137
177
|
const filtered = [];
|
|
138
178
|
for (let i = 0; i < lines.length; i++) {
|
|
139
179
|
if (i > featuresStart && i < sectionEnd) {
|
|
@@ -154,11 +194,11 @@ export function stripOmxFeatureFlags(config) {
|
|
|
154
194
|
}
|
|
155
195
|
}
|
|
156
196
|
const sectionContent = filtered.slice(newFeaturesStart + 1, newSectionEnd);
|
|
157
|
-
if (sectionContent.every((l) => l.trim() ===
|
|
197
|
+
if (sectionContent.every((l) => l.trim() === "")) {
|
|
158
198
|
filtered.splice(newFeaturesStart, newSectionEnd - newFeaturesStart);
|
|
159
199
|
}
|
|
160
200
|
}
|
|
161
|
-
return filtered.join(
|
|
201
|
+
return filtered.join("\n");
|
|
162
202
|
}
|
|
163
203
|
// ---------------------------------------------------------------------------
|
|
164
204
|
// Orphaned OMX table sections (no marker block)
|
|
@@ -199,7 +239,7 @@ function stripOrphanedOmxSections(config) {
|
|
|
199
239
|
// Remove preceding OMX comment lines and blank lines
|
|
200
240
|
while (result.length > 0) {
|
|
201
241
|
const last = result[result.length - 1];
|
|
202
|
-
if (last.trim() ===
|
|
242
|
+
if (last.trim() === "" || /^#\s*(OMX|oh-my-codex)/i.test(last)) {
|
|
203
243
|
result.pop();
|
|
204
244
|
}
|
|
205
245
|
else {
|
|
@@ -217,25 +257,25 @@ function stripOrphanedOmxSections(config) {
|
|
|
217
257
|
result.push(line);
|
|
218
258
|
i++;
|
|
219
259
|
}
|
|
220
|
-
return result.join(
|
|
260
|
+
return result.join("\n");
|
|
221
261
|
}
|
|
222
262
|
// ---------------------------------------------------------------------------
|
|
223
263
|
// OMX [table] sections block (appended at end of file)
|
|
224
264
|
// ---------------------------------------------------------------------------
|
|
225
265
|
export function stripExistingOmxBlocks(config) {
|
|
226
|
-
const marker =
|
|
227
|
-
const endMarker =
|
|
266
|
+
const marker = "oh-my-codex (OMX) Configuration";
|
|
267
|
+
const endMarker = "# End oh-my-codex";
|
|
228
268
|
let cleaned = config;
|
|
229
269
|
let removed = 0;
|
|
230
270
|
while (true) {
|
|
231
271
|
const markerIdx = cleaned.indexOf(marker);
|
|
232
272
|
if (markerIdx < 0)
|
|
233
273
|
break;
|
|
234
|
-
let blockStart = cleaned.lastIndexOf(
|
|
274
|
+
let blockStart = cleaned.lastIndexOf("\n", markerIdx);
|
|
235
275
|
blockStart = blockStart >= 0 ? blockStart + 1 : 0;
|
|
236
276
|
const previousLineEnd = blockStart - 1;
|
|
237
277
|
if (previousLineEnd >= 0) {
|
|
238
|
-
const previousLineStart = cleaned.lastIndexOf(
|
|
278
|
+
const previousLineStart = cleaned.lastIndexOf("\n", previousLineEnd - 1);
|
|
239
279
|
const previousLine = cleaned.slice(previousLineStart + 1, previousLineEnd);
|
|
240
280
|
if (/^# =+$/.test(previousLine.trim())) {
|
|
241
281
|
blockStart = previousLineStart >= 0 ? previousLineStart + 1 : 0;
|
|
@@ -244,12 +284,12 @@ export function stripExistingOmxBlocks(config) {
|
|
|
244
284
|
let blockEnd = cleaned.length;
|
|
245
285
|
const endIdx = cleaned.indexOf(endMarker, markerIdx);
|
|
246
286
|
if (endIdx >= 0) {
|
|
247
|
-
const endLineBreak = cleaned.indexOf(
|
|
287
|
+
const endLineBreak = cleaned.indexOf("\n", endIdx);
|
|
248
288
|
blockEnd = endLineBreak >= 0 ? endLineBreak + 1 : cleaned.length;
|
|
249
289
|
}
|
|
250
290
|
const before = cleaned.slice(0, blockStart).trimEnd();
|
|
251
291
|
const after = cleaned.slice(blockEnd).trimStart();
|
|
252
|
-
cleaned = [before, after].filter(Boolean).join(
|
|
292
|
+
cleaned = [before, after].filter(Boolean).join("\n\n");
|
|
253
293
|
removed += 1;
|
|
254
294
|
}
|
|
255
295
|
return { cleaned, removed };
|
|
@@ -260,14 +300,14 @@ export function stripExistingOmxBlocks(config) {
|
|
|
260
300
|
*/
|
|
261
301
|
function getAgentEntries(agentsConfigDir) {
|
|
262
302
|
const entries = [
|
|
263
|
-
|
|
264
|
-
|
|
303
|
+
"",
|
|
304
|
+
"# OMX Native Agent Roles (Codex multi-agent)",
|
|
265
305
|
];
|
|
266
306
|
for (const [name, agent] of Object.entries(AGENT_DEFINITIONS)) {
|
|
267
307
|
// TOML table headers with special chars need quoting
|
|
268
|
-
const tableKey = name.includes(
|
|
308
|
+
const tableKey = name.includes("-") ? `agents."${name}"` : `agents.${name}`;
|
|
269
309
|
const configFile = escapeTomlString(join(agentsConfigDir, `${name}.toml`));
|
|
270
|
-
entries.push(
|
|
310
|
+
entries.push("");
|
|
271
311
|
entries.push(`[${tableKey}]`);
|
|
272
312
|
entries.push(`description = "${agent.description}"`);
|
|
273
313
|
entries.push(`config_file = "${configFile}"`);
|
|
@@ -279,62 +319,62 @@ function getAgentEntries(agentsConfigDir) {
|
|
|
279
319
|
* Contains ONLY [table] sections — no bare keys.
|
|
280
320
|
*/
|
|
281
321
|
function getOmxTablesBlock(pkgRoot, agentsConfigDir) {
|
|
282
|
-
const stateServerPath = escapeTomlString(join(pkgRoot,
|
|
283
|
-
const memoryServerPath = escapeTomlString(join(pkgRoot,
|
|
284
|
-
const codeIntelServerPath = escapeTomlString(join(pkgRoot,
|
|
285
|
-
const traceServerPath = escapeTomlString(join(pkgRoot,
|
|
286
|
-
const teamServerPath = escapeTomlString(join(pkgRoot,
|
|
322
|
+
const stateServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "state-server.js"));
|
|
323
|
+
const memoryServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "memory-server.js"));
|
|
324
|
+
const codeIntelServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "code-intel-server.js"));
|
|
325
|
+
const traceServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "trace-server.js"));
|
|
326
|
+
const teamServerPath = escapeTomlString(join(pkgRoot, "dist", "mcp", "team-server.js"));
|
|
287
327
|
return [
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
328
|
+
"",
|
|
329
|
+
"# ============================================================",
|
|
330
|
+
"# oh-my-codex (OMX) Configuration",
|
|
331
|
+
"# Managed by omx setup - manual edits preserved on next setup",
|
|
332
|
+
"# ============================================================",
|
|
333
|
+
"",
|
|
334
|
+
"# OMX State Management MCP Server",
|
|
335
|
+
"[mcp_servers.omx_state]",
|
|
296
336
|
'command = "node"',
|
|
297
337
|
`args = ["${stateServerPath}"]`,
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
338
|
+
"enabled = true",
|
|
339
|
+
"startup_timeout_sec = 5",
|
|
340
|
+
"",
|
|
341
|
+
"# OMX Project Memory MCP Server",
|
|
342
|
+
"[mcp_servers.omx_memory]",
|
|
303
343
|
'command = "node"',
|
|
304
344
|
`args = ["${memoryServerPath}"]`,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
345
|
+
"enabled = true",
|
|
346
|
+
"startup_timeout_sec = 5",
|
|
347
|
+
"",
|
|
348
|
+
"# OMX Code Intelligence MCP Server (LSP diagnostics, AST search)",
|
|
349
|
+
"[mcp_servers.omx_code_intel]",
|
|
310
350
|
'command = "node"',
|
|
311
351
|
`args = ["${codeIntelServerPath}"]`,
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
352
|
+
"enabled = true",
|
|
353
|
+
"startup_timeout_sec = 10",
|
|
354
|
+
"",
|
|
355
|
+
"# OMX Trace MCP Server (agent flow timeline & statistics)",
|
|
356
|
+
"[mcp_servers.omx_trace]",
|
|
317
357
|
'command = "node"',
|
|
318
358
|
`args = ["${traceServerPath}"]`,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
359
|
+
"enabled = true",
|
|
360
|
+
"startup_timeout_sec = 5",
|
|
361
|
+
"",
|
|
362
|
+
"# OMX Team MCP Server (team job lifecycle: start, status, wait, cleanup)",
|
|
363
|
+
"[mcp_servers.omx_team_run]",
|
|
324
364
|
'command = "node"',
|
|
325
365
|
`args = ["${teamServerPath}"]`,
|
|
326
|
-
|
|
327
|
-
|
|
366
|
+
"enabled = true",
|
|
367
|
+
"startup_timeout_sec = 5",
|
|
328
368
|
...getAgentEntries(agentsConfigDir),
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
369
|
+
"",
|
|
370
|
+
"# OMX TUI StatusLine (Codex CLI v0.101.0+)",
|
|
371
|
+
"[tui]",
|
|
332
372
|
'status_line = ["model-with-reasoning", "git-branch", "context-remaining", "total-input-tokens", "total-output-tokens", "five-hour-limit"]',
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
].join(
|
|
373
|
+
"",
|
|
374
|
+
"# ============================================================",
|
|
375
|
+
"# End oh-my-codex",
|
|
376
|
+
"",
|
|
377
|
+
].join("\n");
|
|
338
378
|
}
|
|
339
379
|
// ---------------------------------------------------------------------------
|
|
340
380
|
// Public API
|
|
@@ -349,31 +389,34 @@ function getOmxTablesBlock(pkgRoot, agentsConfigDir) {
|
|
|
349
389
|
* 3. … user sections …
|
|
350
390
|
* 4. OMX [table] sections (mcp_servers, tui)
|
|
351
391
|
*/
|
|
352
|
-
export
|
|
353
|
-
let existing =
|
|
354
|
-
if (
|
|
355
|
-
existing = await readFile(configPath, 'utf-8');
|
|
356
|
-
}
|
|
357
|
-
// Strip old OMX table-section block
|
|
358
|
-
if (existing.includes('oh-my-codex (OMX) Configuration')) {
|
|
392
|
+
export function buildMergedConfig(existingConfig, pkgRoot, options = {}) {
|
|
393
|
+
let existing = existingConfig;
|
|
394
|
+
if (existing.includes("oh-my-codex (OMX) Configuration")) {
|
|
359
395
|
const stripped = stripExistingOmxBlocks(existing);
|
|
360
396
|
existing = stripped.cleaned;
|
|
361
|
-
if (options.verbose && stripped.removed > 0) {
|
|
362
|
-
console.log(' Updating existing OMX config block.');
|
|
363
|
-
}
|
|
364
397
|
}
|
|
365
|
-
// Strip any stale OMX top-level keys (from previous runs or wrong positions)
|
|
366
398
|
existing = stripOmxTopLevelKeys(existing);
|
|
367
|
-
|
|
368
|
-
|
|
399
|
+
if (options.modelOverride) {
|
|
400
|
+
existing = stripRootLevelKeys(existing, ["model"]);
|
|
401
|
+
}
|
|
369
402
|
existing = stripOrphanedOmxSections(existing);
|
|
370
|
-
// Upsert [features] flags
|
|
371
403
|
existing = upsertFeatureFlags(existing);
|
|
372
|
-
|
|
373
|
-
// top-level keys → existing content (with [features]) → OMX tables block
|
|
374
|
-
const topLines = getOmxTopLevelLines(pkgRoot);
|
|
404
|
+
const topLines = getOmxTopLevelLines(pkgRoot, existing, options.modelOverride);
|
|
375
405
|
const tablesBlock = getOmxTablesBlock(pkgRoot, options.agentsConfigDir || omxAgentsConfigDir());
|
|
376
|
-
|
|
406
|
+
return topLines.join("\n") + "\n\n" + existing.trimEnd() + "\n" + tablesBlock;
|
|
407
|
+
}
|
|
408
|
+
export async function mergeConfig(configPath, pkgRoot, options = {}) {
|
|
409
|
+
let existing = "";
|
|
410
|
+
if (existsSync(configPath)) {
|
|
411
|
+
existing = await readFile(configPath, "utf-8");
|
|
412
|
+
}
|
|
413
|
+
if (existing.includes("oh-my-codex (OMX) Configuration")) {
|
|
414
|
+
const stripped = stripExistingOmxBlocks(existing);
|
|
415
|
+
if (options.verbose && stripped.removed > 0) {
|
|
416
|
+
console.log(" Updating existing OMX config block.");
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
const finalConfig = buildMergedConfig(existing, pkgRoot, options);
|
|
377
420
|
await writeFile(configPath, finalConfig);
|
|
378
421
|
if (options.verbose) {
|
|
379
422
|
console.log(` Written to ${configPath}`);
|