ocmm 0.5.3 → 0.6.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.
- package/.codex/agents/dw-builder.toml +3 -3
- package/.codex/agents/dw-clarifier.toml +2 -2
- package/.codex/agents/dw-code-search.toml +2 -2
- package/.codex/agents/dw-coding.toml +2 -2
- package/.codex/agents/dw-complex.toml +2 -2
- package/.codex/agents/dw-creative.toml +2 -2
- package/.codex/agents/dw-deep.toml +3 -3
- package/.codex/agents/dw-doc-search.toml +2 -2
- package/.codex/agents/dw-documenting.toml +2 -2
- package/.codex/agents/dw-explore.toml +2 -2
- package/.codex/agents/dw-frontend.toml +2 -2
- package/.codex/agents/dw-hard-reasoning.toml +2 -2
- package/.codex/agents/dw-media-reader.toml +2 -2
- package/.codex/agents/dw-normal-task.toml +2 -2
- package/.codex/agents/dw-oracle-2nd.toml +8 -0
- package/.codex/agents/dw-oracle.toml +3 -3
- package/.codex/agents/dw-orchestrator.toml +2 -2
- package/.codex/agents/dw-plan-critic.toml +2 -2
- package/.codex/agents/dw-planner.toml +3 -3
- package/.codex/agents/dw-quick.toml +2 -2
- package/.codex/agents/dw-research.toml +2 -2
- package/.codex/agents/dw-reviewer.toml +2 -2
- package/README.md +193 -46
- package/dist/cli/shim.d.ts +4 -2
- package/dist/cli/shim.js +26 -11
- package/dist/cli/shim.js.map +1 -1
- package/dist/codex/plugin-generator.js +121 -96
- package/dist/codex/plugin-generator.js.map +1 -1
- package/dist/config/load.d.ts +32 -23
- package/dist/config/load.js +384 -90
- package/dist/config/load.js.map +1 -1
- package/dist/config/merge.d.ts +18 -0
- package/dist/config/merge.js +46 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/normalize.d.ts +1 -0
- package/dist/config/normalize.js +22 -16
- package/dist/config/normalize.js.map +1 -1
- package/dist/config/profile-aliases.d.ts +12 -0
- package/dist/config/profile-aliases.js +127 -0
- package/dist/config/profile-aliases.js.map +1 -0
- package/dist/config/profile-types.d.ts +13 -0
- package/dist/config/profile-types.js +2 -0
- package/dist/config/profile-types.js.map +1 -0
- package/dist/config/review-agent-migration.d.ts +89 -0
- package/dist/config/review-agent-migration.js +237 -0
- package/dist/config/review-agent-migration.js.map +1 -0
- package/dist/config/schema.d.ts +1364 -219
- package/dist/config/schema.js +169 -36
- package/dist/config/schema.js.map +1 -1
- package/dist/config/tolerant-parse.d.ts +41 -0
- package/dist/config/tolerant-parse.js +164 -0
- package/dist/config/tolerant-parse.js.map +1 -0
- package/dist/data/agents.d.ts +2 -1
- package/dist/data/agents.js +25 -10
- package/dist/data/agents.js.map +1 -1
- package/dist/data/categories.js +2 -1
- package/dist/data/categories.js.map +1 -1
- package/dist/hooks/chat-params.d.ts +2 -0
- package/dist/hooks/chat-params.js +182 -16
- package/dist/hooks/chat-params.js.map +1 -1
- package/dist/hooks/config.d.ts +14 -2
- package/dist/hooks/config.js +538 -60
- package/dist/hooks/config.js.map +1 -1
- package/dist/hooks/event.d.ts +3 -11
- package/dist/hooks/event.js +5 -9
- package/dist/hooks/event.js.map +1 -1
- package/dist/index.js +21 -14
- package/dist/index.js.map +1 -1
- package/dist/intent/model-family.d.ts +2 -0
- package/dist/intent/model-family.js +11 -0
- package/dist/intent/model-family.js.map +1 -1
- package/dist/intent/prompt-loader.d.ts +3 -3
- package/dist/intent/prompt-loader.js +3 -3
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.js +43 -28
- package/dist/permissions/index.js.map +1 -1
- package/dist/review-agents/expand.d.ts +36 -0
- package/dist/review-agents/expand.js +157 -0
- package/dist/review-agents/expand.js.map +1 -0
- package/dist/review-agents/names.d.ts +16 -0
- package/dist/review-agents/names.js +55 -0
- package/dist/review-agents/names.js.map +1 -0
- package/dist/routing/effective-route.d.ts +19 -0
- package/dist/routing/effective-route.js +133 -0
- package/dist/routing/effective-route.js.map +1 -0
- package/dist/routing/model-upgrades.d.ts +5 -0
- package/dist/routing/model-upgrades.js +59 -11
- package/dist/routing/model-upgrades.js.map +1 -1
- package/dist/routing/resolver.d.ts +8 -1
- package/dist/routing/resolver.js +29 -9
- package/dist/routing/resolver.js.map +1 -1
- package/dist/routing/route-registry.d.ts +13 -0
- package/dist/routing/route-registry.js +84 -0
- package/dist/routing/route-registry.js.map +1 -0
- package/dist/routing/variant-translator.js +7 -4
- package/dist/routing/variant-translator.js.map +1 -1
- package/dist/runtime-fallback/dispatcher.d.ts +1 -0
- package/dist/runtime-fallback/dispatcher.js +7 -5
- package/dist/runtime-fallback/dispatcher.js.map +1 -1
- package/dist/runtime-fallback/error-classifier.d.ts +3 -1
- package/dist/runtime-fallback/error-classifier.js +135 -1
- package/dist/runtime-fallback/error-classifier.js.map +1 -1
- package/dist/runtime-fallback/event-handler-generic-fallback.d.ts +26 -0
- package/dist/runtime-fallback/event-handler-generic-fallback.js +54 -0
- package/dist/runtime-fallback/event-handler-generic-fallback.js.map +1 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.d.ts +9 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.js +48 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.js.map +1 -0
- package/dist/runtime-fallback/event-handler-support.d.ts +39 -0
- package/dist/runtime-fallback/event-handler-support.js +194 -0
- package/dist/runtime-fallback/event-handler-support.js.map +1 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.d.ts +874 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.js +150 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.js.map +1 -0
- package/dist/runtime-fallback/event-handler.d.ts +13 -1
- package/dist/runtime-fallback/event-handler.js +334 -192
- package/dist/runtime-fallback/event-handler.js.map +1 -1
- package/dist/runtime-fallback/fallback-state.d.ts +8 -5
- package/dist/runtime-fallback/fallback-state.js +9 -6
- package/dist/runtime-fallback/fallback-state.js.map +1 -1
- package/dist/runtime-fallback/index.d.ts +21 -1
- package/dist/runtime-fallback/index.js +7 -1
- package/dist/runtime-fallback/index.js.map +1 -1
- package/dist/runtime-fallback/interruption-output-adapter.d.ts +7 -0
- package/dist/runtime-fallback/interruption-output-adapter.js +91 -0
- package/dist/runtime-fallback/interruption-output-adapter.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.d.ts +105 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.js +116 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-controller.d.ts +167 -0
- package/dist/runtime-fallback/subagent-429-controller.js +334 -0
- package/dist/runtime-fallback/subagent-429-controller.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-policy.d.ts +13 -0
- package/dist/runtime-fallback/subagent-429-policy.js +37 -0
- package/dist/runtime-fallback/subagent-429-policy.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-session.d.ts +48 -0
- package/dist/runtime-fallback/subagent-429-session.js +316 -0
- package/dist/runtime-fallback/subagent-429-session.js.map +1 -0
- package/dist/shared/opencode-events.d.ts +22 -0
- package/dist/shared/opencode-events.js +75 -0
- package/dist/shared/opencode-events.js.map +1 -0
- package/dist/shared/types.d.ts +12 -1
- package/package.json +1 -1
- package/plugins/deepwork/.codex-plugin/plugin.json +1 -1
- package/plugins/deepwork/README.md +3 -2
- package/plugins/deepwork/agents/dw-builder.toml +3 -3
- package/plugins/deepwork/agents/dw-clarifier.toml +2 -2
- package/plugins/deepwork/agents/dw-code-search.toml +2 -2
- package/plugins/deepwork/agents/dw-coding.toml +2 -2
- package/plugins/deepwork/agents/dw-complex.toml +2 -2
- package/plugins/deepwork/agents/dw-creative.toml +2 -2
- package/plugins/deepwork/agents/dw-deep.toml +3 -3
- package/plugins/deepwork/agents/dw-doc-search.toml +2 -2
- package/plugins/deepwork/agents/dw-documenting.toml +2 -2
- package/plugins/deepwork/agents/dw-explore.toml +2 -2
- package/plugins/deepwork/agents/dw-frontend.toml +2 -2
- package/plugins/deepwork/agents/dw-hard-reasoning.toml +2 -2
- package/plugins/deepwork/agents/dw-media-reader.toml +2 -2
- package/plugins/deepwork/agents/dw-normal-task.toml +2 -2
- package/plugins/deepwork/agents/dw-oracle-2nd.toml +8 -0
- package/plugins/deepwork/agents/dw-oracle.toml +3 -3
- package/plugins/deepwork/agents/dw-orchestrator.toml +2 -2
- package/plugins/deepwork/agents/dw-plan-critic.toml +2 -2
- package/plugins/deepwork/agents/dw-planner.toml +3 -3
- package/plugins/deepwork/agents/dw-quick.toml +2 -2
- package/plugins/deepwork/agents/dw-research.toml +2 -2
- package/plugins/deepwork/agents/dw-reviewer.toml +2 -2
- package/plugins/deepwork/dist/cli/shim.d.ts +4 -2
- package/plugins/deepwork/dist/cli/shim.js +26 -11
- package/plugins/deepwork/dist/cli/shim.js.map +1 -1
- package/plugins/deepwork/dist/shared/opencode-events.d.ts +22 -0
- package/plugins/deepwork/dist/shared/opencode-events.js +75 -0
- package/plugins/deepwork/dist/shared/opencode-events.js.map +1 -0
- package/plugins/deepwork/dist/shared/types.d.ts +12 -1
- package/plugins/deepwork/package.json +1 -1
- package/plugins/deepwork/skills/deepwork/SKILL.md +74 -58
- package/plugins/deepwork/skills/deepwork-requesting-code-review/SKILL.md +53 -27
- package/plugins/deepwork/skills/deepwork-requesting-code-review/code-reviewer.md +11 -7
- package/plugins/deepwork/skills/deepwork-subagent-driven-development/SKILL.md +34 -21
- package/plugins/deepwork/skills/deepwork-subagent-driven-development/implementer-prompt.md +10 -3
- package/prompts/codex/agents/clarifier.md +4 -0
- package/prompts/codex/agents/orchestrator.md +12 -2
- package/prompts/codex/agents/plan-critic.md +4 -0
- package/prompts/codex/agents/planner.md +15 -10
- package/prompts/codex/agents/reviewer.md +8 -2
- package/prompts/codex/deepwork/gpt-5.6.md +20 -37
- package/prompts/omo/agents/clarifier.md +4 -0
- package/prompts/omo/agents/orchestrator.md +11 -0
- package/prompts/omo/agents/plan-critic.md +4 -0
- package/prompts/omo/agents/planner.md +15 -3
- package/prompts/omo/agents/reviewer.md +8 -2
- package/prompts/omo/deepwork/gpt-5.6.md +20 -37
- package/prompts/v1/agents/clarifier.md +4 -0
- package/prompts/v1/agents/orchestrator.md +12 -2
- package/prompts/v1/agents/plan-critic.md +4 -0
- package/prompts/v1/agents/planner.md +15 -10
- package/prompts/v1/agents/reviewer.md +8 -2
- package/prompts/v1/deepwork/gpt-5.6.md +20 -37
- package/skills/v1/requesting-code-review/SKILL.md +53 -27
- package/skills/v1/requesting-code-review/code-reviewer.md +11 -7
- package/skills/v1/subagent-driven-development/SKILL.md +34 -21
- package/skills/v1/subagent-driven-development/implementer-prompt.md +10 -3
package/dist/config/load.js
CHANGED
|
@@ -2,15 +2,34 @@
|
|
|
2
2
|
* Config file loader.
|
|
3
3
|
*
|
|
4
4
|
* Reads ocmm.json / ocmm.jsonc from project + user locations, parses (with
|
|
5
|
-
* minimal JSONC support
|
|
5
|
+
* minimal JSONC support - strip comments & trailing commas), validates with
|
|
6
6
|
* Zod, then deep-merges (project wins). Missing files are silently tolerated.
|
|
7
|
+
*
|
|
8
|
+
* Before schema validation, every base layer's `agents` map and every
|
|
9
|
+
* inline/directory profile's `agents` map is canonicalized through the
|
|
10
|
+
* review-agent migration phase (`./review-agent-migration.ts`). Legacy
|
|
11
|
+
* `agents.oracle-high` migrates to `agents.oracle-2nd` with a source-aware
|
|
12
|
+
* deprecation warning; the `oracle-second` alias migrates silently. Different
|
|
13
|
+
* spellings targeting `oracle-2nd` across active layers are conflicts: the pure
|
|
14
|
+
* preparation APIs throw `ReviewConfigConflictError`, and `loadConfig()`
|
|
15
|
+
* catches that and returns defaults.
|
|
7
16
|
*/
|
|
8
17
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
9
18
|
import { homedir } from "node:os";
|
|
10
19
|
import { join, resolve } from "node:path";
|
|
11
|
-
import {
|
|
20
|
+
import { z } from "zod";
|
|
21
|
+
import { AgentEntrySchema, defaultConfig, OcmmConfigSchema, ProfileEntrySchema } from "./schema.js";
|
|
22
|
+
import { tolerantParse, tolerantParseLayers } from "./tolerant-parse.js";
|
|
12
23
|
import { log } from "../shared/logger.js";
|
|
24
|
+
import { deepMerge, isPlainObject } from "./merge.js";
|
|
25
|
+
import { materializeQualifiedAgentAliases } from "./profile-aliases.js";
|
|
26
|
+
import { assertSelectedReviewProfileCompatible, prepareConfigLayers, prepareReviewProfile, ReviewConfigConflictError, } from "./review-agent-migration.js";
|
|
27
|
+
export { deepMerge } from "./merge.js";
|
|
13
28
|
const FILE_BASENAMES = ["ocmm.jsonc", "ocmm.json"];
|
|
29
|
+
const rawDirectoryProfileValues = new WeakMap();
|
|
30
|
+
const ProfileSelectionSchema = z.object({
|
|
31
|
+
activeProfile: z.string().optional(),
|
|
32
|
+
});
|
|
14
33
|
function userConfigDir(host) {
|
|
15
34
|
if (host === "codex")
|
|
16
35
|
return process.env.CODEX_HOME ?? join(homedir(), ".codex");
|
|
@@ -82,22 +101,7 @@ function locateFile(dir) {
|
|
|
82
101
|
}
|
|
83
102
|
return null;
|
|
84
103
|
}
|
|
85
|
-
function
|
|
86
|
-
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Load profile entries from a directory of `<name>.jsonc` / `<name>.json` files.
|
|
90
|
-
*
|
|
91
|
-
* Each file is parsed (JSONC) and returned under its basename (extension
|
|
92
|
-
* stripped). Parse failures are warned and skipped. `profiles` and
|
|
93
|
-
* `activeProfile` keys are defensively stripped from each entry to prevent
|
|
94
|
-
* nested-profile leakage (ProfileEntrySchema forbids them, but this function
|
|
95
|
-
* does not run schema validation — the merge step would otherwise leak them).
|
|
96
|
-
*
|
|
97
|
-
* `.jsonc` is preferred when both `<name>.jsonc` and `<name>.json` exist.
|
|
98
|
-
* Returns `{}` if the directory does not exist or is empty.
|
|
99
|
-
*/
|
|
100
|
-
export function loadProfilesFromDir(dir) {
|
|
104
|
+
export function loadProfileEntriesFromDir(dir) {
|
|
101
105
|
let entries;
|
|
102
106
|
try {
|
|
103
107
|
entries = readdirSync(dir);
|
|
@@ -115,7 +119,7 @@ export function loadProfilesFromDir(dir) {
|
|
|
115
119
|
// If we already have a .jsonc version, skip .json.
|
|
116
120
|
if (ext === "json" && seen.has(baseName + ":jsonc"))
|
|
117
121
|
continue;
|
|
118
|
-
const path = join(dir, name);
|
|
122
|
+
const path = resolve(join(dir, name));
|
|
119
123
|
const raw = readFileSync(path, "utf8");
|
|
120
124
|
let parsed;
|
|
121
125
|
try {
|
|
@@ -143,114 +147,352 @@ export function loadProfilesFromDir(dir) {
|
|
|
143
147
|
if (stripped) {
|
|
144
148
|
log.warn(`profile ${path} contained profiles/activeProfile; stripped`);
|
|
145
149
|
}
|
|
146
|
-
out[baseName] = cleaned;
|
|
150
|
+
out[baseName] = { source: path, value: cleaned };
|
|
147
151
|
seen.add(baseName + ":" + ext);
|
|
148
152
|
}
|
|
149
153
|
return out;
|
|
150
154
|
}
|
|
151
155
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* Default array policy: REPLACE (override wins) for predictable override
|
|
155
|
-
* semantics. Model fallback and feature-disable arrays are UNIONED de-duped
|
|
156
|
-
* instead — these accumulate across user+project layers so global/project
|
|
157
|
-
* gates compose predictably.
|
|
158
|
-
*
|
|
159
|
-
* Pass `{ profileOverlay: true }` to force ALL arrays to replace (use when
|
|
160
|
-
* overlaying a profile that should fully own a field rather than accumulate).
|
|
156
|
+
* Backward-compatible wrapper returning the profile value only.
|
|
161
157
|
*/
|
|
162
|
-
export function
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return override;
|
|
168
|
-
if (parentKey && ACCUMULATING_ARRAY_KEYS.has(parentKey)) {
|
|
169
|
-
const set = new Set([...base, ...override].map((x) => String(x)));
|
|
170
|
-
return Array.from(set);
|
|
171
|
-
}
|
|
172
|
-
return override;
|
|
158
|
+
export function loadProfilesFromDir(dir) {
|
|
159
|
+
const entries = loadProfileEntriesFromDir(dir);
|
|
160
|
+
const out = {};
|
|
161
|
+
for (const [name, entry] of Object.entries(entries)) {
|
|
162
|
+
out[name] = entry.value;
|
|
173
163
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
export function loadProfileDescriptorsFromDir(dir, source) {
|
|
167
|
+
let entries;
|
|
168
|
+
try {
|
|
169
|
+
entries = readdirSync(dir);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return new Map();
|
|
173
|
+
}
|
|
174
|
+
const grouped = new Map();
|
|
175
|
+
for (const fileName of entries) {
|
|
176
|
+
if (!fileName.endsWith(".jsonc") && !fileName.endsWith(".json"))
|
|
177
|
+
continue;
|
|
178
|
+
const baseName = fileName.replace(/\.(jsonc|json)$/, "");
|
|
179
|
+
const files = grouped.get(baseName) ?? {};
|
|
180
|
+
if (fileName.endsWith(".jsonc"))
|
|
181
|
+
files.jsonc = fileName;
|
|
182
|
+
else
|
|
183
|
+
files.json = fileName;
|
|
184
|
+
grouped.set(baseName, files);
|
|
185
|
+
}
|
|
186
|
+
const descriptors = new Map();
|
|
187
|
+
for (const [name, files] of [...grouped.entries()].sort(([left], [right]) => left.localeCompare(right))) {
|
|
188
|
+
const fileName = files.jsonc ?? files.json;
|
|
189
|
+
if (!fileName)
|
|
190
|
+
continue;
|
|
191
|
+
const path = resolve(join(dir, fileName));
|
|
192
|
+
const descriptor = { name, source, path };
|
|
193
|
+
let parsed;
|
|
194
|
+
try {
|
|
195
|
+
parsed = JSON.parse(stripJsoncCommentsAndTrailingCommas(readFileSync(path, "utf8")));
|
|
196
|
+
descriptor.value = parsed;
|
|
178
197
|
}
|
|
179
|
-
|
|
198
|
+
catch (err) {
|
|
199
|
+
descriptor.error = { kind: "parse", message: err.message };
|
|
200
|
+
descriptors.set(name, descriptor);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const prepared = prepareProfileDescriptorValue(name, path, parsed);
|
|
204
|
+
descriptor.value = prepared.value;
|
|
205
|
+
if (prepared.error)
|
|
206
|
+
descriptor.error = prepared.error;
|
|
207
|
+
else
|
|
208
|
+
rawDirectoryProfileValues.set(descriptor, parsed);
|
|
209
|
+
descriptors.set(name, descriptor);
|
|
180
210
|
}
|
|
181
|
-
return
|
|
211
|
+
return descriptors;
|
|
182
212
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
213
|
+
function prepareProfileDescriptorValue(name, source, value) {
|
|
214
|
+
const structuralError = profileDescriptorStructuralError(name, source, value);
|
|
215
|
+
if (structuralError)
|
|
216
|
+
return { value, error: structuralError };
|
|
217
|
+
let prepared;
|
|
218
|
+
try {
|
|
219
|
+
prepared = prepareReviewProfile({ name, source, value }, () => { });
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
return { value, error: { kind: "shape", message: err.message } };
|
|
223
|
+
}
|
|
224
|
+
return sanitizeProfileDescriptorLayers(name, source, selectedProfileLayers([prepared]));
|
|
225
|
+
}
|
|
226
|
+
function profileDescriptorStructuralError(name, source, value) {
|
|
227
|
+
if (!isPlainObject(value)) {
|
|
228
|
+
return { kind: "shape", message: `profile ${name} in ${source} is not a JSON object` };
|
|
229
|
+
}
|
|
230
|
+
if ("profiles" in value || "activeProfile" in value) {
|
|
231
|
+
return { kind: "shape", message: `profile ${name} in ${source} cannot contain profiles or activeProfile` };
|
|
232
|
+
}
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
function sanitizeProfileDescriptorLayers(name, source, layers) {
|
|
236
|
+
const result = tolerantParseLayers(ProfileEntrySchema, layers, mergeConfigLayers);
|
|
237
|
+
if (result.success)
|
|
238
|
+
return { value: mergeConfigLayers(result.layers) };
|
|
239
|
+
return {
|
|
240
|
+
value: mergeConfigLayers(layers),
|
|
241
|
+
error: { kind: "shape", message: `profile ${name} in ${source} failed schema validation` },
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function reviewWarn(message) {
|
|
245
|
+
log.warn(message);
|
|
246
|
+
}
|
|
247
|
+
function locateConfigLayers(opts = {}) {
|
|
193
248
|
const cwd = resolve(opts.cwd ?? process.cwd());
|
|
194
249
|
const host = opts.host ?? "opencode";
|
|
195
250
|
const sources = {};
|
|
196
251
|
const userPath = opts.includeUser === false ? null : locateFile(userConfigDir(host));
|
|
197
252
|
const projectPath = locateFile(projectConfigDir(cwd, host));
|
|
198
|
-
|
|
253
|
+
// Build the raw layer list. Apply stripProjectOnlyFields to project first.
|
|
254
|
+
const rawLayers = [];
|
|
199
255
|
if (userPath) {
|
|
200
256
|
const data = readJsoncFile(userPath);
|
|
201
257
|
if (data !== null) {
|
|
202
|
-
|
|
258
|
+
rawLayers.push({ source: userPath, value: data });
|
|
203
259
|
sources.user = userPath;
|
|
204
260
|
}
|
|
205
261
|
}
|
|
206
262
|
if (projectPath) {
|
|
207
263
|
const data = readJsoncFile(projectPath);
|
|
208
264
|
if (data !== null) {
|
|
209
|
-
|
|
265
|
+
rawLayers.push({ source: projectPath, value: stripProjectOnlyFields(data) });
|
|
210
266
|
sources.project = projectPath;
|
|
211
267
|
}
|
|
212
268
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
// OCMM_NO_PROFILE=1 disables profile loading entirely (overrides everything).
|
|
269
|
+
return { cwd, host, includeUser: opts.includeUser !== false, sources, rawLayers };
|
|
270
|
+
}
|
|
271
|
+
function selectActiveProfile(selection) {
|
|
217
272
|
const noProfile = process.env.OCMM_NO_PROFILE === "1" || process.env.OCMM_NO_PROFILE === "true";
|
|
218
273
|
const envProfile = noProfile ? undefined : (process.env.OCMM_PROFILE || undefined);
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
const activeProfile = typeof activeProfileRaw === "string" && activeProfileRaw.length > 0
|
|
274
|
+
const activeProfileRaw = noProfile ? undefined : (envProfile ?? selection.activeProfile);
|
|
275
|
+
return typeof activeProfileRaw === "string" && activeProfileRaw.length > 0
|
|
222
276
|
? activeProfileRaw
|
|
223
277
|
: undefined;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
278
|
+
}
|
|
279
|
+
function deriveActiveProfileFromRawLayers(rawLayers) {
|
|
280
|
+
let mergedRaw = {};
|
|
281
|
+
for (const layer of rawLayers) {
|
|
282
|
+
if (isPlainObject(layer.value)) {
|
|
283
|
+
mergedRaw = deepMerge(mergedRaw, layer.value);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return selectActiveProfile(mergedRaw);
|
|
287
|
+
}
|
|
288
|
+
export function loadConfig(opts = {}) {
|
|
289
|
+
const { cwd, host, sources, rawLayers } = locateConfigLayers(opts);
|
|
290
|
+
try {
|
|
291
|
+
const emittedReviewWarnings = new Set();
|
|
292
|
+
const warnReviewOnce = (message) => {
|
|
293
|
+
if (emittedReviewWarnings.has(message))
|
|
294
|
+
return;
|
|
295
|
+
emittedReviewWarnings.add(message);
|
|
296
|
+
reviewWarn(message);
|
|
297
|
+
};
|
|
298
|
+
const prepared = prepareConfigLayers(rawLayers, warnReviewOnce);
|
|
299
|
+
const baseLayers = prepared.layers.map((layer) => ({
|
|
300
|
+
value: cleanAgentEntries(layer.value),
|
|
301
|
+
}));
|
|
302
|
+
const profileSelection = tolerantParseLayers(ProfileSelectionSchema, baseLayers, mergeConfigLayers);
|
|
303
|
+
const selectedBaseLayers = profileSelection.success ? profileSelection.layers : baseLayers;
|
|
304
|
+
const selection = profileSelection.success ? profileSelection.data : {};
|
|
305
|
+
const activeProfile = selectActiveProfile(selection);
|
|
306
|
+
const userDirEntries = loadProfileEntriesFromDir(join(userConfigDir(host), "ocmm-profiles"));
|
|
307
|
+
const projectDirEntries = host === "opencode"
|
|
308
|
+
? loadProfileEntriesFromDir(join(projectConfigDir(cwd, host), "ocmm-profiles"))
|
|
309
|
+
: {};
|
|
310
|
+
let selectedContributions = [];
|
|
311
|
+
if (activeProfile) {
|
|
312
|
+
const projectDirWinner = projectDirEntries[activeProfile];
|
|
313
|
+
if (projectDirWinner) {
|
|
314
|
+
selectedContributions = [prepareReviewProfile({
|
|
315
|
+
name: activeProfile,
|
|
316
|
+
source: projectDirWinner.source,
|
|
317
|
+
value: projectDirWinner.value,
|
|
318
|
+
}, warnReviewOnce)];
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
const userDirWinner = userDirEntries[activeProfile];
|
|
322
|
+
if (userDirWinner) {
|
|
323
|
+
selectedContributions = [prepareReviewProfile({
|
|
324
|
+
name: activeProfile,
|
|
325
|
+
source: userDirWinner.source,
|
|
326
|
+
value: userDirWinner.value,
|
|
327
|
+
}, warnReviewOnce)];
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const activeSources = new Set(prepared.layers
|
|
331
|
+
.filter((_, index) => selectedBaseLayers[index]?.value !== undefined)
|
|
332
|
+
.map((layer) => layer.source));
|
|
333
|
+
selectedContributions = (prepared.inlineProfiles.get(activeProfile) ?? [])
|
|
334
|
+
.filter((profile) => activeSources.has(profile.source));
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
assertSelectedReviewProfileCompatible(prepared.baseOrigins, selectedContributions);
|
|
339
|
+
const profileLayers = selectedProfileLayers(selectedContributions);
|
|
340
|
+
if (activeProfile && profileLayers.length === 0) {
|
|
341
|
+
log.warn(`active profile "${activeProfile}" not found in profiles; ignored`);
|
|
342
|
+
}
|
|
343
|
+
const parsed = tolerantParseLayers(OcmmConfigSchema, [...selectedBaseLayers, ...profileLayers], mergeConfigLayers);
|
|
344
|
+
if (!parsed.success) {
|
|
345
|
+
log.warn(`ocmm config validation failed; using defaults. issues:`, parsed.issues.slice(0, 5));
|
|
346
|
+
return { config: defaultConfig(), sources, ...(activeProfile ? { activeProfile } : {}) };
|
|
347
|
+
}
|
|
348
|
+
return { config: parsed.data, sources, ...(activeProfile ? { activeProfile } : {}) };
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
if (err instanceof ReviewConfigConflictError) {
|
|
352
|
+
log.warn(`ocmm review-agent config conflict; using defaults: ${err.message}`);
|
|
353
|
+
// Re-derive activeProfile from the raw layers without re-running migration,
|
|
354
|
+
// so callers see what would have been selected.
|
|
355
|
+
const activeProfile = deriveActiveProfileFromRawLayers(rawLayers);
|
|
356
|
+
return { config: defaultConfig(), sources, ...(activeProfile ? { activeProfile } : {}) };
|
|
357
|
+
}
|
|
358
|
+
throw err;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
class PluginProfilePipelineError extends Error {
|
|
362
|
+
constructor(message) {
|
|
363
|
+
super(message);
|
|
364
|
+
this.name = "PluginProfilePipelineError";
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
export function loadOpenCodePluginConfig(options = {}) {
|
|
368
|
+
const located = locateConfigLayers({ ...options, host: "opencode" });
|
|
369
|
+
try {
|
|
370
|
+
return loadOpenCodePluginConfigStrict(located);
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
if (!(err instanceof PluginProfilePipelineError) && !(err instanceof ReviewConfigConflictError)) {
|
|
374
|
+
throw err;
|
|
375
|
+
}
|
|
376
|
+
const activeProfile = deriveActiveProfileFromRawLayers(located.rawLayers);
|
|
377
|
+
log.warn(`ocmm opencode plugin config validation failed; using defaults: ${err.message}`);
|
|
378
|
+
return { config: defaultConfig(), sources: located.sources, ...(activeProfile ? { activeProfile } : {}) };
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
function loadOpenCodePluginConfigStrict(located) {
|
|
382
|
+
const emittedReviewWarnings = new Set();
|
|
383
|
+
const warnReviewOnce = (message) => {
|
|
384
|
+
if (emittedReviewWarnings.has(message))
|
|
385
|
+
return;
|
|
386
|
+
emittedReviewWarnings.add(message);
|
|
387
|
+
reviewWarn(message);
|
|
235
388
|
};
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
//
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
389
|
+
const prepared = prepareConfigLayers(located.rawLayers, warnReviewOnce);
|
|
390
|
+
const baseLayers = prepared.layers.map((layer) => ({ value: layer.value }));
|
|
391
|
+
// Runtime loading is intentionally tolerant even though OcmmConfigSchema/schema.json are strict.
|
|
392
|
+
// Do not replace this with safeParse: one invalid field must be discarded without erasing valid
|
|
393
|
+
// siblings or lower layers. Only structural/semantic plugin-pipeline failures below are atomic.
|
|
394
|
+
const baseParsed = tolerantParseLayers(OcmmConfigSchema, baseLayers, mergeConfigLayers);
|
|
395
|
+
if (!baseParsed.success) {
|
|
396
|
+
throw new PluginProfilePipelineError("base config validation could not be recovered");
|
|
397
|
+
}
|
|
398
|
+
const descriptors = composeProfileDescriptors(inlineProfileDescriptorsFromPreparedProfiles(prepared.inlineProfiles), located.includeUser
|
|
399
|
+
? loadProfileDescriptorsFromDir(join(userConfigDir("opencode"), "ocmm-profiles"), "user-directory")
|
|
400
|
+
: new Map(), loadProfileDescriptorsFromDir(join(projectConfigDir(located.cwd, "opencode"), "ocmm-profiles"), "project-directory"));
|
|
401
|
+
const activeProfile = selectActiveProfile({ activeProfile: baseParsed.data.activeProfile });
|
|
402
|
+
let config = baseParsed.data;
|
|
403
|
+
if (activeProfile) {
|
|
404
|
+
const descriptor = descriptors.get(activeProfile);
|
|
405
|
+
if (!descriptor) {
|
|
406
|
+
log.warn(`active profile "${activeProfile}" not found in profiles; ignored`);
|
|
407
|
+
}
|
|
408
|
+
else if (descriptor.error) {
|
|
409
|
+
throw new PluginProfilePipelineError(`active profile "${activeProfile}" from ${profileDescriptorLocation(descriptor)} is invalid (${descriptor.error.kind}): ${descriptor.error.message}`);
|
|
410
|
+
}
|
|
411
|
+
else if (descriptor.value === undefined) {
|
|
412
|
+
throw new PluginProfilePipelineError(`active profile "${activeProfile}" from ${profileDescriptorLocation(descriptor)} has no materialized value`);
|
|
243
413
|
}
|
|
244
414
|
else {
|
|
245
|
-
|
|
415
|
+
const selectedContributions = selectedPluginProfileContributions(activeProfile, descriptor, prepared, warnReviewOnce);
|
|
416
|
+
assertSelectedReviewProfileCompatible(prepared.baseOrigins, selectedContributions);
|
|
417
|
+
const selectedProfile = tolerantParseLayers(ProfileEntrySchema, selectedProfileLayers(selectedContributions), mergeConfigLayers);
|
|
418
|
+
if (!selectedProfile.success) {
|
|
419
|
+
throw new PluginProfilePipelineError("selected profile validation could not be recovered");
|
|
420
|
+
}
|
|
421
|
+
const finalRaw = mergeConfigLayers([
|
|
422
|
+
{ value: baseParsed.data },
|
|
423
|
+
{ value: mergeConfigLayers(selectedProfile.layers), profileOverlay: true },
|
|
424
|
+
]);
|
|
425
|
+
const finalParsed = OcmmConfigSchema.safeParse(finalRaw);
|
|
426
|
+
if (!finalParsed.success) {
|
|
427
|
+
throw new PluginProfilePipelineError(`profiled config validation failed: ${formatZodIssues(finalParsed.error.issues)}`);
|
|
428
|
+
}
|
|
429
|
+
config = finalParsed.data;
|
|
246
430
|
}
|
|
247
431
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
432
|
+
let materialized;
|
|
433
|
+
try {
|
|
434
|
+
materialized = materializeQualifiedAgentAliases({
|
|
435
|
+
config,
|
|
436
|
+
baseAgents: baseParsed.data.agents ?? {},
|
|
437
|
+
profiles: descriptors,
|
|
438
|
+
});
|
|
252
439
|
}
|
|
253
|
-
|
|
440
|
+
catch (err) {
|
|
441
|
+
throw new PluginProfilePipelineError(`qualified alias materialization failed: ${err.message}`);
|
|
442
|
+
}
|
|
443
|
+
const materializedParsed = OcmmConfigSchema.safeParse(materialized);
|
|
444
|
+
if (!materializedParsed.success) {
|
|
445
|
+
throw new PluginProfilePipelineError(`materialized config validation failed: ${formatZodIssues(materializedParsed.error.issues)}`);
|
|
446
|
+
}
|
|
447
|
+
return { config: materializedParsed.data, sources: located.sources, ...(activeProfile ? { activeProfile } : {}) };
|
|
448
|
+
}
|
|
449
|
+
function composeProfileDescriptors(inlineDescriptors, userDescriptors, projectDescriptors) {
|
|
450
|
+
const out = new Map();
|
|
451
|
+
for (const descriptors of [inlineDescriptors, userDescriptors, projectDescriptors]) {
|
|
452
|
+
for (const [name, descriptor] of descriptors)
|
|
453
|
+
out.set(name, descriptor);
|
|
454
|
+
}
|
|
455
|
+
return out;
|
|
456
|
+
}
|
|
457
|
+
function inlineProfileDescriptorsFromPreparedProfiles(profiles) {
|
|
458
|
+
const descriptors = new Map();
|
|
459
|
+
for (const [name, contributions] of profiles) {
|
|
460
|
+
const layers = selectedProfileLayers(contributions);
|
|
461
|
+
const rawValue = mergeConfigLayers(layers);
|
|
462
|
+
const structuralError = profileDescriptorStructuralError(name, "inline profile", rawValue);
|
|
463
|
+
const prepared = structuralError
|
|
464
|
+
? { value: rawValue, error: structuralError }
|
|
465
|
+
: sanitizeProfileDescriptorLayers(name, "inline profile", layers);
|
|
466
|
+
const descriptor = { name, source: "inline", value: prepared.value };
|
|
467
|
+
if (prepared.error)
|
|
468
|
+
descriptor.error = prepared.error;
|
|
469
|
+
descriptors.set(name, descriptor);
|
|
470
|
+
}
|
|
471
|
+
return descriptors;
|
|
472
|
+
}
|
|
473
|
+
function selectedPluginProfileContributions(name, descriptor, prepared, warn) {
|
|
474
|
+
if (descriptor.source === "inline")
|
|
475
|
+
return prepared.inlineProfiles.get(name) ?? [];
|
|
476
|
+
if (rawDirectoryProfileValues.has(descriptor)) {
|
|
477
|
+
return [prepareReviewProfile({
|
|
478
|
+
name,
|
|
479
|
+
source: descriptor.path ?? descriptor.source,
|
|
480
|
+
value: rawDirectoryProfileValues.get(descriptor),
|
|
481
|
+
}, warn)];
|
|
482
|
+
}
|
|
483
|
+
return [prepareReviewProfile({ name, source: descriptor.path ?? descriptor.source, value: descriptor.value }, warn)];
|
|
484
|
+
}
|
|
485
|
+
function profileDescriptorLocation(descriptor) {
|
|
486
|
+
return descriptor.path ?? descriptor.source;
|
|
487
|
+
}
|
|
488
|
+
function formatZodIssues(issues) {
|
|
489
|
+
return issues
|
|
490
|
+
.slice(0, 5)
|
|
491
|
+
.map((issue) => {
|
|
492
|
+
const path = issue.path.length > 0 ? issue.path.map(String).join(".") : "<root>";
|
|
493
|
+
return `${path}: ${issue.message}`;
|
|
494
|
+
})
|
|
495
|
+
.join("; ");
|
|
254
496
|
}
|
|
255
497
|
function stripProjectOnlyFields(value) {
|
|
256
498
|
if (!isPlainObject(value))
|
|
@@ -261,4 +503,56 @@ function stripProjectOnlyFields(value) {
|
|
|
261
503
|
delete mcp.envAllowlist;
|
|
262
504
|
return { ...value, mcp };
|
|
263
505
|
}
|
|
506
|
+
function mergeConfigLayers(layers) {
|
|
507
|
+
let base = {};
|
|
508
|
+
let profile = {};
|
|
509
|
+
let hasProfile = false;
|
|
510
|
+
for (const layer of layers) {
|
|
511
|
+
if (layer.profileOverlay) {
|
|
512
|
+
profile = deepMerge(profile, layer.value, undefined, { profileOverlay: true });
|
|
513
|
+
hasProfile = true;
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
base = deepMerge(base, layer.value);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
return hasProfile ? deepMerge(base, profile, undefined, { profileOverlay: true }) : base;
|
|
520
|
+
}
|
|
521
|
+
function selectedProfileLayers(selectedProfiles) {
|
|
522
|
+
return selectedProfiles.map((profile) => ({
|
|
523
|
+
value: cleanAgentEntries(profile.value),
|
|
524
|
+
profileOverlay: true,
|
|
525
|
+
}));
|
|
526
|
+
}
|
|
527
|
+
function cleanAgentEntries(value) {
|
|
528
|
+
if (!isPlainObject(value))
|
|
529
|
+
return value;
|
|
530
|
+
const cleaned = { ...value };
|
|
531
|
+
cleanAgentMap(cleaned);
|
|
532
|
+
if (!isPlainObject(cleaned.profiles))
|
|
533
|
+
return cleaned;
|
|
534
|
+
const profiles = { ...cleaned.profiles };
|
|
535
|
+
for (const [name, profile] of Object.entries(profiles)) {
|
|
536
|
+
if (!isPlainObject(profile))
|
|
537
|
+
continue;
|
|
538
|
+
const profileCopy = { ...profile };
|
|
539
|
+
cleanAgentMap(profileCopy);
|
|
540
|
+
profiles[name] = profileCopy;
|
|
541
|
+
}
|
|
542
|
+
cleaned.profiles = profiles;
|
|
543
|
+
return cleaned;
|
|
544
|
+
}
|
|
545
|
+
function cleanAgentMap(value) {
|
|
546
|
+
if (!isPlainObject(value.agents))
|
|
547
|
+
return;
|
|
548
|
+
const agents = { ...value.agents };
|
|
549
|
+
for (const [name, entry] of Object.entries(agents)) {
|
|
550
|
+
const parsed = tolerantParse(AgentEntrySchema, entry);
|
|
551
|
+
if (parsed.success)
|
|
552
|
+
agents[name] = parsed.data;
|
|
553
|
+
else
|
|
554
|
+
delete agents[name];
|
|
555
|
+
}
|
|
556
|
+
value.agents = agents;
|
|
557
|
+
}
|
|
264
558
|
//# sourceMappingURL=load.js.map
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare function isPlainObjectValue(v: unknown): v is Record<string, unknown>;
|
|
2
|
+
export declare const isPlainObject: typeof isPlainObjectValue;
|
|
3
|
+
export declare const ACCUMULATING_ARRAY_KEYS: Set<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Deep-merge two plain-object trees.
|
|
6
|
+
*
|
|
7
|
+
* Default array policy: REPLACE (override wins) for predictable override
|
|
8
|
+
* semantics. Model fallback and feature-disable arrays are UNIONED de-duped
|
|
9
|
+
* instead - these accumulate across user+project layers so global/project
|
|
10
|
+
* gates compose predictably.
|
|
11
|
+
*
|
|
12
|
+
* Pass `{ profileOverlay: true }` to force ALL arrays to replace (use when
|
|
13
|
+
* overlaying a profile that should fully own a field rather than accumulate).
|
|
14
|
+
*/
|
|
15
|
+
export declare function deepMerge(base: unknown, override: unknown, parentKey?: string, opts?: {
|
|
16
|
+
profileOverlay?: boolean;
|
|
17
|
+
}): unknown;
|
|
18
|
+
export {};
|